meta data de esta página
¡Esta es una revisión vieja del documento!
Dialplan
El Dialplan se fundamenta principalmente en el archivo /etc/asterisk/extensions.conf , aunque se pueden incluir archivos auxiliares adicionales.
Es un fichero en el cual se define cómo se van a comportar las llamadas que entran y salen del asterisk. Está compuesto por: contextos, extensiones, prioridades y aplicaciones.
- En asterisk para el dialplan se utilizan contextos, que se definen con un nombre entre corchetes [ejemplo]
- Para hacer comentarios colocamos ; la principio de la línea
- extensiones . Se indican como exten ⇒ Patrón de la extension a marcar,Prioriodad,Aplicación
- En la primera línea exten⇒ de un contexto debe de tener siempre la prioridad 1.
- Para las siguientes prioridades y líneas si es para el mismo patrón podemos sustituir el patrón por la palabra same ⇒
- Para escribir la siguiente prioridad lo podemos hacer de modo numérico o simplemente poniendo una n de next en el sitio de la prioridad que le sumaría 1 a el número de la prioridad anterior.
Patrones
X | Cualquier dígito del 0 y 9 |
Z | Cualquier dígito del 1 a 9 |
N | Cualquier dígito de 2 a 9 |
[12347-9] | Los dígitos entre corchetes. Se puede utilizar también el - para indicar un rango de números |
* | El comodín equivale a cualquier número |
. | Coincide con 1 o más carácteres |
! | Coincide con 0 o más carácteres |
Operadores
${variable} | obtenemos el valor de la variable que previamente hemos definido |
AGI | Permite lanzar scripts o aplicaciones externas |
Answer([delay,[nocdr]]) | Responde a una llamada entrante |
Background | Reproduce una locución |
Busy | Indica que la extensión destino está ocupada |
Congestion | congestión |
Dial(Tecnologia/Trunk/Destino,Timeout,opciones) | Lanza una llamada |
Gosub([context,[exten,]]priority[(arg1,[…][argN]])) | Salta al punto del dialplan indicado y vuelve cuando encuentra un return |
Goto([context,[extensions,]]priority) | Salta a un punto del dialplan |
Hangup | Colgar |
NoOp([text]) | no hace nada . |
Playback (archivo) | permite escuchar un archivo de sonido, pero no se permite marcar una extensión, hasta que no acabe la locución. |
Queue | |
Read | lee un valor y lo almacena en una variable |
Record | graba en un fichero |
Set(name=value) | Asigna un valor a una variable |
verbose | enviar un mensaje a la salida verbose |
voicemail | |
voicemailmain | |
wait | |
waitexten | espera un tiempo a que el usuario introuzca una extensión |
Ejemplo
[Moviles] ;Inicio del contexto de llamadas a móvil exten => _[67]XXXXXXXX,1,Noop(Llamadas a Moviles) same => n,Dial(SIP/Trunkmoviles/${EXTEN},20,r) same => n,Hangup() ;Fin del contexto Moviles [Fijos] ;Inicio del contexto Llamadas a Fijos exten => _[89]ZXXXXXXX,1,Noop(Llamadas a Fijos) same => n,Dial(SIP/Trunkfijos/${EXTEN},20,r) same => n,Hangup() ;Fin del contexto Fijos [Internacionales] ;Inicio del contexto Llamadas a Internacionales exten => _00.,1,Noop(Llamadas Internacionales) same => n,Dial(SIP/Trunkinternacional/${EXTEN},20,r) same => n,Hangup() ;Fin del contexto Internacionales
Explicación del ejemplo
- exten ⇒ _[67]XXXXXXXX,1,Noop(Llamadas a Moviles)
El número marcado empezará por 6 o por 7 seguido de 8 números del 0-9 con prioridad 1
Noop hace que aparezca en la consola de asterisk el texto que hemos puesto entre paréntesis. Sirve entre otras cosas para ir debugenado por donde va el dialplan - same ⇒ n,Dial(SIP/Trunkmoviles/${EXTEN},20,r)
same⇒n La n de next sería lo mismo que poner _[67]XXXXXXXX y prioridad 2
Dial(SIP/Trunkmoviles/${EXTEN},20,r) indica que usaremos SIP para la llamada. usando como salida el trunk llamado trunkmoviles hacia el número definido en la variable ${EXTEN}, durante 20sg y escucharemos un tono de llamada
- same ⇒ n,Hangup() Colgaremos la llamada