Ir ao conteúdo
  • Cadastre-se

Programa De Telefonia


clademilson

Posts recomendados

  • Membro VIP

Mas o quê exatamente você pretende fazer? Um programa que faça a discagem de um número de telefone?

Para isso, você pode usar o controle MsComm (Microsoft Comm Control, na lista de componentes).

Por exemplo: coloque um controle desses num Form, mais um TextBox (para informar o número) e dois CommandButton (um para discar e outro para desligar). Depois coloque esse código:

Postado Originalmente por Rotina para discagem

Private Sub Discar(Numero As String)

    Dim Buffer As String

    With MsComm 'Ou o nome que você colocou no controle

        .CommPort = 1 'Use 1 se o modem estiver na COM1, 2 se estiver na COM2, etc...

        .Settings = "56000,N,8,1" 'O primeiro número é a velocidade do modem

        .Handshaking = comNone

        .PortOpen = True

        .InBufferCount = 0

           

        ' 'AT' É O COMANDO 'ATTENTION' COMPATÍVEL COM O PADRÃO 'HAYES',

        ' NECESSÁRIO PARA ENVIAR COMANDOS AO MODEM

        '

        ' 'DT' SIGNIFICA "DIAL TONE" (DISCAGEM DE TOM)

        '

        ' O PONTO-E-VÍRGULA ( ; ) SOLICITA AO MODEM QUE

        ' QUE O MESMO SEJA LIBERADO LOGO APÓS A DISCAGEM

        '

        ' A CONSTANTE 'vbCr' (CARRIAGE RETURN) É NECESSÁRIA

        ' PARA FECHAR A STRING DE COMANDOS ENVIADOS AO MODEM

        .Output = "ATDT" & Numero & ";" & vbCr

       

        Do

            DoEvents

            Buffer = Buffer & .Input

        Loop Until InStr(Buffer, "OK" & vbCrLf)

           

        MsgBox "Ligação completada. Retire o fone do gancho.", vbInformation, "MsComm"

    End With

End Sub

Postado Originalmente por Rotina para desligamento

Private Sub Desligar()

    With MsComm 'Ou o nome que você colocou no controle

       

        ' 'H' (DO COMANDO 'ATH') SIGNIFICA 'HANGUP' (DESLIGAR)

        .Output = "ATH"

        .PortOpen = False

           

    End With

End Sub

Aí é só chamar a primeira rotina para discar, passando o conteúdo do TextBox no argumento, e a segunda para fechar a ligação.

Dica: coloque um Timer da estrutura "Do... Loop" da primeira rotina, para fazer um "TimeOut" de alguns segundos e desligar automaticamente caso a chamada não seja respondida (Pode colocar uma variável boolean dentro do Timer e verificar na estrutura o valor True para sair...)

Espero que isso ajude.

B)

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...