Freeswitch Conference LUA(自由交换能力平台LUA会议)

在执行session:execute("conference", conf_name);之后无法在lua脚本中保持控制。

以下所有命令均无法执行。

originate {}dialstring &test.lua

test.lua

api = freeswitch.API()
    freeswitch.consoleLog("DEBUG", "test1")
    session:execute("conference", "test_conf");
    freeswitch.consoleLog("DEBUG", "test2")

test2未在控制台日志中打印。

点赞
用户1278519
用户1278519

将我从freeswitch邮件列表中发表的答案转发:问题答案1附加信息2

据我所知,当您调用session:execute时,它是一个同步操作。 Lua脚本将继续运行,等待execute完成。 如果您想将用户踢出会议,则Lua脚本将从中断处继续运行。

(如果您将用户挂断或转移,会话将结束,脚本将尽力继续运行,但没有活动会话。)

替代方案: 根据您想要实现的内容,您可以在会议之前先安排一个任务,或仅为某些事情调用lua脚本,并在拨号计划中处理其余部分。需要时,将其返回另一个lua脚本以进行进一步处理。


Brian发布了另一条附加信息:

除非hangup_after_conference = false,否则它将不会继续执行lua。但是您是正确的,脚本正在执行会议,停在那里。

2020-05-19 16:16:15
用户9864392
用户9864392

是的,脚本的控制在会话转移到会议后就丢失了。

从逻辑上讲,我们可以通过以下方式从会议本身发起呼叫:

conference dial

2020-05-21 13:37:13