Documentation |
Documentation -> Tutorials -> OpenSIPS on RedHat Rel5This page has been visited 10312 times. Table of Content (hide) 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:
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. |