- Mitglied seit
- 7 Jun 2005
- Beiträge
- 323
- Punkte für Reaktionen
- 0
- Punkte
- 16
Hallo Leutz!
Ich habe ein kleines Script verfeinert. Es besteht aus zwei Teilen:
Dem AGI Teil und dem Dialplan, der Spammer einfach an sich selbst weiterleitet! Das ist sehr unterhaltsam.
Über tellows.de ermittle ich eine Spamscore. Liegt diese über 6 handelt es sich ziemlich sicher um Spam.
Nun liegt in ${SPAMSCORE} ein Wert, mit dem man entscheiden kann, was man machen will. Z.B.:
Ich hatte einfach genug Spam:
Mit diesem Script hatte ich bisher 100% Erfolg und habe nun endlich Ruhe.
Ein bischen lasse ich Euch daran teilhaben.
Vielleicht habt ihr noch ein paar gute Ideen.
Ich hoffe, ihr könnt es gebrauchen.
Der meimi
Ich habe ein kleines Script verfeinert. Es besteht aus zwei Teilen:
Dem AGI Teil und dem Dialplan, der Spammer einfach an sich selbst weiterleitet! Das ist sehr unterhaltsam.
Über tellows.de ermittle ich eine Spamscore. Liegt diese über 6 handelt es sich ziemlich sicher um Spam.
Code:
.....
SPAMSCORE=$(lynx -dump http://www.tellows.de/basic/num/$PHONENR | sed -ne '/Score:/{s/.*.: //p}')
echo "SET VARIABLE SPAMSCORE \"$SPAMSCORE\""
.....
Nun liegt in ${SPAMSCORE} ein Wert, mit dem man entscheiden kann, was man machen will. Z.B.:
Code:
&precall-in(${CALLERID(num)});
switch (${SPAMSCORE}) { // Ist das ein normaler Anruf?
pattern [0-4]: // Hier könnte man die Zeit einschränken
Verbose(Das ist wahrscheinlich ein seriöses Unternehmen);
Dial(${GLOBAL(INTERNALPHONES)}|${GLOBAL(RUFDAUER)}|${GLOBAL(RUFFLAGS)});
Dial(${GLOBAL(ANRUFBEANTWORTER)}|${GLOBAL(RUFDAUER)}|${GLOBAL(RUFFLAGS)});
break;
pattern [5-6]: // Das sollte der Normalfall sein
Verbose(Das ist wahrscheinlich OK);
Dial(${GLOBAL(INTERNALPHONES)}|${GLOBAL(RUFDAUER)}|${GLOBAL(RUFFLAGS)});
Dial(${GLOBAL(ANRUFBEANTWORTER)}|${GLOBAL(RUFDAUER)}|${GLOBAL(RUFFLAGS)});
break;
pattern [7-9]: // Hier werden User geblockt
Verbose(Das ist sehr wahrscheinlich ein unseriöses Unternehmen);
System(echo "${PNUM} wurde wegen unseriosität abgelehnt. Er hatte SPAMSCORE ${SPAMSCORE}" | mail -r [email protected] -s "Unseriöser Anruf" [email protected]);
switch (${CALLERID(num)}) {
pattern +49800.: // Erstmal nur Kostenlose Nummern
Verbose(Spammer mit 0800 verbinde mit sich selbst);
MixMonitor(/var/log/asterisk/_spam_${STRFTIME(${EPOCH},,%d.%m.%y_%H%M%S)}_${CALLERID(num)}.wav||chmod 777 /var/log/asterisk/?*.wav ; find /var/log/asterisk -type f \( -name '*.wav' \) -mtime +7 -exec rm {} \; );
Dial(SIP/${CALLERID(num)}@123456|${GLOBAL(RUFDAUER)}|${GLOBAL(RUFFLAGS)});
break;
default:
Wait(5);
Playback(/_/ast/spam2);
Wait(2);
Hangup();
}
break;
case 10: // Dafür überlege ich mir noch was...
Verbose(Das ist mit Sicherheit ein unseriöses Unternehmen);
System(echo "${Callerid(all)} wurde wegen unseriosität abgelehnt. Er hatte SPAMSCORE ${SPAMSCORE}" | mail -r [email protected] -s "Unseriöser Anruf" [email protected]);
Wait(5);
Playback(/_/ast/spam2);
Wait(2);
Hangup();
break;
default: // Was ist hier passiert? Besser selber rangehen...
Verbose(Invalid SPAMSCORE: ${SPAMSCORE});
switch (${CALLERID(num)}) {
case Anonymous: // Wer ist das?
Verbose(Anonymous hat angerufen...);
goto nomailwhenanonymous;
break;
default:
Verbose(Mal ne mail wegen unerkanntem Spam verschicken...);
System(echo "http://www.tellows.de/num/${CALLERID(num)} wurde nicht mit SPAMSCORE erkannt. Er hatte SPAMSCORE=${SPAMSCORE}" | mail -r [email protected] -s "Unseriöser Anruf" [email protected]);
}
nomailwhenanonymous:
Dial(${GLOBAL(INTERNALPHONES)}|${GLOBAL(RUFDAUER)}|${GLOBAL(RUFFLAGS)});
Dial(${GLOBAL(ANRUFBEANTWORTER)}|${GLOBAL(RUFDAUER)}|${GLOBAL(RUFFLAGS)});
}
Ich hatte einfach genug Spam:
Code:
"2010-08-20 12:35:03" context incomming "+498005890499010" ---> +491234567890
"2010-08-24 12:20:27" context incomming "+498005890499010" ---> +491234567890
"2010-08-25 07:10:04" context incomming "+498005890499010" ---> +491234567890
"2010-08-26 13:29:48" context incomming "+498005890499010" ---> +491234567890
"2010-08-27 10:45:24" context incomming "+498005890499010" ---> +491234567890
"2010-08-28 08:48:27" context incomming "+498005890499010" ---> +491234567890
"2010-08-28 11:51:06" context incomming "+498005890499010" ---> +491234567890
"2010-08-30 07:42:27" context incomming "+498005890499010" ---> +491234567890
"2010-08-30 12:02:05" context incomming "+498005890499010" ---> +491234567890
"2010-08-31 07:16:50" context incomming "+498005890499010" ---> +491234567890
"2010-09-01 11:02:14" context incomming "+498003009932" ---> +491234567890
"2010-09-06 13:53:30" context incomming "+498005890499010" ---> +491234567890
"2010-09-07 12:58:39" context incomming "+498005890499010" ---> +491234567890
"2010-09-08 10:31:56" context incomming "+498005890499010" ---> +491234567890
"2010-09-10 11:45:50" context incomming "+498005890499010" ---> +491234567890
"2010-09-14 09:32:47" context incomming "+498005890499010" ---> +491234567890
"2010-09-15 09:54:48" context incomming "+498005890499010" ---> +491234567890
"2010-09-15 12:50:04" context incomming "+498003009932" ---> +491234567890
"2010-09-16 09:34:47" context incomming "+498005890499010" ---> +491234567890
"2010-09-20 08:18:56" context incomming "+498005890499010" ---> +491234567890
"2010-09-21 10:32:54" context incomming "+498005890499010" ---> +491234567890
"2010-09-21 10:33:58" context incomming "+498005890499010" ---> +491234567890
"2010-09-21 10:35:59" context incomming "+498005890499010" ---> +491234567890
"2010-09-21 10:37:42" context incomming "+498005890499010" ---> +491234567890
"2010-09-22 08:41:42" context incomming "+498003009932" ---> +491234567890
"2010-09-22 08:44:06" context incomming "+498003009932" ---> +491234567890
Mit diesem Script hatte ich bisher 100% Erfolg und habe nun endlich Ruhe.
Ein bischen lasse ich Euch daran teilhaben.
Vielleicht habt ihr noch ein paar gute Ideen.
Ich hoffe, ihr könnt es gebrauchen.
Der meimi
Anhänge
Zuletzt bearbeitet: