General discussion

  • Creator
    Topic
  • #2155113

    How to install opensips in a Red Hat Enterprise Linux 5 server with mysql

    Locked

    by cesar.fiestas ·

    How to install opensips 1.5 in a Red Hat Enterprise Linux 5
    platform with Mysql Support.

    The following document will guide you thru the installation
    of the newly released opensips vesion 1.5 in Red Hat Enterprise
    Linux 5.3 along with mysql. I will divide this process in 2 phases
    1.- Installation of Red Hat Enterprise Linux 5.3
    2.- Installation and configuration of Opensips, webmin and mysql

    The following components and paramenters will be used for the purpose
    of this installation guide, securing your opensips environment is
    beyond this installation guide,

    -Red Hat Enterprise Linux Server release 5.3 (Tikanga), 2.6.18-128.1.6.el5
    -mysql-server-5.0.45-7.el5.i386
    -An HP DL380 3.20 2gb of RAM
    -Fully Qualified Domain Name of the server will be simulacro.sipcorner.com
    -IP address of the server 10.10.10.101

    1.-Installation of Red Hat Enterprise Linux 5 (Phase 1)

    Let’s Proceed to install Red Hat Enterprise Linux 5
    -Proceed to Insert the RHEL 5 DVD in your server
    At the RHEL boot screen “press enter”
    The system will ask you to either test the media or skip the media test,
    I personally choose to skip the media since I know the integrity of the DVD
    is good, but if you have doubts about the integrity of your media I will
    suggest you to continue with the media test.
    -At the RED HAT ENTERPRISE LINUX 5 initial Install screen select NEXT
    -Proceed to select the language, I selected English(English)
    -Proceed to select the appropriate keyboard for the System, I selected
    U.S. English
    -Proceed to enter the Red Hat installation number and select OK
    -Select to Install Red Hat Enterprise Linux Server, then select OK
    -Because I have RHEL 5 currently installed in my Hard Drive, and I
    want to install a new copy of RHEL 5, the system will now asked me if
    I want to remove all linux partitions on the selected drives and create a default
    layot, since I want to do this, I will simply select the NEXT button
    -As a precaution, the system will asked me if I really want to remove all the
    existing Linux partitions in the Hard Drive, Since i want to do this I select
    the Yes button.
    -The system will now asked to configure the ethernet0 interface, since I want
    the system to have an static IP address, I select the eth0 interface and I
    select EDIT.
    -The EDIT Interface screen will open, and I will now proceed to enter my network
    information manually, then select OK, next I proceed to enter the FQDN for this
    server, for example simulacro.sipcorner.com, next I will proceed to continue
    entering my network information, such as my gateway, primary DNS and Secondar
    DNS servers, then I will proceed to select the NEXT button
    -Proceed to select your timezone accordinally
    -Proceed to enter a Password for the Root Account
    -Red Hat Enterprise Linux 5 default installation includes a set of software
    applicable for general internet usage, although you can choose to install
    additional components, such as servers and others, for the purposes of this
    document, I will proceed to check the Web Server option and also I will proceed
    to check the Customize now option, then I will select NEXT.
    -Because I checked the customize option, I am now being presented with an screen
    where I can select different packages that I want the system to install for me
    during this installation, hence I will select the following packages:

    Servers>Mysql Database>Optional Packages>Default plus
    mysql-devel-5.0.45-7.el5.i386
    php-mysql-5.1.6-23.el5.i386
    mod_auth_mysql-3.0.0-3.1.i386

    Servers>Web Server>Optional Packages>Default plus
    mod_nss-1.0.3-6.el5.i386

    Servers>Mail Server>Default

    -The RHEL 5 Installation is now ready to begin, proceed by selecting the NEXT button
    -Once the system has finished the installation process the DVD will eject and
    a new screen will appear congratulating you, at this point select the Reboot
    button.
    -After the firs Reboot, you will be presented with a Welcome screen, proceed and
    select the Forward button, proceed to agree with the license agreement, proceed
    to configure your firewall. I will personally select Secure WWWW (HTTPS) and
    WWW (HTTP) ports, although under the Other Ports option, I will also proceed to add
    port 5060 TCP/UDP to allow SIP dialogs/sessions, although 5060 UDP is enough, but
    this is a test box so I decided to open both TCP and UDP, then I will also select
    port 10000 TCP for webmin, why webmin?, because if you are not an expert with mysql
    webmin can be useful to access mysql and other components via web, instead of the CLI
    although webmin is useful when it comes to administer the RHEL box, servers and other
    components,in the opensips environment it is highly likely that you will be using
    the CLI for almost everything. Next proceed to select the Forward button.
    -Proceed to configure SELinux accordinally, I will personally select the Enforcing
    option, then proceed to select the Forward button.
    -Proceed to configure Kdump accordinally, I personally like Kdump, although it may require
    you to do another reboot and do some memory allocation in order to properly work.
    -Proceed to configure the Date and Time accordinally, when configuring opensips, the time
    can be critical, so i will suggest you to enable NTP, and I personally will add another ntp
    server on top of the RHEL ntp servers, ncnoc.ncren.net (because I am in North Carolina), then
    I will proceed to select the forward button.
    -Proceed to Set up Software Updates at your discretion.
    -Proceed to create a User accordinally, it is not really safe for you to use the root account
    to login to the box, surf the internet, install software and others, although for the purposes
    of this guide, I will be using the root account during the installation process of opensips and
    webmin.
    -Proceed to configure the Sound Card, if any
    -If you would like to install additional software using CD’s, you may do so at this time, otherwise
    select the Finish button, the system will proceed to restart
    -Once the server has rebooted Proceed to access the Red Hat Enterprise Linux 5 console
    using your favorite console client, I personally use Secure CRT.

    2.- Installation and configuration of Opensips, webmin and mysql (Phase 2)

    Your system should have the following packages installed
    zlib-1.2.3-3.i386
    openssl-0.9.8e-7.el5.i686
    mysql-server-5.0.45-7.el5.i386

    If the above packages are not installed in your system you can install them by using yum, ie
    yum install zlib openssl mysql-server

    root@simulacro ~# yum install zlib openssl mysql-server

    -Proceed to install the following packages using yum
    gcc, bison, flex, zlib-devel, openssl-devel

    root@simulacro ~# yum gcc bison flex zlib-devel openssl-devel

    -Proceed to download opensips 1.5 but first I will suggest you to
    go to the usr/src directory and download opensips 1.5 there.

    root@simulacro src# wget http://opensips.org/pub/opensips/1.5.0/src/opensips-1.5.0-notls_src.tar.gz

    -Proceed to untar opensips

    root@simulacro src# tar -xzf opensips-1.5.0-notls_src.tar.gz

    -Proceed to download and install webmin

    root@simulacro src# wget http://prdownloads.sourceforge.net/webadmin/webmin-1.470-1.noarch.rpm
    root@simulacro src# rpm -ivh webmin-1.470-1.noarch.rpm

    -Proceed to rename opensips-1.5.0-notls to opensips

    root@simulacro src# mv opensips-1.5.0-notls opensips

    -Now lets proceed to EDIT the /usr/src/opensips/Makefile using nano, so
    we use mysql

    root@simulacro src# nano opensips/Makefile

    -Once in the Makefile configuration parameters, proceed to modify the
    following comment by removing the “db_mysql” module

    if not set on the cmd. line or the env, exclude this modules:
    exclude_modules?= jabber cpl-c xmpp rls mi_xmlrpc xcap_client \
    db_mysql db_postgres db_unixodbc db_oracle db_berkeley \
    avp_radius auth_radius group_radius uri_radius \
    osp perl snmpstats perlvdb peering carrierroute mmgeoip \
    presence presence_xml presence_mwi presence_dialoginfo \
    pua pua_bla pua_mi pua_usrloc pua_xmpp pua_dialoginfo \
    ldap h350 identity regex

    -Your comment should now look like this

    if not set on the cmd. line or the env, exclude this modules:
    exclude_modules?= jabber cpl-c xmpp rls mi_xmlrpc xcap_client \
    db_postgres db_unixodbc db_oracle db_berkeley \
    avp_radius auth_radius group_radius uri_radius \
    osp perl snmpstats perlvdb peering carrierroute mmgeoip \
    presence presence_xml presence_mwi presence_dialoginfo \
    pua pua_bla pua_mi pua_usrloc pua_xmpp pua_dialoginfo \
    ldap h350 identity regex

    -Proceed to save the configuration in nano by using ctrl + X then y

    -Proceed to run the following commands, but first go to /usr/src/opensips

    root@simulacro opensips#make clean
    root@simulacro opensips#make all include_modules=”mysql”
    root@simulacro opensips#make prefix=/usr/local install include_module=”mysql”

    -Using nano proceed to edit /usr/local/etc/opensips/opensipsctlrc

    root@simulacro opensips# nano /usr/local/etc/opensips/opensipsctlrc

    and proceed to modify the following comment by removing the # sign

    database type: MYSQL, PGSQL, ORACLE, DB_BERKELEY, or DBTEXT, by def$
    If you want to setup a database with opensipsdbctl, you must at leas$
    this parameter.
    DBENGINE=MYSQL

    -It should look like this

    database type: MYSQL, PGSQL, ORACLE, DB_BERKELEY, or DBTEXT, by def$
    If you want to setup a database with opensipsdbctl, you must at leas$
    this parameter.
    DBENGINE=MYSQL

    -Proceed to save your file in nano using ctrl + X and Y

    -Proceed to start mysql by typing the following command
    service mysqld start

    root@simulacro opensips# service mysqld start
    Initializing MySQL database: Installing MySQL system tables…
    OK
    Filling help tables…
    OK

    To start mysqld at boot time you have to copy
    support-files/mysql.server to the right place for your system

    PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
    To do so, start the server, then issue the following commands:
    /usr/bin/mysqladmin -u root password ‘new-password’
    /usr/bin/mysqladmin -u root -h simulacro.sipcorner.com password ‘new-password’
    See the manual for more instructions.
    You can start the MySQL daemon with:
    cd /usr ; /usr/bin/mysqld_safe &

    You can test the MySQL daemon with mysql-test-run.pl
    cd mysql-test ; perl mysql-test-run.pl

    Please report any problems with the /usr/bin/mysqlbug script!

    The latest information about MySQL is available on the web at
    http://www.mysql.com
    Support MySQL by buying support/licenses at http://shop.mysql.com
    OK
    Starting MySQL: OK
    root@simulacro opensips#

    -As stated above let’s proceed to set up a password for the root user

    root@simulacro opensips# /usr/bin/mysqladmin -u root password yourpassword
    root@simulacro opensips# /usr/bin/mysqladmin -u root -h simulacro.sipcorner.com password ‘yourpassword’

    -Now lets proceed to create the database for opensips using the following command
    /usr/local/sbin/opensipsdbctl create

    root@simulacro opensips# /usr/local/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): y
    INFO: creating presence tables into opensips …
    INFO: Presence tables succesfully created.
    Install tables for imc cpl siptrace domainpolicy carrierroute userblacklist? (y/n): y
    INFO: creating extra tables into opensips …
    INFO: Extra tables succesfully created.
    root@simulacro opensips#

    -Now proceed to edit the opensips.cfg file
    root@simulacro opensips# nano /usr/local/etc/opensips/opensips.cfg

    -Proceed to modify the following comment (remove the #)

    /* uncomment next line for MySQL DB support */

    loadmodule “db_mysql.so”

    -It should now look like this

    /* uncomment next line for MySQL DB support */
    loadmodule “db_mysql.so”

    -Proceed to also modify the following comment (remove couple #’s)

    loadmodule “acc.so”
    /* uncomment next lines for MySQL based authentication support
    NOTE: a DB (like db_mysql) module must be also loaded */

    loadmodule “auth.so”
    loadmodule “auth_db.so

    -It should now look like this

    loadmodule “acc.so”
    /* uncomment next lines for MySQL based authentication support
    NOTE: a DB (like db_mysql) module must be also loaded */
    loadmodule “auth.so”
    loadmodule “auth_db.so”

    -Proceed to also modify the following comment (remove the #)

    /* uncomment the following lines if you want to enable DB persistency
    for location entries */

    modparam(“usrloc”, “db_mode”, 2)

    -It should now look like this

    /* uncomment the following lines if you want to enable DB persistency
    for location entries */
    modparam(“usrloc”, “db_mode”, 2)

    -Proceed to also modify the following comment (remove couple #’s)

    /* uncomment the following lines if you want to enable the DB based
    authentication */

    modparam(“auth_db”, “calculate_ha1”, yes)
    modparam(“auth_db”, “password_column”, “password”)

    -It should now look like this

    /* uncomment the following lines if you want to enable the DB based
    authentication */
    modparam(“auth_db”, “calculate_ha1”, yes)
    modparam(“auth_db”, “password_column”, “password”)

    -Proceed to modify the following “empty spaces” with your domain, in my
    case I will use the ip address of this box which is 10.10.10.101, the
    comment is the following

    authenticate the REGISTER requests (uncomment to ena$
    ##if (!www_authorize(“”, “subscriber”))
    ##{
    ## www_challenge(“”, “0”);
    ## exit;

    -It should now look like this

    authenticate the REGISTER requests (uncomment to ena$
    if (!www_authorize(“10.10.10.101”,
    “subscriber”))
    ##{
    www_challenge(“10.10.10.101”, “0”);
    ## exit;

    -Proceed to save the file in nano by using ctrl + X and Y

    -Great!, now lets see if we can start opensips by typing opensipsctl start

    root@simulacro opensips# opensipsctl start

    INFO: Starting OpenSIPS :
    INFO: started (pid: 5474)
    root@simulacro opensips#

    -And as we see above we can start succesfully opensips!

    -Now lets proceed to copy /usr/src/opensips/packaging/fedora/opensips.init to
    /etc/init.d/opensips by doing the following

    root@simulacro opensips# cp /usr/src/opensips/packaging/fedora/opensips.init /etc/init.d/opensips
    root@simulacro opensips#

    -Now lets give the proper rights to opensips, by doing the following
    chmod 755 /etc/init.d/opensips

    root@simulacro opensips# chmod 755 /etc/init.d/opensips

    -Now so that we can start opensips properly, we need to make some configuration
    changes to /etc/init.d/opensips, using nano do the following

    root@simulacro opensips# nano /etc/init.d/opensips

    -Proceed to modify the following comment

    Source function library.
    . /etc/rc.d/init.d/functions

    oser=/usr/sbin/opensips
    prog=opensips
    RETVAL=0

    It should now look like this

    Source function library.
    . /etc/rc.d/init.d/functions

    oser=/usr/local/sbin/opensips
    prog=opensips
    RETVAL=0

    -Proceed to save the file using name ctrl + X and Y

    -Now lets proceed to test service opensips start|status|stop

    root@simulacro opensips# service opensips stop
    Stopping opensips: OK
    root@simulacro opensips# service opensips status
    opensips is stopped
    root@simulacro opensips# service opensips start
    Starting opensips: OK
    root@simulacro opensips# service opensips status
    opensips (pid 5624 5623 5620 5618 5615 5613 5612 5610 5608 5605 5603 5602 5600 5598 5595 5594 5590) is running…
    root@simulacro opensips#

    -Using nano proceed to edit the startup script /etc/init.d/opensips, proceed
    to make changes to the following comment

    Startup script for OpenSIPS

    chkconfig: – 85 15

    It should now look like

    Startup script for OpenSIPS

    chkconfig: 345 96 15

    -Proceed to save the file using nano ctrl + X and Y

    -Proceed to also do the following from the CLI

    root@simulacro opensips# chkconfig –add opensips
    root@simulacro opensips# chkconfig mysqld on
    root@simulacro ~# export SIP_DOMAIN=10.10.10.101

    -Proceed to reboot the server to make sure opensips and mysqld starts automatically

    root@simulacro opensips# reboot

    Broadcast message from root (pts/1) (Sun Apr 12 01:41:56 2009):

    The system is going down for reboot NOW!
    root@simulacro opensips#

    -Once the server have fully restarted we can proceed to add a new user,
    when adding a new user, you will be asked for the opensips password,
    the default opensips password is lowercase opensipsrw, I will suggest
    you to look at the opensipsctlrc file, I will strongly suggest you to
    change all the default values in this file, although becareful when
    making changes, because it could cause opensips to stop working.

    -To add a new user simply issue the following command
    opensipsctl add newusername newuserpassword

    root@simulacro src# opensipsctl add 2000 yourpassword
    MySQL password for user ‘opensips@localhost’: <---enter opensipsrw new user '2000' added root@simulacro src# -Using for example xlite you should now be able to register user 2000 with opensips -Also you can use the command opensipsctl to access your cli options. This document was created by Cesar Fiestas

All Comments

  • Author
    Replies
    • #3033150

      I met a problem!

      by pukinsson ·

      In reply to How to install opensips in a Red Hat Enterprise Linux 5 server with mysql

      Firstly I really thank you for your article, it is really detail and carefully. I based on your article to do my work, but I met a problem at the end step: checking result of that work with X-lite.
      My problem is that I can’t not use x-lite to register sip account on opensips, error time out 408 although I think opensips was installed successfully. I only have a laptop and in this laptop, I use a Vmware computer running redhat 5 as a server. I installed opensips in it and use X-lite in the physical machine ? my latop. I’m sure those two machine can ping to each other and firewalls was stopped in the both.
      The machine I installed Opensips has static 192.168.10.5 IP address (I manually put this IP in) and IP of the physical machine is 192.168.10.20. None of these machines connected to Lan or Internet. The above ip addresses are manually put by myself and they are static Ip addresses. I used statement :
      #ifconfig eth0 192.168.10.5 netmask 255.255.255.0 to get the IP addresses.

      Mysql-server version is 5.0.22-2.1 (note : version in guide document is 5.0.45-7.el5)
      Opensips version 1.5.
      Redhat 5. My other necessary packages is older than your. Particularly, mysql-devel: 5.0.22-2.1, openssl-0.9.8b-8.3.el5,etc.
      During installing process, I met only an error with:
      root@localhost opensips#/usr/bin/mysqladmin ?u root ?h localhost password 123456
      error: Access denied for user ?root?@ ?localhost? (using password: NO).
      Other results is like yours guides.
      I’m very new to MYSQL and my configuration is followed guide documents. Do you have any suggestion for me? I thank you very much. If you know the configuration files for my case, can you attach those to your reply. To be successful with this installation is very meaning for me and my work. Thanks you very much.

      I also send to you configuration files. Please consider them and help me.

      • #3033149

        configure files

        by pukinsson ·

        In reply to I met a problem!

        #
        # $Id: opensips.cfg 5503 2009-03-22 16:22:32Z bogdan_iancu $
        #
        # OpenSIPS basic configuration script
        # by Anca Vamanu
        #
        # Please refer to the Core CookBook at:
        # http://www.opensips.org/index.php?n=Resources.DocsCookbooks
        # for a explanation of possible statements, functions and parameters.
        #

        ####### Global Parameters #########

        debug=3
        log_stderror=no
        log_facility=LOG_LOCAL0

        fork=yes
        children=4

        /* uncomment the following lines to enable debugging */
        #debug=6
        #fork=no
        #log_stderror=yes

        /* uncomment the next line to disable TCP (default on) */
        #disable_tcp=yes

        /* uncomment the next line to enable the auto temporary blacklisting of
        not available destinations (default disabled) */
        #disable_dns_blacklist=no

        /* uncomment the next line to enable IPv6 lookup after IPv4 dns
        lookup failures (default disabled) */
        #dns_try_ipv6=yes

        /* uncomment the next line to disable the auto discovery of local aliases
        based on revers DNS on IPs (default on) */
        #auto_aliases=no

        /* uncomment the following lines to enable TLS support (default off) */
        #disable_tls = no
        #listen = tls:your_IP:5061
        #tls_verify_server = 1
        #tls_verify_client = 1
        #tls_require_client_certificate = 0
        #tls_method = TLSv1
        #tls_certificate = “/usr/local/etc/opensips/tls/user/user-cert.pem”
        #tls_private_key = “/usr/local/etc/opensips/tls/user/user-privkey.pem”
        #tls_ca_list = “/usr/local/etc/opensips/tls/user/user-calist.pem”

        port=5060

        /* uncomment and configure the following line if you want opensips to
        bind on a specific interface/port/proto (default bind on all available) */
        #listen=udp:192.168.1.2:5060

        ####### Modules Section ########

        #set module path
        mpath=”/usr/local/lib/opensips/modules/”

        /* uncomment next line for MySQL DB support */
        loadmodule “db_mysql.so”
        loadmodule “signaling.so”
        loadmodule “sl.so”
        loadmodule “tm.so”
        loadmodule “rr.so”
        loadmodule “maxfwd.so”
        loadmodule “usrloc.so”
        loadmodule “registrar.so”
        loadmodule “textops.so”
        loadmodule “mi_fifo.so”
        loadmodule “uri_db.so”
        loadmodule “uri.so”
        loadmodule “xlog.so”
        loadmodule “acc.so”
        /* uncomment next lines for MySQL based authentication support
        NOTE: a DB (like db_mysql) module must be also loaded */
        loadmodule “auth.so”
        loadmodule “auth_db.so”
        /* uncomment next line for aliases support
        NOTE: a DB (like db_mysql) module must be also loaded */
        #loadmodule “alias_db.so”
        /* uncomment next line for multi-domain support
        NOTE: a DB (like db_mysql) module must be also loaded
        NOTE: be sure and enable multi-domain support in all used modules
        (see “multi-module params” section ) */
        #loadmodule “domain.so”
        /* uncomment the next two lines for presence server support
        NOTE: a DB (like db_mysql) module must be also loaded */
        #loadmodule “presence.so”
        #loadmodule “presence_xml.so”

        # —————– setting module-specific parameters —————

        # —– mi_fifo params —–
        modparam(“mi_fifo”, “fifo_name”, “/tmp/opensips_fifo”)

        # —– rr params —–
        # add value to ;lr param to cope with most of the UAs
        modparam(“rr”, “enable_full_lr”, 1)
        # do not append from tag to the RR (no need for this script)
        modparam(“rr”, “append_fromtag”, 0)

        # —– registrar params —–
        modparam(“registrar”, “method_filtering”, 1)
        /* uncomment the next line to disable parallel forking via location */
        # modparam(“registrar”, “append_branches”, 0)
        /* uncomment the next line not to allow more than 10 contacts per AOR */
        #modparam(“registrar”, “max_contacts”, 10)

        # —– usrloc params —–
        modparam(“usrloc”, “db_mode”, 0)
        /* uncomment the following lines if you want to enable DB persistency
        for location entries */
        modparam(“usrloc”, “db_mode”, 2)
        #modparam(“usrloc”, “db_url”,
        # “mysql://opensips:opensipsrw@localhost/opensips”)

        # —– uri_db params —–
        /* by default we disable the DB support in the module as we do not need it
        in this configuration */
        modparam(“uri_db”, “use_uri_table”, 0)
        modparam(“uri_db”, “db_url”, “”)

        # —– acc params —–
        /* what sepcial events should be accounted ? */
        modparam(“acc”, “early_media”, 1)
        modparam(“acc”, “report_ack”, 1)
        modparam(“acc”, “report_cancels”, 1)
        /* by default ww do not adjust the direct of the sequential requests.
        if you enable this parameter, be sure the enable “append_fromtag”
        in “rr” module */
        modparam(“acc”, “detect_direction”, 0)
        /* account triggers (flags) */
        modparam(“acc”, “failed_transaction_flag”, 3)
        modparam(“acc”, “log_flag”, 1)
        modparam(“acc”, “log_missed_flag”, 2)
        /* uncomment the following lines to enable DB accounting also */
        modparam(“acc”, “db_flag”, 1)
        modparam(“acc”, “db_missed_flag”, 2)

        # —– auth_db params —–
        /* uncomment the following lines if you want to enable the DB based
        authentication */
        modparam(“auth_db”, “calculate_ha1”, yes)
        modparam(“auth_db”, “password_column”, “password”)
        #modparam(“auth_db”, “db_url”,
        # “mysql://opensips:opensipsrw@localhost/opensips”)
        #modparam(“auth_db”, “load_credentials”, “”)

        # —– alias_db params —–
        /* uncomment the following lines if you want to enable the DB based
        aliases */
        #modparam(“alias_db”, “db_url”,
        # “mysql://opensips:opensipsrw@localhost/opensips”)

        # —– domain params —–
        /* uncomment the following lines to enable multi-domain detection
        support */
        #modparam(“domain”, “db_url”,
        # “mysql://opensips:opensipsrw@localhost/opensips”)
        #modparam(“domain”, “db_mode”, 1) # Use caching

        # —– multi-module params —–
        /* uncomment the following line if you want to enable multi-domain support
        in the modules (dafault off) */
        #modparam(“alias_db|auth_db|usrloc|uri_db”, “use_domain”, 1)

        # —– presence params —–
        /* uncomment the following lines if you want to enable presence */
        #modparam(“presence|presence_xml”, “db_url”,
        # “mysql://opensips:opensipsrw@localhost/opensips”)
        #modparam(“presence_xml”, “force_active”, 1)
        #modparam(“presence”, “server_address”, “sip:192.168.1.2:5060”)

        ####### Routing Logic ########

        # main request routing logic

        route{

        if (!mf_process_maxfwd_header(“10”)) {
        sl_send_reply(“483″,”Too Many Hops”);
        exit;
        }

        if (has_totag()) {
        # sequential request withing a dialog should
        # take the path determined by record-routing
        if (loose_route()) {
        if (is_method(“BYE”)) {
        setflag(1); # do accounting …
        setflag(3); # … even if the transaction fails
        } else if (is_method(“INVITE”)) {
        # even if in most of the cases is useless, do RR for
        # re-INVITEs alos, as some buggy clients do change route set
        # during the dialog.
        record_route();
        }
        # route it out to whatever destination was set by loose_route()
        # in $du (destination URI).
        route(1);
        } else {
        /* uncomment the following lines if you want to enable presence */
        ##if (is_method(“SUBSCRIBE”) && $rd == “your.server.ip.address”) {
        ## # in-dialog subscribe requests
        ## route(2);
        ## exit;
        ##}
        if ( is_method(“ACK”) ) {
        if ( t_check_trans() ) {
        # non loose-route, but stateful ACK; must be an ACK after
        # a 487 or e.g. 404 from upstream server
        t_relay();
        exit;
        } else {
        # ACK without matching transaction ->
        # ignore and discard
        exit;
        }
        }
        sl_send_reply(“404″,”Not here”);
        }
        exit;
        }

        #initial requests

        # CANCEL processing
        if (is_method(“CANCEL”))
        {
        if (t_check_trans())
        t_relay();
        exit;
        }

        t_check_trans();

        # authenticate if from local subscriber (uncomment to enable auth)
        # authenticate all initial non-REGISTER request that pretend to be
        # generated by local subscriber (domain from FROM URI is local)
        ##if (!(method==”REGISTER”) && from_uri==myself) /*no multidomain version*/
        ##if (!(method==”REGISTER”) && is_from_local()) /*multidomain version*/
        ##{
        ## if (!proxy_authorize(“”, “subscriber”)) {
        ## proxy_challenge(“”, “0”);
        ## exit;
        ## }
        ## if (!check_from()) {
        ## sl_send_reply(“403″,”Forbidden auth ID”);
        ## exit;
        ## }
        ##
        ## consume_credentials();
        ## # caller authenticated
        ##}

        # preloaded route checking
        if (loose_route()) {
        xlog(“L_ERR”,
        “Attempt to route with preloaded Route’s [$fu/$tu/$ru/$ci]”);
        if (!is_method(“ACK”))
        sl_send_reply(“403″,”Preload Route denied”);
        exit;
        }

        # record routing
        if (!is_method(“REGISTER|MESSAGE”))
        record_route();

        # account only INVITEs
        if (is_method(“INVITE”)) {
        setflag(1); # do accounting
        }
        if (!uri==myself)
        ## replace with following line if multi-domain support is used
        ##if (!is_uri_host_local())
        {
        append_hf(“P-hint: outbound\r\n”);
        # if you have some interdomain connections via TLS
        ##if($rd==”tls_domain1.net”) {
        ## t_relay(“tls:domain1.net”);
        ## exit;
        ##} else if($rd==”tls_domain2.net”) {
        ## t_relay(“tls:domain2.net”);
        ## exit;
        ##}
        route(1);
        }

        # requests for my domain

        ## uncomment this if you want to enable presence server
        ## and comment the next ‘if’ block
        ## NOTE: uncomment also the definition of route[2] from below
        ##if( is_method(“PUBLISH|SUBSCRIBE”))
        ## route(2);

        if (is_method(“PUBLISH”))
        {
        sl_send_reply(“503”, “Service Unavailable”);
        exit;
        }

        if (is_method(“REGISTER”))
        {
        # authenticate the REGISTER requests (uncomment to enable auth)
        ##if (!www_authorize(“192.168.10.5”, “subscriber”))
        ##{
        ## www_challenge(“192.168.10.5”, “0”);
        ## exit;
        ##}
        ##
        ##if (!check_to())
        ##{
        ## sl_send_reply(“403″,”Forbidden auth ID”);
        ## exit;
        ##}

        if (!save(“location”))
        sl_reply_error();

        exit;
        }

        if ($rU==NULL) {
        # request with no Username in RURI
        sl_send_reply(“484″,”Address Incomplete”);
        exit;
        }

        # apply DB based aliases (uncomment to enable)
        ##alias_db_lookup(“dbaliases”);

        if (!lookup(“location”)) {
        switch ($retcode) {
        case -1:
        case -3:
        t_newtran();
        t_reply(“404”, “Not Found”);
        exit;
        case -2:
        sl_send_reply(“405”, “Method Not Allowed”);
        exit;
        }
        }

        # when routing via usrloc, log the missed calls also
        setflag(2);

        route(1);
        }

        route[1] {
        # for INVITEs enable some additional helper routes
        if (is_method(“INVITE”)) {
        t_on_branch(“2”);
        t_on_reply(“2”);
        t_on_failure(“1”);
        }

        if (!t_relay()) {
        sl_reply_error();
        };
        exit;
        }

        # Presence route
        /* uncomment the whole following route for enabling presence
        NOTE: do not forget to enable the call of this route from the main
        route */
        ##route[2]
        ##{
        ## if (!t_newtran())
        ## {
        ## sl_reply_error();
        ## exit;
        ## };
        ##
        ## if(is_method(“PUBLISH”))
        ## {
        ## handle_publish();
        ## t_release();
        ## }
        ## else
        ## if( is_method(“SUBSCRIBE”))
        ## {
        ## handle_subscribe();
        ## t_release();
        ## }
        ##
        ## exit;
        ##}

        branch_route[2] {
        xlog(“new branch at $ru\n”);
        }

        onreply_route[2] {
        xlog(“incoming reply\n”);
        }

        failure_route[1] {
        if (t_was_cancelled()) {
        exit;
        }

        # uncomment the following lines if you want to block client
        # redirect based on 3xx replies.
        ##if (t_check_status(“3[0-9][0-9]”)) {
        ##t_reply(“404″,”Not found”);
        ## exit;
        ##}

        # uncomment the following lines if you want to redirect the failed
        # calls to a different new destination
        ##if (t_check_status(“486|408”)) {
        ## sethostport(“192.168.2.100:5060”);
        ## # do not set the missed call flag again
        ## t_relay();
        ##}
        }

        • #3033148

          And….

          by pukinsson ·

          In reply to configure files

          # $Id: opensipsctlrc 4331 2008-06-06 14:36:01Z anca_vamanu $
          #
          # 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=192.168.10.5

          ## 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 read only user
          DBROUSER=opensipsro

          ## password for database read only user
          DBROPW=opensipsro

          ## 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

          # FOREVER=”2020-05-28 21:32:15″
          # DEFAULT_ALIASES_EXPIRES=$FOREVER
          # DEFAULT_Q=”1.0″
          # DEFAULT_CALLID=”Default-Call-ID”
          # DEFAULT_CSEQ=”13″
          # DEFAULT_LOCATION_EXPIRES=$FOREVER

          # Program to calculate a message-digest fingerprint
          # MD5=”md5sum”

          # awk tool
          # AWK=”awk”

          # grep tool
          # GREP=”grep”

          # sed tool
          # SED=”sed”

          # Describe what additional tables to install. Valid values for the variables
          # below are yes/no/ask. With ask (default) it will interactively ask the user
          # for an answer, while yes/no allow for automated, unassisted installs.
          #

          # If to install tables for the modules in the EXTRA_MODULES variable.
          # INSTALL_EXTRA_TABLES=ask

          # If to install presence related tables.
          # INSTALL_PRESENCE_TABLES=ask

          # Define what module tables should be installed.
          # If you use the postgres database and want to change the installed tables, then you
          # must also adjust the STANDARD_TABLES or EXTRA_TABLES variable accordingly in the
          # opensipsdbctl.base script.

          # opensips standard modules
          # STANDARD_MODULES=”standard acc lcr domain group permissions registrar usrloc msilo
          # alias_db uri_db speeddial avpops auth_db pdt dialog dispatcher
          # dialplan”

          # opensips extra modules
          # EXTRA_MODULES=”imc cpl siptrace domainpolicy carrierroute userblacklist”

          ## type of aliases used: DB – database aliases; UL – usrloc aliases
          ## – default: none
          ALIASES_TYPE=”DB”

          ## control engine: FIFO or UNIXSOCK
          ## – default FIFO
          CTLENGINE=”FIFO”

          ## path to FIFO file
          # OSIPS_FIFO=”FIFO”

          ## MI_CONNECTOR control engine: FIFO, UNIXSOCK, UDP, XMLRPC
          # MI_CONNECTOR=FIFO:/tmp/opensips_fifo
          # MI_CONNECTOR=UNIXSOCK:/tmp/opensips.sock
          # MI_CONNECTOR=UDP:192.168.2.133:8000
          # MI_CONNECTOR=XMLRPC:192.168.2.133:8000

          ## check ACL names; default on (1); off (0)
          VERIFY_ACL=1

          ## ACL names – if VERIFY_ACL is set, only the ACL names from below list
          ## are accepted
          ACL_GROUPS=”local ld int voicemail free-pstn”

          ## verbose – debug purposes – default ‘0’
          VERBOSE=1

          ## do (1) or don’t (0) store plaintext passwords
          ## in the subscriber table – default ‘1’
          # STORE_PLAINTEXT_PW=0

          ## OPENSIPS START Options
          ## PID file path – default is: /var/run/opensips.pid
          # PID_FILE=/var/run/opensips.pid

          ## Extra start options – default is: not set
          # example: start opensips with 64MB share memory: STARTOPTIONS=”-m 64″
          # STARTOPTIONS=

    • #2885037

      DB Installation for Opensips Control Panel

      by ali.sade ·

      In reply to How to install opensips in a Red Hat Enterprise Linux 5 server with mysql

      Edit
      /etc/opensips/opensipsctlrc
      and choose your DB ENGINE

      then run
      opensipsdbctl create

Viewing 1 reply thread