zoukankan      html  css  js  c++  java
  • sip服务器的搭建

         我们都知道使用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。再次测试,总算连接成功,而后就可以愉快地进行通话喽!!!下面就是我测试成功的结果:
               
     
    注意:如若不是公网IP,手机与服务器要确保在同一区域网里
     
       
  • 相关阅读:
    转:struts2的s:iterator 标签 详解
    转载:jquery 获取和设置 select下拉框的值
    转载:Linux下Tomcat配置
    document、element、node方法
    .NET平台下Web测试工具横向比较
    PhotoShop中让索引图片解锁使用
    改变FileUpLoader 样式 (FileUpLoader js)
    【收藏下】ashx+jQuery,一个轻量级的asp.net ajax解决方案
    TopCoder入门教程
    调用API
  • 原文地址:https://www.cnblogs.com/xlwm/p/4414207.html
Copyright © 2011-2022 走看看