Configuración fácil de un DISA

[Visto: 7828 veces]

Por Ing. Isaac Fernandez Baca

DISA (Direct Inward System Access)
Acceso directo al interior del sistema, el DISA permite a alguien llamar desde fuera de una central y obtener tono de marcado desde el interior del sistema, y así poder realizar llamadas como si estaría dentro. El DISA permite ponerle un contraseña la cual debe ser precedida de la tecla michi #. Si no se le pone contraseña, al llamar al numero DISA, se marca directamente.

Para este ejemplo vamos a configurar en una central Asterisk que al llamar de mi celular a un numero fijo de la central me brinde tono de marcado, así de esta manera puedo realizar llamadas internacionales desde mi celular, y la llamada es enrutada por el Asterisk por VoIP.
Mi celular es el 00511997090306 y el numero fijo que de la central asterisk es 005116666666 (Estos datos no son reales, solo son para el ejemplo)
Y ya que solo va aceptar llamadas desde mi celular, no necesito ponerle contraseña.

Debemos crear la ruta de ingreso Inbound route

Podemos hacerlo por freepbx o bien modificamos el archivo extension.conf o uno de sus dependientes

Acá definimos que cuando el numero 997090306 llame al numero 666666, se vaya al contexto custom-disa-isaacfernandezbaca

[ext-did]
….
exten => 511666666/997090306,1,Set(__FROM_DID=${EXTEN})
exten => 511666666/997090306,n,GotoIf($[ “${CALLERID(name)}” != ” ] ?cidok)
exten => 511666666/997090306,n,Set(CALLERID(name)=${CALLERID(num)})
exten => 511666666/997090306,n(cidok),Noop(CallerID is ${CALLERID(all)})
exten => 511666666/997090306,n,Goto(custom-disa-isaacfernandezbaca,s,1)
….

Luego declaramos el contexto custom-disa-isaacfernandezbaca en el el archivo extension.conf o uno de sus dependientes

En este contexto estamos declarando que espere 10 segundos para empezar el envío de tonos, luego seteamos el callerid con 516666666, esto para que cuando el Asterisk tarifique ubique esta llamada como hecha por ese anexo. Después la función DISA en la cual se declara que no lleva contraseña y que la llamada en curso use el contexto from-internal. Si no contesta, se corta.

[custom-disa-isaacfernandezbaca]
exten => s,1,Set(TIMEOUT(digit)=10)
exten => s,n,Set(TIMEOUT(response)=30)
exten => s,n,Set(REALCALLERIDNUM=511666666)
exten => s,n,Set(CALLERID(num)= 511666666)
exten => s,n,DISA(no-password|from-internal)
exten => s,n(end),Hangup

Finalmente para que se realice una correcta negociación de los tonos DTMF que se envía del celular, modificamos el archivo sip.conf o uno de sus dependientes

[general]

dtmfmode=auto

Referencias

http://www.voip-info.org/wiki-Asterisk+cmd+DISA

Puntuación: 5.00 / Votos: 1

8 pensamientos en “Configuración fácil de un DISA

  1. jose

    Hola Isaac, gracias por tus ayudas lo primero.

    Después quisiera pedirte un poco de explicación más detallada sobre el artículo de disa, pq no consigo hacerlo funcionar y no soy un novato en Asterisk.
    Creo que hay algun problema de contextos quizás, pero bueno a ver si me ayudas y lo solucionamos.

    ¿tu contexto [ext-did] es lo que al mio [internal] o es un contexto aparte que creaste y donde lo colocas?

    Responder
  2. Isaac

    El contexto [ext-did] basicamente es el contexto donde pones la entrada de las llamadas por la PSTN.

    Cuando te llaman al 666 6666 por ejemplo y pasas las llamadas al anexo 102.
    exten => _6666666,1,Answer()
    exten => _6666666,1,Dial(SIP/102)
    Eso es, ahora si quieres identificar que te esta llamando el 997090306 y si te llaman de ese celular mandar al anexo 103 seria asi

    exten => _6666666/997090306,1,Answer()
    exten => _6666666/997090306,1,Dial(SIP/103)

    Responder
  3. Enrique Schoenfeld

    Bueno en mi caso.
    Yo cree el DISA, le puse el passwrd de un usario, luego le configure el context. (Deje el internal como lo tenia default), una vez hecho esto no me dejaba realizar llamadas, entraba la llamada me daba tono pero luego marcara error. Y luego de varios intentos descubri que para marca era de esta forma.
    1.- Marcas al DID del DISA
    2.- Cundo escuchas e primer tono marcas la contraseña y el signo #
    3.- te da nuevamente tono, en este caso para sacar llamadas tengo configurado el 9, por lo que se marca 9+numero que deseas+ esperas que pda contraseña +contraseña + #
    Listo funciono. y esta funcionando muy bien.
    Ahora el unico detalle es que desde algunos celulares no funciona, (pero de la mayoria si.
    Bueno solo keria compartir algo pequeño que me paso. Espero que a alguien le funcione y le sirva.
    Saludos

    Responder
  4. Eduardo

    Hola Isaac:

    He probado esta configuración y no consigo que funcione. Para aislar el problema he querido hacer primero que cuando llamen desde un determinado telefono movil a un determinado nº de la central, se pase la llamada a la extensión 101. Las demas llamadas que entren a la extensión 100.

    Esta es la configuración de mi contexto de entrada.

    [default]

    [entrantes]
    exten=> 99999/66666,1,Answer()
    exten=> 99999/66666,n,Dial(Sip/101,60,Ttr)

    exten=> s,1,Answer()
    exten=> s,n,Dial(Sip/100,60,Ttr)
    exten=> s,Busy
    exten=> s,n,Hangup()

    El 99999 es el nº de la centralita Asterisk y el 66666 es del teléfono movil.

    Espero que me puedas ayudar.

    Gracias de antemano.

    Responder
  5. marcel dolores meza

    Que tal queria preguntarte si has tenido problemas con el DTMF , en mi caso al marcar el numero luego del Tono del disa me lo duplica o captura un numero erroneo.
    Probe poniendoen el zapata.conf agregando la linea relaxdtmf=yes, noc si habra q modificar algún otro parametro, lo de cambiar a inband en el sip.conf tampoco me funciona.

    Saludos

    Responder
  6. Isaac

    Eduardo, Fijate en el log full que callerid del movil, y lo pones en tu conf, sino sale en el full miralo en /var/log/messages. Saludos Isaac

    Marcel Pregunta a tu proveedor de telefonía como tienen configurado ellos para recibirte los DTMF, quiza sea RFC2833. Saludos, Isaac

    Responder

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *