Aller au contenu

22 avril 2011

3

Installation d’un serveur de présence OpenSIPs

OpenSIPs

La gestion de la présence au sein d’une architecture IMS va être réalisée à l’aide d’un serveur d’application (AS).
OpenSIPS (Open SIP Server) est une implémentation Open Source d’un serveur SIP incluant des fonctionnalités de niveau applicatif. Pour atteindre notre objectif, nous n’utiliserons qu’une des fonctionnalités d’OpenSIPS, la gestion de la présence.

Passons maintenant aux choses sérieuses, l’installation du serveur de présence.

 

Étape 1: Pré-requis

Il est absolument nécessaire d’avoir les paquets suivants installés avant de continuer. Pour vérifier cela, et les installer le cas échéant, il est conseillé de se rendre dans Système => administration => Gestionnaire de paquets Synaptic pour faire son shopping

Les paquets nécessaires sont :
bison bisonc++
flex
libsctp1
libxml2-dev
libexpat1-dev
libradiusclient-ng-dev libradiusclient-ng2
libcurl4-openssl-dev
libxmlrpc-c3 libxmlrpc-c3-dev
libperl-dev
libsnmp-dev
libconfuse0 libconfuse-dev
build-essential
mysql-server
libmysqlclient-dev

 

Étape 2: Installation du serveur de présence

Ce tutoriel a été réalisé avec la version 1.5.0 d’OpenSIPS.
Pour la télécharger voici le lien => http://opensips.org/pub/opensips/1.5.0/src/opensips-1.5.0-notls_src.tar.gz

=> Décompresser l’archive dans le dossier d’installation souhaité  :

tar xvfz opensips-1.5.0-notls_src.tar.gz

=> Editer le makefile :

gedit Makefile

=> localiser exclude_modules= à la ligne 52

=> Supprimer les modules suivants (en effet nous voulons les installer et ne pas les exclure de l’installation) :

jabber
cpl-c
xmpp
rls
mi_xmlrpc
xcap_client
db_mysql
perl
snmpstats
peering
carrierroute
presence
presence_xml
presence_mwi
presence_dialoginfo
pua
pua_bla
pua_mi
pua_usrloc
pua_xmpp
pua_dialoginfo

 

=> Lancer la compilation :

make

=> Lancer l’installation

make install

=> Pour finir l’installation, copier les fichiers suivants :

cp opensips-1.5.0-notls/packaging/debian-etch/opensips.default /etc/default/opensips
cp opensips-1.5.0-notls/packaging/debian-etch/opensips.init /etc/init.d/opensips

 

Étape 3: Configuration du serveur de présence

=> Editer le fichier opensips :

gedit /etc/default/opensips

=> Modifier la ligne 6 et mettre :

RUN_OPENSIPS = yes

 

=> Editer le fichier opensips dans init.d:

gedit /etc/init.d/opensips

=> Modifier les lignes 19 et 25 :

DAEMON=/usr/local/sbin/opensips
RUN_OPENSIPS=yes

 

=> Ajouter le droit d’exécution au fichier opensips

chmod +x /etc/init.d/opensips

=> Ajouter l’utilisateur opensips

groupadd opensips
useradd -g opensips opensips

 

=> Créer le répertoire opensips et lui attribuer les privilèges nécessaires :

mkdir /var/run/opensips
chmod 777 /var/run/opensips
chmod 777 /usr/local/etc/opensips/

 

=> Si l’utilisateur root n’est pas déjà créé dans votre base mysql, le créer avec la commande suivante :

mysqladmin -u root password ‘root’

 

=> Editer le fichier de contrôle du serveur Open SIPS

gedit /usr/local/etc/opensips/opensipsctlrc

 

=> Décommenter les lignes suivantes :

# SIP_DOMAIN=opensips.org
# 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

=> Décommenter et modifier la ligne suivante :

# PID_FILE=/var/run/opensips.pid

en => PID_FILE=/var/run/opensips/opensips.pid

 

=> Editer le fichier de configuration d’Open SIPS :

gedit /usr/local/etc/opensips/opensips.cfg

 

=> Commenter la ligne 122 :

modparam(“usrloc”, « db_mode », 0)

 

=> Modifier le port d’écoute du serveur (5060 en 5065) – ligne 54:

port=5065

 

=> Décommenter les lignes suivantes :

#loadmodule “db_mysql.so”
#loadmodule “auth.so”
#loadmodule “auth_db.so”
#loadmodule « presence.so »
#loadmodule « presence_xml.so »

#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”)

#modparam(« presence|presence_xml », « db_url »,
#        « mysql://opensips:opensipsrw@localhost/opensips »)
#modparam(« presence_xml », « force_active », 1)
#modparam(« presence », « server_address », « sip:192.168.1.2:5065 »)

=> Remplacer l’adresse IP du serveur de présence (ligne 192) par 127.0.0.1 ou par l’adresse IP de la machine virtuelle. Dans notre tutoriel, le serveur de présence et l’architecture IMS sont installés sur la même machine virtuelle donc l’adresse 127.0.0.1 a été utilisée

modparam(« presence », « server_address », « sip:127.0.0.1:5065 »)

 

=>Remplacer la fonction « route » par le code suivant :

route{
if (!mf_process_maxfwd_header(« 10 »)) {
sl_send_reply(« 483″, »Too Many Hops »);
exit;
};

if (msg:len >=  4096 ) {
sl_send_reply(« 513 », « Message too big »);
exit;
};

# presence handling

if(method== »PUBLISH »){
route(2);
}

if(method== »SUBSCRIBE »){
route(2);
}
route(1);
}

Seuls les messages servants à gérer la présence seront traités par Open SIPS

=> Remplacer également la fonction route[2]

route[2]
{
if (!t_newtran())
{
sl_reply_error();
exit;
};

if(is_method(« PUBLISH »))
{
handle_publish();
#t_release();
}
else
if( is_method(« SUBSCRIBE »))
{
handle_subscribe();
#t_release();
}
exit;
}

 

=> Saisir la commande suivante :

sudo opensipsctl add 1001 1001

 

Étape 4: Initialisation de la base de données du serveur de présence

=>Exécuter la commande suivante

opensipsdbctl create

 

=> Répondre oui aux deux questions :

Install presence related tables? (y/n): y

Install tables for imc cpl siptrace domainpolicy carrierroute userblacklist? (y/n): y

 

=> Affecter les droits à l’utilisateur opensips

mysql -u root -p
GRANT ALL PRIVILEGES ON *.* TO opensips@localhost IDENTIFIED BY ‘opensipsrw’;
GRANT ALL PRIVILEGES ON *.* TO opensips@127.0.0.1 IDENTIFIED BY ‘opensipsr’;

Les commandes précédentes seront sans doute considérées comme incorrectes. Pour remédier à ce problème il suffit tout simplement que vous saisissiez vous-mêmes les guillemets de ‘opensipsrw’  et ‘opensipsr’

 

Étape 5: Démarrage / Arrêt du serveur de présence

sudo opensipsctl start
sudo opensipsctl stop

 

Le serveur de présence est maintenant installé et opérationnel. Pour l’utiliser il vous faudra un client IMS tel que Monster (cf. l’article de ce dossier consacré à l’utilisation d’un client IMS).

 

 

Référence Dossier <Mise en place d’un serveur de streaming vidéo> :


S’abonner
Notifier de
guest

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

3 Commentaires
Newest
Oldest Most Voted
Inline Feedbacks
View all comments
Le Franc Armel RAKOTONIRINA
Le Franc Armel RAKOTONIRINA
4 années

Bonjour à tous,
lorsque je lance la commande « sudo opensipsctl start »,
j’ai l’erreur suivant:
ERROR: PID file /var/run/opensips/opensips.pid does not exist — OpenSIPS start failed
Quelqu’un peut m’aider s’il vous plait?

MinaOne
MinaOne
5 années

Bonjour à tous,
je voudrai supprimer et reprendre l’installation de mon serveur de présence Opensips car je ne me retrouve plus je voulais faire un nettoyage et reprendre mes configurations. je suis sur Ubuntu 14.04 et je suis débutante.
Merci d’avance!

3
0
Would love your thoughts, please comment.x