Discagem
Início  Anterior  Próximo



A plataforma Digivoice permite discagem por Tom (DTMF) ou Pulsos, permitindo a utilização de aplicações baseadas em qualquer tipo de instalação ou central pública.

O método utilizado para discagem é o Dial que basicamente necessita da porta, de uma string contendo o número a ser discado, da pausa após a discagem e do tipo de discagem (Pulso ou Tom).
 
x = VoicerLibX1.Dial(1,"72952557",1000, dtTone)  
 
O tipo de discagem permite cada canal discar por pulso ou tom de forma independente, sendo que o parâmetro pode assumir o valor dtTone para Tom (DTMF) ou dtPulse para Pulso (Decádico).

Em algumas situações é necessário dar pausas entre cada dígito. Um caso típico é a ligação externa através do PABX que é necessário discar "0" e em seguida discar o número de destino.

A VoicerLib disponibilizou três símbolos que podem ser utilizados dentro da string do número que indicarão ao sistema para esperar "n" milissegundos antes de prosseguir. Estas propriedades são: DelayDot, DelayComma e DelaySemicolon que definem a pausa para, respectivamente, o "ponto", a "vírgula" e o "ponto-e-vírgula".

 
O valor da pausa deve ser expresso em milissegundos, isto é, para esperar 1 segundo, atribuir o valor 1000.  
 
No exemplo abaixo é mostrado um caso onde é setado a discagem por pulso e é utilizado a vírgula como símbolo de pausa para efetuar uma ligação externa:
 
Sub cmdDisca_Click()  
 
   VoicerLibX1.DelayComma = 1000  
   VoicerLibX1.Dial(1,"0,72952557",1000, dtPulse)  
 
End Sub  
 
Neste outro exemplo, após a discagem do número, o sistema esperará 5 segundos para poder discar o ramal.
 
Sub cmdDisca_Click()  
   VoicerLibX1.DelayComma = 1000  
   VoicerLibX1.DelayDot = 5000  
   VoicerLibX1.Dial(1,"0,72952557.220",1000, dtTone);  
End Sub  
 
Além das pausas através das propriedades Delayxxx, existe a pausa após discagem (3º. Parâmetro) que também é representado em milissegundos.

Este parâmetro deve ser utilizado principalmente em casos de transferência com supervisão, pois existem centrais que geral ruídos após a discagem atrapalhando a deteção de atendimento, por exemplo. Se este parâmetro estiver com valor maior que 0 o evento OnAfterDial só será gerado após acabar a discagem e a pausa.

Como a discagem pode demorar vários segundos, a VoicerLib disponibiliza o evento AfterDial, que é gerado sempre quando um método Dial acabar de discar todos os números e pausas. Isto é muito útil para habilitar alguma supervisão de linha necessária após a discagem, como por exemplo, a detecção de atendimento (maiores detalhes sobre supervisão no tópico seguinte).

Aproveitando o exemplo anterior, após a discagem é possível fazer algo como no exemplo a seguir:
 
Sub frmExemplo.VoicerLibAfterDial()  
   'Acabou de discar – espera atendimento  
   VoicerLibX1.EnableAnswerDetection 1  
End Sub  


Obs.: Até a versão 2.56, a propriedade DialType determinada o tipo de discagem. A partir da versão 2.57 esta propriedade tornou-se obsoleta e o tipo de discagem deve ser passado em toda chamada ao método Dial.