Como evitar la perdida de registros en PJSIP

Una de las novedades del canal chan_pjsip es la posibilidad de poder registrar más de un dispositivo utilizando los mismos datos de registro. Una funcionalidad que desde hace mucho había sido solicitada y que no estaba presente en el canal chan_sip. Luego, utilizando la función PJSIP_DIAL_CONTACTS, es posible llamar todos los dispositivos registrados con los mismos datos del Endpoint (extensión); esto de forma paralela. Hasta el momento no hay forma de llamar todos los dispositivos registrados del mismo Endpoint de forma secuencial.

La opción para configurar el numero máximo de registros posibles para el mismo Endpoint es max_contacts y se configura en el archivo pjsip.conf, bloque de tipo AOR.  Ojala fuera todo tan sencillo. La opción que se acaba de mencionar interactúa con dos más:

  • remove_existing
  • rewrite_contact

remove_existing se utiliza para remover los registros más viejos o que no se han actualizado desde hace tiempo cuando llega un nuevo registro, que sumado a los existentes, supera el numero máximo indicado en la opción max_contacts.

rewrite_contact se utiliza para rescribir la cabecera Contact de los dispositivos que se encuentran detrás de un NAT siempre y cuando Aserisk logre detectar este tipo de situación. El "problema" de rewrite_contact es que un dispositivo detrás de un NAT puede volver a registrarse utilizando un nuevo puerto/IP asignados por el cortafuegos pues, para Asterisk es como si fuera un nuevo registro. Para evitar la perdida de registros "reales" de los dispositivos, la configuración aconsejada del parámetro max_contacts, según el tipo de escenario que se necesita, es:

  • valor 0 deshabilita la posibilidad de registro de los dispositivos
  • valor 1 con el parámetro remove_existing activo (=yes) reproduce el comportamiento del canal chan_sip es decir el nuevo registro borra el viejo
  • un valor doble al numero de los dispositivos que se quiere registrar garantiza que no haya perdidas de registros

Al tema del canal PJSIP de Asterisk será dedicado un curso a distancia, cuya fecha tentativa de inicio es el 6 de Agosto 2018. En este curso, además de instalar la ultima versión de la rama 13 de Asterisk, se verá muy en detalle la configuración del canal PJSIP para Extensiones, Troncales, Registros utilizando los archivos de configuración y en Realtime (base de datos) y usando los protocolos de trasporte UDP, TCP y TLS. La duración del curso será de 2 semanas y el costo de 70 dolares. Si quieren ser avisados cuando se abran las inscripciones, pueden escribir a campus@voztovoice.org