Re: [asterisk-users] Cascading queues calls not joining unavailable queues.
Quoting Mark Michelson ([EMAIL PROTECTED]): -- Called SCCP/231 -- Called SCCP/220 -- SCCP/220-009b is busy -- SCCP/231-009a is busy I'd like asterisk to quit trying when all agents are busy, but i don't think it's possible without scripting it yourself with some AGI-script that checks 'show queues' output. It sounds as though skinny devices may not be reporting their device state correctly, and so the queue believes that the devices are available. Looking at the output of 'show queues' everything looks completely OK when i put the phone in various states of 'being available'. I think it's more an opinion on what 'unavailable' is. Or perhaps they are reporting a state that the queue does not know about. If this is the case, we may be dealing with a bug. I will test locally when I can get access to a Skinny phone and see what's going on. We're using chan_sccp.so in combination with Cisco 796x phones (With CTU ringtone! Whee! :P). Maybe it doesn't really work right because of this, but as Asterisk *tells me* it knows nobody is answering a queue, i wonder why it keeps trying ;-) Kind regards, Sander. -- | If you jog backwards, will you gain weight? | 1024D/08CEC94D - 34B3 3314 B146 E13C 70C8 9BDB D463 7E41 08CE C94D ___ Sign up now for AstriCon 2007! September 25-28th. http://www.astricon.net/ --Bandwidth and Colocation Provided by http://www.api-digital.com-- asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [asterisk-users] Cascading queues calls not joining unavailable queues.
Quoting James FitzGibbon ([EMAIL PROTECTED]): Unfortunately, the patches weren't done against trunk or the head of 1.4, and the author didn't file a disclaimer with Mantis, so the bug ( http://bugs.digium.com/view.php?id=9165) was recently closed. That's just too bad, as this might be a solution to our 'problems'. :) -- | The less hair I have, the more head I get! | 1024D/08CEC94D - 34B3 3314 B146 E13C 70C8 9BDB D463 7E41 08CE C94D ___ Sign up now for AstriCon 2007! September 25-28th. http://www.astricon.net/ --Bandwidth and Colocation Provided by http://www.api-digital.com-- asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [asterisk-users] Cascading queues calls not joining unavailable queues.
Quoting Mark Michelson ([EMAIL PROTECTED]): | app_queue.c: No one is answering queue '511' (7/2/0) Have you added additional queue members besides the ones you specified in queues.conf? Yes. There's a number of dynamic members that logged in to the group by means of dialing extension '*511' which will call AddQueueMember() through the dialplan. But those members were all set to DND or were otherwise engaged at the time i got the logging information i sent in my original post. I tried again with a new queue, same config, but *only* the two members specified as member = and i got this: -- Called SCCP/231 -- Called SCCP/220 -- SCCP/220-009b is busy -- SCCP/231-009a is busy -- Called SCCP/231 -- Called SCCP/220 -- SCCP/220-009d is busy -- SCCP/231-009c is busy -- Stopped music on hold on SIP/10.50.0.2-082155b8 -- Playing 'queue-youarenext' (language 'nl') -- Told SIP/10.50.0.2-082155b8 in test1 their queue position (which was 1) -- Playing 'queue-thankyou' (language 'nl') -- Started music on hold, class 'default', on SIP/10.50.0.2-082155b8 -- Called SCCP/231 -- Called SCCP/220 -- SCCP/220-009f is busy -- SCCP/231-009e is busy I'd like asterisk to quit trying when all agents are busy, but i don't think it's possible without scripting it yourself with some AGI-script that checks 'show queues' output. Any ideas? -Sndr. -- | One nice thing about egotists: They don't talk about other people. | 1024D/08CEC94D - 34B3 3314 B146 E13C 70C8 9BDB D463 7E41 08CE C94D ___ Sign up now for AstriCon 2007! September 25-28th. http://www.astricon.net/ --Bandwidth and Colocation Provided by http://www.api-digital.com-- asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [asterisk-users] Cascading queues calls not joining unavailable queues.
Mark Michelson wrote: Sander Smeenk wrote: Quoting Mark Michelson ([EMAIL PROTECTED]): | app_queue.c: No one is answering queue '511' (7/2/0) Have you added additional queue members besides the ones you specified in queues.conf? Yes. There's a number of dynamic members that logged in to the group by means of dialing extension '*511' which will call AddQueueMember() through the dialplan. But those members were all set to DND or were otherwise engaged at the time i got the logging information i sent in my original post. I tried again with a new queue, same config, but *only* the two members specified as member = and i got this: -- Called SCCP/231 -- Called SCCP/220 -- SCCP/220-009b is busy -- SCCP/231-009a is busy -- Called SCCP/231 -- Called SCCP/220 -- SCCP/220-009d is busy -- SCCP/231-009c is busy -- Stopped music on hold on SIP/10.50.0.2-082155b8 -- Playing 'queue-youarenext' (language 'nl') -- Told SIP/10.50.0.2-082155b8 in test1 their queue position (which was 1) -- Playing 'queue-thankyou' (language 'nl') -- Started music on hold, class 'default', on SIP/10.50.0.2-082155b8 -- Called SCCP/231 -- Called SCCP/220 -- SCCP/220-009f is busy -- SCCP/231-009e is busy I'd like asterisk to quit trying when all agents are busy, but i don't think it's possible without scripting it yourself with some AGI-script that checks 'show queues' output. Any ideas? It sounds as though skinny devices may not be reporting their device state correctly, and so the queue believes that the devices are available. Or perhaps they are reporting a state that the queue does not know about. If this is the case, we may be dealing with a bug. I will test locally when I can get access to a Skinny phone and see what's going on. Then again, there may be a necessary setting in skinny.conf in order for the device state to be correct. I know that with SIP, you have to set a call-limit in order for the device state to be changed correctly. Unfortunately, I haven't done any work with skinny devices, so I don't know this information. -Sndr. After talking in #asterisk-dev with those who wrote the joinempty option, it appears I was mistaken about its use. joinempty=strict will only not allow a caller to join the queue if the members are in a permanently unavailable state. A member being busy is not enough to trigger the joinempty=strict option. Since DND on most phones works the same way as a phone being busy, DND will not trigger the joinempty=strict option either. For the behavior you want, I would suggest replacing the first call to Queue() with a call (or calls) to Dial() which ring all the phones you want. ___ Sign up now for AstriCon 2007! September 25-28th. http://www.astricon.net/ --Bandwidth and Colocation Provided by http://www.api-digital.com-- asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users ___ Sign up now for AstriCon 2007! September 25-28th. http://www.astricon.net/ --Bandwidth and Colocation Provided by http://www.api-digital.com-- asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [asterisk-users] Cascading queues calls not joining unavailable queues.
On 9/7/07, Mark Michelson [EMAIL PROTECTED] wrote: After talking in #asterisk-dev with those who wrote the joinempty option, it appears I was mistaken about its use. joinempty=strict will only not allow a caller to join the queue if the members are in a permanently unavailable state. A member being busy is not enough to trigger the joinempty=strict option. Since DND on most phones works the same way as a phone being busy, DND will not trigger the joinempty=strict option either. It's also important to distinguish between DND-style busy (where in the case of SIP the INVITE is rejected with a 480 temporarily unavailable) and the internal channel state AST_CONTROL_BUSY. For SIP, the latter occurs when the use count exceeds the configured call-limit, and results in no INVITE being sent. The two also have drastically different behaviours when you have members with penalties. Assume we have five agents with penalty zero (A-E) and five agents with penalty 1 (F-J). Assume also that 'ringinuse=no' is set for the queue. If A-D are in use and E is available but their phone is set to DND, then app_queue will continually attempt to dequeue to agent E, never trying agents F-J. If E is busy because they have a call-limit of 2 and they have two calls active, then app_queue will attempt to dequeue to agents F-J. This has been a source of confusion for my users on several occasions. IMO, It also puts an unrealistic burden on agents to always put themselves on pause before they walk away from their desk, and since agents are human and sometimes forget to do this, prevents me from using agent penalties extensively. I just can't explain to non-technical people why one phone keeps ringing while five other agents sit idle. It makes no sense to them. Someone developed a new strategy for app_queue they called XRRMEMORY that will seek to higher-penalty agents after trying all lower-penalty agents. They posted details about it on voip-info: http://www.voip-info.org/wiki/index.php?page=Asterisk+cmd+Queue (look at the second comment) Unfortunately, the patches weren't done against trunk or the head of 1.4, and the author didn't file a disclaimer with Mantis, so the bug ( http://bugs.digium.com/view.php?id=9165) was recently closed. -- j. ___ Sign up now for AstriCon 2007! September 25-28th. http://www.astricon.net/ --Bandwidth and Colocation Provided by http://www.api-digital.com-- asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [asterisk-users] Cascading queues calls not joining unavailable queues.
On 9/7/07, James FitzGibbon [EMAIL PROTECTED] wrote: On 9/7/07, Atis [EMAIL PROTECTED] wrote: Well, for that case i have a RemoveQueueMember() after Dial, in case of ${DIALSTATUS}!=ANSWERED. That works great, except for agent complaints - that they are logged out from queue :D Would be a bit better to be able to set agent's status to Unavailable. This only works if you're using Local channels to bridge calls to agents. It doesn't work if you're using AddQueueMember with SIP channels, because the Dial() is implicit, so you have no control over what happens after that implicit Dial() finishes. Nop, it works for Dial to SIP channels, if you set g option in Dial. And yes, I have good reason for using SIP channels. We have externally driven automatic pausing (because the built-in wrapuptime is per-queue and therefore broken for any agent who is assigned to more than one queue), and neither form of Local (with or without /n) perform properly under this configuration. This is something new for me. Are you sure about this? Isn't wrapuptime taking in account agent state change? Because then, it's really bad for direct calls (for me it's rare that agent have several queues). It would be great if you could define arbitrary states in queues.conf, then have dialplan logic to set an agent to given state. If you could indicate in the definition what things a state means (able to take a call, counted as part of ${QUEUE_MEMBER_COUNT()}, etc. that would truly be useful. I think, it's too much complexity.. Do you need more statuses than Unavailable, Pause or Busy. Combined with processing failed Dial(s) it should be ok. Regards, Atis -- Atis Lezdins, IT Responsible of BEST Riga, [EMAIL PROTECTED] ICQ: 142239285 Skype: atis.lezdins Cell Phone: +371 28806004 [Tele2, Latvia] Work phone: +1 800 7502835 [Toll free, USA] ?BEST? - www.BEST.eu.org ___ Sign up now for AstriCon 2007! September 25-28th. http://www.astricon.net/ --Bandwidth and Colocation Provided by http://www.api-digital.com-- asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [asterisk-users] Cascading queues calls not joining unavailable queues.
Sander Smeenk wrote: Quoting Mark Michelson ([EMAIL PROTECTED]): | app_queue.c: No one is answering queue '511' (7/2/0) Have you added additional queue members besides the ones you specified in queues.conf? Yes. There's a number of dynamic members that logged in to the group by means of dialing extension '*511' which will call AddQueueMember() through the dialplan. But those members were all set to DND or were otherwise engaged at the time i got the logging information i sent in my original post. I tried again with a new queue, same config, but *only* the two members specified as member = and i got this: -- Called SCCP/231 -- Called SCCP/220 -- SCCP/220-009b is busy -- SCCP/231-009a is busy -- Called SCCP/231 -- Called SCCP/220 -- SCCP/220-009d is busy -- SCCP/231-009c is busy -- Stopped music on hold on SIP/10.50.0.2-082155b8 -- Playing 'queue-youarenext' (language 'nl') -- Told SIP/10.50.0.2-082155b8 in test1 their queue position (which was 1) -- Playing 'queue-thankyou' (language 'nl') -- Started music on hold, class 'default', on SIP/10.50.0.2-082155b8 -- Called SCCP/231 -- Called SCCP/220 -- SCCP/220-009f is busy -- SCCP/231-009e is busy I'd like asterisk to quit trying when all agents are busy, but i don't think it's possible without scripting it yourself with some AGI-script that checks 'show queues' output. Any ideas? It sounds as though skinny devices may not be reporting their device state correctly, and so the queue believes that the devices are available. Or perhaps they are reporting a state that the queue does not know about. If this is the case, we may be dealing with a bug. I will test locally when I can get access to a Skinny phone and see what's going on. Then again, there may be a necessary setting in skinny.conf in order for the device state to be correct. I know that with SIP, you have to set a call-limit in order for the device state to be changed correctly. Unfortunately, I haven't done any work with skinny devices, so I don't know this information. -Sndr. ___ Sign up now for AstriCon 2007! September 25-28th. http://www.astricon.net/ --Bandwidth and Colocation Provided by http://www.api-digital.com-- asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [asterisk-users] Cascading queues calls not joining unavailable queues.
On 9/7/07, James FitzGibbon [EMAIL PROTECTED] wrote: It's also important to distinguish between DND-style busy (where in the case of SIP the INVITE is rejected with a 480 temporarily unavailable) and the internal channel state AST_CONTROL_BUSY. For SIP, the latter occurs when the use count exceeds the configured call-limit, and results in no INVITE being sent. The two also have drastically different behaviours when you have members with penalties. Assume we have five agents with penalty zero (A-E) and five agents with penalty 1 (F-J). Assume also that 'ringinuse=no' is set for the queue. If A-D are in use and E is available but their phone is set to DND, then app_queue will continually attempt to dequeue to agent E, never trying agents F-J. If E is busy because they have a call-limit of 2 and they have two calls active, then app_queue will attempt to dequeue to agents F-J. This has been a source of confusion for my users on several occasions. IMO, It also puts an unrealistic burden on agents to always put themselves on pause before they walk away from their desk, and since agents are human and sometimes forget to do this, prevents me from using agent penalties extensively. I just can't explain to non-technical people why one phone keeps ringing while five other agents sit idle. It makes no sense to them. Well, for that case i have a RemoveQueueMember() after Dial, in case of ${DIALSTATUS}!=ANSWERED. That works great, except for agent complaints - that they are logged out from queue :D Would be a bit better to be able to set agent's status to Unavailable. Regards, Atis -- Atis Lezdins, IT Responsible of BEST Riga, [EMAIL PROTECTED] ICQ: 142239285 Skype: atis.lezdins Cell Phone: +371 28806004 [Tele2, Latvia] Work phone: +1 800 7502835 [Toll free, USA] ?BEST? - www.BEST.eu.org ___ Sign up now for AstriCon 2007! September 25-28th. http://www.astricon.net/ --Bandwidth and Colocation Provided by http://www.api-digital.com-- asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [asterisk-users] Cascading queues calls not joining unavailable queues.
On 9/7/07, Atis [EMAIL PROTECTED] wrote: Well, for that case i have a RemoveQueueMember() after Dial, in case of ${DIALSTATUS}!=ANSWERED. That works great, except for agent complaints - that they are logged out from queue :D Would be a bit better to be able to set agent's status to Unavailable. This only works if you're using Local channels to bridge calls to agents. It doesn't work if you're using AddQueueMember with SIP channels, because the Dial() is implicit, so you have no control over what happens after that implicit Dial() finishes. And yes, I have good reason for using SIP channels. We have externally driven automatic pausing (because the built-in wrapuptime is per-queue and therefore broken for any agent who is assigned to more than one queue), and neither form of Local (with or without /n) perform properly under this configuration. It would be great if you could define arbitrary states in queues.conf, then have dialplan logic to set an agent to given state. If you could indicate in the definition what things a state means (able to take a call, counted as part of ${QUEUE_MEMBER_COUNT()}, etc. that would truly be useful. -- j. ___ Sign up now for AstriCon 2007! September 25-28th. http://www.astricon.net/ --Bandwidth and Colocation Provided by http://www.api-digital.com-- asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [asterisk-users] Cascading queues calls not joining unavailable queues.
On 9/7/07, Atis [EMAIL PROTECTED] wrote: It doesn't work if you're using AddQueueMember with SIP channels, because the Dial() is implicit, so you have no control over what happens after that implicit Dial() finishes. Nop, it works for Dial to SIP channels, if you set g option in Dial. I call AddQueueMember like this: AddQueueMember(queuename,SIP/1234) When I then call Queue(queuename) from my dialplan, the Dial() of SIP/1234 is implicit. There is no priority and extension that I control where Dial() is being executed, and thus there is no priority + 1 for me to go to by using the 'g' option to Dial. What you're talking about only works if I do this instead: AddQueueMember(queuename,Local/[EMAIL PROTECTED]) And then somewhere in my dialplan I have: [agents] exten = 1234,1,Dial(SIP/1234,20) exten = 1234,n,DoSomethingHereIfDollarDialStatusIsNotANSWERED And then of course it makes no difference that agent 1234 is on SIP - they could be Zap, IAX, Skinny, whatever. And yes, I have good reason for using SIP channels. We have externally driven automatic pausing (because the built-in wrapuptime is per-queue and therefore broken for any agent who is assigned to more than one queue), and neither form of Local (with or without /n) perform properly under this configuration. This is something new for me. Are you sure about this? Isn't wrapuptime taking in account agent state change? Because then, it's really bad for direct calls (for me it's rare that agent have several queues). Wrapuptime isn't a state in app_queue. You'd think it was (agent goes from in-use to in-wrapup, then back to available after the configured number of seconds). But what really happens is that the last time a member took a call is part of the member struct, which is subordinate to the queue struct (i.e. the last time a member took a call is stored per-member-per-queue, not per-member). You can test this easily by adding a member to two queues, then sending a call to each queue spaced a minute apart. Then run 'queue show' on the CLI. You'll see that the last was xxx seconds ago differs for the same member in the two queues. When app_queue is attempting to dequeue a call to an available agent, it checks if the current time minus the time of the last call for the member in this queue is less than the wrapuptime, and if it is, it skips that member and goes onto the next. Because the last call time is per queue, you can have an agent take a call on queue foo, hang up that call, and receive a call for queue bar one second later, even if both queue foo and queue bar have a wrapuptime of 60 seconds configured. So, the built in wrapup has three major problems compared to the ACD system we moved to Asterisk from: - wrapuptime is per-queue-per-member, not per-member - wrapuptime is invisible (the internal state of the member during the wrapup is not in use, and only by looking at the last was xxx seconds ago and knowing what the configured wrapuptime for the queue is can you tell that a member is not actually eligible to take a call) - wrapuptime cannot be shortened or extended by the agent (or anyone else for that matter - I once mused with writing a dialplan function to set the last call time to some arbitrary epoch value to make this viable) These problems led to me developing this external wrapuptime system. My original implementation for doing external auto-pause was to have an AMI client watch for Hangup events. When I did that, Local channels caused problems. If I used one form of Local channel (with or without the /n, I forget now) then the hangup event was fired when the call was bridged to the agent. The other way, the hangup didn't fire until the agent was done with the caller, but some equally unpleasant side effect manifested. This was all months ago, so I don't recall the specific problems I faced. The AMI solution was too CPU intensive, so I switched to a system that essentially tails queue_log. When it seems COMPLETEAGENT or COMPLETECALLER or TRANSFER, it uses AMI to pause the member, and schedules an unpause for x seconds in the future.By using PauseQueueMember without a queue name, it pauses an agent in all their queues, and if the agent needs to, he can unpause themselves early or cancel the pending unpause to give themselves more time to write notes. This way of doing things might not be incompatible with Local channels, but I'd have to do some tests. -- j. ___ Sign up now for AstriCon 2007! September 25-28th. http://www.astricon.net/ --Bandwidth and Colocation Provided by http://www.api-digital.com-- asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [asterisk-users] Cascading queues calls not joining unavailable queues.
On 9/7/07, James FitzGibbon [EMAIL PROTECTED] wrote: On 9/7/07, Atis [EMAIL PROTECTED] wrote: It doesn't work if you're using AddQueueMember with SIP channels, because the Dial() is implicit, so you have no control over what happens after that implicit Dial() finishes. Nop, it works for Dial to SIP channels, if you set g option in Dial. I call AddQueueMember like this: AddQueueMember(queuename,SIP/1234) When I then call Queue(queuename) from my dialplan, the Dial() of SIP/1234 is implicit. There is no priority and extension that I control where Dial() is being executed, and thus there is no priority + 1 for me to go to by using the 'g' option to Dial. What you're talking about only works if I do this instead: AddQueueMember(queuename,Local/[EMAIL PROTECTED]) And then somewhere in my dialplan I have: [agents] exten = 1234,1,Dial(SIP/1234,20) exten = 1234,n,DoSomethingHereIfDollarDialStatusIsNotANSWERED And then of course it makes no difference that agent 1234 is on SIP - they could be Zap, IAX, Skinny, whatever. And yes, I have good reason for using SIP channels. We have externally driven automatic pausing (because the built-in wrapuptime is per-queue and therefore broken for any agent who is assigned to more than one queue), and neither form of Local (with or without /n) perform properly under this configuration. This is something new for me. Are you sure about this? Isn't wrapuptime taking in account agent state change? Because then, it's really bad for direct calls (for me it's rare that agent have several queues). Wrapuptime isn't a state in app_queue. You'd think it was (agent goes from in-use to in-wrapup, then back to available after the configured number of seconds). But what really happens is that the last time a member took a call is part of the member struct, which is subordinate to the queue struct ( i.e. the last time a member took a call is stored per-member-per-queue, not per-member). You can test this easily by adding a member to two queues, then sending a call to each queue spaced a minute apart. Then run 'queue show' on the CLI. You'll see that the last was xxx seconds ago differs for the same member in the two queues. When app_queue is attempting to dequeue a call to an available agent, it checks if the current time minus the time of the last call for the member in this queue is less than the wrapuptime, and if it is, it skips that member and goes onto the next. Because the last call time is per queue, you can have an agent take a call on queue foo, hang up that call, and receive a call for queue bar one second later, even if both queue foo and queue bar have a wrapuptime of 60 seconds configured. So, the built in wrapup has three major problems compared to the ACD system we moved to Asterisk from: - wrapuptime is per-queue-per-member, not per-member - wrapuptime is invisible (the internal state of the member during the wrapup is not in use, and only by looking at the last was xxx seconds ago and knowing what the configured wrapuptime for the queue is can you tell that a member is not actually eligible to take a call) - wrapuptime cannot be shortened or extended by the agent (or anyone else for that matter - I once mused with writing a dialplan function to set the last call time to some arbitrary epoch value to make this viable) These problems led to me developing this external wrapuptime system. My original implementation for doing external auto-pause was to have an AMI client watch for Hangup events. When I did that, Local channels caused problems. If I used one form of Local channel (with or without the /n, I forget now) then the hangup event was fired when the call was bridged to the agent. The other way, the hangup didn't fire until the agent was done with the caller, but some equally unpleasant side effect manifested. This was all months ago, so I don't recall the specific problems I faced. The AMI solution was too CPU intensive, so I switched to a system that essentially tails queue_log. When it seems COMPLETEAGENT or COMPLETECALLER or TRANSFER, it uses AMI to pause the member, and schedules an unpause for x seconds in the future.By using PauseQueueMember without a queue name, it pauses an agent in all their queues, and if the agent needs to, he can unpause themselves early or cancel the pending unpause to give themselves more time to write notes. This way of doing things might not be incompatible with Local channels, but I'd have to do some tests. Wow, hearing this is really interesting, and probably very valuable for a lot of people. I just wrote a function to pause agent after receiving call - business didn't wanted to have wrapuptime, as it varies a lot for agents, and they also are writing notes after call. So, they manually have to do unpause. I'm not sure about cancel pending unpause, because that way agent is distracted from taking
Re: [asterisk-users] Cascading queues calls not joining unavailable queues.
I'd like asterisk to quit trying when all agents are busy, but i don't think it's possible without scripting it yourself with some AGI-script that checks 'show queues' output. There was recent discussion on asterisk-dev about adding QUEUE(AVAILABLE), QUEUE(MEMBERS) and QUEUE(TOTAL).. or something that way. You just need to wait a bit, because there was already volunteer ready to code it. Also there was something about available members, but i'm not quite sure that it's true.. you can read more here: http://lists.digium.com/pipermail/asterisk-dev/2007-September/029322.html Regards, Atis -- Atis Lezdins, IT Responsible of BEST Riga, [EMAIL PROTECTED] ICQ: 142239285 Skype: atis.lezdins Cell Phone: +371 28806004 [Tele2, Latvia] Work phone: +1 800 7502835 [Toll free, USA] ?BEST? - www.BEST.eu.org ___ Sign up now for AstriCon 2007! September 25-28th. http://www.astricon.net/ --Bandwidth and Colocation Provided by http://www.api-digital.com-- asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
[asterisk-users] Cascading queues calls not joining unavailable queues.
Hi! - Trying a repost, my first message didn't seem to make the list. I have one main queue with agents that take calls to our main phonenumber. Now i want to cascade calls through to the fallback queue immediately when all the agents in the first queue are 'unreachable' in any way (be it OffHook, DND, Paused, etc...) Somehow calls still keep hanging around in the main queue even if agents are Busy or 'DND' for the specified timeout before returning to the dialplan which then calls the next queue. The extensions.conf section that places the call on the main queue and afterwards the second queue: | exten = 511,n,Queue(511,t,,,30) ; Main queue | exten = 511,n,Queue(611,t,,,30) ; Fallback queue And this is my queues.conf accordingly. I'll only show the main queue config, as the fallback queue config is EXACTLY the same, except for the queuemembers ofcourse. | [511] | servicelevel = 30 | announce = voice/connected | musiconhold = default | strategy = ringall | context = vanuit-queues | timeout = 10 | wrapuptime = 10 | announce-frequency = 10 | announce-holdtime = no | joinempty = strict | leavewhenempty = yes | member = SCCP/206 | member = SCCP/210 This selection of loglines shows Asterisk is aware that noone is answering the queue: | logger.c: -- Goto (groepen,511,1) | logger.c: -- Called SCCP/210 | logger.c: -- Called SCCP/206 | logger.c: -- SCCP/206 is busy | logger.c: -- SCCP/210 is busy | app_queue.c: No one is answering queue '511' (7/2/0) | logger.c: -- Stopped music on hold on SIP/10.10.1.1 | logger.c: -- Told SIP/10.10.1.1 in 511 their queue position (which was 1) | logger.c: -- Started music on hold, class 'default', on SIP/10.10.1.1 | logger.c: -- Called SCCP/210 | logger.c: -- Called SCCP/206 | logger.c: -- SCCP/206-0021 is busy | logger.c: -- SCCP/210-0020 is busy | app_queue.c: No one is answering queue '511' (7/2/0) | [ ... etc ... ] What am i doing wrong here? Can anyone shed some light? Thanks! Sander. -- | The short fortune teller who escaped from prison: a small medium at large. | 1024D/08CEC94D - 34B3 3314 B146 E13C 70C8 9BDB D463 7E41 08CE C94D -- | The story of my life; warm beer and cold women. | 1024D/08CEC94D - 34B3 3314 B146 E13C 70C8 9BDB D463 7E41 08CE C94D ___ Sign up now for AstriCon 2007! September 25-28th. http://www.astricon.net/ --Bandwidth and Colocation Provided by http://www.api-digital.com-- asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [asterisk-users] Cascading queues calls not joining unavailable queues.
| app_queue.c: No one is answering queue '511' (7/2/0) The 7/2/0 indicates that you have 7 members in your queue and 2 are busy. This would indicate that even though those 2 members are busy, there are still 5 more available members for taking calls. Since there are available members, you stay in the queue. Have you added additional queue members besides the ones you specified in queues.conf? Mark Michelson ___ Sign up now for AstriCon 2007! September 25-28th. http://www.astricon.net/ --Bandwidth and Colocation Provided by http://www.api-digital.com-- asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users