sábado, 7 de enero de 2012

Asterisk sip_notify.conf - Actualizando los teléfonos SIP desde remoto

Tenemos una instalación de Asterisk en la sede de un cliente donde todos los  teléfonos han sido configurados para autoprovisionarse desde remoto (provisioning). Sucede y pasa que un día nos llama el cliente porque quiere modificar, por ejemplo, algunas configuraciones de unas cuantas extensiones.



Hasta aquí nada de complicado. Entramos en la carpeta donde hemos guardado los archivos de autoprovisionamiento de los teléfonos y modificamos los parámetros que el cliente nos ha solicitado.


Otro ejemplo. Acaba de salir una nueva versión del firmware que resuelve unos “bugs” de los teléfonos instalados en la sede del cliente y queremos actualizarlos.


En este caso también entramos en la carpeta donde están las configuraciones de los teléfonos y copiamos el archivo de la nueva versión del firmware.


Ahora, ya que no tenemos acceso físicamente a los teléfonos, ¿Cómo hacemos para lean la nueva configuración/firmware?


Muy sencillo. Aprovechamos el comando sip notify de Asterisk.


 


Este comando envía un NOTIFY (RFC 3265) a la extensión que le indicamos y una vez que el teléfono lo reciba, éste volverá a buscar su configuración en el servidor anteriormente configurado en el dispositivo. El tipo evento presente en el NOTIFY será definido en el archivo de configuración sip_notify.conf. Algunos ejemplos presentes en el archivo:


; Teléfonos Aastra


[aastra-check-cfg] 
Event=>check-sync


El evento es check-sync que le indicará al teléfono que tiene que volver a sincronizar su configuración.


Otro ejemplo:


; Teléfonos Snom


[snom-reboot] 
Event=>reboot


En este caso se le indicará al teléfono que tiene que reiniciarse.


Miramos un ejemplo:


asterisk –rvvvvvvvvvvvvvvvvvvvv


CLI> sip notify aastra-check-cfg 1000


Con este comando enviamos un NOTIFY al teléfono Aastra configurado como extensión 1000 diciéndole que actualice su configuración. EL teléfono ha sido anteriormente configurado para buscar su configuración en un servidor FTP determinado.


 


El resultado del sip debug será:


NOTIFY sip:1000@XXX.XXX.XXX.XXX:5060;transport=udp SIP/2.0 
Via: SIP/2.0/UDP XXX.XXX.XXX.XXX:5060;branch=z9hG4bK3cf00277;rport 
Max-Forwards: 70 
From: "asterisk" <sip:asterisk@XXX.XXX.XXX.XXX>;tag=as5192a71d 
To: <sip:1000@XXX.XXX.XXX.XXX:5060;transport=udp> 
Contact: <sip:asterisk@XXX.XXX.XXX.XXX> 
Call-ID: 3f7e113464c955e52b5cca5c6f79e872@XXX.XXX.XXX.XXX 
CSeq: 102 NOTIFY 
User-Agent: Asterisk 
Subscription-State: terminated 
Event: check-sync 
Content-Length: 0


SIP/2.0 200 OK 
Via: SIP/2.0/UDP XXX.XXX.XXX.XXX:5060;branch=z9hG4bK3cf00277;rport=5060;received=XXX.XXX.XXX.XXX 
From: "asterisk" <sip:asterisk@XXX.XXX.XXX.XXX>;tag=as5192a71d 
To: <sip:1000@XXX.XXX.XXX.XXX:5060;transport=udp>;tag=1985788697 
Call-ID: 3f7e113464c955e52b5cca5c6f79e872@XXX.XXX.XXX.XXX 
CSeq: 102 NOTIFY 
Server: Aastra 55i/3.2.2.56 
Content-Length: 0


Como se puede ver en el primer bloque el Header Event contendrá el valor: check-sync


Después de unos segundos en el servidor FTP veremos la conexión del teléfono buscando su configuración. Una vez terminado el proceso, El teléfono se habrá actualizado con la nueva configuración.


Fuente: Voz To Voice

No hay comentarios.:

Publicar un comentario