加载json.so时遇到Kamailio启动错误

时间:2016-01-08 18:23:09

标签: json kamailio

启动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。

1 个答案:

答案 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模块。