Hey all!<br><br>I&#39;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&#39;s state). My logic looks fine to me but every time ${PQMSTATUS} shows up empty.<br>

<br>Here&#39;s the extensions.conf part....<br><br>exten =&gt; *0,1,NoOp(${PQMSTATUS})<br>exten =&gt; *0,n,Macro(user-callerid,SKIPTTL,)<br>exten =&gt; *0,n,Set(CALLBACKNUM=${IF($[${LEN(${AMPUSER})}=0]?${CALLERID(number)}:${AMPUSER})})<br>

exten =&gt; *0,n,GotoIf($[&quot;${PQMSTATUS}&quot; = &quot;PAUSED&quot;]?unpause,1:pause,1)<br><br>; Pause ourselves in one or more queues<br>exten =&gt; pause,1,NoOp()<br>exten =&gt; pause,n,PauseQueueMember(,Local/${CALLBACKNUM}@from-queue/n)<br>

exten =&gt; pause,n,PauseQueueMember(,Local/${CALLBACKNUM}@from-internal/n)<br>exten =&gt; pause,n,GoSub(changePauseStatus,start,1(PQMSTATUS,PAUSED,unavailable))<br>exten =&gt; pause,n,Hangup()<br><br>; Unpause ourselves from one or more queues<br>

exten =&gt; unpause,1,NoOp()<br>exten =&gt; unpause,n,PauseQueueMember(,Local/${CALLBACKNUM}@from-queue/n)<br>exten =&gt; unpause,n,PauseQueueMember(,Local/${CALLBACKNUM}@from-internal/n)<br>                                                                                                ;   that queue, otherwise, we&#39;ll unpause in<br>

                                                                                                ;   in all queues<br>exten =&gt; unpause,n,GoSub(changePauseStatus,start,1(UPQMSTATUS,UNPAUSED,available))              ; use the changePauseStatus subroutine and<br>

                                                                                                ;   pass the values for: variable to check,<br>                                                                                                ;   value to check for, and file to play<br>

exten =&gt; unpause,n,Hangup()<br><br>; ### Subroutine we use to check pausing and unpausing status ###<br>[changePauseStatus]<br>; ARG1:  variable name to check, such as PQMSTATUS and UPQMSTATUS (PauseQueueMemberStatus / UnpauseQueueMemberStatus)<br>

; ARG2:  value to check for, such as PAUSED or UNPAUSED<br>; ARG3:  file to play back if our variable value matched the value to check for<br>;<br>exten =&gt; start,1,NoOp()<br>exten =&gt; start,n,Playback(silence/1)<br>
; Please note that ${ARG1} is wrapped in ${  } in order to expand the value of ${ARG1} into<br>
;   the variable we want to retrieve the value from, i.e. ${${ARG1}} turns into ${PQMSTATUS}<br>exten =&gt; start,n,Playback(${IF($[&quot;${${ARG1}}&quot; = &quot;${ARG2}&quot;]?${ARG3}:not-yet-connected)})<br>;exten =&gt; start,n,GotoIf($[${ISNULL(${xtn})}]?end)       ; if ${xtn} is null, then just Return()<br>

exten =&gt; start,n,Playback(in-the-queue)                 ;   if not null, then playback &quot;in the queue&quot;<br>;exten =&gt; start,n,SayNumber(${xtn})                      ;   and the queue number that we (un)paused from<br>

exten =&gt; start,n(end),Return()                          ; return from were we came<br><br><br clear="all">v/r,<br>Me<br><br>