DE: Unterscheidung von Analog-Anrufen von echten CID Withheld Anrufen

Vor einiger Zeit verspürte ich den Wunsch im Telefon-Log der Horstbox die Spam-Anrufe von Analog-Anrufern unterscheiden zu können.

Ich startete mit der Erweiterung meiner Spam-Behandlung in der extensions.conf, war aber erst nicht erfolgreich, da ich Asterisk denn doch nicht so gut kenne.

Glücklicherweise halfen mir die netten Leute im ip-phone Forum und nun kann ich Spam-Anrufe und Analog-Anrufe in den Telefon-Logs unterscheiden. Demnächst kann ich dann eine Statistik über eingegangene Spam-Anrufe erstellen.

Hier die Modifikation der extenstions.conf damit statt keiner Nummer die Nummer 999 erscheint:

[isdn-in]
...
 exten => 123456,1,ModifyCallerID(doit)
 exten => 123456,n,Set(CALLERID(num)=${CALLERID(num)})
 exten => 123456,n,Set(CALLERID(num)=${IF($[ "${TRANSFERCAPABILITY}" = "3K1AUDIO"]?"999":CALLERID(num))}) ;
 exten => 123456,n,NoOp("iSDN-in : ${CALLERID(num)} Transfercapability: ${TRANSFERCAPABILITY}")
 exten => 123456,n,GotoIf($["${CALLERID(num)}" = "CID withheld"]?spam:) ; keine Nummer?
 exten => 123456,n,GotoIf($["${CALLERID(num)}" = ""]?istanalog:ist216) ; keine Nummer?
 exten => 123456,n(istanalog),GotoIf($["${TRANSFERCAPABILITY}" = "3K1AUDIO"])?annehmen:spam) ; kein Analog
 exten => 123456,n(ist216),GotoIf($["${CALLERID(num)}" = "216"]?spam:ist180) ; wenn 200
 exten => 123456,n(ist180),GotoIf($["${CALLERID(num):0:4}" = "0180"]?spam:ist800) ; wenn mit 0180 beginnt->spam, sonst weiter
...

Die korrekte Zeile in der extensions.conf muss so lauten:

[isdn-in]
...
 exten => 123456,1,ModifyCallerID(doit)
 exten => 123456,n,Set(CALLERID(num)=${CALLERID(num)})
 exten => 123456,n,Set(CALLERID(num)=${IF($[${TRANSFERCAPABILITY} = 3K1AUDIO]?999:${CALLERID(num)})})
 exten => 123456,n,NoOp("iSDN-in : ${CALLERID(num)} Transfercapability: ${TRANSFERCAPABILITY}")
 exten => 123456,n,GotoIf($["${CALLERID(num)}" = "CID withheld"]?spam:) ; keine Nummer?
 exten => 123456,n,GotoIf($["${CALLERID(num)}" = ""]?istanalog:ist216) ; keine Nummer?
 exten => 123456,n(istanalog),GotoIf($["${TRANSFERCAPABILITY}" = "3K1AUDIO"])?annehmen:spam) ; kein Analog
 exten => 123456,n(ist216),GotoIf($["${CALLERID(num)}" = "216"]?spam:ist180) ; wenn 200
 exten => 123456,n(ist180),GotoIf($["${CALLERID(num):0:4}" = "0180"]?spam:ist800) ; wenn mit 0180 beginnt->spam, sonst weiter
...

Hier mal ein Auszug aus dem Telefon-Log nach der Änderung (man beachte die fettgedruckten Einträge:














Eingehender Anruf 08.03.2010 10:12:33 00:00
Eingehender Anruf 08.03.2010 12:59:45 00:00
Eingehender Anruf 999 08.03.2010 14:03:27 00:16
Eingehender Anruf 08.03.2010 14:14:49 00:00
Eingehender Anruf xxxx 08.03.2010 14:41:59 00:16
Eingehender Anruf xxxx 08.03.2010 16:26:53 00:00
Ausgehender Anruf analoges Telefon an Tel1 <21> xxxx 08.03.2010 16:58:45 00:43
Eingehender Anruf 01805777344 08.03.2010 18:08:04 00:00
Eingehender Anruf 01805777344 08.03.2010 18:08:11 00:00
Ausgehender Anruf analoges Telefon an Tel1 <21> xxxx 08.03.2010 18:32:53 07:30
Eingehender Anruf 01805777344 08.03.2010 18:48:43 00:00
Eingehender Anruf 01805777344 08.03.2010 18:48:51 00:00
Eingehender Anruf 01805777344 09.03.2010 15:12:33 00:00
Eingehender Anruf 01805777344 09.03.2010 15:12:41 00:00
Eingehender Anruf xxxx 09.03.2010 17:05:43 00:00
Eingehender Anruf 01805777344 10.03.2010 12:01:35 00:00
Eingehender Anruf 01805777344 10.03.2010 12:01:43 00:00

Manche Spam-Anrufer kapieren aber auch nix oder wieso rufen die im Sekundentakt an?