gpx2000 call forward

michl13

Neuer User
Mitglied seit
28 Sep 2007
Beiträge
21
Punkte für Reaktionen
0
Punkte
0
Hallo!

Wenn ich beim gpx2000 *72 wähle und dann die Extension (33) eingebe, auf die umgeleitet werden soll, funktioniert das. Ich sehe sofort das Umleitungssymbol.

Wenn ich im Webinterface z.B.bei Key 7:
Key Mode: Asterisk BLF
UserID:*7233

eingebe funktioniert es nicht.

Am Telefon wenn ich nun die (Sonder)Taste 7 drücke höre ich zwar die Ansage das die Nummer umgeleitet wird aber es tut sich nichts.

Hat jemand eine Idee?

Danke!
 
Wenn ich im Webinterface z.B.bei Key 7:
Key Mode: Asterisk BLF
UserID:*7233

eingebe funktioniert es nicht.

Soweit ich weiss, funktionieren die BLF-Tasten nicht waehrend eines Gespraeches. Du kannst allerdings mit zwei Tasten weiterleiten. Die BLF-Taste einfach mit 33 belegen. Asterisk BLF oder auch Speed-Dial (sofern Du kein Asterisk benutzt oder Du kein Licht haben willst). Wenn Du jetzt Transfer drueckst, hast ein Freizeichen. Dann funktionieren die Kurzwahltasten wieder, also einfach die belegte Taste druecken.
 
Alle rufe weiterleiten

Hallo!

Danke für deine Antwort!

Ich hätte gerne z.B. auf F7 eine Weiterleitung, nicht während eines Gesprächs sondern generell. Wenn ein Mitarbeiter geht, drückt er nur F7 und alle Anrufe gehen z.B. auf 33.

Wie gesagt, manuell am Telefon funktioniert es.
Leider kann ich es übers Web nicht fix programmieren.

Was genau muss ich im WebIF. eingeben?
 
Ich hätte gerne z.B. auf F7 eine Weiterleitung, nicht während eines Gesprächs sondern generell. Wenn ein Mitarbeiter geht, drückt er nur F7 und alle Anrufe gehen z.B. auf 33.

Ah.... Nun verstehe ich, was Du meinst :)

Nur leider weiss ich dazu auch keine Loesung. Ich stand vor dem gleichen Problem und habe keine Loesung gefunden, dass das Telefon die *-Kombinationen auf Kurzwahltasten interpretiert. Ich glaube nicht, dass man das irgendwie einstellen kann. Du kannst aber mal an den Grandstream-Support schreiben, die antworten eigentlich immer recht zuegig.

Ich habe das per Dialplan im Asterisk-Server geloest. Das hatte zusaetzlich den Vorteil, dass man eine BLF-LED als Anzeige benutzen konnte, ob das Telefon umgeleitet ist. Das hilft Dir aber natuerlich nicht, wenn Du keinen Asterisk-Server benutzt.
 
Hallo Chaotux,

könntest Du deine * Lösung hier posten?
Wird das auch auf Trixbox 2.6 (=Asterisk 1.4) funktionieren?
 
könntest Du deine * Lösung hier posten?
Wird das auch auf Trixbox 2.6 (=Asterisk 1.4) funktionieren?

Hier ist mein Ansatz. Der beruht allerdings darauf, dass alle internen Nummern zweistellig sind. Falls das nicht der Fall ist, musst Du da noch irgendwas anpassen. Die Nummer, auf die umgeleitet wird, darf aber ruhig mehr Ziffern haben.

Code:
        _*9XXX. => {
                CFWSRC=${EXTEN:2:2};
                CFWDST=${EXTEN:4};
                if("${DB(CFW/${CFWSRC})}" = "${CFWDST}") {
                        Devstate(ru${CFWSRC}${CFWDST},1);       // Idle - http://www.voip-info.org/wiki/view/Asterisk+cmd+BristuffDevstate
                        goto *9${CFWSRC}|1;
                }
                DB(CFW/${CFWSRC})=${CFWDST};
                Devstate(ru${CFWSRC}${CFWDST},2);               // InUse
                Playback(auth-thankyou);
                Hangup;
        };

        _*9XX => {
                CFWSRC=${EXTEN:2};
                DBdel(CFW/${CFWSRC});
                Playback(vm-goodbye);
                Hangup;
        };

Wie Du das in Trixbox integrierst, kann ich Dir leider nicht sagen. Habe ich noch nie benutzte. Zudem ist das in AEL geschrieben.

Wenn Du jetzt Anschluss 12 auf Anschluss 27 umleiten willst, dann waehlst Du die '*91227'. Nochmaliges Waehlen der Nummer schaltet die Umleitung wieder aus. Ebenso ein '*912', wobei dies nicht das BLF-Laempchen ausschaltet. Falls das gewuenscht sein sollte, sollte das aber nicht sonderlich schwierig sein zu programmieren. Aber wenn man per Hand umleitet, sind die Laempchen ja sowieso egal und wenn man auf die Umleitung eine BLF-Taste programmiert hat, dann benutzt man wahrscheinlich die. Und dann tritt das eigentlich nicht auf.

Ebenso kann man die Lampen auch "austricksen", wenn Du erst eine Umleitung und dann eine andere Umleitung "anwaehlst" ohne die alte zu loeschen. Dann bleiben beide Lampen an. Sollte sicherlich nicht schwierig sein, dass Problem zu loesen, aber ich habe das noch nie benoetigt.

Damit die BLF-Lampen funktionieren, brauchst Du app_devstate aus den agx-ast-addons. Dann kannst Du fuer jeden programmierte Umleitung Hints der folgenden Art anlegen:

Code:
exten => *91227,hint,DS/ru1227
exten => *91218,hint,DS/ru1218

Auf diese Hints setzt Du dann Dein Telefon an.

So. Dann fehlt noch der Teil zum Waehlen. Hier ist nur ein Ausschnitt. Das musst Du irgendwie ins Wahl-Macro einbinden. MAXCFWS muss dann noch irgendwo definiert werden, damit der Dialplan sich nicht aufhaengt, wenn man einen Umleitungskreis gebaut hat.

Code:
                for(j=0; ${j} < ${MAXCFWS}; j=${j} + 1) {       // Weiterleitungen holen
                        Set(cfwdst=${DB(CFW/${exten})});
                        if("${cfwdst}" = "")
                                break;
                        exten=${cfwdst};
                };
                if(${j} = ${MAXCFWS}) {                 // Mehr als x Weiterleitungen
                        NoOp(Achtung. Mehr als ${MAXCFWS} Umleitungen);
                        // Hier kannst Du entweder abbrechen oder den Fall ignorieren, dann wird die letzte rausgesuchte Weiterleitung benutzt.
                };

Die zu waehlende Nummer steht danach in $exten. Falls Trixbox schon irgendein Weiterleitungs-Feature hat, dann kannst Du den letzten Teil vielleicht rauslassen und musst nur die entsprechenden Variablen im Weiterleitungs-Code setzen, damit Trixbox das auch mitbekommt. Aber dafuer bin ich nicht der richtige Ansprechpartner mangels Trixbox-Erfahrung.
 
Hallo,


ich den Codeschnippsel in meine extension.ael eingefügt.
Jedoch "noch" ohne erfolg.

Code:
asterisk*CLI>
    -- Executing Set("SIP/11-3707", "LANGUAGE()=de") in new stack
    -- Executing Playback("SIP/11-3707", "pbx-invalid") in new stack
    -- Playing 'pbx-invalid' (language 'de')
Jun 23 09:23:17 WARNING[26716]: file.c:587 ast_readaudio_callback: Failed to write frame
  == Spawn extension (outgoing, *91114, 2) exited non-zero on 'SIP/11-3707'
    -- Executing Hangup("SIP/11-3707", "") in new stack
  == Spawn extension (outgoing, h, 1) exited non-zero on 'SIP/11-3707'

meine internen Nummer sind alle 2-stellig
 
ich den Codeschnippsel in meine extension.ael eingefügt.
Jedoch "noch" ohne erfolg.

Code:
asterisk*CLI>
    -- Executing Set("SIP/11-3707", "LANGUAGE()=de") in new stack
    -- Executing Playback("SIP/11-3707", "pbx-invalid") in new stack
    -- Playing 'pbx-invalid' (language 'de')
Jun 23 09:23:17 WARNING[26716]: file.c:587 ast_readaudio_callback: Failed to write frame
  == Spawn extension (outgoing, *91114, 2) exited non-zero on 'SIP/11-3707'
    -- Executing Hangup("SIP/11-3707", "") in new stack
  == Spawn extension (outgoing, h, 1) exited non-zero on 'SIP/11-3707'

Das sieht nicht so aus, als ob der Code angesprungen wird. Das kann mind. zwei Gruende haben:

1. Das Modul pbx_ael.so wird nicht geladen, so dass extension.ael garnicht geparst wird.
2. Der Code steht im falschen Kontext.

An der Konsole solltest Du mit 'show dialplan' sehen, ob der Code prinzipiell vorhanden ist. Er sieht dann zwar etwas anders aus, da er von AEL in die "normale" Asterisk-Skript-Sprache uebersetzt worden ist, aber ich hoffe, man sollte ihn wiedererkennen.

Ansonsten gibt es, meine ich, auch Probleme, wenn man in extension.conf und extension.ael zwei Kontexte mit identischem Namen definiert. Evtl. also den "alten" Kontext, der von den Telefonen angesprungen wird auskommentieren oder so anpassen, dass er in den "neuen" Kontext aus der extension.ael springt.

Lars
 
upps :

Code:
asterisk*CLI> ael reload
No such command 'ael' (type 'help' for help)
asterisk*CLI>

sollte doch auch über die extensions.conf zu lösen sein ?
 
Zuletzt bearbeitet:
sollte doch auch über die extensions.conf zu lösen sein ?

Sicher, aber evtl. ist es leichter in der modules.conf einfach dafuer zu sorgen, dass pbx_ael.so geladen wird.

Ansonsten kannst Du den Code natuerlich gerne in extension.conf-Code umschreiben.
 
Wenn ich die 11 nach 13 Umleiten will :

*91113 über kurzwahl ergibt :

Code:
asterisk*CLI>
    -- Executing Set("SIP/11-941a", "CFWSRC=11") in new stack
    -- Executing Set("SIP/11-941a", "CFWDST=13") in new stack
    -- Executing GotoIf("SIP/11-941a", "0?4:6") in new stack
    -- Goto (outgoing,*91113,6)
    -- Executing NoOp("SIP/11-941a", "Finish if-_*9XXX.-3") in new stack
    -- Executing Devstate("SIP/11-941a", "ru1113|2") in new stack
    -- Executing Playback("SIP/11-941a", "auth-thankyou") in new stack
    -- Playing 'auth-thankyou' (language 'de')
    -- Executing Hangup("SIP/11-941a", "") in new stack
  == Spawn extension (outgoing, *91113, 9) exited non-zero on 'SIP/11-941a'
asterisk*CLI>

Wenn ich nun von der 10 nach 11 anrufe wird nicht umgeleitet.


Code:
asterisk*CLI>
    -- Executing Set("SIP/10-d906", "_ALERT_INFO=;info=ring3") in new stack
    -- Executing Dial("SIP/10-d906", "SIP/11") in new stack
    -- Called 11
    -- SIP/11-2bcb is ringing
  == Spawn extension (outgoing, 11, 2) exited non-zero on 'SIP/10-d906'
asterisk*CLI>

Ein erneutes drücken (ausschalten) der Kurzwahltase ergibt selbigen Code wie oben (Danke)
 
Zuletzt bearbeitet:
Wenn ich die 11 nach 13 Umleiten will :

*91113 über kurzwahl ergibt :

Code:
asterisk*CLI>
    -- Executing Set("SIP/11-941a", "CFWSRC=11") in new stack
    -- Executing Set("SIP/11-941a", "CFWDST=13") in new stack
    -- Executing GotoIf("SIP/11-941a", "0?4:6") in new stack
    -- Goto (outgoing,*91113,6)
    -- Executing NoOp("SIP/11-941a", "Finish if-_*9XXX.-3") in new stack
    -- Executing Devstate("SIP/11-941a", "ru1113|2") in new stack
    -- Executing Playback("SIP/11-941a", "auth-thankyou") in new stack
    -- Playing 'auth-thankyou' (language 'de')
    -- Executing Hangup("SIP/11-941a", "") in new stack
  == Spawn extension (outgoing, *91113, 9) exited non-zero on 'SIP/11-941a'
asterisk*CLI>

Merkwuerdig. Die Zeile, in der der Datenbank-Eintrag gesetzt wird, wird bei Dir irgendwie nicht ausgefuehrt. Im Log sollte etwas in der folgenden Art erscheinen:

Set("SIP/11-941a", "DB(CFW/11)=13")

Das entspricht der Zeile "DB(CFW/${CFWSRC})=${CFWDST};" im Code.

Vielleicht kannst Du die mal durch "Set(DB(CFW/${CFWSRC})=${CFWDST});" ersetzen.

An der Console solltest Du dann mit "database show" sehen, ob der Wert gesetzt wurde, oder nicht.

Code:
asterisk*CLI>
    -- Executing Set("SIP/10-d906", "_ALERT_INFO=;info=ring3") in new stack
    -- Executing Dial("SIP/10-d906", "SIP/11") in new stack
    -- Called 11
    -- SIP/11-2bcb is ringing
  == Spawn extension (outgoing, 11, 2) exited non-zero on 'SIP/10-d906'
asterisk*CLI>

Hier wird nicht der Code aufgerufen, der auf eine Weiterleitung achtet. Das war der untere Code-Block in meinem Posting. Das musst Du irgendwie anspringen, sonst kann da nichts passieren. Auch wenn das mit der Datenbank dann funktionieren sollte.
 
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.