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
email: mailto:suporte@shapephone.com.br
home: http://www.shapephone.com.br/

Condições de uso PlugInMicDTMF.exe

  1. 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)!
  2. Se comprar apenas uma peça (a R$46,90 cada + Frete), será enviado um cópia do PlugIn no modo DEMO
  3. Limitações do DEMO: Uma tela de mensagem será mostrada em cada binagem recebida solicitando o registro (deve-se pressionar "Ok" para continuar)".
  4.  
  5. Baixar fontes e exemplos da versão DEMO para testes 
  6. 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...)
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:


Condições de uso do PlugIn

    Ao adiquirir o PlugInMicDTMF, o comprador deverá estar de acordo com as seguintes condições:

  1. O comprador não poderá revender o PlugIn. Seu uso será exclusivo como ferramenta de programação.
  2. O PlugIn só deverá ser distribuído juntamente com um aplicativo final de binagem de sua autoria ou construído sob sua responsabilidade.
  3. Não poderá ser fornecido, ao usuário final, meios de usar o PlugIn como ferramenta de programação.
  4. 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.
  5. A tela: "Termo de uso do PlugIn" não poderá ser obstruída de visualização.
  6. 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...)
  7. 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.

  • BraiD for Repeaters FSK / DTMF (Indentificador de chamadas com gravador mp3. Suporta até 6 linhas por máquina)

    • Repete os eventos em máquinas da rede ou internet via TCP-IP

    • Usa somente a placa de som do seu PC (para cada 2 linhas precisa de uma placa de som)

  • Componente TBraiDRepeater (Delphi7)

    • Trabalha em conjunto com o BraiD for Repeater ou com o PlugInBraiDRepeter6L (6 linhas)

  • BraiDRepeater.ocx

    • Para demais linguagens