lineSetTerminal
The
lineSetTerminal function enables an application to specify which terminal information related
to the specified line, address, or call is to be routed. The
lineSetTerminal function can be used while calls are in progress on the line to allow an
application to route these events to different devices as required.
LONG lineSetTerminal(
HLINE hLine,
|
|
DWORD dwAddressID,
|
|
HCALL hCall,
|
|
DWORD dwSelect,
|
|
DWORD dwTerminalModes,
|
|
DWORD dwTerminalID,
|
|
DWORD bEnable
|
|
);
|
|
Parameters
hLine
A handle to an open line device.
dwAddressID
An address on the given open line device.
hCall
A handle to a call. The call state of
hCall can be any state, if
dwSelect is CALL.
dwSelect
Specifies whether the terminal setting is requested for the line, the address,
or just the specified call. If line or address is specified, events either
apply to the line or address itself or serves as a default initial setting for all
new calls on the line or address. This parameter uses the following
LINECALLSELECT_ constants:
LINECALLSELECT_LINE
Selects the specified line device. The
hLine parameter must be a valid line handle;
hCall and
dwAddressID are ignored.
LINECALLSELECT_ADDRESS
Selects the specified address on the line. Both
hLine and
dwAddressID must be valid;
hCall is ignored.
LINECALLSELECT_CALL
Selects the specified call.
hCall must be valid;
hLine and
dwAddressID are both ignored.
dwTerminalModes
The class or classes of low-level events to be routed to the given terminal.
This parameter uses the following LINETERMMODE_ constants:
LINETERMMODE_BUTTONS
The button presses from the terminal to the line.
LINETERMMODE_DISPLAY
The display events from the line to the terminal.
LINETERMMODE_LAMPS
The lamp lighting events from the line to the terminal.
LINETERMMODE_RINGER
The ring requests from the line to the terminal.
LINETERMMODE_HOOKSWITCH
The hookswitch events between the terminal and the line.
LINETERMMODE_MEDIATOLINE
This is the unidirectional media stream from the terminal to the line
associated with a call on the line. Use this value when routing of both unidirectional
channels of a call's media stream can be controlled independently.
LINETERMMODE_MEDIAFROMLINE
This is the unidirectional media stream from the line to the terminal
associated with a call on the line. Use this value when routing of both unidirectional
channels of a call's media stream can be controlled independently.
LINETERMMODE_MEDIABIDIRECT
This is the bidirectional media stream associated with a call on the line and
the terminal. Use this value when routing of both unidirectional channels of a
call's media stream cannot be controlled independently. Note that MEDIABIDIRECT
is mutually exclusive with MEDIATOLINE and MEDIAFROMLINE
dwTerminalID
The device ID of the terminal device where the given events are to be routed.
Terminal IDs are small integers in the range of 0 to one less than
dwNumTerminals, where
dwNumTerminals, and the terminal modes each terminal is capable of handling, are returned by
lineGetDevCaps. Note that these terminal IDs have no relation to other device IDs and are
defined by the service provider using device capabilities.
bEnable
If TRUE,
dwTerminalID is valid and the specified event classes are routed to or from that terminal.
If FALSE, these events are not routed to or from the terminal device with ID
equal to
dwTerminalID.
Return Values
Returns a positive request ID if the function will be completed
asynchronously, or a negative error number if an error has occurred. The
dwParam2 parameter of the corresponding
LINE_REPLY message is zero if the function is successful or it is a negative error
number if an error has occurred. Possible return values are:
LINEERR_INVALADDRESSID, LINEERR_NOMEM, LINEERR_INVALCALLHANDLE,
LINEERR_OPERATIONUNAVAIL, LINEERR_INVALCALLSELECT, LINEERR_OPERATIONFAILED,
LINEERR_INVALLINEHANDLE, LINEERR_RESOURCEUNAVAIL, LINEERR_INVALTERMINALID,
LINEERR_UNINITIALIZED, LINEERR_INVALTERMINALMODE.
Remarks
An application can use this function to route certain classes of low-level
line events to the specified terminal device or to suppress the routing of these
events. For example, voice may be routed to an audio I/O device (headset); lamps
and display events may be routed to the local phone device, and button events
and ringer events may be suppressed altogether.
This function can be called at any time, even when a call is active on the
given line device. This allows a user to switch from using the local phone set to
another audio I/O device. This function may be called multiple times to route
the same events to multiple terminals simultaneously. To reroute events to a
different terminal, the application should first disable routing to the existing
terminal and then route the events to the new terminal.
Terminal ID assignments are made by the line's service provider. Device
capabilities indicate only which terminal IDs the service provider has available.
Service providers that do not support this type of event routing would indicate
that they have no terminal devices (
dwNumTerminals in
LINEDEVCAPS would be zero).
Invoking
lineSetTerminal on a line or address affects all existing calls on that line or address, but
does not affect calls on other addresses. It also sets the default for future
calls on that line or address. A line or address that has multiple connected
calls active at one time may have different routing in effect for each call.
Disabling the routing of low-level events to a terminal when these events are
not currently routed to or from that terminal will not necessarily generate an
error so long after the function succeeds (the specified events are not routed
to or from that terminal).
TAPI routes call progress tones and messages to the same location as set by
the
lineSetTerminal function for "media". For example, if audio signals are going to the phone,
then so will busy signals (analog) or Q.931 messages indicating busy (digital).
See Also
LINE_REPLY,
LINEDEVCAPS,
lineGetDevCaps
- Software for developers
-
Delphi Components
.Net Components
Software for Android Developers
- More information resources
-
MegaDetailed.Net
Unix Manual Pages
Delphi Examples
- Databases for Amazon shops developers
-
Amazon Categories Database
Browse Nodes Database