.titleBar { margin-bottom: 5px!important; }

Rufumleitung über Datenbank (Code von Betateilchen)

Dieses Thema im Forum "Asterisk Allgemein" wurde erstellt von Zotti_20, 23 Feb. 2006.

  1. Zotti_20

    Zotti_20 Neuer User

    Registriert seit:
    27 Okt. 2005
    Beiträge:
    30
    Zustimmungen:
    0
    Punkte für Erfolge:
    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
    
    
     
  2. chaos2000

    chaos2000 Aktives Mitglied

    Registriert seit:
    22 Aug. 2004
    Beiträge:
    2,028
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    LE
    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
    
    
     
  3. Zotti_20

    Zotti_20 Neuer User

    Registriert seit:
    27 Okt. 2005
    Beiträge:
    30
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Danke chaos2000
    das war es meiner Meinung nach schon.
    Nun funktioniert alles...