0

Kamailio バージョン 4.3 の起動に問題があります。Kamailio をソースからインストールしたところ、モジュールはデフォルトのディレクトリに保存されています/usr/local/lib64/kamailio/modules。Kamailio が提供する json モジュールを使用していますが、ロードに失敗します。

json モジュールに関する Kamailio のドキュメントは、 http ://www.kamailio.org/docs/modules/3.4.x/modules/json.html にあります。

ドキュメントには、モジュールをロードする前に、私がインストールした必要なライブラリ libjson が必要であると記載されています。Kamailio を起動してログ ファイルを cat すると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 を実行していることにも言及する価値があります。

4

1 に答える 1

0

is_error(p) はマクロである必要があります。json.h ファイル (おそらく /usr/include/json-c/json.h) を調べて、同じフォルダーの "bits.h" が含まれているかどうかを確認してください。bits.h 内でマクロ is_error() を定義する必要があります。

それがない場合は、カスタマイズされたライブラリである可能性があります。

補足として、kamailio.cfg での json 操作の代替手段は、jansson モジュールを使用することです。

于 2016-01-24T21:37:21.097 に答える