【发布时间】: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