Tengo instalado en un Linux Debian Lenny el software de Asterisk versión 1.4.40, con una tarjeta Sangoma A200 con 6 puertos FXO. La configuración está hecha por medio de "wanrouter", es decir, el archivo chan_dahdi.conf fue generado por el comando "wancfg_dahdi".
Ya he modificado varias veces chan_dahdi poniendo lo que más se recomienda en estos casos:
-------------------------------chan_dahdi.conf------------------------
callerid=asreceived
----------------------------------------------------------------------
El detalle radica en los tonos al entrar la llamada:
1.- Se marca el número desde un teléfono común.
2.- Se escucha el tono de marcado normal (TU, TU)
3.- Después de esos 2 tonos entra la llamada al servidor Asterisk por el canal DAHDI
4.- El dialplan que tengo despliega el caller ID gracias a una corrección que encontré en la página de VoIpInfo como sigue:
---------------------extensions_aditional.conf----------------------
exten=> 065,n,Set(CALLERID(num)=${CALLERID(num):0:40})
exten=> 065,n,Set(CALLERID(name)=${CALLERID(name):0:40})
exten=> 065,n,Noop(${CALLERID(all)})
--------------------------------------------------------------------
y en un Noop el Caller ID se muestra sin problemas.
5.- Se contesta la llamada, se cuelga ya sea por el usuario que llamó desde el teléfono común o desde la aplicación que posee un softphone integrado.
Hasta aqui todo va bien, sin embargo, si se realiza una nueva llamada, ya sea desde el mismo teléfono común u otro, pasa lo siguiente:
1.- Se escucha el tono de marcado (TU, TU) y posteriormente se escucha un tono distinto (TUTU <- esto significa seguidos no pausados como al principio de la llamada) enseguida, luego tarda unos momentos más en entrar la llamada, es decir, uno o dos tonos extra hasta que entra la llamada y es detectada por el servidor Asterisk.
2.- Se sigue el dialplan, pero ahora en el Noop que despliega el CallerID ya no lo presenta y solo muestra estos signos: ""<>
La llamada se contesta normalmente y se cuelga, pero en las subsiguientes pruebas ya no aparece nunca más el CallerID. Es claro que este dato después lo utilizaré para consultarlo, sin embargo esta prueba solo la hago para ejemplificar mi caso, ya que si en el Noop no se muestra el CallerID aún ya formateado (${CALLERID(num):0:40}) mucho menos voy a poder manejarlo para consultarlo.
También he detectado que reiniciando ya sea el servidor Asterisk o el servicio de DAHDI vuelve a realizar todo el ciclo, es decir, la primera vez me muestra el CallerID pero las subsiguientes ya no.
He de aclarar que las dos líneas telefónicas son Telmex, analógicas y tienen el servicio de detector de llamadas (para que en estos casos llegue el CallerID). Esto lo comprobé usando un teléfono con pantalla que me despliegue el número de donde se esta realizando la llamada.
Otra respuesta que encontré por la red afirma que hay ocasiones en que el servicio tarda en entregar el dato, pero ya he puesto "Wait" de hasta 5 segundos y el problema persiste.
También debo aclarar que estoy usando una función para asignar el CallerID resultante a una variable global de la siguiente forma:
exten=> 065,n,SetGlobalVar(MYCALLERID=${CALLERID(num):0:40 }:${EXTEN})
esto se hace después de lo que mostré anteriormente en mi dialplan, es decir, queda de la siguiente forma:
---------------------extensions_aditional.conf----------------------
exten=> 065,1,Answer
exten=> 065,n,Wait(5)
exten=> 065,n,Set(CALLERID(num)=${CALLERID(num):0:40})
exten=> 065,n,Set(CALLERID(name)=${CALLERID(name):0:40})
exten=> 065,n,SetGlobalVar(MYCALLERID=${CALLERID(num):0:40 }:${EXTEN})
exten=> 065,n,Noop(${MYCALLERID})
exten=> 065,n,Noop(${CALLERID(all)})
----------------------------------------------------------------------
La variable ${EXTEN} solo la uso para poder saber a qué extensión SIP fue direccionada mi llamada como identificador adicional. No se si esto este afectando al funcionamiento y obtención del CallerID.
Si es necesario que proporcioné más datos o ponga el contenido de mi dialplan de prueba completo, la configuración de DAHDI o lo que sea, lo subo con mucho gusto.
De antemano muchas gracias y espero alguna respuesta que me haga resolver este problema.
Ya he modificado varias veces chan_dahdi poniendo lo que más se recomienda en estos casos:
-------------------------------chan_dahdi.conf------------------------
callerid=asreceived
----------------------------------------------------------------------
El detalle radica en los tonos al entrar la llamada:
1.- Se marca el número desde un teléfono común.
2.- Se escucha el tono de marcado normal (TU, TU)
3.- Después de esos 2 tonos entra la llamada al servidor Asterisk por el canal DAHDI
4.- El dialplan que tengo despliega el caller ID gracias a una corrección que encontré en la página de VoIpInfo como sigue:
---------------------extensions_aditional.conf----------------------
exten=> 065,n,Set(CALLERID(num)=${CALLERID(num):0:40})
exten=> 065,n,Set(CALLERID(name)=${CALLERID(name):0:40})
exten=> 065,n,Noop(${CALLERID(all)})
--------------------------------------------------------------------
y en un Noop el Caller ID se muestra sin problemas.
5.- Se contesta la llamada, se cuelga ya sea por el usuario que llamó desde el teléfono común o desde la aplicación que posee un softphone integrado.
Hasta aqui todo va bien, sin embargo, si se realiza una nueva llamada, ya sea desde el mismo teléfono común u otro, pasa lo siguiente:
1.- Se escucha el tono de marcado (TU, TU) y posteriormente se escucha un tono distinto (TUTU <- esto significa seguidos no pausados como al principio de la llamada) enseguida, luego tarda unos momentos más en entrar la llamada, es decir, uno o dos tonos extra hasta que entra la llamada y es detectada por el servidor Asterisk.
2.- Se sigue el dialplan, pero ahora en el Noop que despliega el CallerID ya no lo presenta y solo muestra estos signos: ""<>
La llamada se contesta normalmente y se cuelga, pero en las subsiguientes pruebas ya no aparece nunca más el CallerID. Es claro que este dato después lo utilizaré para consultarlo, sin embargo esta prueba solo la hago para ejemplificar mi caso, ya que si en el Noop no se muestra el CallerID aún ya formateado (${CALLERID(num):0:40}) mucho menos voy a poder manejarlo para consultarlo.
También he detectado que reiniciando ya sea el servidor Asterisk o el servicio de DAHDI vuelve a realizar todo el ciclo, es decir, la primera vez me muestra el CallerID pero las subsiguientes ya no.
He de aclarar que las dos líneas telefónicas son Telmex, analógicas y tienen el servicio de detector de llamadas (para que en estos casos llegue el CallerID). Esto lo comprobé usando un teléfono con pantalla que me despliegue el número de donde se esta realizando la llamada.
Otra respuesta que encontré por la red afirma que hay ocasiones en que el servicio tarda en entregar el dato, pero ya he puesto "Wait" de hasta 5 segundos y el problema persiste.
También debo aclarar que estoy usando una función para asignar el CallerID resultante a una variable global de la siguiente forma:
exten=> 065,n,SetGlobalVar(MYCALLERID=${CALLERID(num):0:40 }:${EXTEN})
esto se hace después de lo que mostré anteriormente en mi dialplan, es decir, queda de la siguiente forma:
---------------------extensions_aditional.conf----------------------
exten=> 065,1,Answer
exten=> 065,n,Wait(5)
exten=> 065,n,Set(CALLERID(num)=${CALLERID(num):0:40})
exten=> 065,n,Set(CALLERID(name)=${CALLERID(name):0:40})
exten=> 065,n,SetGlobalVar(MYCALLERID=${CALLERID(num):0:40 }:${EXTEN})
exten=> 065,n,Noop(${MYCALLERID})
exten=> 065,n,Noop(${CALLERID(all)})
----------------------------------------------------------------------
La variable ${EXTEN} solo la uso para poder saber a qué extensión SIP fue direccionada mi llamada como identificador adicional. No se si esto este afectando al funcionamiento y obtención del CallerID.
Si es necesario que proporcioné más datos o ponga el contenido de mi dialplan de prueba completo, la configuración de DAHDI o lo que sea, lo subo con mucho gusto.
De antemano muchas gracias y espero alguna respuesta que me haga resolver este problema.
Comentario