Fórum de Suporte Digivoice
Você não está logado.
Como saber que a chamada foi desligada durante uma reprodução de áudio, quando não há o tom de ocupado? Detecção de silêncio nesse caso não funciona. Já procurei aqui no fórum e não encontrei respostas. Utilizo a placa VB0408 PCI (fxo), a programação em VB6 e Windows XP. Alguém pode me dar uma luz???
Offline
Olá Quasar!
Você está utilizando qual método para reproduzir a frase? PlayFile? MenuStart? PromptStart?
Você testou no programa de diagnóstico (FXO)?
Atenciosamente.
Olá Patty!! Estou usando o PlayFile.
Com relação ao programa de testes, sim usei e por incrível que pareça ele não efetua ligação. Cheguei a entrar com contato com o suporte achando que fosse problema na placa, depois achei que fosse cabo, no final descobri que era programa de teste. Consigo fazer funcionar e usar para testes, os exemplos que vc disponibilizam em VB6.
Offline
Oi Quasar,
Você está tratando o evento OnPlayStop? Ele passa o parâmetro StopStatus que mostra o motivo da interrupção da mensagem....
Você está utilizando supervisão de linha? (CallProgress)?
Por favor, me explique melhor sua aplicação.
Atenciosamente.
Patty, acredito que não fui muito claro. O que está acontecendo é o seguinte. Fiz um discador automático que roda uma mensagem em áudio de aproximadamente 90 segundos, para uma lista enorme de telefones. O problema é que quando a pessoa que está ouvindo a mensagem desliga no meio da veiculação do áudio, o programa não consegue identificar o Hangup e continua rodando a mensagem até o final. É muita perda de tempo em se tratando de 15000 ligações, além de ocupar a linha do ouvinte. Fiz testes e percebi que, ao ouvinte desligar o telefone no meio da mensagem, não dá o sinal de ocupado, portanto, o evento OnBusyDetected não é acionado. Tentei o evento OnSilenceDetected, mas é evidente que com a reprodução do áudio não existe silêncio.
Das perguntas que você me fez por último, sim estou usando supervisão de linha, e com relação ao OnPlayStop e StopStatus, não é o problema pois o áudio não está sendo interrompido, aliás, é justamente isso que eu gostaria que acontecesse.
Offline
Quasar,
Agora entendi sua demanda...
Quando fazemos uma ligação para alguém e não é ligação a cobrar, se o destino desliga, por padrão de telefonia, o ocupado só ocorre após 90s. Isto dá a oportunidade do destino "reatender" a chamada sem a mesma cair.
Para linhas analógicas isto é um problema quando se deseja fazer um discador, pois se o assinande desligar ou ficar escutando a mensagem em silêncio a situação é absolutamente a mesma para quem discou. Não há como saber, a não ser pelo breve ruido de colocar o telefone no gancho.
Por esta razão que serviços de discagem em massa utiliza-se troncos (linhas) com placas E1, pois neste caso existe a temporização, mas é possível detectar que o destino desligou.
Atenciosamente.
Não existe como classificar a frequencia desse ruido e provocar o hangup a partir disso?
A placa E1 funcionaria com esse recurso em linhas analogicas?
Fiquei sabendo que existem placas que conseguem identificar esse desligar atraves de uma mudança na tensão da linha. Sabe alguma coisa a respeito??
Offline
Quasar,
É bem difícil, pois o ruído pode existir ou não. Quanto à detecção na tensão da linha, há um recurso que é a inversão de polaridade da linha (de -48Vcc para +48Vcc) mas as operadoras não enviam mais esta inversão em linhas analógicas.
Em interfaces celulares, que funcionam como linhas analógicas em PABX, houve o mesmo problema no início e a solução foi a alteração dos projetos de interfaces celulares para que estas enviassem a inversão de polaridade.
No E1, quando o assinante chamado coloca no gancho, há uma sinalização específica que chega em quem discou, assim é possível efetuar o desligamento com precisão.
Ok!!! Obrigado Patty.
Offline