Neuigkeiten:

Am Sonntag den 8.12.2024 kann es ab ca. 8:00 Uhr zu kurzzeitigen Einschränkungen / Ausfällen bei den Diensten des FHEM Vereines kommen.
Die Server müssen mal gewartet und dabei neu gestartet werden ;)

Hauptmenü

Rufsperren auslesen

Begonnen von TomLee, 08 April 2024, 18:50:02

Vorheriges Thema - Nächstes Thema

TomLee

Hallo,

seit kurzem kann man ja mit blockIncomingPhoneCall im FRITZBOX-Modul Einträge für Rufsperren konfigurieren.
Was ich vermisse ist die Möglichkeit diese Rufsperren auszulesen.

Kann mir bitte wer zeigen wie solch ein tr064-Befehl für GetCallBarringList aussieht ?

Ist es denkbar dafür einen getter in FRITZBOX oder eher FB_CALLMONITOR zu ergänzen ?

Gruß

Thomas

Otto123

Hallo Thomas,

probier mal in der box hinter tr064Command
X_AVM-DE_OnTel:1 x_contact GetCallBarringListDa kommt bei mir ein Link auf eine xml Datei zurück.

Mit meiner Notiz bin ich da ziemlich geradeaus hingekommen.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

JoWiemann

Hallo,

Du kannst auch alle Einträge so abrufen:

get <name> luaData xhr 1 page callLock

oder im json Format

get <name> luaData [json] xhr 1 page callLock

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

TomLee

Thx, ich schaue mir später alle Vorschläge an, geht gerade nicht.

Die Json-Variante hört sich interessant an, am Ende sollen die Nummern im sip_filter-Attribut einer SIP-Definition landen. Meine bisherige Lösung über ein Spam-Telefonbuch mag ich damit ersetzen.

 

TomLee

X_AVM-DE_OnTel:1 x_contact GetCallBarringList
Service='X_AVM-DE_OnTel:1'   Control='x_contact'   Action='GetCallBarringList'
----------------------------------------------------------------------
$VAR1 = {
          'GetCallBarringListResponse' => {
                                            'NewPhonebookURL' => 'https://192.168.188.1:49443/phonebook.lua?sid=0b2e5e06bb2c55c0&pbid=258'
                                          }
        };

Wenn ich die URL aufrufe, bekomme ich eine 404-Seite zurück ?
Gibts bei dem Aufruf irgendwas zu beachten ?



Wäre es i.O. wenn ich mir die Nummern unkonventionell via regexp aus dem JSON hole ?
{my $v=q({"data":[{"numberstring":"01234","uid":101,"numbers":[{"type":"geschäftl.","number":"01234"}],"typeSuffix":"_entry","name":"blib"},{"numberstring":"4567","uid":100,"numbers":[{"type":"geschäftl.","number":"04567"}],"typeSuffix":"_entry","name":"Testy"}],"sid":"c79e146eab0af28c","sidNew":0,"pid":"fonDevice"});;join (',',$v =~ m/number...(\d+)/gm)}
Wie würdet Ihr das angehen ?

JoWiemann

Hallo,

Du kannst das json auch in einen Hash konvertieren und dann einfach eine Schleife drüber laufen lassen.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

Otto123

Zitat von: TomLee am 08 April 2024, 23:14:20Wenn ich die URL aufrufe, bekomme ich eine 404-Seite zurück ?
Gibts bei dem Aufruf irgendwas zu beachten ?
Bei mir wurde sofort eine xml Datei geladen.  :-\
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

JoWiemann

Zitat von: Otto123 am 09 April 2024, 11:34:34
Zitat von: TomLee am 08 April 2024, 23:14:20Wenn ich die URL aufrufe, bekomme ich eine 404-Seite zurück ?
Gibts bei dem Aufruf irgendwas zu beachten ?
Bei mir wurde sofort eine xml Datei geladen.  :-\

Hallo,

ich bekomme auch nur eine 404. Habe aber auch dann nicht weiter geforscht.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

Otto123

ja, lohnt sich wahrscheinlich nicht. Aber ich bekomme nur die HTTPS Zertifikatswarnung der Fritzbox, wenn ich die ignoriere geht es. Ich dachte ich hätte vielleicht gestern noch eine Sitzung zur FB offen gehabt, aber es nicht so. 
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

TomLee

#9
Zitat von: JoWiemann am 09 April 2024, 07:32:25Hallo,

Du kannst das json auch in einen Hash konvertieren und dann einfach eine Schleife drüber laufen lassen.

Grüße Jörg

Einfach weil ich Spass dran hab und es mich fuchst wie man so was macht, halt ich hier mal fest wie das für die numberstring-Werte ginge. Bleiben tu ich aber bei der regexp-Variante.

Ohne Zuhilfenahme von "KI", ohne Unterstützungsbeiträge von Betateilchens hier im Forum zu lesen hätte ich es aber nicht hinbekommen:

sub treb {
my $json = '{"data":[{"name":"Spam1","typeSuffix":"_entry","numbers":[{"type":"geschäftl.","number":"04042236852"}],"uid":101,"numberstring":"04042236852"},{"name":"Spam10","typeSuffix":"_entry","numbers":[{"number":"03414999480076","type":"privat"}],"uid":109,"numberstring":"03414999480076"},{"numberstring":"0302325671212","uid":110,"numbers":[{"type":"privat","number":"0302325671212"}],"typeSuffix":"_entry","name":"Spam11"},{"typeSuffix":"_entry","name":"Spam12","numbers":[{"type":"privat","number":"020189067704"}],"uid":111,"numberstring":"020189067704"},{"numberstring":"021732651045","uid":112,"numbers":[{"number":"021732651045","type":"privat"}],"name":"Spam13","typeSuffix":"_entry"},{"numberstring":"036121871533","uid":113,"numbers":[{"number":"036121871533","type":"privat"}],"typeSuffix":"_entry","name":"Spam14"},{"typeSuffix":"_entry","name":"Spam15","uid":114,"numbers":[{"type":"privat","number":"04085599911"}],"numberstring":"04085599911"},{"name":"Spam16","typeSuffix":"_entry","numberstring":"0721509531027","uid":115,"numbers":[{"type":"privat","number":"0721509531027"}]},{"typeSuffix":"_entry","name":"Spam17","uid":116,"numbers":[{"type":"privat","number":"039155721386"}],"numberstring":"039155721386"},{"numberstring":"039155721230","numbers":[{"number":"039155721230","type":"geschäftl."}],"uid":100,"typeSuffix":"_entry","name":"Spam2"},{"typeSuffix":"_entry","name":"Spam3","numberstring":"073598407944","numbers":[{"type":"privat","number":"073598407944"}],"uid":102},{"numberstring":"028616879965","uid":104,"numbers":[{"type":"privat","number":"028616879965"}],"name":"Spam4","typeSuffix":"_entry"},{"numbers":[{"type":"privat","number":"085631477662"}],"uid":103,"numberstring":"085631477662","name":"Spam5","typeSuffix":"_entry"},{"numberstring":"089452054228","uid":105,"numbers":[{"number":"089452054228","type":"privat"}],"name":"Spam6","typeSuffix":"_entry"},{"numberstring":"06920023399","numbers":[{"number":"06920023399","type":"privat"}],"uid":106,"typeSuffix":"_entry","name":"Spam7"},{"numbers":[{"number":"023274177620","type":"privat"}],"uid":107,"numberstring":"023274177620","typeSuffix":"_entry","name":"Spam8"},{"name":"Spam9","typeSuffix":"_entry","numberstring":"0891247111346","numbers":[{"type":"privat","number":"0891247111346"}],"uid":108}],"sid":"bcc25b1219484c07","sidNew":1,"pid":"fonDevice"}';
my $decoded = decode_json($json);
my @numbers = @{$decoded->{'data'}};
my $counter = 0;
@numbers = map { $numbers[$counter++]->{'numberstring'} } @numbers;
Debug join(",",@numbers);
}

edit:

Die Nummern aus number:
@numbers = map { $numbers[$counter++]->{'numbers'}->[0]->{'number'} } @numbers;