Nagut.
exten => 1234/_00X.,1,NoOp()
...trifft zu, wenn Anrufernummer mit 00 beginnt, sonst gibt es die Extension 1234 nicht (Extension not found)
exten => 1234/_49X.,1,NoOp()
...trifft zu, wenn Anrufernummer mit 49 beginnt, sonst gibt es die Extension 1234 nicht (Extension not found)
Hilft das vielleicht weiter?
Innerhalb der Extension kann auch mit GotoIf() und REGEX() auf jede beliebige Bedingung geprüft werden.
Code:
same => n,Verbose(${REGEX("^[[COLOR=#0000ff][B]0-9[/B][/COLOR]]\{[COLOR=#ee82ee][B]11[/B][/COLOR]\,[COLOR=#008000][B]11[/B][/COLOR]\}$" ${CALLERID(num)})})
...liefert eine 1 zurück wenn die rufende Nummer mindestens
11 Stellen und höchstens
11 Stellen, also genau aus 11 Ziffern besteht, aus den Zahlen
0-9.
Da sie entweder 0 (falsch) oder 1 (wahr) zurückliefert braucht es im GotoIf() keine Bedingungsprüfung mehr...
Code:
same => n,GotoIf(${REGEX("^[[COLOR=#0000ff][B]0-9[/B][/COLOR]]\{[COLOR=#ee82ee][B]11[/B][/COLOR]\,[COLOR=#008000][B]11[/B][/COLOR]\}$" ${CALLERID(num)})})}?[COLOR=#ff0000][B]haseleven[/B][/COLOR])
...
same => n([COLOR=#ff0000][B]haseleven[/B][/COLOR]),Hangup()
Wenn ich dann mit einer 11 stelligen Nummer anrufe...
Code:
[Dec 9 21:55:00] -- Executing [628@osmc:1] NoOp("SIP/fbfgateway-00000031", "fbfgateway Incoming call: 0306XXXXXX5") in new stack
[Dec 9 21:55:00] -- Executing [628@osmc:2] Verbose("SIP/fbfgateway-00000031", "1") in new stack
[Dec 9 21:55:00] 1
[Dec 9 21:55:00] -- Executing [628@osmc:3] GotoIf("SIP/fbfgateway-00000031", "[COLOR=#ff0000]1[/COLOR]?[COLOR=#ff0000]haseleven[/COLOR]") in new stack
[Dec 9 21:55:00] -- Goto (osmc,628,[COLOR=#ff0000]7[/COLOR])
[Dec 9 21:55:00] -- Executing [628@osmc:[COLOR=#ff0000]7[/COLOR]] [COLOR=#ff0000]Hangup[/COLOR]("SIP/fbfgateway-00000031", "") in new stack
Find also das Muster in der Spamnummer und prüfe darauf.
Beispiel:
5678 inmitten einer Nummer...
${REGEX("
5678" ${CALLERID(num)})}
Ohne Stringanfang (
^), Ende (
$) oder
\{min\,
max\} Angabe.
Einen hab ich noch
Beide Varianten der Spamnummer in die
Blacklist und...
Code:
same => n,GotoIf(${BLACKLIST()}?blacklisted)
same => n,GotoIf(!${BLACKLIST()}?normaldial)
same => n(normaldial),Dial(SIP/${EXTEN})
same => n(blacklisted),Hangup()
...so kannste einen reinschreiben...
Code:
same => n(doblacklist),Set(DB(blacklist/${CALLERID(num)})=AUTOSPERRE)
Oder im CLI...
Code:
asterisk*CLI> [B]database put blacklist 0049123456789 Kommentar[/B]