Refonte du plugin

Bonjour a tous,

N’arrivant pas à obtenir des résultats sur le plugin, j’ai initié une refonte complète.

J’ai mis de côté le développement PHP du protocole SIP et j’ai tout migrer sur Python en utilisant une librairie déjà créé.

Les premiers résultats de la beta mes semble plutôt encourageant et j’aimerais avoir vos retours sur vos différents intégration

Dans cette version il est possible ou sera je n’ai pas testé d’utiliser le dtmf pour exécuter des actions.
Un Texte to speach est intégré également pour la diffusion des messages audio. A tester également

Je pense que pour les nouveautés, je vais faire un stop de manière à stabiliser cette version et recueillir vos retours.

Par la suite je pense
à Speach to text (Google?)
Au couplage avec le interaction Jeedom
A vos propositions…

N’hésitez pas à me faire vos retours directement sur le fil de se poste

Bonne journée

Hello,

Je ne connais pas le plugin, mais suis intéressé pour faire des tests si besoin.

Si j’ai bien compris on connecte jeedom sur notre serveur SIP et on peut remonter:

Etat connexion
Etat appel
Raccrocher
Appel en cours
Sonnerie
Décrocher
Appel

Mais à ton la possibilité de faire de l’audio bidirectionnel? Une communication d’un interlocuteur à un autre ?

Merci

Mes réponses si dessus

Non a quoi tu penses ?

Non c’est interlocuteur a Jeedom

ok, donc le plugin récupére les états des clients SIP connectés sur le serveur SIP type asterisk juste ?

Un truc type soft phone

Pour reprendre le cas de l’audio bi directionnel avec un use case concret (c’est ma recherche de faisabilité qui m’a conduit ici, je ne suis pas encore détenteur de ton plugin), je pensais utiliser ton plugin pour permettre de répondre à l’interphone Doorbird via une tablette par exemple.

En gros -
Sonnerie déclenche un pop up SIP sur la tablette avec la caméra de l’interphone (géré par autres plugins)
On « décroche » - connection au serveur SIP - et on parle avec le visiteur en bi directionnel.

Tout est faisable avec Jeedom sauf l’audio bidirectionnel à ce jour à ma connaissance.

1 « J'aime »

Je ne connais absolument pas la faisabilité d’une telle fonctionnalité sur jeedom et je parle en tant que noob total.
J’ai fais des tests sur une VM en y installant un serveur Pbx Asterisk est en y déclarant des clients softs phones (3cx phones, x-lite), et la communication fonctionne nickel entre les téléphones virtuels SIP.
De mon point de vue de noob un clients soft phone SIP, c’est la même chose qu’un portier avec du SIP juste?
Sachant que Asterisk peut être docké il y a peut être moyen de faire un truc?

Si un spécialiste de la Voip peut éclairer ma lanterne sur ce sujet.
Une telle fonctionnalité sur notre jeedom adorée serait une tuerie.

@mika-nt28 tu en penses quoi?

Pour moi passer par Jeedom pour communiquer directement n’a pas d’intérêt autant utiliser les applications qui peuvent le faire.
L’objectif est de rendre disponible les fonctions de Jeedom a travers le SIP.
Plein de fonction peuvent être pensée
Autorisation vocal pour accès dtmf,…

A l’époque sur Lifedomus ils avaient dev un plugin Mobotix, qui intégrait directement un bouton pour décrocher/racrocher et un bouton pour parler/entendre l’interlocuteur.
Il suffisait d’entrer l’ip local du Mobotix.

Tu penses que ça fonctionnait comment techniquement?

Merci

Faut un intégration JS
C’est possible mais pas évident

1 « J'aime »

Hello,

Depuis ton post je fais plein de tests sur la Voip, une interrogation me vient, tu as vu que le protocole SIP, laisse peut à peut sa place au PJSIP:

C’est le cas sur les PBX comme Asterisk ou le chan_SIP à été remplacé depuis la version 15 par le chan_PJSIP.

Je ne sais pas si cela entraine des changements au niveau de ton plugin le port d’écoute est toujours le même 5060.

Bonjour

Non pour moi ça ne change pas vraiment.
Mon Astérix est configuré en PJSIP et fonctionne avec le plugin.

Pour le moment je me prends la tête sur le tts a convertir dans les format transporté PCMU ou PCMA
J’ai toute les briques qui me font de la résistance et comme d’habitude je manque de temps.

Dans mes recherches je suis tombé sur une librairie de Speach to text Google qui est facilement intégrable au plugin qui si je trouve un peu de temps sera intégré à la prochaine beta (connecter au interaction Jeedom).
Ce qui permettrait de demander à Jeedom directement les informations et ne pas avoir a configurer des actions dtmf

Bonjour,

PJSIP est plutôt une librairie multi-langage, qui implémente entre autre protocole le SIP plutôt ?

PJSIP is a free and open source multimedia communication library written in C with high level API in C, C++, Java, C#, and Python languages. It implements standard based protocols such as SIP, SDP, RTP, STUN, TURN, and ICE

Bonsoir,

J’ai supprimé l’ancienne version et installé la nouvelle, mais le demon de démarre pas.
Je n’ai pas grand chose dans les logs ou alors je regarde au mauvais endroit

@Doublehh visiblement l’enregistrement ne se fait pas.
Comment a tu configurer le plugin ?
Tu utilises quel serveur SIP?

Bonsoir,

J’ai un serveur 3CX que j’utilisais déjà avant avec l’ancienne version du client SIP

image



Le deamon ne démarre pas

Quels sont les log?

[2023-09-23 13:05:04.472][INFO] : Start Face Detection Daemon for Jeedom plugin
[2023-09-23 13:05:04.472][INFO] : Log level : info
[2023-09-23 13:05:04.472][INFO] : PID file : /tmp/jeedom/clientSIP/clientSIP_349.pid
[2023-09-23 13:05:04.473][INFO] : Apikey : 3k*******************************************RwJ27
[2023-09-23 13:05:04.473][INFO] : Callback : https://127.0.0.1:443/plugins/clientSIP/core/php/callback.php
[2023-09-23 13:05:04.473][INFO] : Cycle : 0.3
[2023-09-23 13:05:04.473][INFO] : Deamon Socket connexion : 127.0.0.1:9091
[2023-09-23 13:05:04.473][INFO] : Server connexion : O*****FL:gK****ho@192.168.111.6:5060
[2023-09-23 13:05:04.473][INFO] : Client connexion : 192.168.111.6:5060

Hello @mika-nt28

je trouve ton initiative super!
Je suis en train de me mettre au SIP dans l’objectif de mettre en place un portier et des moniteurs SIP.
Je viens de m’installer un serveur Asterisk sur mon NAS sous forme de container Docker.
Je suis partant pour tester le plug-in et ses évolutions.

Par contre j’ai un soucis sur l’installation des dépendances avec la version stable.
Faut-il tester la beta?

(ClientSIP_packages.log):

  • echo ‹ *Begin of package installation ›
    *Begin of package installation
  • touch /tmp/jeedom_install_in_progress_clientSIP
  • echo 1
  • echo 2
    ++ awk ‹ $1 <= 4 ›
    ++ cut -f 2-
    ++ find /usr/local/lib/python2.7/dist-packages/ /usr/local/lib/python3.7/dist-packages/ -mindepth 1 -maxdepth 1 -type d -exec du -ks ‹ {} › +
  • RESULTTODELETE=
    ++ echo ‹  ›
    ++ sed ‹ s, ,\ ,g ›
  • RESULTTODELETE2=
  • xargs rm -rf
  • echo ‹  ›
  • echo 3
  • sudo pip3 cache purge
    sudo: pip3: command not found
  • echo 4
  • sudo pip3 install --upgrade pip
    sudo: pip3: command not found
  • echo 5
  • sudo pip3 install --force-reinstall --upgrade requests
    sudo: pip3: command not found
  • echo 6
  • sudo pip3 install --force-reinstall --upgrade pyVoIP
    sudo: pip3: command not found
  • echo 7
  • sudo pip3 install --force-reinstall --upgrade speechrecognition
    sudo: pip3: command not found
  • echo 8
  • sudo pip3 install --force-reinstall --upgrade pydub
    sudo: pip3: command not found
  • echo 9
  • php /var/www/html/core/class/…/php/jeecli.php plugin dependancy_end clientSIP
    PHP Warning: PHP Startup: Unable to load dynamic library ‹ mosquitto.so › (tried: /usr/lib/php/20180731/mosquitto.so (/usr/lib/php/20180731/mosquitto.so: cannot open shared object file: No such file or directory), /usr/lib/php/20180731/mosquitto.so.so (/usr/lib/php/20180731/mosquitto.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
  • rm /tmp/jeedom_install_in_progress_clientSIP
  • echo ‹ *End of package installation ›
    *End of package installation

Puis lors du démarrage du démon (ClientSIP.log):
Traceback (most recent call last):
File « /var/www/html/plugins/clientSIP/core/python/clientSIP.py », line 13, in
import numpy as np
ModuleNotFoundError: No module named ‹ numpy ›

Une idée?
J’ai vu dans un autre post qu’il fallait commenter l’include de la lib mosquitto dans php.ini, mais cela n’a pas mieux fontionné, je suis donc revenu en arrière.

J’ai en gros le même cas d’usage que toi : connecter un portier connecté en IP à des moniteurs IP qui pourraient être des tablettes (Android ou iOS).
A savoir que tu peux déjà faire cela grâce à des clients SIP comme softphone, zoiper, SIPDroid, à installer sur la tablette… mais là tu ne gères que la partie échange audio/vidéo de la communication.
Pour déclencher l’ouverture d’une gâche électrique sur le portier par exemple, il faudrait pouvoir détecter l’évènement de communication sur Jeedom, puis renvoyer une commande via MQTT par exemple (un certain nombre de portier IP comme les Axis, 2N, … supporte ce protocole).
Mais dans ce cas 2 interfaces différentes sur la tablette pour interagir avec le portier : l’application Softphone pour l’échange SIP et une application Jeedom pour la partie ouverture de gâche…

Je réfléchi à une solution de ce type dans le post Solution de visiophonie IP DIY ouverte - #23 par BeauFort9476, si vous avez des idées…