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