Relier FreePBX et Home Assistant

Une fois FreePBX installé, on va le lier à Home Assistant.

Ajouter un Manager Asterisk

Autoriser l’IP de Home Assistant

192.168.1.200 dans mon exemple

Corriger bindadrr dans /etc/asterisk/manager.conf

Il suffit d’éditer le fichier /etc/asterisk/manager.conf depuis une ligne de commande SSH

nano /etc/asterisk/manager.conf

remplacer bindaddr = 127.0.0.1 par bindaddr = 0.0.0.0

Facultatif, si on veut, on peut vérifier que Manager (AMI) indique bien Yes en allant dans la console de Asterisk :

asterisk -r

puis en en le questionnant :

manager show settings

Installer l’intégration Asterisk-hass-integration

Tout est expliqué dans la doc de l’extension

https://github.com/TECH7Fox/asterisk-hass-integration

Ajouter l’intégration Asterisk

Identifier votre utilisateur sur l’intégration

Et là ? c’est le drame

Pour une raison inconnue, depuis la version 1.x de l’intégration, les équipements ne remontent pas :

On va donc changer de version et repasser à la version v0.9.8

On relance Home Assistant

Gestion des appareils et entités

Et voilà, à la relance, les appareils (1 serveur + 3 lignes) et les entités qui correspondent sont apparues.

Il existe une Carte dédiée 

Aller dans HACS puis dépôt personnaliser, on peut trouver cette carte (du même auteur que l’intégration)

https://github.com/TECH7Fox/sip-hass-card

J’ai testé cette carte mais elle permet de passer et recevoir des appels, cela ne m’intéresse pas, ma domotique ne téléphone pas. Je vais utiliser les informations fournies par l’intégration Asterisk-hass-integration pour détecter un appel.

Quelles informations sont récupérées ?

Le serveur Asterisk

Il me donne deux informations, le premier est à “Success”, on est très content d’avoir réussi, à ce stade je ne sais pas quoi, mais tant que cela reste à Success, j’imagine que c’est bon signe. Pour la seconde information, Lastest DTMF Signal, j’ai appuyé sur toutes les touches pour essayer de voir à quoi cela fait référence, on verra dans le temps. Je viendrai compléter ce texte si je comprends.

Enfin, on voit que mes trois lignes 100, 201 et 203 sont bien connectées au serveur, très bien.

Les lignes

Callee

Dans cette entité, on va retrouver le numéro du correspondant.

Le numéro de l’appelant chez le destinataire et le numéro du destinataire chez l’appelant.

Channel

Cette entité donne une information de lien. Si 100 téléphone à 201, toutes les deux auront le même channel, on sait qu’ils sont en communication.

Registered

Evidemment, c’est pour vérifier que l’extension est bien identifiée et connectée au serveur.

C’est intéressant d’avoir cela pour pouvoir signaler une déconnexion. Quand l’extension n’est plus enregistrée, c’est la valeur “Désactivé” qui apparait. J’ai noté que le passage à désactivé est assez rapide si on déconnecte un équipement.

State 

Peut prendre les valeurs :

UNKNOWN | NOT_INUSE | INUSE | BUSY | INVALID | UNAVAILABLE | RINGING | RINGINUSE | ONHOLD

Mais globalement, j’ai utilisé :

  • RINGING quand ça sonne
  • INUSE quand je suis en communication (ou quand l’appelant fait sonner)
  • NOT_INUSE le reste du temps

Quelles applications concrètes maintenant ?

Si comme chez moi une des lignes est le portier, on peut imaginer :

  • Relayer la sonnette sur le portier par une musique, un message Alexa ou toute information sonore ou lumineuse.
  • A l’appui sur la sonnette, allumer les lumières extérieures
  • S’il n’y a personne a la maison, recevoir une notification sur le téléphone avec une photo de le caméra de l’entrée