Realtime Queue – changing strategy to linear needs Asterisk restart

Home » Asterisk Users » Realtime Queue – changing strategy to linear needs Asterisk restart
Asterisk Users 1 Comment

Hi group,

We have realtime queue architecture on asterisk 1.8.7.0
I noticed that when we change strategy from any other to ‘linear’ it
requires Asterisk restart take the change in effect.
I have one realtime queue ‘1’ with strategy set to ‘ringall’ and I change
its strategy to ‘linear’. Now when check on Asterisk CLI it shows me
warning given below.

demo*CLI> queue show 1
1 has 0 calls (max 500) in ‘ringall’ strategy (0s holdtime, 0s talktime),
W:1, C:0, A:0, SL:0.0% within 100s
No Members
No Callers

[Nov 8 12:10:18] WARNING[4887]: app_queue.c:2034 queue_set_param: Changing
to the linear strategy currently requires asterisk to be restarted.
[Nov 8 12:10:18] WARNING[4887]: app_queue.c:2034 queue_set_param: Changing
to the linear strategy currently requires asterisk to be restarted.

This behaviour doesn’t happen when strategy changed to other than ‘linear’.
So why is Asterisk restart needed for this change?

TIA,

One thought on - Realtime Queue – changing strategy to linear needs Asterisk restart

  • Because the creation of the queue members container requires different
    properties for linear support.

    if (q->strategy == QUEUE_STRATEGY_LINEAR || q->strategy == QUEUE_STRATEGY_RRORDERED)
    /* linear strategy depends on order, so we have to place all members in a single bucket */
    q->members = ao2_container_alloc(1, member_hash_fn, member_cmp_fn);
    else
    q->members = ao2_container_alloc(37, member_hash_fn, member_cmp_fn);

    The other strategies will work with the linear version of the container
    but are just not as efficient.

    Richard