; Die Datenbank speichert eine neue Rufumleitung auf dem
; Feld (CF/Rufnummer des Teilnehmers). Der Anrufer bekommt das
; Ziel der Rufumleitung mit SayDigits() vorgelesen.
;
exten => _*5X.,1,Answer()
exten => _*5X.,n,Set(DB(CF/${CALLERID(num)})=${EXTEN:2})
exten => _*5X.,n,Playback(call-forwarding)
exten => _*5X.,n,SayDigits(${EXTEN:2})
exten => _*5X.,n,Hangup()
; Loescht einen evt. vorhandenen Eintrag in der Datenbank.
;
exten => *5,1,Answer()
exten => *5,n,NoOp(${DB_DELETE(CF/${CALLERID(num)})})
exten => *5,n,Playback(call-fwd-cancelled)
exten => *5,n,Hangup()
; Prueft bei einem Anruf, ob fuer die Zielrufnummer ein Ein-
; trag in der Datenbank vorhanden ist. Falls ja, wird ueber
; einen Local Channel an diesen Eintrag weitervermittelt.
; Dadurch lassen sich auch mehrere Rufumleitungen in Reihe
; schalten. Falls keine Rufumleitung gesetzt ist, startet
; normal ein Dial(). Ist der Teilnehmer besetzt oder geht
; nach 120 Sekunden nicht ran, greift der Voicemail-Aufruf.
;
exten => _X.,1,GotoIf($[${DB_EXISTS(CF/${EXTEN})} = 1]?CF:normal)
exten => _X.,n(CF),Dial(local/${DB_RESULT}@meine-telefone)
exten => _X.,n(normal),Dial(SIP/${EXTEN},120)
exten => _X.,n,VoiceMail(${EXTEN},u)