Portier GDS3710

IMPORTANT : La version 1.0.5.6 du firmware n’est pas compatible avec le plugin. Les autres versions fonctionnent parfaitement.

Bonjour à tous,

J’ai développé un plugin qui permet l’intégration du portier GrandStream GDS3710 dans Jeedom. Il devrait d’ores et déjà être disponible sur le market .

Dans sa version actuelle il permet uniquement de récupérer les évènements provenant de votre portier et d’associer des actions à chacun de ces évènements.

Vous trouverez plus d’information dans la documentation : https://github.com/ripleyXLR8/jeedom-plugin-gds3710

Prochaines étapes : Intégration de l’API HTTP du portier.

En cas de soucis n’hésitez pas à me contacter sur ce topic… soyez indulgent c’est mon premier plugin Jeedom.

Bon test!

PS : Suite au changement de forum, voici le lien vers l’ancien thread : [Plugin Tiers][Sujet Principal] Portier GrandStream GDS3710 - Forum Communauté Jeedom

3 « J'aime »

J’ai rajouté le tag de ton plugin sur le post :wink:

2 « J'aime »

Salut @ripleyxlr8 et content de te lire ici.

Bonjour, j’ai une question à propos de ce portier.

Je prévois de faire changer mon portail d’accès à la maison, je voudrais avoir une ouverture pieton et une ouverture voiture, est-ce possible ?

Je voudrais également savoir ce qu’il faut faire pour que quand on appuie sur le bouton « bell » du visiophone, que cela appel par exemple le téléphone de la maison, ou un portable, ou mieux, faire sonner Alexa (on peut rever). Qu’est-il possible de faire et comment ? :slight_smile:

Merci

Bonjour,

@ripleyxlr8 est-ce que la version 1.0.7.8 (la dernière) est compatible avec le plugin ?

J’ai lu que tu avais commencé à implémenter un client sip dans le plugin, tu en es où pour ça ?

Merci :slight_smile:

Bonjour,

@ripleyxlr8 pour répondre à ma question de la semaine passée, la réponse est oui.

Edit : Le plugin est-il encore suivi ?

1 « J'aime »

Bonjour,

suite au problème que j’ai pour ajouter le portier dans une install propre Jeedom, j’ai contacté ripleyxlr8 qui m’a confirmé que cela venait de son plugin et qu’il allait regarder cela prochainement.

Voici le sujet que j’avais créer originellement:

Merci d’avance ripleyxlr8 ,

Excellent Dimanche,
Slts,
coconut_tree

Bonjour à tous,

J’ai poussé ces derniers jours un certain nombre de mise-à-jours pour le plugin et j’ai testé la compatibilité sur les derniers firmwares du GDS3710.

Au programme des mise-à-jours déjà publiées :

  • Comptabilité testée jusqu’au firmware : 10.0.7.8
  • Ajout d’une commande et d’un widget permettant de voir le dernier snapshot.
  • Ajout de nouveaux widgets pour la version mobile (Stream et LastSnapshot).
  • Amélioration des widgets existants (comptabilité V4 + amélioration de la stabilité).
  • Résolution de bugs pour ceux utilisant le mode Design.
  • Possibilité de renommer les commandes.
  • Résolution d’un bug bloquant l’apparition des options des scénarios.

Vu que le confinement me donne un peu temps… je vais continuer à travailler sur l’amélioration du plugin. Je vais rajouter quelques commandes permettant d’activer ou de désactiver le LDC, ainsi que de changer le mode du capteur et rajouter l’historiques des snapshot dans la version mobile du widget. Je vais également essayer de rationaliser la page « commandes » qui commencent à être sérieusement saturée) et mettre à jour les docs. Ca ca sera dans le version stable du plugin.

La version Beta elle se concentrera sur l’ajout des interactions SIP… je vous tiendrais au courant.

Si certains ont des bugs à signaler ou des suggestions pour des améliorations n’hésitez pas.

Richard

Nouvelle version mise-à-jour ce matin :

  • Ajout de la commande permettant l’activation et la désactivation du LDC (Lens Distortion Correction).
  • Mise-à-jour de la doc.

N’oubliez pas de sauvegarder vos équipements pour bénéficier de cette nouvelle commande.

Bonne journée.

Nouvelle version :

  • Ajout de la commande permettant le changement de mode du capteur (Normal, Low-Light, WDR).
  • Correction d’un bug sur la commande LDC.

Bonne journée.

Alors grosse mise-à-jour pour la version beta qui intègre maintenant un client SIP permettant de répondre au portier directement à partir du dashboard. Le serveur SIP externe est toujours nécessaire, mais je travaille à son éventuel intégration dans le plugin sous une forme simplifié.

Il y a quelques limitations sur lequel je vais travailler :

  • Le client SIP n’est disponible que lorsque le dashboard et que le widget de l’équipement sont affichés.
  • Il vous faut un serveur SIP supportant le websocket.

Alors pour ceux qui veulent tester cette fonctionnalité il faut quitter le monde feutré de la version stable et passer sur la version bêta. C’est une fonctionnalité en bêta donc il se peut des choses ne fonctionnent pas encore parfaitement mais j’ai besoin de vos tests et de vos retours pour finaliser la fonctionnalité. Je vous met un petit mode d’emploi plus bas pour faire un essais en attendant que la doc soit à jour.

1) Création de la nouvelle commande « SIP client »

Il suffit ensuite comme d’habitude de sauvegarder son équipement pour bénéficier d’une nouvelle commande « SIP client ». Vérifiez que la case « afficher » de la commande est bien coché.

2) Configuration de la commande

Rendez-vous ensuite dans l’onglet configuration de l’équipement pour configurer cette nouvelle commande. Il y a 5 champs à remplir.

Adresse du serveur SIP : L’adresse du websocket du serveur SIP. En général Il ne s’agit pas exactement de la même adresse que celle du serveur SIP classique. Pour info la mienne (base asterisk) est du type : wss://IP_DU_SERVEUR:PORT/ws . La plupart des serveurs SIP supportent le websocket donc ca ne devrait pas poser trop de problème. Il y a parfois un module à activer et des droits à donner aux différentes extensions pour pouvoir se connecter via le websocket.

URI du client SIP : Il s’agit de l’URI du client qu’utilisera le plugin pour se connecter. Elle doit être au format : sip:USER@IP_DU_SERVEUR . Il faudra bien sur que votre portier appel sur cette URI.

Mot-de-passe du client SIP : Le mot de passe correspondant à l’URI ci-dessus.

URI du portier SIP : L’URI de votre GDS sous la forme : sip:USER@IP_DU_SERVEUR. Il s’agit en fait de l’URI que l’on pourra appeler directement depuis le dashboard. Je n’ai pas encore codé de clavier donc pour l’instant l’URI que vous rentrez ici est la seule que vous pourrez appele.

Une fois que tout ça est configuré, il suffit d’enregistrer votre configuration et de vous rendre sur le dashboard.

3) Utilisation du client SIP

a) Vérification de la bonne configuration

Capture d’écran 2020-04-25 à 00.25.13

Si tout est bien configuré vous devriez avoir une icône verte « registered ». Si elle orange ou rouge, je vous invite à ouvert la console javascript et à regarder les lignes de debug du plugin.

b) Réception d’un appel

Quand le portier appel l’URI du client SIP une fenêtre s’ouvre vous permettant de refuser ou d’accepter l’appel. A noter que tous les postes peuvent apeller ce client pas seulement le portier.

Pour le premier appel, votre navigateur devrait vous demander l’autorisation d’accéder à votre micro puis la vidéo du portier devrait s’afficher, vous êtes alors en ligne.

c) Emission d’un appel

En cliquant sur l’icone verte « registered » vous avez la possibilité d’ouvrir la fenetre du client SIP et de cliquer sur appeler et de joindre votre portier directement.

Amusez vous bien!!

Salut

Au top cette nouvelle fonctionnalité ! Merci pour le travail :wink:

J’ai tout configuré, et j’ai bien l’icone vert « registered » cependant lorsque je decroche sur jeedom, je n’ai pas de son ni d’image et pas eu de popup m’invitant à autoriser le micro. ( je suis sous Chrome )

Aussi, lorsque j’appel le portier depuis Jeedom, rien ne se passe sur le GDS et pas d’image non plus.

Autre chose,au bout de quelques minutes, j’ai remarqué sur mon UCM que le client passait en indispo .Un ctrl+F5 sur Jeedom est ça repasse OK sur l’UCM

Voici les logs d’un appel du portier vers le client :

[2020-04-25 14:48:36][DEBUG] : Call to camera.php
[2020-04-25 14:48:36][DEBUG] : Config is :00xxxxxxxCD | 192.168.1.6 | xxxxxxxxx | GDS3710lDyTlHwNgZ | challenge
[2020-04-25 14:48:36][DEBUG] : Auth Request Response : <?xml version="1.0" encoding="UTF-8" ?><Configuration><ResCode>0</ResCode><RetMsg></RetMsg><ChallengeCode>3012c975exxxxxxxxxxxd0db79370</ChallengeCode><IDCode>TRJVNYSWTUD9AN79QCDN</IDCode></Configuration>
[2020-04-25 14:48:36][DEBUG] : Auth Challenge : SimpleXMLElement Object (     [ResCode] => 0     [RetMsg] => SimpleXMLElement Object         (         )      [ChallengeCode] => 3012c975ee3e66a433bd826d0db79370     [IDCode] => TRJVNYSWTUD9AN79QCDN )
[2020-04-25 14:48:36][DEBUG] : MJPEG url is : https://192.168.1.6/jpeg/stream?type=1&user=admin&authcode=891664xxxxxxxxxxxxx55819f3ca&idcode=TRJVNYxxxxxxxxN79QCDN
[2020-04-25 14:48:44][INFO] : Event received : sip:1004 | card: | date:2020-04-25 14:48:44 | type:504 | content:Call Log(Door Bell Call) | mac:000xxxxxxxxcd |
[2020-04-25 14:48:44][DEBUG] : MAC Address detected : 00xxxxxxxxdcd
[2020-04-25 14:48:44][DEBUG] : Type detected : 504
[2020-04-25 14:48:44][DEBUG] : Type : 504 is match the logicalID CallLogDoorBellCall
[2020-04-25 14:48:44][DEBUG] : Logical ID is : CallLogDoorBellCall
[2020-04-25 14:48:44][DEBUG] : Data is : {"mac":"000xxxxxxxcd","content":"Call Log(Door Bell Call)","type":"504","date":"2020-04-25 14:48:44","card":"","sip":"1004"}
[2020-04-25 14:48:44][DEBUG] : Commande CallLogDoorBellCall - 504 set to : {"mac":"000xxxxxxxcd","content":"Call Log(Door Bell Call)","type":"504","date":"2020-04-25 14:48:44","card":"","sip":"1004"}
[2020-04-25 14:48:44][DEBUG] : Last event set to : {"mac":"000xxxxxxxcd","content":"Call Log(Door Bell Call)","type":"504","date":"2020-04-25 14:48:44","card":"","sip":"1004"}
[2020-04-25 14:48:44][DEBUG] : Action list for the command has been retrieved
[2020-04-25 14:48:44][DEBUG] : Action list is : Array (     [0] => Array         (             [cmd] => #4583#         )      [1] => Array         (             [cmd] => scenario             [options] => Array                 (                     [scenario_id] => 39                     [action] => start                     [tags] =>                  )          )  )
[2020-04-25 14:48:44][DEBUG] : Trying to execute action : Array (     [cmd] => #4583# )
[2020-04-25 14:48:44][DEBUG] : with options : Array ( )
[2020-04-25 14:48:44][DEBUG] : Snapshot has been requested
[2020-04-25 14:48:44][DEBUG] : URL array : Array (     [10002] => https://192.168.1.6/goform/login?cmd=login&user=admin&type=1     [64] =>      [81] =>      [19913] => 1 )
[2020-04-25 14:48:44][DEBUG] : URL return : <?xml version="1.0" encoding="UTF-8" ?><Configuration><ResCode>0</ResCode><ChallengeCode>fbe1a400xxxxxxxxxxxx5fda84746137</ChallengeCode><RetMsg>OK</RetMsg></Configuration>
[2020-04-25 14:48:44][DEBUG] : String to be hashed : fbe1a40xxxxxxxxxxx65fda84746137:GDS3710lDyTlHwNgZ:xxxxxxxxxx
[2020-04-25 14:48:44][DEBUG] : URL array : Array (     [10002] => https://192.168.1.6/goform/login?cmd=login&user=admin&authcode=5ba0eb0xxxxxxxxxxxxe28c2503ae&type=1     [64] =>      [81] =>      [19913] => 1     [42] => 1 )
[2020-04-25 14:48:44][DEBUG] : URL return : HTTP/1.0 200 OK Content-Type: text/xml;charset=UTF-8 Set-Cookie: mjpeg_sess=5ba0eb06bb70xxxxxxxxxx2503ae;path=/; Set-Cookie: mjpeg_uname=admin;path=/; Set-Cookie: mjpeg_level=1;path=/;  <?xml version="1.0" encoding="UTF-8" ?><Configuration><ResCode>0</ResCode><RetMsg>OK</RetMsg></Configuration>
[2020-04-25 14:48:44][DEBUG] : Trying to create the capture under : /var/www/html/core/php/../../plugins/gds3710/data/records/509/Intercom_2020-04-25_14-48-44-926960.jpg
[2020-04-25 14:48:44][DEBUG] : URL array : Array (     [10002] => https://192.168.1.6/snapshot/view0.jpg     [64] =>      [81] =>      [19913] => 1     [10022] => mjpeg_sess=5ba0eb06bbxxxxxxxxxxxxxc2503ae;mjpeg_uname=admin;mjpeg_level=1     [42] =>      [19914] => 1     [10001] => Resource id #33 )
[2020-04-25 14:48:44][DEBUG] : URL return : 1
[2020-04-25 14:48:44][DEBUG] : Closing the file
[2020-04-25 14:48:44][DEBUG] : Registering path to lastest picture
[2020-04-25 14:48:44][DEBUG] : Registering URL to the lastest snapshot
[2020-04-25 14:48:44][DEBUG] : Commande #4583# has been executed with option.Array ( )
[2020-04-25 14:48:44][DEBUG] : Trying to execute action : Array (     [cmd] => scenario     [options] => Array         (             [scenario_id] => 39             [action] => start             [tags] =>          )  )
[2020-04-25 14:48:44][DEBUG] : with options : Array (     [scenario_id] => 39     [action] => start     [tags] =>  mac="00xxxxxxxxcd" content="Call Log(Door Bell Call)" type="504" date="2020-04-25 14:48:44" card="" sip="1004" )
[2020-04-25 14:48:44][DEBUG] : Commande scenario has been executed with option.Array (     [scenario_id] => 39     [action] => start     [tags] =>  mac="00xxxxxxxxdcd" content="Call Log(Door Bell Call)" type="504" date="2020-04-25 14:48:44" card="" sip="1004" )


UCM6202 en version 1.0.20.23
GDS3710 en version 1.0.7.4

A ta dispo bien entendu :wink:

Alors pour éviter de surcharger le debug du plugin avec tout ce que génère le client SIP, le debug se trouve directement dans la console javascript. Sous chrome il suffit d’aller dans afficher → Options pour les développeurs → Console Javascript. Envoie moi ce que tu as quand tu reçois ou émet un appel.

Tu devrais obtenir qqch qui ressemble à ca : (Attention ton mot de passe et l’IP de ton serveur sont dans le log)

JsSIP : Connecting to : wss://SERVER:PORT/ws as sip:USER@SERVER with password XXXXXX
VM587:216 JsSIP : You are connected.
VM587:228 JsSIP : You are registered.

Alors quelques questions :

  1. Quel navigateur utilises-tu?
  2. En local ou via internet?

Essaye déjà d’appeler Jeedom, l’autre sens peut-être un peu délicat en fonction de la présence ou l’absence de caméra sur ton PC.

Richard

PS : J’ai aussi des déconnexion (même config que toi avec un UCM), j’ai ouvert un ticket chez GrandStream mais il semblerait que ca vienne de Chrome.

Je suis sous Chrome et en Local

Dans la console, ca a l’air OK ( hormis les erreurs widget de mon dashboard )

Je me demande si ça vient pas de ma config UCM ou GDS

Dans le log ca n’a pas l’air mauvais mais je vais rajouter une option pour pouvoir afficher toute la négociation SIP, histoire qu’on sache ce qui se passe.

En attendant si tu as un UCM, tu peux faire un test via l’appli WebRTC intégré. Elle devrait être accessible à l’adresse : https://192.168.1.110:8089/gswave/

Si tu arrives a avoir le flux vidéo la c’est que ca marche.

Richard

Tu mets quels identifiant/mdp pour te logguer sur l’appli webrtc ?
J’essaye de rentrer ceux pour me logguer sur l’UCM mais ca fonctionne pas.

Pardon, oublie ma question…faut se loguer avec un compte d’un client…

Tu as 2 passwords par user le SIP/IAX password et le User Password. Pour se connecter sur l’Appli c’est le user password.

De plus, il faut que ton utilisateur possède les droits WebRTC.

Pas d’image…
Et si je décroche sur Jeedom, y’a rien qui se passe sur l’appli Webrtc

1 « J'aime »

@moicphil : il y a une nouvelle mise-à-jour sur la branche beta pour toi. Elle permet d’activer les traces SIP dans la console javascript. Ca se passe dans la configuration de l’équipement. Je te préviens c’est plutôt verbeux… Je ne suis pas un expert dans le protocole SIP mais tu peux poster le dialogue ici (vu la taille du truc p-e que l’utilisation de pastebin serait une bonne idée…), je pourrais voir s’il manque qqch d’essentiel.

As-tu essayé d’appeler le portier depuis le client WebRTC de l’UCM en te connectant en tant que Jeedom? Ca permettra d’écarter un problème de droit ou de paramétrage de l’UCM.

Good Luck

Salut

J’ai installé la nouvelle release.

Voici les logs lors d’un appel et réponse, il y a une ligne qui m’interpelle :

Ce qui me ferai plus pencher vers un pb sur ma config ( gds ou ucm ).

Lors d’un appel Jeedom vers Portier avec l’appli webrtc, j’ai du son mais pas d’images.

Voici les logs complets: LB21dcKy.txt (31,4 Ko)