2.2.4.1.3.7 CompleteCall

The CompleteCall packet is transmitted from a TAPI client to a TAPI server in a remote procedure call. Sending this packet specifies how a call that cannot be connected in the usual manner is to be completed instead. The network or switch cannot be able to complete a call because network resources are busy or the remote station is busy or does not answer.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

Req_Func

Reserved1

dwRequestID

lpContext

hCall

lpdwCompletionIDContext

dwCompletionMode

dwMessageID

Reserved2

Reserved3

Reserved4

Reserved5

Reserved6

Reserved7

Reserved8

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 10.

Return Values

On completion of ClientRequest, this field contains the result of the encapsulated telephony request. A nonzero request ID value indicates that the request is in progress and will complete asynchronously and a LINEERR_Constants value indicates synchronous failure.

Returns a positive request identifier if the function will be completed asynchronously or a negative error number if an error occurs. The dwParam2 parameter of the corresponding LINE_REPLY packet is zero if the function succeeds, or it is a negative error number if an error occurs. If the client specified a nonzero value in the dwRequestID field of the packet, the same value MUST be used for the returned positive request identifier. Common return values are as follows:

Name

Value

LINEERR_INVALCALLHANDLE

0x80000018

LINEERR_NOMEM

0x80000044

LINEERR_INVALCALLSTATE

0x8000001C

LINEERR_OPERATIONUNAVAIL

0x80000049

LINEERR_INVALCALLCOMPLMODE

0x80000017

LINEERR_OPERATIONFAILED

0x80000048

LINEERR_INVALPOINTER

0x80000035

LINEERR_RESOURCEUNAVAIL

0x8000004B

LINEERR_COMPLETIONOVERRUN

0x80000006

LINEERR_INVALMESSAGEID

0x80000030

Reserved1 (4 bytes): An unsigned 32-bit integer. MUST be set to zero when sent and MUST be ignored on receipt.

dwRequestID (4 bytes): An unsigned 32-bit integer. The identifier of the asynchronous request.

lpContext (4 bytes): An unsigned 32-bit integer. The opaque, client-specified value that is used by the client upon request completion; MUST be returned by the server in the request completion packet.

hCall (4 bytes): An HCALL. The handle to the call whose completion is requested. One way of obtaining a valid hCall is by sending the MakeCall packet. The application MUST be an owner of the call. The call state of hCall must be busy, ringback.

lpdwCompletionIDContext (4 bytes): An unsigned 32-bit integer. The opaque, client-specified value that is used by the client upon request completion; MUST be returned by the server in the request completion packet.

dwCompletionMode (4 bytes): An unsigned 32-bit integer. The way in which the call is to be completed. This parameter MUST use one of the LINECALLCOMPLMODE_Constants.

dwMessageID (4 bytes): An unsigned 32-bit integer. The packet that is to be sent when completing the call using LINECALLCOMPLMODE_MESSAGE. This identifier selects the packet from a small number of predefined packets. This parameter is not validated by TAPI when this function is called.

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.