【问题标题】:Freeswitch Conference LUAFreeswitch 会议 LUA
【发布时间】:2020-09-04 12:04:28
【问题描述】:

之后无法在 lua 脚本中保持控制

session:execute("会议", conf_name);

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

发起{}拨号字符串 &test.lua

test.lua

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

test2 没有打印在控制台日志中

【问题讨论】:

  • 提供更多信息。是否有任何错误消息_是否有更多代码要分享?
  • 不,没有错误消息 .. 我有一个简单的 lua 脚本 => 发起 {}dialstring &test.lua 我将此会话添加到会议 session:execute("conference", conf_name);
  • “无法被执行”是什么意思?什么是conf_name?提供您的脚本并阅读How to Ask
  • test.lua freeswitch,consoleLog("DEBUG", "test1") session:execute("conference", conf_name); freeswitch,consoleLog("DEBUG", "test2") test2 没有打印在控制台日志中
  • 请改进您的帖子,不要在 cmets 中添加代码

标签: lua freeswitch conference


【解决方案1】:

从 freeswitch 邮件列表中发布我的答案:Questionanswer 1additional information 2

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

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

替代方案: 根据您要完成的任务,您可以在会议之前先安排一个任务。或者只为某些事情调用 lua 脚本,其余的在拨号方案中处理。需要时,将其踢回另一个 lua 脚本以进行进一步处理。


Brian 发布了另一条信息:

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

【讨论】:

    【解决方案2】:

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

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

    会议拨号

    【讨论】:

      猜你喜欢
      • 2014-03-23
      • 1970-01-01
      • 2016-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-19
      • 1970-01-01
      • 2021-05-16
      相关资源
      最近更新 更多