[asterisk-bugs] [JIRA] Commented: (ASTERISK-17366) [patch] Skill routing

Kevin Scott Adams (JIRA) noreply at issues.asterisk.org
Mon Aug 13 10:08:07 CDT 2012


    [ https://issues.asterisk.org/jira/browse/ASTERISK-17366?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=195708#comment-195708 ] 

Kevin Scott Adams commented on ASTERISK-17366:
----------------------------------------------

We are currently testing it.
The only thing I see is it needs some TLC on the coding guidelines.  But app_queue.c itself, needs some TLC in this area too.
We have patched it into 1.8.15.0.
The other thing I might add/enhance is a exit status that tells the dialplan if it exited due to no agents with skills (JOINSKILLS) instead of a join when empty (JOINEMPTY).  That way the dialplan knows whats going on.
So far it is working as designed.  We might not hit every "skill" condition but so far so good.
We intend to use it for a World Wide Call Center starting with Language skills.  I am sure my users will find other ways of using it.


> [patch] Skill routing
> ---------------------
>
>                 Key: ASTERISK-17366
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-17366
>             Project: Asterisk
>          Issue Type: New Feature
>          Components: Applications/app_queue
>            Reporter: Romain Bignon
>            Assignee: Leif Madsen
>         Attachments: asterisk.queue.skills.20110330.patch, asterisk.queue.skills.patch
>
>
> This patch introduces the skills for queue members, and the ability to route calls by skill rules.
> ****** ADDITIONAL INFORMATION ******
> Two new configuration files are created:
> — queueskills.conf, which defines skills groups. Every members can be associated to a skills group. All skills are a string with a weight (an integer value)
> — queueskillrules.conf defines rules sets.
> The Queue() app can get a new parameter, the skill ruleset to use to route this call.
> A ruleset groups several rules, which are compound by two parts. The first one is the condition to test this rule. If it fails, it jumps to the next one.
> When a caller enters in the queue with a ruleset, the first rule is run. It evaluates the first part to know if we run it. For example, if the condition is that this rule may be evaluated the first 60 seconds, the selected members will be selected by this rule. If the caller waits more than 60 seconds, it jumps to the next rule.
> To select members, the second part of a rule is an expression with logical operators ('&', '|'), arithmetical operators ('=', '<', '>', etc.), skills variables and meta variables. It is evaluated against every members.
> A skills variable is an alphanumerical name which has the value of the skill weight.
> A meta variable starts with a '$', and and used to substitute them with values given on the Queue() call.
> For example, a rule “WT < 60, technic & ($os > 29 | english > 39)” is evaluated only the first 60 seconds. $os is replaced by the value given to Queue() (determined by the caller number or a voice menu, for example). Then, only members with the 'technic' skill, and the given os skill (for example 'linux') with a weight > 29, or with an 'english' skill > 39, will be selected.
> To get more information with rules, please read configs/queueskillrules.conf.sample.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira



More information about the asterisk-bugs mailing list