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

Versión para impresiónSend by email

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.

¿Cómodo, verdad?

Distribuir contenido Distribuir contenido