2016-01-08 51 views
0

啓動Kamailio版本4.3時出現問題。我從源碼安裝了Kamailio,並且這些模塊存儲在默認目錄/usr/local/lib64/kamailio/modules中。我使用的是Kamailio提供的json模塊,但它無法加載。Kamailio啓動加載錯誤json.so

Kamailio的json模塊上的文檔可以在這裏找到: http://www.kamailio.org/docs/modules/3.4.x/modules/json.html

的文檔指出模塊被加載之前,你需要所需的庫libjson,我安裝。當我通過kamailio start; cat /var/log/kamailio.log | grep error開始kamailio和貓的日誌文件,我收到以下錯誤:

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

is_error(p)應該是一個宏,請查看您的json.h文件(可能位於/usr/include/json-c/json.h)並查看它是否包含來自同一文件夾的「bits.h」 。 bits.h內應該定義宏is_error()。

如果你沒有那個,也許它是一個自定義庫。

作爲一個方面說明,在kamailio.cfg中的json操作的替代方法是使用jansson模塊。