星号 - 在发起呼叫时播放音乐

时间:2017-05-02 13:35:50

标签: asterisk

我使用基于云的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()

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

完美无缺。然而,在我等待本地小区连接的同时,我已经在线路上保持沉默。我非常喜欢播放音乐......但是我不能使用MusicOnHold()应用程序,因为它只是放在那里&在我挂断之前什么都不做!

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

有没有任何已知的方式可以同步播放(其中一个)MusicOnHold频道,而我的拨号方案的其余部分还可以使用它?

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

e.g。

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行为,那么这将是接受的答案(但文档似乎表明它是相同的)。

1 个答案:

答案 0 :(得分:1)

您可以拨打本地频道(拨号方案)。在拨号方案之后,你可以使用m的拨号命令。

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)