<html><body bgcolor="#FFFFFF"><div><div>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.&nbsp;<br><br>Thanks,<div>--Warren Selby, dCAP</div></div><div><br>On May 5, 2011, at 6:15 PM, Louis Carreiro &lt;<a href="mailto:carreirolt@gmail.com"><a href="mailto:carreirolt@gmail.com">carreirolt@gmail.com</a></a>&gt; wrote:<br><br></div><div></div><blockquote type="cite"><div>Well that makes sense....<br><br>Is there anyway to determine the user's state ([un]paused) in the dial plan prior to using the [Un]PauseQueueMember() app? <br><br>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.<br>

<br clear="all">v/r,<br>Me<br><br>
<br><br><div class="gmail_quote">On Thu, May 5, 2011 at 6:04 PM, Warren Selby <span dir="ltr">&lt;<a href="mailto:wcselby@selbytech.com"></a><a href="mailto:wcselby@selbytech.com"><a href="mailto:wcselby@selbytech.com">wcselby@selbytech.com</a></a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

PQMSTATUS is set only after you run the application PauseQueueMember().<br>
<br>
Thanks,<br>
--Warren Selby, dCAP<br>
<div><div></div><div class="h5"><br>
On May 5, 2011, at 2:11 PM, Louis Carreiro &lt;<a href="mailto:carreirolt@gmail.com"></a><a href="mailto:carreirolt@gmail.com"><a href="mailto:carreirolt@gmail.com">carreirolt@gmail.com</a></a>&gt; wrote:<br>
<br>
&gt; Hey all!<br>
&gt;<br>
&gt; 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.<br>


&gt;<br>
&gt; Here's the extensions.conf part....<br>
&gt;<br>
&gt; exten =&gt; *0,1,NoOp(${PQMSTATUS})<br>
&gt; exten =&gt; *0,n,Macro(user-callerid,SKIPTTL,)<br>
&gt; exten =&gt; *0,n,Set(CALLBACKNUM=${IF($[${LEN(${AMPUSER})}=0]?${CALLERID(number)}:${AMPUSER})})<br>
&gt; exten =&gt; *0,n,GotoIf($["${PQMSTATUS}" = "PAUSED"]?unpause,1:pause,1)<br>
&gt;<br>
&gt; ; Pause ourselves in one or more queues<br>
&gt; exten =&gt; pause,1,NoOp()<br>
&gt; exten =&gt; pause,n,PauseQueueMember(,Local/${CALLBACKNUM}@from-queue/n)<br>
&gt; exten =&gt; pause,n,PauseQueueMember(,Local/${CALLBACKNUM}@from-internal/n)<br>
&gt; exten =&gt; pause,n,GoSub(changePauseStatus,start,1(PQMSTATUS,PAUSED,unavailable))<br>
&gt; exten =&gt; pause,n,Hangup()<br>
&gt;<br>
&gt; ; Unpause ourselves from one or more queues<br>
&gt; exten =&gt; unpause,1,NoOp()<br>
&gt; exten =&gt; unpause,n,PauseQueueMember(,Local/${CALLBACKNUM}@from-queue/n)<br>
&gt; exten =&gt; unpause,n,PauseQueueMember(,Local/${CALLBACKNUM}@from-internal/n)<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ; &nbsp; that queue, otherwise, we'll unpause in<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ; &nbsp; in all queues<br>
&gt; exten =&gt; unpause,n,GoSub(changePauseStatus,start,1(UPQMSTATUS,UNPAUSED,available)) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;; use the changePauseStatus subroutine and<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ; &nbsp; pass the values for: variable to check,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ; &nbsp; value to check for, and file to play<br>
&gt; exten =&gt; unpause,n,Hangup()<br>
&gt;<br>
&gt; ; ### Subroutine we use to check pausing and unpausing status ###<br>
&gt; [changePauseStatus]<br>
&gt; ; ARG1: &nbsp;variable name to check, such as PQMSTATUS and UPQMSTATUS (PauseQueueMemberStatus / UnpauseQueueMemberStatus)<br>
&gt; ; ARG2: &nbsp;value to check for, such as PAUSED or UNPAUSED<br>
&gt; ; ARG3: &nbsp;file to play back if our variable value matched the value to check for<br>
&gt; ;<br>
&gt; exten =&gt; start,1,NoOp()<br>
&gt; exten =&gt; start,n,Playback(silence/1)<br>
&gt; ; Please note that ${ARG1} is wrapped in ${ &nbsp;} in order to expand the value of ${ARG1} into<br>
&gt; ; &nbsp; the variable we want to retrieve the value from, i.e. ${${ARG1}} turns into ${PQMSTATUS}<br>
&gt; exten =&gt; start,n,Playback(${IF($["${${ARG1}}" = "${ARG2}"]?${ARG3}:not-yet-connected)})<br>
&gt; ;exten =&gt; start,n,GotoIf($[${ISNULL(${xtn})}]?end) &nbsp; &nbsp; &nbsp; ; if ${xtn} is null, then just Return()<br>
&gt; exten =&gt; start,n,Playback(in-the-queue) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ; &nbsp; if not null, then playback "in the queue"<br>
&gt; ;exten =&gt; start,n,SayNumber(${xtn}) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;; &nbsp; and the queue number that we (un)paused from<br>
&gt; exten =&gt; start,n(end),Return() &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;; return from were we came<br>
&gt;<br>
&gt;<br>
&gt; v/r,<br>
&gt; Me<br>
&gt;<br>
</div></div>&gt; --<br>
&gt; _____________________________________________________________________<br>
&gt; -- Bandwidth and Colocation Provided by <a href="http://www.api-digital.com" target="_blank"></a><a href="http://www.api-digital.com"><a href="http://www.api-digital.com">http://www.api-digital.com</a></a> --<br>
&gt; New to Asterisk? Join us for a live introductory webinar every Thurs:<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.asterisk.org/hello" target="_blank"></a><a href="http://www.asterisk.org/hello"><a href="http://www.asterisk.org/hello">http://www.asterisk.org/hello</a></a><br>
&gt;<br>
&gt; asterisk-users mailing list<br>
&gt; To UNSUBSCRIBE or update options visit:<br>
&gt; &nbsp; <a href="http://lists.digium.com/mailman/listinfo/asterisk-users" target="_blank"></a><a href="http://lists.digium.com/mailman/listinfo/asterisk-users"><a href="http://lists.digium.com/mailman/listinfo/asterisk-users">http://lists.digium.com/mailman/listinfo/asterisk-users</a></a><br>
<br>
--<br>
_____________________________________________________________________<br>
-- Bandwidth and Colocation Provided by <a href="http://www.api-digital.com" target="_blank"></a><a href="http://www.api-digital.com"><a href="http://www.api-digital.com">http://www.api-digital.com</a></a> --<br>
New to Asterisk? Join us for a live introductory webinar every Thurs:<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.asterisk.org/hello" target="_blank"></a><a href="http://www.asterisk.org/hello"><a href="http://www.asterisk.org/hello">http://www.asterisk.org/hello</a></a><br>
<br>
asterisk-users mailing list<br>
To UNSUBSCRIBE or update options visit:<br>
 &nbsp; <a href="http://lists.digium.com/mailman/listinfo/asterisk-users" target="_blank"></a><a href="http://lists.digium.com/mailman/listinfo/asterisk-users"><a href="http://lists.digium.com/mailman/listinfo/asterisk-users">http://lists.digium.com/mailman/listinfo/asterisk-users</a></a><br>
</blockquote></div><br>
</div></blockquote><blockquote type="cite"><div><span>--</span><br><span>_____________________________________________________________________</span><br><span>-- Bandwidth and Colocation Provided by <a href="http://www.api-digital.com"><a href="http://www.api-digital.com">http://www.api-digital.com</a></a> --</span><br><span>New to Asterisk? Join us for a live introductory webinar every Thurs:</span><br><span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.asterisk.org/hello"></a><a href="http://www.asterisk.org/hello"><a href="http://www.asterisk.org/hello">http://www.asterisk.org/hello</a></a></span><br><span></span><br><span>asterisk-users mailing list</span><br><span>To UNSUBSCRIBE or update options visit:</span><br><span> &nbsp;&nbsp;<a href="http://lists.digium.com/mailman/listinfo/asterisk-users"></a><a href="http://lists.digium.com/mailman/listinfo/asterisk-users"><a href="http://lists.digium.com/mailman/listinfo/asterisk-users">http://lists.digium.com/mailman/listinfo/asterisk-users</a></a></span></div></blockquote></div><div></div></body></html>