Gilberto, O Hangup com busy detect acontece quando o sinal de ocupado for detectado no audio da linha. Ou seja, quando o asterisk detectar algo como "tu, tu, tu, tu".
O asterisk não se importa com a frequencia do tom, apenas conta quanto tempo houve "tom" e quanto tempo houve "silencio". Depois compara isso com o padrao apresentado. Com uma pabx intelbras o padrão que permitiu a detecção foi busypattern=140,60 ... que é um sinal de ocupado bem rapido. 160 milisegundos de tom e 40 de silencio. Detalhe: o padrão minimo aceitavel era de 70, então tive que mudar no codigo fonte para que aceitasse 40. Com a utilização de uma linha da Brasil Telecom, tive um outro problema. Ouvindo o sinal de ocupado percebi que 3 beeps eram mais curtos, ai havia um levemente mais longo e assim repetidamente... A dificuldade é que a detecao de hangup nao esta preparada para detectar padroes assim... Alterando o código fonte do dsp.c foi possivel fazer uma adaptação para que esse tipo de padrão fosse detectado. Outro fator muito importante aqui é o echo !!! Na pabx da intelbras por exemplo ( usando o fxotune versao patcheada ) eu medi o echo em 70% ... o que é muuuuito alto. Dessa forma se a URA estiver tocando uma mensagem, essa mensagem sera recebida de volta e pode mascarar o padrao de ocupado. Ainda não testei caceladores de echo de melhor desempenho, mas esse deve ser o proximo passo. Luis. Em 05/10/07, Gilberto Nunes <[EMAIL PROTECTED]> escreveu: > Pessoal > > Estou enfrentando o seguinte problema: > > Tenho a seguinte URA configurada no asterisk: > > ;URA > > exten => s, 1, Wait,10 > exten => s, 2, Answer() > exten => s, 3, Set(CALLFILENAME=/var/spool/asterisk/monitor/entrada/) > exten => s, 4, > Monitor(wav,${CALLFILENAME}/${STRFTIME(${EPOCH},,%d%m%Y-%H:%M: > %S)}-${EXTEN},m) > exten => s, 5, Wait,1 > exten => s, 6, Set(TIMEOUT(digit)=5) ; Set Digit Timeout to 5sec > exten => s, 7, Set(TIMEOUT(response)=10) ; Set Response Timeout to 10sec > exten => s, 8, Background(bemvindo) > > exten => 1, 1, Goto(loja,s,1) > exten => 2, 1, Goto(assistencia,s,1) > > ;exten => s, 9, Wait,2 > exten => s, 9, Queue(8500||||20) > > exten => i, 1, Playback(invalid) > exten => i, 2, Wait,2 > exten => i, 3, Goto(s,8) > > exten => s, 10, HangUp() > > > [loja] > exten => s, 1, Queue(8600||||20) > > [assistencia] > exten => s, 1, Queue(8500||||20) > > Acontece que se a pessoa que ligou desliga antes ou durante a URA, a > ligação > continua até ser redirecionada para o destino final, ou seja, a ligação > continua. > > Tenho uma placa VB0408-PCI. > > Já coloquei o seguinte no zapata.conf: > > busydetect=yes > busycount=4 > busypattern=500,500 > answeronpolarityswitch=yes > hanguponpolarityswitch=yes > > e no digivoice.conf > > busydetect=yes > busycount=4 > busypattern=500,500 > answeronpolarityswitch=yes > hanguponpolarityswitch=yes > > > Como posso resolver esse problema? > Já vasculhei o google e achei a solução com o busydetect, mas parece que > com a > placa da Digivoice não funciona ou eu estou fazendo alguma configuração > errada. > > Obrigado > -- > Gilberto Nunes > BitMix Tecnologia > Itajaí - SC > _______________________________________________ > Compre uma camiseta da AsteriskBrasil.org! > http://www.voipmania.com.br > == VoIPMania.com.br == > > _______________________________________________ > LIsta de discussões AsteriskBrasil.org > AsteriskBrasil@listas.asteriskbrasil.org > http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil >
_______________________________________________ Compre uma camiseta da AsteriskBrasil.org! http://www.voipmania.com.br == VoIPMania.com.br == _______________________________________________ LIsta de discussões AsteriskBrasil.org AsteriskBrasil@listas.asteriskbrasil.org http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil