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