1.安装MySQL去官方下载最新版本的MySQLCommunity.6.25GA版

本文是对权利的补充。

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步。

图片[1]-1.安装MySQL去官方下载最新版本的MySQLCommunity.6.25GA版-老王博客

图片[2]-1.安装MySQL去官方下载最新版本的MySQLCommunity.6.25GA版-老王博客

值得注意的是,这个版本的 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

在文本开头添加上一行:

图片[3]-1.安装MySQL去官方下载最新版本的MySQLCommunity.6.25GA版-老王博客

#!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)

服务器启动成功。

参考:

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论