opensips安装配置
1 下载安装包,解压缩
tar -zxvf opensips-XXX_src.tar.gz
cd opensips-XXX-tls
2 编译和安装
运行命令:make menuconfig(用键盘的上下箭头选择进入某个菜单项,用空格选择或取消选择选项.用“q”返回上一级)
(1)进入Configure Compile Options->Configure Excluded Modules, 勾选db_mysql、dialplan;返回保存;
(2)进入Compile And Install OpenSIPS,此时开始编译和安装,结束后会返回到菜单界面
(3)进入Exit & Save All Changes退出;
3 配置mysql相关
(1)编辑opensipsctlrc:vim/usr/etc/opensips/opensipsctlrc,把与mysql有关的注释去掉(DB_PATH和USERCOL保留注释):
(2)重启mysql服务:service mysqld start
(3)输入命令:opensipsdbctl create,提示的两个问题都选no。
4 配置opensips
(1)输入命令osipsconfig,进入Generate OpenSIPS Script->Residential Script->Configure Residential Script,勾选USE_AUTH, USE_DBACC, USE_DBUSRLOC, USE_DIALOG,USE_NAT;
(2)用生成的opensips_residential_xxx.cfg替换原先的opensips.cfg:
注意:在使用过程中,每次修改配置文件都需要重启opensips服务。
(3)修改配置文件:vim /usr/etc/opensips/opensips.cfg ,改listen地址和mpath:
监听地址可以是ip或域名,这里填eth0,表示监听eth0的ip,mpath绝对地址是/usr/lib64/opensips/modules
opensips.cfg里的URI module下,“loadmodule "uri.so"”后添加modparam("uri", "db_url","mysql://opensips:opensipsrw@localhost/opensips")。
5 增加拨号规则处理
dpid0--用于号码变换:插号、删号、长短号处理等。
dpid1--用户呼叫转发、SIP trunk。
(1)修改配置文件,在if (!lookup("location","m")) {上面行加如下代码:
if (dp_translate("0","$ruri/$avp(dest)")){
$ruri =$avp(dest);
}
(2)修改if (!lookup("location","m")) {下加代码如下:
if (!lookup("location","m")) {
if (!db_does_uri_exist()) {
if (dp_translate("1","$ruri/$avp(dest)")) {
$ruri=$avp(dest);
forward();
exit;
}
}
xlog("hostport is $ruri\n");
t_newtran();
t_reply("404", "Not Found");
exit;
}
6 启动opensips服务
输入命令:opensipsctl start
查看进程:ps aux | grep opensips
查看UDP链接状态: netstat -upln | grep opensips
查看TCP链接状态:netstat -tpln | grep opensips
检查服务端口:netstat -nlutp|grep sips
7 创建opensips用户
opensipsctl add user password
如:opensipsctl add 100 100
8 查询注册用户
opensipsctl ul show
9 添加拨号规则(修改数据库)
>mysql -u opensips -p
输入密码opensipsrw,进入mysql
使用sql语句添加数据,例如:内部长号是1111开头,添加到10.75.58.23的以6开头的四位号的trunk:
use opensips;
insert into dialplan(dpid,match_op,match_exp,subst_exp,repl_exp) values(0,1," ^sip:1111....@.*","^sip:\(1111\)\(.*\)@\(.*\)","sip:\\2@10.75.58.9");
注意:这条记录用来匹配长号,去掉前缀,其中match_op=1表示运用正则表达式匹配规则,match_flaps=1