- 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 page is also available for…