Asterisco toca mesmo quando o cliente está offline

1

Eu preciso configurar uma caixa Asterisk para ir ao correio de voz, mas somente após os toques X.

exten => 1234,1,Dial(SIP/ivan, 30)
exten => 1234,2,VoiceMail(777@mb_tutorial)
exten => 1234,3,PlayBack(vm-goodbye)
exten => 1234,4,HangUp()

O cliente no meu caso é um cliente softphone. Se ele não estiver sendo executado ou não estiver conectado ao PBX, isso redirecionará imediatamente o chamador para o correio de voz. O tempo de espera de 30 segundos não se aplica neste caso quando o telefone (cliente sip) está indisponível.

Como eu poderia configurar o Asterisk para tentar tocar pelo menos 5 vezes (independentemente de o cliente de gotejamento estar off-line), então, se ainda não houver resposta, o chamador será redirecionado para o correio de voz.

Obrigado

    
por astlinux 06.10.2014 / 16:37

3 respostas

0

Você pode criar um contexto em extensions.conf que apenas toca para sempre se você chamá-lo e, em seguida, disque a extensão que deseja alcançar e esse contexto. Isso garante que ele sempre execute o aplicativo Dial() por 30 segundos antes de ir para o correio de voz. (Altere o valor de 30 segundos conforme necessário para obter cinco toques ... o período de toques pode ser encontrado na seção apropriada de indications.conf para o seu país, para que você possa calcular quanto tempo cinco toques devem ser.)

Pode ser algo assim:

[noop]
exten => s,1,Wait(30)
same => n,Hangup

[your_context]
exten => 1234,1,Dial(SIP/ivan&Local/s@noop,30)
exten => 1234,2,VoiceMail(777@mb_tutorial)
exten => 1234,3,PlayBack(vm-goodbye)
exten => 1234,4,HangUp()

Chamar o contexto noop basicamente não terá efeito, e se SIP/ivan estiver disponível, ele tocará. Se você não estiver ouvindo toques ao chamar as extensões 1234, tente opções diferentes:

  1. Primeira possibilidade, usando o progresso da chamada (evitando atender o canal e fazendo com que o chamador possivelmente pague para ouvir os toques ... mas nem sempre funciona, dependendo do provedor SIP):

    [your_context]
    exten => 1234,1,Progress
    exten => 1234,2,Ringing
    exten => 1234,3,Dial(SIP/ivan&Local/s@noop,30)
    exten => 1234,4,VoiceMail(777@mb_tutorial)
    exten => 1234,5,PlayBack(vm-goodbye)
    exten => 1234,6,HangUp()
    
  2. Segunda possibilidade, gerar toques de campainha como som no canal atendido (o que significa que o chamador paga pela chamada enquanto aguarda uma resposta também, porque a chamada é realmente atendida):

    [your_context]
    exten => 1234,1,Answer
    exten => 1234,2,Playtones(ring)
    exten => 1234,3,Dial(SIP/ivan&Local/s@noop,30)
    exten => 1234,4,VoiceMail(777@mb_tutorial)
    exten => 1234,5,PlayBack(vm-goodbye)
    exten => 1234,6,HangUp()
    

    Se você não ouvir os toques enquanto espera, tente adicionar um parâmetro ,r ao aplicativo Dial :

    exten => 1234,3,Dial(SIP/ivan&Local/s@noop,30,r)
    
por 07.10.2014 / 21:52
0

A segunda resposta não pode ser considerada como uma solução, também a sintaxe mudou há muito tempo.

Deve ser Queue (ivan, t , 30) em vez de Queue (ivan | t ||| 30).

Neste caso, ele soa para os pares SIP, mas esses são "anéis falsos", a chamada já está estabelecida, portanto, o chamador tem que pagar a taxa, mesmo para tocar. O primeiro que vou tentar Hoje, mas tenho a sensação de que o problema será que se Ivan estiver offline e voltar a ficar online durante o período de 30 segundos, ele não receberá mais os anéis. Espero que não esteja certo.

Obrigado pelas respostas de qualquer maneira.

    
por 13.10.2014 / 10:34
0

Existem várias opções com base em como você está usando o Asterisk.

  1. Usando o FreePBX ou uma interface semelhante:

Configure um grupo de toques e configure-o para "ringall". Você pode especificar quantos segundos irá tocar.

  1. Usando código de discagem escrita à mão:

Configure uma fila de ringall em queue.conf

[ivan]
strategy = ringall
context = default
member => SIP/ivan

Ajuste seu dialplan de maneira semelhante a:

exten => 1234,1,Answer
exten => 1234,n,Queue(ivan,t,,,30)
exten => 1234,n,VoiceMail(777@mb_tutorial)
exten => 1234,n,PlayBack(vm-goodbye)
exten => 1234,n,HangUp()
    
por 07.10.2014 / 05:50

Tags