[AsteriskBrasil] ATA FXO

Raniere raniere.ee em gmail.com
Quinta Maio 8 15:14:46 BRT 2008


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.

Blza.

2008/5/8 Tiago Durante <tiagodurante em gmail.com>:

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



-- 
Raniere dos Santos Machado
Engenheiro Eletricista
Intechne - Tecnologia da Informação
Tel : 55 98 32468182
Cel: 55 98 81633180
MSN: rsmraniere em yahoo.com.br
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20080508/6c69d118/attachment-0001.htm 


More information about the AsteriskBrasil mailing list