<div class="content"><p>The SetTerminal packet is transmitted from a TAPI <a href="489de77f-16d8-4c4f-939a-f795e8b42893#gt_60e0e1fa-66fe-41e1-b5e3-ceab97e53506" data-linktype="relative-path">client</a> to a TAPI <a href="489de77f-16d8-4c4f-939a-f795e8b42893#gt_434b0234-e970-4e8c-bdfa-e16a30d96703" data-linktype="relative-path">server</a> in a <a href="489de77f-16d8-4c4f-939a-f795e8b42893#gt_8a7f6700-8311-45bc-af10-82e10accd331" data-linktype="relative-path">remote procedure call</a>.
Sending this packet MUST enable an application to specify which terminal
information related to the specified line, address, or call is to be routed.
This 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.</p><table>
 <tbody><tr>
  <th><p><br/>0</p></th>
  <th><p><br/>1</p></th>
  <th><p><br/>2</p></th>
  <th><p><br/>3</p></th>
  <th><p><br/>4</p></th>
  <th><p><br/>5</p></th>
  <th><p><br/>6</p></th>
  <th><p><br/>7</p></th>
  <th><p><br/>8</p></th>
  <th><p><br/>9</p></th>
  <th><p>1<br/>0</p></th>
  <th><p><br/>1</p></th>
  <th><p><br/>2</p></th>
  <th><p><br/>3</p></th>
  <th><p><br/>4</p></th>
  <th><p><br/>5</p></th>
  <th><p><br/>6</p></th>
  <th><p><br/>7</p></th>
  <th><p><br/>8</p></th>
  <th><p><br/>9</p></th>
  <th><p>2<br/>0</p></th>
  <th><p><br/>1</p></th>
  <th><p><br/>2</p></th>
  <th><p><br/>3</p></th>
  <th><p><br/>4</p></th>
  <th><p><br/>5</p></th>
  <th><p><br/>6</p></th>
  <th><p><br/>7</p></th>
  <th><p><br/>8</p></th>
  <th><p><br/>9</p></th>
  <th><p>3<br/>0</p></th>
  <th><p><br/>1</p></th>
 </tr>
 <tr>
  <td colspan="32">
  <p align="center">Req_Func</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p align="center">Reserved1</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p align="center">dwRequestID</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p align="center">hLine</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p align="center">dwAddressID</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p align="center">hCall</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p align="center">dwSelect</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p align="center">dwTerminalModes</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p align="center">dwTerminalID</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p align="center">bEnable</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p align="center">Reserved2</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p align="center">Reserved3</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p align="center">Reserved4</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p align="center">Reserved5</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p align="center">Reserved6</p>
  </td>
 </tr>
</tbody></table><p><b>Req_Func (4 bytes): </b>An unsigned 32-bit
integer. The identifier of the function that will be invoked on the remote
server. This value MUST be set to 83. </p><dl>
<dd>
<p><b>Return Values</b></p>
</dd>
<dd>
<p>On completion of <a href="c28c36d0-579b-4e20-a100-f4e71012d5f8" data-linktype="relative-path">ClientRequest</a>, this field
MUST contain 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 <a href="e0e8af90-24f1-4dbc-8d4e-01b8e4e7cb53" data-linktype="relative-path">LINEERR_Constants</a>
value indicates synchronous failure.</p>
</dd>
<dd>
<p>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 <a href="8f5bc349-fd55-46f2-b0bc-dc9f757317a9" data-linktype="relative-path">LINE_REPLY</a> 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:</p>
</dd>
<dd>
<table><thead>
  <tr>
   <th>
   <p>Name</p>
   </th>
   <th>
   <p>Value</p>
   </th>
  </tr>
 </thead><tbody><tr>
  <td>
  <p>LINEERR_INVALADDRESSID</p>
  </td>
  <td>
  <p>0x80000011</p>
  </td>
 </tr><tr>
  <td>
  <p>LINEERR_NOMEM</p>
  </td>
  <td>
  <p>0x80000044</p>
  </td>
 </tr><tr>
  <td>
  <p>LINEERR_INVALCALLHANDLE</p>
  </td>
  <td>
  <p>0x80000018</p>
  </td>
 </tr><tr>
  <td>
  <p>LINEERR_OPERATIONUNAVAIL</p>
  </td>
  <td>
  <p>0x80000049</p>
  </td>
 </tr><tr>
  <td>
  <p>LINEERR_INVALCALLSELECT</p>
  </td>
  <td>
  <p>0x8000001B</p>
  </td>
 </tr><tr>
  <td>
  <p>LINEERR_OPERATIONFAILED</p>
  </td>
  <td>
  <p>0x80000048</p>
  </td>
 </tr><tr>
  <td>
  <p>LINEERR_INVALLINEHANDLE</p>
  </td>
  <td>
  <p>0x8000002B</p>
  </td>
 </tr><tr>
  <td>
  <p>LINEERR_RESOURCEUNAVAIL</p>
  </td>
  <td>
  <p>0x8000004B</p>
  </td>
 </tr><tr>
  <td>
  <p>LINEERR_INVALTERMINALID</p>
  </td>
  <td>
  <p>0x80000039</p>
  </td>
 </tr><tr>
  <td>
  <p>LINEERR_UNINITIALIZED</p>
  </td>
  <td>
  <p>0x80000050</p>
  </td>
 </tr><tr>
  <td>
  <p>LINEERR_INVALTERMINALMODE</p>
  </td>
  <td>
  <p>0x8000003A</p>
  </td>
 </tr></tbody></table>
</dd></dl><p><b>Reserved1 (4 bytes): </b>An unsigned 32-bit
integer. MUST be set to zero when sent and MUST be ignored on receipt. </p><p><b>dwRequestID (4 bytes): </b>An unsigned 32-bit
integer. The identifier of the asynchronous request. </p><dl>
<dd>
<table><thead>
  <tr>
   <th>
   <p>Value</p>
   </th>
   <th>
   <p>Meaning</p>
   </th>
  </tr>
 </thead><tbody><tr>
  <td>
  <p>0x00000000</p>
  </td>
  <td>
  <p>The server MUST generate a unique positive request ID
  to return as the Ack_ReturnValue.</p>
  </td>
 </tr><tr>
  <td>
  <p>0x00000001 — 0x7FFFFFFF</p>
  </td>
  <td>
  <p>The server MUST use this value instead of generating a
  unique positive request ID.</p>
  </td>
 </tr></tbody></table>
</dd></dl><p><b>hLine (4 bytes): </b>An <a href="9a80ee5c-cf55-4a86-bd67-173059d6ff3c" data-linktype="relative-path">HLINE</a>. The handle to an
open line device. This field MUST have been obtained by sending the <a href="2759c744-e040-4c5d-b4b5-215d391f0490" data-linktype="relative-path">Open</a> packet.</p><p><b>dwAddressID (4 bytes): </b>An unsigned 32-bit
integer. The address on the specified open line device. An address identifier
is permanently associated with an address; the identifier remains constant
across operating system upgrades. A valid value of dwAddressID is in the range
0 to dwNumAddresses –1. The client obtains dwNumAddresses from the <a href="f236ea7a-c8a2-4681-b87c-9f0e07a01dc6" data-linktype="relative-path">LINEDEVCAPS</a> obtained by
sending a <a href="ee317c21-100e-48a3-bcce-e9991efff889" data-linktype="relative-path">GetDevCaps</a>
packet to the remote server.</p><p><b>hCall (4 bytes): </b>An <a href="7f4089a0-7432-4ef0-8eeb-5aafe407c07e" data-linktype="relative-path">HCALL</a>. The handle to a
call. One way of obtaining a valid hCall is by sending the <a href="c9acdfde-22de-43ff-b491-23a9ed72fb31" data-linktype="relative-path">MakeCall</a> packet. Also a
valid hCall can be obtained from <a href="0a8905e3-647f-4e98-aca8-2fa77eedb2e7" data-linktype="relative-path">LINE_CALLSTATE</a> packet sent
by the remote server. The call state of hCall can be any state if dwSelect is
CALL. </p><p><b>dwSelect (4 bytes): </b>An unsigned 32-bit
integer. 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 serve as a default initial
setting for all new calls on the line or address. This parameter MUST use one
of the <a href="204f1186-238f-4465-8c1c-db5e56a185ab" data-linktype="relative-path">LINECALLSELECT_Constants</a>.
</p><p><b>dwTerminalModes (4 bytes): </b>An unsigned 32-bit
integer. The class of low-level events to be routed to the specified terminal.
This parameter MUST use one or more of the <a href="c410cabf-88f3-42b9-94c4-535333526bf7" data-linktype="relative-path">LINETERMMODE_Constants</a>. </p><p><b>dwTerminalID (4 bytes): </b>An unsigned 32-bit
integer. The device identifier of the terminal device where the specified
events are to be routed. Terminal identifiers are small integers in the range
of zero to one less than dwNumTerminals, where dwNumTerminals, and the terminal
modes that each terminal is capable of handling, are obtained by sending the
GetDevCaps packet. </p><dl>
<dd>
<p>These terminal identifiers have no relation to other
device identifiers and are defined by the service provider using device
capabilities.</p>
</dd></dl><p><b>bEnable (4 bytes): </b>An unsigned 32-bit integer.
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 identifier equal to dwTerminalID.</p><p><b>Reserved2 (4 bytes): </b>An unsigned 32-bit
integer. This field is used for padding and MUST be ignored on receipt. It can
be any value.</p><p><b>Reserved3 (4 bytes): </b>An unsigned 32-bit
integer. This field is used for padding and MUST be ignored on receipt. It can
be any value.</p><p><b>Reserved4 (4 bytes): </b>An unsigned 32-bit
integer. This field is used for padding and MUST be ignored on receipt. It can
be any value.</p><p><b>Reserved5 (4 bytes): </b>An unsigned 32-bit
integer. This field is used for padding and MUST be ignored on receipt. It can
be any value.</p><p><b>Reserved6 (4 bytes): </b>An unsigned 32-bit
integer. This field is used for padding and MUST be ignored on receipt. It can
be any value.</p></div>