No artigo anterior vimos como gravar os áudios para serem utilizados em nossa URA. No exemplo a seguir utilizaremos 3 arquivos de áudio com a sua respectiva fraseologia para criar nossa primeira URA.

  • pteng – “Para portugues pressione um, para ingles pressione dois”
  • ptmenu – “Para efetuar um teste de echo pressione 1, para ouvir a musica de espera pressione 2 ou para falar com o escritório de vendas pressione 3”
  • engmenu – “for echo test press 1, for music on hold press 2, for sales office press 3”

Copiar os arquivos no diretório /var/lib/asterisk/sounds/custom e construir a URA.

vi /etc/asterisk/URA

[URA]
exten => s,1,Wait(1)
;aguarda 1 segundo
exten => s,2,Set(CHANNEL(language)=pt_BR) ; configura como idioma default o idioma Portugues-Brasil
exten => s,3,Set(TIMEOUT(digit)=7) ; 7 segundos é o tempo que se espera entre um digito e outro
exten => s,4,Set(TIMEOUT(response)=10) ; espera 10 seg para o chamador pressionar alguma tecla
exten => s,5,BackGround(custom/pteng) ; toca o arquivo gravado e espera digitos
exten => s,6,WaitExten() ; espera o chamador pressionar alguma tecla
exten => 1,1,goto(URA1,s,1) ; se pressionado a tecla 1 vai para o contexto URA1, extensão s, prioridade 1
exten => 2,1,goto(URA2,s,1) ; se pressionado a tecla 2 vai para o contexto URA2, extensão s, prioridade 1
exten => i,1,Playback(invalid) ; se a tecla pressionada não é valida (nem 1 nem 2) toca uma mensagem de erro
exten => i,2,Playback(goodbye) ; mensagem de despedida
exten => i,3,Hangup ; finaliza a chamada
exten => t,1,goto(URA,s,2) ; não discou nada em 10 seg  direciona para o inicio da URA
exten => h,1,Hangup ; se o chamador desliga a chamada ela vai para essa extensão e finaliza a chamada

[URA1]
exten => s,1,Set(TIMEOUT(digit)=7)
;
exten => s,2,Set(TIMEOUT(response)=10)
exten => s,3,Set(CHANNEL(language)=pt_BR) ;

exten => s,4,BackGround(custom/engmenu) ; toca menu em portugues
exten => s,5,WaitExten() ;
exten => 1,1,Playback(demo-echotest) ; pressionado 1 efetua-se um teste de echo
exten => 1,2,Echo()
exten => 2,1,MusicOnHold ;
pressionado 2 toca a musica de espera
exten => 3,1,Playback(pls-wait-connect-call) ; pressionado 3 transfere para o consultor no ramal interno 2000
exten => 3,2,Dial(SIP/2000,45,r)
exten => i,1,Playback(invalid)
exten => i,2,Playback(goodbye)
exten => i,3,hangup
exten => t,1,goto(URA1,s,1)
exten => h,1,Hangup

[URA2] ; igual a anterior mas em ingles
exten => s,1,Set(TIMEOUT(digit)=7)
exten => s,2,Set(TIMEOUT(response)=10)
exten => s,3,Set(CHANNEL(language)=en)
exten => s,4,BackGround(custom/engmenu)
exten => s,5,WaitExten()
exten => 1,1,Playback(demo-echotest)
exten => 1,2,Echo()
exten => 2,1,MusicOnHold
exten => 3,1,Playback(pls-wait-connect-call)
exten => 3,2,Dial(SIP/2000,45,r)
exten => i,1,Playback(invalid)
exten => i,2,Playback(goodbye)
exten => i,3,hangup
exten => t,1,goto(URA2,s,1)
exten => h,1,Hangup

Devemos incluir esse arquivo em nosso dialplan:

vi /etc/asterisk/extensions.conf

Se queremos que todas as chamadas externas sejam enviadas para URA devemos definir o contexto:

[from-PSTN]

exten => s,1,Answer
exten => s,n,Wait(1)
exten => s,n,Goto(URA,s,1)

e no final do arquivo fazemos um include da URA:

#include “URA”

Salve as mudanças e entre no console asterisk:

asterisk -rvvv

CLI> dialplan reload

Claramente este é um exemplo do que pode ser feito com uma URA, temos diversas possibilidades:

  • Uma URA que gerencia as filas de atendimento conforme o setor escolhido (Departamento Comercial, Departamento Financeiro, Suporte Técnico e etc.)
  • Uma URA que permita digitar diretamente um ramal interno ou se o chamador não digitar nada transferir para a recepcionista.
Related Posts with Thumbnails

Deixe um comentario