Freeswitch:为A-leg播放铃声,同时我们向被叫方B-leg播放一些消息

时间:2016-09-21 16:42:04

标签: voip freeswitch

在星号拨号命令A(x): Play an announcement (x.gsm) to the called party.可用于向b-leg播放一些消息,并且仍然保持腿听到铃声。

在freeswitch我试过

_nolocal_execute_on_answer=playback <file>

bridge_pre_execute_bleg_app=playback bridge_pre_execute_bleg_data=<file>

我在桥之前得到了初始铃声。但是在b-leg asnwer之后,A-leg只获得无声音频,直到音频文件在B-leg上完成。我如何使A-leg仍然获得铃声,而有一条消息只播放到B-leg?你的建议可能会对我有所帮助!

2 个答案:

答案 0 :(得分:0)

最好的方法是使用一些ESL编程来处理两个独立的呼叫支路,然后在B方应答时将它们连接在一起。

这里我有一个模拟类似场景的例子: https://github.com/xlab1/go-fs-secretary-prototype

https://github.com/xlab1/go-fs-secretary-prototype/blob/master/golang/secretary_server.go

第49-53行:回答一条腿并回放MOH(在你的情况下可以回收)

第95行:向B腿进行出站呼叫

第151行:向B腿播放消息并等待DTMF输入

第156-162行:根据DTMF输入,放下A腿,或用B腿桥接它。

答案 1 :(得分:0)

group_confirm_file是在将呼叫桥接到A腿之前向被叫方播放消息的最佳选择

<action application="set" data="group_confirm_file=playback /path/to/prompt.wav"/> <action application="set" data="group_confirm_key=exec"/>

参考:FS-jiraFS-wiki