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

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
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
Created by: cesar_fiestas, Last modification: Mon 07 of May, 2012 (20:55 UTC) by admin
Please update this page with new information, just login and click on the "Edit" or "Discussion" tab. Get a free login here: Register Thanks! - Find us on Google+