Array
(
)

Erro com componente Async

Franthesco
   - 28 jan 2006

Caros amigos,

Estou usando o componente Async para fazer um programa que atenda chamas telefônicas, e, receba os números digitados no teclado pela pessoa que originou a chamada.

Para saber como anda a ligação e que mensagem devo mandar, uso assim:

Const
Estadoatual : Integer = 0;
Boasvindas = 0;
.
.
.

O meu problema vem no seguinte código:

Estadoatual := Boasvindas;

Que seria determinar que a ligação está no começo, mas quando tento executar dá o seguinte erro, e já tentei de tudo mas não funciona:

[Error] ExVoice0.pas(142): Left side cannot be assigned to

Este é o erro.

Por favor, quem puder me ajudar, ficarei muito grato...


Massuda
   - 30 jan 2006

Você declarou EstadoAtual como const, ou seja, é uma constante.

Nas versões mais antigas do Delphi, o default era que constantes tipadas pudessem ser alteradas.

Nas versões mais novas o default é que constantes são constantes, mas você pode habilitar o comportamento antigo marcando a opção Assignable typed constants emProject|Options|Compiler ou simplesmente declare EstadoAtual como sendo uma variável ao invés de constante.


Franthesco
   - 30 jan 2006

Massuda, obrigado por sua resposta...

Agora, meu problema está em transferir a ligação, eu coloco uma wave para tocar, mas ela toca no telefone destino, e não no telefone que originou a chamada...

Estou fazendo assim:

ApdTapiDevice.SendTone (´! 36´);
ApdTapiDevice.PlayWave (´Caminho da wave´);

Mas, como disse, ele toca no telefone destino...

Outra coisa, como eu poderia fazer para que a wave parasse automaticamente, após o ramal atender. Atualmente, eu não estou usando wave nas transferências, simplemente, mando transferir, e dou um cancelcall. Mas o certo, creio eu, seria só dar o cancelcall após o ramal destino atender, enquanto isso, o sistema fica enviando uma musiquinha....

Bem, desde já agradeço a ajuda...

Abraços a todos!


Massuda
   - 30 jan 2006

Lembro desse exemplo (ExVoice), mas nunca mexi muito nele pois a empresa onde trabalhava na época acabou comprando um atendedor.

Não tenho certeza, mas acho que depois que você manda...
Citação:
ApdTapiDevice.SendTone (´! 36´);
...a ligação já é transferida, acho que você devia tocar o wave e depois mandar esses comandos.


Franthesco
   - 30 jan 2006

Massuda,

Consegui resolver os problemas...

Obrigado por sua ajuda!!!


Abraços!


Franthesco
   - 31 jan 2006

Amigos...

Agora estou com outro problema... Não sei nem por onde começar...

É o seguinte...

A pessoa liga para a empresa, o computador (ramal 1) atende, solicita que a pessoa digite informações, e, se as informações coincidirem com o que há no banco de dados, transfere para o ramal 2. Até aí tudo bem...

O problema é : como saber se o ramal 2 está ocupado, para transferir a ligação mais tarde, ou até mesmo outro ramal (como um atendente faria) e também, como saber que o ramal 2 atendeu, para cortar a relação:

Telefone que originou - Ramal 1 (Computador)

E deixá-la assim:

Telefone que originou - Ramal 2 (Operador)

Bem... Não sei se fui claro...

Uso um PABX Batik Flex 4... Delphi 7.0... Componente AsyncTurboPro...

Quem puder me ajudar, ficarei muitissimo grato...

Abraços a todos!


Franthesco
   - 01 fev 2006

Sobe...



To realmente precisnado...

Pelo menos de uma luz, uma dica, uma sugestão...

Abraços...