[incomingFBF_A]
; Der Asterisk ist schon toll, die Sternchen in der CALLERID(number) bei internen Anrufen aus der FBF weniger.
; Hängt z.B. eine Türsprechanlage intern an der FBF, so beginnt die Anrufernummer immer mit **
; Das ist sehr hinderlich, wenn man z.B. eine Absenderufnummer setzen möchte, damit man bei verpasstem
; Türklingeln Bescheid weis (und das nicht mit einem unbekannten Anrufer verwechselt)
; * im Dialplan ist leider ein no-go. Angeblich soll \* gehen. Bei mir nicht. Auch nicht "*" oder '*'
; Also gehe ich nach dem Ausscheidungsprinzip.
; An einer IP-Telephon-Nebenstelle der Fritzbox gibt es nur drei Arten von Anrufernummern
; - eine richtige Rufnummer
; - "anonymous"
; - interne mit "**" am Anfang
; Da im Wählplan das spezielle vor dem Allgemeinen greift, brauche ich nur die ersten zwei
; Möglichkeiten zu regeln; was übrig bleibt, ist intern.
; Um unterschiedliche interne Anrufer unterschiedlich behandeln zu können, ersetze ich ** durch "aa"
; Auch "anonymous" wird ersetzt - und zwar durch eine Rückrufnummer, mit der ich direkt zum AB der Fritzbox komme.
; Wenn die Anrufernummer eine Zahl ist, gehts direkt weiter zur nächsten Phase
exten => _X./_X.,1,Dial(Local/${EXTEN}@incomingFBF_B)
; Ist der Anrufer unbekannt, setze ich die Nummer zu meinem AB
exten => _X./anonymous,1,Set(CALLERID(number)=00494012345670600); hier noch mit 00!
exten => _X./anonymous,2,Dial(Local/${EXTEN}@incomingFBF_B)
; wenn keins der beiden der Fall ist, wirds wohl FBF intern sein...
exten => _X.,1,Set(CALLERID(number)=aa${CALLERID(number):2})
exten => _X.,2,Dial(Local/${EXTEN}@incomingFBF_B)
[incomingFBF_B]
; Internationalisieren der Rufnummer in das Format 49234567890 (internationale Vorwahl ohne 00 und ohne +)
; Als erstes sorgen wir dafür, dass wir beim Debugging mit asterisk -rcvvvvvvvvvvvvvvv auch was sehen
exten => _X.,1,NoOp(${CALLERID(number)})
exten => _X.,2,NoOp(${CALLERID(name)})
exten => _X.,3,NoOp(${EXTEN})
exten => _X.,4,Goto(10)
; Jetzt prüfen wir, ob die Nummer international ist, mit 00, und schneiden die beiden Nullen ab
exten => _X.,10,GotoIf($[${CALLERID(number):0:2}=00]?11:20)
exten => _X.,11,set(CALLERID(number)=${CALLERID(number):2}) ;
exten => _X.,12,Goto(100)
; Jetzt prüfen wir, ob die Nummer national ist, mit 0, und schneiden die Null ab und setzen 49 davor
exten => _X.,20,GotoIf($[${CALLERID(number):0:1}=0]?21:30)
exten => _X.,21,set(CALLERID(number)=49${CALLERID(number):1})
exten => _X.,22,Goto(100)
; Nun geht es an "Spezialnummern", mit führendem "**". Z.B. interne FBF-Telefone. Wurde ja schon zu aa gewandelt.
; Phase A war sozusagen der Verdauungstrakt, Aus schönen Sternchen wurde aa.
; Da setzen wir die eigene Festnetznummer+interneNummer, ob wir die von außen so anrufbar machen ist ein anderes Thema,
; aber wir können zumindest im Handy einen passenden Telephonbucheintrag erstellen, um gleich zu sehen, was das für ein Anruf ist.
; Hier wird z.B. bei der Türsprechstelle (interne Nummer an der FBF **6201, es ist eine IP-Türsprechstelle Klingeltaste 1) EigeneNummer+7777 gesetzt
exten => _X.,30,GotoIf($[${CALLERID(number)}=aa6201]?31:40)
exten => _X.,31,set(CALLERID(number)=494012345677777) ;
exten => _X.,32,Goto(100)
exten => _X.,40,GotoIf($[${CALLERID(number):0:2}=aa]?41:50)
exten => _X.,41,set(CALLERID(number)=494012345670${CALLERID(number):2}) ;
exten => _X.,42,Goto(100)
;Platzhalter für weitere Fälle
exten => _X.,50,Goto(100)
; Wechsel in die weitere Rufbehandlung
exten => _X.,100,NoOp(${CALLERID(number)})
exten => _X.,101,NoOp(${CALLERID(name)})
exten => _X.,102,NoOp(${EXTEN})
exten => _X.,103,Dial(Local/${EXTEN}@incomingFBF_C)
exten => _X.,104,Hangup()
[incomingFBF_C]
; nun gehts zu den Kontexten der Umleitungs/Parallelrufziele
; immer bedenken: die Nummer ist jetzt international ohne 00, passend für Dellmontmarken
; will man zu einer SIP-Nebenstelle am Asterisk rufen (z.B. echtes IP-Telefon)
; muss man die 00 noch davor packen
exten => 621,1,Dial(Local/rul@parallelFVD)
Wenn man mehrere Nebenstellen an der FBF registriert hat, um verschiedene Festnetznummern umzuleiten, kann man hier nach Ziel trennen.
;exten => 622,1,Dial(Local/rul@parallelCV&Local/alle@lokaleTelephone)
[parallelFVD]
exten => rul,1,noop();Set(CALLERID(name)=${CALLERID(number)})
exten => rul,2,Dial(SIP/[email protected],50,w)
[parallelCV]
exten => rul,1,Set(CALLERID(name)=${CALLERID(number)})
exten => rul,2,Dial(SIP/[email protected],50,w)
[lokaleTelephone]
exten => alle,1,Set(CALLERID(number)=00${CALLERID(number)})
exten => alle,2,Dial(SIP/201&SIP/202&SIP/203,50)