Integração PC Telefone

16/11/2017

0

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

Responder

Posts

16/11/2017

Raimundo Pereira

Pesquise integração bina e delphi
Responder

18/11/2017

Carlos Rocha

Qual componente do Delphi acessa o modem 56k?
Responder

18/11/2017

Raimundo Pereira

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.
Responder

19/11/2017

Carlos Rocha

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?
Responder

19/11/2017

Raimundo Pereira

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
Responder

20/11/2017

Carlos Rocha

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????
Responder

20/11/2017

Raimundo Pereira

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.
Responder

20/11/2017

Carlos Rocha

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!
Responder

20/11/2017

Raimundo Pereira

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
Responder

20/11/2017

Carlos Rocha

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

22/11/2017

Carlos Rocha

meu e-mail é carcleo@oi.com.br
Responder

22/11/2017

Carlos Rocha

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.
Responder

22/11/2017

Carlos Rocha

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
Responder

25/11/2017

Carlos Rocha

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!
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar