Anthony Minessale
2003-Oct-18 15:09 UTC
[Asterisk-Users] Even Newer Patch to app_queue with skillbased strategy
I made a post a few days ago with a patch to the queue to allow you to insert a penalty value in dynamic queue adding. http://asterisk.650dialup.com Since then, I decided I would make a whole new strategy called 'skillbased' I added a new option skillmask to the Queue appl and the AddQueueMember func as well as the queues.conf basicly if the skillmask of the queuemember is & (bitwise anded) against the mask of the call on the queue If they match then you can take the call and it boils down to the penalty value (ringall) if not you are not even considered for the call. I used long as the variable so you can get a good deal of bits in a mask (int can have 32) For anyone not familiar with this concept see unix chmod that uses an octal and the bits 1,2,4 For the queue skillmask just keep multing the number by 2 1 = sales 2 = tech level 1 4 = tech level 2 8 = tech level 3 16 = advanced problems 32 = coperate to allow a queue member to be allowed to take the call just add up all the numbers that go with his skills and set that as his skillmask to set the call just use prompts to caculate what kind of call it is and feed that skill bit to the Queue exten => 1,1,Queue,skillqueue||1 ; 1 is for sales skill --------------------------------- Do you Yahoo!? The New Yahoo! Shopping - with improved product search -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.digium.com/pipermail/asterisk-users/attachments/20031018/e75f7643/attachment.htm
Mark Spencer
2003-Oct-20 20:24 UTC
[Asterisk-Users] Even Newer Patch to app_queue with skillbased strategy
> and the bits 1,2,4 > > For the queue skillmask just keep multing the number by 2 > > > 1 = sales > 2 = tech level 1 > 4 = tech level 2 > 8 = tech level 3 > 16 = advanced problems > 32 = coperate > > > to allow a queue member to be allowed to take the call just add up > all the numbers that go with his skills and set that as his skillmaskI suggest looking at ast_get_group() for an easy way to do what you're trying to do here with the group numbers. Your ideas are great though :) Mark
Anthony Minessale
2003-Oct-21 08:13 UTC
[Asterisk-Users] Even Newer Patch to app_queue with skillbased strategy
> and the bits 1,2,4 > > For the queue skillmask just keep multing the number by 2 > > > 1 = sales > 2 = tech level 1 > 4 = tech level 2 > 8 = tech level 3 > 16 = advanced problems > 32 = coperate > > > to allow a queue member to be allowed to take the call just add up > all the numbers that go with his skills and set that as his skillmaskI suggest looking at ast_get_group() for an easy way to do what you're trying to do here with the group numbers. Your ideas are great though :) Mark I did encounter the groups but I was encountering some difficulty with the metric when I added a group into a queue it always seemed to win the metric battle despite the penalty. Something I have been playing with is taking the penalty and using it to rank the queue members by regenerating queues.conf every 1 hour with every agent defined seperatly and each with a different penalty so , in the case of sales, using the cdr and some carefully planned relations between sales records and a database I would calculate the efficiency of the sales team every 1 hour and redraw the queue moving the best performers to the top. My motivation for the skillbased routing comes more from a tech support requirement than a sales one. My intention is to make a database of agents with the various skills they possess all wrapped up into that 1 numeric representation. My examples would have better suited me if they demonstrated this better 1 = email expert 2 = unix expert 4 = windows expert (huh?) 7 = hardware specialist Then when a call comes in and after a few questions you determine the call requires the attention of someone who understands unix issues One would pass the value 2 as the skillmask allowing any agent with the 'unix' bit set (a.k.a. 2) to take the call. Also I want to implement dynamic queue addition using this concept so an AGI can be used to query your agent id then make several calls to AddQueueMember and report your current skillset via the skillmask parameter. I know asterisk has an app for talking to pg and so forth but what I like the most about it is it's similarity to 'legos' so I try and follow that mentality where you dont make features for it you make interfaces to hang your features. just like lego only provides you with a pile of bricks and a few specialized ones such as motor lights etc.. --------------------------------- Do you Yahoo!? The New Yahoo! Shopping - with improved product search -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.digium.com/pipermail/asterisk-users/attachments/20031021/a077e9a8/attachment.htm