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> :
-
Partie 1: Présentation et pré-requis
- Présentation du dossier;
- Principe de la gestion des profils et identités utilisateurs au sein d’une architecture IMS;
- Création et mise en place d’une machine virtuelle pour IMS;
-
Partie 2: Cœur de réseau IMS
- Installation d’un cœur de réseau IMS (OpenIMSCore);
- Quelques infos sur la configuration réseau pour l’interface FHoSS;
- Configuration d’abonnés IMS;
- Configuration et utilisation d’un client IMS;
-
Partie 3: Serveurs d’application
- Quelques infos sur l’ajout et la configuration d’un serveur d’application IMS;
- Installation d’un serveur de présence (OpenSIPs) [page actuelle];
- Installation d’un serveur IPTV (UCT IPTv Advanced);
- Mise en place d’un serveur de VOD.
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?
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!
[…] http://www.ims-way.com/ims-installation-serveur-presence-opensips/ […]