Existen varias maneras de reiniciar los teléfonos Polycom desde Asterisk, pero todas se basan en el comando de consola "sip notify polycom-check-cfg [num_extension]".
Este comando se puede lanzar desde un dialplan, desde la propia consola o desde un script. También hay algún loco que se atreve a construir el paquete UDP de SIP y lanzarlo a la red.
Para que los Polycom acepten este tipo de eventos externos tenemos que cambiar en sip.cfg de los teléfonos el parámetro voIpProt.SIP.specialEvent.checkSync.alwaysReboot y cambiar el 0 por un 1. Una vez reiniciado el teléfono este ya es capaz de aceptar paquetes especiales, como por ejemplo los de reinicio.
El siguiente script en Perl hace una consulta a la base de datos MySql de Asterisk, lee todas las extensiones SIP existentes y va una por una reiniciando los teléfonos.
#!/usr/bin/perl use Mysql; $dbhost = "localhost"; $dbname = "asterisk"; $dbuser = "asteriskuser"; $dbpsw = "pswastx"; $connect = Mysql->connect($dbhost, $dbname, $dbuser, $dbpsw); $connect->selectdb($dbname); $myquery = " SELECT extension FROM users ORDER BY extension"; $execute = $connect->query($myquery); print "Reboot All Polycom v0.1b, por amperis <amperis\@gmail.com>\n"; while ( @results = $execute->fetchrow() ) { print " -> Reiniciando extension $results[0]...\n"; sleep 1; system("/usr/sbin/asterisk -rx \"sip notify polycom-check-cfg $results[0]\""); } print "Fin. Todos los telefonos estan reiniciados.\n\n";
0 comentarios:
hacer un comentario en esta entrada