Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Anbindung 3cx TK-Anlage

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Anbindung 3cx TK-Anlage

    This topic has been deleted. Only users with topic management privileges can see it.
    • J
      Josh last edited by Josh

      Hallo zusammen!

      Ich habe es geschafft meine 3cx-TK-Anlage mit einem BlocklyScript in ioBroker anzubinden. Das möchte ich kurz beschreiben.

      Hier mein BlocklyScript:

      3cx-version-auslesen.png

      Als erstes legen wir einen neuen Datenpunkt an. In meinem Beispiel fragen wir einfach mal die Version der Anlage ab.

      Danach muss als erstes ein Login-Cookie angelegt werden, indem wir folgenden curl-Befehl absetzen:

      curl 'https://myhost.my3cx.de:5001/api/login'
      -H 'authority: myhost.my3cx.de:5001'
      -H 'accept: application/json, text/plain, /'
      -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36 Edg/88.0.705.63'
      -H 'content-type: application/json;charset=UTF-8'
      -H 'origin: https://myhost.my3cx.de:5001'
      -H 'sec-fetch-site: same-origin'
      -H 'sec-fetch-mode: cors'
      -H 'sec-fetch-dest: empty'
      -H 'referer: https://myhost.my3cx.de:5001/'
      -H 'accept-language: de'
      -b /tmp/curl-cookies.txt
      -c /tmp/curl-cookies.txt
      --data-raw '{"Username":"admin","Password":"xxx"}'
      --compressed
      

      Ihr müsst natürlich eure URL der Anlage, den Anmeldenamen und das Passwort anpassen. Zur besseren Lesbarkeit, habe ich den Befehl über mehrere Zeilen aufgeteilt. In Blockly muss das alles in einer Zeile stehen.

      Schön, jetzt ist der Login in die Anlage erfolgreich verlaufen. Als nächstes warten wir kurz, bis die Cookie-Datei ins Dateisystem geschrieben wurde. Habe 100ms empirisch ermittelt. Vielleicht kennt jmd ja eine Methode, die besser ist als die Zeit abzuwarten.

      Nun kommt der zweite curl-Befehl mit dem wir den Datenpunkt abfragen:

      curl 'https://myhost.my3cx.de:5001/api/SystemStatus'
      -H 'authority: myhost.my3cx.de:5001'
      -H 'accept: application/json, text/plain, /'
      -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36 Edg/88.0.705.63'
      -H 'content-type: application/json;charset=UTF-8'
      -H 'origin: https://myhost.my3cx.de:5001'
      -H 'sec-fetch-site: same-origin'
      -H 'sec-fetch-mode: cors'
      -H 'sec-fetch-dest: empty'
      -H 'referer: https://myhost.my3cx.de:5001/'
      -H 'accept-language: de'
      -b /tmp/curl-cookies.txt
      -c /tmp/curl-cookies.txt
      --compressed
      

      Auch hier ist wegen der besseren Lesbarkeit der Befehl auf mehrere Zeilen aufgeteilt.

      Es kommt ein JSON-Payload zurück, den wir nur zerlegen müssen, um die Version auszulesen. Die Versionsnummer wird in den oben angelegten Datenpunkt geschrieben. Dieser Datenpunkt kann dann für weitere Auswertungen genutzt werden.

      Jetzt warten wir nochmal 100ms, bis wir das Cookie löschen.

      Fertig.

      Natürlich ist die Abfrage der Versionsnummer nur ein Beispiel. Nehmt dann einfach den Datenpunkt, den ihr abfragen möchtet. Im Prinzip funktioniert das alles wie oben beschrieben.

      Zum Schluss noch die mir bekannten API-Abfragen:

      https://myhost.my3cx.de:5001/api/SystemStatus
      https://myhost.my3cx.de:5001/api/ActiveCalls
      https://myhost.my3cx.de:5001/api/ServiceList
      https://myhost.my3cx.de:5001/api/ExtensionList
      https://myhost.my3cx.de:5001/api/TrunkList
      https://myhost.my3cx.de:5001/api/InboundRulesList
      https://myhost.my3cx.de:5001/api/OutboundRuleList
      https://myhost.my3cx.de:5001/api/IVRList
      https://myhost.my3cx.de:5001/api/RingGroupList
      https://myhost.my3cx.de:5001/api/CallLog?callState=All&dateRangeType=Yesterday
      https://myhost.my3cx.de:5001/api/PhoneBookEntryList?count=50&filter=&from=0
      

      Um die Datenpunkte im Browser anzusehen, einfach sich auf der Anlage anmelden und dann die o.g. URLs aufrufen. Natürlich wieder an eure Anlage anpassen. Zur bessere Lesbarkeit im Firefox habe ich das Add-On JSON Lite genutzt.

      Ich möchte euch hiermit anregen weiteren Input zu geben, sodass sich ggf. ein Entwickler berufen fühlt einen Adapter zu programmieren 😉

      Anbei das Script.

      3cx-version-auslesen.txt

      1 Reply Last reply Reply Quote 0
      • First post
        Last post

      Support us

      ioBroker
      Community Adapters
      Donate
      FAQ Cloud / IOT
      HowTo: Node.js-Update
      HowTo: Backup/Restore
      Downloads
      BLOG

      876
      Online

      32.0k
      Users

      80.5k
      Topics

      1.3m
      Posts

      3cx abfrage tk-anlage
      1
      1
      289
      Loading More Posts
      • Oldest to Newest
      • Newest to Oldest
      • Most Votes
      Reply
      • Reply as topic
      Log in to reply
      Community
      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
      The ioBroker Community 2014-2023
      logo