一 在ubuntu12.4中安装
(1) 从opensips的官网上下载opensips
http://www.opensips.org/Downloads/Downloads
Wget http://opensips.org/pub/opensips/1.11.2/src/opensips-1.11.2_src.tar.gz
tar xcf opensips-1.11.2_src.tar.gz
cd opensips-1.11.2-tls/
make menuconfig
(2)在menuconfig中选择—>Configure Compile Options—> Configure Excluded Modules
方向键向下滚动,按空格选中[*] db_mysql
按q键返回上一级,选择—> Configure Install Prefix,输入/回车表示安装在/目录下的配置目录而不是/usr/local目录下。(在这里我输入的是/usr/local/)
选择 —> Save Changes 保存修改。
按q返回,选择 —> Compile And Install OpenSIPS,回车安装。
安装完成后会将配置文件放在/etc/opensips目录下。运行文件在/sbin目录下。
如果出现依赖错误,先通过apt-get安装依赖。
二 配置opensips
(1)进入/sbin目录,运行osipsconfig命令
cd /sbin
osipsconfig
依次选择—> Generate OpenSIPS Script —> Residential Script —> Configure Residential Script
选中如下几项
[*] ENABLE_TCP
[*] USE_ALIASES
[*] USE_AUTH
[*] USE_DBACC
[*] USE_DBUSRLOC
[*] USE_DIALOG
[*] USE_NAT
按q返回,选择 —> Generate Residential Script 回车,生成新的配置文件。按q(三次)退出命令
(2)到/etc/opensips/目录中,
将新生成的opensips_residential_*.cfg文件重命名为opensips.cfg编辑
mv opensips_residential_2014-7-10_16:19:22.cfg opensips.cfg
vi opensips.cfg
A 修改监听的ip地址与端口 B 修改modules存放的路径(根据你安装的路径来定)
C 在uri的模块中添加链接数据库 D 添加mediaproxy模块
modparam("mediaproxy","mediaproxy_socket", "/var/run/mediaproxy/dispatcher.sock"
(3)修改opensipsctlrc文件,到/etc/opensips下,找到opensipsctlrc进行修改
vi opensipsctlrc
去掉所有DB相关的注释。
SIP_DOMAIN=opensips.org
DBENGINE=MYSQL
DBHOST=localhost
DBNAME=opensips
DB_PATH="/usr/local/etc/opensips/dbtext"
DBRWUSER=opensips
DBRWPW="opensipsrw"
DBROOTUSER="root"
USERCOL="username"
(4)为opensips新建数据库,增加域名及用户
opensipsdbctl create
opensipsctl add 1000 1000
opensipsctl add 1001 1001
(5)安装rtpproxy 和mediaproxy
安装rtpproxy 使用如下命令
wget clone git://sippy.git.sourceforge.net/gitroot/sippy/rtpproxy
cd rtpproxy
./configure&&make&&make install
启动rtpproxy命令
rtpproxy -l xxx.xxx.xxx.xxx -s udp:localhost 22222 -F
安装meidaproxy (此为在centos中安装,在ubuntu中也是一样的)
参考资料为:http://fengwan.blog.51cto.com/508652/1655392/
配置mediaproxy
Meidaproxy分为media-diapatcher 和media-relay 两部分,前者通过unxi文件跟opensips通信,后者通过sock跟前者通信。
安装目的:
让opensips完成sipserver的功能,并且使用mysql中的表项完成认证,且配合mediaproxy完成rtp流的代理,即没有meidaproxy时rtp流不经过opensips server,使用后可以完成rtp代理功能。
因meida-relay需要内核支持ipv4 forwarding,所以需要执行:
echo 1 > /proc/sys/net/ipv4/ip_forward
也可以在文件/etc/syctl.conf中打开net.ipv4.ip_forward = 1这样即便重启设备,也可以运行meidaproxy了。
参考资料为:http://www.xuebuyuan.com/1430087.html
三 启动opensips
到/sbin目录下执行:
./opensipsctl start