[AsteriskBrasil] RES: Problema trunk

Alexandre Abreu alexandre.abreu em redt.com.br
Quarta Maio 13 11:01:01 BRT 2009


Não entendo como "gambiarra de dialplan" (nem mesmo outros desenvolvedores
entendem dessa forma). Inclusive o próprio Olle já propôs deixar a função
call-limit (especifica do chan_sip) em estado deprecated em uma thread[*] na
Asterisk-Dev em favor da função "GROUP_COUNT". A idéia proposta é deixar o
controle totalmente a nível de dialplan, assim como a adição de outras
funções que funcionariam como verificadores independentes do canal
utilizado.

[*]
http://www.archivum.info/asterisk-dev@lists.digium.com/2007-11/msg00380.html

--
Alexandre Abreu
RedT Telecom
http://www.redt.com.br

-----Mensagem original-----
De: asteriskbrasil-bounces em listas.asteriskbrasil.org
[mailto:asteriskbrasil-bounces em listas.asteriskbrasil.org] Em nome de
Vinícius Fontes
Enviada em: quarta-feira, 13 de maio de 2009 10:10
Para: asteriskbrasil em listas.asteriskbrasil.org
Assunto: Re: [AsteriskBrasil] Problema trunk

----- "Rodrigo Graeff" <delphusbsd em gmail.com> escreveu:

> On May 12, 2009, at 10:16 PM, Weder Prado wrote:
> 
> > Pessoal,
> > Antes de fazer o trunk eu tinha um provedor voip instalado no server
>  
> > 2, esse servidor tem uma aplicacao que consulta o manager, e faz uma
>  
> > chamada e quando a pessoa atende a chamada ele executa uma mensagem,
>  
> > isso funcionou tranquilo, agora eu necessito usar E1, como já tenho 
> 
> > um server asterisk pra isso resolvi fazer um sip trunk do server 2 
> 
> > para o server 1 e executar a mensagem depois que a chamada é  
> > atendida. Entao é o seguinte:
> > Estou com o seguinte cenário, servidor 1 com E1 e todas as saidas e 
> 
> > entradas da PSTN. Servidor 2 Aplicacao que acessa o manager pra  
> > fazer chamdas e exeutar uma mensagem.
> >
> > No server1 , criei a conta pra ser usada no trunk:
> > [900]
> > port=5060
> > username=900
> > secret=senha
> > type=friend
> > host=dynamic
> > context=ramal_sip
> > ccountcode=900
> > callerid=900
> > canreinvite=no
> > callgroup=1 ;Grupo 1
> > pickupgroup=1 ;Em quais grupos pode capturar as chamadas
> > defaultexpirey=120
> > musicclass=default
> > incominglimit=1
> > call-limit=1000
> > limitonpeers=yes
> > qualify=yes
> > disallow=all
> > allow=alaw
> > allow=ulaw
> > allow=ilbc
> > allow=gsm
> > allow=g723.1
> > allow=g726
> > allow=lpc10
> > allow=adpcm
> > canreinvite=no
> > autocreatepeer=no
> > dtmfmode=rfc2833
> >
> > No server 2 sip.conf:
> >
> > [trunk-server1]
> > username=900
> > type=friend
> > secret=senha
> > regexten=900
> > qualify=no
> > port=5060
> > nat=no
> > insecure=very
> > host=172.33.16.19
> > fromuser=900
> > dtmfmode=inband
> > disallow=all
> > context=executa_mensagem
> > canreinvite=no
> > allow=alaw
> >
> > extensions.conf
> >
> > [discagem_voip]
> > exten=>_XXXXXXXX.,1,NoOp(Callerid Out -> ${CALLERID(num)})
> > exten=>_XXXXXXXX.,2,Dial(SIP/trunk-server1/${EXTEN},60,rT)
> > exten=>_XXXXXXXX.,n,Hangup()
> >
> > Isso é para o trunk ser feito e as chamadas sairem pelo server1,  
> > depois que a aplicacao gera a chamada ela precisa ser atendida,  
> > entao fiz a seguinte regra no server 1:
> >
> > [executa_mensagem]
> > exten=>900,1,NoOp(executando - ${pin} - )
> > exten=>900,n,playback(mensagem)
> > exten=>900,n,Hangup()
> >
> > Ou seja, como quem originada a chamada é a conta 900, presumi que  
> > depois que a chamada é atendida o Asterisk busque a extensao 900, só
>  
> > que isso nao está funcionando, a chamada cai quando é atendida,  
> > alguem pode me dar uma dica de onde está o problema?
> >
> >
> > _______________________________________________
> > Openmoko Freerunner, primeiro telefone open source, disponível no  
> > Brasil rodando o Android da Google.
> > http://www.neodroid.com
> >
> > Compre uma camiseta da AsteriskBrasil.org!
> > http://www.voipmania.com.br
> >
> > Acesse o canal IRC de discussão sobre Asterisk em Português  
> > Brasileiro na rede Freenode.net: #asterisk-br
> > _______________________________________________
> > Lista de discussões AsteriskBrasil.org
> > AsteriskBrasil em listas.asteriskbrasil.org
> > http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
> 
> 
> Primeiro, se for um trunk de asterisk pra asterisk, considere usar  
> iax2 que é BEM melhor que sip e consome menos banda. Observe o  
> dtmfmode de ambos, eles devem ser iguais.
> 
> Quando um peer atende, o canal se torna reservado, impossibilitando de
>  
> se fazer um playback. Há como, porém não com métodos normais. O  
> próprio comando Dial possui uma opção para isso.
> 
> Abraço.
> 
> Rodrigo Graeff
> delphusbsd em gmail.com
> 
> 
> 
> _______________________________________________
> Openmoko Freerunner, primeiro telefone open source, disponível no
> Brasil rodando o Android da Google.
> http://www.neodroid.com
> 
> Compre uma camiseta da AsteriskBrasil.org!
> http://www.voipmania.com.br
> 
> Acesse o canal IRC de discussão sobre Asterisk em Português Brasileiro
> na rede Freenode.net: #asterisk-br
> _______________________________________________
> Lista de discussões AsteriskBrasil.org
> AsteriskBrasil em listas.asteriskbrasil.org
> http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil



Realmente o IAX2 é excelente para comunicação entre dois servidores,
principalmente pelo trunking que reduz bastante o consumo de banda. No
entanto, o IAX2 não possui nenhum mecanismo de call-limit. Não existe como
limitar o número de chamadas simultâneas, a não ser fazendo algumas
gambiarras no dialplan.

Já tive um problema sério em um cliente que tinha servidores conectados
através de MPLS, com uma quantia fixa de banda definida para o tráfego de
voz. Não tive escolha a não ser alterar o protocolo para SIP para poder
controlar o número de chamadas simultâneas.


Vinícius Fontes
www.asteriskforum.com.br - Informações e discussão sobre Asterisk e
telefonia IP




Mais detalhes sobre a lista de discussão AsteriskBrasil