Olá lista<br><br>Tenho uma macro dentro de um URA, que é acionada via Goto.<br>Isto é, a URA desvia a ligação para um Goto, após selecionada a opção.<br>Dentro da instrução do Goto, existe a chamada para duas Macro.<br>Ocorre que Asterisk executa a Macro e logo em seguida retorna para o Goto, e executa automatcamente a outra Macro.<br>Como fazer para que o Asterisk finalize a chamada sem retornar para a instrução dentro do Goto e não executar a segunda Macro?<br>Obrigado.<br><br>Segue o Dial Plan:<br><br>[ura]<br>exten =&gt; s, 1, Wait,1<br>exten =&gt; s, n, Answer()<br>exten =&gt; s, n, Ringing<br>exten =&gt; s, n, Wait,1<br>exten =&gt; s, n, Ringing()<br>;exten =&gt; s, n, Ringing()<br>exten =&gt; s, n, Noop()<br>exten =&gt; s, n, Set(LANGUAGE()=pt_BR)<br>exten =&gt; s, n, Set(CALLFILENAME=/var/spool/asterisk/monitor/entrada/)<br>exten =&gt; s, n, Set(DYNAMIC_FEATURES = hangup#pickupexten#atxfer#blidxfer)<br>;exten =&gt; s, n,
 MixMonitor(wav,${CALLFILENAME}/${STRFTIME(${EPOCH},,%d%m%Y-%H:%M:%S)}-${EXTEN},m|av(0)V(0))<br>exten =&gt; s, n, Wait,1<br>exten =&gt; s, n, Set(TIMEOUT(digit)=3) ; Set Digit Timeout to 5sec<br>exten =&gt; s, n, Set(TIMEOUT(response)=4) ; Set Response Timeout to 10sec<br>exten =&gt; s, n, Background(bemvindobit2)<br>exten =&gt; 1, 1, Set(LANGUAGE()=pt_BR)<br>exten =&gt; 1, 2, Playback(aposbipe)<br>exten =&gt; 1, 3, Playback(beep)<br>exten =&gt; 1, 4, Goto(consulta,_*XXXXXX,1)<br>exten =&gt; 2, 1, Set(LANGUAGE()=pt_BR)<br>exten =&gt; 2, 2, Queue(loja|tT|||150)<br>exten =&gt; 3, 1, Set(LANGUAGE()=pt_BR)<br>exten =&gt; 3, 2, Queue(assistencia|tT|||150)<br>exten =&gt; i, 1, Playback(invalid)<br>exten =&gt; i, 2, Wait,1<br>exten =&gt; i, 3, Goto(s,8)<br>exten =&gt; t, 1, Wait,1<br>exten =&gt; t, 2, Queue(telefonista|tT|||150)<br>exten =&gt; s, n, HangUp()<br><br><br>[consulta]<br>exten =&gt; _*XXXXXX, 1, Answer()<br>exten =&gt; _*XXXXXX, 2, WaitExten()<br>exten =&gt; _*XXXXXX,
 3, Set(LANGUAGE()=pt_BR)<br>exten =&gt; _*XXXXXX, 4, Set(OS=/etc/asterisk/OS)<br>exten =&gt; _*XXXXXX, 5, System(/bin/mkdir ${OS}/${EXTEN:1})<br>exten =&gt; _*XXXXXX, 6, System(psql -U postgres -h XXX.YYY.Z.WW -d ZYW -c "SELECT * FROM t_os_situacao where ord_cod=${EXTEN:1} order by sit_ini asc" &gt; ${OS}/<br>${EXTEN:1}/os_${EXTEN:1})<br>exten =&gt; _*XXXXXX, 7, System(cat ${OS}/${EXTEN:1}/os_${EXTEN:1} | grep "|" | cut -d"|" -f3 | grep -v sta_cod | tail -n -1 &gt; ${OS}/${EXTEN:1}/sit_final_${EXT<br>EN:1})<br><br>;;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set(foo=${SHELL(echo \"bar\")})\n");<br>exten =&gt; _*XXXXXX, 8, Set(SITUACAO=${SHELL(cat "${OS}/${EXTEN:1}/sit_final_${EXTEN:1}")})<br><br>;;;;; GotoIf($["${CALLERIDNUM}" = "303"]?3)<br>; Executa uma macro para OS na Bancada<br>exten =&gt; _*XXXXXX, 9, Gotoif($[${SITUACAO} = 101]?11)<br>; Executa uma macro para OS Concluida<br>exten =&gt; _*XXXXXX, 10,
 Gotoif($[${SITUACAO} = 2]?13)<br>; Executa uma macro para OS Concluida<br>exten =&gt; _*XXXXXX, 11, Gotoif($[${SITUACAO} = 104]?13)<br><br><br>; Vai para macro bancada<br>exten =&gt; _*XXXXXX, 12, Macro(bancada,${EXTEN:1})<br>; Vai para macro OS Concluida<br>exten =&gt; _*XXXXXX, 13, Macro(concluido,${EXTEN:1})<br><br>Perceba que logo aí em cima, ele executa a Macro chamada bancada.<br>O que está ocorrendo é que quando ele finaliza essa Macro, ao invés de fazer o HangUp, ele volta para aqui e executa a segunda Macro, chamada concluido.<br><br>Obrigado a todos<br><br><BR><BR><p>&#32;


      <hr size=1>Abra sua conta no <a href="http://br.rd.yahoo.com/mail/taglines/mail/*http://br.mail.yahoo.com/">Yahoo! Mail</a>, o único sem limite de espaço para armazenamento!