Asterisk & VUPlus - Boxstatus ermitteln

    • Asterisk & VUPlus - Boxstatus ermitteln

      Hallo zusammen

      Vor ein paar Monaten kam ich nun auch in den "Genuss" auf IP-Telefonie umgestellt zu werden. Seitdem werkelt eine Asterisk meinen ein-, und ausgehenden Telefonieverkehr ab und leitet ihn per SIP an meine alte Telefonieumgebung weiter.
      Habe da auch schon eine Anrufanzeige auf dem TV hinbekommen (also über VUPlus) ohne Fritzbox mit Rückwärtssuche bei das.oertliche und zuletzt eine "Mute Funktion" bei ankommenden Anrufen.
      Heute ist mir eingefallen, dass es ja nett wäre wenn gerade eine Aufzeichnung läuft, diese einfach auf Pause zu schalten anstatt wie bei Live Sendungen die eben nur gemuted werden.
      Habe mir aktuell alle möglichen Files unter /usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/controllers/views/web angeschaut, aber keiner davon gibt mir klar zurück, ob es sich um eine laufende Aufnahme oder um laufendes Live Programm handelt. Ob eine Pause schon gedrückt wurde erst recht nicht :(

      Einzig die /web/subservices spuckt annähernd etwas brauchbares aus wie "<e2servicereference>1:0:0:0:0:0:0:0:0:0:/media/hdd/movie/xyz.ts</e2servicereference>".
      Anhand der 1:0:0... könnte man ja noch schauen, aber die servicereferenz fällt weg bei z.B. einer mkv vom NAS...

      Gibt es die Möglichkeit per http request festzustellen
      A) Läuft aktuell eine Aufnahme
      B) Wie ist der aktuelle Stand der Mute Funktion


      Für Hilfe immer dankbar :)
      LG skamm71

      "Alle sagten: Das geht nicht. Dann kam einer, der wusste das nicht und hat's gemacht."
    • Hi,
      gurgel mal nach enigma2 webinterface Du wirst da was bei reichholf finden ist zwar für das alte Interface aber ich glaube das meiste passt immer noch.

      ciao
      ---
      Die Lücke die ich hinterlasse ersetzt mich vollständig
    • Hey Trial

      Danke für den Tipp, aber da war ich schon.
      Das mit dem Mute abfragen geht natürlich auch - das hatte ich in meiner grauen Masse vorhin nur verlegt gehabt ;)

      http://<ip>/web/vol spuckt ja außer der Lautstärke auch den Mute Status aus:

      <e2ismuted>False</e2ismuted>

      Das benutze ich ja auch schon um während der Ruhezeiten die Lautstärke anzupassen falls einem mal der Finger ausrutscht ;)

      Bleibt aber immer noch offen der Status ob etwas abgespielt wird oder nicht...

      :)

      Kann leider nicht editieren...


      Wollte noch hinzufügen:

      Wenn es da keinen "True" oder "False" gibt, dann müsste ich eben filtern nach dem "<e2servicereference>". Endweder ist er gar nicht vorhanden, dann ist es irgendein Abspielmodus, oder er zeit eben die "1:0:0:0:0:0:0:0:0:0:", dann ist es ne Aufnahme der Box.
      LG skamm71

      "Alle sagten: Das geht nicht. Dann kam einer, der wusste das nicht und hat's gemacht."
    • Ich wette 95% der USer hier inkl. mir verstehen hier nur Bahnhof :)
    • Hey Thronis.

      Kein Problem. Deswegen habe ich ja auch extra unter "Bastelbude" geschrieben.
      Ich baue dann halt auf die verbliebenen 5% der Leser ;)

      Ich stelle auch gerne was von meinen bisherigen Arbeiten zur Verfügung falls Interesse besteht :)

      Habe mich aber schon fast damit abgefunden, dass ich mit dem leben muss was die Box hergibt...

      <e2servicereference>1:0:19:2B7A:3F3:1:C00000:0:0:0:</e2servicereference> = Live TV
      <e2servicereference>1:0:0:0:0:0:0:0:0:0:</e2servicereference> = Aufnahme

      <e2servicereference>N/A</e2servicereference> = Aufnahme
      <e2servicereference/> = Aufnahme


      wird halt dann etwas mehr Arbeit im Linux Script werden um das zu filtern und auszuwerten. ;)
      LG skamm71

      "Alle sagten: Das geht nicht. Dann kam einer, der wusste das nicht und hat's gemacht."
    • So. Fast ein Monat rum, aber nun hatte ich mal wieder etwas Zeit zum Basteln.... ;)

      Zumindest die Mute Geschichte habe ich jetzt verbessert, indem ich das per Script mache und vorher abfrag wie der aktuelle Status ist:

      Quellcode

      1. [root@VoIPServer asterisk]# cat muteTV.sh
      2. #!/bin/sh
      3. Datum=$(date)
      4. user=root
      5. pass=meinpasswort
      6. ip=$1
      7. waittime=1
      8. tmpfile=/etc/asterisk/mute.$ip.status
      9. rm $tmpfile
      10. wget --output-document=$tmpfile http://$user:$pass@$ip/web/vol
      11. muteTVstatus=$(cat $tmpfile | grep e2ismuted | cut -b 13-16)
      12. echo $muteTVstatus
      13. if [[ $muteTVstatus = Fals ]]
      14. then
      15. echo "let's turn on mute for $ip"
      16. wget "http://$user:$pass@$ip/web/remotecontrol?command=113"&
      17. else
      18. echo "$ip is already muted, just exiting."
      19. fi
      20. rm -f remotecontrol*
      Alles anzeigen
      Jetzt fehlt nur noch dass ich rausfinde ob eine Aufnahme läuft oder nicht.... ;)
      LG skamm71

      "Alle sagten: Das geht nicht. Dann kam einer, der wusste das nicht und hat's gemacht."
    • Hmmmm.....

      Nein, das stimmt wohl so doch nicht.
      Nochmal mit den /web/subservices getestet.

      Da steht dann auch nur was gerade läuft:

      <e2servicelist>
      <e2service>
      <e2servicereference>1:0:19:EF15:421:1:C00000:0:0:0:</e2servicereference
      ><e2servicename>RTLII HD</e2servicename>
      </e2service>
      </e2servicelist>

      ...aber nicht ob der aktuell auf Pause steht.... :(

      Irgend jemand noch eine Idee für mich?
      LG skamm71

      "Alle sagten: Das geht nicht. Dann kam einer, der wusste das nicht und hat's gemacht."
    • Kennst du die URL /api/statusinfo ? Bis auf die Information, ob eine Aufnahme pausiert, ist da eigentlich alles drin. Weiterer Vorteil (meine Meinung): die Ausgabe ist JSON; Nachteil: gibt es auch nur als JSON-Ausgabe.

      Siehe meine Zusammenstellung über die OpenWebif-Methoden, die ich mal irgendwann gemacht habe: OpenWebif API documentation · rdamas/e2openplugin-OpenWebif Wiki · GitHub
    • Hey rdamas!

      Nein, die kannte ich noch nicht!

      Aber ich bräuchte die Info ob da schon Pause aktiv ist oder nicht....

      So ähnlich wie ich aktuell schaue ob Mute schon an ist oder nicht....

      der Hintergrund: Ich arbeite auch oft von zuhause aus. Und hab dann natürlich die Glotze an. Entweder schaue ich Live TV - dann reicht mir ein Mute, oder ich habe eine Aufnahme am spielen, dann brauche ich eine Pause. Die zu schicken ist ja erst mal kein Problem, aber ich muss auch abfragen können ob schon Pause aktiv ist.....
      LG skamm71

      "Alle sagten: Das geht nicht. Dann kam einer, der wusste das nicht und hat's gemacht."
    • Guten Morgen zusammen

      Mal ein wenig mit dem JSON gespielt. Auch mit diesem output kann man leben, den kann man ja auch noch beschneiden und filtern was man sehen möchte:

      Shell-Script

      1. #!/bin/bash
      2. Datum=$(date)
      3. user=meinuseruser
      4. pass=meinpasswort
      5. ip=$1
      6. waittime=1
      7. tmpfile=/tmp/statusinfo
      8. rm $tmpfile
      9. wget --output-document=$tmpfile http://$user:$pass@$ip/api/statusinfo
      10. IFS=":"
      11. String=$(cat $tmpfile)
      12. set – $String
      13. echo "${5:6:5}:${6:1:4}"
      Alles anzeigen
      Das hier liest jetzt die Ausgabe der /api/statusinfo aus, speichert sie zwischen und gibt dann nur noch zurück "muted:true" oder "muted:fals"

      Jetzt fehlt nur noch die Möglichkeit die Pause auszulesen ;)
      LG skamm71

      "Alle sagten: Das geht nicht. Dann kam einer, der wusste das nicht und hat's gemacht."