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