Fórum de Suporte Digivoice
Você não está logado.
Estou tendo problemas "ocasionalmente" de erro no OnDigitDetected, quando ele detecta Letras e não números. Isso não ocorre toda hora. Quando ocorre, provoca erro. Inseri um código para ignorar o erro, mas não resolve o problema, pois qual o número se refere à letra detectada? Dúvidas: 1) Porque ele está dectando letras e não números. 2) Como saber qual o número que essas letras representam?
Offline
Quasar,
Os dígitos em DTMF compreendem 1,2,3,4,5,6,7,8,9,0,*,#,A,B,C,D. Normalmente vemos os dígitos ,# e *, mas para recepção de bina se recebe A e C também.
Se você tratar a detecção de dígitos durante toda uma conversação você verá que serão detectados vários dígitos na voz, isto é normal apesar do DTMF ter sido concebido para evitar isto.
Quando você está tratando a detecção de dígitos?
Atenciosamente.
Olá Patty!!
Não sei se entendi sua pergunta, mas em _OnDigitDetected eu capturo o dígito usando (Chr(Digit)) . O que tem acontecido é aparecer justamente as letras "C", "D" e o caractere "*" e isso provoca um erro. Este último eu até entendo que a pessoa pressionou a tecla "*" mas e as letras?? Posso interpretar que "ABC" correspondem a tecla 2 e D a tecla 3 e tratá-las dessa forma? Não acredito que isso esteja correto.
Offline
Oi Quasar,
Temos algumas FAQ's a este respeito que podem te ajudar a entender melhor: http://www.digivoice.com.br/suporte/produto/faq/VLIB01 (é necessário estar logado).
Por favor, se continuar com dúvidas me avise.
Atenciosamente.
Patty,
entendi que as letras são frequencias diferentes, ou seja, não representam nenhum número específico. ENTÃO COMO A PESSOA PODERIA DIGITAR UMA LETRA EM UM TECLADO NUMÉRICO? Se entendi direito, essas letras podem ter sido provocadas por sons captados pelo telefone ou mesmo gerado com algum distúrbio que alterou a frequencia do número digitado. Ex. a pessoa digitou o número 3 que tem a frequencia 697 mas a segunda frequencia 1477 Hz foi alterada por algum motivo e passou para 1633 Hz, dessa forma o três e interpretado com a letra A. Se for assim, então não tenho como saber exatamente o que a pessoa digitou. Poderia nesses casos pedir a pessoa que digitasse novamente, mas se o problema for causado pelo aparelho telefônico, esse problema vai se repetir. Estou certo??
Offline
Quasar
Há inúmeras situações que podem gerar falsos dígitos (como está descrito na FAQ cujo link enviei), mas vamos lá...
Primeiro é o fenômeno chamado "talk off" em que você manda a placa falar uma frase e o próprio áudio da frase , ou melhor, o retorno deste áudio acaba sendo interpretado como um dígito.
Para isto há sempre a recomendação do áudio não ser muito alto e utilizar o cancelador de eco da placa (EnableEchoCancelation).
Um erro comum em desenvolvedores de URA e Discadores é testar com o aparelho no viva-voz sem o botão de mute apertado, isto ocasiona falsas detecções pois o áudio volta pelo microfone, além do ruído ambiente ser muito amplificado pois estes microfones tem uma sensibilidade grande.
Outra confusão que pode acontecer, se a aplicação estiver diretamente ligada na linha, é a detecção de BINA, mas neste caso o evento OnCallerID é gerado.
Também há PABX que enviam códigos tipo A,B, C e D quando o ramal em que a URA está ligada tiver programação de correio de voz.
Concluindo, há muitas possibilidades e todas devem ser analisadas para um correto diagnóstico do que ocorre, o que é difícil é o sistema confundir dígitos, ou seja, veio um 3 e sai um A, isto não temos nenhum histórico.
Temos dezenas de desenvolvedores com sistemas funcionando bem.
Qualquer dúvida nos avise.
Atenciosamente.
Ok Patty!! Ficou perfeitamente claro. MUITO OBRIGADO.
Offline