Integração PC Telefone

Delphi

16/11/2017

Então, eu tenho um sistema de cadastro de clientes onde um dos campos é o número do telefone.

Gostaria de fazer o seguinte: O Sistema fica aberto direto. Quando uma pessoa telefonar para a empresa, o sistema captura o número do telefone na chamada que está entrando e verifica no banco de dados se existe algum cliente com aquele número de cliente. Caso existe, o sistema já joga na tela o cadastro daquele cliente!

Gostaria de saber como fazer essa interface de captação do número do telefone e enviar ao sistema!
Carlos Rocha

Carlos Rocha

Curtidas 0

Respostas

Raimundo Pereira

Raimundo Pereira

16/11/2017

Pesquise integração bina e delphi
GOSTEI 0
Carlos Rocha

Carlos Rocha

16/11/2017

Qual componente do Delphi acessa o modem 56k?
GOSTEI 0
Raimundo Pereira

Raimundo Pereira

16/11/2017

1. O serviço de indentificador de chamadas deve está ativo com a operadora.
Você deverá ligar e solicitar a ativação.
2. Você precisa de uma placa de fax modem no pc.
3. Procure por fonte de como usar bina com placa de fax modem.

4. Segue um link onde você poderá baixar alguns fontes.
Link

Só não te mando um exemplo, pq não tenho telefone em casa.
GOSTEI 0
Carlos Rocha

Carlos Rocha

16/11/2017

Então, a linha já tem o serviço ativo e o aparelho do telefone já bina o numero corretamente.

Meu objetivo é que o meu sistema seja capaz de capturar o numero do telefone que está no bina.

o que imagino?:

A) A linha sai da parede e entra na placa de rede 56kbps do PC/Notebook (sim, meu NB tem essa placa).
B) A linha sai da placa de 56kbps (pela conexão de saída né? kkk), e vai até o aparelho do telefone!]
C) Uma vez que a placa de rede 56kbps "captura" a linha telefônica, eu acho que o meu sistema em Delphi deve, de alguma maneira e
com algum componente, ser capaz de acessar a placa de rede 56kbps.
D) Uma vez que essa captura acontece, o sistema, através de tal componente, deve ser capaz de saber qual número está chegando com
o serviço de bina.

É isso que eu preciso.

Existe esse componente do Dephi que faz isso?

Minha linha de raciocínio está correta?
GOSTEI 0
Raimundo Pereira

Raimundo Pereira

16/11/2017

Perfeito.
Com a parte de hardware funcionando, basta conseguir um dos componentes no link que te passei já tem sim alguns projetos desenvolvidos para captura de ligação telefónica através do Delphi.

Gosto muito de desafios porém estreitou de mãos atadas por não possuir recursos de hardwares.

Pode pesquisar fontes bina e Delphi.
O nome do componente é bina mesmo.

Você adapta e nos dê retorno de progresso.
Quem vai fazer a captura da ligação será seu software.
Mãos a obra e boa sorte
GOSTEI 0
Carlos Rocha

Carlos Rocha

16/11/2017

Ok. Agora só preciso saber se existe algum componente que faça essa interação. Exemplo: Se o BDO antigo, ou o ZeusDatabase conectam ao MySQL, qual o componente que conecta ao Modem 56kbps????
GOSTEI 0
Raimundo Pereira

Raimundo Pereira

16/11/2017

Bom dia!
Você chegou a verificar alguns dos exemplos disponiveis?

1. Como o componente vai funcionar:
Verificando as chamadas, e colocar o número de quem está ligando em um edit ou campo text.

Você terá que criar rotinas, para verificar se tal campo é diferente de vazio, se for realiza uma consulta no banco de dados retornando os dados do cliente.


Você não vai achar um componente que lhe dê tudo isso prontinho.

O objetivo do componente é identificar o número e lhe mostrar o mesmo na tela.
GOSTEI 0
Carlos Rocha

Carlos Rocha

16/11/2017

Acho que não estou explicando direito!
O sistema todo eu faço. O que eu quero saber é se existe um componente que me entregue apenas o número do telefone. Só isso. Uma vez que eu consiga buscar o número do telefone no componente o resto eu consigo fazer! O que está me parecendo é que ou isso é uma coisa que ninguém faz mais a muito tempo ou é uma coisa que ninguém sabe fazer por ser materia de pós, pós, pós doutorado! Só pode!
Gente, é simples:

Zeus: conecta no banco:

_____: conecta na placa de Fax Modem 56kbbs

Só isso que eu preciso saber.

Buscas no google, nada me retorna essa informação!

Está difícil!
GOSTEI 0
Raimundo Pereira

Raimundo Pereira

16/11/2017

Carlos já lhe passei o componente!
O nome é bina mesmo.

Pesquisei no google: bina delphi exemplo
Fonte exemplo1 Baixe o exemplo um clicando aqui

Se este não lhe ajudar, me envie seu e-mail tenho uma bina desenvolvido pela acbr
GOSTEI 0
Carlos Rocha

Carlos Rocha

16/11/2017

Agora eu entendi!
Pode me ajudar a instalar ele no Rad Studio 2017?
Seria pedir muito!
Eu não estava entendo a explicação!
GOSTEI 0
Carlos Rocha

Carlos Rocha

16/11/2017

meu e-mail é carcleo@oi.com.br
GOSTEI 0
Carlos Rocha

Carlos Rocha

16/11/2017

Fazemos:
StringConexao ="ATDT"+numeroTelefone+ #13#10;

E fazemos


WriteFile(
hCommFile,
PChar(StringConexao)[0],
Length(s),
NumberWritten,
nil);

E a mágica é feita!
E o modem liga para um número.

Agora precidso fazer o contrário:

Ao receber um chamada, SIM, meu modem está rcebendo chamadas quando alguém liga para o meu telefone, qual o comando, e em que situação chamar o comamndo para saber o número do telefone quee está me ligando?


Se

WriteFile()

É a responsável por fazer/receber as ligações, então de qual parâmetro eu retiro o número da ligação?

Então,

No endereço:

http://support.usr.com/support/3cxm756/3cxm756-portuguese-ug/atcoms.htm

Na última linha, tem os ultimos 2 comandos que são:

AT&Zn=s Armazenar número telefônico

AT&Zn? Exibir número telefônico

Como fazer para capturar então o número do telefone na estrutura da minha aplicação?

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, spBina;

type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Memo1: TMemo;
RadioButton1: TRadioButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;


var
Form1: TForm1;
hCommFile: THandle;
Status: LongBool;


NumberWritten: DWORD;
Buf : array[0..1023] of Byte;
s :string;

implementation

uses ConvUtils;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
//Testa os valores necessários
begin

//Abre a porta de comunicação
s:='COM3';
hCommFile := CreateFile (
PChar(s),
GENERIC_WRITE,
0, // não compartilhado
nil, // sem segurança
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
0);

// Verifica a abertura da porta
if hCommFile = INVALID_HANDLE_VALUE then

begin
memo1.lines.clear;
memo1.lines.add('Não foi possível abrir a porta selecionada.');
memo1.lines.add('Discagem não efetuada');
CloseHandle(hCommFile);
end

else

begin

memo1.lines.clear;memo1.lines.add('Discando...');

//Cria a string de comando
if radiobutton1.checked then
s:='ATDT'
else
s:='ATDP';

s := s + Edit1.Text + #13#10;

memo1.lines.add(s);

//Envia a String de Comando
NumberWritten:=0;

WriteFile(
hCommFile,
PChar(s)[0],
Length(s),
NumberWritten,
nil);

memo1.lines.add('Aguardando Atendimento ...');
MessageDlg('Retire o telefone do gancho e clique OK para desligar o modem',mtInformation,[mbok], 0);

//Desconecta a ligação
WriteFile(hCommFile,'ATH',5,NumberWritten, nil);

//Fecha a porta de comunicação
CloseHandle(hCommFile);memo1.lines.add('Modem Desconectado.'#13#10);
end;
end;
end;
end.
GOSTEI 0
Carlos Rocha

Carlos Rocha

16/11/2017

Descobri que fazendo:
s := 'ATA+ #13#10;
Recebe a ligação:
Mas vem junto o barulho do modem
E ainda não consigo pegar o número do telefone
GOSTEI 0
Carlos Rocha

Carlos Rocha

16/11/2017

Então, sobre o spBina!

1) Instalei corretamento no Delphi 7
2) Iniciei um projeto novo vazio e coloquei o componente no form e um button
3) Configurei a porta para COM3 que é onde está minha placa de faxModem 56kbps
4) Meu telefone tem bina vindo da operadora e meu aparelho de telefone tem bina funcionando!
5) No onClique do botão coloquei o seguinte!

procedure TfrmPrincipal.btnAbreConClick(Sender: TObject);
var texto: String;
begin
spBina.LeiaDTMF(texto,100);
ShowMessage(texto);
ShowMessage(spBina.C);
end;

Isso me retorno a RING/Vazio que é de fato o que acontece no momento em o ring é disparado e não disparado.
6) Gostaria de saber qual função chamar para obter o número do telefone que está me ligando!

Me ajuda nessa informação?


Desde já agradeço!
GOSTEI 0
POSTAR