[asterisk-users] Why is PQMSTATUS empty?
Warren Selby
wcselby at selbytech.com
Thu May 5 17:04:37 CDT 2011
PQMSTATUS is set only after you run the application PauseQueueMember().
Thanks,
--Warren Selby, dCAP
On May 5, 2011, at 2:11 PM, Louis Carreiro <carreirolt at gmail.com> 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
More information about the asterisk-users
mailing list