Fórum de Suporte Digivoice
Você não está logado.
Olá,
Estou com a seguinte situação: Nosso programa em C# (.NET) faz ligações para clientes utilizando o metodo Makecall como abaixo
nRet = voice.MakeCall(i, 0, n, arqSaudacao, true, VoicerConstants.dtTone);
Quando o cliente atende a ligação a placa reproduz o audio. Acontece que se o cliente desligar a ligação não conseguimos capturar esete desligamento (mesmo recebendo sinal de ocupado) pois o evento OnBusyDetected não ocorre.
Também testamos o uso do OnAnswerDetected e este evento tambem não ocorre no atendimento.
Verifiquei os exemplos de vocês em VB6 e notei que não usam o MakeCall. Seria este o meu problema? Teria de usar o Dial e os demais metodos para acompanhar a discagem?
A voicer lib em uso é a 4.3.0.1 rc4 e a plca é uma VB0404 PCI (FXO)
Offline
Olá!
Você tem uma placa VB0408PCI(FXO) certo?
Quanto ao uso do método MakeCall e o evento OnAnswerDetected o evento não ocorrerá pois a informação de atendimento é obtida no evento OnAfterMakeCall que retorna o status mkAnswered neste mesmo evento retornaa informação do OnBusyDetected, só que no status mkBusy.
Caso o sistema não esteja pegando o ocupado, a melhor maneira de verificar isto é com o aplicativo de teste da FXO (Programa de Diagnósticos (FXO)) que é instalado com a VoicerLib, lá é possível fazer uma chamada e verificar o callprogress (supervisão de linha).
Uma boa dica é colocar, no aplicativo de testes, para gravar antes de iniciar a discagem, assim você terá todos os tons da chamada. Você pode utilizar o aplicativo gratuito Audacity para verificar as frequências e cadências dos tons e, se for necessário, fazer alguma configuração na VoicerLib (arquivo cp_default.cfg) para um tom específico.
Atenciosamente.
Entendi, mas é isto que fazemos
Ocorre que eu gostaria de "pegar" ou "saber" quando o usuario desliga o telefone no meio da apresentação ou ainda quando desliga sem digitar a informacao requerida apos um prompt start para evitar que o sistema fique reproduzindo a mensagem ou aguardando a digitacao de algo que nunca acontecerá pois o usuario do outro lado da linha desligou.
Tem como fazer isto usando o MakeCall ou terei que alterar a minha logica ?
Offline
Olá,
Você está executando um prompt com o método PromptStart?
Se sim você deve habilitar a supervisão de linha (CallProgress) e tratar os retornos no evento OnPrompt, OnPlayStop e OnBusyDetected como mostra no exemplo de Prompt para a placa FXO.
No Aguardo.