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:
-
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()
-
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 aplicativoDial
:exten => 1234,3,Dial(SIP/ivan&Local/s@noop,30,r)