Un client SIP en ligne de commande
PJSip est un framework (C et Python) open-source permettant de développer simplement des applications de VoIP basées sur le protocole SIP. PJSip est fourni en standard avec PJsua, un client SIP en ligne de commande que nous allons aborder dans ce billet.
Installation
Pour installer PJSip (et donc PJsua) sur votre système (exemple sous Ubuntu), il faut saisir les lignes de commandes suivantes:
# wget http://www.pjsip.org/release/1.0.1/pjproject-1.0.1.tar.bz2
# bzip2 -d pjproject-1.0.1.tar.bz2
# tar xvf pjproject-1.0.1.tar
# cd pjproject-1.0.1
# ./configure
# make dep
# make
# sudo make install
# sudo cp ./pjsip-apps/bin/pjsua-i686-pc-linux-gnu /usr/local/bin/pjsua
Premier lancement de PJsua
PJsua est un client SIP en ligne de commande (CLI) qui utilise les librairies PJSip.
Pour lancer le logiciel, il faut utiliser la commande suivante:
# pjsua
Le menu suivant devrait apparâitre:
Enregistrement d'un compte SIP
Nous allons commencer par nous enregistrer sur notre serveur SIP:
>>> +a
Your SIP URL: (empty to cancel): sip:login@monserveur.mondomaine.com
URL of the registrar: (empty to cancel): sip:monserveur.mondomaine.com
Auth Realm: (empty to cancel): login
Auth Username: (empty to cancel): login
Auth Password: (empty to cancel): password
Je n'utilise pas cette interface textuelle. Culture BSD oblige, je préfère passer les paramètres en ligne de commande de la manière suivante:
# pjsua --id sip:login@monserveur.mondomaine.com --registrar sip:monserveur.mondomaine.com --realm * --username login --password password
ou, encore mieux, par un fichier de configuration:
# vi login.cfg
--id sip:login@monserveur.mondomaine.com
--registrar sip:monserveur.mondomaine.com
--realm *
--username login
--password password# pjsua --config-file login.cfg
Remarque: si vous souhaitez lancer PJsua directement sur votre serveur SIP il faut ajouter une option pour lui dire de fonctionner sur un autre port SIP (en effet le port par défaut 5060 est utilisé par votre serveur SIP).
# pjsua --local-port=5080 --config-file login.cfg
Nous allons maintenant simuler notre premier appel SIP
Pour simuler un appel entre notre compte "login" (défini dans le fichier login.cfg) et le compte "login2" , il faut saisir en ligne de commande:
# pjsua --config-file login.cfg sip:login2@monserveur.mondomaine.com
Simuler un appel à partir d'un fichier .WAV
Si vous souhaitez simuler un appel non pas avec un péripherique d'entrée audio mais à partir d'un fichier .wav, il suffit de
# pjsua --config-file login.cfg --play-file=./monficher.wav sip:login2@monserveur.mondomaine.com
Conclusion
Nous avons abordés une infime partie des fonctionnalités proposées par PJSip. Je vous conseille la lecture des documentations officielles.