<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div class=""><div class="h5"><br>
&gt; I found the problem, it&#39;s (I think) a bug with queue command. My<br>
&gt; dialplan:<br>
&gt;<br>
&gt; [context]<br>
&gt; ...<br>
&gt; exten =&gt; 33123,n,macro(unpauseQueueMembers,q820,104,105,136,,)<br>
&gt; exten =&gt; 33123,n(back2Queue),Queue(${myQueue},nit,,,14400)<br>
&gt; exten =&gt; 33123,n,NoOp(Queue ${myQueue} call status is ${QUEUESTATUS}<br>
&gt; -<br>
&gt; Dial status is ${DIALSTATUS} - Our status is ${${myQueue}STATUS})  ;<br>
&gt; value is empty<br>
&gt; exten =&gt; 33123,n,GotoIf($[&quot;${${myQueue}STATUS}&quot; =<br>
&gt; &quot;myTIMEOUT&quot;]?back2Queue)<br>
&gt;<br>
&gt; [to-q820]<br>
&gt;<br>
&gt; exten =&gt; 104,1,Dial(SIP/${EXTEN},,Tt)<br>
&gt; exten =&gt; 105,1,Dial(SIP/${EXTEN},,Tt)<br>
&gt; exten =&gt; 136,1,Dial(SIP/${EXTEN},,Tt)<br>
&gt; exten =&gt; _XXX,2,macro(queueCallStatus,${EXTEN})<br>
&gt;<br>
&gt; [macro-queueCallStatus]<br>
&gt;<br>
&gt; exten =&gt; s,1,Set(__myExten=${ARG1})<br>
&gt;     same =&gt; n,NoOp(Call status to ${myExten}@${myQueue} is<br>
&gt;     ${DIALSTATUS})<br>
&gt;     same =&gt; n,GotoIf($[&quot;${DIALSTATUS}&quot; = &quot;ANSWER&quot;]?exitMacro)<br>
&gt;     same =&gt; n,GotoIf($[&quot;${DIALSTATUS}&quot; != &quot;NOANSWER&quot;]?Pause)<br>
&gt;     same =&gt; n(exitMacro),MacroExit<br>
&gt; ...<br>
&gt;     same =&gt;<br>
&gt; n(Pause),NoOp(PauseQueueMember(,Local/${myExten}@to-${myQueue}))<br>
&gt;     same =&gt; n,Set(__${myQueue}STATUS=myTIMEOUT)<br>
&gt;     same =&gt; n,NoOp(Value of my variable is ${${myQueue}STATUS})<br>
&gt;                           ; here I get correct value<br>
&gt; ...<br>
&gt; [macro-unpauseQueueMembers]<br>
&gt;<br>
&gt; exten =&gt; s,1,Set(__myQueue=${ARG1})<br>
&gt;     same =&gt; n,Set(__${myQueue}STATUS=)<br>
&gt;     same =&gt; n,UnpauseQueueMember(,Local/${ARG2}@to-${myQueue})<br>
&gt;     same =&gt; n,UnpauseQueueMember(,Local/${ARG3}@to-${myQueue})<br>
&gt;     same =&gt; n,UnpauseQueueMember(,Local/${ARG4}@to-${myQueue})<br>
&gt;<br>
&gt; If I 33123  the NoOp(Value of my variable is ${${myQueue}STATUS}) in<br>
&gt; macro-queueCallStatus shows the right value which is text myTIMEOUT.<br>
&gt; But<br>
&gt; this value isn&#39;t anymore present in<br>
&gt; NoOp(Queue ${myQueue} call status is ${QUEUESTATUS} - Dial status is<br>
&gt; ${DIALSTATUS} - Our status is ${${myQueue}STATUS}) from [context]<br>
&gt; which<br>
&gt; is *after* the queue cmd exit.<br>
<br>
</div></div>The the parent channel (the incoming channel on exten 33123) sets the<br>
variable to empty.  A child channel (Dialed by app Queue) running a<br>
local channel in the context [to-q820] sets the variable to the status<br>
you are wanting.  The child cannot send that variable value back to the<br>
parent channel.  Channel variable inheritance only goes one way: from<br>
parent to child.<br>
<span class=""><font color="#888888"><br>
Richard<br>
</font></span><div class=""><div class="h5"><br></div></div></blockquote><div><br></div><div style>SHARED function is your best pal here. </div><div style><br></div><div style>Here is the updated (but not tested) dialplan for you</div>
<div style><br></div><div style><div>[context]</div><div>...</div><div style>;Store CHANNEL in a variable</div><div>exten =&gt; 33123,n,Set(__PARENTCHANNEL=${CHANNEL})</div><div>exten =&gt; 33123,n,macro(unpauseQueueMembers,q820,104,105,136,,)</div>
<div>exten =&gt; 33123,n(back2Queue),Queue(${myQueue},nit,,,14400)</div><div>exten =&gt; 33123,n,NoOp(Queue ${myQueue} call status is ${QUEUESTATUS} - Dial status is ${DIALSTATUS} - Our status is ${${myQueue}STATUS}) ; value is empty</div>
<div>;;exten =&gt; 33123,n,GotoIf($[&quot;${${myQueue}STATUS}&quot; = &quot;myTIMEOUT&quot;]?back2Queue)</div><div style>; See the SHARED FUNCTION</div><div>exten =&gt; 33123,n,GotoIf($[&quot;${SHARED(${myQueue}STATUS,${PARENTCHANNEL})}&quot; = &quot;myTIMEOUT&quot;]?back2Queue)</div>
<div><br></div><div>[to-q820]</div><div><br></div><div>exten =&gt; 104,1,Dial(SIP/${EXTEN},,Tt)</div><div>exten =&gt; 105,1,Dial(SIP/${EXTEN},,Tt)</div><div>exten =&gt; 136,1,Dial(SIP/${EXTEN},,Tt)</div><div>exten =&gt; _XXX,2,macro(queueCallStatus,${EXTEN})</div>
<div><br></div><div>[macro-queueCallStatus]</div><div><br></div><div>exten =&gt; s,1,Set(__myExten=${ARG1})</div><div>   same =&gt; n,NoOp(Call status to ${myExten}@${myQueue} is ${DIALSTATUS})</div><div>   same =&gt; n,GotoIf($[&quot;${DIALSTATUS}&quot; = &quot;ANSWER&quot;]?exitMacro)</div>
<div>   same =&gt; n,GotoIf($[&quot;${DIALSTATUS}&quot; != &quot;NOANSWER&quot;]?Pause)</div><div>   same =&gt; n(exitMacro),MacroExit</div><div>...</div><div>same =&gt; n(Pause),NoOp(PauseQueueMember(,Local/${myExten}@to-${myQueue}))</div>
<div>;;same =&gt; n,Set(__${myQueue}STATUS=myTIMEOUT)</div><div>same =&gt; n,Set(SHARED(${myQueue}STATUS,${PARENTCHANNEL})=myTIMEOUT)</div><div>;;same =&gt; n,NoOp(Value of my variable is ${${myQueue}STATUS}) ; here I get correct value</div>
<div>; ${myQueue}STATUS is set here through SHARED FUNCTION</div><div>same =&gt; n,NoOp(Value of my variable is ${SHARED(${myQueue}STATUS,${PARENTCHANNEL})})</div><div>...</div><div>[macro-unpauseQueueMembers]</div><div><br>
</div><div>exten =&gt; s,1,Set(__myQueue=${ARG1})</div><div>   same =&gt; n,Set(__${myQueue}STATUS=)</div><div>   same =&gt; n,UnpauseQueueMember(,Local/${ARG2}@to-${myQueue})</div><div>   same =&gt; n,UnpauseQueueMember(,Local/${ARG3}@to-${myQueue})</div>
<div>   same =&gt; n,UnpauseQueueMember(,Local/${ARG4}@to-${myQueue})</div><div><br></div><div style>Hope this helps.</div><div style><br></div><div style>--Satish Barot</div><div style>Ahmedabad, India</div></div></div><br>
</div></div>