Help / WLanguage / WLanguage functions / Communication / Phone functions
  • Differences between tapiDial and tapiLineDial
  • Limitation
  • Required configuration
WindowsLinuxUniversal Windows 10 AppJavaReports and QueriesUser code (UMC)
WindowsLinuxPHPWEBDEV - Browser code
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Stored procedures
Dials a phone number for a voice line and chooses the device to use.
WINDEV PABX application: With a PABX application, each line appears as a device. Therefore, to dial on a phone line, you must:
  1. Choose the current phone line (tapiDevice).
  2. Number (tapiDial).
This is done by tapiLineDial.
// Retrieves the list of TAPI devices
sTAPIList is string = tapiDeviceList()
// Displays the list in a Combo Box control
// Selects the TAPI device
IF tapiLineDial(COMBO_TAPI[COMBO_TAPI], EDT_PhoneNumber, "TestLineStatus") <> 0 THEN
Info("Click OK to hang up")
PROCEDURE TestLineStatus(ValueLineStatus is int)
SWITCH ValueLineStatus
CASE tapiLineBusy: Message("The line is busy")
CASE tapiLineConnected: Message("OK, connected")
CASE tapiLineDialing: Message("Dialing in progress")
CASE tapiLineDialTone: Message("Dial tone")
CASE tapiLineDisconnected: Message("The correspondent has hung up")
CASE tapiLineProceeding: Message("Searching for your correspondent")
CASE tapiLineRingBack: Message("Ringing")
<Result> = tapiLineDial(<Line to use> , <Number to dial> [, <WLanguage procedure> [, <Duration> [, <Custom parameter>]]])
<Result>: Integer
  • Identifier of call dialed.
  • 0 if an error occurs. The error details are returned by ErrorInfo.
<Line to use>: Character string
Line or device to use.

Reminder: The list of telephony devices is returned by tapiDeviceList.
<Number to dial>: Character string
Phone number to dial.
<WLanguage procedure>: Name of optional procedure
Name of WLanguage procedure used to manage the progress of dialing. This procedure has the following format:
PROCEDURE <Procedure name>(<Line status>, <Parameter>)

The first procedure parameter (<Line status>) is an integer that can take the following values:
tapiLineBusyThe line is currently busy.
tapiLineConnectedThe line is connected.
tapiLineDialingDialing in progress.
Remark: If TAPI 3.1 technology is used, this constant is no longer returned.
tapiLineDialToneThe line gets a dial tone.
tapiLineDisconnectedThe correspondent has hung up.
tapiLineProceedingThe call is dialed: searching for the correspondent.
tapiLineRingBackRinging in progress.
The second procedure parameter (<Parameter>) is the custom parameter passed to tapiLineDial.
Caution: this procedure must contain no call to the debugger (no breakpoint, no STOP keyword, no auto-stop expression, ...).
<Duration>: Optional integer or optional Duration
Maximum wait duration (in seconds). Beyond this duration, the function assumes there is no response (no one picked up). This parameter can correspond to:
  • an integer corresponding to the number of seconds,
  • a Duration variable,
  • the duration in a readable format (e.g., 1 s or 10 ms).
This parameter corresponds to 15 seconds by default.
<Custom parameter>: Any type, optional
Parameter passed to the WLanguage procedure.

Differences between tapiDial and tapiLineDial

  • tapiDial is used in a context of a single outgoing call. The identifier of this call is not available.
  • tapiLineDial is used in a context where several simultaneous calls can be found. tapiLineDial returns the call identifier. Therefore, it can be easily handled (to transfer a call for example).


tapiLineDial cannot be called in the procedure for call detection (defined by tapiListen).

Required configuration

Telephony functions use TAPI 2.0 technology and/or TAPI 3.1 technology. These technologies can be used on all systems.
Component: wd290com.dll
Minimum version required
  • Version 9
This page is also available for…
Click [Add] to post a comment

Last update: 05/26/2022

Send a report | Local help