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


