- WLanguage procedure
- Required configuration
In french: telDémarreDétectionAppel
Starts the call detection (also called "call monitoring service").
: 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 the call detection" + CR + ...
"Error details:"+ CR + ErrorInfo(errMessage))
<Result> = tapiListen(<Service identifier> [, <Options>] , <WLanguage procedure> , <Custom parameter>)
- 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:
|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.
|tapiOptionMediaModeFax||Detects the calls coming from a fax.|
|tapiOptionMediaModeUnknown||Detects the unknown types of calls.|
|tapiOptionMediaModeVoice||Detects the voice calls.|
Remark: The Fax modems that allow auto-dialing may return this constant. In this case, a WLanguage error will occur.
|tapiOptionMonitor||Detects 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:
|tapiCallInformation||The additional information (presentation of the number) is available. In most cases, this information will be available after the fist ring.|
|tapiLineBusy||The line is currently busy.|
|tapiLineConnected||The line is connected.|
|tapiLineDialing||Dialing in progress.|
Remark: If TAPI 3.1 technology is used, this constant is no longer returned.
|tapiLineDialTone||The line gets a dial tone.|
|tapiLineDisconnected||The correspondent has hung up.|
|tapiLineProceeding||The call is dialed: searching for the correspondent.|
|tapiLineRingBack||Ringing in progress.|
|tapiMonitoredDigit||A phone key has been used. To find out the list of keys used, call tapiKeyPressed.|
|tapiNewCall||New 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.
The WLanguage procedure is run in a WLanguage thread.
Caution: The following processes cannot be run in the threads:
- use tapiDial, tapiLineDial, tapiListen, tapiStopCallDetection, tapiHold, tapiSendKey, tapiDevice, tapiHangUp, tapiAnswerCall, tapiUnhold and tapiBlindTransfer.
- opening windows with WLanguage functions such as Open, Use, Close, ... A specific management mode must be implemented if some windows must be handled in threads (rare case). For more details, see Opening a window in a secondary thread
- managing events.
- managing timers.
Telephony functions use TAPI 2.0 technology and/or TAPI 3.1 technology. These technologies can be used on all systems.
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
This page is also available for…