Solved

Dial Modem

Posted on 1998-06-09
1
485 Views
Last Modified: 2012-05-07
Does anyone know how to dial a modem on demand and hang up when the time comes?
0
Comment
Question by:majestic
1 Comment
 
LVL 9

Accepted Solution

by:
Dalin earned 100 total points
ID: 1462967
majestic,
Try the following code.
If you have any questions, let me know.
Regards
Dalin



       Private Sub Dial(Number$)
           Dim DialString$, FromModem$
           Dim StopString As String
           Dim Delay As Double

           '--- AT is the Hayes compatible ATTENTION command an is required to send commands to the modem.
           '--- DT means "Dial Tone" - The Dial command, using touch tones as opposed to pulse (DP = Dial Pulse)
           '--- PhoneNumbers$(Index) is the phone number of the person you're dialing
           '--- A semicolon tells the modem to return to command mode after dialing (important)
           '--- A Carriage return, Chr$(13), is required when sending commands to the modem.
           DialString$ = "ATX4&D2DT" + Number$ + ";" + Chr$(13)
           StopString = "ATH0" + Chr$(13)
           '-- Comm port settings
           Comm1.Settings = "300,N,8,1"
           
           '-- Open the comm port
           On Error Resume Next
           Comm1.PortOpen = True
           If Err Then
              MsgBox "COM1: not available. Change the CommPort property to another port."
              Exit Sub
           End If
           
           '-- Flush the input buffer
           Comm1.InBufferCount = 0
           
           '-- Dial the number
           Comm1.Output = DialString$
           
           '-- Wait for "OK" to come back from the modem
           Do
              DoEvents
              '-- If there is data in the buffer, then read it.
              If Comm1.InBufferCount Then
                 FromModem$ = FromModem$ + Comm1.Input
                 '-- Check for "OK"
                 If InStr(FromModem$, "OK") Then
                    '-- Notify the user to pick up the phone
                    FromModem = "" 
                    Beep
                    MsgBox "Please pick up the phone and either press Enter, or click OK"
                    Exit Do
                 ElseIf InStr(FromModem$, "NO DIAL TONE") Or InStr(FromModem$, "NO DIALTONE") Then
                    FromModem = "" 
                    Beep
                    MsgBox "Dialtone not detected.  Please check the telephone connection."
                    CancelFlag = True
                    Exit Do
                 End If
              End If
               
              '-- Was Cancel pressed?
              If CancelFlag Then
                 CancelFlag = False
                 Exit Do
              End If
           Loop

           '-- Disconnect the modem
           Comm1.Output = StopString
           
           '-- Close the port
           Delay = Timer
           While Delay + 1 > Timer
               DoEvents
              '-- If there is data in the buffer, then read it.
              If Comm1.InBufferCount Then
                 FromModem$ = FromModem$ + Comm1.Input
              End If
           Wend
           Comm1.DTREnable = False    'belts and suspenders
           Delay = Timer              'disconnect.  If StopString
           While Delay + 1 > Timer    'worked, this isn't needed.
               DoEvents
           Wend
           Comm1.DTREnable = True
           Comm1.PortOpen = False
       End Sub
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
ms access #TYPE! error on report when no data 4 67
using Access 8 59
Best way to parse out a json string in VB6? 10 115
Macro Excel - Multiple If conditions 2 65
Introduction In a recent article (http://www.experts-exchange.com/A_7811-A-Better-Concatenate-Function.html) for the Excel community, I showed an improved version of the Excel Concatenate() function.  While writing that article I realized that no o…
If you need to start windows update installation remotely or as a scheduled task you will find this very helpful.
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…

895 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

17 Experts available now in Live!

Get 1:1 Help Now