2.2.4.1.3.9 ConditionalMediaDetection
The ConditionalMediaDetection packet is transmitted from a TAPI client to a TAPI server in a remote procedure call. The function is invoked by TAPI whenever a client application uses LINEMAPPER as the dwDeviceID in an Open packet call to request that lines be scanned to find one that supports the desired media types and call parameters.
TAPI scans based on the union of the desired media type and the other media types currently being monitored on the line to give the service provider the opportunity to indicate if it cannot simultaneously monitor for all the requested media types. If the service provider can monitor for the indicated set of media types and support the capabilities that are indicated in lpCallParams, it replies with a success indication. It leaves the active media monitoring modes for the line unchanged.
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Req_Func |
|||||||||||||||||||||||||||||||
|
Reserved1 |
|||||||||||||||||||||||||||||||
|
hLine |
|||||||||||||||||||||||||||||||
|
dwMediaModes |
|||||||||||||||||||||||||||||||
|
lpCallParams |
|||||||||||||||||||||||||||||||
|
dwAsciiCallParamsCodePage |
|||||||||||||||||||||||||||||||
|
Reserved2 |
|||||||||||||||||||||||||||||||
|
Reserved3 |
|||||||||||||||||||||||||||||||
|
Reserved4 |
|||||||||||||||||||||||||||||||
|
Reserved5 |
|||||||||||||||||||||||||||||||
|
Reserved6 |
|||||||||||||||||||||||||||||||
|
Reserved7 |
|||||||||||||||||||||||||||||||
|
Reserved8 |
|||||||||||||||||||||||||||||||
|
Reserved9 |
|||||||||||||||||||||||||||||||
|
Reserved10 |
|||||||||||||||||||||||||||||||
|
VarData (variable) |
|||||||||||||||||||||||||||||||
|
... |
|||||||||||||||||||||||||||||||
Req_Func (4 bytes): An unsigned 32-bit integer. The identifier of the function that will be invoked on the remote server. This value MUST be set to 127.
-
Return Values
-
On completion of ClientRequest, this field MUST contain the result of the encapsulated telephony request. A value of 0 indicates success, and a LINEERR_Constants value indicates failure. The remote server MUST complete this call synchronously.
-
MUST return zero if the function succeeds or an error number if an error occurs. Common return values are as follows:
-
Name
Value
LINEERR_INVALLINEHANDLE
0x8000002B
LINEERR_OPERATIONFAILED
0x80000048
LINEERR_NODRIVER
0x80000043
LINEERR_RESOURCEUNAVAIL
0x8000004B
LINEERR_NOMEM
0x80000044
LINEERR_INVALMEDIAMODE
0x8000002F
LINEERR_OPERATIONUNAVAIL
0x80000049
Reserved1 (4 bytes): An unsigned 32-bit integer. MUST be set to zero when sent and MUST be ignored on receipt.
hLine (4 bytes): An HLINE. The handle to the line on which media monitoring and parameter capabilities are to be set. This field MUST have been obtained by sending the Open packet.
dwMediaModes (4 bytes): An unsigned 32-bit integer. The media types currently of interest to the calling application. This parameter MUST use one or more of the LINEMEDIAMODE_Constants.
lpCallParams (4 bytes): An unsigned 32-bit integer. The offset in the VarData field of a LINECALLPARAMS packet.
dwBearerMode
dwMinRate
dwMaxRate
dwMediaMode
dwCallParamFlags
dwAddressMode
-
If dwAddressMode is LINEADDRESSMODE_ADDRESSID, any address on the line is acceptable. If dwAddressMode is LINEADDRESSMODE_DIALABLEADDR, indicating that a specific originating address (phone number) is searched for, or if it is a provider-specific extension, then dwOrigAddressSize/Offset and the portion of the variable part they refer to are also relevant. If dwAddressMode is a provider-specific extension, additional information can be contained in the dwDeviceSpecific variably sized field. All other fields are irrelevant to the function.
dwAsciiCallParamsCodePage (4 bytes): An unsigned 32-bit integer. This MUST be set to TAPI_NO_DATA (0xFFFFFFFF).
Reserved2 (4 bytes): An unsigned 32-bit integer. This field is used for padding and MUST be ignored on receipt. It can be any value.
Reserved3 (4 bytes): An unsigned 32-bit integer. This field is used for padding and MUST be ignored on receipt. It can be any value.
Reserved4 (4 bytes): An unsigned 32-bit integer. This field is used for padding and MUST be ignored on receipt. It can be any value.
Reserved5 (4 bytes): An unsigned 32-bit integer. This field is used for padding and MUST be ignored on receipt. It can be any value.
Reserved6 (4 bytes): An unsigned 32-bit integer. This field is used for padding and MUST be ignored on receipt. It can be any value.
Reserved7 (4 bytes): An unsigned 32-bit integer. This field is used for padding and MUST be ignored on receipt. It can be any value.
Reserved8 (4 bytes): An unsigned 32-bit integer. This field is used for padding and MUST be ignored on receipt. It can be any value.
Reserved9 (4 bytes): An unsigned 32-bit integer. This field is used for padding and MUST be ignored on receipt. It can be any value.
Reserved10 (4 bytes): An unsigned 32-bit integer. This field is used for padding and MUST be ignored on receipt. It can be any value.
VarData (variable): Contains a LINECALLPARAMS packet.