尝试索引全局'e_con'(数值)

时间:2017-03-10 13:45:19

标签: lua freeswitch

lua: els_bgapi.lua:20: attempt to index global 'e_con' (a number value)
stack traceback:
        els_bgapi.lua:20: in main chunk
        [C]: in ?

请帮我刷新Lua和FreeSWITCH时运行下面的代码得到上面的错误

sock:bgapi("originate","{sip_cid_type=pid,origination_uuid=uuid,origination_caller_id_number=65181,originate_timeout=10}sofia/external/sip:81245@10.20.16.135 5000")

e_con= sock:events("plain","all");
if (e_con) then
  print(e_con:getHeader());
else
  print("not e_con")
end

1 个答案:

答案 0 :(得分:0)

events命令只是订阅事件但不读取连接中的任何事件。

bgapi就像你向FS发送命令一样。 FS返回带有作业ID的回复。但是在这个时候FS可能无法启动执行命令yeat。您必须使用正确的职位ID等待BACKGROUND_JOB事件。

所以你必须订阅BACKGROUND_JOB(或者像你一样订阅,但要准备好处理许多其他活动)。

然后发送bgapi并从响应中读取作业uuid或传递您自己的作业uuid,以便您可以在获得FS响应之前过滤事件。然后用recvEvent循环。

我不使用原始ESL库,但FS书中有例子。 我也在自己的ESL implementation for Lua基础上使用LibUV库