Das ist ein wichtiges Thema.
X
X

[Windows] TiView

Einklappen
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • martz
    Neuer Benutzer
    • 25.02.2018
    • 5

    Hi Wonderdoc,

    es kommt:
    Precondition failed!

    sessionid is missing, invalid or expired!

    Gruß
    Martz

    Kommentar

    • Wonderdoc
      Ehren VIP
      • 15.12.2010
      • 496

      Hi,

      da scheint das Problem zu liegen.
      Du dannst mal prüfen, ob es geht, wenn du zuerst das normale WebIf mal aufrufst
      und danach die browser url auf die page /web/about manuell änderst.

      Kommentar

      • martz
        Neuer Benutzer
        • 25.02.2018
        • 5

        Hallo Wonderdoc,

        es kommt leider die gleiche Fehlermeldung...

        Kann es sein, das sich die links geändert haben?

        z.B. http://dm920.fritz.box/#!/tv/bouquets
        http://dm920.fritz.box/#!/control
        http://dm920.fritz.box/web-data/tpl/...ace/index.html

        Gruß
        Martz

        Kommentar

        • Wonderdoc
          Ehren VIP
          • 15.12.2010
          • 496

          Keine Ahnung,
          ich selber hab keine E2 Box.
          Hatte das damals über eine Box mit PLI Images glaube ich getestet.

          Dort sind die aufrufe alle mit /web/...
          z.B. Fernbedienung Taste 2 wird über:
          ../web/remotecontrol?command=2
          gesendet.
          Aktueller TV Service mit
          ../web/getcurrent
          Kannst ja mal schauen, ob du diese Aufrufe irgendwie nachstellen kannst.

          ../web/about müsste dann soetwas liefern:
          <?xml version="1.0" encoding="UTF-8"?>
          <e2abouts>
          <e2about>
          <e2enigmaversion>2014-11-21-(no branch)</e2enigmaversion>
          <e2imageversion>Release 8.0.0 2014-07-17</e2imageversion>
          <e2webifversion>1.7.5</e2webifversion>
          <e2fpversion>0</e2fpversion>
          <e2model>duo2</e2model>
          .....

          EDIT:
          Siehe WebDoku z.B. hier:
          E2 WebIf Doku

          Kommentar

          • GOst4711
            .....
            • 01.01.2008
            • 19651

            Ich denke auf Original E2 hat es bestimmt noch nie funktioniert. Oder hast du ein Open E2 drauf?

            Kommentar

            • Wonderdoc
              Ehren VIP
              • 15.12.2010
              • 496

              Zitat von martz Beitrag anzeigen
              Hallo Wonderdoc,
              Zusätzlich ist mir aufgefallen, das Umlaute falsch dargestellt werden:
              [ATTACH=CONFIG]68718[/ATTACH]
              Habs gefunden, Devicename wurde doppelt konvertiert.
              Kommt dann in der nächsten Version, wenn ich eine Lösung für das 64bit vlc 3.0 dll Problem gefunden habe.

              EDIT:
              Problem mit dem vlc3.0 64bit dlls konnte ich auch fixen.

              mfg
              Wonderdoc
              Zuletzt geändert von Wonderdoc; 19.03.2018, 02:35.

              Kommentar

              • martz
                Neuer Benutzer
                • 25.02.2018
                • 5

                Hallo Wonderdoc,

                ich habe das Problem gefunden..
                Auf der neuen Box war unter einstellungen/netzwerk/webinterface die option "Token basierte Sicherheit" aktiviert.
                Jetzt läuft es wieder.

                2018-03-21_091204.jpg

                Gruß
                Martz

                Kommentar

                • dhwz
                  Neuer Benutzer
                  • 30.09.2015
                  • 3

                  Der Tokenschutz und die Anti-Hijack Maßnahmen gehören halt einfach kurz implementiert das sind nur ein paar Zeilen Code die nötig sind. Die Optionen wieder abschalten ist auf jeden Fall der falsche Weg. Ich denke Wonderdoc kann das auch problemlos umsetzen.

                  a) nur POST und kein GET nutzen (Anti-Hijack Maßnahme), das ist kein Problem man kann ruhig immer per POST auf jedes Webif zugreifen diese antworten damit immer, umgekehrt aber nicht wenn diese Option aktiv ist. Ich hab daher im dreamboxEDIT auch immer POST verwendet.

                  b) Session holen und dann bei jedem Zugriff verwenden, das geht so:

                  Aufruf von http://192.168.2.2/web/session
                  Antwort ist "<e2sessionid>26d4a41b-2107-4da7-8663-3359431b1ae3</e2sessionid>" wenn Token-basierter Schutz aktiv, ansonsten <e2sessionid>0</e2sessionid> dann muss er auch nicht angehängt werden.

                  Jeden weiteren Zugriff auf das Webif dann mit sessionid=26d4a41b-2107-4da7-8663-3359431b1ae3 anhängen.

                  dreamboxEDIT prüft hier auch einfach das vorhandensein des Tokens und verwendet ihn wenn er nötig ist, ansonsten ist er einfach nicht da dann wird auch nichts an die URL angehängt.
                  Wie gesagt das lässt sich mit wenigen Zeilen Code umsetzen so dass man als Anweder gar nichts konfigurieren muss und es immer funktioniert.

                  Kommentar

                  • Wonderdoc
                    Ehren VIP
                    • 15.12.2010
                    • 496

                    Danke dhwz für die Info.

                    mangels E2-Box kannte ich die Option "Token basierte Sicherheit" gar nicht.
                    Ich schaue mir das mit der SessionID mal an.
                    Es sollte aber kein großer Aufwand sein.

                    Bei den Punkt mit GET und POST bin ich mir noch nicht sicher.
                    Der Unterschied ist ja nur, ob die Parameter in der URL(GET) oder seperat im Header(POST) übertragen werden.
                    Da ich eine direkte Socketverbindung ohne Browserkomponente aufbaue, sehe ich da bezüglich Sicherheit in meinen Fall keinen Unterschied.

                    EDIT:
                    OK, hab im IHAD noch ein paar Infos zu dem GET/POST gefunden.
                    Wenn die Option aktiviert ist, akzeptiert das WebIF nur API-Aufrufe über POST, GET-Aufrufe werden generell abgelehnt.

                    @dhwz
                    Wie verhält sich die Sache mit der Session ID genau?
                    Aktuell bauche ich für jeden Api Aufruf den Header zusammen, baue eine direkte TCP Socketverbindung auf,
                    Sende den Header, bekomme die Antwort und beendet die TCP Verbindung.
                    Bleibt die SessionID dann noch für den nächsten Aufruf aktiv?

                    Sprich, ich hole mir die SessionID bei der Box-Auswahl einmalig und die bleibt dann gültig,
                    oder ist die nur gültig, solange die TCP Verbindung nicht beendet wurde?

                    mfg
                    Wonderdoc
                    Zuletzt geändert von Wonderdoc; 30.03.2018, 09:35.

                    Kommentar

                    • dhwz
                      Neuer Benutzer
                      • 30.09.2015
                      • 3

                      Wie lange die Session exakt gültig ist weiß ich gerade auch nicht. Auf jeden Fall ist sie zeitlich begrenzt hat also nichts mit deiner TCP Verbindung zu tun. Ich ruf meine Routine zur Aktualisierung der SessionId einfach erneut auf wenn ich einen Fehler vom Server zurück bekomme, bzw. bei Funktionen die bei mir dauerhaft in einer Schleife laufen da Aktualisiere ich es auch ggf. regelmäßig vor jedem Zugriff auf das Webinterface.
                      Ich hab es mir da etwas einfacher gemacht weil das mit Delphi einfach nicht so schön lösbar war.

                      Das mit dem POST/GET ist soweit korrekt, wobei im Header gar nichts drin sein muss, ich sende da nur einen leeren String
                      Die Parameter können ruhig weiter an der URL anhängen, das Webinterface erkennt das weiterhin richtig, daher auch die Aussage es ist egal ob man POST anstatt GET nutzt das Webinterface arbeitet immer korrekt.
                      Mit POST funktioniert es mit einem uralten Webinterface genauso wie mit dem aktuellsten. Oder auch einem anderen wie OpenWebif.

                      Achtung nicht erschrecken...
                      Code:
                            PostDataStream := TStringStream.Create('');
                            ParamData := TStringStream.Create('');
                      
                            SessionID(); # entweder hole ich es hier
                      
                            if SSL then http := 'https://' else http := 'http://';
                            if IPV6 then host := '['+DBIP+']' else host := DBIP;
                      
                            c := http + host + ':' + DBHTTPPORT + '/web/subservices';
                            if WebSessionID <> '' then c := c + '?sessionid=' + WebSessionID;
                            try
                              IdHTTP1.Post(c, ParamData, PostDataStream);
                              s := PostDataStream.DataString;
                            except
                              on E: Exception
                              do begin;
                                SessionID(); # entweder hole ich es hier nach einem Fehler...
                                exit;
                              end;
                            end;

                      Kommentar

                      • satdxler
                        Neuer Benutzer
                        • 01.04.2018
                        • 5

                        Hallo Wonderdoc,

                        danke für deine Arbeit und dem TiView.
                        Das Programm ist die einzige Lösung, die ein vernünftiges Streaming inkl. EPG Infos von Dreamboxen erlaubt.

                        Könntest du eventuell einen Transcoding Support integrieren?
                        Bei DreamOS gibt es HLS und RTSP Transcoding. Ideal wäre, wenn das Kanallistenhandling so bleibt wie bisher und wenn man die Checkbox (Transcoding) im Profile Menü aktiviert, wird der Stream des Transcodingservers genommen.
                        Da du den VLC Player als Unterbau nutzt, sollte das kein Problem sein, da dieser einwandfrei mit diesen Streams umgehen kann.

                        Danke

                        Kommentar

                        • Wonderdoc
                          Ehren VIP
                          • 15.12.2010
                          • 496

                          @satdxler,

                          gib mal bitte noch ein Paar Infos zu den RTSP Transcodestream.
                          im OpenE2 wird ja Transcode über http mit sep. Transcode-Port verwendet.
                          Dieses ist ja schon implementiert und Transcode kann über das Popupmenü im Streamfenster aktiviert werden.
                          Http Transcode stream geht im DreamOS wohl nicht?

                          Wie ist das dann genau mit dem RTSP Stream?
                          Gehen bei RTSP Tanscode alle Streams(TV, Aufnahmen,...) , oder nur Live-TV Transcode-Stream?
                          Wird bei RTSP immer in fester Port genutzt, oder ist der RTSP Port konfigurierbar?

                          Poste bitte auch mal ein "/web/about" Aufruf vom DreamOS.
                          Wie sieht die URL für RTSP Transcode-Stream dann genau aus bei LiveTV, Andere Sender und ggf bei Ausnahmen?

                          mfg
                          Wonderdoc

                          Kommentar

                          • satdxler
                            Neuer Benutzer
                            • 01.04.2018
                            • 5

                            Es gibt zwei Möglichkeiten: HLS und RTSP

                            HLS (http live service)
                            Standard port: 8080
                            Standard Name: stream
                            Beispiel:http://dm900.fritz.box:8080/stream.m...:C00000:0:0:0:

                            RTSP
                            Standard port: 554
                            Standard Name: stream
                            Beispiel: rtsp://dm900.fritz.box;:554/stream.m3u8?ref=1:0:1:6D66:437:1:C00000:0:0:0:

                            Ports und Pfad sind frei konfigurierbar

                            Falls du einen Testzugang zu einer DreamOS Box benötigst, sags mir, ich schalte dir für diesen Zweck einen Zugang zu meinem Streamingserver frei

                            Liebe Grüße

                            Kommentar

                            • Wonderdoc
                              Ehren VIP
                              • 15.12.2010
                              • 496

                              Danke für die Info,

                              welches der beiden Protokolle sollte man bevorzugen?
                              Mit Pfad ist frei konfigurierbar meinst du den Standard Name?
                              (Sprich def. "stream", könnte aber auch anders lauten.)
                              Da die Serv.Ref ID mit übergeben wird, sollte also alle Sender unabhänging vom akt. TV-Kanal streambar sein.
                              Wie sieht es für Aufnahmen aus?
                              Gehen die auch mit Transcode über RTSP/HLS?

                              mfg
                              Wonderdoc

                              Kommentar

                              • satdxler
                                Neuer Benutzer
                                • 01.04.2018
                                • 5

                                welches der beiden Protokolle sollte man bevorzugen?
                                RTSP, da du VLC als Unterbau nutzt und ich damit nie Probleme hatte.

                                Mit Pfad ist frei konfigurierbar meinst du den Standard Name?
                                (Sprich def. "stream", könnte aber auch anders lauten.)
                                richtig

                                Da die Serv.Ref ID mit übergeben wird, sollte also alle Sender unabhänging vom akt. TV-Kanal streambar sein.
                                Ja, es gibt drei Modi beim StreamingServer:
                                Follow TV... hier wird das aktuell gesehen Programm (egal ob TV Kanal oder Aufnahme) transkodiert und gestreamt
                                HDMI Input... hier wird das Signal am HDMI Eingang transkodiert und gestreamt
                                TV Services.. hier wird unabhänging vom aktuellen Programm transkodiert und gestreamt. Dieser Modus ist somit auch der entscheidende für TiView. Eingestellt wird dieser direkt im Enigma2 GUI.

                                Wie sieht es für Aufnahmen aus?
                                Aufnahmen werden leider nur im FollowTV Modus transkodiert, d.h. diese werden im TV Services Modus nicht transkodiert
                                Gehen die auch mit Transcode über RTSP/HLS?
                                nur im FollowTV Modus

                                Zusammenfassend:
                                ich nutze den TV Services Modus und transkodiere damit unabhängig das TV Programm, von jenem welches direkt auf der Box gesehen wird.

                                Kommentar

                                Nicht konfiguriertes PHP-Modul

                                Einklappen

                                [Windows] TiView

                                Einklappen
                                Lädt...
                                X