Archivo de la etiqueta: disa

Callback + DISA

[Visto: 2704 veces]

Por Ing Isaac Fernandez Baca

Hoy me pidieron que configure un Callback mas DISA,

Bueno la idea era de poder llamar a la central, que nos cuelgue e inmediatamente la central nos devuelva la llamada(Callback) y ademas nos de tono de marcado(DISA).

Bueno lo primero es el inbound route, la ruta de entrada en el archivo extensions.conf declaramos el contexto de entrada

Si mi celular es el 99999999 y el numero de la central es el 666666

[entrada]
exten => 666666/999999999,1,System(/var/lib/asterisk/agi-bin/llamame.sh ${CALLERID(num)})
exten => 666666/999999999,n,Hangup()

Luego en el /var/lib/asterisk/agi-bin/ creamos el siguiente archivo llamame.sh el cual modifique un pokitin, pero es basicamente el mismo que aparece en un foro de asterisk-peru.com [1]

llamame.sh
#!/bin/bash
#
# /ruta/al/script/de/llamadas/llamame.sh {telefono}
#
DEST=”/var/spool/asterisk/outgoing”
CALL=`mktemp` # creas un archivo temporal, si no hay mktemp usa el tiempo.

# llenamos los datos de la llamada…
echo “Channel: Zap/g0/$1″>>$CALL # sabiendo que $1 es el numero que llamóho “MaxRetries: 1″>>$CALL
echo “RetryTime: 60″>>$CALL
echo “WaitTime: 30″>>$CALL
echo “Context: custom-disa-ifernandez”>>$CALL
echo “Extension: s”>>$CALL
echo “Priority: 1″>>$CALL

# mandemoslo un poco al futuro para darle tiempo de colgar.
NOW=`date +%s`
let NOW=$NOW+100 #100 segundos
TOUCH_TMSP=`date -d “1970-01-01 $NOW sec GMT” +%Y%m%d%H%M. %S`
touch -t $TOUCH_TMSP $CALL

# listo, lo movemos.
mv $CALL $DEST

#EOF

Este archivo llamame.sh genera la llamada y nos manda al contexto custom-disa-ifernandez, un contexto para disa cualquiera.

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

y walaaaaaa listo….. “y ya!” (Recuerdo que esta frase de “y ya” de nosotros los peruanos, les disgustaba mucho a unos compañeros de trabajo chilenos, filo po)

Referencias:

[1] http://www.asterisk-peru.com/node/992 Sigue leyendo

Configuración fácil de un DISA

[Visto: 7786 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
Sigue leyendo