我需要configuration一个星号框来转到语音邮件,但只有在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()
在我的情况下,客户端是软电话客户端。 如果它没有运行或没有连接到PBX,那么这将立即将呼叫者redirect到语音邮件。 在这种情况下,当电话(SIP客户端)不可用时,30秒的等待时间不适用。
如何configurationAsterisk至less5次(不pipeSIP客户端是否离线),如果仍然没有应答,则将呼叫者放到语音邮件中。
谢谢
您可以在extensions.conf中创build一个上下文,只要您调用它,就会永远响起,然后拨打您要到达的扩展名和该名称。 这保证了在跳转到语音邮件之前,它总是运行Dial()应用程序30秒。 (根据需要更改30秒的值以获得五种铃声…铃声的时间段可以在适合您所在国家的indications.conf .conf的章节中find,因此您可以计算出五个铃声应该有多less时间。)
它可以看起来像这样:
[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()
调用noop上下文基本上不起作用,如果SIP/ivan可用,则会响铃。 如果您在拨打1234分机时没有听到铃声,则可以尝试不同的选项:
第一种可能性是使用呼叫进程(避免回答频道,因此呼叫者可能付费听铃声,但不总是工作,这取决于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()
第二种可能性是,在响应的频道上产生铃声(意味着主叫方在等待答复的同时支付了呼叫,因为实际上该呼叫被应答):
[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()
如果在等待时听不到铃声,请尝试在Dial应用程序中添加一个,r参数:
exten => 1234,3,Dial(SIP/ivan&Local/s@noop,30,r)
第二个答案不能被认为是一个解决scheme,语法也很久以前就改变了。
应该是队列(ivan,t ,,, 30)而不是队列(ivan | t || | 30)。
在这种情况下,它确实响铃到SIP对等方,但是这些是“假环”,呼叫已经build立,因此呼叫方必须支付费用甚至是振铃。 我会尝试的第一个今天,但我有一个感觉,那就是如果伊万离线,并在30秒内回到在线期间,他将不会得到戒指了。 我希望我不对。
无论如何感谢您的答案。
根据你如何使用Asterisk有多种select。
设置一个戒指组并将其设置为“ringall”。 然后您可以指定将振铃多less秒钟。
在queue.conf中设置一个ringall队列
[ivan] strategy = ringall context = default member => SIP/ivan
调整你的拨号scheme:
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()