Está en la página 1de 9

CURSO ASTERISK

CONCEPTOS BÁSICOS ASTERISK

En el presente documento, se describen los conceptos básicos de Asterisk,


tales como ubicaciones, sintáxis, configuraciones.

Si tienen comentarios por favor no duden en escribirme al WHATSAPP: 3172824492


o al correo: itsoporte.jhc@gmail.com

-- DIAL PLAN--

LLAMADA LOCAL

Un ejemplo de llamada local para todas las extensiones que empiecen por 1
hasta 9, seguido de dos dígitos más que pueden ir de 0 a 9:

[interna]

exten => _ZXX,1,NoOp("Realizando llamada a la extesion ${EXTEN} desde


el canal ${CHANNEL}")

same => n,Dial(SIP/${EXTEN})

same => n,Hangup()


VARIABLES GLOBALES

${EXTEN} Corresponde a la extensión marcada.

${UNIQUEID} Un ID único asignado por el motor de Asterisk a cada llamada

${CHANNEL} Es el canal desde el que se genera la llamada, incluye el


protocolo y el número, junto con un ID variable, ejemplo: SIP/800-0000001d,
este sería el canal que corresponde a una llamada generada desde la extensión
SIP 800.

VARIABLES DEFINIDAS

Para definir una variable, utilizamos la aplicación/función


Set(VARAIBLE=VALOR), ejemplo de uso:

Set(NUMBER=${EXTEN:3}

Suponiendo que marquemos desde una extensión el número 5073172824492, dicho


número iría en la variable global EXTEN, para omitir los 3 primeros dígitos,
creamos han variable llamada NUMBER que tome el valor de EXTEN omitiendo los
3 primeros dígitos.

TRONCAL IAX2

Para configurar una troncal IAX, vamos a editar el archivo:


/etc/asterisk/iax.conf

Crearemos dos secciones, una para darle acceso a otro servidor a través de un
usuario (type=user), una para conectarnos a otro servidor (type=peer).

[usuario]

type=user

secret=intecap2019

context=intecap-peer
[server-2]

type=peer

username=usuario

secret=intecap2019

host=192.168.0.24

qualify=yes

disallow=all

allow=ulaw,alaw,gsm

register => usuario:pass@direccionip

LLAMADA EXTERNA

Sintaxis

Dial(SIP/nombre-troncal/${EXTEN})

Dial(IAX2/nombre-troncal/${EXTEN})

Este es un contexto que utiliza una troncal llamada “server-2” y genera una
llamada hacia la extensión sobre dicha troncal.

[externa]

exten => 100,1,Dial(IAX2/server-2/100)


same => n,Hangup()

APLICACIONES: GOTO

La aplicación Goto es útil en los IVR cuando queremos saltar u omitir


partes/pasos de algún contexto o aplicación, puede recibir 3 parámetros, y
dependiendo la cantidad de parámetros que reciba, se comporta de manera
diferente. Vamos a ver a continuación el comportamiento para cada caso.

Goto con 1 parámetro Goto(parametro) >>prioridad

Salta al número de prioridad o etiqueta de prioridad de la extensión actual,


para el siguiente ejemplo, al marcar la extensión 100, el Goto saltará al paso
con la etiqueta (tt), y no ejecuta los pasos resaltados en color azul

[hola]

exten => 100,1,Answer()

same => n,Wait(1)

same => n,Goto(audio-tw)

same => n,NoOp(Este y el siguiente paso no se van a ejecutar)

same => n,Playback(hello-world)

same => n(audio-tw),Playback(tt-weasels)

same => n,Hangup()

exten => 200,1,Answer()

same => n,Wait(1)

same => n,NoOp(Reproduciendo audio tt-weasels)

same => n(ttw),Playback(tt-weasels)


same => n,Hangup()

Goto con 2 parámetros Goto(parametro1,parametro2) >>extension,prioridad

Salta al número de extensión dentro del contexto actual, seguido buscará la


prioridad o etiqueta de prioridad. Para el siguiente ejemplo, dentro del
contexto hola, al marcar la extensión 100, se pasa hacia la extensión 200
saltando directamente a la prioridad con etiqueta (ttw) que reproducirá el
audio tt-weasels

[hola]

exten => 100,1,Answer()

same => n,Wait(1)

same => n,Goto(200,ttw)

same => n,NoOp(Los siguientes pasos de esta extensión no se van a


ejecutar)

same => n,Playback(hello-world)

same => n(tt),Playback(tt-weasels)

same => n,Hangup()

exten => 200,1,Answer()

same => n,Wait(1)


same => n,NoOp(Reproduciendo audio tt-weasels)

same => n(ttw),Playback(tt-weasels)

same => n,Hangup()

Goto con 3 parámetros Goto(parametro1,parametro2,parametro3) >>

contexto,extension,prioridad

El Goto con 3 parámetros, salta hacia el contexto indicado, seguido de la


extensión y la prioridad elegida, ejemplo:

[hola]

exten => 100,1,Answer()

same => n,Wait(1)

same => n,Goto(salto,ext_salto,audio)

same => n,NoOp(Este y el siguiente paso no se van a ver)

same => n,Playback(hello-world)

same => n(tt),Playback(tt-weasels)

same => n,Hangup()

[salto]

exten => 777,1,Answer()

same => n,Wait(1)

same => n,NoOp(Reproduciendo tt-weasels seguido de hola mundo)

same => n,Playback(tt-weasels&hello-world)


same => n,Hangup()

exten => ext_salto,1,Answer()

same => n,Wait(1)

same => n,NoOp(Reproduciendo solo tt-weasels)

same => n(audio),Playback(tt-weasels)

same => n,NoOp(Se omitieron los 2 primeros pasos de la ext actual)

same => n,Hangup()

IVR

A continuación veremos un ejemplo de IVR:

[menu-ivr]

exten => 3111111,1,Goto(ivr,s,1)

exten => 7446000,1,Goto(ivr,s,1)

[ivr]

exten => s,1,Answer()

same => n(menu-ivr),Background(vm-press&digits/1&vm-press&digits/2)

same => n,WaitExten(10)


exten => 1,1,Answer()

same => n,NoOp(opcion marcada: ${​​EXTEN}​​)

same => n,SayNumber(1)

same => n,Hangup()

exten => 2,1,Answer()

same => n,NoOp(opcion marcada: ${​​EXTEN}​​)

same => n,SayNumber(2)

same => n,Hangup()

exten => 9,1,Answer()

same => n,NoOp(opcion marcada: ${​​EXTEN}​​)

same => n,Goto(s,menu-ivr)

exten => i,1,Answer()

same => n,Playback(invalid)

same => n,Hangup()


exten => t,1,Answer()

same => n,Playback(vm-dialout)

same => n,Hangup()

Referencias / Fuentes:

https://wiki.asterisk.org

https://wiki.freepbx.org

También podría gustarte