Coder Social home page Coder Social logo

arisbee / siproxd_orange Goto Github PK

View Code? Open in Web Editor NEW

This project forked from nsapa/siproxd_orange

0.0 1.0 0.0 3.78 MB

Plugin pour siproxd afin de permettre à un client SIP de s'authentifier et de passer des appels via le service Livephone d'Orange.

Home Page: http://x0r.fr/blog/47

License: GNU General Public License v2.0

Makefile 0.44% Shell 3.85% M4 0.04% C 95.67%

siproxd_orange's Introduction

siproxd-orange

L'auteur de ce projet ne travaille plus dessus suite à des pressions d'Orange. Voir ce message sur son blog pour plus d'information.

Lisez impérativement ce document. Il contient des instructions importantes afin de faire fonctionner ce plugin.

Vous devrez impérativement utiliser une version ou snapshot postérieure au 26 mai 2014 de siproxd pour que ce plugin fonctionne correctement dans les deux sens. Dans le cas contraire, vous ne pourrez pas recevoir d'appels via SIP.

Ce plugin est à utiliser à vos propres risques et périls. Je dégage toute responsabilité face aux conséquences de l'utilisation du proxy avec ce plugin.

Description

Ceci est un projet de plugin pour siproxd afin de permettre à un client SIP de s'authentifier et de passer des appels via le service Livephone d'Orange.

Les serveurs SIP du Livephone utilisent une version modifiée de la RFC 3261, ce qui rend de fait impossible la compatibilité de leur service avec autre chose que les applications propriétaires (pour Windows, iOS et Android) qui vont avec. Ce plugin se charge donc de réécrire certains messages SIP afin d'assurer l'interopérabilité entre n'importe quel client SIP et l'infrastructure d'Orange.

Le plugin permet le REGISTER auprès du proxy sortant utilisé par le Livephone, et ainsi possible de passer des appels (INVITE) vers l'extérieur et recevoir des appels depuis un autre téléphone. Exactement de la même manière que si vous aviez branché un téléphone analogique sur la prise prévue à cet effet sur la Livebox, mais via SIP.

Pour les détails techniques de l'implémentation, vous pouvez lire l'article à l'adresse http://x0r.fr/blog/36.

Compilation

Avant de commencer, il vous faudra installer :

  • pkg-config (ou pkgconf sous FreeBSD) ;

  • libxml2 (-dev) version 2.9.1 ou supérieure ;

  • libcurl (-dev) avec prise en charge OpenSSL ;

  • libosip2 (-dev) version 3.6.0 ou supérieure ;

  • libltdl (-dev) fournie avec libtool ;

  • siproxd : deux choix possibles :

    • siproxd (0.8.2 ou supérieure, lorsque cette version existera), si possible, ou cette snapshot patchée, ou
    • un exemplaire de l'archive des sources de siproxd (snapshot du 26 mai 2014 ou postérieure) afin de compiler ce plugin (les fichiers .h nécessaires ne sont généralement pas distribués avec le binaire).

Les versions 0.1.3 et antérieures de siproxd-orange ne doivent plus être utilisées, car celles-ci ont une mauvaise implémentation de l'algorithme d'authentification.

Les versions 0.1.2 et antérieures requièrent la version 7.36.0 ou supérieure de libcurl. Les versions 0.1.3 et supérieures peuvent fonctionner avec des versions plus anciennes de libcurl. La version fournie par Debian Wheezy suffit, par exemple.

Compiler siproxd

Pour que le plugin fonctionne, il vous faudra compiler une snapshot récente (postérieure au 26 mai 2014) ou installer la version 0.8.2 de siproxd lorsque cette version existera.

Étant donné que ces snapshots de siproxd ont besoin de patchs supplémentaires sur certains systèmes d'exploitation, je vous propose également ma version patchée de siproxd qui devrait également fonctionner.

Dans le cas d'une snapshot, compilez et installez les sources en vous référant aux instructions fournies.

Compiler le plugin

Décompressez l'archive des sources (X.Y.Z représentant la version du plugin) :

% tar xvzf siproxd_orange-X.Y.Z.tar.gz
% cd siproxd_orange-X.Y.Z

Décompressez l'archive des sources de siproxd dans le répertoire actuel :

% tar xvzf /chemin/vers/siproxd-0.8.2dev.tar.gz

Créez un lien symbolique vers les sources de siproxd comme ceci :

% ln -s siproxd-0.8.2dev siproxd

Si vous avez récupéré les sources depuis le dépôt Mercurial, exécutez la commande :

% autoreconf -i

Exécutez les commandes suivantes :

% ./configure
% make

Exécutez make install en tant que root, ou via sudo.

Si tout se passe bien, plusieurs fichiers .a, .la et .so auront été installés dans /usr/lib/siproxd ou /usr/local/lib/siproxd. Si ce n'est pas le cas, ajoutez une option --prefix=/chemin/vers/prefixe à ./configure. Le plugin sera alors installé dans le répertoire /chemin/vers/prefixe/lib/siproxd/.

Configuration du proxy

Afin que le plugin fonctionne correctement, vous devrez ajouter les directives suivantes dans votre siproxd.conf (dans /etc ou /usr/local/etc, selon votre installation) :

load_plugin = plugin_orange.la
plugin_orange_username = [email protected]
plugin_orange_password = mon_password_mail

Vérifiez aussi que le plugindir soit correct et pointe bien vers le répertoire où sont installés les plugins (y compris celui-ci).

Configuration des clients

Consultez la matrice de compatibilité dans le wiki du projet. Celui-ci regroupe toutes les instructions pour les clients SIP testés avec ce logiciel.

Diagnostic

La procédure recommandée pour obtenir des informations de diagnostic est la suivante :

  1. Positionner daemonize = 0 dans le fichier de configuration siproxd.conf ;

  2. Exécuter siproxd à la main à l'aide de la commande suivante :

    /sbin/siproxd -d 4132 2>&1 | tee siproxd.log
    

    Si /sbin/siproxd ne fonctionne pas, essayez avec /usr/local/sbin/siproxd  ;

  3. Récupérer le fichier siproxd.log ;

  4. Optionnel mais recommandé : cacher les numéros de téléphone, les identifiants et les adresses mail dans le fichier de traces ;

  5. Remettre daemonize = 1 dans siproxd.conf avant de remettre en production.

Limitations

  • Ce plugin est sujet aux mêmes limitations techniques que l'application Livephone d'origine. Par exemple, siproxd doit tourner sur une machine reliée à votre connexion Orange.

  • Je n'ai absolument pas testé le comportement de ce plugin avec d'autres fonctionnalités de siproxd. En particulier, ce plugin risque de modifier des messages SIP qui ne sont pas forcément destinés à Orange.

  • La documentation fournie par Orange semble suggérer qu'enregistrer plusieurs clients SIP simultanément chez eux est une mauvaise idée. Aussi, je vous déconseille de faire la même chose avec ce plugin de proxy. De toute façon, pour partager une ligne SIP avec plusieurs téléphones, le mieux reste d'utiliser Asterisk.

  • Il arrive parfois qu'en appelant une personne avec Linphone, il soit impossible de l'entendre. Raccrocher et retenter l'appel résoud généralement le problème. Si vous n'entendez pas la tonalité après avoir composé un numéro, c'est généralement mauvais signe. Je n'ai pas rencontré ce problème avec d'autres clients SIP pour le moment.

siproxd_orange's People

Contributors

nsapa avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.