Dialplan

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 en el sitio de la prioridad.

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 .
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

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/TRUNK/${EXTEN},20,rt)
same⇒n La n de next sería lo mismo que poner _[64]XXXXXXXX y prioridad 2
Dial(SIP/Trunkmoviles/${EXTEN},20,rt) 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