Help / WLanguage / WLanguage functions / Communication / Phone functions
  • Limitation
  • WLanguage procedure
  • 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
tapiListen (Function)
In french: telDémarreDétectionAppel
Starts the call detection (also called "call monitoring service").
WINDEV Remark: By default, the device used is the first TAPI 3.1-compatible device found. A specific device can be selected by tapiDevice. In this case, this specific device will be used.
// Starts the service for call detection
IF tapiListen("IncomingCall", tapiOptionMediaModeFax, "CallDetection") = True THEN
// The service for call detection is started
Message("Call detection enabled")
// The service for call detection is not started
Error("Unable to start call detection" + CR + "Error details: "+ CR + ErrorInfo(errMessage))
<Result> = tapiListen(<Service identifier> [, <Options>] , <WLanguage procedure> , <Custom parameter>)
<Result>: Boolean
  • True if the call detection is enabled,
  • False otherwise.
<Service identifier>: Character string
Name used to identify the service for call detection.
<Options>: Optional constant
Characteristics of call detection:
(default option)
Detecting calls on a fax modem. In most cases, the functions for handling calls are not supported by the modems.
This option cannot be used with the other options.
tapiOptionMediaModeFaxDetects the calls coming from a fax.
tapiOptionMediaModeUnknownDetects the unknown types of calls.
tapiOptionMediaModeVoiceDetects the voice calls.
Remark: The Fax modems that allow auto-dialing may return this constant. In this case, a WLanguage error will occur.
tapiOptionMonitorDetects the calls (to perform statistics for example), even if they are managed by an application. No operation will be possible on the call.
<WLanguage procedure>: Procedure name
Name of WLanguage procedure called during a call detection or when the call status changes. This procedure has the following format:
PROCEDURE <Procedure name> (<Service identifier>, <Call identifier>,
<Call status>, <Parameter>)
  • <Service identifier>: identifier of service that detected the call
  • <Call identifier>: integer that identifies the call. Can be used in all the functions for handling the call.
  • <Call status>: integer that can take the following values:
    tapiCallInformationThe additional information (presentation of the number) is available. In most cases, this information will be available after the fist ring.
    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.
    tapiMonitoredDigitA phone key has been used. To find out the list of keys used, call tapiKeyPressed.
    tapiNewCallNew call detected waiting for an answer or for a reject.
  • <Parameter> is the custom parameter passed to tapiListen.
Caution: This procedure must not contain any call to the debugger (no breakpoint, no STOP keyword, no auto-stop expression, etc.).
<Custom parameter>: Any type
Parameter passed to the WLanguage procedure.


tapiListen cannot be called in the call detection procedure.

WLanguage procedure

The WLanguage procedure is run in a WLanguage thread.
Caution: The following processes cannot be run in the threads:
For more details on threads, see Managing threads.

Required configuration

Telephony functions use TAPI 2.0 technology and/or TAPI 3.1 technology. These technologies can be used on all systems.
Related Examples:
WD Telephony Complete examples (WINDEV): WD Telephony
[ + ] This example presents the telephony functions of WINDEV.
The following topics are presented in this example:
1/ How to dial a phone number
2/ Detect and identify the incoming calls
Summary of the example supplied with WINDEV:
This example presents the telephony functions supplied with WINDEV. Once contacts have been entered in the main window (the table is in edit), you will be able to call them from the application directly (your computer must be equipped with a modem properly installed). You will be able to get a notification for the incoming calls and to identify the caller
Component: wd290com.dll
Minimum version required
  • Version 9
This page is also available for…
Click [Add] to post a comment

Last update: 06/30/2023

Send a report | Local help