Kamailio安装配置指南(绝对原创,亲测有效)
来源:互联网 发布:易迈互联比阿里云好吗 编辑:程序博客网 时间:2024/05/21 16:54
1、先决条件
l 读者熟悉Ubuntu/Centos、Linux各种基本操作。
l 读者熟悉apt-get软件包管理工具。
l 读者熟悉编译安装Linux程序的一般过程。
l 操作用户具有sudo权限。
2、安装第三方依赖库
由于不同的Linux系统,同一个依赖库的名称也会不一样,在线安装方法也不一样,所以在此以Ubuntu和centos两种Linux系统为例进行讲解。
Ubuntu系统下的安装方式:
sudo apt-get install gcc flex bison libmysqlclient-dev make libcurl4-openssl-dev libxml2-dev libpcre3-dev libncurses5-dev libreadline6 libreadline-dev e2fsprogs-dev uuid-dev libuuid-dev
sudo yum install gcc gcc-c++ flex bison make openssl openssl-devel libxml2 libxml2-devel zlib-devel ncurses* e2fsprogs-devel uuid-devel libuuid-devel readline6 readline-devel curl-devel
3、执行编译和安装
执行该部分的前提是已经安装了MySQL,安装MySQL的过程此处不再叙述。
1、执行如下指令,解压源码
tar xvf kamailio-4.3.4_src.tar.gz
2、执行如下指令进入源码
cd kamailio-4.3.4
3、执行如下指令,生成modules.lst文件
make FLAVOUR=kamailio cfg
4、用自己熟悉的编辑工具打开"modules.lst"文件,找到"exclude_modules",将等号后面的db_mysql删除(这里可以根据自己的需要调整编译的模块)。然后执行如下指令编译
make all
5、执行如下指令进行安装
sudo make install
在该过程中,如果MySQL的版本是5.7以后的,可能会出现无法找到MySQL头文件的错误,解决方法为:
mkdir /usr/include/mysql
sudo cp /usr/local/mysql/include/* /usr/include/mysql
sudo mv /usr/include/mysql/mysql/* /usr/include/mysql
然后修改环境变量,解决方法为:
sudo vim /etc/profile.d/mysql.sh
然后,在mysql.sh中添加“export PATH=$PATH:/usr/includ”,执行如下指令使其生效,
source /etc/profile.d/mysql.sh
echo $PATH
执行完“echo $PATH”之后,查看显示的环境变量中是否有刚添加的路径,如果有,则表示已经生效,否则,没有生效。
缺省的情况下,Kamailio的可执行文件是安装在”/usr/local/sbin”路径下的,配置文件是安装在”/usr/local/etc/kamailio”路径下的。另外,需要将/usr/local/sbin路径加到环境变量下才能保证Kamailio的指令生效,添加环境变量的方法为:
sudo cd /etc/profile.d
sudo vim sbin.sh
然后在sbin.sh中输入“export PATH=$PATH:/usr/local/sbin”,保存之后,执行如下指令,如果输出内容中有/usr/local/sbin,则证明添加的环境变量已生效。
source sbin.sh
echo $PATH
几个可执行文件功能如下:
kamdbctl:创建和管理数据库的脚本
kamctl: 管理和控制Kamailio服务器的脚本
4、配置
1、打开/usr/local/etc/kamailio/kamailio.cfg,添加下面几行(添加在最顶端即可):
#!define WITH_MYSQL
#!define WITH_AUTH
#!define WITH_USRLOCDB
#!define WITH_NAT
#!define WITH_DEBUG
选定db_mysql模块安装。
2、修改 /usr/local/etc/kamailio/kamctlrc
去掉SIP_DOMAIN前的注释,并且修改成自己的服务器地址192.168.1.111(根据自己服务器的实际情况来写),我的是SIP_DOMAIN=192.168.1.111。然后去掉DBENGINE=MYSQL前的注释语句,选定mysql数据库,其他的按照如下内容来修改:
# cat /usr/local/etc/Kamailio/kamctlrc
# $Id$
# The Kamailio configuration file for the control tools.
# Here you can set variables used in the kamctl and kamdbctl setup
# scripts. Per default all variables here are commented out, the control tools
# will use their internal default values.
## your SIP domain
SIP_DOMAIN=192.168.1.111
## chrooted directory
# $CHROOT_DIR="/path/to/chrooted/directory"
## database type: MYSQL, PGSQL, ORACLE, DB_BERKELEY, or DBTEXT, by default none is loaded
# If you want to setup a database with kamdbctl, you must at least specify
# this parameter.
DBENGINE=MYSQL
## database host
DBHOST=localhost
## database name (for ORACLE this is TNS name)
DBNAME=kamailio
# database path used by dbtext or db_berkeley
# DB_PATH="/usr/local/etc/kamailio/dbtext"
## database read/write user
DBRWUSER=kamailio
## password for database read/write user
DBRWPW="kamailiorw"
## database read only user
# DBROUSER=kamailioro
DBROUSER=kamailioro
## password for database read only user
DBROPW=kamailioro
## database super user (for ORACLE this is 'scheme-creator' user)
DBROOTUSER="root"
# user name column
USERCOL="username"
# SQL definitions
# If you change this definitions here, then you must change them
# in db/schema/entities.xml too.
# FIXME
# FOREVER="2020-05-28 21:32:15"
# DEFAULT_ALIASES_EXPIRES=$FOREVER
# DEFAULT_Q="1.0"
# DEFAULT_CALLID="Default-Call-ID"
# DEFAULT_CSEQ="13"
# DEFAULT_LOCATION_EXPIRES=$FOREVER
# Program to calculate a message-digest fingerprint
# MD5="md5sum"
# awk tool
# AWK="awk"
# If you use a system with a grep and egrep that is not 100% gnu grep compatible,
# e.g. solaris, install the gnu grep (ggrep) and specify this below.
#
# grep tool
# GREP="grep"
# egrep tool
# EGREP="egrep"
# sed tool
# SED="sed"
# tail tool
# LAST_LINE="tail -n 1"
# expr tool
# EXPR="expr"
# Describe what additional tables to install. Valid values for the variables
# below are yes/no/ask. With ask (default) it will interactively ask the user
# for an answer, while yes/no allow for automated, unassisted installs.
#
# If to install tables for the modules in the EXTRA_MODULES variable.
# INSTALL_EXTRA_TABLES=ask
# If to install presence related tables.
# INSTALL_PRESENCE_TABLES=ask
# Define what module tables should be installed.
# If you use the postgres database and want to change the installed tables, then you
# must also adjust the STANDARD_TABLES or EXTRA_TABLES variable accordingly in the
# kamdbctl.base script.
# kamailio standard modules
# STANDARD_MODULES="standard acc lcr domain group permissions registrar usrloc msilo
# alias_db uri_db speeddial avpops auth_db pdt dialog dispatcher
# dialplan"
# Kamailio extra modules
# EXTRA_MODULES="imc cpl siptrace domainpolicy carrierroute userblacklist htable purple"
## type of aliases used: DB - database aliases; UL - usrloc aliases
## - default: none
# ALIASES_TYPE="DB"
## control engine: FIFO or UNIXSOCK
## - default FIFO
# CTLENGINE="FIFO"
## path to FIFO file
# OSER_FIFO="FIFO"
## check ACL names; default on (1); off (0)
# VERIFY_ACL=1
## ACL names - if VERIFY_ACL is set, only the ACL names from below list
## are accepted
# ACL_GROUPS="local ld int voicemail free-pstn"
## verbose - debug purposes - default '0'
VERBOSE=1
## do (1) or don't (0) store plaintext passwords
## in the subscriber table - default '1'
# STORE_PLAINTEXT_PW=0
## OPENSER START Options
## PID file path - default is: /var/run/Kamailio.pid
# PID_FILE=/var/run/kamailio/kamailio.pid
PID_FILE=/var/run/kamailio/kamailio.pid
## Extra start options - default is: not set
# example: start kamailio with 64MB share memory: STARTOPTIONS="-m 64"
# STARTOPTIONS=
5、生成Kamailio的MySQL数据库
执行如下指令生成Kamailio的数据库:
# /usr/local/sbin/kamdbctl create
可能会遇到需要授权的问题,需执行如下指令进行解决:
执行“mysql -u用户名 -p密码”,进入数据库,然后执行下面的语句来为用户授权,
grant all on *.* to 'root'@'%' identified by 'yourpassword'; (此指令也可以用来修改密码)
grant all on *.* to 'root'@'localhost' identified by 'yourpassword';
6、启动Kamailio服务
注意:启动Kamailio时必须切换到root模式,否则会启动失败,然后执行如下指令开启服务,
# /usr/local/sbin/kamctl start
种错误出现的原因是/var/run/路径下没有kamailio目录,手动创建一个即可,但不要生成kamailio.pid文件。
然后再开启服务试一下能否成功,如果还是不行,请按顺序检查如下内容:
(1)kamdbctlrc这个配置文件中的DBHOST处是否是127.0.0.1或者localhost,如果不是请将其修改成127.0.0.1或者localhost试试。
(2)执行“kamailio -c”来检测配置文件是否有错误,如果有报错,请根据具体报错信息解决问题。如果出现“config file ok,exiting......”,说明配置文件没有问题了。(3)执行“kamailio -dddd”,看是否有ERROR输出,若有,请依据错误提示进行修改。
7、注册SIP账号执行如下指令
#kamctl add user1 123456
#kamctl add user2 123456
使用上面的命令添加两个用户 user1和user2 密码都是123456,添加完毕后,配置你的SIP终端注册。
8、测试Kamailio服务
测试Kamailio服务的方式有很多,可以通过使用x-lite或者microsip,具体使用方法请自行百度,此处不再赘述。
OK,到此为止,Kamailio的安装和配置已经全部搞定!!!
- Kamailio安装配置指南(绝对原创,亲测有效)
- Kamailio安装指南
- Kamailio安装指南
- Kamailio 安装指南
- Kamailio安装指南
- Kamailio服务器安装配置
- 最强kamailio 开源sip服务器安装教程(酷云原创)
- SQL Server下载地址(亲测绝对有效)
- CentOS 6.0如何安装配置Kamailio
- kamailio配置
- Matlab Web Server安装配置大全(亲测有效)
- 如何安装SQL server2005的查询分析器(绝对原创)
- Mac OS X 10.10上的SIP Server的安装和配置(kamailio)
- MyEclipse插件SVN安装绝对有效方法
- OS X10.10 上kamailio的安装与配置
- Sublime Text3 绝对神器(安装、配置)
- win10系统下配置免安装MySQL,亲测有效
- windows环境下安装配置Pytesser[亲测有效]
- HDU5617 Jam's maze(dp)
- asterisk服务器搭建 入门教程
- 身份证号第18位的计算
- nodejs---常用npm命令
- (scala书籍编写)word 2007 目录格式乱的解决办法:编辑word 宏
- Kamailio安装配置指南(绝对原创,亲测有效)
- 数据仓库概述
- WebService
- SET IDENTITY_INSERT
- HDU 5616 Jam's balance(暴力枚举子集)
- iOS Core Animation,图层的树状结构
- lightoj1214 - Large Division【大数整除小数判定 模拟除法】
- Android Bitmap的加载和Cache
- LINUX环境并发服务器的三种实现模型