Seit einiger Zeit nutze ich ioBroker dazu, bei ankommenden Anrufen (im Falle das die Nummer nicht im Telefonbuch der FritzBox steht) eine Abfrage bei "Das Örtliche" zu machen, um mir Namen und Nummer via Telegram Bot aufs Smartphone zu schicken. Das funktioniert soweit ganz gut.
Codesample ist dieses hier:
// Rückwärtssuche von das Örtliche
const callerName = 'tr-064.0.callmonitor.inbound.callerName';
const lastCallerName ='tr-064.0.callmonitor.lastCall.callerName';
const ringing = 'tr-064.0.callmonitor.ringing';
const caller = 'tr-064.0.callmonitor.inbound.caller';
const isRequestFinished = '0_userdata.0.isRequestFinished';
const axios = require('axios');
function getCallerName(url) {
axios.get(url)
.then(function (response) {
// handle success
var matches = response.data.match(/class="st-treff-name"\>(.*?)\</); // in matches[1] steht der Namen aus Das Örtliche
log(response.data);
if (!matches){ // Das Örtliche kein Name gefunden
setState(callerName,'Unbekannt');
setState(lastCallerName,'Unbekannt');
} else {
setState(callerName,matches[1]);
setState(lastCallerName,matches[1]);
}
})
.catch(function (error) {
// handle error
console.log(error);
})
}
on({id: ringing, val: true, ack: true}, function (obj) { // wenn Anruf
setState(isRequestFinished, false);
var nummer = String(getState(caller).val); // caller Nummer auslesen
var namen = String(getState(callerName).val); // caller Name auslesen
if (!namen.length){ // Namen leer in Fritz Telefonbuch, dann Namen in Das Örtliche suchen
var url = 'http://www.dasoertliche.de/Controller?form_name=search_inv&ph=' + nummer; // suche namen
getCallerName(url);
}
setState(isRequestFinished, true);
});
Nun kämpfe seit geraumer Zeit aber auch mit SPAM-Anrufen, also irgendwelchen unbekannten Nummern, die dauernd versuchen zuhause anzurufen. Als erstes Mittel habe ich für die FritzBox ein Tellows-Abo, welches ständig ein internes Telefonbuch mit den Spamnummern aktualisiert. Dort stehen aber auch nur Nummern, die besonders häufig schon Penalty-Points bekommen haben.
Ich hätte nun gerne via ioBroker eine Abfrage gemacht, die die Nummer an Tellows schickt und als Result die Treffer zurückbekommt. Soweit scheint das auch prinzipiell möglich, in dem man eine Abfrage auf
https://www.tellows.de/basic/num/<number>?xml=1&partner=tellowsfritz&apikey=<apikey>';
triggert. Ich weiß nur nicht, wie man das Result vernünftig auswertet. Wenn ein Treffer einer Spamkategorie 7-9 herauskommt, hätte ich gerne dieses Resultat wieder zurück.
Hätte hier jemand aus der Community eine Idee?