From openSIPS

Documentation: Tutorials-OpenSIPSonRedHat

Documentation -> Tutorials -> OpenSIPS on RedHat Rel5

This page has been visited 9646 times.

Table of Content (hide)

  1. 1. Installation of Red Hat Enterprise Linux 5 (Phase 1)
  2. 2. Installation and configuration of Opensips, webmin and mysql (Phase 2)

The following document will guide you through the installation of the newly released OpenSIPS version 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 parameters will be used for the purpose of this installation guide, securing your OpenSIPS environment is beyond this installation guide,

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

Let's Proceed to install Red Hat Enterprise Linux 5

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.


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

Your system should have the following packages installed

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 enable auth)
##if (!www_authorize("", "subscriber"))  
##{  
## www_challenge("", "0");  
## exit;  

It should now look like this

 
#authenticate the REGISTER requests (uncomment to enable auth)
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 successfully 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.

Retrieved from https://www.opensips.org/Documentation/Tutorials-OpenSIPSonRedHat
Page last modified on May 16, 2013, at 07:16 PM