Configuration du serveur SIP VitalPBX

aryliin

25 mars 2019

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.

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

Nous avons fait le tour des IPBX proposés sur le net… Le choix est large. 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 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 HTTPS1. 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).

Création du super utilisateur

Le système demande en tout premier lieu de configurer le mot de passe administrateur de l’interface web. 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

création du mot de passe administrateur

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 (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 pop_up (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ème2.

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. 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 celà, il faut créer une route sortante, via le menu PBX / Externes / Outbound Routes3. 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

Routes sortantes

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 extentions, 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.

Conclusion

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 de l'extension parmi les autres) 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 :-)

Pour aller plus loin

Configuration de téléphones IP-8815
1 avril 2019 Maintenant que nous avons deux lignes téléphoniques et un IPBX pour les gouverner toutes, on va pouvoir se la jouer pro avec des téléphones SIP.
Configurer la présentation du numéro
8 avril 2019 Recevoir les appels extérieurs, c'est bien, mais savoir qui nous appelle, c'est mieux. C'est ce que nous allons configurer aujourd'hui.
Configurer la messagerie vocale
15 avril 2019 Lors d'un appel entrant, faire sonner des téléphones, c'est bien. Avoir une boite vocale, c'est mieux. Et transmettre les messages par mail ? C'est ce que nous allons configurer aujourd'hui.
Cumuler deux connexions internet
04 février 2019 Maintenant que nous avons deux accès à Internet, autant les utiliser conjointement. La fibre laissant sur place l'ADSL, cette dernière nous servira de connexion de secours.
Configurer la blacklist sur VitalPBX

16 septembre 2019 Eviter les appels indésirables en blacklistant des numéros avec VitalPBX, c'est ce que nous vous montrons aujourd'hui.

Un test de Turing via VitalPBX pour éviter les robots d'appel

23 septembre 2019 Après s'être mis sur liste rouge, sur BLOCTEL et avoir fait une liste noire, nous vous présentons la technique ultime pour détecter et éviter les robots d'appel pour en finir avec le démarchage.


  1. Il est possible de forcer la connexion HTTPS (via Admin / HTTP Server et en cliquant sur le bouton correspondant) mais il n'est pas possible de fournir son certificat. VitalPBX ne permet que de les auto-signer (pas bien) ou de passer par letsencrypt (et il faut alors ouvrir l'IPBX à internet, ce qui n'est pas forcément mieux).

  2. venant de l'anglais System General, ça ne s'invente pas.

  3. également non traduit.