当前位置: 首页 > 工具软件 > Kamailio > 使用案例 >

kamailio mysql_kamailio安装

白昊乾
2023-12-01

## 1 下载 [kamailio 源码tar包](外链网址已屏蔽) 依赖: git client: apt-get install git - it is recommended to have a recent version, if your Linux distro has an old version, you can download newer one from: 外链网址已屏蔽 gcc compiler: apt-get install gcc flex - apt-get install flex bison - apt-get install bison libmysqlclient-dev - apt-get install libmysqlclient-dev make - apt-get install make if you want to enable more modules, some of them require extra libraries: libssl - apt-get install libssl-dev libcurl - apt-get install libcurl4-openssl-dev libxml2 - apt-get install libxml2-dev libpcre3 - apt-get install libpcre3-dev *注:依赖关系摘抄于[Install And Maintain Kamailio v4.3.x From GIT](外链网址已屏蔽)* ## 2 安装 1. 解压进入安装目录 2. 执行```make cfg```生成modules.ls文件 3. 打开modules.ls文件,去掉exclude_modules中的db_mysql,保存。 4. make all 5. make install *注:以上来自[Unbuntu上编译安装搭建Kamailio sip服务端详细步骤 ](外链网址已屏蔽)* ## 3 配置Mysql ### 3.1 编辑/usr/local/etc/kamailio/kamctlrc 将以下字段最前面的#去掉 ``` SIP_DOMAIN=localhost //localhost可根据需要修改 DBENGINE=MYSQL DBHOST=localhost DBNAME="kamailio" DBRWUSER="kamailio" DBRWPW="123456" //密码可根据需要修改 DBROUSER="kamailioro" DBROPW="123456" DBROOTUSER="root" ALIASES_TYPE="DB" CTLENGINE="FIFO" FIFOPATH="/var/run/kamailio_fifo" VERBOSE=1 PID_FILE=/var/run/kamailio.pid USERCOL="username" ``` ### 3.2 编辑/usr/local/etc/kamailio/kamailio.cfg 将以下字段添加到####### Defined Values #########后面 ``` #!define WITH_MYSQL #!define WITH_AUTH #!define WITH_ALIASDB #!define WITH_USRLOCDB ``` 修改DBURL和/usr/local/etc/kamailio/kamctlrc配置中一致 ``` #!define DBURL "mysql://kamailio:123456@localhost/kamailio" ``` ### 3.3 创建数据库 执行```kamdbctl create```,根据提示进行操作。 ### 3.4 添加数据 ``` kamctl add name password ``` ## 4 配置rtpProxy 1. 编辑/usr/local/etc/kamailio/kamailio.cfg 将以下字段添加到####### Defined Values #########后面 ``` #!define WITH_NAT ``` 修改rtpproxy通信方式及地址端口 ``` modparam("rtpproxy", "rtpproxy_sock", "udp:127.0.0.1:7722") ``` ## 5 启动kamailio 1. 执行```kamailio```启动服务 2. 使用```netstat -anp | grep 7722```(7722是rtpProxy端口)查看rtpProxy配置是否有问题 ``` [root

@localhost kamailio]# netstat -anp | grep 7722 udp 0 0 127.0.0.1:59678 127.0.0.1:7722 ESTABLISHED 14851/kamailio udp 0 0 0.0.0.0:7722 0.0.0.0:* 109384/rtpproxy udp 0 0 127.0.0.1:34230 127.0.0.1:7722 ESTABLISHED 14873/kamailio udp 0 0 127.0.0.1:39606 127.0.0.1:7722 ESTABLISHED 14870/kamailio udp 0 0 127.0.0.1:38843 127.0.0.1:7722 ESTABLISHED 14845/kamailio udp 0 0 127.0.0.1:59836 127.0.0.1:7722 ESTABLISHED 14850/kamailio udp 0 0 127.0.0.1:55617 127.0.0.1:7722 ESTABLISHED 14874/kamailio udp 0 0 127.0.0.1:48102 127.0.0.1:7722 ESTABLISHED 14847/kamailio udp 0 0 127.0.0.1:59240 127.0.0.1:7722 ESTABLISHED 14848/kamailio udp 0 0 127.0.0.1:59756 127.0.0.1:7722 ESTABLISHED 14844/kamailio udp 0 0 127.0.0.1:36978 127.0.0.1:7722 ESTABLISHED 14841/kamailio udp 0 0 127.0.0.1:47860 127.0.0.1:7722 ESTABLISHED 14871/kamailio udp 0 0 127.0.0.1:53751 127.0.0.1:7722 ESTABLISHED 14872/kamailio udp 0 0 127.0.0.1:39417 127.0.0.1:7722 ESTABLISHED 14841/kamailio udp 0 0 127.0.0.1:59262 127.0.0.1:7722 ESTABLISHED 14865/kamailio udp 0 0 127.0.0.1:57984 127.0.0.1:7722 ESTABLISHED 14843/kamailio udp 0 0 127.0.0.1:60165 127.0.0.1:7722 ESTABLISHED 14846/kamailio udp 0 0 127.0.0.1:54673 127.0.0.1:7722 ESTABLISHED 14852/kamailio udp 0 0 127.0.0.1:41362 127.0.0.1:7722 ESTABLISHED 14849/kamailio udp 0 0 127.0.0.1:39450 127.0.0.1:7722 ESTABLISHED 14864/kamailio ``` ## 6 FAQ ### 6.1 kamctl添加用户报权限错误 >ERROR 1045 (28000): Access denied for user 'kamailioro'@'localhost' (using password: YES) INFO: user '100' already exists 解决:修改kamailio密码 ``` UPDATE user SET password=PASSWORD('123456') WHERE user='kamailio'; FLUSH PRIVILEGES; ``` ### 6.2 kamailio启动时mi_fifo报错 >ERROR: mi_fifo [fifo_fnc.c:72]: mi_init_fifo_server(): Can't create FIFO: No such file or directory (mode=432) 解决:编辑/usr/local/etc/kamailio/kamailio.cfg,将fifo路径改为存在的文件中 ``` modparam("mi_fifo", "fifo_name", "/var/run/kamailio_fifo") ``` ### 6.3 kamailio启动时ctl报错 > 0(14675) INFO: [tcp_main.c:4656]: init_tcp(): using epoll_lt as the io watch method (auto detected) 0(14677) INFO: rr [../outbound/api.h:54]: ob_load_api(): Failed to import bind_ob 0(14677) INFO: rr [rr_mod.c:174]: mod_init(): outbound module not available 0(14677) INFO: usrloc [hslot.c:51]: ul_init_locks(): locks array size 1024 0(14677) ERROR: ctl [init_socks.c:115]: init_unix_sock(): ERROR: init_unix_sock: bind: No such file or directory [2] 0(14677) ERROR: ctl [ctl.c:273]: mod_init(): ERROR: ctl: mod_init: init ctrl. sockets failed 0(14677) ERROR: [sr_module.c:945]: init_mod(): Error while initializing module ctl (/usr/local/lib64/kamailio/modules/ctl.so) ERROR: error while initializing modules 解决:编辑/usr/local/etc/kamailio/kamailio.cfg,将binrpc路径改为存在的文件中 ``` modparam("ctl", "binrpc", "unix:/var/run/kamailio_ctl") ```

 类似资料: