2.2.4.1.6.12 NegotiateExtVersion
The NegotiateExtVersion packet is transmitted from a TAPI client to a TAPI server in a remote procedure call. Sending this packet MUST allow an application to negotiate an extension version to use with the specified phone device. This operation need not be called if the application does not support extensions.
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Req_Func |
|||||||||||||||||||||||||||||||
Reserved1 |
|||||||||||||||||||||||||||||||
hPhoneApp |
|||||||||||||||||||||||||||||||
dwDeviceID |
|||||||||||||||||||||||||||||||
dwTSPIVersion |
|||||||||||||||||||||||||||||||
dwLowVersion |
|||||||||||||||||||||||||||||||
dwHighVersion |
|||||||||||||||||||||||||||||||
lpdwExtVersion |
|||||||||||||||||||||||||||||||
Reserved2 |
|||||||||||||||||||||||||||||||
Reserved3 |
|||||||||||||||||||||||||||||||
Reserved4 |
|||||||||||||||||||||||||||||||
Reserved5 |
|||||||||||||||||||||||||||||||
Reserved6 |
|||||||||||||||||||||||||||||||
Reserved7 |
|||||||||||||||||||||||||||||||
Reserved8 |
Req_Func (4 bytes): The identifier of the function that will be invoked on the remote server. This value MUST be set to 109.
-
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 PHONEERR_Constants value indicates failure. The remote server MUST complete this call synchronously.
-
Returns 0 if the request succeeds or a negative error number if an error occurs. The following table lists common return values.
-
Name
Value
PHONEERR_INVALAPPHANDLE
0x00000007
PHONEERR_OPERATIONFAILED
0x0000001C
PHONEERR_BADDEVICEID
0x00000002
PHONEERR_OPERATIONUNAVAIL
0x0000001D
PHONEERR_NODRIVER
0x00000019
PHONEERR_NOMEM
0x0000001A
PHONEERR_INCOMPATIBLEAPIVERSION
0x00000003
PHONEERR_RESOURCEUNAVAIL
0x0000001F
PHONEERR_INCOMPATIBLEEXTVERSION
0x00000004
PHONEERR_UNINITIALIZED
0x00000022
PHONEERR_INVALPOINTER
0x00000015
PHONEERR_NODEVICE
0x00000018
Reserved1 (4 bytes): An unsigned 32-bit integer. MUST be set to zero when sent and MUST be ignored on receipt.
hPhoneApp (4 bytes): An HPHONEAPP. The handle to the application registration with TAPI. This field MUST have been obtained by sending the Initialize packet.
dwDeviceID (4 bytes): An unsigned 32-bit integer. The identifier of the phone device to be queried. A valid value of dwDeviceID is in the range 0 to dwNumDevs –1. The client obtains dwNumDevs by sending a Initialize packet to the remote server.
dwTSPIVersion (4 bytes): An unsigned 32-bit integer. The TAPI version number that was negotiated for the specified phone device by using NegotiateAPIVersion.
dwLowVersion (4 bytes): An unsigned 32-bit integer. The least recent extension version of the extension identifier that is returned by NegotiateAPIVersion and with which the application is compliant. The high-order word is the major version number; the low-order word is the minor version number.
dwHighVersion (4 bytes): An unsigned 32-bit integer. The most recent extension version of the extension identifier that is returned by NegotiateAPIVersion and with which the application is compliant. The high-order word is the major version number; the low-order word is the minor version number.
lpdwExtVersion (4 bytes): An unsigned 32-bit integer. Set to TAPI_NO_DATA (0xFFFFFFFF). Upon successful completion of the request, this field contains the highest extension version number, within the range that is requested by the caller, under which the service provider can operate. The most-significant WORD is the major version number and the least-significant WORD is the minor version number.
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.