即使客户端处于离线状态,Asterisk 也会响铃

即使客户端处于离线状态,Asterisk 也会响铃

我需要配置一个 Asterisk 盒以便能够在 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,那么这将立即将呼叫者重定向到语音邮件。当电话(sip 客户端)不可用时,30 秒的等待时间不适用于这种情况。

我如何配置 Asterisk 尝试响铃至少 5 次(无论 SIP 客户端是否离线),然后如果仍然没有答复,则将呼叫者转到语音信箱。

谢谢

答案1

您可以创建一个上下文,extensions.conf如果您拨打该上下文,它就会一直响铃,然后拨打您想要拨打的分机号和该上下文。这保证了它将始终运行应用Dial()程序 30 秒,然后跳转到语音邮件。(根据需要更改 30 秒的值以获得五首铃声……铃声的持续时间可以在indications.conf您所在国家/地区的相应部分中找到,因此您可以计算出五首铃声应该持续多长时间。)

它看起来像这样:

[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()

调用无操作context 基本不会产生任何影响,如果SIP/ivan有,则会响铃。如果您在拨打 1234 分机时听不到铃声,您可以尝试不同的选项:

  1. 第一种可能性是,使用呼叫进度(避免应答信道,从而使呼叫者可能付费才能听铃声……但并不总是有效,这取决于 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. 第二种可能性,在应答信道上生成铃声(这意味着呼叫者在等待应答时也要支付通话费用,因为电话实际上已经应答):

    [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()
    

    如果在等待时没有听到铃声,请尝试,r向应用程序添加一个参数Dial

    exten => 1234,3,Dial(SIP/ivan&Local/s@noop,30,r)
    

答案2

第二个答案不能被视为解决方案,而且语法很久以前就改变了。

它应该是 Queue(ivan,t,,,30),而不是 Queue(ivan|t|||30)。

在这种情况下,它确实会向 SIP 对等方发出响铃,但那些是“假响铃”,呼叫已经建立,因此呼叫者必须为响铃付费。我今天将尝试第一个,但我觉得这样做的问题是,如果 Ivan 离线并在 30 秒内重新上线,他将不会再收到响铃。我希望我说的没错。

无论如何,感谢您的回答。

答案3

根据您使用 Asterisk 的方式,有多种选择。

  1. 使用 FreePBX 或类似界面:

设置一个响铃组并将其设置为“ringall”。然后您可以指定响铃的秒数。

  1. 使用手写拨号计划代码:

设置一个 ringall 队列队列配置文件

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

调整您的拨号计划类似于:

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()

相关内容