例如:
安装db mysql module时会安装kamdbctl.mysql文件。确保模块已安装。接下来是安装模块的顺序:
make include_modules="db_mysql
dialplan tls" cfg
- make all
- make install
编译安装kamailion
1:下载kamailion并解压
wget https://www.kamailio.org/pub/kamailio/5.2.2/src/kamailio-5.2.2_src.tar.gz
tar vzxf kamailio-5.2.2_src.tar.gz
cd kamailio-5.2.2
2:首先kamailion生成编译相关的配置文件
make cfg
3:如需编译其他模块则 例如:
make include_modules="db_mysql" cfg
make include_modules="sctp" cfg. #提前安装 yum list lksctp* yum install lksctp*
更多编译参数信息请参考以下链接:
https://www.kamailio.org/wiki/devel/makefile-system
4:编译安装:
# make all
# make install
5:生成目录
/usr/local/sbin 主要可执行文件说明:
- kamailio - Kamailio SIP 服务器的执行文件
- kamdbctl – 用于创建管理数据库的脚本
- kamctl – 用于控制管理Kamailio SIP 服务器的脚本
- kamcmd – CLI命令行工具,是Kamailio SIP服务器提供的接口
/usr/local/etc/kamailio 配置文件目录
- kamailio.cfg – kamailio主配置文件,包括路由,全局参数,模块加载等
- kamctlrc – 定义了一些kamctl和kamdbctl可以使用的命令,如数据库引擎,域名等
/usr/local/share/kamailio 数据库及其表文件 初始化数据库使用
- mysql mysql表文件
/usr/local/lib64/kamailio 模块目录
- kamctl 客户端配置文件
- modules 库文件
6:启动kamailio脚本
1:查看5060端口是否被占用
netstat -tulnp | grep :5060
2:查看是否已经启动了kamailio
ps -aux|grep kamailio
pkill kamailio
3: 配置启动脚本
拷贝启动文件:
cp kamailio-5.2.2/pkg/kamailio/obs/kamailio.service /usr/lib/systemd/system/
修改启动文件:
拷贝后编辑文件修改Environment变量CFGFILE和ExecStart的值,让它指向我们的安装目录:
[Service]
Type=simple
User=kamailio
Group=kamailio
Environment='CFGFILE=/usr/local/etc/kamailio/kamailio.cfg'
Environment='SHM_MEMORY=64'
Environment='PKG_MEMORY=4'
EnvironmentFile=-/etc/sysconfig/kamailio
ExecStart=/usr/local/sbin/kamailio -DD -P /var/run/kamailio/kamailio.pid -f $CFGFILE -m $SHM_MEMORY -M $PKG_MEMORY
Restart=on-failure
执行:
systemctl daemon-reload
缺省设置条件下,运行Kamailio服务器的用户和组名字都是kamailio。因此,我们需要创建相应的Linux帐户:
# mkdir -p /var/run/kamailio
# groupadd kamailio
# adduser --system -g kamailio --shell /bin/false \
--home /var/run/kamailio kamailio
# 将所有权限设置为/var/run/kamailio
# chown kamailio:kamailio /var/run/kamailio
现在,可以通过systemctl命令起停服务了,试一下:
# systemctl start kamailio
# systemctl stop kamailio
# kamctl restart 重启