OID_TAPI_MAKE_CALL
The OID_TAPI_MAKE_CALL OID requests the miniport driver to place a call on the specified line to the specified destination address. Optionally, additional call parameters can be specified if the miniport driver is to use something other than default call-setup parameters.
Support for this request is mandatory.
This request uses an NDIS_TAPI_MAKE_CALL structure, defined as follows:
typedef struct _NDIS_TAPI_MAKE_CALL {
IN ULONG ulRequestID;
IN HDRV_LINE hdLine;
IN HTAPI_CALL htCall;
OUT HDRV_CALL hdCall;
IN ULONG ulDestAddressSize;
IN ULONG ulDestAddressOffset;
IN BOOLEAN bUseDefaultLineCallParams;
IN LINE_CALL_PARAMS LineCallParams;
} NDIS_TAPI_MAKE_CALL, *PNDIS_TAPI_MAKE_CALL;
The members of this structure contain the following information:
ulRequestID
Reserved.hdLine
Specifies the miniport driver's handle to the line on which the new call is to be originated.htCall
Specifies NDISTAPI's handle to the call.The miniport driver must save this handle for use in subsequent notifications, in particular the initial NDIS_MAC_LINE_UP notification to establish a link or data channel.
hdCall
Specifies the miniport driver's handle to the call. The miniport driver must fill this member with its handle for the call before completing this request successfully. This handle is ignored if the miniport driver returns an error status.ulDestAddressSize
Specifies the size in bytes of the variable-size buffer at ulDestAddressOffset containing the destination address.This member can be zero for undialed addresses, such as for a hot phone, which always automatically connects to a predefined number, or when dialing will be done subsequently with an OID_TAPI_DIAL request.
ulDestAddressOffset
Specifies the offset in bytes from the beginning of this structure to the destination address. This destination address is in standard dialable number format. This member should be zero if ulDestAddressSize is zero.If dialing will be done subsequently with an OID_TAPI_DIAL request, the driver should allocate an available call appearance on receipt of this request and remain in the dialtone state until dialing begins. Drivers of NICs that have inverse multiplexing capabilities can allow an application to specify many addresses at once.
bUseDefaultLineCallParams
Specifies whether the miniport driver should use the default call-setup parameters or the parameters specified in LineCallParams when making the call. If this member is FALSE, the driver should ignore LineCallParams.LineCallParams
The LINE_CALL_PARAMS structure at this member specifies how the call should be set up. It selects elements such as the call's bearer mode, data rate, expected media mode, origination address, blocking of caller ID information, and dialing parameters. For more information, see ndistapi.h.
To place a telephony call on a previously opened line, an application supplies a specific destination address and information that specifies how the telephony call should be set up. The NDISWAN driver receives this address and information and passes them down in a NDIS_TAPI_MAKE_CALL structure to a WAN miniport driver in order to place a call on the given line. For example, for an underlying X.25 network, an X.25 WAN miniport driver can access the following information from NDIS_TAPI_MAKE_CALL:
The X.25 network address from the ulDestAddressOffset member
TRUE from the bUseDefaultLineCallParams member to inform the X.25 WAN miniport driver to use the call parameters in the LineCallParams member
X.25-facilities information from the ulDevSpecificOffset member of the LineCallParams member
X.25-user information from the ulUserUserInfoOffset member of the LineCallParams member
The MiniportQueryInformationfunction can return one of the following:
NDIS_STATUS_SUCCESS
NDIS_STATUS_PENDING
NDIS_STATUS_TAPI_ADDRESSBLOCKED
NDIS_STATUS_TAPI_BEARERMODEUNAVAIL
NDIS_STATUS_TAPI_CALLUNAVAIL
NDIS_STATUS_TAPI_DIALBILLING
NDIS_STATUS_TAPI_DIALQUIET
NDIS_STATUS_TAPI_DIALDIALTONE
NDIS_STATUS_TAPI_DIALPROMPT
NDIS_STATUS_TAPI_INUSE
NDIS_STATUS_TAPI_INVALBEARERMODE
NDIS_STATUS_TAPI_INVALMEDIAMODE
NDIS_STATUS_TAPI_INVALLINESTATE
NDIS_STATUS_TAPI_INVALRATE
NDIS_STATUS_TAPI_INVALLINEHANDLE
NDIS_STATUS_TAPI_INVALADDRESS
NDIS_STATUS_TAPI_INVALADDRESSID
NDIS_STATUS_TAPI_INVALCALLPARAMS
NDIS_STATUS_TAPI_RESOURCEUNAVAIL
NDIS_STATUS_TAPI_RATEUNAVAIL
NDIS_STATUS_TAPI_USERUSERINFOTOOBIG
NDIS_STATUS_FAILURE