Criando uma URA no Asterisk 1.8


Exemplo de uma URA com sub-menus e sistema para controlar a quantidade de vezes que as mensagens irão tocar:

[general]

[globals]
TELEFONISTA=SIP/1584
TELEFONIA=SIP/1584
SUPORTE=SIP/1584

[default]
exten=>TELEFONISTA,1,Dial(${GLOBAL(TELEFONISTA)},30,tT)
same=>2,Hangup()

exten=>TELEFONIA,1,Dial(${GLOBAL(TELEFONIA)},30,tT)
same=>2,Hangup()

exten=>SUPORTE,1,Dial(${GLOBAL(SUPORTE),30,tT)
same=>2,Hangup()

include=>ura-manha,06:00-12:00,sun-sat,*,*            ;Inclusão dos contextos baseados em horário.
include=>ura-tarde,12:00-18:00,sun-sat,*,*
include=>ura-manha,18:00-06:00,sun-sat,*,*

[ura-manha]
exten=>1100,1,Playback(URA01)                                ;Bom Dia
exten=>1100,2,Goto(ura-welcome,bemvindo,1)

[ura-tarde]
exten=>1100,1,Playback(URA02)                                ;Boa Tarde
exten=>1100,2,Goto(ura-welcome,bemvindo,1)

[ura-noite]
exten=>1100,1,Playback(URA03)                                ;Boa Noite
exten=>1100,2,Goto(ura-welcome,bemvindo,1)

[ura-welcome]
exten=>bemvindo,1,Playback(URA04)                            ;Bem Vindo à empresa XYZ
exten=>bemvindo,2,Goto(ura,ATENDE,1)

[ura]
exten=>ATENDE,1,Answer()
same=>n,Set(count=1)
same=>n,Set(loopx=2)                                         ;Quantidade de vezes a repetir o guia vocal.
same=>n,Set(repeat=$[${loopx} + 1])
same=>n,While($[${count} < ${repeat}])                       ;Sistema para contagem da quantidade de vezes de reprodução do guia vocal.
same=>n,Background(URA05&URA06)                              ;Para XXX digite 1, para YYY digite 9.
same=>n,WaitExten(3)                                         ;Aguarda 3 segundos até pela opção desejada;
same=>n,Set(count=$[${count} + 1])
same=>n,EndWhile()
same=>n,Hangup()

exten=>1,1,Goto(ura-1,ATENDE-1,1)                            ;Ação a ser tomada ao digitar a opção 1.
exten=>9,1,Goto(default,TELEFONISTA,1)                       ;Ação a ser tomada ao digitar a opção 9.

exten=>i,1,Wait(0.5)                                         ;Ação a ser tomada em caso de usuário digitar uma opção inválida.
exten=>i,2,Playback(URA09)
exten=>i,3,Goto(ura,ATENDE,1)

[ura-1]
exten=>ATENDE-1,1,Answer()
same=>n,Set(count1=1)
same=>n,Set(loopx1=2)    ;Quantidade de vezes a repetir a mensagem.
same=>n,Set(repeat1=$[${loopx1} + 1])
same=>n,While($[${count1} < ${repeat1}])
same=>n,Background(URA07&URA08)
same=>n,WaitExten(3)
same=>n,Set(count1=$[${count1} + 1])
same=>n,EndWhile()
same=>n,Hangup()

exten=>1,1,Goto(default,TELEFONIA,1)
exten=>2,1,Goto(default,SUPORTE,1)

exten=>i,1,Wait(0.5)
exten=>i,2,Playback(URA09)
exten=>i,3,Goto(ura-1,ATENDE-1,1)

Comentários

Postagens mais visitadas deste blog

Discador para Asterisk - Integrado com banco de dados

Importação do arquivo CNL Anatel para banco de dados