Queue Auto-Pause problems

We have Sangoma’s commercial “Queue Plus” product (in case that matters) and we’ve been trying for over a year now to get auto pause working correctly. There are two issues that we’re aware of and we were able to work around the one but I don’t know what to do about the other.

FreePBX Firmware: 10.13.66-22
Queues Module: 13.0.34.10

First Issue

The first, and more serious, issue is that when we have a queue that is set to auto pause members and when all the members are busy and another call enters the queue it systematically (and instantly) pauses every single member that is logged in to that queue. The desired behavior is that it should only auto-pause a member if they fail to answer a call when they are not on an existing call. I have played with with every combination of settings I can think of but I cannot get this to function as desired. Here are my queue settings and what I think should work but I’m hoping that someone can either confirm this as a bug or tell what combination of settings makes this work.

Queue Settings
[7200]
announce-frequency=120
announce-holdtime=once
announce-position=yes
autofill=yes
autopause=yes
autopausebusy=no
autopausedelay=0
autopauseunavail=no
joinempty=yes
leavewhenempty=loose
maxlen=0
memberdelay=0
min-announce-frequency=15
penaltymemberslimit=0
periodic-announce-frequency=90
queue-callswaiting=queue-callswaiting
queue-thankyou=queue-thankyou
queue-thereare=queue-thereare
queue-youarenext=queue-youarenext
reportholdtime=yes
retry=0
ringinuse=no
servicelevel=90
strategy=leastrecent
timeout=20
timeoutpriority=app
timeoutrestart=no
weight=0
wrapuptime=30
context=queuecallback-2
periodic-announce=custom/Esc_Queue_Callback_Offer_
lazymembers=no

Second Issue

The second issue we were able to work around is that the FreePBX feature code to toggle a member’s pause status doesn’t work if they are the member that should receive a call next. For example, an agent is paused for any reason and they want to unpause themselves. However, as they dial the feature code *46*EXT*QUEUE it unpauses them and the queue can immediately try to send them a call which it reports as busy and thus it auto pauses them again. The simple work around (and I propose as a fix) for this is to change the [app-queue-pause-toggle] so that it doesn’t set the agent as unpaused until they call us hung up. So, change this…

Current Dialplan
[app-queue-pause-toggle]
include => app-queue-pause-toggle-custom
exten => s,1(start),Answer
exten => s,n,Wait(1)
exten => s,n,Macro(user-callerid,)
exten => s,n,Set(QUEUEUSER=${IF($[${LEN(${ARG2})}>0]?${ARG2}:${AMPUSER})})
exten => s,n,Set(MEMBR=Local/${QUEUEUSER}@from-queue/n)
exten => s,n,Set(PAUSE_STATE=${QUEUE_MEMBER(${ARG1},paused,${MEMBR})})
exten => s,n,Set(QUEUE_MEMBER(${ARG1},paused,${MEMBR})=${IF($[${PAUSE_STATE}]?0:1)})
exten => s,n,Playback(dictate/pause&${IF($[${PAUSE_STATE}]?de-activated:activated)})
exten => s,n,ExecIf($[${ARG2}]?Return())
exten => s,n,Macro(hangupcall,)

to this…

Fixed Dialplan
[app-queue-pause-toggle]
include => app-queue-pause-toggle-custom
exten => s,1(start),Answer
exten => s,n,Wait(1)
exten => s,n,Macro(user-callerid,)
exten => s,n,Set(QUEUEUSER=${IF($[${LEN(${ARG2})}>0]?${ARG2}:${AMPUSER})})
exten => s,n,Set(MEMBR=Local/${QUEUEUSER}@from-queue/n)
exten => s,n,Set(PAUSE_STATE=${QUEUE_MEMBER(${ARG1},paused,${MEMBR})})
exten => s,n,Playback(dictate/pause&${IF($[${PAUSE_STATE}]?de-activated:activated)})
exten => s,n,Macro(hangupcall,)

exten => h,1,Set(QUEUE_MEMBER(${ARG1},paused,${MEMBR})=${IF($[${PAUSE_STATE}]?0:1)})

Ultimately this issue may actually be related to the first issue since the problem is that the agent is getting paused because the queue is trying to send them a call while they are on a call and pausing them. Thus, the answer to the first problem maybe an answer to both. But I still think that the proposed change to resolve my second issue is more reliable fix.

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