kamailio服务器内容补充

1、将kamailio.cfg配置为fork=no, 这样kamailio会以单进程方式运行,所以的逻辑都将在一个进程里执行,但单进程模式不支持TCP listen。

2、kamailio数据库中主要用到的有三张表:
A、subscribe:存储用户名和密码的
B、domain:配置的域所在的位置
C、location:记录位置信息,路由时需要

3、kamailio -c:查看配置文件是否有错
4、 kamailio -M 8 -E -e -dd:可以查看具体失败的信息
5、当编译presence、presence_xml、presence_reginfo模块的时候,会报“<libxml/parser.h>:No such file”,解决该问题的办法是安装libxml-dev、lib-xml
   (1)Ubuntu系统下:apt-get install libxml
                      apt-get install libxml-dev
   (2)centos系统下: apt-get install libxml
                      apt-get install libxml-devel
6、dbaliases表:用于存放kamailio中sip账号的别名,其中,domain字段不能为空,需填成服务器的域名或者IP,alias_domain字段,如果支持多域名的话,需要填写,否则直接为空即可。
7、kamailio中输出使用LM_DBG或者LM_ERR,后者默认的是ERROR,前者默认的是DEBUG,在cfg文件中输出使用xdbg。
例句:LM_DBG("%.*S\n",msg_body.len,msg_body.s);
      xdbg("this is a text");

8、自定义的模块的函数,如果想使用,必须要在源码里进行如下定义才可以
否则,在kamailio.cfg里无法使用。

9、当kamailio输出“EOF on 15”时,表示某个发出了信号15,导致程序异常退出,该问题一般是由于内存访问出现异常导致的。

10、kamailio与客户端之间可以通过http协议进行通讯,客户端通过libcurl发http连接,post需要发送的内容,kamailio这边就可以通过  
   event_route接收到发送的内容。
11、默认情况下,有一些模块kamailaio是不对其进行编译的,屏蔽掉的模块名称在modules.lst文件的exclude_modules = 。。。。,如果希望
    kamailio可以默认去编译某个模块的话,需要将这个模块从exclude_modules中去除掉,如果想要使用某个模块,则需要在kamailio.cfg中通过
    loadmodule来引用这个模块的so库。
12、usrloc模块中,urecord.c文件中的insert_ucontact函数是sip账号联网登录时执行的函数,通过这个函数可以获取到sip账号的在线状态,以及sip账号所在网络的ip(即_ci->c->s)

你可能感兴趣的:(SIP,kamailio)