FreeSWITCH:使用 Lua 而非 CURL 加载配置时出错
2016-10-7 9:50:1
收藏:0
阅读:111
评论:2
我已经通过 xml_curl 模块选项设置了可工作的 FreeSWITCH 配置
<param name="gateway-url"
value="http://localhost:444/index.php"
bindings="directory|dialplan|configuration"/>
我想要将 xml_curl 模块更改为 lua 模块,因此我关闭了 xml_curl 模块并将以下选项设置为 lua 模块
<param name="xml-handler-script"
value="/var/www/callcenter/current/freeswitch/index.lua"/>
<param name="xml-handler-bindings"
value="dialplan|directory|configuration"/>
但是,使用它时 module sofia 抛出错误 Error Creating SIP UA for profile。lua 模块是否存在问题?也许我应该为 lua 模块设置其他选项?
我使用的是 FreeSWITCH 1.6
点赞
用户1672598
半个十年后,以防有人遇到这种情况:
问题是${foo}变量默认情况下不会被扩展。以下代码将启用它:
local rpc = require("rpc")
freeswitch.consoleLog("NOTICE", table.concat({
"Loading configuration " ..
tostring(XML_REQUEST["section"]) ..
" -> "..
tostring(XML_REQUEST["key_value"]) ..
" using lua\n"
}, " "))
local ret
rpc.context(function(rpc_api)
local conf = rpc_api.get_configuration {
section = XML_REQUEST.section,
tag_name = XML_REQUEST.tag_name,
key_name = XML_REQUEST.key_name,
key_value = XML_REQUEST.key_value,
params = params and params:serialize("json") or false,
}
ret = type(conf.result) == "string" and conf.result or conf.result[1]
end)
assert(ret, tostring(XML_REQUEST["section"]) .. " ".. tostring(XML_REQUEST["key_value"]) .. " lacks a config generator")
-- Apply the global variables
local function apply_globals(txt)
return txt:gsub('([$]+%b{})', function(w)
local var = w:match("[{]([^}]+)[}]")
freeswitch.consoleLog("WARNING", "Apply global: "..var .. " = ".. tostring(freeswitch.getGlobalVariable(var)).."\n")
return freeswitch.getGlobalVariable(var)
end)
end
XML_STRING = apply_globals(ret)
if XML_REQUEST.key_value == "sofia.conf" then
freeswitch.consoleLog("WARNING", "CONF " .. XML_STRING.. "\n")
end
此外,请确保您的文档具有正常文件中找不到的额外标题:
local CONF_HEADER = [[<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="freeswitch/xml">
<section name="configuration">
]]
local CONF_FOOTER = [[
</section>
</document>
]]
return CONF_HEADER..read_xml_from_disk()..CONF_FOOTER
2022-01-24 14:54:44
评论区的留言会收到邮件通知哦~
推荐文章
- Lua 虚拟机加密load(string.dump(function)) 后执行失败问题如何解决
- 我想创建一个 Nginx 规则,禁止访问
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?

mod_lua在初始启动期间加载,然后在初始启动后加载的模块可能会在请求配置时由绑定的脚本提供配置,对于许多模块来说,这是加载时的操作。<configuration name="lua.conf" description="LUA Configuration"> <settings> <param name="xml-handler-script" value="configuration.lua"/> <param name="xml-handler-bindings" value="configuration"/> </settings> </configuration>然后当模块启动时,XML_REQUEST 将具有:
key_value = 'iax.conf'|'event_socket.conf'|sofia.conf'|... key_name = 'name' section = 'configuration' tag_name = 'configuration'