Configuration du serveur SIP VitalPBX
Divulgâchage : Maintenant que nos lignes analogiques sont gérées par une passerelle, il reste à l’interconnecter avec nos téléphones IP. Pour cela, nous allons installer un serveur SIP, VitalPBX, pour enregistrer et faire communiquer tout nos équipements. L’installation se fait via un iso disponible sur le site officiel. Il s’installe comme les Centos. La configuration se fait ensuite via une interface web, sur laquelle il faut configurer les extensions et les trunks.
Obsolète : Cet article a été rédigé pour la version 2.3. Nous avons depuis installé la version 3.0 et complété avec les quelques rares changements.
Comme nous en avons déjà parlé, nous avons deux accès internet, donc deux accès téléphoniques que nous avons branché notre passerelle analogique HX4G. Maintenant qu’elle est configurée, il nous manque le serveur de VoIP pour pouvoir y brancher nos téléphones IP et nos soft-phones.
Pour les curieux, voici comment nous avons installé et configuré ce système pour que nos téléphones IP puissent communiquer entre eux, avec l’extérieur et puisse recevoir les appels entrant.
Installation de l’IPBX
Il existe un large choix d’IPBX sur internet. Après un coup d’œil à Wikipédia, nous avions choisi trixbox, mais on s’est ensuite rendu compte qu’il n’était plus maintenu depuis 2012.
Après avoir envisagé elastix (mais entre nous, nous n’avions aucune envie d’être contactés par des commerciaux de 3CX), 3CX (idem) et testé certains autres comme FreePBX, Xivo, Wazo et Issabel, nous avons jeté un œil aux forks d’elastix juste avant son rachat. Nous avons alors trouvé VitalPBX, qui « Oh miracle », ne nous demandais pas notre numéro de téléphone pour nous prospecter, était maintenu et semblait répondre à nos attentes.
Nous installerons ici la version 2.1.1-1, basée sur CentOS 7.5.1804 et Asterisk 13.23.1. La démarche est très simple, il suffit de télécharger l’iso d’installation et de démarrer votre machine sur cette image disque (ou du DVD sur laquelle elle est gravée).
Première connexion
VitalPBX utilise une interface d’administration web en HTTP et HTTPS. Il faut donc commencer par obtenir son adresse IP (via un shell sur la machine, la liste des baux DHCP ou pourquoi pas un scan réseau).
Il est possible de forcer la connexion HTTPS (via Admin / HTTP Server et en cliquant sur le bouton correspondant). Vous pourrez ensuite installer votre propre certificat.
Création du super utilisateur
La première chose à faire est de configurer le mot de passe administrateur de l’interface web. Cela est demandé à la première connexion.
Lors des connexions suivantes, l’authentification ne sera demandée
qu’après avoir cliqué sur l’un des modules (ou sur le bouton
login
).
Pop-up d’enregistrement
Après s’être connectés, un pop-up s’affiche automatiquement pour activer le logiciel. Le système nous informe que si on s’enregistre, on pourra utiliser la GUI pour le mettre à jours (au lieu d’utiliser la ligne de commande). Le réel avantage étant en fait d’éliminer ce pop-up.
Sinon nous avons trouvé un moyen pour supprimer le pop-up sans s’enregristrer.
Localisation
La localisation choisie lors de l’installation via l’iso (clavier, fuseau horaire, …) n’est malheureusement pas prise en compte par VitalPBX et si vous voulez que votre IPBX se comporte en parfait autochtone, il faudra la configurer.
L’interface web. Le choix de la langue de l’interface se fait via le menu de l’utilisateur qui possède une entrée Language.
Ce menu ouvre une pop_up (certains diront une modale) nous permettant de choisir la langue.
A partir d’ici, les noms des menus seront donc en français (mais rassurez vous, ça n’est pas bien compliqué).
Le protocole SIP. La configuration se déroule principalement dans le menu Params. / Paramètres technologies / Paramètres SIP. Il faut alors configurer les deux paramètres suivants :
- Langage : concerne les prompts et autres messages vocaux, où nous choisissons français (fr)
- Zone de la tonalité : concerne les tonalités utilisées sur les lignes, où nous choisissons (fr) France
Pour appliquer le changement, il faut d’abord sauvegarder la
configuration (bouton sauvegarder
) puis la recharger
(bouton avec deux flèches rouges en haut).
Les extensions. Les extensions pouvant surcharger la langue utilisée, il est utile de spécifier que par défaut, lors de leur création, il faudra utiliser le même réglage que pour le SIP, cette fois, c’est via Params. / Paramètres PBX / Général Système.
Général Système. De l’anglais System General, ça ne s’invente pas.
Il faut alors changer le paramètre Default Language (non traduit) et choisir le français.
Encore une fois, il faut sauvegarder la configuration puis la recharger.
Configuration de la téléphonie
Maintenant que le système est opérationnel, on va pouvoir configurer la téléphonie proprement dite.
Appels internes
Dans la terminologie SIP, les terminaux s’appellent des extensions. Dans notre cas, nous avons 3 téléphones IP, 2 téléphones analogiques branchés sur notre HX4G et deux smartphone avec une application SIP client.
Les deux lignes externes (ports FXO) peuvent être configurées comme des extensions. Mais ce faisant, VitalPBX considèrera que les appels viennent de ces extensions (et non des numéros externes) ce qui empêchera d’afficher correctement le numéro du contact qui vous appelle.
Nous avons défini un plan de numérotation prenant en compte ces 7 téléphones. Pour créer les extensions correspondantes dans VitalPBX, il faut aller dans le menu PBX / Extensions.
Afin de créer une extension, il faut renseigner les champs suivants:
- Extension : il s’agit du numéro correspondant au téléphone dans le plan de numérotation,
- Nom : il s’agit du petit nom que vous avez donné au téléphone, parfois plus pratique à retenir et comprendre,
- Adresse e-mail : Adresse associée pour y envoyer les fichiers (e.g. la messagerie vocale),
- Equipements :
- Nom d’utilisateur : est mis à jours automatiquement avec le nom précédent,
- Mot de passe : mot de passe permettant au téléphone de s’authentifier.
Cliquer sur Sauvegarder
afin d’effectuer l’ajout
l’extension. Et comme toujours, après l’avoir sauvegardée, il ne faut
pas oublier de recharger la configuration.
Pour voir la liste des extensions, il faut cliquer sur le bouton menu en haut à droite vous pouvez alors voir toutes les extensions créés.
A ce stade, tous les téléphones peuvent communiquer les uns avec les autres en interne. On va alors s’occuper de les laisser sortir.
Appels sortants
Ajout des trunks
Les trunks sont les sorties par lesquels on peut appeler vers l’extérieur, dans notre cas, ce sont les ports FXO du HX4G, un par FAI. Les numéros d’extensions correspondants à ces sorties ont été configurées dans le HX4G.
Pour les prendre en compte, il faut les ajouter via le menu PBX / Externes / trunks et renseigner les informations suivantes :
- Description : description de la sortie, par exemple « sortie par free »
- Configuration pour appels sortants (Peer)
- Nom d’utilisateur sortant : noms d’utilisateur configuré sur le HX4G,
- Hôte: adresse IP du trunk, i.e. l’IP du boitier HX4G,
- Mot de passe local : mot de passe que le trunk utilise pour s’authentifier, également configuré sur le HX4G,
- Autoriser les appels entrants : qu’on met à oui, ça sera utile pour plus tard.
Comme pour les extensions, il est possible de voir la liste des trunks configurés en utilisant le petit bouton menu à droite . Une fois sauvegardée, il faut recharger la configuration.
Tout ça n’est pas suffisant pour vraiment utiliser les lignes externes, il est en effet nécessaire de configurer des routes sortantes et entrantes.
Routes sortantes
Une fois les trunks configurés, il est nécessaire de dire à VitalPBX comment transférer les appels externes, ceux qui ne correspondent à aucune extension.
Pour cela, il faut créer une route sortante, via le menu PBX / Externes / Outbound Routes. Les champs à renseigner sont les suivants :
- Description : nom de la route pour la reconnaitre, par exemple outside,
- Lignes (trunks) : la liste des trunks et leur ordre d’utilisation,
- Motifs (schémas) de numéros : expression pour filtrer les numéros concernés et manipulations à apporter (ajout / suppression d’un préfix).
Notre cas est très simple, tout est redirigé vers le HX4G, on remplis
donc uniquement le Motif avec .
.
En version 3.0, les changements sont minimes, il y a une quatrième colonne (CID Pattern) que nous n’utiliserons pas (et les noms de nos sorties qui ont changé depuis).
Encore une fois, le petit bouton menu pour voir tout ce que l’on a configuré (). Et recharger la configuration.
Les téléphones peuvent alors non seulement communiquer entre eux, mais aussi sortir vers l’extérieur. On peut maintenant s’occuper des appels entrants.
Appels entrants
Identification des extensions
Avant de pouvoir utiliser les trunks, il est nécessaire d’adapter le comportement d’Asterix à notre installation, qui possède deux trunks sur la même machine, et donc la même adresse IP.
En effet, lors de la réception de l’appel, Asterix va utiliser le
champ from:
, contenant l’adresse IP, pour déterminer quel
utilisateur émet l’appel (i.e. quel trunk). Dans notre cas,
Asterix trouvera toujours la même adresse, et donc toujours le même
trunk (le premier). Pour la deuxième ligne, Asterix considérera que
l’authentification (deuxième trunk) ne correspond pas à l’extension de
l’appel (premier trunk) et émettra une erreur, refusant de gérer
l’appel.
Notre passerelle HX4G permet la réutilisation des mêmes identifiants pour authentifier toutes les extensions, mais VitalPBX refuse d’utilise le même nom d’utilisateur pour plusieurs trunks.
Pour résoudre ce problème, il faut modifier le paramétrage d’Asterix,
via le menu Params / Paramètres technolgie / Paramètres SIP,
dans l’onglet personnalisation. On cliquer sur
Ajouter
puis on renseigne les deux champs :
- Paramètre : match_auth_username
- Valeur : yes
Maintenant, Asterix sera capable d’authentifier et d’attribuer les appels à la bonne ligne.
Routes entrantes
Comme les lignes trunks ne sont pas des extensions, les
numéros composés par ceux-ci (qu’on appellera par la suite
DID
) n’arrivent pas spontanément sur les extensions
correspondantes. Que ce soit les numéros réellement composés par les
correspondants (lorsque l’IPBX est directement branché à un port FXO),
ou celui utilisé par notre passerelle HX4G (et renseigné dans son
paramètre Number des trunks).
Même si le HX4G spécifie vouloir joindre le numéro 202 et que celui-ci corresponde à une extension, l’appel vient de l’extérieur (i.e. ne vient pas d’une extension), il sera donc refusé.
La plupart des serveurs SIP nécessiteront de configurer des
routes entrantes pour spécifier quels DID
correspondent à quelles extensions. C’est ce qui est d’ailleurs
conseillé dans la documentation de notre passerelle. VitalPBX dispose du
même type d’écran que les autres (PBX / Externes / Routes
Sortantes) mais nous n’allons pas l’utiliser directement.
En effet, il est possible de configurer chaque extension pour lui
spécifier les DID
auxquels elle correspond. Une route
entrante sera alors crée. L’avantage de passer par l’extension est
que la règle lui sera associée directement.
Pour cela, il faut passer par PBX / Extensions/ Extensions. Puis, via l’icône de menu , choisir l’extension qui recevra l’appel et naviguer dans l’onglet Incoming Routes. On y renseigne alors les champs suivants :
- Description : quelque chose qui permette de la retrouver parmi les autres,
- Schéma SDA : numéro destination de l’appel, habituellement le numéro de téléphone, mais puisque nous avons la passerelle HX4G, il s’agit du paramètre Number du trunk correspondant.
- Schéma CID : numéro de l’appelant si on souhaite faire une route plus spécifique suivant l’émetteur (ce qui n’est pas notre cas).
Il faut ensuite cliquer sur le bouton Appliquer
pour
ajouter cette règle et comme d’habitude, recharger la configuration.
Pour aller plus loin
La configuration de VitalPBX nous a permis d’interconnecter tous nos équipements : les lignes analogiques externes et internes fournies par la passerelle d’un côté et nos téléphones IP de l’autre.
Nous n’en avons pas parlé, mais l’utilisation d’un client SIP sur nos smartphone (ainsi que l’ajout d’une extension dédiée) leur permet d’utiliser les lignes de téléphones fixes (et donc leur tarification) pour leurs appels.
Au final, nous disposons maintenant d’un réseau de téléphonie moderne avec toutes les fonctionnalités qu’on peut en attendre :-)