Essays.club - TCC, Modelos de monografias, Trabalhos de universidades, Ensaios, Bibliografias
Pesquisar

Aplicações Redes de Computadores

Por:   •  8/11/2017  •  1.680 Palavras (7 Páginas)  •  467 Visualizações

Página 1 de 7

...

07 2001 => 1234,Uwe Klein,uwe.klein@exemplo.br

59

| TUTORIALVoIP com Asterisk

Linux Magazine #74 | Janeiro de 2011

Figura 1 O conceito de URA do Asterisk funciona somente dentro de um contexto.

Figura 2 Graças ao Goto, um único dígito em um menu permite encaminhar o usuário a outro contexto.

quem originou a chamada. Não confunda com a variável ${EXTEN} das outras linhas, que contém o número de destino. URA Vamos conhecer agora, o sistema interativo de resposta de voz (Unidade de Resposta Audível, ou URA). A URA oferece uma maneira automatizada de encaminhar chamadas e oferecer menus de voz com mais competência do que uma secretária eletrônica. Para criar uma URA, é preciso, primeiramente, usar arquivos de voz. No tocante ao Asterisk, isso significa usar a aplicação Record(). Ao contrário de Playback(), Record() requer que o final do arquivo passado esteja de acordo com o codec usado. Com o plano de discagem da listagem 3, é possível chamar qualquer extensão de 9900 a 9999 e pedir que o usuário grave sua mensagem de saudação (também chamada de prompt de voz). Eles terminam a mensagem pressionando a tecla # ou então aguardando. No entanto, uma longa pausa no final de um prompt de voz pode prejudicar o uso de uma série de componentes de voz de uma só vez. Para implementar uma URA em conjunto com prompts de voz, utilizase a aplicação Background(arquivo). Ela reproduz o menu de voz do arquivo e escuta tons DTMF para prosseguir no plano de discagem. O processamento dos tons do teclado ocorre normalmente, como seria feito em uma ligação comum. Se, durante o uso da aplicação Background(), você pressionar as teclas [8][8], o Asterisk buscará no contexto atual o que fazer com a extensão 88, iniciando a partir da prioridade 1 desta extensão. Um exercício simples: crie os seguintes prompts de voz e armazeneos no diretório /var/lib/asterisk/ sounds/: Entrada: “Por favor disque um número no seu telefone.”

Listagem 2: Arquivo extensions.conf 01 [outros] 02 03 [meus-telefones] 04 exten => 1234,1,Answer() 05 exten => 1234,2,Playback(hello-world) 06 exten => 1234,3,Hangup() 07 08 exten => _200[1-2],1,Dial(SIP/${EXTEN},30) 09 exten => _200[1-2],2,VoiceMail(${EXTEN},u) 10 11 exten => 3000,1,VoiceMailMain(${CALLERID(num)}) 12 exten => _0X.,1,Dial(SIP/${EXTEN:1}@axxeso_out) 13 14 [do-provedor-sip] 15 exten => _X.,1,Dial(SIP/2000,30) 16 exten => _X.,2,VoiceMail(2000,u)

Listagem 3: Plano de discagem para URA 01 exten => _99XX,1,Answer() 02 exten => _99XX,2,Wait(1) 03 exten => _99XX,3,Record(/tmp/promptvoz${EXTEN:2}.wav) 04 exten => _99XX,4,Wait(1) 05 exten => _99XX,5,Playback(/tmp/promptvoz${EXTEN:2}) 06 exten => _99XX,6,Hangup()

Listagem 4: Plano de discagem 01 exten => 30,1,Answer() 02 exten => 30,n,Background(entrada) 03 exten => 30,n,Hangup() 04 05 exten => _[13579],1,Playback(impar) 06 exten => _[13579],n,Hangup() 07 08 exten => _[2468],1,Playback(par) 09 exten => _[2468],n,Hangup()

nível 1

nível 2

60 www.linuxmagazine.com.br

TUTORIAL | VoIP com Asterisk

par.wav: “Este número é par.” ímpar.wav: “Este número é ímpar.”

Com o plano de discagem da listagem 4, é possível experimentar a função URA. Mas atenção: a entra

da precisa ser fornecida enquanto a mensagem da aplicação Background() é emitida. Se você quiser oferecer a possibilidade de o usuário esperar mais um pouco, use os prompts préfabricados silence/1 até silence/9:

exten => 30,1,Answer() exten => 30,n,Background(entrada) exten => 30,n,Background(silence/5) exten => 30,n,Hangup()

Onde os números representam o número de segundos que o Asterisk aguardará em silêncio. URAs com vários níveis O problema no conceito de URA demonstrado é que ele sempre opera dentro de um contexto e, por isso, só pode oferecer mais opções por meio de mais números (figura 1 e listagem 5). Isto é, obviamente, insatisfatório, mas uma instrução de Goto() pode resolver esse problema. Ela permite pular a outro ponto do plano de discagem. Com Goto(10), o Asterisk pula para a prioridade 10 na extensão atual. Com Goto(555,1), ele vai para a extensão 555, prioridade 1. Ainda mais interessante é Goto(producao,20,5), que pula para o contexto produção, extensão 20 e prioridade 5. Com esses truques, é possível entrar, com um único dígito de um menu nível 1, em uma extensão de dois dígitos em outro contexto, e novamente ter à disposição outras opções de um dígito (listagem 6 e figura 2). Na próxima edição da Linux Magazine, vamos falar sobre ramificações no plano de discagem, cálculos e operações sobre texto. Até lá! n

Sobre o autor Stefan Wintermeyer é o autor do Livro do Asterisk, da editora Addisson Wesley e primeiro DCAP (Digium Certified Asterisk Professional) alemão. Ele auxilia clientes, por meio da Amooma GmbH (http://www.amooma.de), a implementar soluções com Asterisk.

Listagem 5: Mais opções 01 [ivr] 02 exten => 50,1,Answer() 03 exten => 50,n,Background(menuexemplo) 04 exten => 50,n,Background(silence/5) 05 exten => 50,n,Hangup() 06 07 ; Como um contexto só pode representar 08 ; uma extensão, o exemplo de menu 09 ; precisará de uma opção para cada 10 ; ação (até as de dois dígitos) 11 12 exten => 1,1,Background(dummy1) 13 exten => 1,n,Background(silence/5) 14 exten => 1,n,Hangup() 15 16 exten => 2,1,Playback(dummy2) 17 exten => 2,n,Hangup() 18 19 exten => 3,1,Playback(dummy3) 20 exten => 3,n,Hangup() 21 22 exten => 4,1,Playback(dummy4) 23 exten => 4,n,Hangup()

Listagem 6: Truques de menus e contextos 01 [nivel0] 02 exten => 50,1,Answer() 03 exten => 50,n,Background(menuexemplo) 04 exten => 50,n,Background(silence/5) 05 exten => 50,n,Hangup() 06 07 ; No próximo nível, liberar os números para 08 ; outras possibilidades de forma a permitir 09 ; o uso de extensões que já tenham sido 10 ; usadas

...

Baixar como  txt (11.2 Kb)   pdf (92.2 Kb)   docx (13.5 Kb)  
Continuar por mais 6 páginas »
Disponível apenas no Essays.club