Ankündigung

Einklappen
Keine Ankündigung bisher.

AVM Plugin

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Hi,

    ich versuche Fritzbox calls auszulösen - jedoch bislang ohne Erfolg. Was gut funktioniert, ist das Auslesen der Parameter wie Verbindungsstatus, etc.

    Das Loglevel wurde auf DEBUG gesetzt und ich bekomme folgende Fehler:

    Code:
    2016-11-01  10:45:59 INFO     plugins.avm_fb7390 Starting new HTTPS connection (1): 192.168.1.1
    2016-11-01  10:45:59 DEBUG    plugins.avm_fb7390 "POST /upnp/control/deviceinfo HTTP/1.1" 401 188
    2016-11-01  10:45:59 INFO     plugins.avm_fb7390 Resetting dropped connection: 192.168.1.1
    2016-11-01  10:46:00 DEBUG    plugins.avm_fb7390 "POST /upnp/control/deviceinfo HTTP/1.1" 200 1470
    2016-11-01  10:46:00 DEBUG    plugins.avm_fb7390 "POST /igdupnp/control/WANIPConn1 HTTP/1.1" 200 448
    2016-11-01  10:46:00 DEBUG    plugins.avm_fb7390 "POST /igdupnp/control/WANIPConn1 HTTP/1.1" 200 379
    2016-11-01  10:46:17 INFO     caller       LOGIC caller.py triggered by None
    2016-11-01  10:46:17 DEBUG    caller       "POST /upnp/control/x_voip HTTP/1.1" 401 188
    2016-11-01  10:46:17 INFO     caller       Resetting dropped connection: 192.168.1.1
    2016-11-01  10:46:17 DEBUG    caller       "POST /upnp/control/x_voip HTTP/1.1" 500 428
    2016-11-01  10:46:17 DEBUG    caller       "POST /upnp/control/x_voip HTTP/1.1" 401 188
    2016-11-01  10:46:17 INFO     caller       Resetting dropped connection: 192.168.1.1
    2016-11-01  10:46:18 DEBUG    caller       "POST /upnp/control/x_voip HTTP/1.1" 500 428
    in der Logic "caller.py" trigger ich die Funktionen per.

    Code:
    sh.fritzbox_kg.set_call_origin("**610")
    sh.fritzbox_kg.start_call('**9')
    Seltsam ist nur, dass ich "401" Unauthorized zurück bekomme oder "500" Internal Server Error...

    Fritzbox Firmware: FRITZ!OS 6.53
    Heimnetz->Heimnetzüberischt->Netzwerkeinstellungen->Statusinformationen über UPNP ist aktiv


    Hat jemand Ansatzpunkte, wo ich weiter suchen könnte?

    Kommentar


      Username und Passwort hast Du konfiguriert? Evtl musst Du den Service auch noch auf der Box selber freischalten!

      Check das mal:

      Unbenannt.PNG

      Resetting dropped connection ist "normal" bei einigen Nutzern und hat keine Auswirkung auf die Funktionalität
      Zuletzt geändert von psilo; 01.11.2016, 12:13.

      Kommentar


        Achja und mach mal testweise eine volle Rufnummer anstatt der **9..

        Kommentar


          Danke für das schnelle Feedback.
          Die Einstellung habe ich überprüft, und ist so wie Du geschrieben hast: die interne Telefonie ist freigegeben.
          Ebenso hatte ich bereits meine Handynumer zum Test eingetragen, aber das ändert nichts an den Fehlermeldungen.
          Der Zugang sollte funktionieren, sonnst könnte ich ja auch keinen anderen Daten abfragen, oder? Der Haken bei den Benutzerberechtiungen "Sprachnachrichten, ... " ist auch gesetzt.
          Kann man irgendwo das logging der Fritzbox hochstellen?

          Kommentar


            oder gibt es irgendein "curl ..." kommando, welches auf die voip Funktionen zugreift und ich zum debuggen nehmen kann?

            Kommentar


              Nein glaube nicht. Man könnte den Service auf der Fritzbox über CURL direkt anfragen, das zu erstellen würde mich jetzt aber auch einige Zeit kosten. mhmm

              Du kannst Dir mal den REQUEST String einfach rausloggen. Findest Du die Stelle? und das dann via CURL mit User und Passwort hinschieben

              Kommentar


                also siehe in der start_call das soap_data und die url.. und dagegen dann mit dem soap_data als payload curlen:

                Code:
                        soap_data = self._assemble_soap_data(action, self._urn_map['X_VoIP'],
                                                             {'NewX_AVM-DE_PhoneNumber': phone_number.strip()})
                        try:
                            self._session.post(url, data=soap_data, timeout=self._timeout, headers=headers,
                                               auth=HTTPDigestAuth(self._fritz_device.get_user(), self._fritz_device.get_password()),
                                               verify=self._verify)
                        except Exception as e:
                            self.logger.error("Exception when sending POST request: %s" % str(e))
                            return

                Kommentar


                  War gerade in der set_call_origin(self, phone_name):
                  Hier soll der "phone_name" übergeben werden der auch per "NewX_AVM-DE_PhoneName" Attribut an die FB übergeben wird.
                  In der AVM Spezifikation ist als Beispiel:
                  Code:
                  <X_AVM-DE_PhoneName>My Iphone SIP Client</X_AVM-DE_PhoneName>
                  angeführt.
                  Vielleicht hat es was damit zu tun? Aber es läuft ja bereits mit '**610' IDs, oder?

                  Kommentar


                    Ich nutze es bei mir so, und das geht:

                    sh.fritzbox_7490.set_call_origin("**610")
                    sh.fritzbox_7490.start_call('**9')

                    Kommentar


                      Urx, ich sehe gerade dass in der set_call_orgin offenbar die falsche action steht (X_AVM-DE_DialSetConfig ist wohl richtig laut https://avm.de/fileadmin/user_upload...x_voipSCPD.pdf).. ich pushe das gleich mal in den dev. mglw geht es aber trotzdem, da es bei mir ja funzt

                      Kommentar


                        Ich muss da noch einmal in Ruhe ran...
                        Mir ist gestern noch was eingefallen: es wäre doch auch möglich den Anruf über das SIP Protocol zu triggern, oder? Hast Du das schon eimal in Erwägung gezogen oder gibt es bereits eine Implementierung?

                        Kommentar


                          gama keine Ahnung sorry. Habe da auch nichts gemacht. Bei mir tut es aktuell das was soll, dafür war die set_call_origin auch unerheblich. Es lag irgendwie noch an der Wählhilfe dass es ging... Auf jdn. Fall kommen meine Alarmanrufe an, mehr brauche ich bisher auch nicht, für remote Infos nutze ich Mail und Pushbullet... Kenne jetzt auch Dein konkretes Szenario nicht.

                          Kommentar


                            Du hast recht, für eine Alarmierung reicht es völlig aus, auch wenn die Möglichkeiten mit SIP noch etwas mehr sind... aber ich bin erst einmal froh, wenn ein Telefon klingelt

                            Kommentar


                              Hi,

                              also folgender "RAW" Zugriff funktioniert und gibt die IP aus:


                              Code:
                              curl "https://192.168.1.1:49443/igdupnp/control/WANIPConn1" -H "Content-Type: text/xutf-8"" -H "SoapAction:urn:schemas-upnp-org:service:WANIPConnection:1#GetExternalIPAddress" -d "<?xml version='1.0' encoding='utf-8'?> <s:Envelope s:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'> <s:Body> <u:GetExternalIPAddress xmlns:u='urn:schemas-upnp-org:service:WANIPConnection:1' /> </s:Body> </s:Envelope>" -s -k | grep -Eo '\<[[:digit:]]{1,3}(\.[[:digit:]]{1,3}){3}\>'
                              der Zugriff (auf DialGetConfig) erzeugt eine Fehlermeldung - Syntax sollte eigentlich stimmen, oder siehst Du den Fehler?


                              Code:
                              curl "https://192.168.1.1:49443/upnp/control/x_voip" -H "Content-Type: text/xutf-8" -H "SoapAction:urn:dslforum-org:service:X_VoIP:1#X_AVM-DE_DialGetConfig" -d "<?xml version='1.0' encoding='utf-8'?> <s:Envelope s:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'> <s:Body> <u:X_AVM-DE_DialGetConfig xmlns:u='urn:dslforum-org:service:X_VoIP:1' /> </s:Body> </s:Envelope>" -s -k
                              Antwort:
                              HTML-Code:
                              <HTML><HEAD><TITLE>500 Internal Server Error (ERR_INVALID_REQ)</TITLE></HEAD><BODY><H1>500 Internal Server Error</H1><BR>ERR_INVALID_REQ<HR><B>Webserver</B> Thu, 03 Nov 2016 13:18:06 GMT</BODY></HTML>

                              Kommentar


                                Im ersten ist hier ein " zu viel:
                                "Content-Type: text/xutf-8""
                                Und ich kriege ein sh: syntax error near unexpected token `<'

                                So, " korrigiert und ich habe auch einen internal server error. mir fehlen aber schon mal die credentials

                                der 2te gibt bei mir auch einen 500er, genausol wie der erste.. muss das aber tiefer ansehen.. erstmal essen
                                Zuletzt geändert von psilo; 03.11.2016, 18:18.

                                Kommentar

                                Lädt...
                                X