Ankündigung
Einklappen
Keine Ankündigung bisher.
AVM Plugin
Einklappen
X
-
Cool, funktioniert nun auch bei mir... mit aktueller Fritz!OS. Macht es Sinn die set_call_origin() um eine Abfrage und Syntaxprüfung zu ergänzen?
-
So jetzt bin ich wirklich schlauer:
Erlaubte Strings für den Parameter von set_call_origin kriegt ihr via:
Code:curl --anyauth -u <user>:<password> "https://fritz.box:49443/upnp/control/x_voip" -H "Content-Type: text/xml; charset="utf-8"" -H "SoapAction:urn:dslforum-org:service:X_VoIP:1#X_AVM-DE_GetPhonePort" -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_GetPhonePort xmlns:u='urn:dslforum-org:service:X_VoIP:1'><s:NewIndex>1</s:NewIndex></u:X_AVM-DE_GetPhonePort></s:Body></s:Envelope>" -s -k
Ich habe mit einem der Werte jetzt set_call_origin aufgerufen und es wird korrekt gesetzt.
Abfrage via:
Code:curl --anyauth -u <user>:<password> "https://fritz.box:49443/upnp/control/x_voip" -H "Content-Type: text/xml; charset="utf-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
Einen Kommentar schreiben:
-
mich wundert der "Content-Type: text/xutf-8"" bei mir geht es nur mit "Content-Type: text/xml; charset="utf-8"", bei letzterem macht auch das "" Sinn
und weiter bin ich:
Code:curl --anyauth -u <user>:<password> "https://fritz.box:49443/upnp/control/x_voip" -H "Content-Type: text/xml; charset="utf-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 <?xml version="1.0"?> <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <s:Body> <u:X_AVM-DE_DialGetConfigResponse xmlns:u="urn:dslforum-org:service:X_VoIP:1"> <NewX_AVM-DE_PhoneName>FON1: ALARM</NewX_AVM-DE_PhoneName> </u:X_AVM-DE_DialGetConfigResponse> </s:Body> </s:Envelope>a
Ich bin doof.. das gibt nur das konfigurierte zurück... Liste via:
Code:curl --anyauth -u <user>:<password> "https://fritz.box:49443/upnp/control/x_voip" -H "Content-Type: text/xml; charset="utf-8"" -H "SoapAction:urn:dslforum-org:service:X_VoIP:1#X_AVM-DE_GetClients" -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_GetClients xmlns:u='urn:dslforum-org:service:X_VoIP:1' /></s:Body></s:Envelope>" -s -k
Update: das hier ist recht spannend zum Thema, was als Parameter der X_AVM-DE_DialSetConfig zulässig ist: https://forum.fhem.de/index.php?topic=49262.0Zuletzt geändert von psilo; 04.11.2016, 07:35.
Einen Kommentar schreiben:
-
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 essenZuletzt geändert von psilo; 03.11.2016, 18:18.
Einen Kommentar schreiben:
-
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}\>'
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
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>
Einen Kommentar schreiben:
-
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
Einen Kommentar schreiben:
-
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.
Einen Kommentar schreiben:
-
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?
Einen Kommentar schreiben:
-
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
Einen Kommentar schreiben:
-
Ich nutze es bei mir so, und das geht:
sh.fritzbox_7490.set_call_origin("**610")
sh.fritzbox_7490.start_call('**9')
Einen Kommentar schreiben:
-
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>
Vielleicht hat es was damit zu tun? Aber es läuft ja bereits mit '**610' IDs, oder?
Einen Kommentar schreiben:
-
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
Einen Kommentar schreiben:
-
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
Einen Kommentar schreiben:
-
oder gibt es irgendein "curl ..." kommando, welches auf die voip Funktionen zugreift und ich zum debuggen nehmen kann?
Einen Kommentar schreiben:
-
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?
Einen Kommentar schreiben:
Einen Kommentar schreiben: