【1】源码下载
源码的下载方式有两种,分别是从SVN获取,或者是使用get获取
SVN:svn co https://svn.code.sf.net/p/opensips/svn/trunk
GET: git clone https://github.com/OpenSIPS/opensips.get opensips_trunk
【2】依赖库安装:
yum install gcc make yum install flex bison ncurses libncurses-dev ncurses-devel yum install mysql mysql-server mysql-libs mysql-devel
【3】编译安装:
[需要说明] 在编译的时候可以使用prefix进行制定要安装的路径 但是需要确认的是
make all 和make install 要么都指定,要么都都不指定
例如:
第一种:
make all
make install
第二种:
make prefix=/user/local all
make prefix=/user/local install
【4】使用配置脚本
make menuconfig
*该命令会启动一个配置文件的界面在其中可以选择对各个模块进行配置
使用的过程中使用空格键进行选定和取消选定的操作使用q键退回上一层
到这里就基本上安装成功了
【5】开通测试账号
如果安装成功,会有以下的几个文件,(这里假设安装路径为user/local)
/usr/sbin/opensips 一些控制工具
opensipsctl #主要的控制工具,启动、重启、等操作
opensipsdbctl #数据库的操作包括数据库的初始化,重新构建等等
/usr/etc/opensips 配置脚本存放的路径
/usr/share/opensips 数据库存放路径(当使用文本数据库时)
开通测试账号可以直接使用命令 opensipsctl add 1001(账号) 1001(密码)
如果遇见错误:ERROR: domain unknown: use usernames with domain or set default domain in SIP_DOMAIN”,可修改opensipsctlrc文件将SIP_DOMAIN设为本机域名或IP地址。
重启opensips即可。
如果遇见错误说,email_address 不能够为空,这是opensips 的自身的数据库的设计和命令行的冲突导致的,需要手动的修改数据库的结构
可以参考:http://sourceforge.net/p/openser/bugs/593/
修改完数据结构以后使用命令:
./opensipsdbctl presence 重新构建即
在使用命令opensipsctl domain show 的时候会报错:
ERROR: Error opening OpenSIPS’s FIFO /tmp/opensips_fifo ERROR: Make sure you have the line ‘modparam(“mi_fifo”, “fifo_name”, “/tmp/opensips_fifo”)’ in your config ERROR: and also have loaded the mi_fifo module.
这时候需要修改opensips.cfg文件
添加
loadmodule “mi_fifo.so” modparam(“mi_fifo”, “fifo_name”, “/tmp/opensips_fifo”) modparam(“mi_fifo”, “fifo_mode”, 0666)
【6】账号注册遇见483问题:
账号在注册的时候遇见483问题,说是造成了回环。
解决的方法就是使用命令:
opensipsctl add domain ‘192.168.133.170’
添加一条域名,重新opensips即可实现了注册
【7】设置日志输出方式
在opensips.cfg里有几个参数控制日志的输出:
debug=3 #此值控制日志输出的详细程度,3为普通,4为详细(会产生很多日志)。 log_stderror=no #设置为no表示将日志输出到文件,否则输出到控制台(应该是以前台方式启动opensips服务时才有用)。 log_facility=LOG_LOCAL0 #应该是用于在syslog服务的配置文件里区分opensips产生的日志(见下面“使用独立的log文件”)。 fork=yes #设置为yes表示在后台启动opensips服务,设置为no表示在前台启动。
【8】使用独立的log文件
opensips使用syslog服务,所以缺省情况下日志会进入/var/log/message这个文件,如果希望使用独立的log文件,可以这样设置:
touch /var/log/opensips.log vi /etc/rsyslog.conf –> 增加一行:local0.* /var/log/opensips.log /etc/init.d/rsyslog restart