ubuntu12.04安装配置opensips,搭建voip服务器

前端之家收集整理的这篇文章主要介绍了ubuntu12.04安装配置opensips,搭建voip服务器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

通过部署opensips,opensips-cp,rtpproxy,mediaproxy实现voip通话。测试可以通过安卓原生客户端验证,CSipSimple客户端通话(拨打/接收)
@H_404_4@
1.安装opensips@H_404_4@
opensips需要编译源码安装
官网:http://opensips.org
文件目录:http://opensips.org/pub/opensips/1.11.2/src/

wget@H_404_4@http: //@H_404_4@opensips.org /@H_404_4@pub /@H_404_4@opensips /@H_404_4@1.11.2 /@H_404_4@src /@H_404_4@opensips-1.11.2_src.tar.gz
tar@H_404_4@xcf opensips-1.11.2_src.tar.gz
cd@H_404_4@opensips-1.11.2-tls /@H_404_4@
make@H_404_4@menuconfig

在menuconfig中选择—>Configure Compile Options—> Configure Excluded Modules
方向键向下滚动,按空格选中[*] db_MysqL

按q键返回上一级,选择—> Configure Install Prefix,输入/回车表示安装在/目录下的配置目录而不是/usr/local目录下。

选择 —> Save Changes 保存修改

按q返回,选择 —> Compile And Install OpenSIPS,回车安装。
安装完成后会将配置文件放在/etc/opensips目录下。运行文件在/sbin目录下。
如果出现依赖错误,先通过apt-get安装依赖。

2.配置opensips@H_404_4@
进入/etc/opensips目录,运行osipsconfig命令

cd@H_404_4@ /@H_404_4@etc /@H_404_4@opensips
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(三次)退出命令
将新生成的opensips_residential_*.cfg文件重命名为opensips.cfg编辑

mv@H_404_4@opensips_residential_2014- 7@H_404_4@- 10@H_404_4@_16: 19@H_404_4@: 22@H_404_4@.cfg opensips.cfg
vi@H_404_4@opensips.cfg

修改为如下内容

debug@H_404_4@= 3@H_404_4@
log_stderror@H_404_4@=no
log_facility@H_404_4@=LOG_LOCAL0

fork@H_404_4@= yes@H_404_4@
children@H_404_4@= 4@H_404_4@

/*@H_404_4@uncomment the following lines to enable@H_404_4@debugging */@H_404_4@
#debug=6@H_404_4@
#fork=no@H_404_4@
#log_stderror=yes@H_404_4@

/*@H_404_4@uncomment the next line to enable@H_404_4@the auto temporary blacklisting of
not available destinations (@H_404_4@default disabled )@H_404_4@ */@H_404_4@
#disable_dns_blacklist=no@H_404_4@

/*@H_404_4@uncomment the next line to enable@H_404_4@IPv6 lookup after IPv4 dns
lookup failures (@H_404_4@default disabled )@H_404_4@ */@H_404_4@
#dns_try_ipv6=yes@H_404_4@

/*@H_404_4@comment the next line to enable@H_404_4@the auto discovery of local@H_404_4@aliases
based on revers DNS on IPs */@H_404_4@
auto_aliases@H_404_4@=no

alias@H_404_4@=xdty.org # 增加alias,修改为你的域名@H_404_4@

listen@H_404_4@=udp:域名对应 ip@H_404_4@地址: 6060@H_404_4@ # CUSTOMIZE ME@H_404_4@

disable_tcp@H_404_4@=no
listen@H_404_4@=tcp:域名对应 disable_tls@H_404_4@= yes@H_404_4@


####### Modules Section ########@H_404_4@

#set module path@H_404_4@
mpath@H_404_4@= "/lib64/opensips/modules/"@H_404_4@ # 增加一个斜杠@H_404_4@

#### SIGNALING module@H_404_4@
loadmodule "signaling.so"@H_404_4@

#### StateLess module@H_404_4@
loadmodule "sl.so"@H_404_4@

#### Transaction Module@H_404_4@
loadmodule "tm.so"@H_404_4@
modparam (@H_404_4@ "tm"@H_404_4@,"fr_timer"@H_404_4@,5@H_404_4@ )@H_404_4@
modparam (@H_404_4@ "fr_inv_timer"@H_404_4@,60);">30@H_404_4@ )@H_404_4@
modparam (@H_404_4@ "restart_fr_on_each_reply"@H_404_4@,60);">0@H_404_4@ )@H_404_4@
modparam (@H_404_4@ "onreply_avp_mode"@H_404_4@,60);">1@H_404_4@ )@H_404_4@

#### Record Route Module@H_404_4@
loadmodule "rr.so"@H_404_4@
/*@H_404_4@ do@H_404_4@not append from tag to the RR (@H_404_4@no need for@H_404_4@this script )@H_404_4@ */@H_404_4@
modparam (@H_404_4@ "rr"@H_404_4@,60);">"append_fromtag"@H_404_4@,60);">0@H_404_4@ )@H_404_4@

#### MAX ForWarD module@H_404_4@
loadmodule "maxfwd.so"@H_404_4@

#### SIP MSG OPerationS module@H_404_4@
loadmodule "sipmsgops.so"@H_404_4@

#### FIFO Management Interface@H_404_4@
loadmodule "mi_fifo.so"@H_404_4@
modparam (@H_404_4@ "mi_fifo"@H_404_4@,60);">"fifo_name"@H_404_4@,60);">"/tmp/opensips_fifo"@H_404_4@ )@H_404_4@
modparam (@H_404_4@ "fifo_mode"@H_404_4@,0666 )@H_404_4@


#### URI module@H_404_4@
loadmodule "uri.so"@H_404_4@
modparam (@H_404_4@ "uri"@H_404_4@,60);">"use_uri_table"@H_404_4@,60);">0@H_404_4@ )@H_404_4@
#增加这一行,不然报错@H_404_4@
modparam (@H_404_4@ "db_url"@H_404_4@,60);">"MysqL://opensips:opensipsrw@localhost/opensips"@H_404_4@ )@H_404_4@

#### MysqL module@H_404_4@
loadmodule "db_MysqL.so"@H_404_4@

#### USeR LOCation module@H_404_4@
loadmodule "usrloc.so"@H_404_4@
modparam (@H_404_4@ "usrloc"@H_404_4@,60);">"nat_bflag"@H_404_4@,60);">"NAT"@H_404_4@ )@H_404_4@
modparam (@H_404_4@ "db_mode"@H_404_4@,60);">2@H_404_4@ )@H_404_4@
modparam (@H_404_4@ "MysqL://opensips:opensipsrw@localhost/opensips"@H_404_4@ )@H_404_4@ # CUSTOMIZE ME@H_404_4@

#### REGISTRAR module@H_404_4@
loadmodule "registrar.so"@H_404_4@
modparam (@H_404_4@ "registrar"@H_404_4@,60);">"tcp_persistent_flag"@H_404_4@,60);">"TCP_PERSISTENT"@H_404_4@ )@H_404_4@
modparam (@H_404_4@ "received_avp"@H_404_4@,60);">"$avp@H_404_4@(received_nh)"@H_404_4@ )@H_404_4@
/*@H_404_4@uncomment the next line not to allow more@H_404_4@than 10@H_404_4@contacts per AOR */@H_404_4@
#modparam("registrar","max_contacts",10)@H_404_4@

#### ACCounting module@H_404_4@
loadmodule "acc.so"@H_404_4@
/*@H_404_4@what special events should be accounted ? */@H_404_4@
modparam (@H_404_4@ "acc"@H_404_4@,60);">"early_media"@H_404_4@,60);">"report_cancels"@H_404_4@,60);">0@H_404_4@ )@H_404_4@
/*@H_404_4@by default we do@H_404_4@not adjust the direct of the sequential requests.
if@H_404_4@you enable@H_404_4@this parameter,be sure the enable@H_404_4@ "append_fromtag"@H_404_4@
in@H_404_4@ "rr"@H_404_4@module */@H_404_4@
modparam (@H_404_4@ "detect_direction"@H_404_4@,60);">"Failed_transaction_flag"@H_404_4@,60);">"ACC_Failed"@H_404_4@ )@H_404_4@
/*@H_404_4@account triggers (@H_404_4@flags )@H_404_4@ */@H_404_4@
modparam (@H_404_4@ "db_flag"@H_404_4@,60);">"ACC_DO"@H_404_4@ )@H_404_4@
modparam (@H_404_4@ "db_missed_flag"@H_404_4@,60);">"ACC_MISSED"@H_404_4@ )@H_404_4@
modparam (@H_404_4@ #### AUTHentication modules@H_404_4@
loadmodule "auth.so"@H_404_4@
loadmodule "auth_db.so"@H_404_4@
modparam (@H_404_4@ "auth_db"@H_404_4@,60);">"calculate_ha1"@H_404_4@,yes@H_404_4@ )@H_404_4@
modparam (@H_404_4@ "password_column"@H_404_4@,60);">"password"@H_404_4@ )@H_404_4@
modparam (@H_404_4@ # CUSTOMIZE ME@H_404_4@
modparam (@H_404_4@ "load_credentials"@H_404_4@,60);">""@H_404_4@ )@H_404_4@

#### ALIAS module@H_404_4@
loadmodule "alias_db.so"@H_404_4@
modparam (@H_404_4@ "alias_db"@H_404_4@,174);"># CUSTOMIZE ME@H_404_4@

#### DIALOG module@H_404_4@
loadmodule "dialog.so"@H_404_4@
modparam (@H_404_4@ "dialog"@H_404_4@,60);">"dlg_match_mode"@H_404_4@,60);">1@H_404_4@ )@H_404_4@
modparam (@H_404_4@ "default_timeout"@H_404_4@,60);">21600@H_404_4@ )@H_404_4@ # 6 hours timeout@H_404_4@
modparam (@H_404_4@ # CUSTOMIZE ME@H_404_4@


#### NAT modules@H_404_4@
loadmodule "nathelper.so"@H_404_4@
modparam (@H_404_4@ "nathelper"@H_404_4@,60);">"natping_interval"@H_404_4@,60);">10@H_404_4@ )@H_404_4@
modparam (@H_404_4@ "ping_nated_only"@H_404_4@,60);">"$avp@H_404_4@(received_nh)"@H_404_4@ )@H_404_4@

loadmodule "rtpproxy.so"@H_404_4@
modparam (@H_404_4@ "rtpproxy"@H_404_4@,60);">"rtpproxy_sock"@H_404_4@,60);">"udp:localhost:22222"@H_404_4@ )@H_404_4@ # 修改端口@H_404_4@

#增加下边这一段@H_404_4@
#### MediaProxy module@H_404_4@
loadmodule "mediaproxy.so"@H_404_4@
modparam (@H_404_4@ "mediaproxy"@H_404_4@,60);">"disable"@H_404_4@,60);">"mediaproxy_socket"@H_404_4@,60);">"/var/run/mediaproxy/dispatcher.sock"@H_404_4@ )@H_404_4@
modparam (@H_404_4@ "mediaproxy_timeout"@H_404_4@,60);">1000@H_404_4@ )@H_404_4@
modparam (@H_404_4@ "signaling_ip_avp"@H_404_4@,60);">"$avp@H_404_4@(nat_ip)"@H_404_4@ )@H_404_4@
modparam (@H_404_4@ "media_relay_avp"@H_404_4@,60);">"$avp@H_404_4@(media_relay)"@H_404_4@ )@H_404_4@
modparam (@H_404_4@ "ice_candidate"@H_404_4@,60);">"low-priority"@H_404_4@ )@H_404_4@

修改opensipsctlrc文件

vi@H_404_4@opensipsctlrc

去掉所有DB相关的注释。

SIP_DOMAIN@H_404_4@=xdty.org
DBENGINE@H_404_4@=MysqL
DBHOST@H_404_4@=localhost
DBNAME@H_404_4@=opensips
DB_PATH@H_404_4@= "/usr/local/etc/opensips/dbtext"@H_404_4@
DBRWUSER@H_404_4@=opensips
DBRWPW@H_404_4@= "opensipsrw"@H_404_4@
DBROOTUSER@H_404_4@= "root"@H_404_4@
USERCOL@H_404_4@= "username"@H_404_4@

为opensips新建数据库增加域名及用户

opensipsdbctl create
opensipsctl domain add xdty.org
opensipsctl add 10000@H_404_4@ 123456@H_404_4@
opensipsctl add 10001@H_404_4@ 123456@H_404_4@

3.安装rtpproxy并配置@H_404_4@

apt-get install@H_404_4@rtpproxy
vi@H_404_4@ /@H_404_4@etc /@H_404_4@default /@H_404_4@rtpproxy

CONTROL_SOCK@H_404_4@=udp:127.0.0.1: 22222@H_404_4@

# Additional options that are passed to the daemon.@H_404_4@
EXTRA_OPTS@H_404_4@= ""@H_404_4@
LISTEN_ADDR@H_404_4@=你的域名对应 ip@H_404_4@地址
"-l${LISTEN_ADDR}@H_404_4@"@H_404_4@

启动rtpproxy

killall@H_404_4@rtpproxy
/@H_404_4@etc /@H_404_4@init.d /@H_404_4@rtpproxy start

如果rtpproxy启动失败,请检查/etc/init.d/rtpproxy脚本DAEMON路径是否正确,默认为DAEMON=/usr/sbin/$NAME,可能要改为DAEMON=/usr/bin/$NAME

4.安装并配置mediaproxy@H_404_4@
导入源密钥,增加mediaproxy的源到/etc/apt/sources.list

wget@H_404_4@http: //@H_404_4@download.ag-projects.com /@H_404_4@agp-debian-gpg.key
apt-key add@H_404_4@agp-debian-gpg.key
vi@H_404_4@ /@H_404_4@etc /@H_404_4@apt /@H_404_4@sources.list

最后位置添加

deb http: //@H_404_4@ag-projects.com /@H_404_4@ubuntu precise main
deb-src http: //@H_404_4@ag-projects.com /@H_404_4@ubuntu precise main

安装mediaproxy

apt-get update
apt-get install mediaproxy-dispatcher mediaproxy-relay mediaproxy-web-sessions

进入/etc/mediaproxy/tls目录,拷本密钥文件修改配置文件

cd@H_404_4@ /@H_404_4@etc /@H_404_4@mediaproxy /@H_404_4@tls /@H_404_4@
cp@H_404_4@ /@H_404_4@usr /@H_404_4@share /@H_404_4@doc /@H_404_4@mediaproxy-common /@H_404_4@tls /*@H_404_4@.
cd@H_404_4@..
vi@H_404_4@config.ini

修改为类似如下内容

[@H_404_4@Relay ]@H_404_4@
dispatchers = 106.186.23.149
passport = None
relay_ip = 106.186.23.149
port_range = 50000@H_404_4@: 60000@H_404_4@
log_level = DEBUG
stream_timeout = 90@H_404_4@
on_hold_timeout = 7200@H_404_4@
reconnect_delay = 10@H_404_4@
traffic_sampling_period = 15@H_404_4@
[@H_404_4@Dispatcher ]@H_404_4@
socket_path = dispatcher.sock
listen = 106.186.23.149
listen_management = 106.186.23.149
management_use_tls = yes@H_404_4@
passport = None

management_passport = None
log_level = DEBUG
relay_timeout = 5@H_404_4@
[@H_404_4@TLS ]@H_404_4@
certs_path = tls
verify_interval = 300@H_404_4@
[@H_404_4@Database ]@H_404_4@
[@H_404_4@Radius ]@H_404_4@
[@H_404_4@OpenSIPS ]@H_404_4@
socket_path = /@H_404_4@var /@H_404_4@run /@H_404_4@opensips /@H_404_4@socket
max_connections = 10@H_404_4@

启动mediaproxy服务

media-dispatcher restart
media-relay restart

5.启动服务并检验@H_404_4@
修改日志文件配置,是opensips的日志保存在/var/log/opensips.log

touch@H_404_4@ /@H_404_4@var /@H_404_4@log /@H_404_4@opensips.log
chmod@H_404_4@ 777@H_404_4@ /@H_404_4@var /@H_404_4@log /@H_404_4@opensips.log
vi@H_404_4@ /@H_404_4@etc /@H_404_4@rsyslog.d /@H_404_4@opensips.conf

增加如下内容

local0. *@H_404_4@ /@H_404_4@var /@H_404_4@log /@H_404_4@opensips.log

为opensips.log文件增加vim的颜色自动

vi@H_404_4@~ /@H_404_4@.vim /@H_404_4@filetype.vim

au BufNewfile,BufRead /@H_404_4@var /@H_404_4@log /*@H_404_4@ set@H_404_4@ filetype@H_404_4@=messages

重启syslog服务,启动opensips

service rsyslog restart
opensipsctl start

如果启动失败,查看/var/log/opensips.log文件查找错误

服务启动后,防火墙开启tcp及udp的端口

iptables -I@H_404_4@INPUT -p@H_404_4@tcp --dport@H_404_4@ 6060@H_404_4@ -j@H_404_4@ACCEPT
iptables -I@H_404_4@INPUT -p@H_404_4@udp --dport@H_404_4@ 6060@H_404_4@ -j@H_404_4@ACCEPT
iptables-save

然后在http://www.yougetsignal.com/tools/open-ports/查看端口是否打开

手机测试端安装CSipSimple或其他sip客户端测试。注意CSipSimple服务器输入为类似xdty.org:6060 域名:端口的形式,拨打对方电话时直接输入帐号名10001而不需要输入域名。如果可以通话就表示配置成功了。

或者使用原生的系统拨号盘,在设置->通话设置->互联网电话设置|账户->接听来电(勾选)|添加账户->保存。当显示为”主账户。接听电话”时即配置成功。拨打电话时需要加入类似邮箱地址的后缀即10001@xdty.org,如果不能输入非数字字符可以粘贴或者添加一个新的联系人,在“增加其他字段”中添加“互联网电话”,输入10001@xdty.org,之后点击此联系人拨打互联网电话即可。

下文增加网页管理功能

6.安装配置opensips-cp@H_404_4@
下载最新版本的opensips-cp,位置在http://sourceforge.net/projects/opensips-cp/
可以根据INSTALL文件安装,主要配置一些数据库的操作。
文件解压,复制到/var/www/目录下重命名为opensips
安装一些依赖关系

pear install@H_404_4@MDB2 #MysqL@H_404_4@
pear install@H_404_4@log

更改权限

chown@H_404_4@www-data:www-data web -R@H_404_4@

进入config/tools/admin/add_admin/目录,导入数据表

MysqL -Dopensips@H_404_4@-p <@H_404_4@ocp_admin_privileges.MysqL
MysqL -uroot@H_404_4@opensips
INSERT INTO ocp_admin_privileges (@H_404_4@username,password,ha1,available_tools,permissions )@H_404_4@values (@H_404_4@ 'admin'@H_404_4@,(@H_404_4@ 'admin:admin'@H_404_4@ )@H_404_4@,60);">'all'@H_404_4@,60);">'all'@H_404_4@ )@H_404_4@;

进入config/tools/system/cdrviewer/目录

MysqL -Dopensips@H_404_4@ -p@H_404_4@ <@H_404_4@cdrs.MysqL
MysqL -Dopensips@H_404_4@-p <@H_404_4@opensips_cdrs.MysqL

进入cron_job目录,修改文件配置数据库信息

vi@H_404_4@generate-cdrs_MysqL.sh

注意,generate-cdrs_MysqL.sh这个文件里的“call opensips_cdrs_1_6()”可能要改为“call opensips_cdrs()”,必须要与opensips_cdrs.MysqL里定义的名称一致。
进入config/tools/system/smonitor/目录,导入数据库添加定时任务。

MysqL -Dopensips@H_404_4@ -p@H_404_4@ <@H_404_4@tables.MysqL
vi@H_404_4@ /@H_404_4@etc /@H_404_4@crontab
*/@H_404_4@ 3@H_404_4@ *@H_404_4@ *@H_404_4@ *@H_404_4@ *@H_404_4@root /@H_404_4@var /@H_404_4@www /@H_404_4@opensips /@H_404_4@cron_job /@H_404_4@generate-cdrs_MysqL.sh
*@H_404_4@ *@H_404_4@ *@H_404_4@ *@H_404_4@ *@H_404_4@root PHP /@H_404_4@var /@H_404_4@www /@H_404_4@opensips-cp /@H_404_4@cron_job /@H_404_4@get_opensips_stats.PHP >@H_404_4@ /@H_404_4@dev /@H_404_4@null

打开浏览器访问http://网址/opensips,使用admin/admin登录登录后可以修改用户名和密码。

参考资料:@H_404_4@http://www.cnblogs.com/bjzhanghao/archive/2013/02/13/2910903.htmlhttp://www.docin.com/p-163183480.htmlhttp://www.linuxidc.com/Linux/2014-01/95847.htm

原文链接:https://www.f2er.com/ubuntu/349790.html

猜你在找的Ubuntu相关文章