Queue Warteschleife

fabius83

Neuer User
Mitglied seit
19 Aug 2008
Beiträge
41
Punkte für Reaktionen
0
Punkte
0
Hallo!

Gibt es eine Applikation, die überprüft ob ein SIP-Client in der Queue angemeldet ist?

Und zwar habe ich eine Queue in der sich Mitarbeiter von verschiedenen Asterisk-servern anmelden. Die Queue-Mitarbeiter sollen auch direkt Anrufe mit ihren eigenen durchwahlen erhalten können, aber nur wenn sie in der Queue angemeldet sind ansonsten nicht. Gibt es irgendeine Möglichkeit dies zu realisieren?

Vielen Dank im Vorraus!
 
das kann man mit der dialplan function "QUEUE_MEMBER_LIST" realisieren (Asterisk 1.4):
Code:
...
[context]
exten = _XX,1.Set(QMLIST=${QUEUE_MEMBER_LIST(meineQueue)})
...
danach hast du in der channel-variable ${QMLIST} die members drinnen und du kannst sie mit der regex function matchen oder anders parsen.

Code:
*CLI> core show function QUEUE_MEMBER_LIST
*CLI> core show function REGEX

grüße,
laureen
 
Danke...

also ich habe es jetzt so...

Mitarbeiteranmeldung an der queue (extensions.conf):
Code:
exten => *1,1,Answer()
exten => *1,2,Read(AGENT_NUMBER, agent-user)
exten => *1,3,AddQueueMember(asterisk1,SIP/${CALLERID(num)})
exten => *1,4,Set(QMLIST=${QUEUE_MEMBER_LIST(asterisk1)})
exten => *1,5,Playback(agent-loginok)
exten => *1,6,Hangup

wenn z.B. ein Anruf für SIP 212 reinkommt, soll überprüft werden ob der SIP-Client an der Queue angemeldet ist. wenn ja zu sip 212 durchstellen wenn nein an die zentrale
extension.conf
Code:
[isdn_incoming]
include => sip_pruefen
exten => _2XX,1,Ringing
exten => _2XX,2,Set(foo=${REGEX("${EXTEN}" ${QMLIST})})
exten => _2XX,3,Goto [sip_pruefen]
exten => _2XX,4,Hangup

bei der set Funktion muss was falsch sein, da immer 0 zurückgegeben wird und ich weiss nicht was ich falsch mache... :-(

im context [sip_pruefen] steht extensions.ael:
Code:
context sip_pruefen
{
    _2XX => {
                   if (${foo} = 1){
                                         Dial(SIP/${EXTEN},25,tT);
                                         Voicemail(${EXTEN});
                                         Hangup();
                                       }
                                else {
                                         Dial(SIP/111,25,tT);
                                         Voicemail(111);
                                         Hangup();
                                       }
                 };
};

hier erhalte ich die Notice: No such label '[sip_pruefen]' in extensions '212' in context 'isdn_incoming'
und die warnung: Priority '[sip_pruefen]' must be a number > 0, or valid label

Sieht ihr hier ein fehler? ich blicke nicht durch!!!
 
Wenn du Goto wie oben beschrieben nutzt, sucht er das Label mit dem Namen, welches es bei dir nicht gibt.

In deinem Fall willst du den Kontext sip_pruefen mit einer bestimmten Extension aufrufen.
Das geht dann so: Goto(context,extension,priority)
 
Zuletzt bearbeitet:
ohhh... danke.

weiss jemand, was ich bei der REGEX() Anwendung falsch mache? :)
 
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.