Worstcase Agent logoff bei 1.4

emil99

Neuer User
Mitglied seit
16 Mrz 2008
Beiträge
13
Punkte für Reaktionen
0
Punkte
0
Hallo zusammen

wie bekannt, gibt es ja die Zwangslogoutfunktion für eingeloggte Callcenter-Agenten, welche einen zugewiesenen Anruf nicht annehmen (--> timout Funktion).

So - nun ein Szenario, welches ich lösen möchte:

1. Agent hat auf seinem Anschluss die Voicemail aktiviert.
2. Hat sich erfolgreich eingeloggt.
3. Und irgendwann sein Softphone ausgeschaltet.

Ergebnis:
- Die IAX denkt immer noch, dass Anrufe zugewiesen werden können
- Zugeteilte Anrufe landen sofort auf der Voicemail des Agentenanschlusses
- Zwangslogout funktioniert nicht mehr, da die Voicebox ja sofort abgenommen hat.

Frage:
Gibt es eine Möglichkeit, bei nicht mehr verbundenem Softclient den betreffenden Agenten (hat die gleiche ID wie die Nebenstelle) aus der Queue zu werfen?

Gruss
Emil
 
Frage:
Gibt es eine Möglichkeit, bei nicht mehr verbundenem Softclient den betreffenden Agenten (hat die gleiche ID wie die Nebenstelle) aus der Queue zu werfen?

Ich würde im Steuerkontext der Mailbox den Grund für das Weiterleiten erfassen und entsprechend reagieren.

Wie ist dialplanabhängig, da kann ich nicht helfen.
 
Hallo Kombjuder,

die Nebenstellen sind so verdrahtet:

exten => _95[0-5],1,Macro,cfwd|${EXTEN}
exten => _95[0-5],n,Set(Language=DE)
exten => _95[0-5],n,Dial(SIP/${EXTEN}|24|Ttr)
?? ab hier was tun?
exten => _95[0-5],n,voicemail(u${EXTEN})
exten => _95[0-5],102,voicemail(b${EXTEN})
exten => _95[0-5],n,Hangup

Nur wie kriege ich genau an dieser Stelle raus, ob an selbiger Extension noch ein Agent "hängt"? Währe das bekannt, könnte man ja die Rufannahme irgendwie soweit verzögern, bis der Zwangslogout des Callcenters zieht.

Gruss
Emil
 
Asterisk Doku lesen?

Die Asterisk Funktion DEVICE_STATE() hilft Dir höchstwahrscheinlich weiter. Davon gibts m.W. auch nen Backport für 1.4
 
Ich weiss ......

RTFM

- mache diesen Spass aber erst seit ein paar Wochen und arbeite mich langsam durch.


Danke
Emil
 
Je nach Szenario reicht auch schon die Auswertung von ${DIALSTATUS}. Ist IMHO auch sauberer als das Priority-Jumping, das Du scheinbar verwendest.

Rentier
 
@voip_Indianer: Natürlich lese ich Manuals - ich beiß mich da soeben durch, nur Fragen kommen dann trotzdem noch. Und 90% der Fragen kriegt man ja eh mit der Paperware und Internet erledigt. Und für den Rest - hoffe ich im Forum Löungen zu finden.

Hallo Rentier,
danke für Deinen Input.

Leider habe ich den Code nicht selber geschrieben - sondern diese Ruine übernommen - mach das jedoch alles in den nächsten Monaten mit 1.6 neu.

Beim Lesen diverser Unterlagen komme ich zu dem Schluss, dass Stand der Papierlage eine Auswertung von "${DIALSTATUS}" oder auch "DEVICE_STATE()" mir in diesem Falle nicht wirklich weiter hilft. - Der Zusammenhang ist mir einfach nicht klar: Ich finde bei den zurückgelieferten Werten nichts, was mir meine Aufgabenstellung weiterhelfen könnte. Das Problem bleibt immer noch:

Der Callcentermechansmus der Asterisk weist auch bei abgeschalteteb Softclients diesen (oder deren Extension) nach wie vor Gespräche aus den Queues zu - und selbige landen im Fall einer aktiven Voicemail sofort auf der privaten Voicemailbox diese Extension. Das ist natürlich unerwünscht.

Also muss irgdendwie so etwas ablaufen:

1. die vor dem Shutdown des Softlients nicht abgemeldet Agenten-ID zu der Extension ausfindig zu machen
2. diese Agenten-ID z.B. bei "unavailable" Status der betreffenden Extension softwaremäßig auszuloggen
3.oder das "Anspringen" der Voicemail einmalig solange herauszuzögen, bis der Zwangslogoutmechanismus des Callcenters selbst greift.

Also braucht man in diesem Falle irgendeinen Mechanismus , welcher herausfinden kann, ob zu der von vom Callcenter angebimmelten Extension ein "nicht ausgeloggter" Agent existiert. Mit dieser Info könnte man entsprechend reagieren.

Habt Ihr weitere Ideen?

Gruss
Emil
 
Zuletzt bearbeitet:
Ehrlich gesagt hab ich die Logik Deiner Konfiguration nicht ganz verstanden.

Zeig uns doch bitte Deine queues.conf, weil mich erst mal interessiert, wie Du Deine Agents überhaupt definiert hast. Außer über member=>Local/... kann ich mir im Moment nämlich nicht vorstellen, wie bei einem Agent überhaupt eine Asterisk-basierte Rufumleitung greifen kann.

Rentier
 
Hello Rentier,
OK - ich möchte keine Diskussion über irgendwelche Weltanschauungen vom Zaun brechen. Es geht mir wirklich nur um die gestellt Frage - wie kriege ich eine noch aktive Agenten ID gekillt, wenn auf die zugehörige Extension bei abgeschaltetem Softclient Anrufzuweisungen erfolgen.

Die queues.conf ist ziemlich simpel (wie gesagt, das habe ich so übernommen - alles durchaus verbesserungswürdig.....):

PHP:
[general]
persistentmembers = yes
;
; /****************************************************
;  * Callcenter_1 
;  ****************************************************/
[CC_PA46]
musiconhold = hotline-PA46
;anounce =  fehlt noch
strategy = fewestcalls
servicelevel = 30
timeout = 15
timeoutrestart = yes
retry = 5
ringinuse =no
wrapuptime = 10
maxlen = 0
joinempty = strict
leavewhenempty = no
eventwhencalled = no
eventmemberstatus = no
reportholdtime = no
memberdelay = 1
autopause = no
setinterfacevar=yes
member => Agent/950,0
member => Agent/951,0
member => Agent/952,0
member => Agent/953,0
member =>  usw.

Gruss
Emil
 
Weltanschauungen? Hab ich was verpasst? :noidea:

Einen AgentCallbackLogin Agenten kannst Du theoretisch mit
Code:
exten => s,n,System(asterisk -rx "agent logoff Agent/${AgentID}")
ausloggen.

Wie Du an die AgentID kommst und wie Du ermitteln kannst, ob der Agent noch da ist, kann ich Dir nicht sagen, weil ich echt nicht kapiere, wie bei der Konfiguration überhaupt eine Rufumleitung/Voicemail greifen kann.

Svenja
 
Hallo Rentier,

ja, ist aber so. Habe ich mich auch gewundert. Ich teste das am Wochenende am Produktions - Callcenter mal durch und zeichne ein paar Logs auf.

Man kann das selbst versuchen (mit z.B. BRIA4Outlook): Voicemail aktivieren bei busy und unavailable, als Agent einloggen und

1. Privatgespräch führen
dann bekommt man irgendwann aus einer Queue einen Anruf zugewisen - und zwar aus Sicht des Client als Zweitanruf. Und der geht auf die persönliche Voicemail.

oder

2. als Agent einloggen und den Softclient ausschalten. Auch dann landen Callcenteranrufe in der privaten Voicemail.

Vermulich habe ich eine Lösung - zumindest theoretisch - gefunden:
1. die (Agenten) id = Extension machen (ist bei uns eh so eingerichte)
2. abprüfen mit AGENT(id:status). Das liefert als Egebnis LOGGEDIN oder LOGGEDOUT
3. Bei LOGGEDIN-Status (und im Falle Extension unavailable!!!) via CLI den Agenten ausloggen.
4. nun mit Wait() solange warten, bis der Zwangsloggout des Callcenters sicher gegriffen hat.
5. Dann erst zu Voicemail weiterverzweigen. Da passiert aber eh nichts mehr.

soweit die Theorie.

Gruss
Emil
 
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.