通过部署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/
在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命令
依次选择—> 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编辑
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@