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
// 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
[polycom-check-cfg] Event=>check-sync Content-Length=>0
sip notify polycom-check-cfg 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)
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
asterisk -rx 'sip show peers' |egrep 'OK|UNKNOWN' |grep -v 'GSM' > extensions.txt
asterisk -rx 'sip show peer 114' |grep Callerid
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
<item> <ln>Ivan Petrov</ln> <ct>114></ct> </item>
echo ' </item_list>' >> 000000000000-directory.xml echo '</directory>' >> 000000000000-directory.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
arp -a |grep 00:04:F |awk '{print $4}' > mac.txt
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
Source: https://habr.com/ru/post/211606/