Agents logged in in multiple queues.Ring Strategy

I have Asterisk 11 and I have 95 different queues configured (for 95 different incoming numbers). Each queue has about 10 dynamic agents logged in.
Within each queue I can configure a ring strategy, but it only affects a particular queue. For example, if I configure “rmmemory”, the call takes into account how much time has passed since the last answered call for each agent … but of course, just look at that queue, if the agent has answered other calls from other queues it does not have it consider…
I don’t know if I explain myself …

Is it possible to establish a general ring strategy for the 95 queues, which sees them all as “a single queue”?

Thanks!!

@jarodriguez : Kindly refer the https://wiki.asterisk.org/wiki/display/AST/Building+Queues .

You also can try options for agent SIP :

callcounter=yes
busylevel=1

or implement queue auto-pause trigger for required period after the call completed

; shared_lastcall will make the lastcall and calls received be the same in
; members logged in more than one queue. This is useful to make the queue
; respect the wrapuptime of another queue for a shared member.
; The default value is no.
;
;shared_lastcall=yes

vijo.jose and a4business, Thanks for the comments … but what you write has nothing to do with the problem I am exposing.
I return to the problem: "Asterisk’s ring strategy seems to only affect the queue level. Therefore, if you have agents who are logged in in several queues, there is no way to propose a ring strategy that affects equally all agents ?, regardless of the queues they belong to.

David551, I already have that parameter set:
"
persistentmembers=yes
shared_lastcall=yes
updatecdr=yes
monitor-type=MixMonitor
"

As far as I know, only the leastrecent strategy uses last call information, and is therefore affected by shared_lastcall.

Thanks David
That is, Asterisk recognizes that “agent 1” is that it has answered the last call in queue 1 (for example), and if a call comes in queue 2 (which is also “agent 1”) will forward the call to a different agent. is that so?

I think it uses the time the agent finishes with the call, rather than the time the call is answered.

David,

I think this you say is not going to work with multiple queues…

Looking at the documentation, asterisk indicates:
leastrecent: ring interface which was least recently called by this queue”
Then, “…by this queue”, this means that it does not take into account the time since the last call between different queues, which is what I need.

callcounters=yes
even if you say its not related, you may check at least … do you have this option set tp yes?

not sure exactly, but according to this post, that option prevents of wrapuptime to be working:

shared_lastcall modifes that. Specifically, when setting the last call time, it trawls all the queues for the same interface, and sets the last call time for that interface in every queue, so when the queue comes to schedule an agent, the sort order of the interfaces is global, not local.

	if (shared_lastcall) {
		queue_iter = ao2_iterator_init(queues, 0);
		while ((qtmp = ao2_t_iterator_next(&queue_iter, "Iterate through queues"))) {
			ao2_lock(qtmp);
			if ((mem = ao2_find(qtmp->members, member, OBJ_POINTER))) {
				time(&mem->lastcall);
				mem->calls++;
				mem->callcompletedinsl = 0;
				mem->starttime = 0;
				mem->lastqueue = q;
				ao2_ref(mem, -1);
			}
			ao2_unlock(qtmp);
			queue_t_unref(qtmp, "Done with iterator");
		}
		ao2_iterator_destroy(&queue_iter);

David

You’re right. It works correctly as you say.

Thank you very much!!

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.