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