рдЬрдм рдЖрдкрдХреЗ рдШрд░ рдореЗрдВ рджреЛ рд╕реЗ рдЕрдзрд┐рдХ рдХрдВрдкреНрдпреВрдЯрд░ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕реНрдерд╛рди рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рдмрд╣реБрдд рдмрд╛рд░ рдЖрддреА рд╣реИред рд╡рд┐рдВрдбреЛрдЬ рдкрд░, рдпрд╣ рдХрд╛рд░реНрдп рд╕рдХреНрд░рд┐рдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд┐рдирдХреНрд╕ рдкрд░, cengine, рдХрдардкреБрддрд▓реА, рдФрд░ рдЕрдиреНрдп рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреВрд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╡реАрдУрдЖрдИрдкреА рдбрд┐рд╡рд╛рдЗрд╕ рдереЗ рдЬрд┐рдирдореЗрдВ рдореБрдЭреЗ рд▓рдЧрд╛рддрд╛рд░ рдХреБрдЫ рдмрджрд▓рдирд╛ рдкрдбрд╝рддрд╛ рдерд╛: рдпрд╛ рддреЛ рдПрдХ рдирдВрдмрд░, рдлрд┐рд░ рдПрдХ рдбрд╛рдпрд▓рд░ рдпреЛрдЬрдирд╛, рдлрд┐рд░ рд╕реНрдХреНрд░реАрди рдкрд░ рдПрдХ рд╢рд┐рд▓рд╛рд▓реЗрдЦ, рдЖрджрд┐ред
рдЗрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП, рдСрдЯреЛрдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕рд┐рд╕реНрдЯрдо рднреА рдореМрдЬреВрдж рд╣реИрдВ, рд▓реЗрдХрд┐рди, рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░рдгреЛрдВ рд╕реЗ, рдЙрдиреНрд╣реЛрдВрдиреЗ рдореБрдЭреЗ рд╕реВрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ред рд╣рд╛рдВ, рдФрд░ рдореИрдВ рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рд╕реЗ рдХреБрдЫ рд▓рд┐рдЦрдиреЗ рдХреЗ
рд▓рд┐рдП рдЕрдкрдиреА рдЦреБрдж рдХреА рдмрд╛рдЗрдХ рдХрд╛
рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред
рдлрд┐рд░ рдЖрдк рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рдЖрдпрд╛ ...
рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреНрдпрд╛ рд╣реИ:
- рдкреНрд░рд╡реЗрд╢ рджреНрд╡рд╛рд░ рдкрд░, Asterisk PBX (рдпрд╛ рдПрдХ рдЕрдиреНрдп IP PBX) рдФрд░ рд╡реАрдУрдЖрдИрдкреА рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ред
- рдирддреАрдЬрддрди, рдореИрдВ рдЕрдкрдиреЗ рд╕рднреА рд╡реАрдУрдЖрдИрдкреА рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдХреЗрдВрджреНрд░реАрдп рд░реВрдк рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
рдореИрдВ рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рдерд╛ рдХрд┐ рд╣рдордиреЗ рдПрдХ рдкрдВрдХреНрддрд┐ рдХрд╛ рдкрд╛рд▓рди рдХрд┐рдпрд╛ рдФрд░ рд▓рдЧрднрдЧ рд╕рднреА рдЙрдкрдХрд░рдг рдЬреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдереЗ рд╡реЗ рдПрдХ рд╣реА рдирд┐рд░реНрдорд╛рддрд╛ рдХреЗ рдереЗ, рдФрд░ рдЬреЛ рдХреБрдЫ рдкреНрд░рддрд┐рдпрд╛рдВ рдЕрд▓рдЧ рдереАрдВ, рд╡реЗ рд╕реНрдХреНрд░реИрдк рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдкрд╣рд▓реЗ рддреИрдпрд╛рд░ рдХреА рдЧрдИ рдереАрдВред рд╕рднреА рдбрд┐рд╡рд╛рдЗрд╕ Linksys рд╕реЗ рдереЗ: PAP2T, SPA3102, SPA901, SPA921, SPA941, SPA942ред рдмрд╛рдж рдореЗрдВ рдирдП рд╕рд┐рд╕реНрдХреЛ SPA502 рдХреЛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ (рд╕рд┐рд╕реНрдХреЛ рдиреЗ рд▓рд┐рдВрдХреНрд╕ рдЦрд░реАрджрд╛) рдХреЗ рдмрд╛рдж
рдЗрди рд╕рднреА рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИред рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рдЬрд╛рдирдирд╛ рд╣реИ рдХрд┐ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдП рдФрд░ рдХреИрд╕реЗ рдкрд░реНрдЪреА рдХреА рдЬрд╛рдПред
рд╣рдорд╛рд░реЗ рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдХрд░рдг рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рддрд╛ рд╕реЗ рдПрдХ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, рдЖрдк рдЗрд╕реЗ рдХреЗрд╡рд▓ рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдЦреАрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ (рдЗрд╕ рд▓рд┐рдВрдХ рдкрд░ рдпрд╣рд╛рдВ)
device_ip/admin/spacfg.xml
device_ip/admin/spacfg.xml
- рд▓реЗрдХрд┐рди рдпрд╣ рд╕рднреА рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ) рдпрд╛ рдЗрдВрдЯрд░рдиреЗрдЯ рдХреЗ рд╡рд┐рд╢рд╛рд▓ рд╡рд┐рд╕реНрддрд╛рд░ рдкрд░ рдХрд╣реАрдВ рдкрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреЗрд╡рд▓ рд╡рд┐рдХрд▓реНрдк рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдПрдХ xml рдлрд╝рд╛рдЗрд▓ рд╣реИред рдЖрдк рдбрд┐рд╡рд╛рдЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ tftp рдпрд╛ http рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдЕрдкрд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рд╕рднреА рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ, рдореВрд▓ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рд▓рдЧрднрдЧ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕рдиреЗ рд╣рдореЗрдВ рдЙрди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдореБрдЦреНрдп рднрд╛рдЧ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА рдЬреЛ рд╕рднреА рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдереА рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд┐рдХрд▓реНрдкред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдирд┐рдореНрди рдСрдЯреЛрдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕рд┐рд╕реНрдЯрдо рдСрдкрд░реЗрд╢рди рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рдЧрдИ рдереА:

рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ (
generator.sh
templates {modelName, common/start, common/network, common/end}
) рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдбрд┐рд╡рд╛рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдПрдХрддреНрд░ рдХрд░рддрд╛ рд╣реИред
templates {modelName, common/start, common/network, common/end}
рдлрд╝рд╛рдЗрд▓ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдЯреБрдХрдбрд╝реЗ
templates {modelName, common/start, common/network, common/end}
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗред
рдПрдХ рдЕрдиреНрдп рд╕реНрдХреНрд░рд┐рдкреНрдЯ (
pusher.sh
) - http рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реБрд▓рдн рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдирд┐рд░реНрдорд┐рдд рдбрд┐рд╡рд╛рдЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рддрд╛ рд╣реИ:
http: // server_ip / configs
рдФрд░ рдлрд┐рд░ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбрд┐рд╡рд╛рдЗрд╕ рддрдХ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирдХрд╛рд░реА рд╣реИ рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░реЗрдВ:
curl --digest -u USERNAME: PASSWORD http: // device_IP / admin / resync? http: //server_ip/configs/CONFIGFILE.xml
рдпрд╣рд╛рдБ рдореБрдЦреНрдп рдЙрдкрдпреЛрдЧ рд╣реИрдВ:
рдЙрдкрдХрд░рдг рдЬреЛрдбрд╝рдирд╛:1. DNS рдореЗрдВ рдПрдХ рдЙрдкрдХрд░рдг рд░рд┐рдХреЙрд░реНрдб рдЬреЛрдбрд╝реЗрдВ
2. рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ - рдЙрд╕ рдкрд░ рдЕрдкрдирд╛ рдЖрдИрдкреА рдкрддрд╛ рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВ (рд╣рдо рд╡реАрдУрдЖрдИрдкреА рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдбреАрдПрдЪрд╕реАрдкреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ) рдФрд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкрд╛рд╕рд╡рд░реНрдб
3.
devices.list
рдПрдХ рд▓рд╛рдЗрди рдЬреЛрдбрд╝реЗрдВред рдлрд╝рд╛рдЗрд▓ рдЬреЛ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреА рд╣реИ, рд▓рд╛рдЗрди рдЗрд╕ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП:
DEVICE_MODEL|NETWORK_NAME|LINE1_DESCR|LINE1_NUMBER|LINE1_PASS|LINE2_DESCR|LINE2_NUMBER|LINE2_PASS|STATION_NAME|USER_PASSWORD
рдЕрдирд╛рд╡рд╢реНрдпрдХ рдХреНрд╖реЗрддреНрд░ рдмрд╕ рдЦрд╛рд▓реА рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдмрдирд╛рдП рд░рдЦреА рдЬрд╛рддреА рд╣реИред
4.
generator.sh
рдЪрд▓рд╛рдПрдВ
5.
pusher.sh single NETWORK_NAME_IN_DNS
рдЪрд▓рд╛рдПрдВ рдФрд░ рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рд▓реЙрдЧ рджреЗрдЦреЗрдВ
рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдирдВрдмрд░ рдмрджрд▓реЗрдВ:1.
devices.list
рдореЗрдВ рд▓рд╛рдЗрди рдмрджрд▓реЗрдВред рдлрд╝рд╛рдЗрд▓ рдЬреЛ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреА рд╣реИред
2.
generator.sh
3.
pusher.sh single NETWORK_NAME_IN_DNS
рдЪрд▓рд╛рдПрдВ
рд╕рднреА рд╡реАрдУрдЖрдИрдкреА рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдбрд╛рдпрд▓ рдпреЛрдЬрдирд╛ рдмрджрд▓реЗрдВ:1.
generator.sh
рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВред
generator.sh
- рдЗрд╕рдореЗрдВ рдПрдХ рдЪрд░ рд╣реИ рдЬреЛ рдбрд╛рдпрд▓ рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред
2.
generator.sh
3.
pusher.sh all
рдЪрд▓рд╛рдПрдВред рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рдпрд╛ рдЕрдкрдиреЗ syslog рд╕рд░реНрд╡рд░ рдкрд░ рд▓реЙрдЧ рдХреЛ рджреЗрдЦреЗрдВ (рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдпрд╣ рд╣реИ, рдареАрдХ рд╣реИ?)ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣:
tail -f /var/log/messages | egrep -i "(pap2t|spa-)"
tail -f /var/log/messages | egrep -i "(pap2t|spa-)"
рдпрд╣ рдСрдЯреЛрдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕рд┐рд╕реНрдЯрдо рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрд╕рд╛рдзрди-рдорд╛рдВрдЧ рдирд╣реАрдВ рд╣реИ рдФрд░ рдХрд┐рд╕реА рднреА рд▓рд┐рдирдХреНрд╕ рд╡рд┐рддрд░рдг рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЗрд╕рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП, рдмреИрд╢ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдлрд╛рдЗрд▓ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдб, рдХрдЯ, рдФрд░ рдПрдХ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдЬреИрд╕реА рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВред
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдереЛрдбрд╝рд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдЖрдЦрд┐рд░рдХрд╛рд░, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЙрдкрдХрд░рдгреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдкрд╛рд╕рд╡рд░реНрдб рд╣реЛрддрд╛ рд╣реИ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдкреНрд░реЗрд╖рд┐рдд рд╣реЛрддрд╛ рд╣реИ), рд╕рднреА рд╡реАрдУрдЖрдИрдкреА рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдПрдХ рдЕрд▓рдЧ рд╡рд▓рд╛рди рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИред
рдлрд┐рд▓рд╣рд╛рд▓, рдореЗрд░рд╛ рдСрдЯреЛрдХреИрдлрд┐рдЧреЗрд╢рди рд╕рд┐рд╕реНрдЯрдо рдХрдИ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред
рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдореЗрд░рд╛ рд▓реЗрдЦ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЬреАрд╡рди рдХреЛ рд╕рд░рд▓ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рд╕рдорд╛рди рд╕рд┐рджреНрдзрд╛рдВрдд рджреНрд╡рд╛рд░рд╛, рдЖрдк рдмрд╣реБрдд рд╕рд╛рд░реЗ рдирд┐рд░реНрдорд╛рддрд╛рдУрдВ рд╕реЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
рд╕реМрднрд╛рдЧреНрдп рд╣реИред
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕реВрдЪреА:
devices.list ################################################## ################################################## #########################################
# LINE FORMAT: DEVICE_MODEL | NETWORK_NAME | LINE1_DES-07ред LINE1__NUMBER | LINE1_PASS | LINE2_DESCR | LINE2_NUMBER | LINE2_PASS | STATION_NAME | USER_PASSWORD #
################################################## ################################################## #########################################
#################
# рд╡реЙрдпрд╕ рдЧреЗрдЯрд╡реЗ #
#################
# PAP2T
PAP2T | voip1.f3r1 | рд░рд┐рд╕реЗрдкреНрд╢рди 1 | 3000 | 3000рдкрд╛рд╕ | рд░рд┐рд╕реЗрдкреНрд╢рди 2 | 3001 | 3001 рдмрд╛рдИрдкрд╛рд╕
PAP2T | voip2.f3r1 | рд╡рд┐рддреНрдд | 3030 | 3030рдкрд╛рд╕ |||
# рдПрд╕рдкреАрдП 3102
SPA3102 | voip0.f3r1 | рдмреИрдардХ рдХрдХреНрд╖ | 3131 | 3131рдкрд╛рд╕
###############
# рд╡реЙрдпрд╕ рдлреЛрди #
###############
# рдПрд╕рдкреАрдП реп режрез
рдПрд╕рдкреАрдП 901 | vph0.f3lr2 | Zavhoz | 3040 | 3040рдкрд╛рд╕ |||
# рдПрд╕рдкреАрдП 921
рдПрд╕рдкреАрдП реп реирез | vph0.f3r3 | рдмреЙрд╕ | рейрежрелреж | рейрежрелреж рдкрд╛рд░ |||| рд╢реАрдл | резреирейрек
# рдПрд╕рдкреАрдП реп рекрез
рдПрд╕рдкреАрдП реп рекрез | vph0.f3r4 | рдПрдбрдорд┐рди | рейрежремреж | рейрежремреж рдкрд╛рд░ |||| рдПрдбрдорд┐рди | рейрежремреж
# рдПрд╕рдкреАрдП реп рекреи
SPA941 | vph0.f4r1 | Manager1 | 3080 | 3080pass |||| Manager1
# рд╕рд┐рд╕реНрдХреЛ SPA502G
SPA502G | vph1.f4r1 | Manager2 | 3090 | 3090pass |||| Manager2
generator.sh #! / рдмрд┐рди / рдмреИрд╢
########################################### рд╕рдВрдХреНрд░рд┐рдпрд╛ рдЕрдиреБрднрд╛рдЧ ##### ########################################
adminPass = 'qwerty123'
userPass = 'qwerty123'
DialPlan = '(* 8S0 | * xx | 1 [0-9] [0-9] S0 | [95] [0-9] xxS0 | 2xxxxxxS0 | 0 [3-7] xxxxxxxxS0ред [[89] x [1] -9] xxxxxxS0 | 0 [89] 00xxxxxxxS0 | 02xxxxxxxS0 | xxxxxxxxxxxред)
sipProxy = 'sip.yourdomain.com'
# рдпрд╣рд╛рдБ SPA3102 рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ PSTN рд▓рд╛рдЗрди рдХреЗ рд▓рд┐рдП рд╡рд┐рдиреНрдпрд╛рд╕ рд╣реИ
DialPlanSPA3102 = '(xxред)'
sipProxySPA3102 = $ sipProxy
############################################ ############### рдЗрд╕ ## рдХреЗ рдиреАрдЪреЗ рд╕рдВрдкрд╛рджрди рди рдХрд░реЗрдВ ####################################
curPath = `dirname $ {0}`
devicesList = $ {curPath} /devices.list
рдмрд┐рд▓реНрд▓реА $ {devicesList} | sed '/ * # / d; / ^ * $ / d '| рдкрдврд╝реА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдкрдВрдХреНрддрд┐;
рдХрд░рдирд╛
рдореЙрдбрд▓ = `рдкреНрд░рддрд┐рдзреНрд╡рдирд┐ $ {рд▓рд╛рдЗрди} | cut -f1 -d '|' | tr '[: lower:]' '[: Upper:]' ''
networkName = `рдкреНрд░рддрд┐рдзреНрд╡рдирд┐ $ {рд▓рд╛рдЗрди} | cut -f2 -d '|' `
ipStr = `рдХрд┐рд╕реА рднреА $ {networkName} рдХреЛ рд╣реЛрд╕реНрдЯ рдХрд░реЗрдВ
рдЕрдЧрд░ [`рдЧреВрдВрдЬ $ {ipStr} | grep 'рдирд╣реАрдВ рдорд┐рд▓рд╛:' | wc -l` -gt реж]
рддреЛ
рдЗрдХреЛ "рдПрд░рд░: $ {networkName} DNS рдореЗрдВ рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдХреГрдкрдпрд╛ рдЗрд╕реЗ рдареАрдХ рдХрд░реЗрдВред"
рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВ 1
рдЕрдиреНрдпрдерд╛
ip = `рдкреНрд░рддрд┐рдзреНрд╡рдирд┐ $ {ipStr} | cut -f4 -d '' ``
рдлрд╛рдИ
рдЗрдХреЛ-рдПрди "рдбрд┐рд╡рд╛рдЗрд╕ рдЖрдИрдкреА - $ {рдЖрдИрдкреА}ред"
line1Descr = `рдкреНрд░рддрд┐рдзреНрд╡рдирд┐ $ {рд░реЗрдЦрд╛} | cut -f3 -d '|' `
line1Phone = `рдкреНрд░рддрд┐рдзреНрд╡рдирд┐ $ {рд░реЗрдЦрд╛} | cut -f4 -d '|' `
line1Pass = `рдкреНрд░рддрд┐рдзреНрд╡рдирд┐ $ {рдкрдВрдХреНрддрд┐} | cut -f5 -d '|' `
line2Descr = `рдкреНрд░рддрд┐рдзреНрд╡рдирд┐ $ {рд░реЗрдЦрд╛} | cut -f6 -d '|' `
line2Phone = `рдкреНрд░рддрд┐рдзреНрд╡рдирд┐ $ {рд░реЗрдЦрд╛} | cut -f7 -d '|' `
line2Pass = `рдкреНрд░рддрд┐рдзреНрд╡рдирд┐ $ {рдкрдВрдХреНрддрд┐} | cut -f8 -d '|' `
рд╕реНрдЯреЗрд╢рдирдирд╛рдо = `рдкреНрд░рддрд┐рдзреНрд╡рдирд┐ $ {рд▓рд╛рдЗрди} | рдХрдЯ -f9 -d '|' `
userPassFromConfig = `рдкреНрд░рддрд┐рдзреНрд╡рдирд┐ $ {рдкрдВрдХреНрддрд┐} | cut -f10 -d '|' `
рдЕрдЧрд░ ["$ {userPassFromConfig}"! = ""]
рддреЛ
userPass = $ {userPassFromConfig}
рдЗрдХреЛ-рдПрди "рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд╛рд╕ рд╕реЗрдЯ рди рдХрд░реЗрдВред"
рдлрд╛рдИ
рдорд╛рдорд▓рд╛ "$ {рдореЙрдбрд▓}" рдореЗрдВ
PAP2T)
рдЗрдХреЛ "$ {рдореЙрдбрд▓} рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдлрд╛рдЗрд▓ рдмрдирд╛рдирд╛ - $ {networkName} ..."
outputFile = $ {curPath} / configs / $ {рдореЙрдбрд▓} - $ {ip} .xml
рдмрд┐рд▓реНрд▓реА $ {curPath} / рдЯреЗрдореНрдкреНрд▓реЗрдЯ / рдЖрдо / рд╢реБрд░реБрдЖрдд> $ {outputFile}
рдмрд┐рд▓реНрд▓реА $ {curPath} / рдЯреЗрдореНрдкреНрд▓реЗрдЯ / рдЖрдо / рдиреЗрдЯрд╡рд░реНрдХ >> $ {outputFile}
рдмрд┐рд▓реНрд▓реА $ {curPath} / рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ / pap2t >> $ {outputFile}
# рдпрд╣рд╛рдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ
рдЗрдХреЛ '<Static_IP ua = "rw">' $ {ip} '</ Static_IP>' >> $ {outputFile}
рдЗрдХреЛ '<HostName ua = "rw">' $ {networkName} '</ HostName>' >> $ {outputFile}
рдЧреВрдВрдЬ '<Admin_Passwd ua = "na">' $ {adminPass} '</ admin_Passwd>' >> $ {outputFile}
рдЧреВрдВрдЬ '<User_Password ua = "rw"> $ {userPass}' </ User_Password> '>> $ {outputFile}
рдЗрдХреЛ '<Display_Name_1_ ua = "na">' $ {line1Descr} '</ Display_Name_1_>' >> $ {outputFile}
рдЧреВрдВрдЬ '<User_ID_1_ ua = "na">' $ {line1Phone} '</ User_ID_1_>' >> $ {outputFile}
рдЧреВрдВрдЬ '<Password_1_ ua = "na">' $ {line1Pass} '</ Password_1_>' >> $ {outputFile}
рдЗрдХреЛ '<Display_Name_2_ ua = "na">' $ {line2Descr} '</ Display_Name_2_>' >> $ {outputFile}
рдЧреВрдВрдЬ '<User_ID_2_ ua = "na">' $ {line2Phone} '</ User_ID_2_>' >> $ {outputFile}
рдЗрдХреЛ '<Password_2_ ua = "na">' $ {line2Pass} '</ Password_2_>' >> $ {outputFile}
рдЗрдХреЛ '<Dial_Plan_1_ ua = "na">' $ {DialPlan} '</ Dial_Plan_1_>' >> $ {outputFile}
рдЧреВрдВрдЬ '<Proxy_1_ ua = "na">' $ {sipProxy} '</ Proxy_1_>' >> $ {outputFile}
рдЗрдХреЛ '<Dial_Plan_2_ ua = "na">' $ {DialPlan} '</ Dial_Plan_2_>' >> $ {outputFile}
рдЗрдХреЛ '<Proxy_2_ ua = "na">' $ {sipProxy} '</ Proxy_2_>' >> $ {outputFile}
рдмрд┐рд▓реНрд▓реА $ {curPath} / рдЯреЗрдореНрдкреНрд▓реЗрдЯ / рдЖрдо / рдЕрдВрдд >> $ {outputFile}
;;
SPA3102)
рдЗрдХреЛ "$ {рдореЙрдбрд▓} рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдлрд╛рдЗрд▓ рдмрдирд╛рдирд╛ - $ {networkName} ..."
outputFile = $ {curPath} / configs / $ {рдореЙрдбрд▓} - $ {ip} .xml
рдмрд┐рд▓реНрд▓реА $ {curPath} / рдЯреЗрдореНрдкреНрд▓реЗрдЯ / рдЖрдо / рд╢реБрд░реБрдЖрдд> $ {outputFile}
рдмрд┐рд▓реНрд▓реА $ {curPath} / рдЯреЗрдореНрдкреНрд▓реЗрдЯ / рдЖрдо / рдиреЗрдЯрд╡рд░реНрдХ >> $ {outputFile}
рдмрд┐рд▓реНрд▓реА $ {curPath} / рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ / Spa3102 >> $ {outputFile}
# рдпрд╣рд╛рдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ
рдЗрдХреЛ '<Static_IP ua = "rw">' $ {ip} '</ Static_IP>' >> $ {outputFile}
рдЗрдХреЛ '<HostName ua = "rw">' $ {networkName} '</ HostName>' >> $ {outputFile}
рдЧреВрдВрдЬ '<Admin_Passwd ua = "na">' $ {adminPass} '</ admin_Passwd>' >> $ {outputFile}
рдЧреВрдВрдЬ '<User_Password ua = "rw"> $ {userPass}' </ User_Password> '>> $ {outputFile}
рдЗрдХреЛ '<Display_Name_1_ ua = "na">' $ {line1Descr} '</ Display_Name_1_>' >> $ {outputFile}
рдЧреВрдВрдЬ '<User_ID_1_ ua = "na">' $ {line1Phone} '</ User_ID_1_>' >> $ {outputFile}
рдЧреВрдВрдЬ '<Password_1_ ua = "na">' $ {line1Pass} '</ Password_1_>' >> $ {outputFile}
рдЗрдХреЛ '<Display_Name_2_ ua = "na">' $ {line2Descr} '</ Display_Name_2_>' >> $ {outputFile}
рдЧреВрдВрдЬ '<User_ID_2_ ua = "na">' $ {line2Phone} '</ User_ID_2_>' >> $ {outputFile}
рдЗрдХреЛ '<Password_2_ ua = "na">' $ {line2Pass} '</ Password_2_>' >> $ {outputFile}
рдЗрдХреЛ '<Dial_Plan_1_ ua = "na">' $ {DialPlan} '</ Dial_Plan_1_>' >> $ {outputFile}
рдЧреВрдВрдЬ '<Proxy_1_ ua = "na">' $ {sipProxy} '</ Proxy_1_>' >> $ {outputFile}
рдЧреВрдВрдЬ '<Dial_Plan_1_2_ ua = "na">' $ {dialPlanSPA3102} '</ Dial_Plan_1_2_>' >> $ {outputFile}
рдЗрдХреЛ '<Proxy_2_ ua = "na">' $ {sipProxySPA3102} '</ Proxy_2_>' >> $ {outputFile}
рдмрд┐рд▓реНрд▓реА $ {curPath} / рдЯреЗрдореНрдкреНрд▓реЗрдЯ / рдЖрдо / рдЕрдВрдд >> $ {outputFile}
;;
SPA901)
рдЗрдХреЛ "$ {рдореЙрдбрд▓} рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдлрд╛рдЗрд▓ рдмрдирд╛рдирд╛ - $ {networkName} ..."
outputFile = $ {curPath} / configs / $ {рдореЙрдбрд▓} - $ {ip} .xml
рдмрд┐рд▓реНрд▓реА $ {curPath} / рдЯреЗрдореНрдкреНрд▓реЗрдЯ / рдЖрдо / рд╢реБрд░реБрдЖрдд> $ {outputFile}
рдмрд┐рд▓реНрд▓реА $ {curPath} / рдЯреЗрдореНрдкреНрд▓реЗрдЯ / рдЖрдо / рдиреЗрдЯрд╡рд░реНрдХ >> $ {outputFile}
рдмрд┐рд▓реНрд▓реА $ {curPath} / рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ / Spa901 >> $ {outputFile}
# рдпрд╣рд╛рдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕реЗрдЯрд┐рдВрдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ
рдЗрдХреЛ '<Static_IP ua = "rw">' $ {ip} '</ Static_IP>' >> $ {outputFile}
рдЗрдХреЛ '<HostName ua = "rw">' $ {networkName} '</ HostName>' >> $ {outputFile}
рдЧреВрдВрдЬ '<Admin_Passwd ua = "na">' $ {adminPass} '</ admin_Passwd>' >> $ {outputFile}
рдЧреВрдВрдЬ '<User_Password ua = "rw"> $ {userPass}' </ User_Password> '>> $ {outputFile}
рдЗрдХреЛ '<Display_Name_1_ ua = "na">' $ {line1Descr} '</ Display_Name_1_>' >> $ {outputFile}
рдЧреВрдВрдЬ '<User_ID_1_ ua = "na">' $ {line1Phone} '</ User_ID_1_>' >> $ {outputFile}
рдЧреВрдВрдЬ '<Password_1_ ua = "na">' $ {line1Pass} '</ Password_1_>' >> $ {outputFile}
рдЗрдХреЛ '<Dial_Plan_1_ ua = "na">' $ {DialPlan} '</ Dial_Plan_1_>' >> $ {outputFile}
рдЧреВрдВрдЬ '<Proxy_1_ ua = "na">' $ {sipProxy} '</ Proxy_1_>' >> $ {outputFile}
рдмрд┐рд▓реНрд▓реА $ {curPath} / рдЯреЗрдореНрдкреНрд▓реЗрдЯ / рдЖрдо / рдЕрдВрдд >> $ {outputFile}
;;
SPA921)
рдЗрдХреЛ "$ {рдореЙрдбрд▓} рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдлрд╛рдЗрд▓ рдмрдирд╛рдирд╛ - $ {networkName} ..."
outputFile = $ {curPath} / configs / $ {рдореЙрдбрд▓} - $ {ip} .xml
рдмрд┐рд▓реНрд▓реА $ {curPath} / рдЯреЗрдореНрдкреНрд▓реЗрдЯ / рдЖрдо / рд╢реБрд░реБрдЖрдд> $ {outputFile}
рдмрд┐рд▓реНрд▓реА $ {curPath} / рдЯреЗрдореНрдкреНрд▓реЗрдЯ / рдЖрдо / рдиреЗрдЯрд╡рд░реНрдХ >> $ {outputFile}
#cat $ {curPath} / рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ / Spa921 >> $ {outputFile}
# рдпрд╣рд╛рдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕реЗрдЯрд┐рдВрдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ
рдЗрдХреЛ '<Static_IP ua = "rw">' $ {ip} '</ Static_IP>' >> $ {outputFile}
рдЗрдХреЛ '<HostName ua = "rw">' $ {networkName} '</ HostName>' >> $ {outputFile}
рдЧреВрдВрдЬ '<Admin_Passwd ua = "na">' $ {adminPass} '</ admin_Passwd>' >> $ {outputFile}
рдЧреВрдВрдЬ '<User_Password ua = "rw"> $ {userPass}' </ User_Password> '>> $ {outputFile}
рдЗрдХреЛ '<рд╕реНрдЯреЗрд╢рди_рдирд╛рдо ua = "рдирд╛">' $ {рд╕реНрдЯреЗрд╢рдирдирд╛рдо} "</ рд╕реНрдЯреЗрд╢рди_рдирд╛рдо> '>> $ {рдЖрдЙрдЯрдкреБрдЯрдлрд╛рдЗрд▓}
рдЗрдХреЛ '<Display_Name_1_ ua = "na">' $ {line1Descr} '</ Display_Name_1_>' >> $ {outputFile}
рдЧреВрдВрдЬ '<User_ID_1_ ua = "na">' $ {line1Phone} '</ User_ID_1_>' >> $ {outputFile}
рдЧреВрдВрдЬ '<Password_1_ ua = "na">' $ {line1Pass} '</ Password_1_>' >> $ {outputFile}
рдЗрдХреЛ '<Dial_Plan_1_ ua = "na">' $ {DialPlan} '</ Dial_Plan_1_>' >> $ {outputFile}
рдЧреВрдВрдЬ '<Proxy_1_ ua = "na">' $ {sipProxy} '</ Proxy_1_>' >> $ {outputFile}
рдмрд┐рд▓реНрд▓реА $ {curPath} / рдЯреЗрдореНрдкреНрд▓реЗрдЯ / рдЖрдо / рдЕрдВрдд >> $ {outputFile}
;;
SPA941)
рдЗрдХреЛ "$ {рдореЙрдбрд▓} рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдлрд╛рдЗрд▓ рдмрдирд╛рдирд╛ - $ {networkName} ..."
outputFile = $ {curPath} / configs / $ {рдореЙрдбрд▓} - $ {ip} .xml
рдмрд┐рд▓реНрд▓реА $ {curPath} / рдЯреЗрдореНрдкреНрд▓реЗрдЯ / рдЖрдо / рд╢реБрд░реБрдЖрдд> $ {outputFile}
рдмрд┐рд▓реНрд▓реА $ {curPath} / рдЯреЗрдореНрдкреНрд▓реЗрдЯ / рдЖрдо / рдиреЗрдЯрд╡рд░реНрдХ >> $ {outputFile}
# рдХреИрдЯ $ {рдХрд░рдкрд╛рде} / рдЯреЗрдореНрдкреНрд▓реЗрдЯ / рд╕реНрдкрд╛ 941 >> $ {рдЖрдЙрдЯрдкреБрдЯрдлрд╛рдЗрд▓}
# рдпрд╣рд╛рдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ
рдЗрдХреЛ '<Static_IP ua = "rw">' $ {ip} '</ Static_IP>' >> $ {outputFile}
рдЗрдХреЛ '<HostName ua = "rw">' $ {networkName} '</ HostName>' >> $ {outputFile}
рдЧреВрдВрдЬ '<Admin_Passwd ua = "na">' $ {adminPass} '</ admin_Passwd>' >> $ {outputFile}
рдЧреВрдВрдЬ '<User_Password ua = "rw"> $ {userPass}' </ User_Password> '>> $ {outputFile}
рдЗрдХреЛ '<рд╕реНрдЯреЗрд╢рди_рдирд╛рдо ua = "рдирд╛">' $ {рд╕реНрдЯреЗрд╢рдирдирд╛рдо} "</ рд╕реНрдЯреЗрд╢рди_рдирд╛рдо> '>> $ {рдЖрдЙрдЯрдкреБрдЯрдлрд╛рдЗрд▓}
рдЗрдХреЛ '<Display_Name_1_ ua = "na">' $ {line1Descr} '</ Display_Name_1_>' >> $ {outputFile}
рдЧреВрдВрдЬ '<User_ID_1_ ua = "na">' $ {line1Phone} '</ User_ID_1_>' >> $ {outputFile}
рдЧреВрдВрдЬ '<Password_1_ ua = "na">' $ {line1Pass} '</ Password_1_>' >> $ {outputFile}
рдЗрдХреЛ '<Display_Name_2_ ua = "na">' $ {line2Descr} '</ Display_Name_2_>' >> $ {outputFile}
рдЧреВрдВрдЬ '<User_ID_2_ ua = "na">' $ {line2Phone} '</ User_ID_2_>' >> $ {outputFile}
рдЗрдХреЛ '<Password_2_ ua = "na">' $ {line2Pass} '</ Password_2_>' >> $ {outputFile}
рдЗрдХреЛ '<Dial_Plan_1_ ua = "na">' $ {DialPlan} '</ Dial_Plan_1_>' >> $ {outputFile}
рдЧреВрдВрдЬ '<Proxy_1_ ua = "na">' $ {sipProxy} '</ Proxy_1_>' >> $ {outputFile}
рдЗрдХреЛ '<Dial_Plan_2_ ua = "na">' $ {DialPlan} '</ Dial_Plan_2_>' >> $ {outputFile}
рдЗрдХреЛ '<Proxy_2_ ua = "na">' $ {sipProxy} '</ Proxy_2_>' >> $ {outputFile}
рдмрд┐рд▓реНрд▓реА $ {curPath} / рдЯреЗрдореНрдкреНрд▓реЗрдЯ / рдЖрдо / рдЕрдВрдд >> $ {outputFile}
;;
SPA502G)
рдЗрдХреЛ "$ {рдореЙрдбрд▓} рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдлрд╛рдЗрд▓ рдмрдирд╛рдирд╛ - $ {networkName} ..."
outputFile = $ {curPath} / configs / $ {рдореЙрдбрд▓} - $ {ip} .xml
рдмрд┐рд▓реНрд▓реА $ {curPath} / рдЯреЗрдореНрдкреНрд▓реЗрдЯ / рдЖрдо / рд╢реБрд░реБрдЖрдд> $ {outputFile}
рдмрд┐рд▓реНрд▓реА $ {curPath} / рдЯреЗрдореНрдкреНрд▓реЗрдЯ / рдЖрдо / рдиреЗрдЯрд╡рд░реНрдХ >> $ {outputFile}
рдмрд┐рд▓реНрд▓реА $ {curPath} / рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ / Spa502g >> $ {outputFile}
# рдпрд╣рд╛рдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕реЗрдЯрд┐рдВрдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ
рдЗрдХреЛ '<Static_IP ua = "rw">' $ {ip} '</ Static_IP>' >> $ {outputFile}
рдЗрдХреЛ '<HostName ua = "rw">' $ {networkName} '</ HostName>' >> $ {outputFile}
рдЧреВрдВрдЬ '<Admin_Passwd ua = "na">' $ {adminPass} '</ admin_Passwd>' >> $ {outputFile}
рдЧреВрдВрдЬ '<User_Password ua = "rw"> $ {userPass}' </ User_Password> '>> $ {outputFile}
рдЗрдХреЛ '<рд╕реНрдЯреЗрд╢рди_рдирд╛рдо ua = "рдирд╛">' $ {рд╕реНрдЯреЗрд╢рдирдирд╛рдо} "</ рд╕реНрдЯреЗрд╢рди_рдирд╛рдо> '>> $ {рдЖрдЙрдЯрдкреБрдЯрдлрд╛рдЗрд▓}
# <рд╕реНрдЯреЗрд╢рди_рдбрд┐рд╕рдкреНрд▓реЗ_рдирд╛рдо ua = "рдирд╛"> </ рд╕реНрдЯреЗрд╢рди_рдбрд┐рд╕рдкреНрд▓реЗ_рдирд╛рдо>
рдЗрдХреЛ '<Display_Name_1_ ua = "na">' $ {line1Descr} '</ Display_Name_1_>' >> $ {outputFile}
рдЧреВрдВрдЬ '<User_ID_1_ ua = "na">' $ {line1Phone} '</ User_ID_1_>' >> $ {outputFile}
рдЧреВрдВрдЬ '<Password_1_ ua = "na">' $ {line1Pass} '</ Password_1_>' >> $ {outputFile}
рдЗрдХреЛ '<Dial_Plan_1_ ua = "na">' $ {DialPlan} '</ Dial_Plan_1_>' >> $ {outputFile}
рдЧреВрдВрдЬ '<Proxy_1_ ua = "na">' $ {sipProxy} '</ Proxy_1_>' >> $ {outputFile}
рдмрд┐рд▓реНрд▓реА $ {curPath} / рдЯреЗрдореНрдкреНрд▓реЗрдЯ / рдЖрдо / рдЕрдВрдд >> $ {outputFile}
;;
esac
рдХрд┐рдпрд╛
pusher.sh #! / рдмрд┐рди / рдмреИрд╢
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ = рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ
рдкрд╛рд╕ = qwerty123
sourceLink = "http://192.168.50.10/configs"
configsPath = "` dirname $ {0} `/ configs"
cp $ {configsPath} / *ред xml / var / www / html / configs
рдХреЗрд╕ $ 1 рдореЗрдВ
рд╕рдм)
ls -1 $ {configsPath} | рдкрдврд╝реА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдкрдВрдХреНрддрд┐;
рдХрд░рдирд╛
deviceIP = `рдкреНрд░рддрд┐рдзреНрд╡рдирд┐ $ {рд▓рд╛рдЗрди} | cut -f2 -d- | cut -f1-4 -d.`
рдкреНрд░рддрд┐рдзреНрд╡рдирд┐ "$ {deviceIP} _______________________________________________________________________________"
curl --digest -u $ {user}: $ {pass} http: // $ {deviceIP} / admin / resync? $ {sourceLink} / $ {line}
рдХрд┐рдпрд╛
;;
рдПрдХрд▓)
networkName = $ 2
ipStr = `рдХрд┐рд╕реА рднреА $ {networkName} рдХреЛ рд╣реЛрд╕реНрдЯ рдХрд░реЗрдВ
рдЕрдЧрд░ [`рдЧреВрдВрдЬ $ {ipStr} | grep 'рдирд╣реАрдВ рдорд┐рд▓рд╛:' | wc -l` -gt реж]
рддреЛ
рдЗрдХреЛ "рдПрд░рд░: $ {networkName} DNS рдореЗрдВ рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдХреГрдкрдпрд╛ рдЗрд╕реЗ рдареАрдХ рдХрд░реЗрдВред"
рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВ 1
рдЕрдиреНрдпрдерд╛
ip = `рдЗрдХреЛ $ {ipStr} | cut -f4 -d '' ``
рдлрд╛рдИ
ls -1 $ {configsPath} | grep $ {ip} | рдкрдврд╝реА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдкрдВрдХреНрддрд┐;
рдХрд░рдирд╛
deviceIP = `рдкреНрд░рддрд┐рдзреНрд╡рдирд┐ $ {рд▓рд╛рдЗрди} | cut -f2 -d- | cut -f1-4 -d.`
рдкреНрд░рддрд┐рдзреНрд╡рдирд┐ "$ {deviceIP} _______________________________________________________________________________"
curl --digest -u $ {user}: $ {pass} http: // $ {deviceIP} / admin / resync? $ {sourceLink} / $ {line}
рдХрд┐рдпрд╛
;;
*)
рдЗрдХреЛ "рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдпрд╣рд╛рдВ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ:"
рдЧреВрдВрдЬ "* $ {0} рд╕рднреА * - рд╕рднреА рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдкреНрд░рд╛рд╡рдзрд╛рди рдХреЗ рд▓рд┐рдП"
рдЗрдХреЛ "* $ {0} рдПрдХрд▓ NETWORK_NAME_IN_DNS * - рдПрдХрд▓ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдкреНрд░рд╛рд╡рдзрд╛рди рдХреЗ рд▓рд┐рдП"
;;
esac
рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ / pap2t <Ring_Waveform ua = "na"> Trapezoid </ Ring_Waveform>
рдЯреЗрдореНрдкреНрд▓реЗрдЯ / рд╕реНрдкрд╛ 3102 <Ring_Waveform ua = "na"> Trapezoid </ Ring_Waveform>
<FAX_Line_Toggle_Code ua = "na"> </ FAX_Line_Toggle_Code>
рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ / Spa502g <Paging_Code ua = "na"> </ Paging_Code>
<Call_Park_Code ua = "na"> </ Call_Park_Code>
<Call_UnPark_Code ua = "na"> </ Call_UnPark_Code>
<Call_Pickup_Code ua = "na"> </ Call_Pickup_Code>
<Group_Call_Pickup_Code ua = "na"> </ Group_Call_Pickup -Code>
<Enable_CDP ua = "na"> рдирд╣реАрдВ </ Enable_CDP>
рдЯреЗрдореНрдкреНрд▓реЗрдЯ / рд╕реНрдкрд╛ 901<Paging_Code ua="na"></Paging_Code>
<Call_Park_Code ua="na"></Call_Park_Code>
<Call_UnPark_Code ua="na"></Call_UnPark_Code>
<Call_Pickup_Code ua="na"></Call_Pickup_Code>
рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ / рдЖрдо / рд╢реБрд░реВ <? xml рд╕рдВрд╕реНрдХрд░рдг = "1.0" рдПрдиреНрдХреЛрдбрд┐рдВрдЧ = "UTF-8" рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди = "рд╣рд╛рдБ"?>
<рдлреНрд▓реИрдЯ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓>
рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ / рдЖрдо / рдиреЗрдЯрд╡рд░реНрдХ <Resteded_Access_Domains ua = "na"> </ Restricted_Access_Domains>
<Enable_Web_Server ua = "na"> рд╣рд╛рдВ </ enable_Web_Server>
<Web_Server_Port ua = "na"> 80 </ Web_Server_Port>
<Enable_Web_Admin_Access ua = "na"> рд╣рд╛рдВ </ enable_Web_Admin_Access>
<DHCP ua = "rw"> рдирд╣реАрдВ </ DHCP>
<NetMask ua = "rw"> 255.255.255.0 </ NetMask>
<рдЧреЗрдЯрд╡реЗ ua = "rw"> 192.168.50.254 </ рдЧреЗрдЯрд╡реЗ>
<рдбреЛрдореЗрди ua = "rw"> yourdomain.com </ рдбреЛрдореЗрди>
<Primary_DNS ua = "rw"> 192.168.71.3 </ Primary_DNS>
<рдЧреМрдг_DNS ua = "rw"> 192.168.71.6 </ рдЧреМрдг_DNS>
<Primary_NTP_Server ua = "na"> ntp.yourdomain.com </ Primary_NTP_Server>
<Secondary_NTP_Server ua = "na"> ntp2.yourdomain.com </ рдЧреМрдг_NTP_Server>
<Syslog_Server ua = "na"> syslog.yourdomain.com </ Syslog_Server>
<DNS_Server_Order ua = "na"> рдореИрдиреБрдЕрд▓ </ DNS_Server_Order>
<DNS_Query_Mode ua = "na"> рд╕рдорд╛рдирд╛рдВрддрд░ </ DNS_Query_Mode>
<Debug_Server ua = "na"> </ Debug_Server>
<Debug_Level ua = "na"> 0 </ Debug_Level>
<Provision_Enable ua = "na"> рд╣рд╛рдБ </ Provision_Enable>
<Resync_On_Reset ua = "na"> рдирд╣реАрдВ </ Resync_On_Reset>
<Resync_Periodic ua = "na"> 3600 </ Resync_Periodic>
<Profile_Rule ua = "na"> / init.cfg </ Profile_Rule>
<Profile_Rule_B ua = "na"> </ Profile_Rule_B>
<Profile_Rule_C ua = "na"> </ Profile_Rule_C>
<Profile_Rule_D ua = "na"> </ Profile_Rule_D>
<Upgrad_Enable ua = "na"> рд╣рд╛рдВ </ Upgrad_Enable>
<Upgrad_Error_Retry_Delay ua = "na"> 3600 </ Upgrad_Error_Retry_Delay>
<Log_Upgrad_Request_Msg ua = "na"> $ PN $ MAC - рдЕрдиреБрд░реЛрдз рдХрд╛ рдЙрдиреНрдирдпрди $ SCHEME: // $ SERVIP: $ PORT $ PATH </ Log_Upgrad_Request_Msg>
<Log_Upgrad_Success_Msg ua = "na"> $ PN $ MAC - рд╕рдлрд▓ рдЙрдиреНрдирдпрди $ SCHEME: // $ SERVIP: $ PORT $ PATH - $ ERR </ Log_Up__Success_Msg>
<Log_Upgrad_Failure_Msg ua = "na"> $ PN $ MAC - рдирд╡реАрдиреАрдХрд░рдг рд╡рд┐рдлрд▓: $ ERR </ Log_Upgrad_Failure_Msg>
<Call_Return_Code ua = "na"> </ Call_Return_Code>
<Blind_Transfer_Code ua = "na"> </ Blind_Transfer_Code>
<Call_Back_Act_Code ua = "na"> </ Call_Back_Act_Code>
<Call_Back_Deact_Code ua = "na"> </ Call_Back_Deact_Code>
<Cfwd_All_Act_Code ua = "na"> </ Cfwd_All_Act_Code>
<Cfwd_All_Deact_Code ua = "na"> </ Cfwd_All_Deact_Code>
<Cfwd_Busy_Act_Code ua = "na"> </ Cfwd_Busy_Act_Code>
<Cfwd_Busy_Deact_Code ua = "na"> </ Cfwd_Busy_Deact_Code>
<Cfwd_No_Ans_Act_Code ua = "na"> </ Cfwd_No_Ans_Act_Code>
<Cfwd_No_Ans_Deact_Code ua = "na"> </ Cfwd_No_Ans_Deact_Code>
<Cfwd_Last_Act_Code ua = "na"> </ Cfwd_Last_Act_Code>
<Cfwd_Last_Deact_Code ua = "na"> </ Cfwd_Last_Deact_Code>
<Block_Last_Act_Code ua = "na"> </ Block_Last_Act_Code>
<Block_Last_Deact_Code ua = "na"> </ Block_Last_Deact_Code>
<Accept_Last_Act_Code ua = "na"> </ Accept_Last_Act_Code>
<Accept_Last_Deact_Code ua = "na"> </ Accept_Last_Deact_Code>
<CW_Act_Code ua = "na"> </ CW_Act_Code>
<CW_Deact_Code ua = "na"> </ CW_Deact_Code>
<CW_Per_Call_Act_Code ua = "na"> </ CW_Per_Call_Act_Code>
<CW_Per_Call_Deact_Code ua = "na"> </ CW_Per_Call_Deact_Code>
<Block_CID_Act_Code ua = "na"> </ Block_CID_Act_Code>
<Block_CID_Deact_Code ua = "na"> </ Block_CID_DeactctCode>
<Block_CID_Per_Call_Act_Code ua = "na"> </ Block_CID_Per_Call_Act_Code>
<Block_CID_Per_Call_Deact_Code ua = "na"> </ Block_CID_Per_Call_Deact_Code>
<Block_ANC_Act_Code ua = "na"> </ Block_ANC_Act_Code>
<Block_ANC_Deact_Code ua = "na"> </ Block_ANC_Deact_Code>
<DND_Act_Code ua = "na"> </ DND_Act_Code>
<DND_Deact_Code ua = "na"> </ DND_Deact_Code>
<CID_Act_Code ua = "na"> </ CID_Act_Code>
<CID_Deact_Code ua = "na"> </ CID_Deact_Code>
<CWCID_Act_Code ua = "na"> </ CWCID_Act_Code>
<CWCID_Deact_Code ua = "na"> </ CWCID_Deact_Code>
<Dist_Ring_Act_Code ua = "na"> </ Dist_Ring_Act_Code>
<Dist_Ring_Deact_Code ua = "na"> </ Dist_Ring_Deactct -Code>
<Speed_Dial_Act_Code ua = "na"> </ Speed_Dial_Act_Code>
<Secure_All_Call_Act_Code ua = "na"> </ Secure_All_Call_Act_Code>
<Secure_No_Call_Act_Code ua = "na"> </ Secure_No_Call_Act_Code>
<Secure_One_Call_Act_Code ua = "na"> </ Secure_One_Call_Act_Code>
<Secure_One_Call_Deact_Code ua = "na"> </ Secure_One_Call_Deact_Code>
<рдХреЙрдиреНрдлрд╝реНрд░реЗрдВрд╕_рдПрдХреНрдЯ_рдХреЛрдб рдпреВрдП = "рдирд╛"> </ рдХреЙрдиреНрдлреНрд░реЗрдВрд╕_рдПрдХреНрдЯ_рдХреЛрдб>
<Attn-Xfer_Act_Code ua = "na"> </ Attn-Xfer_Act_Code>
<Modem_Line_Toggle_Code ua = "na"> </ Modem_Line_Toggle_Code>
<Media_Loopback_Code ua = "na"> </ Media_Loopback_Code>
<Time_Zone ua = "na"> GMT + 02: 00 </ Time_Zone>
<Daylight_Saving_Time_Rule ua = "na"> start = 3 / -1 / 7/3; рдЕрдВрдд = 10 / -1 / 7/4; рд╕рд╣реЗрдЬреЗрдВ = 1 </ Daylight_Saving_Time_Rule>
рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ / рдЖрдо / рдЕрдВрдд </ рдлреНрд▓реИрдЯ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓>