本文是对权利的补充。
1.安装 MySQL
去官方下载最新版本的MySQL,本文使用最新的MySQL Community Server5.6.25 GA版本,Mac用户可以使用dmg格式方便。由于OS X的路径问题,后期启动Kamailio时可能找不到该库,所以需要创建该库的软链接,即终端执行安装后的命令:
# sudo ln -s/usr /local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
终于可以在System Preferences中打开MySQL Server了,如果不执行这一步,会影响到第5步。
值得注意的是,这个版本的 MySQL 在 10.10 中还没有设置从系统启动,虽然有这个复选框。
2.源码下载
打开终端,从 Git 下载最新版本
# git clone git://git.sip-router. org/kamailiokamailio
# cd kamailio
# git checkout -b 4.2 origin/4.2
或者只下载最新的
# git clone –branch 4.2 –single-branch \
git://git.sip-router.org/kamailiokamailio
# cd kamailio
我没有尝试下载源代码,我直接下载了压缩包。
3.编译安装
执行第2步后,首先添加MySQL环境变量:
# export PATH=$PATH :/usr/local/mysql-5.6.25-osx10.8-x86_64/bin
然后执行以下命令编译安装
# make include_modules=db_mysql cfg
# sudo 全部生成
# sudo make install
如果在make all的时候不使用sudo来提升权限,可能会失败。虽然 sudo 不是一个好习惯,但在这里使用 sudo 很方便。这里会出现的问题之一是mysql模块编译失败。提示“mysql/mysql.h”未找到。这时候去kamailio-4.3.0/modules/db_mysql,把源dock文件引用改成。
此时你应该可以完成make all了。下次安装,这一步就没有问题了。
4.Kamailio 配置
修改kamctlrc文本,执行
# sudo vim /usr/local/etc/kamailio/kamctlrc
去掉SIP_DOMAIN前面的#号,改成自己的服务器地址。
我的是 SIP_DOMAIN=127.0.0.1。也就是本地IP。
然后去掉DBENGINE=MYSQL前面的注释语句,选择mysql数据库。
然后修改kamailio.cfg文本并执行
# sudo vim /usr/local/etc/kamailio/kamailio.cfg
在文本开头添加上一行:
#!defineWITH_MYSQL
5.创建数据库并启动服务器
执行命令创建数据库
# /usr/local/sbin/kamdbctl 创建
如果提示输入密码,默认密码为空
如果这一步有错误,请检查系统偏好服务器中是否开启了MySQL。有人用老版本的mysql,因为字符集问题,这一步报错了。如果遇到这个问题,可以将 MySQL 的默认字符集更改为 Latin1。未经验证。
值得一提的是,这里可能有错误:
/usr/local/lib/kamailio/kamctl/kamdbctl.mysql: line 105: mysql: > command not found
解决方法也很简单:
# ln -s /usr/local/mysql/bin/mysql /usr/bin
创建数据库后需要添加用户
我们这里添加三个用户 100 101 和 102 ,密码都是 123:
# /usr/local/sbin/kamctladd 100 123
# /usr/local/sbin/kamctladd 101 123
# /usr/local/sbin/kamctladd 102 123
添加用户后需要启动SIP Server:
# sudo/usr/local/sbin/kamctl start
如果这一步有问题,请检查步骤1中库的软链接是否建立。除了软连接问题,还有一个比较重要的问题就是会提示
信息:开始 Kamailio:
错误:PID 文件 /var/run/kamailio.pid 不存在 – – Kamailio 启动失败
存在权限问题,不是模块未编译。使用
kamailio -M 8 -E -e -dd
查看具体故障信息,或进入系统日志。具体的错误原因是 ERROR: init_unix_sock: bind: No such file or directory。一个简单的解决方法是sudo vim /usr/local/etc/kamailio/kamctlrc,去掉PID_FILE=/var/run/kamailio/kamailio.pid前面的#号,然后在/var/run下新建一个属于当前 Mac 用户的 kamailio 文件夹。
#mkdir /var/run/kamailio
#sudo chmod 用户名 /var/run/kamailio
#sudo chown 用户名 /var/run/kamailio
然后重新开始。如果没有最后一句,会提示ERROR: init_unix_sock: bind: Permission denied。如果启动时提示:
udp_init(): bind(5, 0x10388a7a4, 16) on 127.0.0.1: 地址已经在使用中
可以运行
#lsof -i :5060 查看5060的占用情况pod导入找不到头文件,然后kill掉。这时候会报错
ERROR: ctl: could not delete unix socket /var/run/kamailio//kamailio_ctl: No such file or directory 但不影响使用。再次执行startpod导入找不到头文件,应该会看到如下提示。
如果提示
信息:开始Kamailio:
INFO:开始(pid:19230)
服务器启动成功。
参考:
请登录后发表评论
注册
社交帐号登录