2013年9月8日星期日

debian安装opensips

系统要求

  • 官方推荐的是debian我们就用这个
  • 但debian的vim有个问题就是没有启用语法高亮等扩展,基本上是原始的vi,需要做一下配置,方便编辑其它配置文件等。
  • 具体配置已经写到了shell脚本中

安装

  • 安装svn
    apt-get install subversion
    


    yum install subversion
    
  • 安装依赖包
    apt-get -y install perl libdbi-perl  libdbd-pg-perl libfrontier-rpc-perl libterm-readline-gnu-perl libberkeleydb-perl flex bison  ncurses-dev
    


    yum install gcc gcc-c++ bison flex zlib-devel openssl-devel mysql-devel subversion pcre-devel
    
  • 下载配置和修改的源码文件
    svn co http://122.193.27.8/svn/derentel/GDTEL/trunk/opensips/1.8.2/
    
  • 下载opensips安装包
    wget http://opensips.org/pub/opensips/1.8.2/src/opensips-1.8.2_src.tar.gz
    tar zxvf opensips-1.8.2_src.tar.gz
    cd "opensips-1.8.2-tls" 
    
  • 源码覆盖
    • avpops
      cp ../1.8.2/src/modules/avpops/avpops_db.c ./modules/avpops/ -f
      
    • 修改Makefile.conf,将exclude_modules中的db_postgres和mi_http删除,在include_modules中加入db_postgres
  • 执行安装
    make menuconfig
    
    • 选择路径

      回车,进入

      回车,左下角出现输入路径的提示,

      输入路径为/usr/local,回车
      移动光标键到Save Changes,回车,如果提示按任意键继续(Press any key to continue),按一次回车
      然后按q键返回上级菜单
    • 编译,安装
      选择

      回车
      当编译完成后会提示按任意键返回到配置菜单(Press any key to return to menuconfig),按回车键即可
      选择save and exit

      所有提示均回车。退出安装,安装完成
  • 配置脚本
    • 联通
      cp ./1.8.2/opensips-conf-unicom/* "/usr/local/etc/opensips" -f
      
    • 电信
      cp ./1.8.2/opensips-conf-telecom/* "/usr/local/etc/opensips" -f
      
    • 需要修改如下地方:
      • opensips.cfg
        • 将所有的公网ip改为opensips所连接的路由器的公网ip,电信和联通的分别修改为对应的公网ip
        • 私网ip有两个
          • 监听的ip和端口是本机的私网ip和sip的5060端口, 电信和联通分别属于两个局域网,需要修改成对应的opensips局域网ip
          • 数据库ip和端口是局域网内postgreSQL的ip和端口, 电信和联通分别修改为pgpool对应的局域网ip
      • opensipsctlrc
        • SIP_DOMAIN为本机私网ip, 电信和联通分别修改为对应的opensips的局域网ip
        • DBHOST为数据库私网ip, 电信和联通分别修改为对应的pgpool对应的局域网ip

建立数据库

  • 下载数据库初始化脚本
    svn co http://122.193.27.8/svn/derentel/GDTEL/trunk/dbschema/
    
  • 初始化数据库
    createdb -U ccc pbxs
    

    创建的数据库用户和密码都为ccc,否则要修改opensips.cfg文件为对应的连接用户名和密码
    cd dbschema/pbxs
    

    fs=`find . -iname "*.sql"`
    for f in $fs
    do 
        psql -U ccc -d pbxs -f $f
    done
    

    for循环要在dbschema/pbxs这个目录下执行
    并且执行3次,最后一次执行应该都是错误才可以,执行是否成功,可以通过psql -U ccc -d pbxs来验证
    \dt
    

    可以看到有一些表存在即可。

启动

运行

  • 生成pid路径
    mkdir /var/run/opensips/
    
  • 执行
    opensipsctl start 
    

停止

opensipsctl stop 

重启

  • 停止
    opensipsctl stop
    
  • 等几秒
  • 启动
    opensipsctl start
    

    否则有可能不成功,因为停止并没有立即释放了所有系统资源

添加网关和freeswitch

  • 添加
    • 格式
      opensipsctl dispatcher addgw <setid> <destination> <flags> <description>
      
      • destination 为网关的sip地址, 如:sip:218.205.146.22
      • flags 为0
      • description是网关的描述信息,如:zhaopengfei
      • 有个缺点就是不能操控权重weight
      • 例子:
        opensipsctl dispatcher addgw 2 "sip:255.255.255.255" 0   "my test gateway" 
        
      • setid:
        setid字段意义备注
        10本地audio gateway
        11电信公共audio gateway
        12联通公共audio gateway
        13~19预留为支持其它线路做预留
        >=20用户自定义网关
        5电信freeswitch
        6联通freeswitch
        7~9预留为支持其它线路做预留
  • 删除
    • 格式
      opensipsctl dispatcher rmgw <id>
      
      • 这里的id是
        opensipsctl dispatcher show
        

        显示的第一列,不是setid
  • 生效
    • 添加网关等信息不需要重启,只要
      opensipsctl dispatcher reload
      

      即可
  • 参考
    • 就是这个
      opensipsctl --help

没有评论:

发表评论