Funções de Discagem e Transferência
Início  Anterior  Próximo



Os métodos e eventos que compõem esta funcionalidade automatizam todo o processo de discagem, transferência, supervisão e atendimento através da chamada de um único método (MakeCall).
 
Para acompanhar a explicação, observe atentamente o exemplo de Transferência encontrado no site da DigiVoice www.digivoice.com.br, na seção de desenvolvedores, tanto em VB quanto em Delphi.  
 
Com este grupo de métodos será possível efetuar de maneira simples:

·Discagem externa com supervisão de atendimento, verificando se o destino atendeu ou não ou ainda se deu ocupado  
·Transferência entre ramais de um pabx com ou sem supervisão.  
·Frases automáticas em caso de ocupado e não atender  

Toda a configuração é feita através dos métodos SetCallxxxx.

Você pode programar um flash no início da discagem através do método SetCallStartFlash, útil em casos de transferência. Em termos de flash também é possível programar um flash específico para retomada em caso de ocupado (SetCallBusyReturnFlash) e outro em caso de não atendimento (SetCallNoAnswerReturnFlash). Em todos os casos pode-se definir dígitos e pausa após o flash e também pausa após dígito que são suficientes para adaptação em qualquer central PABX. O tempo de flash é uma configuração geral para todos os casos e é definida pelo método SetCallFlashTime.

É possível definir frases a serem reproduzidas quando se detecta o ocupado (SetCallBusyPhrase) ou quando não atende (SetCallNoAnswerPhrase). O sistema utilizado o método SetCallNoAnswerRingCount para determinar com quantos toques será considerado um "não atendimento".

Em caso de atendimento é possível programar uma pausa e uma frase a ser reproduzida para o usuário. Isto é feito pelo método SetCallAfterAnswer.

O início da discagem é feito através da chamada ao método MakeCall, onde são definidos o tipo de discagem (externa ou com flash), a frase a ser reproduzida inicialmente, o número que será discado e se a discagem será feita com ou sem supervisão. Se for feita sem supervisão, tão logo o número é discado a execução do método é finalizada e o evento OnAfterMakeCall é chamado.

O tipo de discagem define uma série de comportamentos importantes:
 
·Externa – Inicia a discagem com um pickup pois entende que o telefone está desligado. Utiliza as definições de digito e pausa após o pickup definidos pelo método SetCallAfterPickUp.  
·Com Flash – Executa um flash antes de iniciar a discagem pois entende que a linha está conectada a um PABX e o que vai ser feito é uma transferência entre ramais.  
 
Além das configurações anteriores, é possível determinar se o tom de discagem será esperado obrigatoriamente (SetCallWaitForDialTone) e o tempo que a supervisão será iniciada após a discagem (SetCallPauseBeforeAnalysis). Este último é útil em supervisões de transferência para casos onde o PABX gera ruídos durante o flash que podem induzir a placa a deteções erradas de atendimento. Definindo um tempo com este método a supervisão só iniciará a nnn milisegundos após a discagem, o que permitirá ignorar estes ruídos.

Assim como todos os outros métodos da VoicerLib, o MakeCall é assíncrono, ou seja, ao ser executado inicia o processo todo mas o fluxo de execução do programa continua.

IMPORTANTE: O MakeCall não pode ser chamado com a função IdleStart ativa. Caso isso ocorra, retornará erro código 1.

A qualquer momento é possível saber se um MakeCall está em curso através da monitoração do evento OnCallStateChange.

Por fim, o evento OnAfterMakeCall é chamado informando o tipo de ocorrência detectada durante o processo (ocupado, atendimento, etc...) através dos seguintes valores assumidos na variável Status:

·   mkNoDialTone – Não foi detectado tom de discagem, caso esta opção tenha sido ligada (*).  
·   mkDelivered – Ligação entregue sem supervisão.  
·   mkNoAnswer – Destino não atendeu após n toques.  
·   mkBusy – Destino estava ocupado.  
·   mkAnswered – Ligação atendida.  
·   mkAborted – MakeCall cancelado através do método AbortCall.  
·   mkDialToneAfterDial - Indica recebimento de tom de linha depois da discagem.  


(*) No caso de receber um mkNoDialTone depois de efetuar o Flash para transferência no PABX, você deve retomar a ligação antes de desligá-la para evitar de prender a linha no PABX. Uma situação de não receber tom de discagem para transferência entre ramais só pode ocorrer se as configurações de Flash estiverem erradas ou no caso de sobrecarga de processamento do PABX (ocorre principalmente em discadores automáticos).