Re: [Asterisk-Users] Polycom Reboot Script PRI errors!!
Simon Brown wrote: Has anyone written an equivalent script to remote reboot Cisco 79XX phones? Simon Check the wiki... there are two versions for cisco, one that uses the check-sync sip message, the other that simply logs into the phone via telnet and 'reset's the phone. I have made some changes to the latter and use it in production along with some other console commands to remotely setup things like my intercom line, server push, etc. Anyway, the wiki link is http://www.voip-info.org/wiki-Asterisk+phone+cisco+79xx If you look about 1/3 way down the page you'll see a link to 'reboot.pl' pointing to http://mklein.bendtel.net/mkreboot.pl That should get you going. Chris -- Christopher L. Wade Unistar-Sparco Computers, Inc. Senior Systems Administratordba Sparco.com Email: [EMAIL PROTECTED] 7089 Ryburn Drive Phone: (901) 872 2272 / (800) 840 8400Millington, TN 38053 Fax: (901) 872 8482 USA ___ Asterisk-Users mailing list [EMAIL PROTECTED] http://lists.digium.com/mailman/listinfo/asterisk-users To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
RE: [Asterisk-Users] Polycom Reboot Script PRI errors!!
Has anyone written an equivalent script to remote reboot Cisco 79XX phones? Simon -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of John Baker Sent: Monday, 29 November 2004 17:29 To: Asterisk Users Mailing List - Non-Commercial Discussion Subject: Re: [Asterisk-Users] Polycom Reboot Script PRI errors!! Kevin wrote: > There is a reboot script posted on the wiki to reboot Polycom > telephones. When I execute this script, I get the following messages. > I am concerned as this is causing issues with asterisk and the PRI. > Does anyone have any ideas why this would be happening? > > > > asterisk console: > > -- Remote UNIX connection > -- Remote UNIX connection disconnected > > and in the Asterisk Log: > > Nov 28 22:30:42 NOTICE[1099909936]: PRI got event: 6 on Primary > D-channel of span 1 Nov 28 22:43:08 NOTICE[1099909936]: PRI got event: > 6 on Primary D-channel of span 1 > > > Script: > > #!/usr/bin/perl -w > > use Net::Ping; > use Socket; > > $polycompath = '/home//';# Where you keep your config files > $arp = '/sbin/arp'; # Location of arp command > $sipserver = '192.168.XXX.XXX'; # IP of asterisk server > > $phone = shift; > > checkphone("$phone"); > touch( arp2config("$phone") ); > > reboot_sip_phone( "$phone", "$sipserver", "Reboot" ); > > sub checkphone { # Checks for existence of phone, makes sure > # it's in arp table > $activephone = shift; > > # Populate ARP table > print "Checking ARP table.\n"; > $p = Net::Ping->new("icmp"); > if ( $p->ping( $activephone, 2 ) ) { > print "$activephone is "; > print "reachable.\n"; > } > else { die "Polycom at ", $activephone, " is not reachable!"; } > sleep(1); > $p->close(); > > } > > sub arp2config {# Gets mac address from arp table, converts > # to a polycom config filename, makes sure > # the config file exists > $arpip = shift; > open( ARP, "$arp -an|" ) || die "Couldn't open arp table: $!\n"; > print "checking for polycom config name...", "\n"; > while () { > chomp; > $addr = $_; > $ip = $_; > $addr =~ s/.* > ([\d\w]+:[\d\w]+:[\d\w]+:[\d\w]+:[\d\w]+:[\d\w]+).*/$1/; > $addr =~ s/://g; > $addr = lc($addr) . '.cfg'; > $ip =~ s/.*?(\d+\.\d+\.\d+\.\d+).*/$1/; > if ( $ip eq $arpip ) { > last; > } > } > > $polycomconfig = "$polycompath" . "$addr"; > > unless ( -e "$polycomconfig" ) { > print "sorry, polycom config file ", "$polycomconfig", > " is not found.\n\n"; > exit; > } > > return $polycomconfig; > } > > sub touch {# We need to touch the config files or the phone ># won't reboot - it depends on time synchronization > > print "touching config file ", $polycomconfig, "\n"; > my $now = time; > local (*TMP); > foreach my $file (@_) { > utime( $now, $now, $file ) > || open( TMP, ">>$file" ) > || die ("$0: Couldn't touch file: $!\n"); > } > } > > sub reboot_sip_phone {# Send the phone a check-sync to reboot it > $phone_ip = shift; > > $local_ip = shift; > $sip_to = shift; > $sip_from = "0"; > $tm = time(); > $call_id = $tm . "msgto$sip_to"; > $httptime = `date -R`; > $MESG = "NOTIFY sip:[EMAIL PROTECTED]:5060 SIP/2.0 > Via: SIP/2.0/UDP $local_ip > From: > To: > Event: check-sync > Date: $httptime > Call-ID: [EMAIL PROTECTED] > CSeq: 1300 NOTIFY > Contact: > Content-Length: 0 > > "; > > $proto = getprotobyname('udp'); > socket( SOCKET, PF_INET, SOCK_DGRAM, $proto ); > $iaddr = inet_aton("$phone_ip"); > $paddr = sockaddr_in( 5060, $iaddr ); > bind( SOCKET, $paddr ); > $port = 5060; > > $hisiaddr = inet_aton($phone_ip); > $hispaddr = sockaddr_in( $port, $hisiaddr ); > > if ( send( SOCKET, $MESG, 0, $hispaddr ) ) { > print "reboot of phone ", "$phone_ip", " was successful", "\n"; > } > else { print "reboot of phone &
RE: [Asterisk-Users] Polycom Reboot Script PRI errors!!
Kevin wrote: > There is a reboot script posted on the wiki to reboot Polycom > telephones. When I execute this script, I get the following messages. > I am concerned as this is causing issues with asterisk and the PRI. > Does anyone have any ideas why this would be happening? > > > > asterisk console: > > -- Remote UNIX connection > -- Remote UNIX connection disconnected > > and in the Asterisk Log: > > Nov 28 22:30:42 NOTICE[1099909936]: PRI got event: 6 on Primary > D-channel of span 1 Nov 28 22:43:08 NOTICE[1099909936]: PRI got event: > 6 on Primary D-channel of span 1 > > > Script: > > #!/usr/bin/perl -w > > use Net::Ping; > use Socket; > > $polycompath = '/home//';# Where you keep your config files > $arp = '/sbin/arp'; # Location of arp command > $sipserver = '192.168.XXX.XXX'; # IP of asterisk server > > $phone = shift; > > checkphone("$phone"); > touch( arp2config("$phone") ); > > reboot_sip_phone( "$phone", "$sipserver", "Reboot" ); > > sub checkphone { # Checks for existence of phone, makes sure > # it's in arp table > $activephone = shift; > > # Populate ARP table > print "Checking ARP table.\n"; > $p = Net::Ping->new("icmp"); > if ( $p->ping( $activephone, 2 ) ) { > print "$activephone is "; > print "reachable.\n"; > } > else { die "Polycom at ", $activephone, " is not reachable!"; } > sleep(1); > $p->close(); > > } > > sub arp2config {# Gets mac address from arp table, converts > # to a polycom config filename, makes sure > # the config file exists > $arpip = shift; > open( ARP, "$arp -an|" ) || die "Couldn't open arp table: $!\n"; > print "checking for polycom config name...", "\n"; > while () { > chomp; > $addr = $_; > $ip = $_; > $addr =~ s/.* > ([\d\w]+:[\d\w]+:[\d\w]+:[\d\w]+:[\d\w]+:[\d\w]+).*/$1/; > $addr =~ s/://g; > $addr = lc($addr) . '.cfg'; > $ip =~ s/.*?(\d+\.\d+\.\d+\.\d+).*/$1/; > if ( $ip eq $arpip ) { > last; > } > } > > $polycomconfig = "$polycompath" . "$addr"; > > unless ( -e "$polycomconfig" ) { > print "sorry, polycom config file ", "$polycomconfig", > " is not found.\n\n"; > exit; > } > > return $polycomconfig; > } > > sub touch {# We need to touch the config files or the phone ># won't reboot - it depends on time synchronization > > print "touching config file ", $polycomconfig, "\n"; > my $now = time; > local (*TMP); > foreach my $file (@_) { > utime( $now, $now, $file ) > || open( TMP, ">>$file" ) > || die ("$0: Couldn't touch file: $!\n"); > } > } > > sub reboot_sip_phone {# Send the phone a check-sync to reboot it > $phone_ip = shift; > > $local_ip = shift; > $sip_to = shift; > $sip_from = "0"; > $tm = time(); > $call_id = $tm . "msgto$sip_to"; > $httptime = `date -R`; > $MESG = "NOTIFY sip:[EMAIL PROTECTED]:5060 SIP/2.0 > Via: SIP/2.0/UDP $local_ip > From: > To: > Event: check-sync > Date: $httptime > Call-ID: [EMAIL PROTECTED] > CSeq: 1300 NOTIFY > Contact: > Content-Length: 0 > > "; > > $proto = getprotobyname('udp'); > socket( SOCKET, PF_INET, SOCK_DGRAM, $proto ); > $iaddr = inet_aton("$phone_ip"); > $paddr = sockaddr_in( 5060, $iaddr ); > bind( SOCKET, $paddr ); > $port = 5060; > > $hisiaddr = inet_aton($phone_ip); > $hispaddr = sockaddr_in( $port, $hisiaddr ); > > if ( send( SOCKET, $MESG, 0, $hispaddr ) ) { > print "reboot of phone ", "$phone_ip", " was successful", "\n"; > } > else { print "reboot of phone ", "$phone_ip", " failed", "\n"; } > > } > exit; > > ___ > Asterisk-Users mailing list > [EMAIL PROTECTED] > http://lists.digium.com/mailman/listinfo/asterisk-users > To UNSUBSCRIBE or update options visit: >http://lists.digium.com/mailman/listinfo/asterisk-users > > Kevin - I rewrote this some time ago because of some issues with Polycom's latest bootroom/sip update. Try this: Also, serctl, part of the ser package, has a cisco_restart parameter that works on Polycoms as well. John #!/usr/bin/perl -w use Net::Ping; use Socket; $polycompath = '/home/PlcmSpIp/';# Where you keep your polycom files $arp = '/sbin/arp'; # Location of arp command $sipserver = '192.168.XXX.XXX'; # IP of asterisk server $phone = shift; checkphone("$phone"); touch( arp2config("$phone") ); reboot_sip_phone( "$phone", "$sipserver", get_extension($phone) ); sub checkphone { # Checks for existence of phone, makes sure # it's in arp table $activephone = shift; # Populate ARP table print "Checking ARP table.\n"; $p = Net::Ping->new("icmp"); if
Re: [Asterisk-Users] Polycom Reboot Script PRI errors!!
Kevin wrote: There is a reboot script posted on the wiki to reboot Polycom telephones. When I execute this script, I get the following messages. I am concerned as this is causing issues with asterisk and the PRI. Does anyone have any ideas why this would be happening? asterisk console: -- Remote UNIX connection -- Remote UNIX connection disconnected and in the Asterisk Log: Nov 28 22:30:42 NOTICE[1099909936]: PRI got event: 6 on Primary D-channel of span 1 Nov 28 22:43:08 NOTICE[1099909936]: PRI got event: 6 on Primary D-channel of span 1 Script: #!/usr/bin/perl -w use Net::Ping; use Socket; $polycompath = '/home//';# Where you keep your config files $arp = '/sbin/arp'; # Location of arp command $sipserver = '192.168.XXX.XXX'; # IP of asterisk server $phone = shift; checkphone("$phone"); touch( arp2config("$phone") ); reboot_sip_phone( "$phone", "$sipserver", "Reboot" ); sub checkphone { # Checks for existence of phone, makes sure # it's in arp table $activephone = shift; # Populate ARP table print "Checking ARP table.\n"; $p = Net::Ping->new("icmp"); if ( $p->ping( $activephone, 2 ) ) { print "$activephone is "; print "reachable.\n"; } else { die "Polycom at ", $activephone, " is not reachable!"; } sleep(1); $p->close(); } sub arp2config {# Gets mac address from arp table, converts # to a polycom config filename, makes sure # the config file exists $arpip = shift; open( ARP, "$arp -an|" ) || die "Couldn't open arp table: $!\n"; print "checking for polycom config name...", "\n"; while () { chomp; $addr = $_; $ip = $_; $addr =~ s/.* ([\d\w]+:[\d\w]+:[\d\w]+:[\d\w]+:[\d\w]+:[\d\w]+).*/$1/; $addr =~ s/://g; $addr = lc($addr) . '.cfg'; $ip =~ s/.*?(\d+\.\d+\.\d+\.\d+).*/$1/; if ( $ip eq $arpip ) { last; } } $polycomconfig = "$polycompath" . "$addr"; unless ( -e "$polycomconfig" ) { print "sorry, polycom config file ", "$polycomconfig", " is not found.\n\n"; exit; } return $polycomconfig; } sub touch {# We need to touch the config files or the phone # won't reboot - it depends on time synchronization print "touching config file ", $polycomconfig, "\n"; my $now = time; local (*TMP); foreach my $file (@_) { utime( $now, $now, $file ) || open( TMP, ">>$file" ) || die ("$0: Couldn't touch file: $!\n"); } } sub reboot_sip_phone {# Send the phone a check-sync to reboot it $phone_ip = shift; $local_ip = shift; $sip_to = shift; $sip_from = "0"; $tm = time(); $call_id = $tm . "msgto$sip_to"; $httptime = `date -R`; $MESG = "NOTIFY sip:[EMAIL PROTECTED]:5060 SIP/2.0 Via: SIP/2.0/UDP $local_ip From: To: Event: check-sync Date: $httptime Call-ID: [EMAIL PROTECTED] CSeq: 1300 NOTIFY Contact: Content-Length: 0 "; $proto = getprotobyname('udp'); socket( SOCKET, PF_INET, SOCK_DGRAM, $proto ); $iaddr = inet_aton("$phone_ip"); $paddr = sockaddr_in( 5060, $iaddr ); bind( SOCKET, $paddr ); $port = 5060; $hisiaddr = inet_aton($phone_ip); $hispaddr = sockaddr_in( $port, $hisiaddr ); if ( send( SOCKET, $MESG, 0, $hispaddr ) ) { print "reboot of phone ", "$phone_ip", " was successful", "\n"; } else { print "reboot of phone ", "$phone_ip", " failed", "\n"; } } exit; ___ Asterisk-Users mailing list [EMAIL PROTECTED] http://lists.digium.com/mailman/listinfo/asterisk-users To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users Kevin - I rewrote this some time ago because of some issues with Polycom's latest bootroom/sip update. Try this: Also, serctl, part of the ser package, has a cisco_restart parameter that works on Polycoms as well. John #!/usr/bin/perl -w use Net::Ping; use Socket; $polycompath = '/home/PlcmSpIp/';# Where you keep your polycom files $arp = '/sbin/arp'; # Location of arp command $sipserver = '192.168.XXX.XXX'; # IP of asterisk server $phone = shift; checkphone("$phone"); touch( arp2config("$phone") ); reboot_sip_phone( "$phone", "$sipserver", get_extension($phone) ); sub checkphone { # Checks for existence of phone, makes sure # it's in arp table $activephone = shift; # Populate ARP table print "Checking ARP table.\n"; $p = Net::Ping->new("icmp"); if ( $p->ping( $activephone, 2 ) ) { print "$activephone is "; print "reachable.\n"; } else { die "Polycom at ", $activephone, " is not reachable!"; } sleep(1); $p->close(); } sub arp2config {# Gets mac address from arp table, converts # to a polycom config filename, makes sure
[Asterisk-Users] Polycom Reboot Script PRI errors!!
There is a reboot script posted on the wiki to reboot Polycom telephones. When I execute this script, I get the following messages. I am concerned as this is causing issues with asterisk and the PRI. Does anyone have any ideas why this would be happening? asterisk console: -- Remote UNIX connection -- Remote UNIX connection disconnected and in the Asterisk Log: Nov 28 22:30:42 NOTICE[1099909936]: PRI got event: 6 on Primary D-channel of span 1 Nov 28 22:43:08 NOTICE[1099909936]: PRI got event: 6 on Primary D-channel of span 1 Script: #!/usr/bin/perl -w use Net::Ping; use Socket; $polycompath = '/home//';# Where you keep your config files $arp = '/sbin/arp'; # Location of arp command $sipserver = '192.168.XXX.XXX'; # IP of asterisk server $phone = shift; checkphone("$phone"); touch( arp2config("$phone") ); reboot_sip_phone( "$phone", "$sipserver", "Reboot" ); sub checkphone { # Checks for existence of phone, makes sure # it's in arp table $activephone = shift; # Populate ARP table print "Checking ARP table.\n"; $p = Net::Ping->new("icmp"); if ( $p->ping( $activephone, 2 ) ) { print "$activephone is "; print "reachable.\n"; } else { die "Polycom at ", $activephone, " is not reachable!"; } sleep(1); $p->close(); } sub arp2config {# Gets mac address from arp table, converts # to a polycom config filename, makes sure # the config file exists $arpip = shift; open( ARP, "$arp -an|" ) || die "Couldn't open arp table: $!\n"; print "checking for polycom config name...", "\n"; while () { chomp; $addr = $_; $ip = $_; $addr =~ s/.* ([\d\w]+:[\d\w]+:[\d\w]+:[\d\w]+:[\d\w]+:[\d\w]+).*/$1/; $addr =~ s/://g; $addr = lc($addr) . '.cfg'; $ip =~ s/.*?(\d+\.\d+\.\d+\.\d+).*/$1/; if ( $ip eq $arpip ) { last; } } $polycomconfig = "$polycompath" . "$addr"; unless ( -e "$polycomconfig" ) { print "sorry, polycom config file ", "$polycomconfig", " is not found.\n\n"; exit; } return $polycomconfig; } sub touch {# We need to touch the config files or the phone # won't reboot - it depends on time synchronization print "touching config file ", $polycomconfig, "\n"; my $now = time; local (*TMP); foreach my $file (@_) { utime( $now, $now, $file ) || open( TMP, ">>$file" ) || die ("$0: Couldn't touch file: $!\n"); } } sub reboot_sip_phone {# Send the phone a check-sync to reboot it $phone_ip = shift; $local_ip = shift; $sip_to = shift; $sip_from = "0"; $tm = time(); $call_id = $tm . "msgto$sip_to"; $httptime = `date -R`; $MESG = "NOTIFY sip:[EMAIL PROTECTED]:5060 SIP/2.0 Via: SIP/2.0/UDP $local_ip From: To: Event: check-sync Date: $httptime Call-ID: [EMAIL PROTECTED] CSeq: 1300 NOTIFY Contact: Content-Length: 0 "; $proto = getprotobyname('udp'); socket( SOCKET, PF_INET, SOCK_DGRAM, $proto ); $iaddr = inet_aton("$phone_ip"); $paddr = sockaddr_in( 5060, $iaddr ); bind( SOCKET, $paddr ); $port = 5060; $hisiaddr = inet_aton($phone_ip); $hispaddr = sockaddr_in( $port, $hisiaddr ); if ( send( SOCKET, $MESG, 0, $hispaddr ) ) { print "reboot of phone ", "$phone_ip", " was successful", "\n"; } else { print "reboot of phone ", "$phone_ip", " failed", "\n"; } } exit; ___ Asterisk-Users mailing list [EMAIL PROTECTED] http://lists.digium.com/mailman/listinfo/asterisk-users To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users