在Kamailio中加载新模块

时间:2014-04-03 09:28:06

标签: sip-server kamailio openser

我想问一下,如何在Kamailio 4.1.2中加载新模块? 实际上,当我尝试编译kamaiio.cfg时,我遇到了一个问题 我有错误:

root@kamailio:/usr/local/# kamailio -c kamailio.cfg
loading modules under /usr/local/lib64/kamailio/modules/
 0(25392) ERROR: <core> [sr_module.c:587]: load_module(): ERROR: load_module: could not find module <websocket> in </usr/local/lib64/kamailio/modules/>
 0(25392) : <core> [cfg.y:3408]: yyerror_at(): parse error in config file /usr/local/etc/kamailio/kamailio.cfg, line 323, column 12-25: failed to load module
 0(25392) ERROR: <core> [cfg.y:3272]: yyparse(): cfg. parser: failed to find command ws_handle_handshake
 0(25392) : <core> [cfg.y:3411]: yyerror_at(): parse error in config file /usr/local/etc/kamailio/kamailio.cfg, line 1083, column 27: unknown command, missing loadmodule?

ERROR: bad config file (2 errors)

当我亲眼看/usr/local/lib64/kamailio/modules/时,有一些模块,但websocket.so缺失。 那么,我如何在Kamailio中获取并加载模块?

谢谢你的帮助!

2 个答案:

答案 0 :(得分:3)

您尚未安装模块 websocket 。编辑源代码目录中的modules.lst文件,并将websocket添加到include_modules变量中。如果您没有modules.lst,请执行以下操作:

make cfg

替代方案是:

make cfg include_modules="websocket"

默认情况下,kamailio的构建系统仅编译和安装与应用程序核心具有相同依赖关系的模块。对于websocket,您需要安装libunistring和openssl(libssl)开发包。

答案 1 :(得分:0)

步骤将新模块加载到 Kamailio 服务器。 (如果以上答案不适合您,请尝试)

  1. 直接检查模块是否存在于默认模块中 / usr / local / lib64 / kamailio / modules
    如果找到,请在 kamailio.cfg 文件的加载模块部分中添加 loadmodule&#34; module_name.so &#34;
  2. 如果在默认模块目录中找不到该模块,您可以在默认模块源代码目录 /usr/local/src/kamailio-4.4/kamailio/modules
  3. 如果找到源代码,请进入模块目录。然后创建模块&#39;通过以下命令共享对象文件(.so)。

    ./配置
    使
    进行测试 make install

  4. 然后您将获得一个共享对象文件(.so)。将该文件复制到默认模块目录中。并按照步骤1中提到的 kamailio.cfg 文件加载此模块。

  5. 如果默认源代码目录中不存在模块源代码,则需要从Web下载源代码。并按照步骤3和4进行操作。