I’m trying to find out if either VB6 or Delphi could be used to make a simple dialer for Windows XP. A dialer my friend made in VB5 works on NT, but not on XP. By a simple dialer, I mean one that I can use to read a single telephone number entry database created with Qbasic and dial that number over the XP modem. (Note, this is NOT an Internet dial-up connection, which is so often associated with the tem “dialer).

I have a Qbasic program that can be used to select a phone number and send it to a database. I need either a VB6 solution or Delphi solution to dial it. Any ideas, books, links, source code, etc., would be appreciated?

Pete

Dani AI

Generated

Two practical routes work on XP for a tiny “dialer” that reads your QBasic number list and commands the local modem: talk to the modem’s COM port directly (the route reports success with) or use Windows TAPI so the OS enumerates modems, handles events and does the dialing for you. TAPI tends to be cleaner and more robust across different modem drivers and devices. (learn.microsoft.com)

High-level TAPI flow (VB6/Delphi): initialize TAPI, pick an address that supports outgoing modem/audio, create a call object for the destination number, then Connect and watch call-state events. Example (VB6-ish pseudocode — add a reference to the Microsoft TAPI 3.0 Type Library):

' Requires reference: Microsoft TAPI 3.0 Type Library (TAPI3Lib)
Dim tapi As TAPI3Lib.TAPI
Dim addr As TAPI3Lib.ITAddress
Dim callCtl As TAPI3Lib.ITBasicCallControl

Set tapi = New TAPI3Lib.TAPI
tapi.Initialize

' find a suitable address, then:
Set callCtl = addr.CreateCall(phoneNumber, TAPI3Lib.TapiConstants.LINEADDRESSTYPE_PHONENUMBER, TAPI3Lib.TapiConstants.TAPIMEDIATYPE_AUDIO)
callCtl.Connect False   ' async connect

The methods above come from the TAPI 3 interfaces (ITAddress::CreateCall, ITBasicCallControl::Connect/Dial), which are documented in the Windows TAPI reference. (learn.microsoft.com)

Troubleshooting notes (common XP-era issues): confirm the modem shows as a COM device in Device Manager and that the port isn’t held by another service (RRAS, fax software, etc.). Use a terminal program (HyperTerminal or equivalent) to confirm the modem responds to commands and echoes—if it doesn’t, you may have a “winmodem”/softmodem or driver problem (some softmodems behave differently under XP). If the COM terminal can talk to the modem, both the serial approach and TAPI will work; otherwise prefer TAPI or install a hardware (true) modem. (ftp1.digi.com)

Practical checklist: 1) test modem with a terminal; 2) try the TAPI sample code/tutorial and iterate until you can create/connect calls; 3) only fall back to raw serial/AT if TAPI is not available or you need very low-level control. References and samples (Microsoft TAPI docs and community examples) give ready VB6/Delphi examples suitable for XP. (codeproject.com)

I know you had this problem well over a year ago, but I need the same dialer in VB6 or .Net to work on XP. Did you ever manage to get it to work?

I’m trying to find out if either VB6 or Delphi could be used to make a simple dialer for Windows XP. A dialer my friend made in VB5 works on NT, but not on XP. By a simple dialer, I mean one that I can use to read a single telephone number entry database created with Qbasic and dial that number over the XP modem. (Note, this is NOT an Internet dial-up connection, which is so often associated with the tem “dialer��?).

I have a Qbasic program that can be used to select a phone number and send it to a database. I need either a VB6 solution or Delphi solution to dial it. Any ideas, books, links, source code, etc., would be appreciated?

Pete

I have been using the dialer programm I made for years now in VB6

I have a VB6 example that may get you started.
you need to add the MSCOMM control to the project

You may need to set the COMM PORT property

a simple subroutine uses the MSCOMM control ....
and for the settings property I have 9600,n,8,1

Private Sub Command1_Click()
Dim sec As Variant
Dim secnow As Variant
Label4.Visible = True
Label4.Caption = "PAGING"
MSComm1.PortOpen = True
MSComm1.Output = "AT" & Chr(13)
secnow = (Now)
While DateDiff("s", secnow, Now) < 2
'next sentence
Wend

MSComm1.Output = "atdt " & pagernumber.Text & ";" & Chr(13)
Timer1.Enabled = True
Label4.Caption = "Paging"
Label4.Visible = True


End Sub

Hope this helps !

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.