рдлреЛрдирдмреБрдХ рдХреЛ рдкреЙрд▓реАрдХреЙрдо рдЖрдИрдкреА рдлреЛрди рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ


рд╣рдорд╛рд░рд╛ рд╕рдВрдЧрдарди Trixbox рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЖрдИрдкреА рдЯреЗрд▓реАрдлреЛрдиреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ (рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдХреБрдЫ рдорддрднреЗрджреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА FreePBX), рд╕рд╛рде рд╣реА рдкреЙрд▓реАрдХреЙрдо рдЯреЗрд▓реАрдлреЛрди рд╕реЗрдЯ рднреАред рд╣рд░ рджрд┐рди рдХрдВрдкрдиреА рдХреЗ рдХрд░реНрдордЪрд╛рд░реА рдмрдврд╝рддреЗ рдЧрдП рдФрд░ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдЖрдВрддрд░рд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдпрд╛рдж рд░рдЦрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЧрдпрд╛ред рдХреБрдЫ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдиреЗ рдлреЛрди рдкрд░ рдкрддрд╛ рдкреБрд╕реНрддрд┐рдХрд╛ рдореЗрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЯрд╛рдЗрдк рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдиреЗ рдЕрдЧрд▓реА рдмрджрд▓реА рд╣реБрдИ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рд╡рд╛рдВрдЫрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдХреА рдЦреЛрдЬ рдореЗрдВ рдФрд░ рднреА рдЕрдзрд┐рдХ рд╕рдордп рдмрд┐рддрд╛рдпрд╛ред рдЗрд╕рд╕реЗ рдХреБрдЫ рд▓реЗрдирд╛-рджреЗрдирд╛ рдерд╛ред
рд╕рднреА рдлреЛрди tftp рд╕рд░реНрд╡рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрдирд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╣рдо рд╡рд╣рд╛рдВ рдкрд╣реБрдВрдЪреЗрдВрдЧреЗред рдпрд╣ рдкрд╛рдпрд╛ рдЧрдпрд╛ рдХрд┐ рдмреВрдЯ рдореЗрдВ, рдлреЛрди * tftpserver_dir * / polycom / contact / рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ * macaddr * -directory.xml рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдкрд╛рддрд╛ рд╣реИ рддреЛ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИред рд╣рдо рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред

рд╣рдо рдПрдХ рдХрд╛рд░реНрдп рдпреЛрдЬрдирд╛ рддреИрдпрд╛рд░ рдХрд░реЗрдВрдЧреЗ:
  1. рд╕рдВрдкрд░реНрдХреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ xml рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЧрдардиред рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЧрдарди рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
  2. рдЖрдкрдХреЛ рдореМрдЬреВрджрд╛ рдлреЛрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рддрд╛рд░рд╛рдВрдХрди рдЪрд┐рд╣реНрди CLI рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред # рд╕рдорд╕реНрдпрд╛ рдирдВрдмрд░ 1ред
  3. рд░рд╛рдд рдореЗрдВ рджрд┐рди рдореЗрдВ рдПрдХ рдмрд╛рд░ рдлреЛрди рд░реАрдмреВрдЯ рдХрд░рдХреЗ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ред


рд╕рдорд╕реНрдпрд╛ рдирдВрдмрд░ 1
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдЯреНрд░рд┐рдХреНрд╕рдмреЙрдХреНрд╕, рдЬрдм рддрд╛рд░рд╛рдВрдХрди рд╡рд┐рдиреНрдпрд╛рд╕ рдлрд╛рдЗрд▓ рдХреА рдЬрд╛рдирдХрд╛рд░реА рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рдХрд╣реАрдВ рднреА рдХреЙрд▓рд░ рдЖрдИрдбреА рдирд╣реАрдВ рд▓рд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ рдЕрдкрдиреЗ mysql рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд┐рддреНрд░ рджреЗрдЦрддреЗ рд╣реИрдВ:
trixbox1*CLI> sip show peer 114 trixbox1*CLI> * Name : 114 Secret : <Set> MD5Secret : <Not set> Context : from-internal Subscr.Cont. : <Not set> Language : ru AMA flags : Unknown Transfer mode: open CallingPres : Presentation Allowed, Not Screened Callgroup : Pickupgroup : Mailbox : 114@device VM Extension : *97 LastMsgsSent : 0/0 Call limit : 50 Dynamic : Yes Callerid : "device" <114> MaxCallBR : 384 kbps Expire : 1410 Insecure : no Nat : Always ACL : Yes T38 pt UDPTL : No CanReinvite : No PromiscRedir : No User=Phone : No Video Support: Yes Trust RPID : No Send RPID : No Subscriptions: Yes Overlap dial : Yes DTMFmode : rfc2833 LastMsg : 0 ToHost : Addr->IP : 192.168.0.95 Port 5060 Defaddr->IP : 0.0.0.0 Port 5060 Def. Username: 114 SIP Options : (none) Codecs : 0x28000c (ulaw|alaw|h263|h264) Codec Order : (ulaw:20,alaw:20) Auto-Framing: No Status : OK (18 ms) Useragent : PolycomSoundPointIP-SPIP_321-UA/3.1.3.0507 Reg. Contact : sip:114@192.168.0.95 


рд╣рдо Callerid рд▓рд╛рдЗрди рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ: "рдбрд┐рд╡рд╛рдЗрд╕" <114> рдХрд░реНрдордЪрд╛рд░реА рдХреЗ CallerID (рдирд╛рдо) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдмрдЬрд╛рдп, рд╣рдо "рдбрд┐рд╡рд╛рдЗрд╕" рдХреЛ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВред
рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВред рдкрд╣рд▓рд╛ MySQL рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдпрд╣ рдХреНрд╡реЗрд░реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП XML рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╕рдордп CallerID рдФрд░ рдлреНрд▓рд╛рдИ рдкрд░ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рдпрд╛ рджреВрд╕рд░рд╛ рдХрдо рд╢реНрд░рдорд╕рд╛рдзреНрдп рдФрд░ рдХрдо рд╕рдВрд╕рд╛рдзрди рдЧрд╣рдиред
рдпрд╣ рдЬрд╛рдирддреЗ рд╣реБрдП рдХрд┐ trixbox рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ php рдореЗрдВ рд╣реИ, рд╣рдо рдЙрд╕ рд╕реЛрд░реНрд╕ рдХреЛрдб рдХреЛ рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдБ trixbox рдЗрд╕реЗ "рдбрд┐рд╡рд╛рдЗрд╕" рд▓рд┐рдЦрддрд╛ рд╣реИред / Var / www / рдореЗрдВ рдереЛрдбрд╝реА рд╕реА рдЦреБрджрд╛рдИ рдХрд░рдиреЗ рдкрд░ рд╣рдореЗрдВ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реЗ рдПрдХ рдмрд╣реБрдд рд╣реА рджрд┐рд▓рдЪрд╕реНрдк рдЯрд┐рдкреНрдкрдгреА рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓ /var/www/html/admin/modules/core/functions.inc.php рдорд┐рд▓ рдЬрд╛рддреА рд╣реИред
 // Very bad $iaxfields[] = array($account,'account',$account); $iaxfields[] = array($account,'callerid',(isset($_REQUEST['description']) && $_REQUEST['description'] != '')?$_REQUEST['description']." <".$account.'>':'device'." <".$account.'>'); 

рд╣рдо рдпрд╣ рдирд╣реАрдВ рд╕реЛрдЪреЗрдВрдЧреЗ рдФрд░ рдЦреЛрдЬ рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдпрд╣ рд╡рд┐рд╡рд░рдг рдХрд╣рд╛рдВ рд╕реЗ рдорд┐рд▓рддрд╛ рд╣реИ, рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдмрдирд╛рддреЗ рд╕рдордп, рдЖрд╡рд╢реНрдпрдХ рдлрд╝реАрд▓реНрдб рдбрд┐рд╕реНрдкреНрд▓реЗ рдирд╛рдо рд╣реИ рдФрд░ рдмрд╕ рд╡рд╣рд╛рдВ рд╣рдо рдХрд░реНрдордЪрд╛рд░реА рдХрд╛ рдирд╛рдо рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╣рдо рдПрдХ рдЫреЛрдЯреА рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╣реА рдХрд░реЗрдВрдЧреЗред
рдлрд╝рд╛рдЗрд▓ рдХреЗ рдмреИрдХрдЕрдк рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдордд рднреВрд▓рдирд╛ рдЕрдЪрд╛рдирдХ рдХреНрдпрд╛ рдЧрд▓рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рдЕрддрд┐рд╢рдпреЛрдХреНрддрд┐рдкреВрд░реНрдг рд╣реБрдХ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╣рд╛рдВ, рдЖрдкрдХреЛ рдпрд╣ рд▓рдбрд╝рд╛рдИ рд╕рд░реНрд╡рд░ рдкрд░ рддреБрд░рдВрдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рд▓рд╛рдЗрди рдореЗрдВ рдмрджрд▓реЗрдВ
 $_REQUEST['description'] 

рдкрд░
 $_REQUEST['name'] 

рд╣рдореЗрдВ рдорд┐рд▓рддрд╛ рд╣реИ:
 $sipfields[] = array($account,'callerid',(isset($_REQUEST['name']) && $_REQUEST['name'])?$_REQUEST['name']." <".$account.'>':'device'." <".$account.'>'); 

рд╕рд╣реЗрдЬреЗрдВ, рд╡реЗрдм рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ рдкреБрдирдГ рд╕рд╣реЗрдЬреЗрдВред
рд╣рдо рд╕реАрдПрд▓рдЖрдИ рддрд╛рд░рд╛рдВрдХрди рд░реВрдк рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЖрдирдВрдж рд▓реЗрддреЗ рд╣реИрдВ:
 trixbox1*CLI> sip show peer 114 trixbox1*CLI> * Name : 114 Secret : <Set> MD5Secret : <Not set> Context : from-internal Subscr.Cont. : <Not set> Language : ru AMA flags : Unknown Transfer mode: open CallingPres : Presentation Allowed, Not Screened Callgroup : Pickupgroup : Mailbox : 114@device VM Extension : *97 LastMsgsSent : 0/0 Call limit : 50 Dynamic : Yes Callerid : "Ivan Petrov" <114> MaxCallBR : 384 kbps Expire : 1410 Insecure : no Nat : Always ACL : Yes T38 pt UDPTL : No CanReinvite : No PromiscRedir : No User=Phone : No Video Support: Yes Trust RPID : No Send RPID : No Subscriptions: Yes Overlap dial : Yes DTMFmode : rfc2833 LastMsg : 0 ToHost : Addr->IP : 192.168.0.95 Port 5060 Defaddr->IP : 0.0.0.0 Port 5060 Def. Username: 114 SIP Options : (none) Codecs : 0x28000c (ulaw|alaw|h263|h264) Codec Order : (ulaw:20,alaw:20) Auto-Framing: No Status : OK (18 ms) Useragent : PolycomSoundPointIP-SPIP_321-UA/3.1.3.0507 Reg. Contact : sip:114@192.168.0.95 

рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИ, рдпрд╣ рдХреЗрд╡рд▓ рд╕рднреА рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИ рддрд╛рдХрд┐ рдЯреНрд░рд╛рдЗрдХреНрд╕рдмреЙрдХреНрд╕ рд╕рд╣реА рдХреЙрд▓рд░ рдЖрдИрдбреА рдХреЗ рд╕рд╛рде рдХреЙрдиреНрдлрд┐рдЧ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░ рджреЗред

рд╣рдо рдФрд░ рдЖрдЧреЗ рдмрдврд╝реЗрдВред
рдкреЙрд▓реАрдХреЙрдо рдлреЛрди рдХреЛ рджреВрд░ рд╕реЗ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрд╛рд░рд╛рдВрдХрди рдЪрд┐рд╣реНрди рд╕рд┐рдЦрд╛рдПрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ /etc/asterisk/sip_notify.conf рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
 [polycom-check-cfg] Event=>check-sync Content-Length=>0 

рдкреБрдирдГ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ рддрд╛рд░рд╛рдВрдХрди рдЪрд┐рд╣реНрдиред
рдЙрд╕рдХреЗ рдмрд╛рдж рдпрджрд┐ рддрд╛рд░рд╛рдВрдХрди рдЪрд┐рд╣реНрди CLI рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ
 sip notify polycom-check-cfg 114 

рдкреЙрд▓реАрдХреЙрдо рдЯреЗрд▓реАрдлреЛрди рд╕реЗрдЯ рдЬрд┐рд╕ рдкрд░ 114 рдкрдВрдЬреАрдХреГрдд рд╣реИ, рд░рд┐рдмреВрдЯ рд╣реЛрдЧрд╛ред
рдЕрдЧрд▓рд╛ рд╣рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рдлреЛрди рдХреА рдПрдХ рд╕реВрдЪреА рдорд┐рд▓рддреА рд╣реИ, рд╣рдореЗрдВ рдЙрдирдХреЗ рджреВрд░рд╕реНрде рд░рд┐рдмреВрдЯ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ
 asterisk -rx 'sip show peers' 

рд╣рдореЗрдВ рдорд┐рд▓рддрд╛ рд╣реИ
 354/354 192.168.0.226 DNA 5060 OK (19 ms) 353/353 192.168.0.108 DNA 5060 OK (15 ms) 352 (Unspecified) DNA 0 UNKNOWN 351 (Unspecified) DNA 0 UNKNOWN 342/342 192.168.0.138 DNA 5061 OK (7 ms) 341/341 192.168.0.138 DNA 5060 OK (7 ms) 

Grep рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рдЕрдирд╛рд╡рд╢реНрдпрдХ рдХреЛ рд╣рдЯрд╛ рджреЗрддреЗ рд╣реИрдВ (рд╣рдо рдХреЗрд╡рд▓ рдЙрд╕ рд╕рдордп рдкрдВрдЬреАрдХреГрдд рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ рдЬреЛ рд╡реЗ "рдУрдХреЗ" рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде рд╕реВрдЪреА рдореЗрдВ рд╣реИрдВ рдФрд░ рд╣рдо рдХреЗрд╡рд▓ рдлреЛрди рдирдВрдмрд░ рдЕрд▓рдЧ рдХрд░рддреЗ рд╣реИрдВ)
  asterisk -rx 'sip show peers' |grep OK |awk '{print $1}'|awk -F'/' '{print $1}' 

рд╣рдореЗрдВ рдорд┐рд▓рддрд╛ рд╣реИ
 400 363 362 361 359 357 356 355 354 353 342 

рд╣рдо рдкрд░рд┐рдгрд╛рдо рдХреЛ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдлрд╝рд╛рдЗрд▓ рдкрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рд╡рд╣рд╛рдВ рд╕реЗ рд▓рд╛рдЗрди рджреНрд╡рд╛рд░рд╛ рд▓рд╛рдЗрди рдкрдврд╝рдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред
  asterisk -rx 'sip show peers' |grep OK |awk '{print $1}'|awk -F'/' '{print $1}' > numbers.txt 

рдЗрд╕ рд╕реВрдЪреА рдореЗрдВ рд╣рдореЗрдВ рд╡реЗ рдлреЛрди рдорд┐рд▓реЗ рдЬрд┐рдиреНрд╣реЗрдВ рд░рд┐рдмреВрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдЙрдирдореЗрдВ рд▓реЛрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рджреВрд╕рд░реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рд╣рдо xml рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕реНрд╡рдпрдВ рдмрдирд╛рддреЗ рд╣реИрдВ (рдлрд┐рд░ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдХреЛ рдЫреЛрдбрд╝рдХрд░) рдФрд░ рдлрд╝рд╛рдЗрд▓ рдкрд░ рд▓рд┐рдЦреЗрдВред
 asterisk -rx 'sip show peers' |egrep 'OK|UNKNOWN' |grep -v 'GSM' > extensions.txt 

рдХреЙрд▓рд░ рдЖрдИрдбреА рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛рддреА рд╣реИ
 asterisk -rx 'sip show peer 114' |grep Callerid 

рдЗрд╕рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдХреЙрд▓рд░ рдЖрдИрдбреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдкрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрди рджреНрд╡рд╛рд░рд╛ Extension.txt рд▓рд╛рдЗрди рдХреЛ рдкрдврд╝рдирд╛ рд╣реЛрдЧрд╛, рдЬрд┐рд╕рд╕реЗ рдордХреНрдЦреА рдкрд░ xml рдЯреБрдХрдбрд╝реЗ рдмрдиреЗрдВрдЧреЗред
рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╕рдВрджрд░реНрдн 000000000000-directory.xml рдмрдирд╛рдПрдВрдЧреЗред рдЗрд╕реЗ рдлреЛрди рджреНрд╡рд╛рд░рд╛ рдХреЗрд╡рд▓ 1 рдмрд╛рд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдкрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдм рдлрд╝реЛрди рдкрд╣рд▓реЗ рд▓реЛрдб рд╣реЛрддрд╛ рд╣реИ, рддреЛ / tftpboot / polycom / рд╕рдВрдкрд░реНрдХреЛрдВ / рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ macaddress-directory.xml рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИ рдЬреЛ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд▓рдЧрд╛рддрд╛рд░ рд▓реЛрдб рдХреА рдЬрд╛рдПрдЧреА (рдпрд╣рд╛рдБ) рд╕рдВрджрд░реНрдн рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЧрдарди рдХреА рдорджрдж рд╕реЗ рд╡рд░реНрддрдорд╛рди рд╡рд╛рд▓реЗ рдХреЛ рдмрджрд▓рдирд╛ рднреВрд▓ рдЬрд╛рдПрдВ рддрд╛рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдлреЛрди рдкрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдП)ред рдЪреВрдВрдХрд┐ рдЗрд╕ xml рдореЗрдВ рд╣реЗрдбрд░ рдФрд░ рдПрдХ рд╕рдВрд░рдЪрдирд╛ рдХреА рдЬрд░реВрд░рдд рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕реЗ рдлреЛрди рд╕рдордЭрддрд╛ рд╣реИред рд╣рдо рдЯрд╛рдЗрдк рдХрд░рддреЗ рд╣реИрдВ:
 echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>' > 000000000000-directory.xml echo '<!-- $RCSfile$ $Revision: 35928 $ -->' >> 000000000000-directory.xml echo '<directory>' >> 000000000000-directory.xml echo ' <item_list>' >> 000000000000-directory.xml 

рдЯреИрдм рдХреЗ рд╕рд╛рде рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐ рдХреЛ рдиреЛрдЯрд┐рд╕ рдХрд░реЗрдВ, рддрд╛рдХрд┐ рдлреЙрд░реНрдо рдмрдирд╛рддреЗ рд╕рдордп рдлрд╝рд╛рдЗрд▓ рд╕реБрдВрджрд░ рд╣реЛ, рдФрд░ рд╕рдВрд░рдЪрд┐рдд рд╣реЛред
рдЗрд╕рдХреЗ рдмрд╛рдж extension.txt рд░реАрдб рд▓реВрдк рд╣реИ
 cat extensions.txt | while read line do 

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рд╕рдм рдХреБрдЫ рд╕реЗ рдореБрдХреНрдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ (рдлреИрдХреНрд╕, рдореБрдлреНрдд рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдиреЛрдВ, 1000x рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдирдВрдмрд░, рдЖрджрд┐)ред
 RES=$(asterisk -rx "sip show peer $line" |grep Callerid |grep -v 'Free' |grep -v 'free' |grep -v 'fax' |grep -v '1000' |grep -v 'device' |grep -v 'FAX' |grep -v 'Test'); if [ "$RES" != "" ]; then 

рдФрд░ рдпрд╣рд╛рдБ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА xml рдХреЛрдб рдХрд╛ рдПрдХ рд╕реБрдВрджрд░ рдЯреБрдХрдбрд╝рд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ
 asterisk -rx "sip show peer $line" |grep Callerid | awk -F': "' '{print $2}' | awk -F'" <' '{print \ "\t\t<item>\n\t\t\t<ln>"$1"</ln>\n\t\t\t<ct>"$2"</ct>\n\t\t</item>"}' >> 000000000000-directory.xml 

рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ
  <item> <ln>Ivan Petrov</ln> <ct>114></ct> </item> 

рдЦреИрд░, рд╣рдо xml рд╕рдВрд░рдЪрдирд╛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ
 echo ' </item_list>' >> 000000000000-directory.xml echo '</directory>' >> 000000000000-directory.xml 

рдкреВрд░реНрдг xml рдлрд╝рд╛рдЗрд▓ рдкреАрдврд╝реА рдХреЛрдб:
 echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>' > 000000000000-directory.xml echo '<!-- $RCSfile$ $Revision: 35928 $ -->' >> 000000000000-directory.xml echo '<directory>' >> 000000000000-directory.xml echo ' <item_list>' >> 000000000000-directory.xml cat extensions.txt | while read line do RES=$(asterisk -rx "sip show peer $line" |grep Callerid |grep -v 'Free' |grep -v 'free' |grep -v 'fax' |grep -v '1000' |grep -v 'device' |grep -v 'FAX' |grep -v 'Test'); if [ "$RES" != "" ]; then asterisk -rx "sip show peer $line" |grep Callerid | awk -F': "' '{print $2}' | awk -F'" <' '{print \ "\t\t<item>\n\t\t\t<ln>"$1"</ln>\n\t\t\t<ct>"$2"</ct>\n\t\t</item>"}' >> 000000000000-directory.xml fi done echo ' </item_list>' >> 000000000000-directory.xml echo '</directory>' >> 000000000000-directory.xml 

рд╕рднреА Polycom рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП, рдореИрдХ рдкрддрд╛ 00: 04: F рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдпрд╣рд╛рдБ рд╕реЗ рдЖрдк arp рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рд╕рднреА рдлреЛрди рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ
 arp -a |grep 00:04:F |awk '{print $4}' > mac.txt 

рдХреЙрдкреА 000000000000-directory.xml рдХреЛ macaddress-directory.xml рдкрд░
 cat mac.txt |while read phonemac do MAC=${phonemac//:/}; #     ":"   cp /tftpboot/polycom/contacts/000000000000-directory.xml /tftpboot/polycom/contacts/$MAC-directory.xml done 

рдареАрдХ рд╣реИ, рдирдВрдмрд░ рдкрд░ рдПрдХ рд▓реВрдк рдореЗрдВ рд▓рдЧрднрдЧ рдлрд┐рдирд┐рд╢ рд▓рд╛рдЗрдиред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рд╣рдореЗрдВ рдлреЛрди рдкрд░ рд░рд┐рдмреВрдЯ рдорд┐рд▓рддрд╛ рд╣реИред
 cat numbers.txt |while read number do asterisk -rx "sip notify polycom-check-cfg $number" done 

рдкреВрд░реНрдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб:
 #!/bin/sh asterisk -rx 'sip show peers' |grep OK |awk '{print $1}'|awk -F'/' '{print $1}' > numbers.txt asterisk -rx 'sip show peers' |egrep 'OK|UNKNOWN' |grep -v 'GSM' |awk '{print $1}'|awk -F'/' '{print $1}' > extensions.txt arp -a |grep 00:04:F |awk '{print $4}' > mac.txt echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>' > 000000000000-directory.xml echo '<!-- $RCSfile$ $Revision: 35928 $ -->' >> 000000000000-directory.xml echo '<directory>' >> 000000000000-directory.xml echo ' <item_list>' >> 000000000000-directory.xml cat extensions.txt | while read line do RES=$(asterisk -rx "sip show peer $line" |grep Callerid |grep -v 'Free' |grep -v 'free' |grep -v 'fax' |grep -v '1000' |grep -v 'device' |grep -v 'FAX' |grep -v 'Test'); if [ "$RES" != "" ]; then asterisk -rx "sip show peer $line" |grep Callerid | awk -F': "' '{print $2}' | awk -F'" <' '{print "\t\t<item>\n\t\t\t<ln>"$1"</ln>\n\t\t\t<ct>"$2"</ct>\n\t\t</item>"}' >> 000000000000-directory.xml fi done echo ' </item_list>' >> 000000000000-directory.xml echo '</directory>' >> 000000000000-directory.xml cp 000000000000-directory.xml /tftpboot/polycom/contacts/000000000000-directory.xml cat mac.txt |while read phonemac do MAC=${phonemac//:/}; cp /tftpboot/polycom/contacts/000000000000-directory.xml /tftpboot/polycom/contacts/$MAC-directory.xml done cat numbers.txt |while read number do asterisk -rx "sip notify polycom-check-cfg $number" done rm numbers.txt rm extensions.txt rm mac.txt rm 000000000000-directory.xml 

рд╣рдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ /etc/cron.daily рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рд╣реЗрдЬрддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣рд░ рд░рд╛рдд рд╕рднреА рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ рдбреЗрд╕реНрдХ рдлреЛрди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдВрддреБрд╖реНрдЯ рд╣реИрдВ, рдХрд╛рд░реНрдпрд╛рд▓рдп рдореЗрдВ рдХрд╛рдЧрдЬ рд╡реНрдпрд░реНрде рдирд╣реАрдВ рд╣реИред


Source: https://habr.com/ru/post/In211606/


All Articles