启动Kamailio版本4.3时遇到问题。我从源代码安装了Kamailio,模块存储在默认目录/usr/local/lib64/kamailio/modules
中。我正在使用Kamailio提供的json模块,但无法加载。
Kamailio关于json模块的文档可在此处找到: http://www.kamailio.org/docs/modules/3.4.x/modules/json.html
文档说明在加载模块之前,您需要我安装的所需库libjson。当我启动kamailio并通过kamailio start; cat /var/log/kamailio.log | grep error
捕获日志文件时,我收到以下错误:
Jan 8 12:43:53 localhost kamailio: ERROR: <core> [sr_module.c:576]: load_module(): could not open module </usr/local/lib64/kamailio/modules/json.so>: /usr/local/lib64/kamailio/modules/json.so: undefined symbol: is_error
Jan 8 12:43:53 localhost kamailio: : <core> [cfg.y:3432]: yyerror_at(): parse error in config file /usr/local/etc/kamailio/kamailio.cfg, line 109, column 12-20: failed to load module
第109行显然是正确的:
loadmodule "json.so"
更多信息:
ldd json.so
linux-vdso.so.1 => (0x00007ffc33e97000)
libjson-c.so.2 => /lib64/libjson-c.so.2 (0x00007f24d8110000)
libc.so.6 => /lib64/libc.so.6 (0x00007f24d7d7c000)
/lib64/ld-linux-x86-64.so.2 (0x00007f24d8527000)
是否有其他人遇到类似问题,或者有人知道解决方案吗?还值得一提的是我在 CentOS 6.7 上运行kamailio。
答案 0 :(得分:0)
is_error(p)应该是一个宏,查看你的json.h文件(也许是在/usr/include/json-c/json.h)并查看它是否包含&#34; bits.h&#34;来自同一个文件夹。在bits.h里面应该定义宏is_error()。
如果你没有,那么它可能是一个自定义的库。
作为旁注,kamailio.cfg中json操作的替代方法是使用jansson模块。