Después de actualizar el firmware de unos teléfonos Aastra 9133i (a la versión 1.4.2.1081) me dí cuenta que dicho teléfono ya no podía recibir llamadas correctamente, después de establecida la comunicación después de 5 segundos se cortaba la llamada. En el CLI de Asterisk aparecía lo siguiente:
-- Called 1105
-- SIP/1105-08eb8a60 is ringing
Oct 30 18:59:40 WARNING[2405]: chan_sip.c:4083 set_destination: Can't find address for host '1105'
-- SIP/1105-08eb8a60 answered SIP/1102-08eb0238
Oct 30 18:59:41 WARNING[2405]: chan_sip.c:4083 set_destination: Can't find address for host '1105'
Oct 30 18:59:42 WARNING[2405]: chan_sip.c:4083 set_destination: Can't find address for host '1105'
Oct 30 18:59:44 WARNING[2405]: chan_sip.c:4083 set_destination: Can't find address for host '1105'
Asterisk trataba de encontrar la dirección IP del teléfono, pero al no encontrarla después de algunos segundos decidía cortar la comunicación. Habilité el debug de SIP en Asterisk para ver que estaba pasando, y oh sorpresa!!! dentro del string que usa como Caller ID y así saber quién y qué extensión usa ( Usuario <1105> ) no lo parseaba correctamente, ya que no podía separar dichos campos, lo tomaba como uno solo, es decir:
Al parecer el teléfono Aastra con esta versión de firmware no estaba pasando correctamente la cadena del CallerID, de tal manera que Asterisk no la podía procesar correctamente la negociación SIP. ¿Cuál fue la solución? Simple, dejar en blanco el campo de Caller ID en la configuración del teléfono, y dejar que Asterisk use el Caller ID que esta puesto en el archivo sip.conf.
Espero que les sirva!!!