QueueMetrics forum
QueueMetrics => Running QueueMetrics => Topic started by: astor99 on August 11, 2010, 14:23:20
-
Hi,
After an agent is connected into a queue, he results active in QM, even if the softphone client was closed
(and the user unregistered).
Do you know why ? How to solve that ? ???
Thank you.
-
This means the user forgot to logoff, so from the point of view of Asterisk he's still there. Basically it's their supervisor that should carry a large stick to avoid such incidents :)
-
still would be very useful to have functionality for a supervisor to log off agents. you are correct that discipline is needed but even then, accidents still happen.
-
Yes but a supervisor can usually do that by repeating the logoff procedure an agent would have used. I agree it would be useful to have that available from the RT screen in QM :)
-
My agent could be remoted (at home). How can a supervisor know if his client is running or not ? ::)
Can Asterisk force a logoff procedure if an unregistering event occurs ?
-
It's terrible: I see agents connected on RealTime , with their softphone, even if they aren't :o
It's impossible to use QM in this way. How can a supervisor know if an agent has really the softphone opened behind his monitor ?
-
from asterisk CLI a simple SIP SHOW PEERS will tell you if someone has turned off their extension.
-
@mudslide567: thank you for your reply. Unfortunatly, a man cannot check every 5 minutes if someone is disconnected or not.
I think that, in some way, it could be possibile to put a command, after unregistering sip, that can handle also the remove member from the queue.
Do you know where REGISTER/UNREGISTER SIP sequences are present in Asterisk ?
-
It's terrible: I see agents connected on RealTime , with their softphone, even if they aren't :o
It's impossible to use QM in this way. How can a supervisor know if an agent has really the softphone opened behind his monitor ?
One thing that you can do is to set automated logoff of agents in Asterisk after a few calles missed; this will log them off QM as well.
-
it seems interesting.
How can I do this "autologoff" after some missed calls ? ::)
-
Look for the autopause option....
-
So I did, thank you! It works in this way: if an agent has the softphone cliente running, but not answering, he is changed in pause mode.Good :D
BUT, if the agent is in the queue and then, he closes his softphone program, without member removing operation, Queuemetrics considers him anyway as connected and no pause mode is changed,even if an incoming call is waiting.
Why do you think it happens ? ???
The agent number is 003 and it's disconnected:
> sip show peers
Name/username Host Dyn Nat ACL Port Status
xxxxxxxxxxxxxxxx xxxxxxxxxxxx
xxxxxxxxxxxxxxxx xxxxxxxx
006 (Unspecified) D N A 0 UNKNOWN
005/005 212.97.xx.xx D N A 5060 OK (5 ms)
004 (Unspecified) D N A 0 UNKNOWN
003/003 (Unspecified) D N A 0 UNKNOWN
002 (Unspecified) D N A 0 UNKNOWN
001/001 212.97.xx.xx D N A 1037 OK (125 ms)
8 sip peers [Monitored: 4 online, 4 offline Unmonitored: 0 online, 0 offline]
but the queue keeps on considering present and autopause option doesn't work
obelisk*CLI> queue show 0909
0909 has 0 calls (max unlimited) in 'rrmemory' strategy (0s holdtime), W:0, C:0, A:7, SL:0.0% within 0s
Members:
Local/003@from-internal (dynamic) (Not in use) has taken no calls yet
No Callers
I see that, if it can help you:
-- Executing [s@macro-dial:7] Dial("Local/003@from-internal-cd0b,2", "SIP/003||trM(auto-blkvm)") in new stack
== Everyone is busy/congested at this time (1:0/0/1)
-- Executing [s@macro-dial:8] Set("Local/003@from-internal-cd0b,2", "DIALSTATUS=CHANUNAVAIL") in new stack
-- Executing [s@macro-dial:9] GosubIf("Local/003@from-internal-cd0b,2", "0?CHANUNAVAIL|1") in new stack
-- Executing [s@macro-exten-vm:10] GotoIf("Local/003@from-internal-cd0b,2", "0?exit|return") in new stack
-- Executing [s@macro-exten-vm:11] Set("Local/003@from-internal-cd0b,2", "SV_DIALSTATUS=CHANUNAVAIL") in new stack
-- Executing [s@macro-exten-vm:12] GosubIf("Local/003@from-internal-cd0b,2", "0?docfu|1") in new stack
-- Executing [s@macro-exten-vm:13] GosubIf("Local/003@from-internal-cd0b,2", "0?docfb|1") in new stack
-- Executing [s@macro-exten-vm:14] Set("Local/003@from-internal-cd0b,2", "DIALSTATUS=CHANUNAVAIL") in new stack
-- Executing [s@macro-exten-vm:15] NoOp("Local/003@from-internal-cd0b,2", "Voicemail is novm") in new stack
-- Executing [s@macro-exten-vm:16] GotoIf("Local/003@from-internal-cd0b,2", "1?s-CHANUNAVAIL|1") in new stack
-- Goto (macro-exten-vm,s-CHANUNAVAIL,1)
-- Executing [s-CHANUNAVAIL@macro-exten-vm:1] NoOp("Local/003@from-internal-cd0b,2", "IVR_RETVM: IVR_CONTEXT: ") in new stack
-- Executing [s-CHANUNAVAIL@macro-exten-vm:2] GotoIf("Local/003@from-internal-cd0b,2", "0?exit|1") in new stack
-- Executing [s-CHANUNAVAIL@macro-exten-vm:3] PlayTones("Local/003@from-internal-cd0b,2", "congestion") in new stack
-- Executing [s-CHANUNAVAIL@macro-exten-vm:4] Congestion("Local/003@from-internal-cd0b,2", "10") in new stack
-- Local/003@from-internal-cd0b,1 is circuit-busy
-- Nobody picked up in 0 ms
-
Hi,
I think the problem is related to a set of macroes that are called by your dialplan if the channel becomes unavailable.
For what I can see from the CLI you posted, the call is answered by Asterisk when playing the unavailable tones. In this way the queue_app is not able to understand that the user is not available (because the call was answered by the PBX).
I think that changing/eliminating the "Playtones" call in your s-CHANUNAVAIL should solve your problem.
Thank you and regards,
Marco Signorini.
-
Hi Marco,
It worked!
I added this lines to extensions_additional.conf:
[macro-exten-vm]
exten => s-CHANUNAVAIL,1,Noop(Extension is reporting CHANUNAVAIL)
exten => s-CHANUNAVAIL,n,MacroExit()
Thank youuuuuuuuuuuuuuuuu :D
-
Fine! That's good to know.
Thank you and regads,
Marco Signorini.