【问题标题】:Asterisk - playing music whilst originating a call星号 - 在发起呼叫时播放音乐
【发布时间】:2017-05-02 13:35:49
【问题描述】:

我使用基于云的 Asterisk 服务器作为我的 PBX。在我目前的位置,互联网相当不稳定,但手机可靠且司空见惯。但是,国际手机通话很贵,VOIP 通话要便宜得多。

所以,我想出了一个用 Asterisk 拨打本地手机的脚本:

exten => _abcd.,1,NoOp(-- Making outbound call to number ${EXTEN:4} --)
same  => n,Answer()
same  => n,Wait(1)
same  =>  n,Originate(SIP/+86[my_cell_no]@[voip_provider],exten,incoming_remote,##${EXTEN:4})
same  => n,Hangup()

假设我想拨打一个英国手机号码 +4477something。我会用我的软电话拨打 abcd+4477something。上面的脚本运行,拨打我的本地手机。我一回答,它就会跳转到另一个扩展 _##。拨打外线号码,并将两者连接在一起。

完美运行。但是,当我在等待本地单元连接时,我的线路一直保持沉默。我很想播放音乐...但我不能使用 MusicOnHold() 应用程序,因为它只是坐在那里,在我挂断之前什么都不做!

我无法将任何“DIAL”样式命令(即“m”)添加到 Originate 命令,因为它不支持它们。

在我的拨号计划的其余部分继续进行的同时,是否有任何已知的方式可以异步播放 MusicOnHold 频道(其中之一)?

AGI 命令 SET MUSIC 会做我想要的吗?

例如

exten => _abcd.,1,NoOp(-- Making outbound call to number ${EXTEN:4} --)
same  => n,AGI(turn_music_on.sh)
same  => n,Answer()
.....etc.

我使用的是 Asterisk 1.8,如果更新的版本修复/更改了 MusicOnHold 行为,那么这将是公认的答案(但文档似乎表明它是相同的)。

【问题讨论】:

    标签: asterisk


    【解决方案1】:

    您可以拨打本地频道(拨号方案)。之后在 dialplan 中可以使用 m of dial 命令。

    https://www.voip-info.org/wiki/view/Asterisk+local+channels

    same  =>  n,Originate(Local/[my_cell_no]@out/n,exten,incoming_remote,##${EXTEN:4})
    
    [out]
    exten => _X.,1,Dial(SIP/+86${EXTEN}@[voip_provider],,m)
    

    【讨论】:

    • 非常感谢! Originate 给了我一个款待,让我可以使用我的 Asterisk 服务器,让我用我在中国的中国手机拨打英国手机,只需几美分!
    猜你喜欢
    • 1970-01-01
    • 2022-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-19
    • 1970-01-01
    • 1970-01-01
    • 2018-03-29
    相关资源
    最近更新 更多