Iniciando o menu de atendimento
Início  Anterior  Próximo



A frase de atendimento é reproduzida a partir do evento OnAfterPickUp . No exemplo utilizamos o enfileiramento de mensagens para poder reproduzir a seqüência de mensagens:
 
Digivoice à Bom Dia à Disque o número do ramal ....  
 
Neste caso, utilizamos 3 mensagens ao invés de uma simplesmente para poder implementar a facilidade do atendimento falar bom dia, boa tarde ou boa noite, conforme a hora da ligação. Também neste exemplo utilizamos frases de menu diferenciadas para o período comercial e não comercial.

Para isso utilizaremos o conjunto de métodos PlayListxxxxxxxx que disponibilizam uma lista de mensagens independente por canal. Isto é importante porque cada canal das placas estarão em um ponto diferente de atendimento durante uma operação real.

No evento OnAfterPickUp teremos:

procedure TForm1.voice1AfterPickUp(Sender: TObject; Port:   
                                              Smallint);  
begin  
//muda o estado  
Estado[Port] := BOASVINDAS;  
 
//limpa lista de frases do canal  
voice1.PlayListClear(Port);  
 
//Adiciona a primeira frase  
voice1.PlayListAdd(Port,ptFile,'empresa.sig','',0);  
 
//bom dia boa tarde boa noite  
if ( (Time >= StrToTime('08:00:00')) and   
    (Time <=  StrToTime('12:00:00'))) then  
          voice1.PlayListAdd(Port,ptFile,'bomdia.sig','',0)  
else  
   if ( (Time > StrToTime('12:00:00')) and   
      (Time <= StrToTime('18:00:00'))) then  
      voice1.PlayListAdd(Port,ptFile,'boatarde.sig','',0)       
   else  
      voice1.PlayListAdd(Port,ptFile,'boanoite.sig','',0);  
 
//menu principal de acordo com o periodo  
if ( (Time >= StrToTime('07:59:00')) and   
                   (Time <= StrToTime('18:00:00'))) then  
   voice1.PlayListAdd(Port,ptFile,'menu_dia.sig','',0)   
else  
   voice1.PlayListAdd(Port,ptFile,'menu_noite.sig','',0);  
 
//inicia a reproducao das 3 mensagens em sequencia  
ret := voice1.PlayList(Port, '23456');  
 
end;  
 
No código acima, primeiro setamos a variável Estado com a constante BOASVINDAS, indicando que agora este canal encontra-se neste estado. Utilizamos a variável Port como índice do vetor pois ela é passada como parâmetro do evento OnAfterPickUp indicando a porta atual.

Em seguida apagamos todo o conteúdo da lista de mensagens. Isto é necessário para que somente as mensagens seguintes serão reproduzidas, não ficando nenhuma do atendimento anterior.

A primeira seqüência de ifs serve para o programa saber se fala "bom dia", "boa tarde" ou "boa noite", dependendo do hora do relógio do micro.

O segundo if (menu principal) serve para o programa decidir se fala uma mensagem diurna ou uma noturna.

Por fim, é chamado o método PlayList que começa as mensagem da lista,. Foi configurado que ela pode ser interrompida pelos dígitos 23456 (terceiro parâmetro).

Como o PlayList é assíncrono (assim como todos os outros métodos) o fluxo de execução continua após o início da mensagem. Desta maneira, o próximo tratamento deve ser feito quando terminar a mensagem, ou seja, no evento OnPlayStop ou o evento OnDigitReceived no caso da mensagem ser interrompida por dígitos.