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