FRITZBOX - SetPhonebookEntry - Wie Parameter übergeben ?

Begonnen von Norberto, 13 Februar 2016, 16:30:53

Vorheriges Thema - Nächstes Thema

Norberto

Hallo,

ich habe es bis jetzt nicht geschafft mit dem tr064Command des FRITZBOX Moduls einen Eintrag im Telefonbuch der Fritzbox zu setzen.


get Fritzbox tr064Command X_AVM-DE_OnTel:1 x_contact SetPhonebookEntry NewPhonebookID 0 NewPhonebookEntryID "" NewPhonebookEntryData [Und was kommt hierhin ?]


diverse Versuche eine XML Struktur zu übergeben scheiterten (Wrong number of arguments). Die AVM Referenz http://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/x_contactSCPD.pdf ist in dem Punkt nur allgemein.

Hat dies schon einmal jemand versucht / geschafft ?

Gruß, Norberto

Norberto


Hat keiner eine Idee oder einen Tip?

Gruß, Norberto

JoJota

Hallo Norberto,

ich probiere im Moment auch etwas mit den tr064 Befehlen herum, den Telefonbucheintrag habe ich aber ebenfalls nicht geschafft.

Vielleicht hilft dir folgendes weiter:

Im Referenz PDF steht auf Seite 8, dass für den Wert "PhonebookEntryData" ein "XML document with a single entry." benötigt wird. Ist aber natürlich auch nicht wirklich eindeutig. Um die XML Struktur des Telefonbuchs herauszufinden, habe ich mittels

get fritzbox tr064Command X_AVM-DE_OnTel:1 x_contact GetPhonebook NewPhonebookID 0

die URL des Telefonbuchs ermittelt und aufgerufen (https://fritz.box:49443/phonebook.lua?sid=xxxxxxx&pbid=0). Die sid habe ich ermitteln, indem ich in der Fritzbox Oberfläche mit der Maus über die Sidebar gehovert bin und dann den Link in die Zwischenablage kopiert habe. Dann in den Link einfügen und das Telefonbuch herunterladen.

Struktur des Telefonbuchs sieht dann so aus:

<?xml version="1.0" encoding="UTF-8"?>
<phonebooks>
<!-- 1, id:0 , name:Telefonbuch -->
<phonebook owner="0" name="Telefonbuch">
<timestamp>1455480971</timestamp>
<!-- number of contacts 21 -->
<contact>
<category>0</category>
<person>
<realName>Alle (Rundruf)</realName>
</person>
<uniqueid>12</uniqueid>
<telephony>
<services>
</services>
<!-- numbers:1-->
<number type="intern" quickdial="" vanity="" prio="1" >**9</number>
<!-- idx:0 -->
<!-- ringtoneidx:nil -->
</telephony>
</contact>
<contact>
<category>0</category>
<person>
<realName>xxx</realName>
</person>
<uniqueid>39</uniqueid>
<telephony>
<services>
</services>
<!-- numbers:1-->
<number type="home" quickdial="" vanity="" prio="1" >xxx</number>
<!-- idx:0 -->
<!-- ringtoneidx:nil -->
</telephony>
</contact>


So eine ähnliche Struktur für einen Kontakt habe ich dann versucht auf den NewPhonebookEntryData anzuwenden, hat aber leider auch nichts geholfen.

Ich habe die Vermutung, dass es vielleicht (auch) am Fritzbox Modul liegen könnte, da die Leerzeichen im XML Code dazu führen, dass das Modul den weiteren Text als neue Argumente/Werte ansieht und nicht als Value für den einen Telefonbucheintrag (daher der Fehler wrong arguments). Den kompletten XML String mit " bzw. ' zu maskieren half bei mir nicht. Also solange das Problem mit den Arguments nicht behoben ist, hilft es meiner Meinung nach nicht die XML Syntax für die Fritzbox zu verändern, da die Werte überhaupt nicht an der Fritzbox ankommen, sondern schon vom Fritzbox Modul als falsch angesehen werden. Da kenne ich mich mit Perl aber nicht gut genug aus, um das herauszufinden und ggf. zu ändern.

Ansonsten wegen der XML Syntax vielleicht mal an AVM direkt wenden und nachfragen: Entwicklungssupport@avm.de

Gruß JoJota

P.S. Neben dem wrong arguments Fehler ist mir auch aufgefallen, dass die Befehle allgemein lange zum Ausführen brauchen (~5 Sekunden bis die Antwort da ist) und FHEM in dieser Zeit blockiert ist. Oft hat es sich beim Testen auch komplett aufgehängt und musste neu gestartet werden. Ist das bei dir auch so?

Norberto

#3
Hallo Jojota,

Vielen Dank für Deine ausführliche Rückmeldung.

Ich war ungefähr bis zum gleichen Ergebnis gekommen - das FRITZBOX Modul zerpflückt den XML String beziehungsweise ich hatte es nicht geschafft die Sonderzeichen zu escapen. Als nächstes wollte ich mir daher auch die genaue Übergabe der XML Sequenz vom FRITZBOX Modul an die Fritzbox anschauen.

Die Ausführung (ein beliebiger Befehl, Fritzbox 7490, Cubietruck mit DebianWheezy) dauerte bei mir gefühlte 2 Sekunden, haber aber nicht geprüft ob dies 'blocking' ist. Werde ich prüfen. Abstürze hatte ich keine aber nur beschränkter Testumfang.

Bin unterwegs und kann erst in 2 Wochen weiteres unternehmen. Melde mich dann wieder.

Gruß, Norberto


sw

Hallo,
ist das Leerzeichen/Sonderzeichen Problem schon gelöst?
Ich habe die Frage auch noch einmal - an etwas prominenterer Stelle - hier https://forum.fhem.de/index.php/topic,29725.msg439865.html#msg439865 gepostet.

tupol

Das FHEM-Framework wurde gerade von Rudi und justme1968 erweitert, um Text in Anführungszeichen zu verarbeiten.
Ich habe eine neue FRITZBOX Version hochgespielt, die das nutzt. Bitte morgen mal testen.

sw

Danke für den Tipp!
Update gemacht und jetzt kann ich das Leerzeichen schützen:


get meineFritzbox tr064Command  X_VoIP:1 x_voip X_AVM-DE_DialSetConfig NewX_AVM-DE_PhoneName "FON1: DECT"


Leider antwortet meine Box mit Fehler 402 Invalid Args
(FritzBox 7272 1&1 Firmware 120.06.30)

Ich bin für jede Idee dankbar ...


tupol


sw

Wenn ich

get meineFritzbox tr064ServiceList

abfrage, dann ist X_AVM-DE_DialSetConfig dabei, es sollte den Befehl auf meiner Box also geben.

Mit

get meineFritzbox tr064Command X_VoIP:1 x_voip X_AVM-DE_DialGetConfig

bekomme ich auch eine Antwort ('NewX_AVM-DE_PhoneName' => 'FON1: DECT').
So bin ich ja erst auf die Idee gekommen, als Argument für die Set Funktion 'FON1: DECT' zu verwenden (ch habe aber auch schon 'FON1' und 'DECT' alleine versucht - bekomme immer Fehler 402)


tupol

Das ist mal wieder so Beispiel für die Qualität von TR064 bei AVM. Anscheinend kann man nur Namen eingeben, die auch über
get Fritzbox tr064Command X_VoIP:1 x_voip X_AVM-DE_GetPhonePort NewIndex 1...21
auswählbar sind.

Das sind bei mir aber nur die Dect-Telefone oder "ISDN und Schnurlostelefone".

Fon1 kann man nicht über TR064 einstellen.

sw

Ok, schade, so etwas ähnliches habe ich jetzt schon befürchtet.
Danke für deinen Hinweis!

drobskind

Hallo Zusammen,

sollte hier ein Betroffener noch mitlesen, ich habe gerade eine potentielle Lösung in einem anderen Thread geposted.

https://forum.fhem.de/index.php/topic,64152.msg554934.html#msg554934

Gruß
drobs