Queue, local channels and transfers

Hello!

Quite basic (I believe) question, but still
I’m using Queues with local channels. Quite simple, though
queues.conf

[QUEUE_A]
member = Local/NUM_A@remote/n

extensions.conf

[incoming]
exten => QUEUE_A,1,Queue(QUEUE_A)
[remote]
exten => NUM_A,1,Dial(PJSIP/NUM_A@out_trunk)

So, all seems straightforward. Usual problem, is when device behind NUM_A transfers a call, queue member stays in a In Use state.

Usual solution is to remove /n at the end of member definition and use GROUP and GROUP_COUNT to prevent new calls to already talking member.

For whatever reason if I’m doing something like this
queues.conf

[QUEUE_A]
member = Local/NUM_A@remote

extensions.conf

[incoming]
exten => QUEUE_A,1,Queue(QUEUE_A)
[remote]
exten => NUM_A,1,Set(GROUP(remote)=NUM_A)
    same => n,NoOp(Group Count is ${GROUP_COUNT(NUM_A@remote)})
    same => n,Dial(PJSIP/NUM_A@out_trunk)

I’m getting that Group count for every new call is 1 regardless of number of active calls to NUM_A established already. I do suspect some “extra optimizations” of a local channel here.

Am I missing something?
Or maybe there is a possibility on executing transfer (via Asterisk or via SIP mechanism) to optlimize local channel again so agent would be freed from the call?

I’m using Asterisk 18.13.0

Thanks in advance!

Ok. Found a solution for a GROUP_COUNT. GROUP function is needed to be called on a called channel directly, so smth like

[incoming]
exten => QUEUE_A,1,Queue(QUEUE_A)
[remote]
exten => NUM_A,1,,NoOp(Group Count is ${GROUP_COUNT(NUM_A@remote)})
    same => n,Dial(PJSIP/NUM_A@out_trunk,,b(set_group^${EXTEN}^1))
[set_group]
exten => NUM_A,1,Set(GROUP(remote)=NUM_A)
    same => n,Return

But question with “back to optimized state of local channel” remains. Is it something doable?

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.