Configuration du serveur SIP VitalPBX

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.

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.

Geralt @ pixabay

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.

L’installation de VitalPBX se fait via un iso disponible sur leur site. Il s’installe comme n’importe quel Linux. La configuration se fait via une interface web, sur laquelle il faut configurer les extensions et les trunks.

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).

création du mot de passe administrateur (2.3)
création du mot de passe administrateur (2.3)
création du mot de passe administrateur (3.0)
création du mot de passe administrateur (3.0)

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.

pop-up d'enregistrement
pop-up d'enregistrement

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.

Menu utilisateur
Menu utilisateur

Ce menu ouvre une _popup (certains diront une modale) nous permettant de choisir la langue.

Choix de la langue
Choix de 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 :

Configuration SIP
Configuration SIP

Pour appliquer le changement, il faut d'abord sauvegarder la configuration (bouton sauvegarder) puis la recharger (bouton avec deux flèches rouges en haut).

rechargement de la configuration
rechargement de la configuration

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.

Mise en français
Mise en 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:

interface d'ajout d'une extension
interface d'ajout d'une extension

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.

rechargement de la configuration
rechargement de 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.

liste des extensions
liste des extensions

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 chez RED et un chez Free. 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 :

création d'un trunk
création d'un trunk

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.

rechargement de la configuration
rechargement de 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 :

Notre cas est très simple, tout est redirigé vers le HX4G, on remplis donc uniquement le Motif avec ..

Routes sortantes (2.3)
Routes sortantes (2.3)

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).

Routes sortantes (3.0)
Routes sortantes (3.0)

Encore une fois, le petit bouton menu pour voir tout ce que l’on a configuré (bouton menu). Et recharger la configuration.

rechargement de la configuration
rechargement de 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 :

ajout de paramètres
ajout de paramètres

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 :

configuration des routes entrantes
configuration des routes entrantes

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 :-)