Dial plan basico de asterisk
Asterisk 101++ o Trabajando en un Dialplan e introducción a AGI Breve resumen del charla anterior
Apartir de esto podemos decir que en corazón de asterisk (*) es el dialpan que se define en el archivo extension.conf. Como habíamos hablado cada dispositivo se le define un contexto que es donde comienza a trabajar ese dispositivo. Veamos un ejemplo de unaentrada de telefonía (zap) y 2 teléfonos SIP En zaptel.con tengo algo como: [channels]transfer= yescancallforward=y essignalling=fxs_ks context=from-pstnrx gain=2.0txgain=4.0c allprogress=yesusec allerid=yescallerid =asreceived group=0channel=> 1
Esta es una famosa X100 placa que es un WinModem con un chipset Ambient de Intel. Lo mas importante es que la definí en el contexto from-pstn.Luego en el sip.conf tenemos lo siguiente: [general]context=f rom-local bindport=5060binda ddr=0.0.0.0 [100]type=frie ndhost=dynamic username=100 secret=XXXXXXX
[101]type=frie ndhost=dynamic username=101 secret=XXXXXXX
Una muestra de lo que es un dialplan básico seria: [from-local]exten => 100,1,Dial(SIP/100)exten => 101,1,Dial(SIP/101)exten => _9.,1,Dial(Zap/1/${EXTEN:1}) [from-pstn]exten=> s,1,Answerexten => s,2,Playback(welcome)exten => s,3,Dial(SIP/101,15,t)exten => s,4,Dial(SIP/102,15,t)exten => s,5,Playback(nobody)exten => s,6,Voicemail(101)exten => s,7,Hangup Hace falta explicar un par de cosas acerca de esto: Primeramente el archivo extension.conf tiene como casi todos un [general] que es para definiciones básicas las mas importantes son 2 definiciones: static ywriteprotect ambas por defecto en NO. Sirve solo si static es Yes y writeprotect es No. Pero esto es un detalle menor
Hay una parte de [global] donde se definen variables globales y lo que se puede decir que una variable se define en este lugar así: VARIABLE => Zap/1 Y se usa ${VARIABLE} o ${Variable} o ${variable}.
Pero ahora definamos extensiones, cada extensión es: exten =>extensión,prioridad,Comando(parámetros) Primeramente veamos extensión, la cual puede ser literales, patrones o predefinidas, Las primeras son aquellas en las cuales definimos el numero que se marca por ejemplo 101 o 100 en los cuales hacemos cosas especificas para cada uno de estos números.
Los Patrones nos aquellos que match con el numero discado, comienzan con _ y pueden contener:
X Z N [24-7] . !
números del0 al 9 números del 1 al 9 números del 2 al 9 números específicos en este caso 2,4,5,6,7 uno o mas números cero o mas números
Un ejemplo seria que tenemos diferentes proveedores para diferentes provincias y un dial plan puede ser: _0351. Córdoba _0352. Santa Fe etc.....
o si se disca: _4XXXXXX Un numero común loca acá en Córdoba
Hay que tratar de no usar cosas como _. porque estomachearia con cualquier cosa, es mejor _X.
También podemos usar cosas un poco mas complejos como discar algo solo si el caller id machea con algún patrón: 123/4892233 Entra al contexto discando 123 desde el teléfono 4892233
Y podemos remplazar todo por los patrones antes definidos. Las extensions predefinidas son las siguientes: i extensión invalida. Un contexto tiene un limitado números que unusuario puede marcar y si marco otro podemos tomar ese error y hacer algo, por ejemplo
[from-local]exten => 100,1,Dial(SIP/100)exten => 101,1,Dial(SIP/101)exten => _9.,1,Dial(Zap/1/${EXTEN:1})exten => i,1,Playback(discadoinvalido)exten => i,2,Hungup h corte de la extensión Es cuando un cliente corta la comunicación y generalmente se usa para cobrar
o loguear llamadas. a asterisco Es paradeterminar que se presiono el asterisco
s para llamadas no conocidas Es generalmente cuando las llamadas entran y no conocemos que puede llegan a discar.
t máximo tiempo de respuesta Esto es para dar un tiempo especifico a las respuestas de un cliente sobretodo en los IVRs
[from-local]exten => 100,1,Dial(SIP/100)exten => 101,1,Dial(SIP/101)exten => _9.,1,Dial(Zap/1/${EXTEN:1})exten =>...
Regístrate para leer el documento completo.