meta data de esta página
  •  

¡Esta es una revisión vieja del documento!


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

[Moviles]
;Inicio del contexto de llamadas a móvil
exten => _[67]XXXXXXXX,1,Noop(Llamadas a Moviles) 
same => n,Dial(SIP/Trunkmoviles/${EXTEN},20,rt)
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,rt)
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,rt)
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/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