|
lineGatherDigits
The lineGatherDigits function initiates the buffered gathering of digits on the specified call.
The application specifies a buffer in which to place the digits and the maximum
number of digits to be collected.
LONG lineGatherDigits(
HCALL hCall,
|
| DWORD dwDigitModes,
|
| LPSTR lpsDigits,
|
| DWORD dwNumDigits,
|
| LPCSTR lpszTerminationDigits,
|
| DWORD dwFirstDigitTimeout,
|
| DWORD dwInterDigitTimeout
|
| );
|
|
Parameters
hCall
A handle to the call on which digits are to be gathered. The application must
be an owner of the call. The call state of hCall can be any state.
dwDigitModes
The digit mode(s) to be monitored. Note that dwDigitModes is allowed to have one or more flags set. This parameter uses the following
LINEDIGITMODE_ constants:
LINEDIGITMODE_PULSE
Detect digits as audible clicks that are the result of the use of rotary pulse
sequences. Valid digits for pulse mode are '0' through '9'.
LINEDIGITMODE_DTMF
Detect digits as DTMF tones. Valid digits for DTMF mode are '0' through '9',
'A', 'B', 'C', 'D', '*', '#'.
lpsDigits
A pointer to the buffer where detected digits are to be stored as ASCII
characters. Digits may not show up in the buffer one at a time as they are collected.
Only after a LINE_GATHERDIGITS message is received should the content of the buffer be assumed to be valid.
If lpsDigits is NULL, the digit gathering currently in progress on the call is terminated
and dwNumDigits is ignored. Otherwise, lpsDigits is assumed to have room for dwNumDigits digits.
dwNumDigits
The number of digits to be collected before a LINE_GATHERDIGITS message is
sent to the application. The dwNumDigits parameter is ignored when lpsDigits is NULL. This function fails if dwNumDigits is zero.
lpszTerminationDigits
Specifies a NULL-terminated string of termination digits as ASCII characters.
If one of the digits in the string is detected, that termination digit is
appended to the buffer, digit collection is terminated, and the LINE_GATHERDIGITS message is sent to the application.
Valid characters for pulse mode are '0' through '9'. Valid characters for DTMF
mode are '0' through '9', 'A', 'B', 'C', 'D', '*', '#'. If this pointer is
NULL, or if it points to an empty string, the function behaves as though no
termination digits were supplied.
dwFirstDigitTimeout
The time duration in milliseconds in which the first digit is expected. If the
first digit is not received in this timeframe, digit collection is aborted and
a LINE_GATHERDIGITS message is sent to the application. The buffer only
contains the NULL character, indicating that no digits were received and the first
digit timeout terminated digit gathering. The call's line-device capabilities
specify the valid range for this parameter or indicate that timeouts are not
supported.
dwInterDigitTimeout
The maximum time duration in milliseconds between consecutive digits. If no
digit is received in this timeframe, digit collection is aborted and a
LINE_GATHERDIGITS message is sent to the application. The buffer only contains the digits
collected up to this point followed by a NULL character, indicating that an
interdigit timeout terminated digit gathering. The call's line-device
capabilities specify the valid range for this parameter or indicate that timeouts are not
supported.
Return Values
Returns zero if the request is successful or a negative error number if an
error has occurred. Possible return values are:
LINEERR_INVALCALLHANDLE, LINEERR_NOMEM, LINEERR_INVALCALLSTATE,
LINEERR_NOTOWNER, LINEERR_INVALDIGITMODE, LINEERR_OPERATIONUNAVAIL, LINEERR_INVALDIGITS,
LINEERR_OPERATIONFAILED, LINEERR_INVALPARAM, LINEERR_RESOURCEUNAVAIL,
LINEERR_INVALPOINTER, LINEERR_UNINITIALIZED, LINEERR_INVALTIMEOUT.
Remarks
Digit collection is terminated when the requested number of digits has been
collected. It is also terminated when one of the digits detected matches a digit
in szTerminationDigits before the specified number of digits has been collected. The detected
termination digit is also placed in the buffer and the partial buffer is returned.
Another way of cancelling digit collection is when one of the timeouts
expires. The dwFirstDigitTimeout expires if the first digit is not received in this time period. The dwInterDigitTimout expires if the second, third, (and so forth) digit is not received within
that time period from the previously detected digit, and a partial buffer is
returned.
A fourth method for terminating digit detection is by calling this function
again while collection is in progress. The old collection session is terminated,
any digits collected up to that point are copied to the buffer supplied from
the previous call to this function, and the buffer is delivered when the
LINE_GATHERDIGITS message is sent to the application. The mechanism for terminating
digit gathering without initiating another gathering of the digits is by invoking
this function with lpsDigits equal to NULL.
This function is considered successful if digit collection has been correctly
initiated, not when digit collection has terminated. In all cases where a
partial buffer is returned, valid digits (if any) are followed by an ASCII NULL
character.
Although this function can be invoked in any call state, digits can typically
only be gathered while the call is in the connected state.
The message LINE_GATHERDIGITS is sent only to the application that initiated
the request. It is also sent when partial buffers are returned because of
timeouts or matching termination digits, or when the request is canceled by another lineGatherDigits request on the call. Only one gather digits request can be active on a call at any given time across all
applications that are owners of the call. Given the asynchronous behavior of the
operation, an application that issues multiple lineGatherDigits in quick succession may be able to do so and receive several
LINE_GATHERDIGITS messages later. While this would be unusual application behavior, the
application will be able to count the number of these messages to allow cancel
messages to be matched with the earlier requests. In any case, only the most recent
request should be assumed to be valid.
An application can use lineMonitorDigits to enable or disable unbuffered digit detection. Each time a digit is
detected in this fashion, a LINE_MONITORDIGITS message is sent to the application. Both buffered and unbuffered digit
detection can be enabled for the same call simultaneously.
Gathering of digits on a conference call applies only to the hConfCall, not to the individual participating calls.
If the lineGatherDigits function is used to cancel a previous request to gather digits, the function
copies any digits collected up to that point to the buffer specified in the
original function call and sends a LINE_GATHERDIGITS message to the application,
regardless of whether the lpszDigits parameter in the second call specifies a NULL or different address.
See Also
LINE_GATHERDIGITS, LINE_MONITORDIGITS, lineMonitorDigits
| Last news from Greatis Software |
 |
|
Nostalgia .Net |
|
.Net is powerful, but not all-powerful, so sometimes we need to use Win32 API for our .Net applications. It's simple enough with Platform Invoke if you have Win32 skill, but we do not always have time to dig the ancient documentation, declare the special types that are compatible with Win32, find the values of the Win32's constants and so on. Nostalgia .Net offers several simple-to-use classes, and components that will allow you to forget about the headache of Win32 and just use the power of Win32 in your application the same way as you use the native. Net classes. More » |
| Recommended software for developers |
 |
|
Ultimate Pack |
|
Component pack for Delphi and C++ Builder that contains runtime form designer, runtime object inspector, print suite and much more for the very special price. More » |
 |
|
Form Designer .Net |
|
Unique runtime form design solution that allows to edit any form in .Net WinForms application at runtime with full source codes for only 300 euro! More » |
 |
|
Print Suite .Net |
|
Print Suite .Net is a set of components for easy printing texts, images and grids from your WinForms applications. Full C# source codes are available More » |
 |
|
Gradient Controls .Net |
|
Gradient Controls .Net offers controls with gradient background feature. Labels, panels and so on... Full C# source codes are available More » |
 |
|
Greatis iGrid |
|
iGrid plots drawing grid right over your desktop, so you can use it everywhere, with any drawing application without any special plugins for different graphic editors. More » |
All the contacts and projectsDmitry Vasiliev (just.dmitry)
Related LinksSoftware for Visual Studio .NET developers Software for Delphi and C++ Builder developers Software for Visual Basic 6 developers Delphi Tips&Tricks MegaDetailed.NET More Online Helps Win32 Programmer's Reference Win32 Multimedia Programmer's Reference OLE Programmer's Reference Microsoft Windows Pen API Programmer's Reference Microsoft Windows Sockets 2 Reference Microsoft Windows Telephony API (TAPI) Programmer's Reference Unix Manual Pages
|