Cursos Asterisk en México

Problemas al obtener CallerID de una llamada entrante

Colapsar

Anuncio

Colapsar
No hay anuncio todavía.
X
 
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes

  • Problemas al obtener CallerID de una llamada entrante

    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.

  • #2
    Re: Problemas al obtener CallerID de una llamada entrante

    Me ha pasado un par de veces con líneas análogas, que no se cuelgan de manera correcta ya que no está activado el busydetect, asegúrate de en el archivo /etc/asterisk/chan_dahdi.conf dentro de [channels] esté declarado esto:

    busydetect=yes
    busycount=3

    Espero con esto puedas hacer que el puerto esté completamente cerrado antes de que entre la siguiente llamada de prueba.

    Saludos
    IT Specialist

    Comentario


    • #3
      Re: Problemas al obtener CallerID de una llamada entrante

      Ya he probado antes con esas propiedades, sin embargo el problema persiste.

      También he probado con:

      asweronpolarityswitch=yes
      hanguponpolarityswitch=yes

      Pero me sigue dando el mismo resultado. Si se te ocurre alguna otra idea te lo agredecería.

      Gracias.

      Comentario


      • #4
        Re: Problemas al obtener CallerID de una llamada entrante

        Hola, puedes checar que tus tonos correspondan a México en el system.conf de dahdi.

        También no esta demás hablar a la compañía telefónica sobre como están enviando el CID.

        Solo una vez he tenido problemas con recibir el CID, sin embargo fue en UK y allá usan v23.

        Comentario


        • #5
          Re: Problemas al obtener CallerID de una llamada entrante

          Pues la configuración que existe en el archivo system.conf de Dahdi es la de default, en ninguna sección hay una señalización para los tonos:

          ----------------------------system.conf----------------------------------

          #autogenerated by /usr/sbin/wancfg_dahdi do not hand edit
          #autogenrated on 2012-02-24
          #Dahdi Channels Configurations
          #For detailed Dahdi options, view /etc/dahdi/system.conf.bak
          loadzone=us
          defaultzone=us

          #Sangoma AFT-A200 [slot:4 bus:1 span:1] <wanpipe1>
          fxsks=1
          echocanceller=mg2,1
          fxsks=2
          echocanceller=mg2,2
          fxsks=5
          echocanceller=mg2,5
          fxsks=6
          echocanceller=mg2,6
          fxsks=7
          echocanceller=mg2,7
          fxsks=8
          echocanceller=mg2,8

          -------------------------------------------------------------------------

          Esto como marca la primera línea comentada fue creado automáticamente por el comando wancfg_dahdi. En todo caso, si hablara con la compañía que me provee del servicio,

          ¿Cuál sería la señalización adecuada para México con una línea Telmex analógica?

          ¿En qué otro archivo de configuración ya sea por parte de DAHDI o de Asterisk puedo ver los tonos de marcado?

          Gracias

          Comentario


          • #6
            Re: Problemas al obtener CallerID de una llamada entrante

            Como dice navaismo, prueba cargando los tonos de México en /etc/dahdi/system.conf

            Código:
            loadzone=mx
            defaultzone=mx
            A ver si ayuda en algo.
            IT Specialist

            Comentario


            • #7
              Re: Problemas al obtener CallerID de una llamada entrante

              lo solucionaste?
              porque yo tengo el mismo problema...

              Saludos

              Comentario

              Principales Usuarios Activos

              Colapsar

              No hay usuarios activos superiores.
              Trabajando...
              X