There may be a more elegant way to do it, but what I do is simply call PauseQueueMember() first, then check the result of PQMSTATUS. I forget the exact results but I think it's either 'Success' or 'Already Paused', and then I base my next step in logic based on that result.
Thanks, --Warren Selby, dCAP On May 5, 2011, at 6:15 PM, Louis Carreiro <[email protected]> wrote: > Well that makes sense.... > > Is there anyway to determine the user's state ([un]paused) in the dial plan > prior to using the [Un]PauseQueueMember() app? > > I'd like to be able to keep it very simple for my users by instructing them > to dial one key code to pause or unpause. > > v/r, > Me > > > > On Thu, May 5, 2011 at 6:04 PM, Warren Selby <[email protected]> wrote: > PQMSTATUS is set only after you run the application PauseQueueMember(). > > Thanks, > --Warren Selby, dCAP > > On May 5, 2011, at 2:11 PM, Louis Carreiro <[email protected]> wrote: > > > Hey all! > > > > I'm trying to do a bit of logic here so that a user only has to dial one > > code to pause/unpause in a queue (e.g. *0 will (un)pause depending on the > > users's state). My logic looks fine to me but every time ${PQMSTATUS} shows > > up empty. > > > > Here's the extensions.conf part.... > > > > exten => *0,1,NoOp(${PQMSTATUS}) > > exten => *0,n,Macro(user-callerid,SKIPTTL,) > > exten => > > *0,n,Set(CALLBACKNUM=${IF($[${LEN(${AMPUSER})}=0]?${CALLERID(number)}:${AMPUSER})}) > > exten => *0,n,GotoIf($["${PQMSTATUS}" = "PAUSED"]?unpause,1:pause,1) > > > > ; Pause ourselves in one or more queues > > exten => pause,1,NoOp() > > exten => pause,n,PauseQueueMember(,Local/${CALLBACKNUM}@from-queue/n) > > exten => pause,n,PauseQueueMember(,Local/${CALLBACKNUM}@from-internal/n) > > exten => > > pause,n,GoSub(changePauseStatus,start,1(PQMSTATUS,PAUSED,unavailable)) > > exten => pause,n,Hangup() > > > > ; Unpause ourselves from one or more queues > > exten => unpause,1,NoOp() > > exten => unpause,n,PauseQueueMember(,Local/${CALLBACKNUM}@from-queue/n) > > exten => unpause,n,PauseQueueMember(,Local/${CALLBACKNUM}@from-internal/n) > > > > ; that queue, otherwise, we'll unpause in > > > > ; in all queues > > exten => > > unpause,n,GoSub(changePauseStatus,start,1(UPQMSTATUS,UNPAUSED,available)) > > ; use the changePauseStatus subroutine and > > > > ; pass the values for: variable to check, > > > > ; value to check for, and file to play > > exten => unpause,n,Hangup() > > > > ; ### Subroutine we use to check pausing and unpausing status ### > > [changePauseStatus] > > ; ARG1: variable name to check, such as PQMSTATUS and UPQMSTATUS > > (PauseQueueMemberStatus / UnpauseQueueMemberStatus) > > ; ARG2: value to check for, such as PAUSED or UNPAUSED > > ; ARG3: file to play back if our variable value matched the value to check > > for > > ; > > exten => start,1,NoOp() > > exten => start,n,Playback(silence/1) > > ; Please note that ${ARG1} is wrapped in ${ } in order to expand the value > > of ${ARG1} into > > ; the variable we want to retrieve the value from, i.e. ${${ARG1}} turns > > into ${PQMSTATUS} > > exten => start,n,Playback(${IF($["${${ARG1}}" = > > "${ARG2}"]?${ARG3}:not-yet-connected)}) > > ;exten => start,n,GotoIf($[${ISNULL(${xtn})}]?end) ; if ${xtn} is > > null, then just Return() > > exten => start,n,Playback(in-the-queue) ; if not null, > > then playback "in the queue" > > ;exten => start,n,SayNumber(${xtn}) ; and the queue > > number that we (un)paused from > > exten => start,n(end),Return() ; return from were > > we came > > > > > > v/r, > > Me > > > > -- > > _____________________________________________________________________ > > -- Bandwidth and Colocation Provided by http://www.api-digital.com -- > > New to Asterisk? Join us for a live introductory webinar every Thurs: > > http://www.asterisk.org/hello > > > > asterisk-users mailing list > > To UNSUBSCRIBE or update options visit: > > http://lists.digium.com/mailman/listinfo/asterisk-users > > -- > _____________________________________________________________________ > -- Bandwidth and Colocation Provided by http://www.api-digital.com -- > New to Asterisk? Join us for a live introductory webinar every Thurs: > http://www.asterisk.org/hello > > asterisk-users mailing list > To UNSUBSCRIBE or update options visit: > http://lists.digium.com/mailman/listinfo/asterisk-users > > -- > _____________________________________________________________________ > -- Bandwidth and Colocation Provided by http://www.api-digital.com -- > New to Asterisk? Join us for a live introductory webinar every Thurs: > http://www.asterisk.org/hello > > asterisk-users mailing list > To UNSUBSCRIBE or update options visit: > http://lists.digium.com/mailman/listinfo/asterisk-users
-- _____________________________________________________________________ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- New to Asterisk? Join us for a live introductory webinar every Thurs: http://www.asterisk.org/hello asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
