aboutsummaryrefslogtreecommitdiffstats
path: root/configs
diff options
context:
space:
mode:
authormmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b>2007-12-21 00:44:17 +0000
committermmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b>2007-12-21 00:44:17 +0000
commitf18c0943a0dc8031f97067ef616464f37518209e (patch)
tree46786d1665dba73305b2a9c07e0bca2532380ff6 /configs
parent6bdde69e7989206f7c257df23b9a04d56f3c7413 (diff)
Merging the queue-penalty branch. In short, this allows one to dynamically adjust
the QUEUE_MAX_PENALTY and the newly introduced QUEUE_MIN_PENALTY during a call depending on the amount of time passed. The purpose is to allow the call to open up to more (or maybe just different) members without the caller's losing his place in the queue. See configs/queuerules.conf.sample for an example of how to set up queue rules and configs/queues.conf.sample for how to associate a rule with a queue. Along with the functional changes, new CLI and manager commands exist to show the rules defined and there is an additional CLI command to reload the queue rules. Future enhancements that may be made: support for realtime queue rules and support for dynamically adding a rule through the manager or CLI. Also a manager command to reload the queue rules (I'll probably write this myself very soon). git-svn-id: http://svn.digium.com/svn/asterisk/trunk@94370 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'configs')
-rw-r--r--configs/queuerules.conf.sample20
-rw-r--r--configs/queues.conf.sample7
2 files changed, 27 insertions, 0 deletions
diff --git a/configs/queuerules.conf.sample b/configs/queuerules.conf.sample
new file mode 100644
index 000000000..5ab794be7
--- /dev/null
+++ b/configs/queuerules.conf.sample
@@ -0,0 +1,20 @@
+; It is possible to change the value of the QUEUE_MAX_PENALTY and QUEUE_MIN_PENALTY
+; channel variables in mid-call by defining rules in the queue for when to do so. This can allow for
+; a call to be opened to more members or potentially a different set of members.
+; The advantage to changing members this way as opposed to inserting the caller into a
+; different queue with more members or reinserting the caller into the same queue with a different
+; QUEUE_MAX_PENALTY or QUEUE_MIN_PENALTY set is that the caller does not lose his place in the queue.
+;
+; Note: There is a limitation to these rules; a caller will follow the penaltychange rules for
+; the queue that were defined at the time the caller entered the queue. If an update to the rules is
+; made during the the caller's stay in the queue, these will not be reflected for that caller.
+;
+; The syntax for these rules is
+; penaltychange => <number of seconds into the call>,<absolute or relative change to QUEUE_MAX_PENALTY>[,absolute or relative change to QUEUE_MIN_PENALTY]
+;
+; Example:
+; [myrule]
+; penaltychange => 30,+3 ; 30 seconds into the call increase the QUEUE_MAX_PENALTY by 3, no change to QUEUE_MIN_PENALTY
+; penaltychange => 60,10,5 ; 60 seconds into the call increase the QUEUE_MAX_PENALTY to 10 and increase the QUEUE_MIN_PENALTY to 5
+; penaltychange => 75,,7 ; 75 seconds into the call keep the QUEUE_MAX_PENALTY the same and increase the QUEUE_MIN_PENALTY to 7
+
diff --git a/configs/queues.conf.sample b/configs/queues.conf.sample
index 440da3148..7fe148639 100644
--- a/configs/queues.conf.sample
+++ b/configs/queues.conf.sample
@@ -362,6 +362,13 @@ shared_lastcall=no
;
; timeoutrestart = no
;
+; If you wish to implement a rule defined in queuerules.conf (see
+; configs/queuerules.conf.sample from the asterisk source directory for
+; more information about penalty rules) by default, you may specify this
+; by setting defaultrule to the rule's name
+;
+; defaultrule = myrule
+;
; Each member of this call queue is listed on a separate line in
; the form technology/dialstring. "member" means a normal member of a
; queue. An optional penalty may be specified after a comma, such that