Mot-clé - voip

Fil des billets

vendredi 18 décembre 2015

Asterisk : automatiser un redémarrage hebdomadaire

Pour forcer un redémarrage hebdomadaire d'Asterisk, vous pouvez utiliser la commande suivante :

/usr/sbin/asterisk -r -x "core restart gracefully"

ou encore

/usr/sbin/asterisk -r -x "core restart now"

si vous ne voulez pas attendre la fin des appels en cours (cela provoquera une coupure des appels en cours !)

Pour que le redémarrage s'effectue une fois par semaine, à 2h52 du matin, voici la ligne que vous pourrez introduire dans /etc/crontab :

25 2    * * 7   root    /usr/sbin/asterisk -r -x "core restart gracefully"

Xivo/Asterisk, message audio personnalisé pour la messagerie

Si, comme moi, vous avez longuement cherché le moyen de modifier le message d'absence dans l'interface de Xivo, ne cherchez plus ! Il se paramètre très facilement sans passer par l'interface graphique en plaçant le fichier .wav adapté à cet emplacement :

/var/spool/asterisk/voicemail/contexte_du_client/numéro_boite_vocale/unavail.wav

Il suffit de le savoir !

samedi 29 août 2015

Xivo, Polycom IP 7000 et DTMF

Pour que le DTMF d'une pieuvre Polycom IP 7000 fonctionne avec Xivo, il faut forcer l'usage du DTMF selon la RFC 2833 tel que ci-dessous :

2015-08-27_15_16_23-XiVO_-__xivo_.png

samedi 15 août 2015

Xivo et extensions Snom D715 : une intégration fort efficace

Cette article fait suite aux précédents sur l'installation et le paramétrage de Xivo (ici, ici et ici) : nous allons décrire ici l'installation des téléphones Snom D715.

Les téléphones Snom D715

La société Snom est une société allemande (il est sympathique de faire travailler nos voisins européens), elle a conçu et distribue le Snom D715 : un appareil de très bonne facture avec un excellent rapport qualité prix.

20150815-Snom-D715.jpg

Brièvement, la qualité du son est excellente, les finitions sont bonnes et le téléphone dégage dans l'ensemble une apparence de robustesse et de professionnalisme. Il accepte bien sûr une alimentation POE et dispose d'un switch intégré Gigabit qui permet de relier à des réseaux rapides mais également d'étendre le réseau à un ordinateur proche. Enfin, il dispose d'une prise pour casque, d'un port USB (pour les éventuelles extensions, mais qui délivre aussi suffisamment de courant pour recharger un téléphone portable) et est fourni avec un câble RJ45 de catégorie 6 et un support solide en plastique.

Comme il est nativement supporté par Xivo, c'est un excellent choix pour déployer un réseau VOIP à un coût acceptable : environ 90€ HT par poste.

L'installation chez Xivo

Installer le plugin Xivo pour Snom

La première étape est d'installer le plugin 'provisionning' pour les téléphones Snom. Cela se fait aisément dans Configuration > Provisioning > Plugins, puis on clique sur la petite icône 'planète terre' pour mettre à jour la liste des plugins depuis internet et, une fois les plugins visibles, on choisit "xivo-snom" puis 715-fw (correspondants aux Snom 715 & D715). Dès lors, Xivo saura communiquer avec les téléphones Snom.

Préparer un modèle de configuration qui sera déployé sur tout téléphone qui se connectera au système de provisioning Snom

Dans Configuration > Provisioning > Template device, on peut paramétrer les options qui seront données par défaut aux téléphones Snom : langue, fuseau horaire, protocole, adresse du serveur NTP et, important, les noms d'utilisateurs et mot de passe qui seront déployés sur chaque téléphone. Dans l'onglet 'Advanced', on peut alors encore un peu plus loin dans le paramétrage des téléphones.

20150815-template-device.png

Si vous comptez effectuer le provisioning avec le module DHCP de Xivo, vous pouvez sans doute vous arrêter là. En revanche, si vous escomptez ne pas utiliser le DHCP de Xivo (par exemple car vos téléphones sont sur votre réseau principal et vous ne souhaitez pas remplacer le DHCP par celui de Xivo) et préférez le provisioning http (i.e. que les téléphones interrogent le serveur de paramétrage), alors il est nécessaire de faire une petite modification supplémentaire.

Dans /var/lib/xivo-provd/plugins/xivo-snom-*/var/tftpboot/snom-general.xml, on peut trouver cette ligne :

<provisioning_order perm="R">dhcp:stop</provisioning_order>

Elle signifie que l'on demande au téléphone d'arrêter toute autre procédure après avoir reçu une réponse (même incomplète) d'un DHCP. Ce paramétrage sera transféré aux téléphones lorsqu'ils viendront se configurer auprès de Xivo.

On peut remplacer cette ligne par :

<provisioning_order perm="R">redirection:proceed dhcp:proceed</provisioning_order>

qui ordonnera au téléphone de ne pas arrêter sa configuration après l'obtention DHCP.

Démarrer les téléphones et leur indiquer l'adresse du serveur de configuration

On peut alors démarrer chaque téléphone, se connecter à l'interface de configuration du téléphone via HTTP, se rendre dans On the Setup > Advanced > Update et saisir ce paramétrage :

config_server_snom.png

On pourra également modifier le paramétrage "allow rtp on mute" tel que détaillé ici. J'imagine, mais je n'ai pas testé, que ce paramétrage peut également être paramétré dans snom-general.xml avec une ligne qui ressemblerait à :

<allow_rtp_on_mute perm="PERMISSIONFLAG">on</allow_rtp_on_mute> 

On re-démarre alors les téléphones. Ils ont se connecter à Xivo, se configurer et bientôt ils apparaîtront dans la liste des périphériques connectés à Xivo.

Et ensuite ?

Il est alors possible de créer les utilisateurs, de leur attribuer des lignes et des terminaisons, et hop le tour est joué !

vendredi 14 août 2015

Xivo, activer l'annuaire inversé pour que les téléphones affichent un nom plutôt qu'un numéro

Il est souvent plus commode de voir s'afficher le nom de son correspondant plutôt qu'un numéro. Cela est bien sûr possible sur Xivo (au moins avec les terminaisons VOIP compatibles, mais je subodore non testé cependant que cela fonctionnerait pour toutes).

Nous allons voir ici comment faire.

Sur les téléphones

Il n'y a rien à faire :-)

Sur le serveur Xivo

Nous allons procéder en 3 temps :

  1. nous allons d'abord activer la fonction d'annuaire inversée sur Xivo en précisant quel(s) annuaires doivent être consultés pour la fonctionnalité
  2. nous allons ensuite paramétrer les champs qui seront interrogés pour la requête inversée
  3. et enfin nous définirons le champ retourné pour affichage si le numéro est reconnu*

Activer l'annuaire inversé

Il faut se rendre dans Services > CTI server > Directories > Reverse directories : 20150804-xivo-reverse.png puis faire glisser vers la boîte de droite les annuaires que l'on veut voir utilisés pour la fonction d'annuaire inversé.

Paramétrer les champs utilisés pour la requête inversée

Dans Services > CTI server > Directories > Definitions, on choisit de modifier l'annuaire xivodir : 20150804-xivo-reverse-2.png

Dans le champ Match reverse directories, on spécifie chaque champ qui est utilisé pour retrouver le numéro de téléphone de l'appelant, par ex.

phonebooknumber.office.number,phonebooknumber.mobile.number,phonebooknumber.home.number

Attention ! Il est très important d'avoir une ligne dans "Mapped fields" pour chacun des champs ! Ainsi, si Match reverse directories contient "phonebooknumber.office.number,phonebooknumber.mobile.number,phonebooknumber.home.number" alors il faut voir une ligne pour chacun dans la liste ci-dessous. On peut ajouter une nouvelle ligne à l'aide du bouton plus.

image4144.png

Paramétrer le champ affiché

Lorsqu'un numéro est trouvé dans l'annuaire, c'est le contenu du champ "reverse" qui est envoyé au téléphone pour affichage. Par défaut, "reverse" pointe vers "phonebook.fullname" : vous pouvez modifier ce champ à votre gré.

Redémarrer les services pour la bonne forme

Pour la bonne ferme, on pourra redémarrer les services en charge des annuaires :

service xivo-ctid restart
service xivo-agid restart

Xivo, ajouter un annuaire consultable depuis les téléphones

Il est pratique de pouvoir consulter un annuaire directement depuis des postes téléphoniques (VOIP) connectés au PBX Xivo.

Sur les postes téléphoniques

Si les téléphones utilisés sont compatibles avec Xivo (et sont auto-provisionnés, i.e. qu'ils sont configurés automatiquement par Xivo), alors l'accès à l'annuaire doit être fonctionnel très facilement. Il faudra bien sûr localiser, si elle existe, la touche du téléphone qui permet d'ouvrir l'annuaire. Aucune action spécifique n'est à effectuer.

Sur le serveur Xivo

Nous allons commencer par autoriser une plage d'IPs à se connecter à l'annuaire Xivo : pour cela, il faut se rendre dans IPBX > General settings > Phonebook. Puis cliquer sur le signe '+' pour ajouter un hôte à la liste des hôtes autorisés à se connecter à l'annuaire. On peut alors ajouter l'adresse IP d'un téléphone autorisé à afficher l'annuaire. Alternativement, on peut ajouter toute une plage d'IP par ex. 192.168.1.0 pour tous les postes dont l'IP appartiendra à la plage 192.168.1.x.

20150814-xivo-open-phonebook.png

La deuxième étape consiste à peupler d'adresses l'annuaire. Il faut aller dans IPBX Services > Phonebook et cliquer sur le '+' visible dans la barre bleue.

20150814-xivo-add-in-phonebook.png et 20150814-xivo-add-in-phonebook-2.png

On peut alors ajouter une entrée manuellement ou bien importer une liste à partir d'un fichier CSV. Le fichier CSV devra contenir une première ligne d'en-têtes donnant la teneur de chaque colonne, les champs devront être séparés par |. La liste des champs obligatoires (il y en a) et autorisés se trouve ici : http://xivo.readthedocs.org/en/latest/administration/phonebook.html.

Et voilà, les téléphones VOIP connectés à Xivo peuvent désormais consulter l'annuaire téléphonique !

Xivo, un PBX libre et français : installation et premiers paramétrages

Xivo est un logiciel libre d'autocommutateur privé (PBX) basé sur Asterisk et Debian, et (cerise sur le gateau) développé par des français : que des bons arguments. Nous allons détailler ici l'installation de Xivo et quelques paramétrages pour bien démarrer.

logo-xivo.jpg

Installation à partir de l'iso Xivo sur une machine physique

La dernière version peut être téléchargée sur le site de Xivo : http://www.xivo.io/. Une fois placée sur une clé USB ou tout autre périphérique bootable, on peut lancer le processus d'installation qui est basé sur l'installateur de Debian.

Si Xivo ne m'a apporté que du bonheur une fois installé, il faut noter que l'installation a été quelque peu difficile. Avec l'installateur non graphique, en fin d'installation, on a l'impression que l'installateur se fige (souvent sur console-setup à 97%). Ce bug est déjà rapporté ici. Toutefois, dans mon expérience, le gel n'est qu'apparent : si l'on exécute Ctrl+Alt+F1 puis Ctrl+Alt+F2 on rafraîchit manuellement l'affichage. Clairement pas idéal, mais au moins cela permet d'achever l'installation.

Il se lit sur internet que l'installation ne pose pas de problème en mode graphique, je recommanderai donc ce choix par défaut à ceux qui veulent tenter l'aventure !

20150814-xivo-install.png

Il est également possible d'installer Xivo depuis une installation fraîche de Debian Wheezy en suivant les instructions détaillées ici. Cela fonctionne plutôt bien, cela me semble une bonne alternative !

Et pour le test ?

Xivo se déploie sans peine sur Virtualbox (4.3.30_Debian) à condition d'installer une version minimale de Debian Wheezy puis d'exécuter le script d'installation tel que détaillé ici. Pratique !

Premier démarrage

Là encore, mon premier démarrage n'a pas été aussi facile qu'espéré. Après plusieurs essais infructueux, je présente ici la suite d'actions qui a fonctionné chez moi. Notez que cela n'est pas tout à fait identique à la documentation officielle. Je vous conseille de suivre d'abord la documentation officielle et de n'utiliser ma petite "méthode" qu'en cas de besoin. Dans mon cas, le démon xivo-provd ne démarrait pas lors du premier démarrage de la machine ce qui bloquait la configuration avec l'interface web...

Au premier démarrage de la machine xivo, si nécessaire, on modifie la configuration réseau dans /etc/network/interfaces puis on affecte la valeur startup = yes dans /etc/default/xivo. Et on redémarre.

Une fois la machine à nouveau prête, on peut se connecter à l'interface d'administration de Xivo depuis une autre machine en saisissant l'adresse http://192.168.a.b où 192.168.a.b est l'adresse IP de la machine Xivo.

Et on peut alors se laisser guider dans la configuration avec l'utilitaire assisté.

wizard_step4_configuration.png

Quelques ressources pour bien démarrer

Paramétrer un SIP trunk

Si vous avez l'ambition d'atteindre l'extérieur depuis les postes connectés au PBX Xivo, il est probable que vous souhaitiez connecter un SIP trunk. Tout se passe dans IPBX > Trunk management > SIP protocol.

Pour ce faire, vous pouvez suivre cette documentation : http://xivo.readthedocs.org/en/latest/administration/interconnections/xivo_with_voip_provider.html

En sus des paramétrages évoqués, j'ai ajouté ces 2 options :

  • DTMF : RFC2833, cela a ensuite fonctionné sans souci avec un SIP trunk d'OVH
  • Monitoring : 2000ms, car la machine Xivo se trouve derrière un NAT

20150814-extra-params-xivo.png

Retrouver un mot de passe perdu

Si vous avez égaré le mot de passe d'accès à l'interface web de Xivo, pas de panique : cette commande exécutée en root sur la machine vous permettra de le retrouver :

sudo -u postgres psql -c 'select login, passwd from "user"' asterisk

mercredi 22 juillet 2015

Asterisk/Xivo et téléphones Snom, éviter la coupure de l'appel lors du passage en mode muet

Un certain nombre d'équipements VoIP disposent d'une fonctionnalité appelée "No RTP detection" qui permet de couper un appel devenu orphelin (i.e. avec perte des terminaisons). Un appel est jugé orphelin dès qu'aucun paquet RTP n'est détecté dans le canal pendant une durée donnée. Ainsi, avec Xivo/Asterisk et un téléphone Snom 715 (appel transitant par sip.ovh.fr), la communication se coupe dès que l'on passe plus 3 minutes en mode muet (ce qui est toutefois bien pratique dans une téléconférence). Cela peut également se produire lorsqu'un combiné dispose d'une "trop bonne" détection de silence et n'envoie aucun paquet pendant les moments de silence de l'un des interlocuteurs.

Pour régler ce problème, les téléphone Snom récents disposent d'une fonctionnalité ad hoc qui s'appelle : "allow rtp on mute". On la trouve dans l'interface d'administration du téléphone dans Paramètres avancés, Audio. Lorsque l'option est activée (elle ne l'est pas par défaut), le téléphone continue à envoyer des paquets RTP même lorsque le mode muet est sélectionné.

Et voilà, plus de déconnexion intempestive lors des appels via Asterisk !