Installation of openSIPs on Debian(sqeeze) – 32bit:
Edit sources.list to use new repository:
joe /etc/apt/sources.list
deb http://www.opensips.org/apt/ lenny main#Following 2 lines are not needed in lenny:
deb http://ftp.sk.debian.org/debian/ lenny main
deb-src http://ftp.sk.debian.org/debian/ lenny main
Update:
apt-get update apt-get upgrade
Download:
apt-get install gcc bison flex make openssl libmysqlclient-dev libradiusclient-ng2 libradiusclient-ng-dev mysql-server libxmlrpc-c3-dev
Install openSIPs and modules:
apt-get install opensips opensips-mysql-module opensips-postgres-module opensips-unixodbc-module opensips-jabber-module opensips-cpl-module opensips-radius-modules opensips-presence-modules opensips-xmlrpc-module opensips-perl-modules opensips-snmpstats-module opensips-xmpp-module opensips-carrierroute-module opensips-berkeley-module opensips-ldap-modules opensips-geoip-module opensips-regex-module opensips-identity-module opensips-b2bua-module opensips-dbhttp-module opensips-console
Now do changes in following files:
joe /etc/opensips/opensips.cfg alias=a.local #{"your domain"} joe /etc/opensips/opensipsctlrc #uncomment and set domain SIP_DOMAIN=a.local
Run OpenSIPs:
joe /etc/default/opensips RUN_OPENSIPS=yes
Now you can make call with any user because the authentication is not working yet.
Let’s set up authentication with mysql:
Uncomment following lines:
joe /etc/opensips/opensipsctlrc
SIP_DOMAIN=a.local #your domain
DBENGINE=MYSQL
DBHOST=localhost
DBNAME=opensips
DBRWUSER=opensips
DBRWPW="opensipsrw"
DBROUSER=opensipsro
DBROPW=opensipsro
DBROOTUSER="root"
USERCOL="username"
INSTALL_EXTRA_TABLES=ask
INSTALL_PRESENCE_TABLES=ask
CTLENGINE="FIFO"
OSIPS_FIFO="/tmp/opensips_fifo"
PID_FILE=/var/run/opensips/opensips.pid
Create databese:
opensipsdbctl create
Now you need to set openSIPs server to use mysql database to authenticate users:
In file:
joe /etc/opensips/opensips.cfg
change (COMMENT/UNCOMMENT) this lines:
loadmodule "db_mysql.so" loadmodule "auth.so" loadmodule "auth_db.so" !!! COMMENT #modparam("usrloc", "db_mode", 0) modparam("usrloc", "db_mode", 2) modparam("usrloc", "db_url","mysql://opensips:opensipsrw@localhost/opensips") modparam("auth_db", "calculate_ha1", yes) modparam("auth_db", "password_column", "password") modparam("auth_db", "db_url","mysql://opensips:opensipsrw@localhost/opensips")
and the same file down in routing logic UNCOMMENT:
if (is_method("REGISTER")) { # authenticate the REGISTER requests (uncomment to enable auth) if (!www_authorize("IP_ADDRESS", "subscriber")) { www_challenge("IP_ADDRESS", "0"); exit; }
where IP_ADDRESS part is the IP adrress of your openSIPs server.
To make call two users are needed. You will add them with command:
opensipsctl add "login" "password" #Example: opensipsctl add miso miso
Now restart openSIPs server:
opensipsctl restart
The authentication is now enabled.
The next service we can install on OpenSIPs server is PRESENCE. There are two options how to configure presence: with or without XCAP server.
Presence without XCAP server:
Uncomment following lines in config file /etc/opensips/opensips.cfg
loadmodule "presence.so" loadmodule "presence_xml.so" modparam("presence|presence_xml", "db_url","mysql://opensips:opensipsrw@localhost/opensips") modparam("presence_xml", "force_active", 1)
And again it’s necessary to set the address and port your OpenSIPs server is listening on (example: 158.193.139.80) in /etc/opensips/opensips.cfg
modparam("presence", "server_address", "sip:158.193.139.80:5060")
Finally some changes are needed in routing logic in /etc/opensips/opensips.cfg
Uncomment:
if( is_method("PUBLISH|SUBSCRIBE")) route(2);
Comment:
#if (is_method("PUBLISH")) #{ # sl_send_reply("503", "Service Unavailable"); # exit; #}
and uncomment route(2):
route[2] { if (!t_newtran()) { sl_reply_error(); exit; }; if(is_method("PUBLISH")) { handle_publish(); } else if( is_method("SUBSCRIBE")) { handle_subscribe(); } exit; }
The presence service is now working. The client should be set to presence-agent mode.
NOW: TESTING PRESENCE WITH XCAP SERVER