Summary:ASTERISK-14159: [patch] Refactor queue member properties and add functions to retrieve/modify them
Reporter:Atis Lezdins (atis)Labels:
Date Opened:2009-05-18 18:32:51Date Closed:2017-12-12 21:20:05.000-0600
Versions:Frequency of
Environment:Attachments:( 0) queue_member_field_refactoring_pmw_v1.patch
( 1) queue_member_field_refactoring_v1.patch
( 2) queue_member_fields_pmw_v2.patch
Description:I'm trying to add QUEUE_MEMBER function which would allow to read/write fields of member like penalty/calls/paused/lastcall/wrapuptime

Also there's refactoring for all kinds of access (dialplan functions/AMI/CLI) to use the same mechanisms and update logics, allowing to set +/- values relative to current value.

This is work-in-progress, there are some TODO's left in patch, and some more refactoring has to be done.

I'm sharing this with eliel, as he is currently adding per-member-wrapuptime which is a really good candidate for using the same structure.
Comments:By: Eliel Sardanons (eliel) 2009-05-19 15:11:37

In your patch you remove the QUEUE_MEMBER_COUNT function if I am not wrong, that is not possible, we need backward compatibility, we do not remove those apps/funs anymore.

By: Atis Lezdins (atis) 2009-05-19 16:06:54

Not really.

QUEUE_MEMBER_COUNT was an obsoleted function in 1.4 replaced by QUEUE_MEMBER. However, now the name QUEUE_MEMBER is much more suited for manipulating actual members, so I rename QUEUE_MEMBER to QUEUE_MEMBER_COUNT, while still supporting "count" functionality in QUEUE_MEMBER, but deprecating use of it.

I'll try to provide more complete documentation in UPGRADE.txt when all those changes are done

By: Atis Lezdins (atis) 2009-05-19 19:00:17

Actually, another diff-check revealed that You're partially right. So, I just have to add default behavour of QUEUE_MEMBER_COUNT to be the old QUEUE_MEMBER_COUNT.

By: Atis Lezdins (atis) 2009-05-19 19:48:55

Ok, another patch comes here.

Added missing backward compatibility for QUEUE_MEMBER(count|free|logged), as well as some comments for myself and few for eliel's code.

By: Atis Lezdins (atis) 2009-05-21 11:06:10

Some idea of new feature based on this and per-member-wrapuptime

(18:52:18) philippel: if you have A and B with penalty 1, and C with penalty 2, the normal behavior is never try C if A or B are available, and not answering the phone is considered available. This is proper for standard call centers, agents shoudl always answer or be busy talking
(18:52:44) philippel: however, there are many situaitons where you may want to change the behavior and say if A or B don't answer there phone, then it shoudl go to C
(18:52:51) atis_work: you could tweak it with wrapuptime
(18:53:01) philippel: how
(18:53:36) philippel: from what I understand and have played with, it wil never escllate up to C if A and B can be run unless both are busy
(18:53:41) atis_work: well, if wrapuptime is high enough, A missing call will get lastcall set to current time, and then wrapuptime kicks in
(18:54:04) atis_work: also, there's feature in development, that will allow to change wrapuptime temporarily for agent
(18:54:35) atis_work: so, when you get NOANSWER in dialplan, you just set wrapuptime for next call to 1 minute, and let ring other agents
(18:54:48) atis_work: or 5 minutes - depending on count of agents
(18:54:48) (hesco ir pametis šo istabuquit: Read error: 104 (Connection reset by peer)).
(18:55:27) philippel: atis_work interesting approach, doens't wrapupttime only apply if they answered the call though?
(18:55:51) atis_work: well.. i'm confident to change that :D
(18:56:17) atis_work: actually - wrapuptime applys always based on lastcall
(18:56:42) atis_work: so, i'm thinking of letting user to update lastcall upon missed call (optionally)
(18:56:56) atis_work: so, wrapuptime gets added - and agent still can't be called
(18:57:26) atis_work: but yeah, that's quite complex system.. not for easy enable-and-works
(18:57:53) atis_work: or few custom settings could be created based on this mechanism
(18:58:02) atis_work: putnopvut: are you reading? :)
(18:59:16) philippel: atis_work well there are various ways to get the starts and moons to line up that may get thigns working, but it would be really nice to find a way to get penalties to work as described, ideally on a per queue basis but on an all or nothing basis woudl be quite acceptable as well (e.g. in general, usepenaltyonnoanswer=yes, somethign like that)

By: Corey Farrell (coreyfarrell) 2017-12-12 21:20:05.934-0600

Suspended due to lack of activity.  If you wish to resume work on this issue you can post a comment to reopen.