[asterisk-users] Realtime Call Queues : call members in certain order

Jonas Kellens jonas.kellens at telenet.be
Thu Feb 13 07:11:41 CST 2014


On 12-02-14 16:58, Steven Wheeler wrote:
>
> *From:*asterisk-users-bounces at lists.digium.com 
> [mailto:asterisk-users-bounces at lists.digium.com] *On Behalf Of *Jonas 
> Kellens
> *Sent:* Wednesday, February 12, 2014 3:46 AM
> *To:* Asterisk Users Mailing List - Non-Commercial Discussion
> *Subject:* [asterisk-users] Realtime Call Queues : call members in 
> certain order
>
> Hello,
>
> I'm using MySQL realtime Call Queues (table /queues/ and table 
> /queue_members/).
>
> I would like to ring the members of the call queue in a certain order. 
> Therefore I use ring strategy /lineair /and I put the members into the 
> table /queue_members/ in the order in which they have to be rang.
>
>
> So I have the queue :
>
> | name           | musicclass | announce | context | timeout | 
> monitor_type | monitor_format | queue_youarenext | queue_thereare | 
> queue_callswaiting | queue_holdtime | queue_minutes | queue_seconds | 
> queue_lessthan | queue_thankyou | queue_reporthold | 
> announce_frequency | announce_round_seconds | announce_holdtime | 
> announce_position | retry | wrapuptime | maxlen | servicelevel | 
> strategy | joinempty | leavewhenempty | eventmemberstatus | 
> eventwhencalled | reportholdtime | memberdelay | weight | 
> timeoutrestart | periodic_announce | periodic_announce_frequency | 
> ringinuse |
> +----------------+------------+----------+---------+---------+--------------+----------------+------------------+----------------+--------------------+----------------+---------------+---------------+----------------+----------------+------------------+--------------------+------------------------+-------------------+-------------------+-------+------------+--------+--------------+----------+-----------+----------------+-------------------+-----------------+----------------+-------------+--------+----------------+-------------------+-----------------------------+-----------+
> | queue6 | default    | NULL     |         |      12 | NULL         | 
> NULL           | NULL             | NULL           | 
> NULL               | NULL           | NULL          | NULL          | 
> NULL           | NULL           | NULL             |                 
> 30 |                   NULL | No                | yes               
> |     5 |         10 |      0 | NULL | linear   | strict    | 
> strict         | NULL              | NULL            |           NULL 
> |        NULL |   NULL | no             | |                           
> 0 | no        |
> +----------------+------------+----------+---------+---------+--------------+----------------+------------------+----------------+--------------------+----------------+---------------+---------------+----------------+----------------+------------------+--------------------+------------------------+-------------------+-------------------+-------+------------+--------+--------------+----------+-----------+----------------+-------------------+-----------------+----------------+-------------+--------+----------------+-------------------+-----------------------------+-----------+
>
>
> and queue members :
>
> +----------+----------------+----------------+--------------------+---------+--------+
> | uniqueid | membername     | queue_name     | interface          | 
> penalty | paused |
> +----------+----------------+----------------+--------------------+---------+--------+
> |       44 | queuemem4  | queue6 | SIP/queuemem4  |       0 |   NULL |
> |       45 | queuemem2  | queue6 | SIP/queuemem2  |       0 |   NULL |
> |       46 | queuemem5  | queue6 | SIP/queuemem5  |       0 |   NULL |
> |       47 | queuemem1  | queue6 | SIP/queuemem1  |       0 |   NULL |
> |       48 | queuemem10 | queue6 | SIP/queuemem10 |       0 |   NULL |
> |       49 | queuemem18 | queue6 | SIP/queuemem18 |       0 |   NULL |
> |       50 | queuemem17 | queue6 | SIP/queuemem17 |       0 |   NULL |
> |       51 | queuemem12 | queue6 | SIP/queuemem12 |       0 |   NULL |
> |       52 | queuemem16 | queue6 | SIP/queuemem16 |       0 |   NULL |
> |       53 | queuemem13 | queue6 | SIP/queuemem13 |       0 |   NULL |
> +----------+----------------+----------------+--------------------+---------+--------+
>
>
>
> You can see that the member /queuemem4/ is first in line to be rang 
> (has the first and lowest uniqueid in the table).
>
> But the first member that is being rang, is /queuemem1/. How come ??
>
>
> Kind regards,
>
> Jonas.
>
> Jonas,
>
> We encountered the same problem. It is a bug in the Queue application. 
> The Queue application actually orders members by their interface 
> value. Here is the bug report I opened 
> https://issues.asterisk.org/jira/browse/ASTERISK-18480 
> <https://issues.asterisk.org/jira/browse/ASTERISK-18480> which was 
> closed as "Not A Bug" by Digium.  We worked around this by prepending 
> an integer (001__, 002__, ...) to the interface in the database table 
> and then removing it later in the dial plan. Hope this helps.
>
> Steven Wheeler
>

Hello,

thank you for your reply.


Is it the "membername" or the "interface" that needs to be sorted to 
have a certain order in the call queue ?


How do you remove the prefix (integer) from a call queue member from 
dialplan ?

If you call the queue in your dialplan as follow :

exten => s,n,Queue(${queuename},,,,${timeout})

How can you "edit" its members ??



Kind regards,

Jonas.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20140213/0007f85b/attachment.html>


More information about the asterisk-users mailing list