在FreeSWITCH和会话管理器之间转移呼叫
我们有一个Avaya Session Manager和一个FreeSWITCH作为与之相连的功能服务器。
FreeSWITCH处理呼叫如下
来自SM 1.2.3.4的电话
session:transfer("tosm" .. dnis, "XML", "AS5850")
;转接电话<extension name="AVAYA SM">
<condition field="destination_number" expression="^tosm(\d*)$">
<action application="bridge" data="sofia/AS5850/0*$1@1.2.3.4"/>
</condition>
</extension>
这种方法相对较好,但问题是只要存在呼叫,FS仍然可以使用两个通道保持呼叫。这会消耗会话管理器上的两个通道,价格昂贵。
FreeSWITCH命令行可以删除通道,以便呼叫完全离开FS。执行此操作的命令是uuid_simplify。
我已尝试使用
从lua脚本执行该命令 my_fs_api = freeswitch.API()
my_exec_result = my_fs_api:executeString("sofia status")
my_exec_result = my_fs_api:executeString("uuid_simplify " .. my_ssession_uuid)
freeswitch.consoleLog("notice","\n\n[1c] result " .. my_exec_result .. "\n\n")
但它不起作用。
我尝试从会话转移中删除session:tranfer
并在拨号方案上使用偏转。这也不起作用。
有什么想法吗?
答案 0 :(得分:1)
你只是使用了错误的工具。如果您只需要修改SIP标头,例如来电显示,您可以轻松使用Kamailio并将其配置为无状态处理,这样它就不需要了解正在进行的会话。
我可以在1月份提供一些咨询服务(目前在今年剩余时间内完全预订)
答案 1 :(得分:0)
您需要使用将执行SIP REFER的命令deflect of FreeSWITCH来完成转接呼叫,并且呼叫将离开FreeSWITCH。