|
PlugIn micDTMF - Sibel
Exemplos em Delphi7 e VB6
- Conheça também outras
ferramentas da Sibel Eletrônica (veja no final
desta página).
|
- Acesso direto ao
PlugInMicDTMF.exe (1 linha), da Sibel Eletrônica
- - Componente micDTMFBox para Delphi6/7
- - ActiveX micDTMFBoCx.ocx para
demais ambientes de programação.
-
- Sibel Eletrônica Rio Preto
Ltda
- (17) 3829-6516
-
Condições
de uso PlugInMicDTMF.exe
- Para obter uma cópia
licenciada do PlugInMicDTMF.exe em seu nome é necessário adquirir a
quantidade mínima de adaptadores (10 pçs a R$33,90 cada + o
Frete)!
- Se comprar apenas uma
peça (a R$46,90 cada + Frete), será enviado um cópia do PlugIn no modo
DEMO
- Limitações do DEMO:
Uma tela de mensagem será mostrada em cada binagem recebida solicitando o
registro (deve-se pressionar "Ok" para continuar)".
-
- Baixar
fontes e exemplos da versão DEMO para testes
- Atenção: Exemplos
para VB6 ou VBA (Acess2000) incluídos!
- IMPORTANTE!
- Para usar o
PlugInMinDTMF.exe você precisará conectar este adaptador (ou similar) a sua
linha telefônica e á entrada de microfone do computador.
- Uma linha telefônica
possui voltagens elevadíssima, se comparada com a voltagem máxima admissível
na entrada de áudio do computador. Por isto, é necessário o uso de um
adaptador que "case" estas voltagem. A Sibel Eletrônica produz o micDTMF -
Sibel que é fornecido juntamente com o PlugIn. Portanto, prefira sempre nossos
adaptadores, embora, nada impede que você mesmo desenvolva-os, ficando o
funcionamento do sistema sub sua responsabilidade.... Sua construção não
é difícil, desde de que, feita por um profissional em eletrônica. Se você não
entender de eletrônica, não se aventure a construí-lo, pois, fatalmente, irá
provocar danos na entrada de áudio do PC!
No Kit não acompanha
arquivos-fontes do aplicativo soundbina
devido ao fato de utilizarmos componentes
de terceiros.
- Foto meramente ilustrativa.
Acesso direto ao
PlugInMicDTMF.exe
Instalação do Pacote no
Delphi7
|
A instalação do componente no Delphi segue o padrão
normal de instalação, caso tenha alguma dúvida, siga as etapas
abaixo:
Localize a pasta:
\micDTMF(Componente)\micDTMFBoxl(FontesComponente)
Arquivos:
- micDTMFBox.pas
- micDTMFBox.dcr
Instalando
- Abra o Delphi...
- Abra o arquivo micDTMFBox.pas
- Com o arquivo micDTMFBox.pas aberto, clique em
"Component" -->"Install Component"
- Escolha um Package existente ou crie um
novo
- Clique em Ok
- Compile o pacote...
|
-
- Usando o micDTMFBox
-
- O componente foi desenvolvido de forma a proporcionar
que se crie um aplicativo-teste digitando apenas uma linha de programação.
Para isto, basta colocar o componente em um form e, no evento OnCreate
do form , digitar:
- micDTMFBox1.micDTMFActive; ou
micDTMFBox1.a1_Active:=TRUE;
- Pronto! Basta isto para que, ao receber uma chamada, o
número seja identificado no ComboBox
- Para que isto
seja possível, é preciso que as propriedades do componente estejam devidamente
configuradas, como segue:
- Oriente-se pela figura abaixo (as propriedades não
usadas serão comentadas mais adiante...)
- Em a2_DDDLocal, coloque o seu DDD.
- Em a3_RootPlugIn, indique o
caminho completo do PlugIn
- Em a4_PlugInRegistry, coloque o seu número de
registro (fornecido na aquisição)
- Caso não tenha o número de registro,
mantenha DEMO31D
- Obs:
-
- No aplicativo-exemplo que acompanha o
pacote, presume-se que se use a seguinte estrutura de pastas:
-
- \Seu_aplicativo\PlugIn\PlugInMicDTMF.exe (Neste caso, o PlugIn deverá estar na sub-pasta
\PlugIn)
Figura 1: Propriedades do
componente
Nota: O
Componente micDTMFBox utiliza uma classe existente no Delphi: TComboBox. Com
isto, podemos utilizar todas as funções normais de um ComboBox, como, visivel...
tamanho... strings... enabled... etc. E, para que as novas funções e propriedades ficassem mais fáceis
de serem localizadas, foi adotado os caracteres "ax_" antes de cada item. Isto
fará com que elas sejam agrupadas em sequencia facilitanto a identificação e
mantendo-as como primeiras do topo.
|
Descrição das
Propriedades:
- a1_Active
- Se TRUE = Ativado, se FALSE desativado
- Usado para consulta (if
micDTMFBox1.a1_Active then...)
- a2_DDDLocal
- Coloque seu DDD Local para
comparação com o DDD Recebido
- a3_RootPlugIn
- Indique o caminho completo do
PlugIn ( ver aplicativo-exemplo)
- a4_PlugInRegistry
- Insira seu número de
licença/Registro
- a5_ClearAll
- Usado somente no modo Discador
(não disponível na versão comercial)
- a6_ModoOperac
- Modo de operação: Discador ou Bina
(somente o modo bina é diponível na versão comercial)
- a7_ScreenRestore
- Se TRUE: Restaura a tela do
seu aplicativo ao detectar uma
chamada
- a8_Sensibility
- Altera a sensibilidade do Detector
DTMF ( de 2 a 20, o padrão é 8)
- a9_NotDetectTipo
- Quase todos os aparelhos
de PABX que emitem sinais de binas (repetidor) não enviam o tipo
da chamada. Neste caso a formatação irá ficar confusa, já que ela é
feita baseando-se no tamanho do string recebido. Por isto, se estiver
usando em modelos de repetidoras que possuam esta característica, é
necessário assinalar que não detecte o tipo da chamada (a9_NotDetectTipo:=TRUE). O tipo será substituído pelo
número '8' ( você poderá alterar isto no fonte do
componente).
|
Figura 2: Eventos do
componente
|

|
|
Descrição dos
Eventos:
- a1_OnMicAPIConect
- Sinaliza quando o seu aplicativo
se conectar ao PlugIn
- a2_OnDetectAll
- Mostra todos os caracteres
sem formatação, incluindo as letras: inicial e final, do protocolo
BINA
- a3_OnDetectDigit
- Mostra o último caractere
recebido
- a4_OnFomatPhone
- Mostra o número formatado
(Tipo+DDD+Fone - separados)
- a5_OnLevelSignal
- Mostra o nível de sinal do
microfone
- a6_OnHandShake
- Sinaliza a presença de integridade
na conexão entre seu aplicativo e o PlugIn
- O sinal de handshake é enviado a
cada 60 segundos pelo PlugIn e o componente responderá, mantendo a
integridade na conexão. Caso o seu aplicativo seja finalizado de
forma inesperada, o PlugIn também será finalizado devido á falta de
resposta do sinal de handshake (note que: o PlugIn só será
finalizado após 10 segundos. Portanto, use sempre o comando de
finalização antes de fechar seu aplicativo - Veja abaixo ou no
aplicativo-exemplo)
- a7_OnSilentDetect
- Mostra o tempo de silencio
detectado (item solicitado por Delphino Luciani)
- Ao receber um nível de sinal maior que '0', o
tempo é zerado!
- Contador: de 1 a 60 segundos em
loop
- a8_OnIndexFone
- Mostra apenas o DDD+Fone sem
formatação
- Utilização: Ao criar seu banco
de dados, crie campos de indexação formado pelo DDD e o Fone, com
isto, não haverá erros de localização na base de dados. Note que,
pode ocorrer situações (rara,claro) em que existam números
telefônicos idênticos e, neste caso, a única forma de diferenciá-los
seria pelo DDD. Por isto, sempre crie índices formados pelo
DDD+Fone!
|
Comandos e funções
- {Ativar}
- procedure TForm1.Button1Click(Sender: TObject);
- begin
- {
- Edit1.Text: := Seu número
de registro (no formato: XXXXXXXXXXXXXXX-SBXXXXXX-DS)
- Caso não possua número de
registro, poderá usar a versão Demo para 31 dias...
- Edit2.text := 'DEMO31D'
- Edit3.Text := '17' (seu DDDLocal)
- }
- // Caminho completo do PlugIn
(sub-pasta \PlugIn)
micDTMFBox1.a3_RootPlugIn:=
ExtractFilePath(Application.ExeName)+'PlugIn\PlugInMicDTMF.exe';
if Trim(Edit1.Tex)t<>'' then
micDTMFBox1.a4_PlugInRegistry :=
Edit1.Text
else
micDTMFBox1.a4_PlugInRegistry :=
Edit2.Text;
micDTMFBox1.a2_DDDLocal := Edit3.Text;
micDTMFBox1.micDTMFactive;
end;
-
- {ComboBox visível / invisível}
- procedure TForm1.Button2Click(Sender: TObject);
begin
micDTMFBox1.Visible := not micDTMFBox1.Visible;
end;
- {Abrir tela de configuração do PlugIn}
- procedure TForm1.Button3Click(Sender:
TObject);
begin
micDTMFBox1.ShowDlg;
end;
- {Fechar tela de configuração do PlugIn}
- procedure TForm1.Button4Click(Sender:
TObject);
begin
micDTMFBox1.HideDlg;
- end;
{Desativar PlugIn - Use sempre este método!}
- procedure TForm1.Button5Click(Sender: TObject);
begin
micDTMFBox1.Stop;
end;
- {Limpar detecção - De qualquer forma: A detecção
sempre será limpa ao iniciar uma nova detecção!}
- procedure TForm1.Button7Click(Sender: TObject);
begin
micDTMFBox1.ClearAll;
end;
Lendo os Eventos:
- {Ao conectar á API doPlugIn}
- procedure TForm1.micDTMFBox1a1_OnMicAPIConect(Sender:
TObject; PlugInHandle: Integer);
begin
- {Você pode usar o
"PlugInHandle" se quizer enviar mensagens a janela do PlugIn, já
que não consiguirá
- localizar a janela via
FindWindow(), pois o nome da janela será substituído pelo nome de seu
aplicativo...
- Caso não queira a substituição
do nome da janela do PlugIn, altere no componente}
Label9.Caption := 'Conectado ao micDTMF';
{Ou, se preferir: IntToStr(PlugInHandle)}
- end;
{Todos os dígitos}
- procedure TForm1.micDTMFBox1a2_OnDetectAll(Sender: TObject;
AllDigits: String);
begin
Edit4.Text := AllDigits;
{Exemplo: A11738296516C}
end;
{Apenas o último digito recebido}
- procedure TForm1.micDTMFBox1a3_OnDetectDigit(Sender:
TObject; LastDigit: String);
begin
Edit5.Text := LastDigit;
end;
{Para receber o numero formatado...}
- procedure TForm1.micDTMFBox1a4_OnFormatPhone(Sender:
TObject; Tipo, DDD, Fone: String);
begin
Edit6.Text := Tipo;
{de 1 a 8 }
Edit7.Text := DDD;
{ Exemplo: (17) }
Edit8.Text := Fone; {Exemplo:
3829-6516 ou 839-6516 - Conforme o prefixo}
end;
-
- {Usando o nível de sinal em um ProgressBar}
- procedure TForm1.micDTMFBox1a5_OnLevelSignal(Sender:
TObject; Signal: Integer);
begin
ProgressBar1.Position := Signal; {0
a 100}
Edit7.Text := IntToStr(Signal);
end;
{Sinalização handshake}
- procedure TForm1.micDTMFBox1a6_OnHandShake(Sender: TObject;
HandShake: Boolean);
begin
if HandShake then
shape1.Brush.Color := clLime
else
shape1.Brush.Color := clNavy;
end;
-
- {Detectando período de silêncio}
procedure TForm1.micDTMFBox1a7_OnSilenDetect(Sender: TObject;
Secounds: Integer);
begin
Edit9.Text := IntToStr(Secounds); {1
a 60 segs}
end;
{Concateação par arquivos de índices ddd+fone}
- procedure TForm1.micDTMFBox1a8_OnIndexFone(Sender: TObject;
IndexFone: String);
begin
Edit10.Text := IndexFone; {Exemplo:
1738296516}
end;
-
- {Não detecte o tipo da chamada (o tipo será
substituido
pelo tipo '8')}
- procedure TForm1.CheckBox1Click(Sender: TObject);
begin
micDTMFBox1.a9_NotDetectTipo := CheckBox1.Checked;
if CheckBox1.Checked then
Label13.Caption :=
'a9_NotDetectTipo (True)'
else
- Label13.Caption :=
'a9_NotDetectTipo (False)';
end;
- Tela
do aplicativo-exemplo em delphi7 (Project1.exe)
-
Questões:
- Posso efetuar alterações no código-fonte do
componente?
- Sim, porém, não poderá
redistribuir, diretamente, o código alterado. Ficando sob sua
responsabilidade os efeitos da alteração.
- Mas, caso você queira acrescentar
alguma função que melhore o desenpenho do componente e quizer
compartilhar com demais usuários, então você poderá nos enviar para
que possamos efetuar testes e assumir a responsabilidade da alteração.
- Neste caso, constará como
"crédito" o seu nome no topo do arquivo-fonte do componente.
- Quantos componentes posso colocar em um aplicativo?
- Apenas um componente. Caso coloque
mais que um, não funcionará, pois o handle alocado será o mesmo e o
plugin não consiguirá obter respostas de handshake....
- Quantas linhas posso monitorar na mesma máquina?
- Somente 1 linha por máquina. Se
usar mais que um adaptador, os áudios irão se misturar, atrapalhando a
detecção. Se desejar monitorar mais que uma linha, use o GEO-BraiD,
que possibilita até 6 linhas (2 linhas por placa de som) com
aproveitamento de 100%
Condições de uso do PlugIn
Ao adiquirir o PlugInMicDTMF, o
comprador deverá estar de acordo com as seguintes condições:
- O comprador não poderá revender o PlugIn. Seu uso
será exclusivo como ferramenta de programação.
- O PlugIn só deverá ser distribuído juntamente com
um aplicativo final de binagem de sua autoria ou construído sob sua
responsabilidade.
- Não poderá ser fornecido, ao usuário final, meios
de usar o PlugIn como ferramenta de programação.
- O comprador poderá distribuir quantas cópias do
PlugIn forem necessárias, desde que, devidamente acompanhadas por
aplicativos finalizados de sua autoria ou construído sob sua
responsabilidade.
- A tela: "Termo de uso do PlugIn" não poderá
ser obstruída de visualização.
- Caso o sistema aceite, pode-se alterar o nome
do aplicativo PlugInMicDTMF.exe para PlugInMicDTMF.dll, no intúito
de impedir que o usuário final tente sua "execução
independente", o que causaria uma mensagem de erro ao usuário... (como
executável será mostrada uma mensagem avisando que o PlugIn não pode ser
executado sem um aplicativo gerenciador...)
- Seu número de registro é intransferível e inalterável,
portanto, antes de gerar a licença é importante que envie-nos seus dados
corretamente. Não tem como efetuar alterações posteriomente.