Rufumleitung über Datenbank (Code von Betateilchen)

Zotti_20

Neuer User
Mitglied seit
27 Okt 2005
Beiträge
30
Punkte für Reaktionen
0
Punkte
0
Hallo, vieleicht kann mir jemand bei diesem Problem helfen...
Habe den Code aus einem älteren Beitrag von Bateteilchen.
Ich suche gerade eine schöne Lösung für eine Rufumleitung mit dem Asterisk und da bin ich im Forum auf den unten folgenden Code gestoßen.
Ich habe den Code in meine extensions.conf eingebunden, das mit der Rufumleitung funktioniert nun soweit auch Wunderbar, ich kann nun nur nicht mehr meine normalen Telefone erreichen, da kommt dann immer die "invalid" Ansage.
Also wenn ich vom Apparat 100, "**400" wähle, werden die Anrufe, welche nun an 400 kommen auf 100 weitergeleitet. Wenn ich nun jedoch z.B. vom Apparat 300 die Nummer 200 anwählen will, kommt die "invalid" Ansage.
Ich hoffe ihr versteht wie ich es meine...
Hier ist mal noch der Link zu dem ursprünglichen Thread:
http://www.ip-phone-forum.de/showthread.php?t=77677
Danke schon mal für eure Hilfe...
Gruß Zotti

extensions.conf
Code:
[general]
static=yes
writeprotect=no

[global]
RINGTIME=20

; --------------------------------------------------------------------
; Es hat sich als gute Praxis erwiesen, die Inhalte der Datei
; extensions.conf modular aufzubauen. Diese Praxis wollen
; wir auch hier anwenden
;

[echotest]
exten => 81,1,answer
exten => 81,2,wait,1
exten => 81,3,playback,demo-echotest
exten => 81,4,echo
exten => 81,5,playback,demo-echodone
exten => 81,6,hangup

[mailbox]
exten => _ZXX,1,Dial(SIP/${EXTEN},${RINGTIME})
exten => _ZXX,2,Voicemail(u${EXTEN})
exten => _ZXX,3,Playback(vm-goodbey)
exten => _ZXX,4,Hangup()
exten =>_4ZXX,1,VoiceMailMain(${EXTEN:1})

[lokal]
; Erreichbarkeit der Nebenstellen 100-400
; untereinander herstellen

exten => _ZXX,1,Dial,SIP/${EXTEN}|55|Ttr


sipgate_out]
; Diesen Context verwenden wir zum waehlen von abgehenden
; Rufnummern über den Sipgate Account 6112233

exten => _0.,1,Dial,SIP/${EXTEN}@SIPGATENR|45|r

;--------------------------------------------------
[sipgate2_out]
exten => _*1.,1,Dial,SIP/${EXTEN:2}@sipgate2|45|r
;---------------------------------------------------

[ankommend]
; alle Anrufe mit einer ID XXX sollen an das SIP Endgeraet 30
; signalisiert werden

exten => SIPGATENR,1,Dial,SIP/100&SIP/300|30|r
exten => SIPGATENR,2,Goto,r-${DIALSTATUS}|1

exten => sipgate2,1,Dial,SIP/400|30|r
exten => sipgate2,2,Goto,r-${DIALSTATUS}|1

exten => r-BUSY,1,voicemail,b300
exten => r-BUSY,2,Hangup

exten => r-NOANSWER,1,voicemail,u300
exten => r-NOANSWER,2,Hangup

[alias]
;
; mit ** und der "persönlichen Rufnummer" einen Alias-Eintrag
; auf die aktuelle Nebenstelle setzen
; die "persönlichen Rufnummern" befinden sich in diesem Beispiel
; im Bereich 40-49
; Das läßt sich natürlich beliebig ändern.
; Beispiel:
; **44 setzt für die aktuelle Nebenstelle den Alias 44
; Ab sofort wird bei Anruf auf die 44 die aktuelle
; Nebenstelle angewählt.
;
exten => _**.,1,NoOp(Alias setzen)
exten => _**.,n,DBput(alias/${EXTEN:2}=${CALLERIDNUM})
exten => _**.,n,PlayBack(auth-thankyou)
exten => _**.,n,HangUp

;
; Bei Anrufen auf eine Nummer von 40-49 wird die
; asterisk-interne Datenbank befragt, zu welcher "echten"
; Nebenstelle der Anruf geleitet werden soll.
;
exten => _ZXX,1,NoOp(Alias suchen und waehlen)

exten => _ZXX,n,DBget(alias=alias/${EXTEN})
; wird kein Eintrag gefunden, geht es mit n+101 = 103 weiter

exten => _ZXX,n,Dial(SIP/${alias},30,r)
; Hier wird die "echte" Nebenstelle angewählt.
; der Dial-Befehl kann natürlich beliebig geändert werden,
; also für CAPI oder ZAP oder IAX oder was auch immer

exten => _ZXX,n,HangUp ; Auflegen


;
; wird kein Eintrag für den Alias gefunden, erfolgt eine
; Fehleransage und der Anruf wird beendet.
;
exten => _ZXX,103,Answer
exten => _ZXX,n,Wait(1)
exten => _ZXX,n,PlayBack(invalid)
exten => _ZXX,n,HangUp

;
; Das ganze läßt sich noch erweitern, um eine "Abmeldefunktion"
; damit der Alias wieder aus der Datenbank gelöscht wird.
; *40+"persönliche Rufnummer" löscht den Alias-Eintrag aus der DB
;

exten => _*40.,1,NoOp(Alias loeschen)
exten => _*40.,n,DBdel(alias/${EXTEN:3})
exten => _*40.,n,PlayBack(auth-thankyou)
exten => _*40.,n,HangUp

[default]
include => alias
include => lokal
include => echotest
include => mailbox
include => sipgate_out
include => sipgate2_out
 
Versuche es mal mit :

Code:
;
; wird kein Eintrag für den Alias gefunden, erfolgt eine
; Fehleransage und der Anruf wird beendet.
;
exten => _ZXX,103,Dial(SIP/${EXTEN})
exten => _ZXX,n,HangUp
 
Danke chaos2000
das war es meiner Meinung nach schon.
Nun funktioniert alles...
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.