码迷,mamicode.com
首页 > 其他好文 > 详细

sip服务器的搭建

时间:2015-04-11 22:12:03      阅读:538      评论:0      收藏:0      [点我收藏+]

标签:

     我们都知道使用VOIP网络电话,需要连接上sip服务器,这样用户之间才可以通信。
     在这里,我就简单介绍下如何搭建sip服务器。在windows系统下可搭建minisipserver,其官网为http://www.myvoipapp.com/,我们可以从中选取对应的版本,具体配置步骤见http://jingyan.baidu.com/article/03b2f78c744ab55ea237aef3.html。当然我们也可以下载Linux版本,安装和使用教程见http://www.myvoipapp.com/docs/mss_services/linux/index.html,我就不再赘述。
     这里我着重讲解下如何在ubuntu下搭建OpensSIPS服务器,OpenSIPS是一个成熟的开源SIP服务器,除了提供基本的SIP代理及SIP路由功能外,还提供了一些应用级的功能。OpenSIPS的结构非常灵活,其核心路由功能完全通过脚本来实现,可灵活定制各种路由策略,可灵活应用于语音、视频通信、IM以及Presence等多种应用。同时OpenSIPS性能上是目前最快的SIP服务器之一,可用于电信级产品构建。凭借其可扩展、模块化的系统架构,OpenSIPS提供了一个高度灵活的、用户可配置的路由引擎,可以为voice、video、IM和 presence等服务提供强大高效的路由、鉴权、NAT、网关协议转化等功能。由于其稳定高效等特点,OpenSIPS已经被诸多电信运营商应用在自己的网络体系中。

一.前提条件:

(1)mysql已经配置好

1 sudo apt-get install mysql-server
2 sudo apt-get isntall mysql-client
3 sudo apt-get install libmysqlclient-dev

(2)如果找不到curses.h,安装sudo apt-get install libncurses5-dev

二.安装:

1. 下载 opensips
技术分享
我使用的是1.8版本,即可以git下来
 git clone https://github.com/OpenSIPS/opensips.git -b 1.8 opensips_1_8

2. 解压后,进入opensips目录

    make all  ,如果出错,一般是缺少一些编译工具,直接sudo apt-get install xxx(相应的工具)
    make install
可能设置到权限不足的问题,为了省事,我们不妨在root用户下进行操作

三.配置

1.opensips数据库
   cd /usr/local/etc/opensips/查看发现有三个文件,分别是opensips.cfg opensipsctlrc osipsconsolerc,然后vim将其对应的ip地址修改成自己主机上的。

2.开启数据库
   /usr/local/sbin/opensipsdbctl create 
   如果出现以下错误
    “ERROR: could not load the script in /usr/local/lib/opensips/opensipsctl/opensipsdbctl.mysql for database engine MYSQL
     ERROR: database engine not loaded - tried ‘MYSQL‘”
     则
1 cd /usr/local/lib64/opensips/opensipsctl/
2 cp $(你的opensips目录)/scrips/*.mysql  ./
3 mkdir mysql
4 cp  $(你的opensips目录)/scrips/mysql/*.sql ./mysql
5 cd /usr/local/share/opensips
6 cp $(你的opensips目录)/scrips/*.mysql  ./
7 mkdir mysql
8 cp  $(你的opensips目录)/scrips/mysql/*.sql ./mysql
如果ubuntu是32位的话,则为/usr/local/lib/opensips/opensipsctl
    成功后,会有两个选项,全选y
3.察看设置是否正确
   /usr/local/sbin/opensipsctl -c

四.使用

1.开启opensips服务
   /usr/local/sbin/opensipsctl start
   关闭stop 重启restart
    这里我遇到了ERROR: PID file/var/run/opensips.pid does not exist -- OpenSIPS start failed. 的问题。在这里使用tail -n 20 /var/log/syslog,可以查看错误原因,我发现是权限的问题,因而要sudo /usr/local/sbin/opensipsctl start 。
     技术分享
2.添加sip用户
    /usr/local/sbin/opensipsctl  add username password   如:/usr/local/sbin/opensipsctl add 100 100
     可以使用/usr/local/sbin/opensipsctl  rm 100删除用户。

如果出现ERROR: domain unknown: use usernames with domain or set default domain in SIP_DOMAIN,说明环境变量未配置,所以vim /etc/environment,在里面写入SIP_DOMAIN="你的IP Domain",而后再source下即可

默认的数据库用户为opensips,密码为opensipsrw,当然你也可以设置成对应的用户,直接在/usr/local/etc/opensips的配置文件修改对应的DBRWUSER,DBRWPW
                               技术分享
3.查看sip用户
     可以使用mysql -u root -p而后输入你的密码,就能够通过show databases;查看数据库,再使用use opensips;并且show tables;就可以查看opensips数据库里的表格,最后使用select * from subscriber;便能够查看添加的sip用户情况
技术分享
4.可随意找一款网络电话进行测试,如sipdroid或linphone,设置用户信息,发现仍然连接不上,这到底是什么原因呢?我查了很久,才发现是由于对应默认的端口5060未打开,因而使用sudo ufw allow 5060。再次测试,总算连接成功,而后就可以愉快地进行通话喽!!!下面就是我测试成功的结果:
技术分享           技术分享
 
 
   

sip服务器的搭建

标签:

原文地址:http://www.cnblogs.com/xlwm/p/4414207.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!