Création d’un réseau téléphonique SIP avec Asterisk

Le but est de mettre en place un serveur de téléphonie SIP interne.

D’abord, quelques points de vocabulaire :
* le registar est le serveur SIP ;
* une extension est en fait un « numéro de téléphone » ;
* l’identity est composée au moins d’un nom de compte, d’un mot de passe et de l’IP du serveur asterisk.

Le serveur

La première chose à faire est d’installer un serveur linux ; ici, j’ai utilisé un serveur Debian 7.

Au passage, j’ai testé AsteriskNow une distribution « prête à l’emploi », avec une sympathique interface web pour gérer son serveur facilement ! Le seul défaut que j’ai noté : l’impossibilité de faire passer les mises à jours à travers mon proxy (c’est apparemment un bug connu de freepbx).

Installons donc Asterisk manuellement :

apt-get install asterisk asterisk-config asterisk-prompt-fr-proformatique

La configuration d’Asterisk passe principalement par trois fichiers :
* /etc/asterisk/asterisk.conf : la configuration générale ;
* /etc/asterisk/sip.conf : le paramétrage du SIP et des comptes ;
* /etc/asterisk/extension.conf : la déclaration des numéros de téléphone.

Pour la configuration générale :

[general]
defaultexpirey=1800
dtmfmode=auto
qualify=yes

Pour chaque téléphone, il faut déclarer le poste dans /etc/asterisk/sip.conf (en remplaçant ce qui est en majuscule) :

[NOM_DU_TEL]
username=NOM_DU_TEL
secret=MOT_DE_PASSE
host=dynamic
context=SALLE_XXX
language=fr

On peut simplifier cela en créant un template de configuration :

[NOM_DU_TEMPLATE](!)
    language=fr
    host=dynamic
    type=friend...
...
[NOM_DU_TEL](NOM_DU_TEMPLATE)
    username=...

Il faut encore associer les numéros de téléphone aux postes ; dans /etc/asterisk/extension.conf :

[SALLE_XXX]
exten => 11,1,Dial(SIP/NOM_DU_TEL)
exten => 12,1,Dial(SIP/NOM_DU_TEL2)
...

Traduction : en composant le 11, on contact le poste NOM_DU_TEL

Reste plus qu’à lancer le service :

/etc/init.d/asterisk start

La conférence

Pour créer une salle de conférence, Astersik inclut un module appelé ConfBridge (remplaçant de MeetMe). Le fichier /etc/asterisk/confbridge.conf permet de définir notamment un nombre maximum de membres par conférence ; par exemple, ici pour avoir au maximum 10 participants :

[default_bridge]
max_members=10

Reste plus qu’à créer un numéro spécifique pour y accéder ; par exemple, voici ce qu’il faut ajouter à /etc/asterisk/extensions.conf pour que le 101 renvoie vers une salle de conférence :

exten => 101,1,Answer()
exten => 101,n,ConfBridge(101)

Interaction avec le serveur

Le serveur tourne comme un démon ; pour interagir avec lui, il faut se connecter sur sa console : asterisk -rv. De la, on a accès à un petit shell dont voici quelques commandes :

CLI> sip show peers    Affiche la liste des équipements connectés
CLI> core restart now  Redémarre le serveur
CLI> core reload       Recharge la configuration (après modification des fichiers de conf)
CLI> dialplan show     Affiche les extensions connues

Les téléphones

Ici, le but est d’authentifier chaque téléphone sur notre nouveau registar. Les téléphones dont je disposes sont des Snom 300 et des 320 (les deux configurations sont très proches).

Le paramétrage des ces téléphones se fait par une interface web. Voici ce que j’ai activé :
Setup > Advanced > QoS/Security > HTTP server
Définir un identifiant/mot de passe pour l’accès web

Setup > Identity 1 > Login
On rentre ici les paramètres de connexion au registar :
– account : le username
– password : le secret
– registar : l’ip du serveur asterisk

Setup > Identity 1 > RTP => RTP Encryption: off
Désactivation du RTP (Real Time Protocol) chiffré (cela posait des problèmes chez moi)

Setup > Advanced > Behavior > Keys => Block DND : on
Désactivation du DND (Do not disturb)

Setup > Advanced > QoS/Security > Security => Administrator Mode : off
Pour empêcher de passer en admin sur le tel

Setup > Advanced > Update => Update Mode : Never update, do not load settings
Pour éviter un message d’erreur concernant l’absence de provisioning (que l’on n’utilise pas ici)

Il est possible d’exporter la configuration d’un téléphone (sans les mots de passe d’administration)
Status > Settings > « Click _here_ to save the settings. »
L’importation se fait à partir de :
Setup > Advanced > Update > Upload Setting File manually
Reste alors à modifier les mots de passe et les identity.

Pour la suite

À voir pour la suite : la connexion avec un fournisseur SIP externe pour pouvoir passer des appels vers l’extérieur, et ajouter des ordinateurs à ce réseau pour pouvoir faire interagir téléphones et postes informatique (Jitsi à l’air prometteur pour cela).

Liens utiles

* http://artisan.karma-lab.net/comment-mettre-place-sa-telephonie-grace-a-asterisk : Pour l’installation d’un serveur asterisk
* https://wiki.asterisk.org/wiki/display/AST/ConfBridge+10#ConfBridge10-ConfBridgeConcepts : Pour la création d’une salle de conférence

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s