当我将“bypass_media”设置为 true 时,如何让脚本等待网桥终止后再继续?
这个片段 -
freeswitch.consoleLog("err","session before="..tostring(session:ready()).."\n")
session:execute("set","bypass_media=true")
session:execute("bridge","sofia/gateway/carrierb/12345678")
freeswitch.consoleLog("err","session after="..tostring(session:ready()).."\n")
从音频的角度来看,它可以完美地与 bridge_media 设置为 true 或 false 一起工作,并且wireshark 跟踪显示音频通过 (false) 或端到端 (true)。
但是如果将 bypass 设置为 true,则脚本会继续运行而不会暂停,并且会话不再准备就绪(session:ready() == false)。
通道似乎进入了休眠状态,但是在桥接完成后我有家务要做,而我根本做不到。
如果我在 XML 拨号计划中进行桥接,也会发生同样的情况,立即继续导致我的内务处理提前触发。
FreeSWITCH (版本 1.6.20 git 43a9feb 2018-05-07 18:56:11Z 64bit) Lua 5.2
编辑 1 - 我可以让“api_hangup_hook=lua housekeeping.lua”工作,但是我必须传递大量变量,它会启动一个新的进程/线程/无论如何,这似乎有点矫枉过正,除非这是唯一的方法。