PoempelFox Blog

[..] [RSS Feed]
 

Sat, 05. Mar 2011


Telefon-Nerver zurücknerven Created: 05.03.2011 10:34
Last modified: 05.03.2011 17:00
In den letzten Wochen gingen mir zwei besonders penetrante Telefonspammer- Callcenter auf die Nerven: Die einen wollten regelmässig irgendwelche "Umfragen". Die anderen haben mindestens 20 mal angerufen, aber grundsätzlich zu Zeiten wo ich nicht daheim war, oder es nur ganz kurz klingeln lassen. Da die Rufnummer eine 0800er war, war der Sinn wohl eher nicht das Abzocken durch Rückruf; Tante Gugel ergab, dass dieses "hochsympathische" Callcenter offenbar immer gleich mehrere Opfer anruft, nach dem Motto "geht sowieso nur jeder x-te dran". Wer zuerst abhebt wird dann "beglueckt", der Rest ist umsonst zum Telefon gelaufen.
Diese Nervereien haben mich dazu bewegt, mich mal wieder mit passenden Gegenmassnahmen zu beschäftigen. Der Treiber für die alte ISDN-Karte (Fritz Classic PCI) liess sich erstaunlich problemlos bauen: Zwar supportet AVM die Karte seit Jahren nicht mehr, es gibt aber gluecklicherweise noch genug Freiwillige, die die Linuxtreiber regelmässig auf neue Kernelversionen anpassen; Ich habe die Fritz PCI Treiber von Lutz Willek verwendet. Über CAPI kann dann Asterisk auf die Karte zugreifen - und da Asterisk eine eierlegende Wollmilchsau ist, sind hier der Fantasie wenig Grenzen gesetzt. Was ich nutze reizt natürlich nicht ansatzweise das aus, was Asterisk kann, aber es löst mein Problem: Es gibt eine einfache Blacklist fuer bekannt böse Nummern. Diese erhalten einen Text vorgelesen, dass ich nicht weiter von ihnen telefonisch belaestigt werden möchte.

Beim durchschauen der ISDN-Logs sah ich ausserdem, dass ich bisweilen Anrufe auf eine unbenutzte MSN bekam. Diese MSN habe ich seit vielen Jahren und sie wurde in dieser Zeit nie verwendet, bei den Anrufern kann es sich also nur um Callcenter handeln die ganze Nummernbereiche einfach mal mit Cold Calls durchklingeln. Da ich ohnehin noch weiter mit Asterisk spielen wollte, war mir das Anlass genug ein kleines Quiz zu implementieren. Dieses empfängt Anrufer auf ungenutzten MSNs, und stellt immer schwerer werdende Quizfragen. Falls jemand jedoch tatsächlich bis zum Ende durchhält, gibt es keine Belohnung. Der Dialog kann im Config-Auszug nachgelesen werden.
Die Sprachschnipsel habe ich mit dem MARY Text-to-Speech System erzeugt. Unter den sehr wenigen Systemen die nicht unter Knebellizenz stehen, schien es mit Abstand das beste zu sein, auch wenn das Online-Demo-Interface mich durch unterirdisches Handling von Sonderzeichen (Umlaute) in den Wahnsinn trieb: Zwar funktioniert der Javascript-Verhau der den Text im Browser vorliest, jeglicher Versuch das vorgelesene abzuspeichern führt jedoch dazu dass die Datei neu erzeugt wird, wobei dann die Umlaute offenbar aufgrund von Encoding-Problemen im vorgelesenen Text plötzlich fehlten. Das Problem durch Verwendung von z.B. "ae" statt "ä" zu umgehen ist leider auch nicht möglich.
Die Textschnipsel sind statisch, falls ich das System noch ausbaue werde ich es vermutlich so umbauen, dass sie dynamisch erzeugt werden, und somit der Text bequem in der Asterisk Konfiguration geändert werden kann.
Erfahrungen, wie Callcenter-Anrufer auf diesen Spass reagieren habe ich leider noch gar nicht - seit ich es vor 3 Tagen in Betrieb genommen habe, gab es keinen einzigen unerwünschten Anruf. Das ist erstaunlich, denn vorher waren es etwa vier pro Tag.
Hier nun noch der relevante Auszug der Asterisk-extensions.conf.

[isdn-rein] exten => ${RUFNUMMER3},1,Goto(folterquiz,s,1) [folterquiz] exten => s,1,Wait(1) exten => s,n,Answer exten => s,n,Wait(2) ; give time for the phone network to actually connect ; "Sehr geehrter Anrufer. Die Nummer von der sie anrufen ist nicht in ; der Liste der zulaessigen Anrufer verzeichnet. Bitte beantworten ; sie die folgenden einfachen Fragen, um zu beweisen dass sie kein ; Waehlcomputer sind, und durchgestellt zu werden." exten => s,n,Playback(sehrgeehrteranrufer) exten => s,n,Wait(1) ; "Geben Sie die Antworten ueber die Tasten ihres Telefons ein" exten => s,n,Playback(gebensiedieantworten) exten => s,n,Wait(1) ; Timeouts fuer Tastendruecke auf 15 Sekunden setzen. exten => s,n,Set(TIMEOUT(digit)=15) exten => s,n,Set(TIMEOUT(response)=15) ; Quizfrage stellen: "Wieviel ist 4 plus 2?" exten => s,n,Macro(quizfrage,wievielist4plus2,6) exten => s,n,Wait(1) ; Quizfrage stellen: "Was ist die Wurzel aus 64?" exten => s,n,Macro(quizfrage,wasistdiewurzelaus64,8) exten => s,n,Wait(1) ; Quizfrage stellen: "Wie lautet die sechste Nachkommastelle von Pi?" exten => s,n,Macro(quizfrage,wielautetdiesechstenachkommastellevonpi,2) exten => s,n,Wait(1) ; Quizfrage stellen: "Berechnen sie 47 mal 11 plus 23 mal 23 minus der ; Wurzel aus 1083681" exten => s,n,Macro(quizfrage,berechnensie47mal11plus23mal23minuswurzel1083681,5) exten => s,n,Wait(1) ; "Danke dass sie an unserem Quiz teilgenommen und alle Fragen richtig ; beantwortet haben. Dieser Anruf kostet 47 Euro 11 aus dem deutschen ; Festnetz. Mobilfunkpreise abweichend." exten => s,n,Playback(dankedasssieteilgenommen) exten => s,n,Wait(1) ; "Da wir nicht davon ausgehen, dass ein Mensch ausreichende Geduld aufbringt, ; derart daemliche, von einen schlechten Sprachsynthesesystem gestellte ; Fragen zu beantworten, haben sie hiermit bewiesen, dass Sie eine Maschine ; sind, die programmiert ist dieses System zu umgehen. Wir werden ihre ; Verbindung daher jetzt trennen." exten => s,n,Playback(dawirnichtdavonausgehen) exten => s,n,Wait(1) exten => s,n,Hangup ; und auflegen ; Quizfrage Macro. ; Parameter: soundfile-mit-frage, richtige-antwort (eine ziffer!) ; beendet bei falscher Antwort die Verbindung, kehrt bei richtiger ; Antwort zurueck. [macro-quizfrage] exten => s,1,Playback(${ARG1}) ; Frage vorlesen exten => s,n,Read(quizantwort,,1) ; Antwort lesen, max. eine Ziffer exten => s,n,GotoIf($["${ARG2}" = "${quizantwort}"]?richtig:falsch) exten => s,n(falsch),Playback(leiderfalsch) ; "Diese Antwort ist leider falsch" exten => s,n,Wait(2) exten => s,n,Hangup exten => s,n(richtig),Playback(richtig) ; "Richtig." ; automatically returns

1 comment
Hahaha! mir fehlen die worte, wie geil ist das denn!!
Pjodrr 05.03.2011 13:05

write a new comment:
name or nickname
eMail adress (optional)
Your comment:
calculate: (2 times 10) plus 3
 

EOPage - generated with blosxom