Cara...eu até posso te ajudar...mas esse seu texto tá meio grande e assim fica complicado...saca só...faz uma figura qualquer , mesmo que seja no &quot;dia&quot; de como tah suas conexões fisicas. E ai sim com a explicação fica mais fácil visualizar e te propor uma solução mais fácil e que não seja POG.<br>
<br>Blza.<br><br><div class="gmail_quote">2008/5/8 Tiago Durante &lt;<a href="mailto:tiagodurante@gmail.com">tiagodurante@gmail.com</a>&gt;:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Nenhum comentário? rs...<br>
<br>
<br>
<br>
[]s<br>
<br>
2008/5/7 Tiago Durante &lt;<a href="mailto:tiagodurante@gmail.com">tiagodurante@gmail.com</a>&gt;:<br>
&gt; Olá senhores,<br>
&gt;<br>
&gt; Eu comecei a fazer essa gambiarra nível 5 essa semana... hehehe, então<br>
&gt; o que vou postar aqui ainda tem um pequeno defeito, que eu explico.<br>
&gt; Mas já funciona!!<br>
&gt;<br>
&gt; Vou explicar meu ambiente:<br>
&gt;<br>
&gt; Temos alguns Asterisks na empresa que trabalho, todos interligados via<br>
&gt; IAX/DUNDi. Para os sites onde temos Asterisk, beleza! Tá todo mundo<br>
&gt; falando via RAMAL e podendo ligar para o ramal direto.<br>
&gt;<br>
&gt; O problema está nos sites que ainda temos PBX comuns. Nesses sites<br>
&gt; temos ATAs conectados a portas FXO do PBX. Quando uma pessoa desse<br>
&gt; site FAZ uma ligação, beleza! Ela disca o ramal de destino e o ATA se<br>
&gt; vira com o Asterisk e entrega a chamada. A cagada está quando alguem<br>
&gt; de fora quer ligar para um ramal neste site. Ela não consegue, ou<br>
&gt; melhor, não conseguia, ligar diretamente. A chamada era atendida pela<br>
&gt; URA do site e ai o camarada entrava com o ramal.<br>
&gt;<br>
&gt; Antes eu usava QUEUE para entregar as chamadas nesses ramais<br>
&gt; conectados aos PBX comuns. Por exemplo, no PBX eu tenho conectado 2<br>
&gt; ATAs com um total de 4 ramais, esses ramais sempre começam no XXX99 e<br>
&gt; vão descendo. Sendo assim se os ramais desse site são 455XX, os dois<br>
&gt; ATAs teriam os ramais: 45599, 45598, 45597 e 45596. Eu colocava uma<br>
&gt; regra no dialplan que se o camarada chama 45599 o Asterisk jogava a<br>
&gt; chamada para a QUEUE com os 4 ramais e entregava em qquer um livre.<br>
&gt;<br>
&gt; LEGAL! Agora começa o POG (<a href="http://desciclo.pedia.ws/wiki/POG" target="_blank">http://desciclo.pedia.ws/wiki/POG</a>)<br>
&gt;<br>
&gt; =)<br>
&gt;<br>
&gt; Eu vi que não poderia usar fila, pois dependo da função M (macro) do<br>
&gt; comando DIAL. Mas eu preciso verificar se as linhas estão com aptas a<br>
&gt; receber uma ligação antes de jogar a chamada pro ATA. Confesso que<br>
&gt; preciso de ajuda exatamente nessa parte. Vou explicar o que fiz hoje.<br>
&gt;<br>
&gt; Cada linha no ATA pode ter uma ligação por vez (jura?). Então já<br>
&gt; defini isso no SIP.CONF com a opção call-limit=1. Isso é vital para o<br>
&gt; funcionamento do MACRO. Também deixo o qualify sempre ativo para esses<br>
&gt; ATAs, com isso eu posso verificar se ele está no ar e se já existe<br>
&gt; alguma chamada dentro dele. A macro verificar esses dois valores em<br>
&gt; todas a linhas, começando na primeira que eu passo para ele, por<br>
&gt; exemplo 45596, e terminando na ultima que sempre termina em 99, no<br>
&gt; caso 45599.<br>
&gt;<br>
&gt;<br>
&gt; Esse exemplo é de uma chamada que VAI PARA A URA:<br>
&gt; exten =&gt; 45599,1,Answer()<br>
&gt; exten =&gt; 45599,n,Macro(check-ata,45596,0,${EXTEN:1})<br>
&gt;<br>
&gt; check-ata é a minha macro<br>
&gt; 45596 é o primeiro ATA conectado ao PBX<br>
&gt; 0 é o valor que indica que ele vai para a URA, não jogando DTMF na linha<br>
&gt; ${EXTEN:1} é o ramal local no PBX, que nesse caso nem será usado, eu<br>
&gt; tiro o primeiro digito pq nos PBXs comuns nao existe esse 4, isso é um<br>
&gt; padrão nosso para localização geografica do ramal<br>
&gt;<br>
&gt;<br>
&gt; Exemplo jogando DTMF na linha com PBX<br>
&gt; exten =&gt; _455XX,1,Answer()<br>
&gt; exten =&gt; _455XX,n,Macro(check-ata,45596,1,${EXTEN:1})<br>
&gt;<br>
&gt; check-ata é a minha macro<br>
&gt; 45596 é o primeiro ATA conectado ao PBX<br>
&gt; 1 indica que tem DTMF para ser jogado na linha<br>
&gt; ${EXTEN:1} agora sim esse cara vai ser usado.<br>
&gt;<br>
&gt; Bom, agora que vc viu como chamar a macro, vamos ver o código.. que<br>
&gt; precisa ser melhorado:<br>
&gt;<br>
&gt; [macro-check-ata]<br>
&gt; ; Primeiro passo: Atende o canal e transforma as informacoes dos PEERS SIP<br>
&gt; ; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; em variaveis. Vamos usar o STATUS do canal, se ele esta<br>
&gt; ; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; conectado ou nao, e se existe uma CALL dentro desse canal.<br>
&gt; exten =&gt; s,1,Answer()<br>
&gt; exten =&gt; s,n,Set(channel=${ARG1})<br>
&gt; exten =&gt; s,n,Set(continue=yes)<br>
&gt; exten =&gt; s,n,Set(calls=${SIPPEER(${channel}:curcalls)})<br>
&gt; exten =&gt; s,n,Set(status=${SIPPEER(${channel}:status)})<br>
&gt; exten =&gt; s,n,Set(status=${CUT(status, ,1)})<br>
&gt; exten =&gt; s,n,NoOp(MACRO CHECK == Calls: ${calls} / Status: ${status})<br>
&gt; ; Segundo passo: Caso o canal este OK e o numero de CALLs dentro desse canal<br>
&gt; ; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;seja igual a zero, se sim ele joga a chamada para o GOTOIF<br>
&gt; ; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;da posicao 13, se nao vai um para baixo. No verificador de<br>
&gt; ; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;baixo ele olha se pode seguir pela variavel CONTINUE.<br>
&gt; exten =&gt; s,n,GoToIf($[$[&quot;${STATUS}&quot; = &quot;OK&quot;] &amp; $[&quot;${calls}&quot; = &quot;0&quot;]]?13:9)<br>
&gt; exten =&gt; s,n,GoToIf($[&quot;${continue}&quot; = &quot;yes&quot;]?10:102)<br>
&gt; ; Terceiro passo: Sendo possivel continuar ele soma 1 ao numero do ramal,<br>
&gt; ; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; isso eh feito porque os ramais de ATA terminam sempre<br>
&gt; ; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; no ramal numero 99, esse eh o controlador para saber a<br>
&gt; ; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; hora que acabam os canais. Depois verifica se o valor<br>
&gt; ; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; do proximo canal eh 99, se sim avisa que eh a ultima<br>
&gt; ; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; volta do loop setando CONTINUE como NO.<br>
&gt; exten =&gt; s,n,Set(channel=$[${channel} + 1])<br>
&gt; exten =&gt; s,n,Set(continue=${IF($[${channel:3} = 99]?no:yes)})<br>
&gt; exten =&gt; s,n,GoTo(s,4)<br>
&gt; ; Quarto passo: Se a chamada eh possivel ele ve se deve joga-la com o DTMF<br>
&gt; ; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ou se a chamada deve realmente cair na URA/Telefonista.<br>
&gt; exten =&gt; s,n,GoToIf($[&quot;${ARG2}&quot; = &quot;0&quot;]?14:17)<br>
&gt; exten =&gt; s,n,Dial(SIP/${channel},40,D)<br>
&gt; exten =&gt; s,n,Congestion(5)<br>
&gt; exten =&gt; s,n,HangUp()<br>
&gt; exten =&gt; s,n,Dial(SIP/${channel},40,DM(dial-ata,${ARG3}))<br>
&gt; exten =&gt; s,n,Congestion(5)<br>
&gt; exten =&gt; s,n,HangUp()<br>
&gt; ; Quinto passo: Nao sendo possivel jogar a chamada em nenhum canal, BUSY.<br>
&gt; exten =&gt; s,102,Congestion(5)<br>
&gt; exten =&gt; s,103,HangUp()<br>
&gt; exten =&gt; t,1,HangUp()<br>
&gt; exten =&gt; i,1,HangUp()<br>
&gt;<br>
&gt;<br>
&gt; O segredo do negocio está aqui:<br>
&gt; exten =&gt; s,n,Dial(SIP/${channel},40,DM(dial-ata,${ARG3}))<br>
&gt;<br>
&gt; Quando a chamada vai com DTMF para ser jogado na linha ele chama a<br>
&gt; macro dial-ata que é extremamente simples:<br>
&gt;<br>
&gt; [macro-dial-ata]<br>
&gt; ; Joga DTMF dentro de canal para forcar ATA a realizar chamada para<br>
&gt; dentro do PABX<br>
&gt; exten =&gt; s,1,NoOp(MACRO - Dial ATA)<br>
&gt; exten =&gt; s,n,Wait(4)<br>
&gt; exten =&gt; s,n,SendDTMF(${ARG1})<br>
&gt; exten =&gt; s,102,HangUp()<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; PRONTO! Simples assim...<br>
&gt;<br>
&gt;<br>
&gt; AGORA, qual é o problema?<br>
&gt;<br>
&gt; As vezes os ATAs ficam busy... E isso não aparece nas variveis que eu<br>
&gt; verifico antes de jogar a chamada pra linha X do ATA. Isso faz com que<br>
&gt; quem disca tenha tom de ocupado imediatamente. Bom, como fiz essa<br>
&gt; parada na segunda-feira... acho até tá prestando bem... mas quero só<br>
&gt; arrumar esse detalhe... ae fica coisa linda!<br>
&gt;<br>
&gt; Se alguem tiver dicas!<br>
&gt;<br>
&gt; Espero ter ajudado! =)<br>
&gt;<br>
&gt;<br>
&gt; Abraços,<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; --<br>
&gt; Tiago Durante<br>
&gt;<br>
&gt; ,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,<br>
&gt; Perseverance is the hard work you do after you<br>
&gt; get tired of doing the hard work you already did.<br>
&gt; -- Newt Gingrich<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; 2008/5/6 Halley Souza &lt;<a href="mailto:aiccomti@gmail.com">aiccomti@gmail.com</a>&gt;:<br>
&gt;&gt; Tiago, gostaria de receber seu exemplo também, pois até hoje não consegui<br>
&gt;&gt; fazer isto com o meu gateway.<br>
&gt;&gt;<br>
&gt;&gt; Abs<br>
&gt;&gt;<br>
&gt;&gt; Halley<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; 2008/5/6 Rafael Puga &lt;<a href="mailto:rad.puga@gmail.com">rad.puga@gmail.com</a>&gt;:<br>
&gt;&gt;<br>
&gt;&gt; &gt; Estou no aguardo, obrigado =)<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; 2008/5/6 Tiago Durante &lt;<a href="mailto:tiagodurante@gmail.com">tiagodurante@gmail.com</a>&gt;:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; &gt; Rafael, estou fazendo a mesma coisa aqui e já funcionou...<br>
&gt;&gt; &gt; &gt; &nbsp;Não estou com tempo agora, mas depois te passo como fiz.<br>
&gt;&gt; &gt; &gt; &nbsp;É bem simples, usei MACRO no DIAL e o comando SendDTMF<br>
&gt;&gt; &gt; &gt;<br>
&gt;&gt; &gt; &gt;<br>
&gt;&gt; &gt; &gt; &nbsp;Abraços,<br>
&gt;&gt; &gt; &gt;<br>
&gt;&gt; &gt; &gt;<br>
&gt;&gt; &gt; &gt; &nbsp;2008/5/6 Rafael Puga &lt;<a href="mailto:rad.puga@gmail.com">rad.puga@gmail.com</a>&gt;:<br>
&gt;&gt; &gt; &gt;<br>
&gt;&gt; &gt; &gt;<br>
&gt;&gt; &gt; &gt; &gt; Olá pessoal, estou com um ATA FXO e para efetuar uma ligação, é<br>
&gt;&gt; &gt; &gt; &nbsp;&gt; &nbsp;necessário chamar o ramal logado na linha analógica PSTN, assim<br>
&gt;&gt; &gt; &gt; &nbsp;&gt; &nbsp;obtenho a linha e faço a chamada. Mas gostaria de abstrair isso ao<br>
&gt;&gt; &gt; &gt; &nbsp;&gt; &nbsp;usuário, pra ele não ter que ficar chamando um dos 4 ramais e assim<br>
&gt;&gt; &gt; &gt; &nbsp;&gt; &nbsp;efetuar a ligação. Para isso, fiz algo do tipo:<br>
&gt;&gt; &gt; &gt; &nbsp;&gt;<br>
&gt;&gt; &gt; &gt; &nbsp;&gt; &nbsp;exten =&gt; _[7-9]XX.,1,Dial(SIP/RAMAL_DO_ATA,45,Tt,D(${EXTEN})<br>
&gt;&gt; &gt; &gt; &nbsp;&gt;<br>
&gt;&gt; &gt; &gt; &nbsp;&gt; &nbsp;Fiz isso, pois é apenas para ligações para celular. usei a opção &quot;D&quot;<br>
&gt;&gt; &gt; &gt; &nbsp;&gt; &nbsp;do Dial() para que ele enviasse os digitos em DTMF assim que abrisse<br>
&gt;&gt; o<br>
&gt;&gt; &gt; &gt; &nbsp;&gt; &nbsp;canal em que obtenho a linha, porém não funcionou. Estou usando<br>
&gt;&gt; &gt; &gt; &nbsp;&gt; &nbsp;Asterisk 1.4.19, alguém já fez isso e poderia me dar uma ajuda...<br>
&gt;&gt; &gt; &gt; &nbsp;&gt;<br>
&gt;&gt; &gt; &gt; &nbsp;&gt;<br>
&gt;&gt; &gt; &gt; &nbsp;&gt; &nbsp;--<br>
&gt;&gt; &gt; &gt; &nbsp;&gt; &nbsp;Grato,<br>
&gt;&gt; &gt; &gt; &nbsp;&gt; &nbsp;Rafael Puga<br>
&gt;&gt; &gt; &gt; &nbsp;&gt;<br>
&gt;&gt; &gt; &gt;<br>
&gt;&gt; &gt; &gt;<br>
&gt;&gt; &gt; &gt; &nbsp;--<br>
&gt;&gt; &gt; &gt; &nbsp;Tiago Durante<br>
&gt;&gt; &gt; &gt;<br>
&gt;&gt; &gt; &gt; &nbsp;,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,<br>
&gt;&gt; &gt; &gt; &nbsp;Perseverance is the hard work you do after you<br>
&gt;&gt; &gt; &gt; &nbsp;get tired of doing the hard work you already did.<br>
&gt;&gt; &gt; &gt; &nbsp;-- Newt Gingrich<br>
&gt;&gt; &gt; &gt; &nbsp;_______________________________________________<br>
&gt;&gt; &gt; &gt; &nbsp;Compre uma camiseta da AsteriskBrasil.org!<br>
&gt;&gt; &gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.voipmania.com.br" target="_blank">http://www.voipmania.com.br</a><br>
&gt;&gt; &gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; == <a href="http://VoIPMania.com.br" target="_blank">VoIPMania.com.br</a> ==<br>
&gt;&gt; &gt; &gt;<br>
&gt;&gt; &gt; &gt; &nbsp;_______________________________________________<br>
&gt;&gt; &gt; &gt; &nbsp;Lista de discussões AsteriskBrasil.org<br>
&gt;&gt; &gt; &gt; &nbsp;<a href="mailto:AsteriskBrasil@listas.asteriskbrasil.org">AsteriskBrasil@listas.asteriskbrasil.org</a><br>
&gt;&gt; &gt; &gt; &nbsp;<a href="http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil" target="_blank">http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil</a><br>
&gt;&gt; &gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; --<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Grato,<br>
&gt;&gt; &gt; Rafael Puga<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; &quot;Dados olhos suficientes, todos os erros são triviais.&quot;<br>
&gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt; Compre uma camiseta da AsteriskBrasil.org!<br>
&gt;&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<a href="http://www.voipmania.com.br" target="_blank">http://www.voipmania.com.br</a><br>
&gt;&gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;== <a href="http://VoIPMania.com.br" target="_blank">VoIPMania.com.br</a> ==<br>
&gt;<br>
<br>
<br>
<br>
--<br>
Tiago Durante<br>
<br>
,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,<br>
Perseverance is the hard work you do after you<br>
get tired of doing the hard work you already did.<br>
-- Newt Gingrich<br>
_______________________________________________<br>
Compre uma camiseta da AsteriskBrasil.org!<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<a href="http://www.voipmania.com.br" target="_blank">http://www.voipmania.com.br</a><br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;== <a href="http://VoIPMania.com.br" target="_blank">VoIPMania.com.br</a> ==<br>
<br>
_______________________________________________<br>
Lista de discussões AsteriskBrasil.org<br>
<a href="mailto:AsteriskBrasil@listas.asteriskbrasil.org">AsteriskBrasil@listas.asteriskbrasil.org</a><br>
<a href="http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil" target="_blank">http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil</a><br>
</blockquote></div><br><br clear="all"><br>-- <br>Raniere dos Santos Machado<br>Engenheiro Eletricista<br>Intechne - Tecnologia da Informação<br>Tel : 55 98 32468182<br>Cel: 55 98 81633180<br>MSN: <a href="mailto:rsmraniere@yahoo.com.br">rsmraniere@yahoo.com.br</a>