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
答案 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库