Ошибка запуска Kamailio при загрузке json.so

У меня проблема с запуском Kamailio версии 4.3. Я установил Kamailio из исходников, и модули хранятся в каталоге по умолчанию /usr/local/lib64/kamailio/modules. Я использую модуль json, который предоставляет Kamailio, но он не загружается.

Документацию 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)

Кто-нибудь еще сталкивался с подобной проблемой, или кто-нибудь знает решение? Также стоит упомянуть, что я использую kamailio на CentOS 6.7.


person btald1331    schedule 08.01.2016    source источник


Ответы (1)


is_error(p) должен быть макросом, загляните в файл json.h (возможно, в /usr/include/json-c/json.h) и посмотрите, включает ли он «bits.h» из той же папки. Внутри bits.h должен быть определен макрос is_error().

Если у вас его нет, возможно, это настраиваемая библиотека.

В качестве примечания: альтернативой операциям json в kamailio.cfg является использование модуля jansson.

person miconda    schedule 24.01.2016