clarificações do contexto dialplan com asterisco

tenho aprendido o dialplan asterisco e criei um menu muito simples de IVR.Gostaria que alguém verificasse se o que criei está correcto.Eu quero criar um IVR muito simples com 2 níveis de menu e uma opção de saída.

[incoming]
exten => 123,1,Answer()
exten => 123,n,Background(main-menu)

exten => 1,1,Playback(digits/1)
exten => 1,n,Goto(incoming,123,1)

exten => 2,1,Playback(digits/2)
exten => 2,n,Goto(incoming,123,1)

exten => 9,1,Hangup()

[main-menu]
exten => 456,1,Answer()
exten => 456,n,Background(main-menu)

exten => 3,1,Playback(digits/3)
exten => 3,n,Goto(incoming,456,1)

exten => 4,1,Playback(digits/4)
exten => 4,n,Goto(incoming,456,1)

exten => 9,1,Hangup()

eu criei 2 contextos acima

Para lidar com chamadas recebidas [menu principal]-uma opção de menu.

no contexto de entrada.Eu chamo a aplicação resposta() quando a extensão é '123', em seguida, executa o fundo (menu).

if the user presses '1' it plays '1' and goes back to 123 priority '1'

if the user presses '2' it plays '2' and goes back to 123 priority '1'

if the user presses '9' it hangs up.

da mesma forma em [Menu Principal]

preciso de uma resposta () Também neste contexto?

Estou apenas a começar a entender o dialplan e estou um pouco confuso neste momento.

Então, com base em ti, as minhas sugestões actualizadas seriam algo assim.

[incoming]
exten => 123,1,Answer()
 same => n(menuprompt),Background(main-menu)

exten => 1,1,Playback(digits/1)
 same => n,Goto(menuprompt)

exten => 2,1,Playback(digits/2)
 same => n,Goto(menuprompt)

exten => 9,1,Hangup()

[main-menu]
exten => n(menuprompt),Background(main-menu)

exten => 3,1,Playback(digits/3)
 same => n,Goto(menuprompt)

exten => 4,1,Playback(digits/4)
 same => n,Goto(menuprompt)

exten => 9,1,Hangup()
Obrigado pelas sugestões e explicações.Mas tenho uma pergunta.

1) o "menu principal" que é passado para o fundo é o ficheiro de som apparently.In caso de [entrada ] I quero que isso diga algo como ...

 "press 1 to play 1"
 "press 2 to play 2"
 "press 9 to hangup"
Onde como no caso do [menu principal] quero que diga algo como

  "press 3 to play 3"
  "press 4 to play 4"
  "press 9 to hangup"
Tenho de gravar esse ficheiro?? Como é que isso funciona?

Obrigado antecipadamente.

Author: liv2hak, 2012-10-15

2 answers

Estás perto, mas não exactamente.

Pensa nos contextos como caixas físicas. Não podes atravessar as paredes da caixa. Então, "etiquetas" e extensões só se aplicam ao que está nessa caixa / contexto particular.

Em seu dialplan atualizado, você precisaria especificamente ir para o contexto/extensão / prioridade para ir de um contexto para o outro. Dessa forma, o dialplan sabe que você não está tentando se referir a algo dentro do contexto em que ele já está operando.

Com em relação às mensagens que você está tocando, Sim, você vai precisar gravar isso. O formato MP3 é o mais fácil de trabalhar do ponto de vista do usuário, mas ele coloca um pouco mais de carga no PBX. Hoje em dia, com CPUs multi-core gigahertz, raramente me preocupo com isso.

Se este for um sistema voltado para o público, considere as gravações do seu menu como a parte mais importante do seu sistema, do POV cliente. Mensagens com má qualidade, baixo volume, sotaques difíceis e "convencer "o seu cliente que o seu IVR é" muito trabalho " para usar.

 1
Author: MichelV69, 2012-10-17 14:17:18
O seu contexto faz exactamente o que pensa que faz.
Você só precisaria responder () a linha uma vez ... antes de começar a enviar som para o cliente. Então você só precisaria responder () em [Menu Principal] se você não tivesse feito isso antes. Aqui está uma pequena re-escrita de [entrada] que seria um pouco "melhor" em termos de legibilidade e goof-proof.
[incoming]
exten => 123,1,Answer()
 same => n(menuprompt),Background(main-menu)

exten => 1,1,Playback(digits/1)
 same => n,Goto(menuprompt)

exten => 2,1,Playback(digits/2)
 same => n,Goto(menuprompt)

exten => 9,1,Hangup()

"o mesmo" faz exactamente o que parece; "usa a mesma extensão que a linha acima". Se está fazendo grandes dialplanos onde você está fazendo um pouco de ajuste de colar entre diferentes seções, como o IVRs, usando "same", evita que você cometa um erro com o número de extensão.

O " (menuprompt) "é chamado de rótulo, e você pode ir para rótulos dentro do mesmo contexto, o que o absolve de ter que contar"n" 'S para descobrir qual o número de prioridade a usar.

Leitura Adicional: https://wiki.asterisk.org/wiki/display/AST/Contexts,+Extensões,+e+Prioridades

 1
Author: MichelV69, 2012-10-16 14:51:01