人若无名,便可专心练剑

centos6.2(32位) 纯净版安装opensips

  |   0 评论   |   3,275 浏览


    一,环境初始化:
         1,安装:git ,svn,mysql,mysql-server,mysql-devel,ncurses-devel ncurses(用于配制opensips menucofnig),perl,gcc,lynx,bison,flex(另如果需要安装其他一些模块也需要安装其他依赖包)
             特别说明:一定要确包mysql安装成功,并测试运行
             如果第一步环境没有配制好,后面可能出现一些莫名的问题
    如果是在64位系统下,则还需要做如下处理:
    64 位系统中, /usr/lib/mysql/下的相关库文件无法标识,需要将 /usr/lib64/mysql 下的库来做个软链接
    # ln -sf /usr/lib64/mysql/libmysqlclient.so /usr/lib/mysql/libmysqlclient.so
    # ln -sf /usr/lib64/mysql/libmysqlclient.a /usr/lib/mysql/libmysqlclient.a
    # ln -sf /usr/bin/ld/libmysqlclient.so /usr/lib/mysql/libmysqlclient.so

    二,下载源码包,并编译安装(采用1.8长期支持版本稳定版)

    1,下载

     git clone https://github.com/OpenSIPS/opensips.git -b 1.8 opensips_1_8

     或者:

    svn co https://svn.code.sf.net/p/opensips/svn/branches/1.8 opensips_1_8 

     2,下载后进入 cd opensips_1_8/ 

     配置(配置时一定把自己需要的模块配置进来):

    make menuconfig 

    或者如果自己直接编译时加入自己需要的模块:  


    make all include_modules=”db_mysql” && make prefix=/usr/local install include_modules=”db_mysql”


    可能遇到问题:

    curses.h:31:19: error: curses.h: No such file or directory
    make[1]: *** [cfg.o] Error 1
    make: *** [opensipsmc] Error 2
    问题原因:

    ncurses-devel ncurses 没有安装 

    yum install ncurses-devel ncurses
    如上安装后即可
    make menuconfig 进入向导配制界面:(方向键:上,下,左,右键进行操作)
     选择:->Configure Compile Options然后根据需要进行配置:其中Configure Compile Flags 采用默认选项Congigure Excluded Modules 选中db_mysql 选项 然后返回  保存  save Changes (如有prefix配置需要则根据自己陪孩子,本例采用/opt/opensips/)
    然后返回:Compile And Install OptnSIPS
    安装完成后,检查自己所有文件是否编译成功

        成功后一般四个目录:etc lib sbin share 

        然后模块目录在:lib/opensips/modules/

        应用程序目录:sbin/     

     3,修改配置:进入  (这目录在我们先前配置的profix目录下)

    cd  /opt/opensips/etc/opensips
     vi opensipsctlrc


    将mysql相关的注释取消掉:

    # $Id$
    #
    # The OpenSIPS configuration file for the control tools.
    #
    # Here you can set variables used in the opensipsctl and opensipsdbctl setup
    # scripts. Per default all variables here are commented out, the control tools
    # will use their internal default values.
    
    ## your SIP domain
    #SIP_DOMAIN=opensips.org
    
    ## chrooted directory
    # $CHROOT_DIR="/path/to/chrooted/directory"
    
    ## database type: MYSQL, PGSQL, ORACLE, DB_BERKELEY, or DBTEXT,
    ## by default none is loaded
    # If you want to setup a database with opensipsdbctl, you must at least specify
    # this parameter.
    DBENGINE=MYSQL
    
    ## database host
    DBHOST=localhost
    
    ## database name (for ORACLE this is TNS name)
    DBNAME=opensips
    
    # database path used by dbtext or db_berkeley
    # DB_PATH="/usr/local/etc/opensips/dbtext"
    
    ## database read/write user
    DBRWUSER=opensips
    
    ## password for database read/write user
    DBRWPW="opensipsrw"
    ## database super user (for ORACLE this is 'scheme-creator' user)
    DBROOTUSER="root"
    # user name column
    # USERCOL="username"
    
    # SQL definitions
    # If you change this definitions here, then you must change them
    # in db/schema/entities.xml too.
    # FIXME
    然后::wq 保存退出 4,初始化数据库: 然后:
    cd /opt/opensips/sbin<

    运行如下命令:创建数据库:./opensipsdbctl create (注意记得先运行mysql数据库),中途两个选项全部选N

    [root@lecloud sbin]# ./opensipsdbctl create
    MySQL password for root:
    INFO: test server charset
    INFO: creating database opensips ...
    INFO: Core OpenSIPS tables succesfully created.
    Install presence related tables? (y/n): n
    Install tables for imc cpl siptrace domainpolicy carrierroute userblacklist? (y/n): n
    [root@lecloud sbin]#


    数据库安装成功后记得查看表是否初始化正确:
    如下则表示初始化成功:
    mysql> use opensips
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A
    Database changed
    mysql> show tables;
    +--------------------+
    | Tables_in_opensips |
    +--------------------+
    | acc                |
    | address            |
    | aliases            |
    | dbaliases          |
    | dialog             |
    | dialplan           |
    | dispatcher         |
    | domain             |
    | dr_carriers        |
    | dr_gateways        |
    | dr_groups          |
    | dr_rules           |
    | grp                |
    | load_balancer      |
    | location           |
    | missed_calls       |
    | nh_sockets         |
    | pdt                |
    | re_grp             |
    | silo               |
    | speed_dial         |
    | subscriber         |
    | uri                |
    | usr_preferences    |
    | version            |
    +--------------------+
    25 rows in set (0.00 sec)
    mysql>
     5,创建我们所需的配置文件opensips.cfg
                   还是在程序运行目录:/opt/opensips/sbin/
                   运行:./osipsconfig
                             然后选择:Generate Opensips Script-》Residential Script->Configure Residential Script
                                                选中选项:ENABLE_TCP,USE_AUTH,USE_DBACC,USE_DIALOG,USE_MULTIDOMAIN
                                                然后返回上一级:Save Residential Script,然后 Generate Residential Script 生成新的配置文件
    6,修改5,创建的配置文件: opensips_residential_2013-xx-xx_xx:xx:xx.cfg
                          如下修改:listen 地址修改,以及mpath修改: mpath:本例为:mpath=/opt/opensips/lib/opensips/modules/
                          另外需要配置一个url,是usrloc的:加入如下语句:


    modparam("usrloc","db_url","mysql://opensips:opensipsrw@localhost/opensips");


    7,完成后可以重启opensips服务 即可


          学习视频分享:http://pan.baidu.com/s/1ntoGOkD




    dropbox:邀请您的加入,让你随时随地同步您的文件:https://db.tt/wCU4HQq4

    人生格言: 如果说人生是自我编写的程序, 那么青春就是其中意味深长的代码。 或简单,分解成彼此独立的字符: 或复杂, 拼凑成一连串神秘的语句。 我们尝试着不断调试, 不断优化,无论编译结果如何, 过程才是最美。 如果说这段代码不能复制, 那么我愿意用一生去续写.

    评论

    发表评论

    validate