Provisions are made for extending data types and structures both in a device independent way and in a device specific (i.e., vendor specific) way.
In data types that are scalar enumerations, a range of values is reserved for future common extensions. The remainder of values is identified as device specific. A vendor can define meanings for these values in any way desired. The interpretation of these values is keyed to the Extension ID provided via the LINEDEVCAPS data structure. For data types that are defined as bit flags, a range of low order bits are reserved, where the high order bits can be Extension specific. It is recommended that Extended values and bit arrays use bits from the highest value or high order bit down. This leaves the option to move the border between the common portion and Extension portion if there is need to do so in the future. Extensions to data structures are assigned a variable sized field with size/offset being part of the fixed part. The API describes for each data structures what device specific extensions are allowed.
In addition to recognizing a specific Extension ID, the application must negotiate the extension version number that the app and the service provider will operate under. This is done in the second version negotiation phase of the lineGetDevCaps function.
An Extension ID is a globally unique identifier. There is no central registry for Extension IDs. Instead, they are generated locally by the manufacturer by a utility that is available with the toolkit. The number is made up parts such as a (unique) LAN address, time of day, random number, to guarantee global uniqueness. Globally Unique Identifiers are are designed to be distinguishable from HP/DEC universally unique identifiers and are thus fully compatible with them.
The LINEADDRESSCAPFLAGS bit flag constants describe various BOOLEAN address capabilities provided as part of the LINEADDRESSCAPS data structure.
LINEADDRCAPFLAGS_FWDNUMRINGS | 0x00000001 |
LINEADDRCAPFLAGS_PICKUPGROUPID | 0x00000002 |
LINEADDRCAPFLAGS_SECURE | 0x00000004 |
LINEADDRCAPFLAGS_BLOCKIDDEFAULT | 0x00000008 |
LINEADDRCAPFLAGS_BLOCKIDOVERRIDE | 0x00000010 |
LINEADDRCAPFLAGS_DIALED | 0x00000020 |
LINEADDRCAPFLAGS_ORIGOFFHOOK | 0x00000040 |
LINEADDRCAPFLAGS_DESTOFFHOOK | 0x00000080 |
LINEADDRCAPFLAGS_FWDCONSULT | 0x00000100 |
LINEADDRCAPFLAGS_SETUPCONFNULL | 0x00000200 |
LINEADDRCAPFLAGS_AUTORECONNECT | 0x00000400 |
LINEADDRCAPFLAGS_COMPLETIONID | 0x00000800 |
LINEADDRCAPFLAGS_TRANSFERHELD | 0x00001000 |
LINEADDRCAPFLAGS_TRANSFERMAKE | 0x00002000 |
LINEADDRCAPFLAGS_CONFERENCEHELD | 0x00004000 |
LINEADDRCAPFLAGS_CONFERENCEMAKE | 0x00008000 |
LINEADDRCAPFLAGS_PARTIALDIAL | 0x00010000 |
LINEADDRCAPFLAGS_FWDSTATUSVALID | 0x00020000 |
LINEADDRCAPFLAGS_FWDINTEXTADDR | 0x00040000 |
LINEADDRCAPFLAGS_FWDBUSYNAADDR | 0x00080000 |
Values | The LINEADDRCAPFLAGS constants have the following values. |
LineAddrCapFlags_fwdNumRings | Specifies whether or not the number of rings for a no answer can be specified when forwarding calls on no answer. If TRUE, then the valid range is provided in LINEADDRESSCAPS. |
LineAddrCapFlags_pickupGroupID | Specifies whether or not a group ID is required for call pickup. |
LineAddrCapFlags_secure | Specifies whether or not calls on this address can be made secure at call setup time. |
LineAddrCapFlags_blockIDDefault | Specifies whether the network by default sends or blocks caller ID information when making a call on this address. If TRUE, then ID information is blocked by default; if FALSE, then ID information is transmitted by default. |
LineAddrCapFlags_blockIDOverride | Specifies whether or not the default setting for sending or blocking of caller ID information can be overridden per call. If TRUE, override is possible; if FALSE, override is not possible. |
LineAddrCapFlags_dialed | Specifies whether or not a destination address can be dialed on this address for making a call. TRUE if a destination address must be dialed; FALSE if the destination address is fixed (e.g., a "hot phone"). |
LineAddrCapFlags_origOffHook | Specifies whether or not the originating party's phone can automatically be taken offhook when making calls. |
LineAddrCapFlags_destOffHook | Specifies whether or not the called party's phone can automatically be forced offhook when making calls. |
LineAddrCapFlags_fwdConsult | Specifies whether or not call forwarding involves the establishment of a consultation call. |
LineAddrCapFlags_setupConfNull | Specifies whether or not setting up a conference call starts out with an initial call (FALSE) or with no initial call (TRUE). |
LineAddrCapFlags_autoReconnect | Specifies whether or not dropping a consultation call automatically reconnects to the call on consultation hold. TRUE if reconnect happens automatically, FALSE otherwise. |
LineAddrCapFlags_completionID | Specifies whether or not the completion IDs returned by lineCompleteCall are useful and unique. TRUE is useful; FALSE otherwise. |
LineAddrCapFlags_transferHeld | Specifies whether or not a (hard) held call can be transferred. Often, only calls on consultation hold may be able to be transferred. |
LineAddrCapFlags_transferMake | Specifies whether or not an entirely new call can be established for use as a consultation call on transfer. |
LineAddrCapFlags_conferenceHeld | Specifies whether or not a (hard) held call can be conferenced to. Often, only calls on consultation hold may be able to be added to as a conference call. |
LineAddrCapFlags_conferenceMake | Specifies whether or not an entirely new call can be established for use as a consultation call (to add) on conference. |
LineAddrCapFlags_partialDial | Specifies whether or not partial dialing is available. |
LineAddrCapFlags_fwdStatusValid | Specifies whether or not the forwarding status in the LINEADDRESSSTATUS structure for this address is valid or is at most a "best estimate" given absence of accurate confirmation by the switch or network. |
LineAddrCapFlags_fwdIntExtAddr | Specifies whether or not internal and externals calls can be forwarded to different forwarding addresses. This flags is only meaningful if forwarding of internal and external calls can be controlled separately. This flag is TRUE if internal and external calls can be forwarded to different destination addresses; FALSE otherwise. |
LineAddrCapFlags_fwdBusyNAAddr | Specifies whether or not call forwarding for busy and no answer can use different forwarding addresses. This flags is only meaningful if forwarding for busy and no answer can be controlled separately. This flag is TRUE if forwarding for busy and no answer can use different destination addresses; FALSE otherwise. |
Extensibility | None. All 32 bits are reserved. |
Comments | None. |
See Also | Data Types: LINEADDRESSCAPS |
The LINEADDRESSCAPS structure describes the capabilities of a specified address.
Typedef struct lineaddresscaps_tag { |
DWORD | dwTotalSize; |
DWORD | dwNeededSize; |
DWORD | dwUsedSize; |
DWORD | dwLineDeviceID; |
DWORD | dwAddressSize; |
DWORD | dwAddressOffset; |
DWORD | dwDevSpecificSize; |
DWORD | dwDevSpecificOffset; |
DWORD | dwAddressSharing; |
DWORD | dwAddressStates; |
DWORD | dwCallInfoStates; |
DWORD | dwCallerIDFlags; |
DWORD | dwCalledIDFlags; |
DWORD | dwConnectedIDFlags; |
DWORD | dwRedirectionIDFlags; |
DWORD | dwRedirectingIDFlags; |
DWORD | dwCallStates; |
DWORD | dwDialToneModes; |
DWORD | dwBusyModes; |
DWORD | dwSpecialInfo; |
DWORD | dwDisconnectModes; |
DWORD | dwMaxNumActiveCalls; |
DWORD | dwMaxNumOnHoldCalls; |
DWORD | dwMaxNumOnHoldPendingCalls; |
DWORD | dwMaxNumConference; |
DWORD | dwAddrCapFlags; |
DWORD | dwCallFeatures; |
DWORD | dwRemoveFromConfCaps; |
DWORD | dwTransferModes; |
DWORD | dwParkModes; |
DWORD | dwForwardModes; |
DWORD | dwMaxForwardEntries; |
DWORD | dwMaxSpecificEntries; |
DWORD | dwMinFwdNumRings; |
DWORD | dwMaxFwdNumRings; |
DWORD | dwMaxCallCompletions; |
DWORD | dwCallCompletionConds; |
DWORD | dwCallCompletionModes; |
DWORD | dwNumCompletionMessages; |
DWORD | dwCompletionMsgTextEntrySize; |
DWORD | dwCompletionMsgTextSize; |
DWORD | dwCompletionMsgTextOffset; |
Fields | The LINEADDRESSCAPS structure contains the following fields: |
dwTotalSize | The total size in bytes allocated to this data structure. |
DwNeededSize | The size in bytes for this data structure that is needed to hold all the returned information. |
DwUsedSize | The size in bytes of this data structure that contains useful information. |
DwLineDeviceID | Specifies the device ID of the line device with which this address is associated. |
DwAddressSize dwAddressOffset | The size in bytes and the offset from the beginning of this data structure in bytes of the variable sized address field. |
DwDevSpecificSize dwDevSpecificOffset | The size in bytes and the offset in bytes from the beginning of this data structure of the variable sized device specific field. |
DwAddressSharing | Specifies the sharing mode of the address. Values are: |
LINEADDRESSSHARING_ PRIVATE | An address with private sharing mode is only assigned to a single line or station. |
LINEADDRESSSHARING_ BRIDGEDEXCL | An address with a bridged-exclusive sharing mode is assigned to one or more other lines or stations. The exclusive portion refers to the fact that only one of the bridged parties can be connected with a remote party at any given time. |
LINEADDRESSSHARING_ BRIDGEDNEW | An address with a bridged-new sharing mode is assigned to one or more other lines or stations. The new portion refers to the fact that activities by the different bridged parties result in the creation of new calls on the address. |
LINEADDRESSSHARING_ BRIDGEDSHARED | An address with a bridged-shared sharing mode is also assigned to one or more other lines or stations. The shared portion refers to the fact that if one of the bridged parties is connected with a remote party, the remaining bridged parties can share in the conversation (as in a conference) by activating that call appearance. |
LINEADDRESSSHARING_ MONITORED | An address with a monitored address mode simply monitors the status of that address. The status is either idle or in use. The message LINE_ADDRESSSTATE notifies the application about these changes.LINEADDRESSSTATE. Values are: |
LINEADDRESSSTATE_ OTHER | A status item or multiple items in the address' status not listed below have changed. The app should check the current address status to determine which items have changed. |
LINEADDRESSSTATE_ DEVSPECIFIC | The device specific item of the address status has changed. |
LINEADDRESSSTATE_ INUSEZERO | The address has changed to idle; i.e., it is now in use by zero stations. |
LINEADDRESSSTATE_ INUSEONE | The address has changed from being idle or from being in use by many bridged stations to being in use by just one station. |
LINEADDRESSSTATE_ INUSEMANY | The monitored or bridged address has changed to being in use by one station to being used by more than one station. |
LINEADDRESSSTATE_ NUMCALLS | The number of calls on the address has changed. This is the result of either a new inbound call, or an outbound call on the address, a call changing its hold status, etc. |
LINEADDRESSSTATE_ FORWARD | The forwarding status of the address has changed including the number of rings for determining a no answer condition. The app should check the address status to determine details about the address' current forwarding status. |
LINEADDRESSSTATE_ TERMINALS | The terminal settings for the address have changed |
dwAddressStates | This field contains the address states changes for which the application may get notified via the LINE_ADDRESSSTATE callback message, of type . |
dwCallInfoStates | This field describes the call info elements that are meaningful for all calls on this address, of type LINECALLINFOSTATE. An app may get notified about changes in some of these states via LINE_CALLINFO messages. Values are: |
LINECALLINFOSTATE_ OTHER | An other information item in the call information not listed below has changed. |
LINECALLINFOSTATE_ DEVSPECIFIC | The device specific field of the call information record. |
LINECALLINFOSTATE_ BEARERMODE | The bearer mode field of the call information record. |
LINECALLINFOSTATE_ RATE | The rate field of the call information record. |
LINECALLINFOSTATE_ MEDIAMODE | The media mode field of the call information record. |
LINECALLINFOSTATE_ APPSPECIFIC | The app specific field of the call information record. |
LINECALLINFOSTATE_ CALLID | The call ID field of the call information record. |
LINECALLINFOSTATE_ RELATEDCALLID | The related call ID field of the call information record. |
LINECALLINFOSTATE_ ORIGIN | The origin field of the call information record. |
LINECALLINFOSTATE_ REASON | The reason field of the call information record. |
LINECALLINFOSTATE_ COMPLETIONID | The completion ID field of the call information record. |
LINECALLINFOSTATE_ NUMOWNERINCR | The number of owner field in the call information record was increased. |
LINECALLINFOSTATE_ NUMOWNERDECR | The number of owner field in the call information record was decreased. |
LINECALLINFOSTATE_ NUMMONITORS | The number of monitors field in the call information record has changed. |
LINECALLINFOSTATE_ TRUNK | The trunk field of the call information record. |
LINECALLINFOSTATE_ CALLERID | One of the callerID-related fields of the call information record. |
LINECALLINFOSTATE_ CALLEDID | One of the calledID-related fields of the call information record. |
LINECALLINFOSTATE_ CONNECTEDID | One of the connectedID-related fields of the call information record. |
LINECALLINFOSTATE_ REDIRECTIONID | One of the redirectionID-related fields of the call information record. |
LINECALLINFOSTATE_ REDIRECTINGID | One of the redirectingID-related fields of the call information record. |
LINECALLINFOSTATE_ DISPLAY | The display field of the call information record. |
LINECALLINFOSTATE_ USERUSERINFO | The user-to-user information of the call information record. |
LINECALLINFOSTATE_ HIGHLEVELCOMP | The high level compatibility field of the call information record. |
LINECALLINFOSTATE_ LOWLEVELCOMP | The low level compatibility field of the call information record. |
LINECALLINFOSTATE_ CHARGINGINFO | The charging information of the call information record. |
LINECALLINFOSTATE_ TERMINAL | The terminal mode information of the call information record. |
LINECALLINFOSTATE_ DIALPARAMS | The dial parameters of the call information record. |
LINECALLINFOSTATE_ MONITORMODES | One or more of the digit, tone, or media monitoring fields in the call information record. |
DwCallerIDFlags dwCalledIDFlags dwConnectedIDFlags dwRedirectionIDFlags dwRedirectingIDFlags | These fields describe the various party ID information flavors that may be provided for calls on this address, of type LINECALLPARTYID. Values are: |
LINECALLPARTYID_ BLOCKED | Caller ID information for the call has been blocked by the caller, but would otherwise have been available. |
LINECALLPARTYID_ OUTOFAREA | Caller ID information for the call is not available as it is not propagated all the way by the network. |
LINECALLPARTYID_ NAME | The caller ID information for the call is the caller's name (from a table maintained inside the switch). It is provided in the caller ID name variable size field. |
LINECALLPARTYID_ ADDRESS | The caller ID information for the call is the caller's number, and is provided via the caller ID variable size field. |
LINECALLPARTYID_ PARTIAL | Caller ID information for the call is valid, but is limited to partial number information. |
LINECALLPARTYID_ UNKNOWN | Caller ID information is currently unknown, it may become known later. |
LINECALLPARTYID_ UNAVAIL | Caller ID information is unavailable and will not become known later. |
DwCallStates | This field describes the various call states that can possibly be reported for calls on this address, of type LINECALLSTATE. Values are: |
LINECALLSTATE_ IDLE | The call is idle - no call actually exists. |
LINECALLSTATE_ OFFERING | The call is being offered to the station, signaling the arrival of a new call. In some environments, a call in the offering state does not automatically alert the user; alerting is done by the switch instructing the line to ring, it does not affect any call states. |
LINECALLSTATE_ ACCEPTED | The call was offering and has been accepted. This indicates to other (monitoring) applications that the current owner application has claimed responsibility for answering the call. In ISDN, this also initiates alerting to both parties. |
LINECALLSTATE_ DIALTONE | The call is receiving a dial tone from the switch, which means that the switch is ready to receive a dialed number. |
LINECALLSTATE_ DIALING | Destination address information (a phone number) is being sent to the switch via the call. Note that the operation lineGenerateDigits does not place the line into the dialing state. |
LINECALLSTATE_ RINGBACK | The call is receiving ringback from the called address. Ringback indicates that the other station has been reached and is being alerted. |
LINECALLSTATE_ BUSY | The call is receiving a busy tone. Busy tone indicates that the call cannot be completed - either a circuit (trunk) or the remote party's station are in use. |
LINECALLSTATE_ SPECIALINFO | Special information is sent by the network. Special information is typically sent when the destination cannot be reached. |
LINECALLSTATE_ CONNECTED | The call has been established, the connection is made. Information is able to flow over the call between the originating address and the destination address. |
LINECALLSTATE_ PROCEEDING | Dialing has completed and the call is proceeding through the switch or telephone network. |
LINECALLSTATE_ ONHOLD | The call is on hold by the switch. |
LINECALLSTATE_ CONFERENCED | The call is currently a member of a multi-party conference call. |
LINECALLSTATE_ ONHOLDPENDCONF | The call is currently on hold while it is being added to a conference. |
LINECALLSTATE_ ONHOLDPENDTRANSF | The call is currently on hold awaiting transfer to another number. |
LINECALLSTATE_ DISCONNECTED | The remote party has disconnected from the call. |
LINECALLSTATE_ UNKNOWN | The state of the call is not known. This may be due to limitations of the call progress detection implementation. |
DwDialToneModes | This field describes the various dialtone modes that can possibly be reported for calls made on this address, of type LINEDIALTONEMODE. This field is only meaningful if the dialtone call state can be reported. Values are: |
LINEDIALTONEMODE_ NORMAL | This is a "normal" dialtone which typically is a continuous tone. |
LINEDIALTONEMODE_ SPECIAL | This is a special dialtone indicating a certain condition is currently in effect. |
LINEDIALTONEMODE_ INTERNAL | This an internal (e.g., PBX) dialtone. |
LINEDIALTONEMODE_ EXTERNAL | This is an external (e.g., public network) dialtone. |
LINEDIALTONEMODE_ UNKNOWN | The dialtone mode is currently known, but may become known later. |
LINEDIALTONEMODE_ UNAVAIL | TwBusyModes |
This field describes the various busy modes that can possibly be reported for calls made on this address, of type LINEBUSYMODE. This field is only meaningful of the busy call state can be reported. Values are:
LINEBUSYMODE_ STATION | The busy signal indicates that the called party's station is busy. This is usually signaled via a "normal" busy tone. |
LINEBUSYMODE_ TRUNK | The busy signal indicates that a trunk or circuit is busy. This is usually signaled via a "long" busy tone. |
LINEBUSYMODE_ UNKNOWN | The busy signal's specific mode is currently unkown, but may become known later. |
LINEBUSYMODE_ UNAVAIL | The busy signal's specific mode is unavailable and will not become known. |
DwSpecialInfo | This field describes the various special information flavors that can possibly be reported for calls made on this address, of type LINESPECIALINFO. This field is only meaningful of the specialInfo call state can be reported. Values are: |
LINESPECIALINFO_ NOCIRCUIT | This special information tone preceeds a no circuit or emergency announcement (trunk blockage category). |
LINESPECIALINFO_ CUSTIRREG | This special information tone preceeds a vacant number, AIS, Centrex number change and non-working station, access code not dialed or dialed in error, manual intercept operator message (customer irregularity category). |
LINESPECIALINFO_ REORDER | This special information tone preceeds a reorder announcement (equipment irregularity category). |
LINESPECIALINFO_ UNKNOWN | Specific about the special information tone are currently unknown but may become known later. |
LINESPECIALINFO_ UNAVAIL | Specifics about the special information tone are unavailable, and will not become known. |
DwDisconnectModes | This field describes the various disconnect modes that can possibly be reported for calls made on this address, of type LINEDISCONNECTMODE. This field is only meaningful of the disconnected call state can be reported. Values are: |
LINEDISCONNECTMODE_ NORMAL | This is a "normal" disconnect request by the remote party, the call was terminated normally. |
LINEDISCONNECTMODE_ UNKNOWN | The reason for the disconnect request is unknown. |
LINEDISCONNECTMODE_ REJECT | The remote user has rejected the call. |
LINEDISCONNECTMODE_ PICKUP | The call was picked up from elsewhere. |
LINEDISCONNECTMODE_ FORWARDED | The call was forwarded by the switch. |
LINEDISCONNECTMODE_ BUSY | The remote user's station is busy. |
LINEDISCONNECTMODE_ NOANSWER | The remote user's station does not answer. |
LINEDISCONNECTMODE_ BADADDRESS | The destination address in invalid. |
LINEDISCONNECTMODE_ UNREACHABLE | The remote user could not be reached. |
LINEDISCONNECTMODE_ CONGESTION | The network is congested. |
LINEDISCONNECTMODE_ INCOMPATIBLE | The remote user's station equipment is incompatible for the type of call requested. |
LINEDISCONNECTMODE_ UNAVAIL | The remote user's station equipment is incompatible for the type of call requested. |
DwMaxNumActiveCalls | This field contains the maximum number of active call appearances that the address can handle. This number does not include calls on hold or on hold pending transfer or conference. |
DwMaxNumOnHoldCalls | This field contains the maximum number of call appearances at the address that can be on hold. |
DwMaxNumOnHoldPendingCalls | This field contains the maximum number of call appearances at the address that can be on hold pending transfer or conference. |
DwMaxNumConference | This field contains the maximum number of parties that can be conferenced in a single conference call on this address. |
DwAddrCapFlags | This field contains a series of packed bit flags that describe a variety of address capabilities, of type LINEADDRCAPFLAGS. Values are: |
LINEADDRCAPFLAGS_ FWDNUMRINGS | Specifies whether or not the number of rings for a no answer can be specified when forwarding calls on no answer. |
LINEADDRCAPFLAGS_ PICKUPGROUPID | Specifies whether or not a group ID is required for call pickup. |
LINEADDRCAPFLAGS_ SECURE | Specifies whether or not calls on this address can be made secure at call setup time. |
LINEADDRCAPFLAGS_ BLOCKIDDEFAULT | Specifies whether the network by default sends or blocks caller ID information when making a call on this address. If TRUE, then ID information is blocked by default; if FALSE, then ID information is transmitted by default. |
LINEADDRCAPFLAGS_ BLOCKIDOVERRIDE | Specifies whether or not the default setting for sending or blocking of caller ID information can be overridden per call. If TRUE, override is possible; if FALSE, override is not possible. |
LINEADDRCAPFLAGS_ DIALED | Specifies whether or not an destination address can be dialed on this address for making a call. TRUE if a destination address must be dialed; FALSE if the destination address is fixed (e.g., a "hot phone"). |
LINEADDRCAPFLAGS_ ORIGOFFHOOK | Specifies whether or not the originating party's phone can automatically be taken offhook when making calls. |
LINEADDRCAPFLAGS_ DESTOFFHOOK | Specifies whether or not the called party's phone can automatically be forced offhook when making calls. |
LINEADDRCAPFLAGS_ FWDCONSULT | Specifies whether or not call forwarding involves the establishment of a consultation call. |
LINEADDRCAPFLAGS_ SETUPCONFNULL | Specifies whether or not setting up a conference call starts out with an initial call (FALSE) or with no initial call (TRUE). |
LINEADDRCAPFLAGS_ AUTORECONNECT | Specifies whether or not dropping a consultation call automatically reconnects to the call on consultation hold. TRUE if reconnect happens automatically, FALSE otherwise. |
LINEADDRCAPFLAGS_ COMPLETIONID | Specifies whether or not the completion IDs returned by lineCompleteCall are useful and unique. TRUE is useful; FALSE otherwise. |
LINEADDRCAPFLAGS_ TRANSFERHELD | Specifies whether or not a (hard) held call can be transferred. Often, only calls on consultation hold may be able to be transferred. |
LINEADDRCAPFLAGS_ CONFERENCEHELD | Specifies whether or not a (hard) held call can be conferenced to. Often, only calls on consultation hold may be able to be added to as a conference call. |
LINEADDRCAPFLAGS_ PARTIALDIAL | Specifies whether or not partial dialing is available. |
LINEADDRCAPFLAGS_ FWDSTATUSVALID | Specifies whether or not the forwarding status in the LINEADDRESSSTATUS structure for this address is valid. |
LINEADDRCAPFLAGS_ FWDINTEXTADDR | Specifies whether or not internal and externals calls can be forwarded to different forwarding addresses. This flags is only meaningful if forwarding of internal and external calls can be controlled separately. This flag is TRUE if internal and external calls can be forwarded to different destination addresses; FALSE otherwise. |
LINEADDRCAPFLAGS_ FWDBUSYNAADDR | Specifies whether or not call forwarding for busy and no answer can use different forwarding addresses. This flags is only meaningful if forwarding for busy and no answer can be controlled separately. This flag is TRUE if forwarding for busy and no answer can be use different destination addresses; FALSE otherwise. |
DwCallFeatures | This field specifies the switching capabilities or features available for all calls on this address, of type LINECALLFEATURE. Invoking a supported feature requires the call to be in the proper state and the underlying line device to be opened in a compatible mode. A zero in a bit position indicates that the corresponding feature is never available; a one indicates that the corresponding feature may be available if the app has the right privileges to the call, and the call is in the appropriate state for the operation to be meaningful. This field allow an aplication to discover early on which call features can be and which can never be supported by the address. |
DwRemoveFromConfCaps | This field specifies the address' capabilities for removing calls from a conference call, of type LINEREMOVEFROMCONF. Values are: |
LINEREMOVEFROMCONF_ NONE | Parties cannot be removed from the conference call. |
LINEREMOVEFROMCONF_ LAST | Only the most recently added party can be removed from the conference call. |
LINEREMOVEFROMCONF_ ANY | Any participating party can be removed from the conference call. |
DwTransferModes | This field specifies the address' capabilities for resolving transfer requests, of type LINETRANSFERMODE. Values are: |
LINETRANSFERMODE_ TRANSFER | Resolve the initiated transfer by transferring the initial call to the consultation call. |
LINETRANSFERMODE_ CONFERENCE | Resolve the initiated transfer by conferencing all three parties into a three-way conference call. A conference call is created and returned to the application. |
DwParkModes | Specifies the different call park modes available at this address, of type LINEPARKMODE. Values are: |
LINEPARKMODE_ DIRECTED | Specifies directed call park. The address where the call is to be parked must be supplied to the switch. |
LINEPARKMODE_ NONDIRECTED | Specifies non directed call park. The address where the call is parked is selected by the switch and provided by the switch to the application. |
DwForwardModes | Specifies the different modes of forwarding available for this address, of type LINEFORWARDMODE. Values are: |
LINEFORWARDMODE_ UNCOND | Forward all calls unconditionally irrespective of their origin. Use this value when unconditional forwarding for internal and external calls cannot be controlled separately. Unconditional forwarding overrides forwarding on busy and/or no answer conditions. |
LINEFORWARDMODE_ UNCONDINTERNAL | Forward all internal calls unconditionally. Use this value when unconditional forwarding for internal and external calls can be controlled separately. |
LINEFORWARDMODE_ UNCONDEXTERNAL | Forward all external calls unconditionally. Use this value when unconditional forwarding for internal and external calls can be controlled separately. |
LINEFORWARDMODE_ UNCONDSPECIFIC | Forward all calls that originated at a specified address unconditionally (selective call forwarding). |
LINEFORWARDMODE_ BUSY | Forward all calls on busy irrespective of their origin. Use this value when forwarding for internal and external calls on busy and no answer cannot be controlled separately. |
LINEFORWARDMODE_ BUSYINTERNAL | Forward all internal calls on busy. Use this value when forwarding for internal and external calls on busy and no answer can be controlled separately. |
LINEFORWARDMODE_ BUSYEXTERNAL | Forward all external calls on busy. Use this value when forwarding for internal and external calls on busy and no answer can be controlled separately. |
LINEFORWARDMODE_ BUSYSPECIFIC | Forward all calls that originated at a specified address on busy (selective call forwarding). |
LINEFORWARDMODE_ NOANSW | Forward all calls on no answer irrespective of their origin. Use this value when call forwarding for internal and external calls on no answer cannot be controlled separately. |
LINEFORWARDMODE_ NOANSWINTERNAL | Forward all internal calls on no answer. Use this value when forwarding for internal and external calls on no answer can be controlled separately. |
LINEFORWARDMODE_ NOANSWEXTERNAL | Forward all external calls on no answer. Use this value when forwarding for internal and external calls on no answer can be controlled separately. |
LINEFORWARDMODE_ NOANSWSPECIFIC | Forward all calls that originated at a specified address on no answer (selective call forwarding). |
LINEFORWARDMODE_ BUSYNA | Forward all calls on busy/no answer irrespective of their origin. Use this value when forwarding for internal and external calls on busy and no answer cannot be controlled separately. |
LINEFORWARDMODE_ BUSYNAINTERNAL | Forward all internal calls on busy/no answer. Use this value when call forwarding on busy and no answer cannot be controlled separately for internal calls. |
LINEFORWARDMODE_ BUSYNAEXTERNAL | Forward all external calls on busy/no answer. Use this value when call forwarding on busy and no answer cannot be controlled separately for internal calls. |
LINEFORWARDMODE_ BUSYNASPECIFIC | Forward all calls that originated at a specified address on busy/no answer (selective call forwarding). |
DwMaxCallCompletions | Specifies the maximum number of concurrent call completion requests can be outstanding on this line device. Zero implies that call completion is not available. |
DwCallCompletionCond | Specifies the different call conditions under which call completion can be requested, of type LINECALLCOMPLCOND. Values are: |
LINECALLCOMPLCOND_ BUSY | Complete the call under the busy condition. |
LINECALLCOMPLCOND_ NOANSWER | Complete the call under the ringback no answer condition. |
DwCallCompletionModes | Specifies the way in which the call can be completed, of type LINECALLCOMPLMODE. Values are: |
LINECALLCOMPLMODE_ CAMPON | Queues the call until the call can be completed. |
LINECALLCOMPLMODE_ CALLBACK | Requests the called station to return the call when it returns to idle. |
LINECALLCOMPLMODE_ INTRUDE | Adds the app to the existing call at the called station if busy (barge in). |
LINECALLCOMPLMODE_ MESSAGE | Leave a short predefined message for the called station (Leave Word Calling). A specific message can be identified. |
DwNumCompletionMessages | Specifies the number of call completion messages that can be selected from when using the LINECALLCOMPLMODE_MESSAGE option. Individual messages are identified by values in the range 0 through dwNumCompletionMessages - 1. |
DwCompletionMsgTextEntrySize | Specifies the size in bytes of each of the call completion text descriptions pointed at by dwCompletionMsgTextSize/Offset. |
DwCompletionMsgTextSize | |
dwCompletionMsgTextOffset | The size in bytes and the offset from the beginning of this data structure in bytes of the variable sized field containing descriptive text about each of the call completion messages. Each message is dwCompletionMsgTextEntrySize bytes long. The string format of these textual descriptions is indicated by dwStringFormat in the line's device capabilities. |
Extensibility. | Device specific extensions should use the DevSpecific (dwDevSpecificSize and dwDevSpecificOffset) variable sized area of this data structure |
Comments. | None |
See Also Functions: | lineGetAddressCaps |
Data Types: | LINEADDRESSMODE, LINEBEARERMODE, LINEMEDIAMODE, LINECALLFEATURE, LINEFORWARDMODE, LINECALLORIGIN, LINEPARKMODE, LINECALLCOMPLCOND, LINECALLCOMPLMODE |
The LINEADDRESSMODE bit flag constants describe various ways of identifying an address on a line device.
LINEADDRESSMODE_ADDRESSID0x00000001
LINEADDRESSMODE_DIALABLEADDR 0x00000002
Values The LINEADDRESSMODE constants have the following values.
LineAddressMode_addressID The address is specified via a small integer in the range 0 to dwNumAddresses - 1, where dwNumAddresses is the value in the line's device capabilities.
LineAddressMode_dialableAddr The address is specified via its phone number.
Extensibility The high order 16 bits can be assigned for device specific extensions. The low order 16 bits are reserved.
Comments This data type is used to select an address on a line on which to originate a call. The usual model would select the address by means of its address ID. Address IDs are the mechanism used to identify addresses throughout the API. However, in some environments when making a call it is often more practical to identify a call's originating address by phone number rather than by address ID. One example is in the possible modeling of large numbers of stations (third party) on the switch by means of one line device with lots of addresses. The line represents the set of all stations, and each station is mapped to an address with its own primary phone number and address ID.
See AlsoFunctions: lineMakeCall, lineGetAddressCaps
Data Types: LINEADDRESSCAPS
LINEADDRESSSHARING
The LINEADDRESSSHARING bit flag constants describe various ways an address can be shared between lines.
LINEADDRESSSHARING_PRIVATE0x00000001
LINEADDRESSSHARING_BRIDGEDEXCL0x00000002
LINEADDRESSSHARING_BRIDGEDNEW0x00000004
LINEADDRESSSHARING_BRIDGEDSHARED0x00000008
LINEADDRESSSHARING_MONITORED0x00000010
Values | The LINEADDRESSSHARING constants have the following values. |
LineAddressSharing_private | The address is private to the user's line, it is not assigned to any other station. |
LineAddressSharing_bridgedExcl | The address is bridged to one or more other stations. The first line to activate a call on the line will have exclusive access to the address and calls that may exist on it, other lines will no be able to use the bridged address while in use. |
LineAddressSharing_bridgedNew | The address is bridged with one or more other stations. The first line to activate a call on the line will have exclusive access to only the corresponding call. Other apps that use the address will result in new and separate call appearances. |
LineAddressSharing_bridgedShared | The address is bridged with one or more other lines. All bridged parties can share in calls on the address which then functions as a conference. |
LineAddressSharing_monitored | This is an address whose idle/busy status is made available to this line. |
Extensibility | The high order 16 bits can be assigned for device specific extensions. The low order 16 bits are reserved. |
Comments | The way in which an address is shared across lines affects to some extent the behavior of that address. LINE_CALLSTATE and LINE_ADDRESSSTATE messages are sent to the application also in response to activities by the bridging stations. It is via these messages that an application can track the status of the address. |
See AlsoData Types: | LINEADDRESSCAPS |
LINEADDRESSSTATE
The LINEADDRESSSTATE bit flag constants describe various address status items.
LINEADDRESSSTATE_OTHER0x00000001
LINEADDRESSSTATE_DEVSPECIFIC0x00000002
LINEADDRESSSTATE_INUSEZERO0x00000004
LINEADDRESSSTATE_INUSEONE0x00000008
LINEADDRESSSTATE_INUSEMANY0x00000010
LINEADDRESSSTATE_NUMCALLS0x00000020
LINEADDRESSSTATE_FORWARD0x00000040
LINEADDRESSSTATE_TERMINALS0x00000080
Values | The LINEADDRESSSTATE constants have the following values. |
LineAddressState_other | An status item or multiple items in the address' status not listed below have changed. The app should check the current address status to determine which items have changed. |
LineAddressState_devSpecific | The device specific item of the address status has changed. |
LineAddressState_inUseZero | The address has changed to idle; i.e., it is now in use by zero stations. |
LineAddressState_inUseOne | The address has changed from being idle or from being in use by many bridged stations to being in use by just one station. |
LineAddressState_inUseMany | The monitored or bridged address has changed to being in use by one station to being used by more than one station. |
LineAddressState_numCalls | The number of calls on the address has changed. This is the result of either a new inbound call, or an outbound call on the address, a call changing its hold status, etc. |
LineAddressState_forward | The forwarding status of the address has changed, including possibly the number of rings for determining a no answer condition. The app should check the address status to determine details about the address' current forwarding status. |
LineAddressState_terminals | The terminal settings for the address have changed. |
Extensibility | None. All 32 bits are reserved. |
Comments | An application is notified about changes to these status items via the LINE_ADDRESSSTATUS message. The address' device capabilities indicate which address state changes can possibly be reported for this address. |
See AlsoMessages: | LINE_ADDRESSSTATUS |
Data Types: | LINEADDRESSCAPS |
LINEADDRESSSTATUS
The LINEADDRESSSTATUS structure describes the current status of an address.
typedef struct lineaddressstatus_tag {
DWORDdwTotalSize;
DWORDdwNeededSize;
DWORDdwUsedSize;
DWORDdwNumInUse;
DWORDdwNumActiveCalls;
DWORDdwNumOnHoldCalls;
DWORDdwNumOnHoldPendCalls;
DWORDdwAddressFeatures;
DWORDdwNumRingsNoAnswer;
DWORDdwForwardNumEntries;
DWORDdwForwardSize;
DWORDdwForwardOffset;
DWORDdwTerminalModesSize;
DWORDdwTerminalModesOffset;
DWORDdwDevSpecificSize;
DWORDdwDevSpecificOffset;
} LINEADDRESSSTATUS, FAR *LPLINEADDRESSSTATUS;
Fields: | The LINEADDRESSSTATUS structure contains the following fields |
dwTotalSize | The total size in bytes allocated to this data structure. |
DwNeededSize | The size in bytes for this data structure that is needed to hold all the returned information. |
DwUsedSize | The size in bytes of this data structure that contains useful information. |
DwNumInUse | Specifies the number stations that are currently using the address. |
DwNumCalls | Specifies the number of calls that currently exist on the address. If zero, then no calls exist, and the address is idle. |
DwAddressFeatures | This field specifies the address-related API functions that can be invoked on the address in its current state, of type LINEADDRFEATURE. Values are: |
LINEADDRFEATURE_FORWARD | The address can be forwarded. |
LINEADDRFEATURE_MAKECALL | An outbound call can placed on the address. |
LINEADDRFEATURE_PICKUP | A call can be picked up at the address. |
LINEADDRFEATURE_SETMEDIACONTROL | Media control can be set on this address. |
LINEADDRFEATURE_SETTERMINAL | The terminal modes for this address can be set. |
LINEADDRFEATURE_SETUPCONF | A conference call with a NULL initial call can be set up at this address. |
LINEADDRFEATURE_UNCOMPLETECALL | Call completion requests can be canceled at his address. |
LINEADDRFEATURE_UNPARK | Calls can be unparked using this address. |
DwNumRingsNoAnswer | Specifies the number of rings set for this address before an unanswered call is considered as no answer. |
DwForwardNumEntries | Specifies the number of entries in the array referred to by dwForwardSize and dwForwardOffset. |
DwForwardOffset dwForwardSize | The size in bytes and the offset in bytes from the beginning of this data structure of the variable sized field that describes the address's forwarding information. This information is an array of dwForwardNumEntries elements, of type LINEFORWARD. The offsets of the addresses in these entries are relative to the beginning of the array. |
DwTerminalModesSize dwTerminalModesOffset | The size in bytes and the offset in bytes from the beginning of this data structure of the variable sized device field containing an array with DWORD-sized entries, of type LINETERMMODE. This array is indexed by terminal IDs, in the range from zero to dwNumTerminals -1. Each entry in the array specifies the current terminal modes for the corresponding terminal set via the lineSetTerminal operation for this address. Values are: |
LINETERMMODE_LAMPS | This are lamp events sent from the line to the terminal. |
LINETERMMODE_BUTTONS | These are button press events sent from the terminal to the line. |
LINETERMMODE_DISPLAY | This is display information sent from the line to the terminal. |
LINETERMMODE_RINGER | This is ringer control information sent from the switch to the terminal. |
LINETERMMODE_HOOKSWITCH | These are hookswitch event sent between the terminal and the line. |
LINETERMMODE_MEDIAFROMTERM | 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_MEDIATOTERM | 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_MEDIABIDIR | 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. |
DwDevSpecificSize dwDevSpecificOffset | The size in bytes and the offset in bytes from the beginning of this data structure of the variable sized device specific field. |
Extensibility | Device specific extensions should use the DevSpecific (dwDevSpecificSize and dwDevSpecificOffset) variable sized area of this data structure. |
Comments | This data structure is returned by lineGetAddressStatus. When items in this data structure change as a consequence of activities on the address, then a LINE_ADDRESSSTATE message is sent to the application. A parameter to this message is the address state, of type LINEADDRESSSTATE, which is an an indication of the status item in this record that changed. |
See AlsoFunctions: | lineGetAddressStatus |
Data Types: | LINETERMMODE, LINEADDRFEATURE |
LINEADDRFEATURE
The LINEADDRFEATURE constants list the operations that can be invoked on an address using this API.
LINEADDRFEATURE_FORWARD0x00000001
LINEADDRFEATURE_MAKECALL0x00000002
LINEADDRFEATURE_PICKUP0x00000004
LINEADDRFEATURE_SETMEDIACONTROL0x00000008
LINEADDRFEATURE_SETTERMINAL0x00000010
LINEADDRFEATURE_SETUPCONF0x00000020
LINEADDRFEATURE_UNCOMPLETECALL0x00000040
LINEADDRFEATURE_UNPARK0x00000080
Values | Each of the LINEADDRFEATURE values correspond to the API operation with the same name. Values are: |
LineAddrFeature_forward | The address can be forwarded. |
LineAddrFeature_makeCall | An outbound call can placed on the address. |
LineAddrFeature_pickup | A call can be picked up at the address. |
LineAddrFeature_setMediaControl | Media control can be set on this address. |
LineAddrFeature_setTerminal | The terminal modes for this address can be set. |
LineAddrFeature_setupConf | A conference call with a NULL initial call can be set up at this address. |
LineAddrFeature_uncompleteCall | Call completion requests can be canceled at his address. |
LineAddrFeature_unpark | Calls can be unparked using this address. |
Extensibility | None. All 32 bits are reserved. |
Comments | This data type is used both in LINEADDRESSCAPS (returned by lineGetAddressCaps) and in LINEADDRESSSTATUS (returned by lineGetAddressStatus). LINEADDRESSCAPS reports the availability of the address features by the service provider (mainly the switch) for a given address. An application would make this determination when it initializes. LINEADDRESSSTATUS reports for a given address which address features can actually be invoked while the address is in the current state. An application would make this determination dynamically, after address state changes, typically caused by call-related activities on the address. |
See AlsoFunctions: | lineGetAddressStatus, lineGetAddressCaps |
Data Types: | LINEADDRESSSTATUS, LINEADDRESSCAPS |
LINEANSWERMODE
The LINEANSWERMODE bit flag constants describe how an existing active call on a line device is affected by answering another offering call on the same line.
LINEANSWERMODE_NONE0x00000001
LINEANSWERMODE_DROP0x00000002
LINEANSWERMODE_HOLD0x00000004 ValuesThe LINEANSWERMODE constants have the following values.
LineAnswerMode_none | Answering another call on the same line has no effect on the existing active call(s) on the line. |
LineAnswerMode_drop | The currently active call will automatically be dropped. |
LineAnswerMode_hold | The currently active call will automatically be placed on hold. |
Extensibility | The high order 16 bits can be assigned for device specific extensions. The low order 16 bits are reserved. |
Comments | If a call comes in (is offered) at the time another call is already active, then the new call is connected to by invoking lineAnswer. The effect this has on the existing active call depends on the line's device capabilities. The first call may be unaffected, it may automatically be dropped, or it may automatically be placed on hold. |
See AlsoData Types: | LINEDEVCAPS |
LINEBEARERMODE
The LINEBEARERMODE bit flag constants describe different bearer modes of a call. When an application makes a call, it can request a specific bearer mode. These modes are used to select a certain quality of service for the requested connection from the underlying telephone network. Bearer modes available on a given line are a device capability of the line.
LINEBEARERMODE_VOICE0x00000001
LINEBEARERMODE_SPEECH0x00000002
LINEBEARERMODE_MULTIUSE0x00000004
LINEBEARERMODE_DATA0x00000008
LINEBEARERMODE_ALTSPEECHDATA0x00000010
LINEBEARERMODE_NONCALLSIGNALING0x00000020
Values | The LINEBEARERMODE constants have the following values. |
LineBearerMode_voice | This is a regular 3.1kHz analog voice grade bearer service. Bit integrity is not assured. Voice can support fax and modem media modes. |
LineBearerMode_speech | This corresponds to G.711 speech transmission on the call. The network may use processing techniques such as analog transmission, echo cancellation and compression/decompression. Bit integrity is not assured. Speech is not intended to support fax and modem media modes. |
LineBearerMode_multiUse | The multi-use mode defined by ISDN. |
LineBearerMode_data | The unrestricted data transfer on the call. The data rate is specified separately. |
LineBearerMode_altSpeechData | The alternate transfer of speech or unrestricted data on the same call (ISDN). |
LineBearerMode_nonCallSignaling | This corresponds to a non call-associated signaling connection from the app to the service provider or switch (treated as a "media stream" by the Telephony API). |
Extensibility | The high order 16 bits can be assigned for device specific extensions. The low order 16 bits are reserved. |
Comments | Note that bearer mode and media mode are different notions. The bearer mode of a call is an indication of the quality of the telephone connection as provided primarily by the network. The media mode of a call is an indication of the type of information stream that is exchanged over that call. Group 3 fax or data modem are media modes that use a call with a 3.1kHz voice bearer mode. |
See AlsoData Types: | LINECALLPARAMS, LINECALLINFO |
LINEBUSYMODE
The LINEBUSYMODE bit flag constants describe different busies that the switch or network may generate. The different busy signals typically indicate that a different resource required to make a call is currently in use.
LINEBUSYMODE_STATION0x00000001
LINEBUSYMODE_TRUNK0x00000002
LINEBUSYMODE_UNKNOWN0x00000004
LINEBUSYMODE_UNAVAIL0x00000008
Values | The LINEBUSYMODE constants have the following values. |
LineBusyMode_station | The busy signal indicates that the called party's station is busy. This is usually signaled via a "normal" busy tone. |
LineBusyMode_trunk | The busy signal indicates that a trunk or circuit is busy. This is usually signaled via a "fast" busy tone. |
LineBusyMode_unkown | The busy signal's specific mode is currently unkown, but may become known later. |
LineBusyMode_unavail | The busy signal's specific mode is unavailable and will not become known. |
Extensibility | The high order 16 bits can be assigned for device specific extensions. The low order 16 bits are reserved. |
Comments | Note that busy signals may be sent as inband tones or out of band messages. The API makes no assumption about the specific signaling mechanism. |
See AlsoData Types: | LINECALLSTATUS |
LINECALLCOMPLCOND
The LINECALLCOMPLCOND bit flag constants describe different ways in which a call can be completed.
LINECALLCOMPLCOND_BUSY0x00000001
LINECALLCOMPLCOND_NOANSWER0x00000002
Values | The LINECALLCOMPLCOND constants have the following values. |
LineCallComplCond_busy | Completion of the call under busy conditions. |
LineCallComplCond_noAnswer | Completion of the call under ringback no answer conditions. |
Extensibility | The high order 16 bits can be assigned for device specific extensions. The low order 16 bits are reserved. |
Comments | None. |
See AlsoFunctions: | lineCompleteCall |
Data Types: | LINEADDRESSCAPS |
LINECALLCOMPLMODE
The LINECALLCOMPLMODE bit flag constants describe different ways in which a call can be completed.
LINECALLCOMPLMODE_CAMPON0x00000001
LINECALLCOMPLMODE_CALLBACK0x00000002
LINECALLCOMPLMODE_INTRUDE0x00000004
LINECALLCOMPLMODE_MESSAGE0x00000008
Values | The LINECALLCOMPLMODE constants have the following values. |
LineCallComplMode_campOn | Queues the call until the call can be completed. |
LineCallComplMode_callBack | Requests the called station to return the call when it returns to idle. |
LineCallComplMode_intrude | Adds the app to the existing call at the called station (barge in). |
LineCallComplMode_message | Leave a short predefined message for the called station (Leave Word Calling). The message to be sent is specified separately. |
Extensibility | The high order 16 bits can be assigned for device specific extensions. The low order 16 bits are reserved. |
Comments | None. |
See AlsoFunctions: | lineCompleteCall |
Data Types: | LINEADDRESSCAPS |
LINECALLFEATURE
The LINECALLFEATURE constants list the operations that can be invoked on a call using this API.
LINECALLFEATURE_ACCEPT0x00000001
LINECALLFEATURE_ADDTOCONF 0x00000002
LINECALLFEATURE_ANSWER0x00000004
LINECALLFEATURE_BLINDTRANSFER0x00000008
LINECALLFEATURE_COMPLETECALL0x00000010
LINECALLFEATURE_COMPLETETRANSF0x00000020
LINECALLFEATURE_DIAL0x00000040
LINECALLFEATURE_DROP0x00000080
LINECALLFEATURE_GATHERDIGITS0x00000100
LINECALLFEATURE_GENERATEDIGITS0x00000200
LINECALLFEATURE_GENERATETONE0x00000400
LINECALLFEATURE_HOLD0x00000800
LINECALLFEATURE_MONITORDIGITS0x00001000
LINECALLFEATURE_MONITORMEDIA0x00002000
LINECALLFEATURE_MONITORTONES0x00004000
LINECALLFEATURE_PARK0x00008000
LINECALLFEATURE_PREPAREADDCONF0x00010000
LINECALLFEATURE_REDIRECT0x00020000
LINECALLFEATURE_REMOVEFROMCONF0x00040000
LINECALLFEATURE_SECURECALL0x00080000
LINECALLFEATURE_SENDUSERUSER0x00100000
LINECALLFEATURE_SETCALLPARAMS0x00200000
LINECALLFEATURE_SETMEDIACONTROL0x00400000
LINECALLFEATURE_SETTERMINAL0x00800000
LINECALLFEATURE_SETUPCONF0x01000000
LINECALLFEATURE_SETUPTRANSFER0x02000000
LINECALLFEATURE_SWAPHOLD0x04000000
LINECALLFEATURE_UNHOLD0x08000000
Values | Each of the LINECALLFEATURE values correspond to the API operation with the same name. The list is not repeated here. |
Extensibility | None. |
Comments | This data type is used both in LINEADDRESSCAPS (returned by lineGetAddressCaps) and in LINECALLSTATUS (returned by lineGetCallStatus). LINEADDRESSCAPS reports the general availability of the call features by the API implementation (mainly the switch) on the specified address. An application would use this information when it initializes in order to determine what it may be able to do later when calls actuall do exist. LINECALLSTATUS reports for the specified call which call features can actually be invoked while the call is in the current call state. The latter takes call privileges into account. An application would make this determination dynamically, after call state changes. |
See AlsoFunctions: | lineGetCallStatus, lineGetAddressCaps |
Messages: | LINE_CALLSTATE |
Data Types: | LINECALLSTATUS, LINEADDRESSCAPS |
LINECALLINFO
The LINECALLINFO structure contains information about a call. This information remains relatively fixed for the duration of the call and is obtained via lineGetCallInfo. If a part of the structure does change, then a LINE_CALLINFO message is sent to the application indicating which information item has changed. Dynamically changing information about a call, such as call progress status, is available via the LINECALLSTATUS structure, returned via the function lineGetCallStatus.
typedef struct linecallinfo_tag {
DWORDdwTotalSize;
DWORDdwNeededSize;
DWORDdwUsedSize;
HLINEhLine;
DWORDdwLineDeviceID;
DWORDdwAddressID;
DWORDdwBearerMode;
DWORDdwRate;
DWORDdwMediaMode;
DWORDdwDestAddressSize;
DWORDdwDestAddressOffset;
DWORDdwAppSpecific;
DWORDdwCallID;
DWORDdwRelatedCallID;
DWORDdwCallParamFlags;
DWORDdwCallStates;
DWORDdwMonitorDigitModes;
DWORDdwNumMonitorTone;
DWORDdwMonitorMediaModes;
LINEDIALPARAMSDialParams;
DWORDdwOrigin;
DWORDdwReason;
DWORDdwCompletionID;
DWORDdwNumOwners;
DWORDdwNumMonitors;
DWORDdwCountryCode;
DWORDdwTrunk;
DWORDdwCallerIDFlags;
DWORDdwCallerIDSize;
DWORDdwCallerIDOffset;
DWORDdwCallerIDNameSize;
DWORDdwCallerIDNameOffset;
DWORDdwCalledIDFlags;
DWORDdwCalledIDSize;
DWORDdwCalledIDOffset;
DWORDdwCalledIDNameSize;
DWORDdwCalledIDNameOffset;
DWORDdwConnectedIDFlags;
DWORDdwConnectedIDSize;
DWORDdwConnectedIDOffset;
DWORDdwConnectedIDNameSize;
DWORDdwConnectedIDNameOffset;
DWORDdwRedirectionIDFlags;
DWORDdwRedirectionIDSize;
DWORDdwRedirectionIDOffset;
DWORDdwRedirectionIDNameSize;
DWORDdwRedirectionIDNameOffset;
DWORDdwRedirectingIDFlags;
DWORDdwRedirectingIDSize;
DWORDdwRedirectingIDOffset;
DWORDdwRedirectingIDNameSize;
DWORDdwRedirectingIDnameOffset;
DWORDdwAppNameSize;
DWORDdwAppNameOffset;
DWORDdwCalledPartySize;
DWORDdwCalledPartyOffset;
DWORDdwCommentSize;
DWORDdwCommentOffset;
DWORDdwDisplaySize;
DWORDdwDisplayOffset;
DWORDdwUserUserInfoSize;
DWORDdwUserUserInfoOffset;
DWORDdwHighLevelCompSize;
DWORDdwHighLevelCompOffset;
DWORDdwLowLevelCompSize;
DWORDdwLowLevelCompOffset;
DWORDdwChargingInfoSize;
DWORDdwChargingInfoOffset;
DWORDdwTerminalModesSize;
DWORDdwTerminalModesOffset;
DWORDdwDevSpecificSize;
DWORDdwDevSpecificOffset;
} LINECALLINFO, FAR *LPLINECALLINFO;
Fields: | The LINECALLINFO structure contains the following fields: |
dwTotalSize | The total size in bytes allocated to this data structure. |
DwNeededSize | The size in bytes for this data structure that is needed to hold all the returned information. |
DwUsedSize | The size in bytes of this data structure that contains useful information. |
HLine | Specifies the handle for the line device with which this call is associated. |
DwLineDeviceID | Specifies the device ID of the line device with which this call is associated. |
DwAddressID | Specifies the address ID of the address on the line on which this call exists. |
DwBearerMode | Specifies the current bearer mode of the call, of type LINEBEARERMODE. Values are: |
LINEBEARERMODE_VOICE | This is a regular 3.1kHz analog voice grade bearer service. Bit integrity is not assured. Voice can support fax and modem media modes. |
LINEBEARERMODE_SPEECH | This corresponds to G.711 speech transmission on the call. The network may use processing techniques such as analog transmission, echo cancellation and compression/decompression. Bit integrity is not assured. Speech is not intended to support fax and modem media modes. |
LINEBEARERMODE_MULTIUSE | The multi-use mode defined by ISDN. |
LINEBEARERMODE_DATA | The unrestricted data transfer on the call. The data rate is specified separately. |
LINEBEARERMODE_ALTSPEECHDATA | The alternate transfer of speech or unrestricted data on the same call (ISDN). |
LINEBEARERMODE_NONCALLSIGNALING | This corresponds to a non call-associated signaling connection from the app to the service provider or switch (treated as a "media stream" by the Telephony API). |
DwRate | Specifies the rate of the call's data stream in bps (bits per second). |
DwMediaMode | Specifies the media mode of the information stream currently on the call, of type LINEMEDIAMODE. This is the media mode as determined by the owner of the call, which is not necessarily the same as that of the last LINE_MEDIAMODE message. This field is not directly affected by the LINE_MEDIAMODE mesages. Values are: |
LINEMEDIAMODE_NONE | No media stream. This value is mainly used as a NULL value. |
LINEMEDIAMODE_UNKNOWN | A media stream exists but its mode is not known. This would correspond to a call with an unclassified media type. In typical analog telephony environments, an inbound call's media mode may be unknown until after the call has been answered and the media stream filtered to make a determination. |
LINEMEDIAMODE_INTERACTIVEVOICE | The presence of voice energy on the call and the call is treated as an interactive call with humans on both ends. |
LINEMEDIAMODE_AUTOMATEDVOICE | The presence of voice energy on the call and the voice is locally handled by an automated application. |
LINEMEDIAMODE_DIGITALDATA | Digital data being sent or received over the call. |
LINEMEDIAMODE_G3FAX | A group 3 fax is being sent or received over the call. |
LINEMEDIAMODE_G4FAX | A group 4 fax is being sent or received over the call. |
LINEMEDIAMODE_DATAMODEM | A data modem session on the call. |
LINEMEDIAMODE_TELETEX | A teletex session on the call. Teletex is one of the telematic services. |
LINEMEDIAMODE_VIDEOTEX | A videotex session on the call. Videotex is one the telematic services. |
LINEMEDIAMODE_TELEX | A telex session on the call. Telex is one the telematic services. |
LINEMEDIAMODE_MIXED | A mixed session on the call. Mixed is one the ISDN telematic services. |
LINEMEDIAMODE_TDD | A TDD session on the call. TDD stands for Telephony Devices for the Deaf. |
LINEMEDIAMODE_ADSI | An ADSI session on the call. ADSI stands for Analog Display Services Interface. |
LINEMEDIAMODE_UNAVAIL | The media mode of the call is unavailable and will not be known.. |
dwDestAddressSize | |
dwDestAddressOffset | The size in bytes and the offset in bytes from the beginning of this data structure of the variable sized field containing the destination address provided to lineMakeCall/lineDial for outbound calls. dwDestAddressSize is zero for inbound calls. |
DwAppSpecific | This field is uninterpreted by the API implementation and service provider. It can be set by any owner application of this call via the operation lineSetAppSpecific. |
DwCallID | In some telephony environments, the switch or service provider may assign a unique identifier to each call. This allows the call to tracked across transfers, forwards, etc. The domain of these call IDs and their scope is service provider defined. The dwCallID field makes this unique identifier available to the applications. |
DwRelatedCallID | Telephony environments that use the call ID often may find it necessary to relate one call to another. The dwRelatedCallID field may be used by the service provider for this purpose. |
DwCallParamFlags | Specifies a collection of call related parameters when the call is outbound. These are same call parameters specified via lineMakeCall, of type LINECALLPARAMFLAGS. Values are: |
LINECALLPARAMFLAGS_SECURE | The call is currently secure. This flag is also updated if the call is later secured via lineSecureCall. |
LINECALLPARAMFLAGS_IDLE | The call started out using an idle call. |
LINECALLPARAMFLAGS_BLOCKID | The originator identity was concealed (block caller ID presentation to the remote party). |
LINECALLPARAMFLAGS_ORIGOFFHOOK | The originator's phone was automatically taken off hook. |
LINECALLPARAMFLAGS_DESTOFFHOOK | The called party's phone was automatically taken off hook. |
DwCallStates | Specifies the call states for which the application may be notified on this call, of type LINECALLSTATE. Values are: |
LINECALLSTATE_IDLE | The call is idle - no call actually exists. |
LINECALLSTATE_OFFERING | The call is being offered to the station, signaling the arrival of a new call. In some environments, a call in the offering state does not automatically alert the user; alerting is done by the switch instructing the line to ring, it does not affect any call states. |
LINECALLSTATE_ACCEPTED | The call was offering and has been accepted. This indicates to other (monitoring) applications that the current owner application has claimed responsibility for answering the call. In ISDN, this also initiates alerting to both parties. |
LINECALLSTATE_DIALTONE | The call is receiving a dial tone from the switch, which means that the switch is ready to receive a dialed number. |
LINECALLSTATE_DIALING | Destination address information (a phone number) is being sent to the switch via the call. Note that the operation lineGenerateDigits does not place the line into the dialing state. |
LINECALLSTATE_RINGBACK | The call is receiving ringback from the called address. Ringback indicates that the other station has been reached and is being alerted. |
LINECALLSTATE_BUSY | The call is receiving a busy tone. Busy tone indicates that the call cannot be completed - either a circuit (trunk) or the remote party's station are in use. |
LINECALLSTATE_SPECIALINFO | Special information is sent by the network. Special information is typically sent when the destination cannot be reached. |
LINECALLSTATE_CONNECTED | The call has been established, the connection is made. Information is able to flow over the call between the originating address and the destination address. |
LINECALLSTATE_PROCEEDING | Dialing has completed and the call is proceeding through the switch or telephone network. |
LINECALLSTATE_ONHOLD | The call is on hold by the switch. |
LINECALLSTATE_CONFERENCED | The call is currently a member of a multi-party conference call. |
LINECALLSTATE_ONHOLDPENDCONF | The call is currently on hold while it is being added to a conference. |
LINECALLSTATE_ONHOLDPENDTRANSF | The call is currently on hold awaiting transfer to another number. |
LINECALLSTATE_DISCONNECTED | The remote party has disconnected from the call. |
LINECALLSTATE_UNKNOWN | The state of the call is not known. This may be due to limitations of the call progress detection implementation. |
DwMonitorDigitsModes | Specifies the various digit modes for which monitoring is currently enabled, of type LINEDIGITMODE. Values are: |
LINEDIGITMODE_PULSE | Uses pulse/rotary for digit signaling. |
LINEDIGITMODE_DTMF | Uses DTMF tones for digit signaling. |
LINEDIGITMODE_DTMFEND | Uses DTMF tones for digit detection, and also detects the down edges. |
DwNumMonitorTone | Specifies the number of simultaneous tone detections currently enabled on the call. |
DwMonitorMediaModes | Specifies the various media modes for which monitoring is currently enabled, of type LINEMEDIAMODE. Values are: |
LINEMEDIAMODE_INTERACTIVEVOICE | The presence of voice energy on the call and the call is treated as an interactive call with humans on both ends. |
LINEMEDIAMODE_AUTOMATEDVOICE | The presence of voice energy on the call and the voice is locally handled by an automated application. |
LINEMEDIAMODE_DIGITALDATA | Digital data is being sent or received over the call. |
LINEMEDIAMODE_G3FAX | A group 3 fax is being sent or received over the call. |
LINEMEDIAMODE_G4FAX | A group 4 fax is being sent or received over the call. |
LINEMEDIAMODE_DATAMODEM | A data modem session on the call. |
LINEMEDIAMODE_TELETEX | A teletex session on the call. Teletex is one of the telematic services. |
LINEMEDIAMODE_VIDEOTEX | A videotex session on the call. Videotex is one the telematic services. |
LINEMEDIAMODE_TELEX | A telex session on the call. Telex is one the telematic services. |
LINEMEDIAMODE_MIXED | A mixed session on the call. Mixed is one the ISDN telematic services. |
LINEMEDIAMODE_TDD | A TDD session on the call. TDD stands for Telephony Devices for the Deaf. |
LINEMEDIAMODE_ADSI | An ADSI session on the call. ADSI stands for Analog Display Services Interface. |
LINEMEDIAMODE_UNAVAIL | The media mode of the call is unavailable and will not be known.. |
DialParams | Specifies the dialing parameters currently in effect on the call, of type LINEDIALPARAMS. Unless these parameters are set by either lineMakeCall or lineSetCallParams, their values will be the same as the defaults used in the LINEDEVCAPS. |
DwOrigin | Identifies where the call originated from, of type LINECALLORIGIN. Values are: |
LINECALLORIGIN_OUTBOUND | The call is an outbound call. |
LINECALLORIGIN_INTERNAL | The call is inbound and originated internally (e.g., on the same PBX). |
LINECALLORIGIN_EXTERNAL | The call is inbound and originated externally. |
LINECALLORIGIN_UNKNOWN | The call is an inbound call, but its origin is currently unknown but may become known later. |
LINECALLORIGIN_UNAVAIL | The call is an inbound call, and its origin is not available and will never become known for this call. |
DwReason | Specifies the reason why the call occurred, of type LINECALLREASON. Values are: |
LINECALLREASON_DIRECT | This is a direct call. |
LINECALLREASON_FWDBUSY | This call was forwarded from another extension that was busy at the time of the call. |
LINECALLREASON_FWDNOANSWER | The call was forwarded from another extension that didn't answer the call after some number of rings. |
LINECALLREASON_FWDUNCOND | The call was forwarded unconditionally from another number. |
LINECALLREASON_PICKUP | The call was picked up from another extension. |
LINECALLREASON_UNPARK | The call was retrieved as a parked call. |
LINECALLREASON_REDIRECT | The call was redirected to this station. |
LINECALLREASON_CALLCOMPLETION | The call was the result of a call completion request. |
LINECALLREASON_TRANSFER | The call has been transferred from another number. Party ID information may indicate who the caller is and where the call was transferred from. |
LINECALLREASON_REMINDER | The call is a reminder (or "recall") that the user has a call parked or on hold for potentially a long time. |
LINECALLREASON_UNKNOWN | The reason for the call is currently unknown but may become known later. |
LINECALLREASON_UNAVAIL | The reason for the call is unavailable and will not become known later. |
DwCompletionID | The completion ID for the incoming call if it is the result of a completion request that terminates. This ID is only meaningful if dwReason is LINECALLREASON_CALLCOMPLETION. |
DwNumOwners. | The number of application modules with different call handles with owner privileges for the call |
dwNumMonitors | The number of application modules with different call handles with monitor privileges for the call. |
DwCountryCode | The country code of the destination party. Zero if unknown. |
DwTrunk | The number of the trunk over which the call is routed. This field is used for both inbound and outgoing calls. |
DwCallerIDFlags | Determines the validity and content of the caller party ID information, of type LINECALLPARTYID. The caller is the originator of the call. Values are: |
LINECALLPARTYID_BLOCKED | Caller ID information for the call has been blocked by the caller, but would otherwise have been available. |
LINECALLPARTYID_OUTOFAREA | Caller ID information for the call is not available as it is not propagated all the way by the network. |
LINECALLPARTYID_NAME | The caller ID information for the call is the caller's name (from a table maintained inside the switch). It is provided in the caller ID name variable size field. |
LINECALLPARTYID_ADDRESS | The caller ID information for the call is the caller's number, and is provided via the caller ID variable size field. |
LINECALLPARTYID_PARTIAL | Caller ID information for the call is valid, but is limited to partial number information. |
LINECALLPARTYID_UNKNOWN | Caller ID information is currently unknown, it may become known later. |
LINECALLPARTYID_UNAVAIL | Caller ID information is unavailable and will not become known later. |
DwCallerIDSize | |
dwCallerIDOffset | The size in bytes and the offset in bytes from the beginning of this data structure of the variable sized field containing the caller party ID number information. |
DwCallerIDNameSize | |
dwCallerIDNameOffset | The size in bytes and the offset in bytes from the beginning of this data structure of the variable sized field containing the caller party ID name information. |
DwCalledIDFlags | Determines the validity and content of the called party ID information, of type LINECALLPARTYID. The called party corresponds to the orignally addressed party. Values are: |
LINECALLPARTYID_BLOCKED | Called ID information for the call has been blocked by the caller, but would otherwise have been available. |
LINECALLPARTYID_OUTOFAREA | Caller ID information for the call is not available as it is not propagated all the way by the network. |
LINECALLPARTYID_NAME | The called ID information for the call is the caller's name (from a table maintained inside the switch). It is provided via the called ID name variable size field. |
LINECALLPARTYID_ADDRESS | The called ID information for the call is the caller's number, and is provided via the called ID variable size field. |
LINECALLPARTYID_PARTIAL | Called ID information for the call is valid, but is limited to partial number information. |
LINECALLPARTYID_UNKNOWN | Called ID information is currently unknown, it may become known later. |
LINECALLPARTYID_UNAVAIL | Called ID information is unavailable and will not become known later. |
DwCalledIDSize | |
dwCalledIDOffset | The size in bytes and the offset in bytes from the beginning of this data structure of the variable sized field containing the called party ID number information. |
DwCalledIDNameSize | |
dwCalledIDNameOffset | The size in bytes and the offset in bytes from the beginning of this data structure of the variable sized field containing the called party ID name information. |
DwConnectedFlags | Determines the validity and content of the connected party ID information, of type LINECALLPARTYID. The connected party is the party that was actually connected to. This may be different from the called party ID if the call was diverted. Values are: |
LINECALLPARTYID_BLOCKED | Connected party ID information for the call has been blocked by the caller, but would otherwise have been available. |
LINECALLPARTYID_OUTOFAREA | Connected ID information for the call is not available as it is not propagated all the way by the network. |
LINECALLPARTYID_NAME | The connected party ID information for the call is the caller's name (from a table maintained inside the switch). It is provided via the connected ID name variable size field. |
LINECALLPARTYID_ADDRESS | The connected party ID information for the call is the caller's number, and is provided via the connected ID variable size field. |
LINECALLPARTYID_PARTIAL | Connected party ID information for the call is valid, but is limited to partial number information. |
LINECALLPARTYID_UNKNOWN | Connected party ID information is currently unknown, it may become known later. |
LINECALLPARTYID_UNAVAIL | Connected party ID information is unavailable and will not become known later. |
DwConnectedIDSize | |
dwConnectedIDOffset | The size in bytes and the offset in bytes from the beginning of this data structure of the variable sized field containing the connected party ID number information. |
DwConnectedIDNameSize | |
dwConnectedIDNameOffset | The size in bytes and the offset in bytes from the beginning of this data structure of the variable sized field containing the connected party ID name information. |
DwRedirectionIDFlags | Determines the validity and content of the redirection party ID information, of type LINECALLPARTYID. The redirection party identifies to the calling user the number towards which diversion was invoked. Values are: |
LINECALLPARTYID_BLOCKED | Redirection party ID information for the call has been blocked by the caller, but would otherwise have been available. |
LINECALLPARTYID_OUTOFAREA | Redirection ID information for the call is not available as it is not propagated all the way by the network. |
LINECALLPARTYID_NAME | The redirection party ID information for the call is the caller's name (from a table maintained inside the switch). It is provided via the redirection ID name variable size field. |
LINECALLPARTYID_ADDRESS | The redirection party ID information for the call is the caller's number, and is provided via the redirection ID variable size field. |
LINECALLPARTYID_PARTIAL | Redirection party ID information for the call is valid, but is limited to partial number information. |
LINECALLPARTYID_UNKNOWN | Redirection ID information is currently unknown, it may become known later. |
LINECALLPARTYID_UNAVAIL | Redirection ID information is unavailable and will not become known later. |
DwRedirectionIDSize | |
dwRedirectionIDOffset | The size in bytes and the offset in bytes from the beginning of this data structure of the variable sized field containing the redirection party ID number information. |
DwRedirectionIDNameSize | |
dwRedirectionIDNameOffset | The size in bytes and the offset in bytes from the beginning of this data structure of the variable sized field containing the redirection party ID name information. |
DwRedirectingIDFlags | Determines the validity and content of the redirecting party ID information, of type LINECALLPARTYID. The redirecting party identifies to the diverted-to user the party from which diversion was invoked. Values are: |
LINECALLPARTYID_BLOCKED | Redirecting party ID information for the call has been blocked by the caller, but would otherwise have been available. |
LINECALLPARTYID_OUTOFAREA | Redirecting ID information for the call is not available as it is not propagated all the way by the network. |
LINECALLPARTYID_NAME | The redirecting party ID information for the call is the caller's name (from a table maintained inside the switch). It is provided via the redirecting ID name variable size field. |
LINECALLPARTYID_ADDRESS | The redirecting party ID information for the call is the caller's number, and is provided via the redirecting ID variable size field. |
LINECALLPARTYID_PARTIAL | Redirecting party ID information for the call is valid, but is limited to partial number information. |
LINECALLPARTYID_UNKNOWN | Redirecting ID information is currently unknown, it may become known later. |
LINECALLPARTYID_UNAVAIL | Redirecting ID information is unavailable and will not become known later. |
DwRedirectingIDSize | |
dwRedirectingIDOffset | The size in bytes and the offset in bytes from the beginning of this data structure of the variable sized field containing the redirecting party ID number information. |
DwRedirectingIDNameSize | |
dwRedirectingIDNameOffset | The size in bytes and the offset in bytes from the beginning of this data structure of the variable sized field containing the redirecting party ID name information. |
DwAppNameSize | |
dwAppNameOffset | The size in bytes and the offset from the beginning of this data structure in bytes of the variable sized field holding the user-friendly application name of the application that first originated, accepted, or answered the call. This is the name that an application can specify on lineInitialize. If the application specifies no such name, then the application's module name is used instead. |
DwCalledPartySize | |
dwCalledPartyOffset | The size in bytes and the offset from the beginning of this data structure in bytes of the variable sized field holding a user-friendly description of the called party. This information can be specified on lineMakeCall. It is useful for call logging purposes. |
DwCommentSize | |
dwCommentOffset | The size in bytes and the offset from the beginning of this data structure in bytes of the variable sized field holding a comment about the call provided by the application that originated the call using lineMakeCall. |
DwDisplaySize | |
dwDisplayOffset | The size in bytes and the offset from the beginning of this data structure in bytes of the variable sized field holding raw display information. Depending on the telephony environment, a service provider may extract functional information from this for presentation into a more functional way. |
DwUserUserInfoSize | |
dwUserUserInfoOffset | The size in bytes and the offset from the beginning of this data structure in bytes of the variable sized field holding user-to-user information. |
DwHighLevelCompSize | |
dwHighLevelCompOffset | The size in bytes and the offset from the beginning of this data structure in bytes of the variable sized field holding high level compatibility information. The format of this information is specified by other standards (ISDN Q.931). |
dwLowLevelCompSize | |
dwLowLevelCompOffset | The size in bytes and the offset from the beginning of this data structure in bytes of the variable sized field holding low level compatibility information. The format of this information is specified by other standards (ISDN Q.931). |
dwChargingInfoSize | |
dwChargingInfoOffset | The size in bytes and the offset from the beginning of this data structure in bytes of the variable sized field holding charging information. The format of this information is specified by other standards (ISDN Q.931). |
dwTerminalModesSize | |
dwTerminalModesOffset | The size in bytes and the offset in bytes from the beginning of this data structure of the variable sized device field containing an array with DWORD-sized entries, of type LINETERMMODE. This array is indexed by terminal IDs, in the range from zero to dwNumTerminals -1. Each entry in the array specifies the current terminal modes for the corresponding terminal set via the lineSetTerminal operation for this call's media stream. Values are: |
LINETERMMODE_LAMPS | This are lamp events sent from the line to the terminal. |
LINETERMMODE_BUTTONS | These are button press events sent from the terminal to the line. |
LINETERMMODE_DISPLAY | This is display information sent from the line to the terminal. |
LINETERMMODE_RINGER | This is ringer control information sent from the switch to the terminal. |
LINETERMMODE_HOOKSWITCH | These are hookswitch event sent between the terminal and the line. |
LINETERMMODE_MEDIAFROMTERM | 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_MEDIATOTERM | 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_MEDIABIDIR | 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. |
DwDevSpecificSize | |
dwDevSpecificOffset | The size in bytes and the offset from the beginning of this data structure in bytes of the variable sized field holding device specific information. |
Extensibility | Device specific extensions should use the DevSpecific (dwDevSpecificSize and dwDevSpecificOffset) variable sized area of this data structure. |
Comments | The LINECALLINFO data structure contains relatively fixed information about a call. This structure is returned via lineGetCallInfo. When information items in this data structure have changed, a LINE_CALLINFO message is sent to the application. A parameter to this message is the information item or field that changed. |
The dwAppSpecific field can be used by applications to tag calls by using lineSetAppSpecific. This field is uninterpreted by the API or service providers. It is initially set to zero. | |
See AlsoFunctions: | lineGetCallInfo, lineSetAppSpecific |
Messages: LINE_CALLINFO | |
Data Types: | LINEBEARERMODE, LINECALLORIGIN, LINECALLREASON, LINECALLPARTYID, LINEMEDIAMODE, LINEDIGITMODE, LINETERMMODE, LINECALLSTATE, LINECALLPARAMFLAGS |
LINECALLINFOSTATE
The LINECALLINFOSTATE bit flag constants describe various call information items about which an application may be notified via the LINE_CALLINFO message.
LINECALLINFOSTATE_OTHER0x00000001
LINECALLINFOSTATE_DEVSPECIFIC0x00000002
LINECALLINFOSTATE_BEARERMODE 0x00000004
LINECALLINFOSTATE_RATE 0x00000008
LINECALLINFOSTATE_MEDIAMODE 0x00000010
LINECALLINFOSTATE_APPSPECIFIC0x00000020
LINECALLINFOSTATE_CALLID0x00000040
LINECALLINFOSTATE_RELATEDCALLID0x00000080
LINECALLINFOSTATE_ORIGIN0x00000100
LINECALLINFOSTATE_REASON0x00000200
LINECALLINFOSTATE_COMPLETIONID0x00000400
LINECALLINFOSTATE_NUMOWNERINCR0x00000800
LINECALLINFOSTATE_NUMOWNERDECR0x00001000
LINECALLINFOSTATE_NUMMONITORS0x00002000
LINECALLINFOSTATE_TRUNK0x00004000
LINECALLINFOSTATE_CALLERID0x00008000
LINECALLINFOSTATE_CALLEDID0x00010000
LINECALLINFOSTATE_CONNECTEDID0x00020000
LINECALLINFOSTATE_REDIRECTIONID0x00040000
LINECALLINFOSTATE_REDIRECTINGID0x00080000
LINECALLINFOSTATE_DISPLAY0x00100000
LINECALLINFOSTATE_USERUSERINFO0x00200000
LINECALLINFOSTATE_HIGHLEVELCOMP0x00400000
LINECALLINFOSTATE_LOWLEVELCOMP0x00800000
LINECALLINFOSTATE_CHARGINGINFO0x01000000
LINECALLINFOSTATE_TERMINAL0x02000000
LINECALLINFOSTATE_DIALPARAMS0x04000000
LINECALLINFOSTATE_MONITORMODES0x08000000
Values | The LINECALLINFOSTATE constants have the following values. |
LineCallInfoState_other | An other information item in the call information not listed below has changed. |
LineCallInfoState_devSpecific | The device specific field of the call information record. |
LineCallInfoState_bearerMode | The bearer mode field of the call information record. |
LineCallInfoState_rate | The rate field of the call information record. |
LineCallInfoState_mediaMode | The media mode field of the call information record. |
LineCallInfoState_ appSpecific | The app specific field of the call information record. |
LineCallInfoState_callID | The call ID field of the call information record. |
LineCallInfoState_relatedCallID | The related call ID field of the call information record. |
LineCallInfoState_origin | The origin field of the call information record. |
LineCallInfoState_reason | The reason field of the call information record. |
LineCallInfoState_completionID | The completion ID field of the call information record. |
LineCallInfoState_numOwnerIncr | The number of owner field in the call information record was increased. |
LineCallInfoState_numOwnerDecr | The number of owner field in the call information record was decreased. |
LineCallInfoState_numMonitors | The number of monitors field in the call information record has changed. |
LineCallInfoState_trunk | The trunk field of the call information record. |
LineCallInfoState_callerID | One of the callerID-related fields of the call information record. |
LineCallInfoState_calledID | One of the calledID-related fields of the call information record. |
LineCallInfoState_connectedID | One of the cconnectedID-related fields of the call information record. |
LineCallInfoState_redirectionID | One of the redirectionID-related fields of the call information record. |
LineCallInfoState_redirectingID | One of the redirectingID-related fields of the call information record. |
LineCallInfoState_display | The display field of the call information record. |
LineCallInfoState_userUserInfo | The user-to-user information of the call information record. |
LineCallInfoState_ highLevelComp | The high level compatibility field of the call information record. |
LineCallInfoState_ lowLevelComp | The low level compatibility field of the call information record. |
LineCallInfoState_chargingInfo | The charging information of the call information record. |
LineCallInfoState_terminal | The terminal mode information of the call information record. |
LineCallInfoState_dialParams | The dial parameters of the call information record. |
LineCallInfoState_monitorModes | One or more of the digit, tone, or media monitoring fields in the call information record. |
Extensibility | None. All 32 bits are reserved. |
Comments | These constants describe portions of the LINECALLINFO data structure. When changes occur in this data structure, a LINE_CALLINFO message is sent to the application. The parameters to this message are a handle to the call and an indication of the information item that has changed. |
The LINEADDRESSCAPS data structure also indicates which of these call information elements are every valid for calls on the address. | |
See AlsoMessages: | LINE_CALLINFO |
Data Types: | LINECALLINFO, LINEADDRESSCAPS |
LINECALLLIST
The LINECALLLIST structure describes a list of call handles. A structure of this type is returned by lineGetCalls.
typedef struct linecalllist_tag {
DWORDdwTotalSize;
DWORDdwNeededSize;
DWORDdwUsedSize;
DWORDdwCallsNumEntries;
DWORDdwCallsSize;
DWORDdwCallsOffset;
} LINECALLLIST, FAR *LPLINECALLLIST;
Fields: | The LINEDEVSTATUS structure contains the following fields: |
dwTotalSize | The total size in bytes allocated to this data structure. |
DwNeededSize | The size in bytes for this data structure that is needed to hold all the returned information. |
DwUsedSize | The size in bytes of this data structure that contains useful information. |
DwNumEntries | Specifies the number of handles in the hCalls array. |
DwCallsSize dwCallsOffset | The size in bytes and the offset from the beginning of this data structure in bytes of the variable sized field holding the call handles. |
Extensibility | None. |
Comments | None. |
See AlsoFunctions: | : lineGetCalls |
LINECALLORIGIN
The LINECALLORIGIN constants describe the origin of a call.
LINECALLORIGIN_OUTBOUND0x00000001
LINECALLORIGIN_INTERNAL0x00000002
LINECALLORIGIN_EXTERNAL0x00000004
LINECALLORIGIN_UNKNOWN 0x00000010
LINECALLORIGIN_UNAVAIL 0x00000020
Values | The LINECALLORIGIN constants have the following values. |
LineCallOrigin_outbound | The call originated from this station as an outbound call. |
LineCallOrigin_internal | The call originated as an inbound call at a station internal to the same switching environment. |
LineCallOrigin_external | The call originated as an inbound call on an external line. |
LineCallOrigin_unknown | The call is an inbound call, but its origin is currently unknown but may become known later. |
LineCallOrigin_unavail | The call is an inbound call, and its origin is not available and will never become known for this call. |
Extensibility | The high order 16 bits can be assigned for device specific extensions. The low order 16 bits are reserved. |
Comments | The origin of a call is stored in the call's LINECALLINFO structure. |
See AlsoData Types: | LINECALLINFO, LINEADDRESSCAPS |
LINECALLPARAMFLAGS
The LINECALLPARAMFLAGS constants describe various status flags about a call.
LINECALLPARAMFLAGS_SECURE0x00000001
LINECALLPARAMFLAGS_IDLE0x00000002
LINECALLPARAMFLAGS_BLOCKID0x00000004
LINECALLPARAMFLAGS_ORIGOFFHOOK 0x00000008
LINECALLPARAMFLAGS_DESTOFFHOOK 0x00000010
Values | The LINECALLPARAMFLAGS constants have the following values. |
LineCallParamFlags_secure | The call should be set up as secure. |
LineCallParamFlags_idle | The call should be originated on an idle call appearance, and not join a call in progress. |
LineCallParamFlags_blockID | The originator identity should be concealed (block caller ID). |
LineCallParamFlags_origOffhook | The originator's phone should be automatically taken off hook. |
LineCallParamFlags_destOffhook | The called party's phone should be automatically be taken off hook. |
Extensibility | The high order 16 bits can be assigned for device specific extensions. The low order 16 bits are reserved. |
Comments | None. |
See AlsoFunctions: | lineMakeCall, lineGetCallInfo |
Data Types: | LINECALLPARAMS, LINECALLINFO |
LINECALLPARAMS
The LINECALLPARAMS structure describes parameters supplied when making calls via lineMakeCall. The comments on the right indicate the default values used when this structure is not provided to lineMakeCall.
typedef struct linecallparams_tag {// Defaults:
DWORDdwTotalSize;// ---------
DWORDdwBearerMode;// voice
DWORDdwMinRate;// (3.1kHz)
DWORDdwMaxRate;// (3.1kHz)
DWORDdwMediaMode;// interactiveVoice
DWORDdwCallParamFlags;// 0
DWORDdwAddressMode;// addressID
DWORDdwAddressID// (any available)
LINEDIALPARAMS DialParams;// (0, 0, 0, 0)
DWORDdwOrigAddressSize;// 0
DWORDdwOrigAddressOffset;
DWORDdwCalledPartySize;// 0
DWORDdwCalledPartyOffset;
DWORDdwCommentSize;// 0
DWORDdwCommentOffset;
DWORDdwUserUserInfoSize;// 0
DWORDdwUserUserInfoOffset;
DWORDdwHighLevelCompSize;// 0
DWORDdwHighLevelCompOffset;
DWORDdwLowLevelCompSize;// 0
DWORDdwLowLevelCompOffset;
DWORDdwDevSpecificSize;// 0
DWORDdwDevSpecificOffset;
} LINECALLPARAMS, FAR *LPLINECALLPARAMS;
Fields: | The LINECALLPARAMS structure contains the following fields: |
dwTotalSize | The total size in bytes allocated to this data structure. This size should be big enough to hold all the fixed and variable sized portions of this data structure. |
DwBearerMode | Specifies the bearer mode for the call, of type LINEBEARERMODE. Values are: |
LINEBEARERMODE_VOICE | This is a regular 3.1kHz analog voice grade bearer service. Bit integrity is not assured. Voice can support fax and modem media modes. |
LINEBEARERMODE_SPEECH | This corresponds to G.711 speech transmission on the call. The network may use processing techniques such as analog transmission, echo cancellation and compression/decompression. Bit integrity is not assured. Speech is not intended to support fax and modem media modes. |
LINEBEARERMODE_MULTIUSE | The multi-use mode defined by ISDN. |
LINEBEARERMODE_DATA | The unrestricted data transfer on the call. The data rate is specified separately. |
LINEBEARERMODE_ALTSPEECHDATA | The alternate transfer of speech or unrestricted data on the same call (ISDN). |
LINEBEARERMODE_NONCALLSIGNALING | This corresponds to a non call-associated signaling connection from the app to the service provider or switch (treated as a "media stream" by the Telephony API). |
DwMinRate dwMaxRate | Specifies the data rate range requested for the call's data stream in bps (bits per second). When making a call, the service provider will attempt to provide the highest available rate in the requested range. If a specific data rate is required, then both min and max should be set to the same value. If an application works optimally with one rate, but is able the degrade to lower rates, then the app should specify these as the max and min rates respectively. |
DwMediaMode | Specifies the expected media mode of the call; of type LINEMEDIAMODE. Values are: |
LINEMEDIAMODE_NONE | No media stream. This value is mainly used as a NULL value. |
LINEMEDIAMODE_UNKNOWN | A media stream exists but its mode is not known. This would correspond to a call with an unclassified media type. In typical analog telephony environments, an inbound call's media mode may be unknown until after the call has been answered and the media stream filtered to make a determination. |
LINEMEDIAMODE_INTERACTIVEVOICE | The presence of voice energy on the call and the call is treated as an interactive call with humans on both ends. |
LINEMEDIAMODE_AUTOMATEDVOICE | The presence of voice energy on the call and the voice is locally handled by an automated application. |
LINEMEDIAMODE_G3FAX | A group 3 fax is being sent or received over the call. |
LINEMEDIAMODE_G4FAX | A group 4 fax is being sent or received over the call. |
LINEMEDIAMODE_DATAMODEM | A data modem session on the call. |
LINEMEDIAMODE_TELETEX | A teletex session on the call. Teletex is one of the telematic services. |
LINEMEDIAMODE_VIDEOTEX | A videotex session on the call. Videotex is one the telematic services. |
LINEMEDIAMODE_TELEX | A telex session on the call. Telex is one the telematic services. |
LINEMEDIAMODE_MIXED | A mixed session on the call. Mixed is one the ISDN telematic services. |
LINEMEDIAMODE_TDD | A TDD session on the call. TDD stands for Telephony Devices for the Deaf. |
LINEMEDIAMODE_ADSI | An ADSI session on the call. ADSI stands for Analog Display Services Interface. |
LINEMEDIAMODE_UNAVAIL | The media mode of the call is unavailable and will not be known.. |
dwCallParamFlags | These flags specify a collection of boolean call setup parameters, of type LINECALLPARAMFLAGS. Values are: |
LINECALLPARAMFLAGS_SECURE | The call should be set up as secure. |
LINECALLPARAMFLAGS_IDLE | The call should get an idle call appearance. |
LINECALLPARAMFLAGS_BLOCKID | The originator identity should be concealed (block caller ID). |
LINECALLPARAMFLAGS_ORIGOFFHOOK | The originator's phone should be automatically taken off hook. |
LINECALLPARAMFLAGS_DESTOFFHOOK | The called party's phone should be automatically be taken offhook. |
DwAddressMode | Specifies the mode by which the originating address is specified, of type LINEADDRESSMODE. Values are: |
LINEADDRESSMODE_ADDRESSID | The address is specified via a small integer in the range 0 to dwNumAddresses - 1, where dwNumAddresses is the value in the line's device capabilities. The selected address is specified in the uAddressID field. |
LINEADDRESSMODE_DIALABLEADDR | The address is specified via its dialable address. The address is contained in the dwOrigAddressSize, dwOrigAddressOffset variable sized field. |
DwAddressID | Specifies the address ID of the originating address if dwAddressID set to LINEADDRESSMODE_ADDRESSID. |
DialParams | Specifies dial parameters to be used on this call, of type LINEDIALPARAMS. When a value of zero is specified for a field, then the default value for that field is used. |
DwOrigAddressSize dwOrigAddressOffset | The size in bytes and the offset from the beginning of this data structure in bytes of the variable sized field holding the originating address. The format of this address is dependent of the dwAddressMode field. |
DwCalledPartySize dwCalledPartyOffset | The size in bytes and the offset from the beginning of this data structure in bytes of the variable sized field holding called party information. This information can be specified by the application that makes the call and is made available in the call's information structure for logging purposes. The format of this address is dependent of the dwAddressMode field. |
DwCommentSize dwCommentOffset | The size in bytes and the offset from the beginning of this data structure in bytes of the variable sized field holding comments about the call. This information can be specified by the application the makes the call and is made available in the call's information structure for logging purposes. The format of this address is dependent of the dwAddressMode field. |
DwUserUserInfoSize dwUserUserInfoOffset | The size in bytes and the offset from the beginning of this data structure in bytes of the variable sized field holding user-to-user information. |
DwHighLevelCompSize dwHighLevelCompOffset | The size in bytes and the offset from the beginning of this data structure in bytes of the variable sized field holding high level compatibility information. |
DwLowLevelCompSize | The size in bytes and the offset from the beginning of this data structure in bytes of the variable sized field holding low level compatibility information. |
DwDevSpecificSize dwDevSpecificOffset | The size in bytes and the offset from the beginning of this data structure in bytes of the variable sized field holding device specific information. |
Extensibility | The high order 16 bits can be assigned for device specific extensions. The low order 16 bits are reserved. |
Comments | This structure is used as a parameter to lineMakeCall when setting up a call. Its parameters allow the application to specify the quality of service requested from the network as well as a variety of ISDN call setup parameters. If no LINECALLPARAMS structure is supplied to lineMakeCall, then a default POTS voice grade call is requested with the default Values listed above. |
See AlsoFunctions: | : lineMakeCall |
Data Types: | : LINEBEARERMODE, LINEMEDIAMODE, LINECALLPARAMFLAGS |
LINECALLPARTYID
The LINECALLPARTYID bit flag constants describe the nature of the information available about the parties involved in a call.
LINECALLPARTYID_BLOCKED0x00000001
LINECALLPARTYID_OUTOFAREA0x00000002
LINECALLPARTYID_NAME0x00000004
LINECALLPARTYID_ADDRESS 0x00000008
LINECALLPARTYID_PARTIAL0x00000010
LINECALLPARTYID_UNKNOWN 0x00000020
LINECALLPARTYID_UNAVAIL 0x00000040
Values | The LINECALLPARTYID constants have the following values. |
LineCallPartyID_blocked | Party ID information is not available because it has been blocked by the remote party. |
LineCallPartyID_outOfArea | Caller ID information for the call is not available as it is not propagated all the way by the network. |
LineCallPartyID_name | Party ID information consists of the party's name (e.g., from a directory kept inside the switch). |
LineCallPartyID_address | Party ID information consists of the party's address in either canonical address format or dialable address format. |
LineCallPartyID_partial | Party ID information is valid, but is limited to partial information only. |
LineCallPartyID_unknown | Party ID information is currently unknown but may become known later. |
LineCallPartyID_unavail | Party ID information is not available and will not become later. Information may be unavailable for unspecified reasons, e.g., the information was not delivered by the network, ignored by the service provider, etc. |
Extensibility | The high order 16 bits can be assigned for device specific extensions. The low order 16 bits are reserved. |
Comments | LINECALLPARTYID describes for each of the possible parties involved in a call how the party ID information is formatted. This information is supplied in the LINECALLINFO data structure. |
See AlsoData Types: | LINECALLINFO |
LINECALLPRIVILEGE | The LINECALLPRIVILEGE bit flag constants describe the kinds of access rights or privileges an app with a call handle may have to the corresponding call. |
LINECALLPRIVILEGE_NONE | 0x00000001 |
LINECALLPRIVILEGE_MONITOR | 0x00000002 |
LINECALLPRIVILEGE_OWNER | 0x00000004 |
Values | The LINECALLPRIVILEGE constants have the following values. |
LineCallPrivilege_none | The app has no privileges to the call. The app's handle is void and should not be used. |
LineCallPrivilege_monitor | The app has monitor privileges to the call. These privileges allow the app to monitor state changes and query information and status about the call. |
LineCallPrivilege_owner | The app has owner privileges to the call. These privileges allow the app to manupulate the call in ways that affect the state of the call. |
Extensibility | The high order 16 bits can be assigned for device specific extensions. The low order 16 bits are reserved. |
Comments | When a call handle is first provided to an app or whenever call privileges of that app are modified, the LINE_CALLSTATE message is sent to the application. When an application hands off a call, and if the receiving application does not already have a handle with owner privileges, then this message informs the application about its new privileges to the call. |
The LINECALLPRIVILEGE data type is also used as a parameter to the lineHandoff function. The application that hands off a call can specify the privilege it wants to be left with after the handoff succeeds. | |
See AlsoFunctions: | LineHandoff, lineGetCalls |
Messages: | LINE_CALLSTATE |
LINECALLREASON
The LINECALLREASON bit flag constants describe the reason for a call.
LINECALLREASON_DIRECT0x00000001
LINECALLREASON_FWDBUSY0x00000002
LINECALLREASON_FWDNOANSWER 0x00000004
LINECALLREASON_FWDUNCOND0x00000008
LINECALLREASON_PICKUP0x00000010
LINECALLREASON_UNPARK0x00000020
LINECALLREASON_REDIRECT 0x00000040
LINECALLREASON_CALLCOMPLETION0x00000080
LINECALLREASON_TRANSFER0x00000100
LINECALLREASON_REMINDER0x00000200
LINECALLREASON_UNKNOWN 0x00000400
LINECALLREASON_UNAVAIL 0x00000800
Values | The LINECALLREASON constants have the following values. |
LineCallReason_direct | This is a direct inbound or outbound call. |
LineCallReason_fwdBusy | This call was forwarded from another extension that was busy at the time of the call. |
LineCallReason_fwdNoAnswer | The call was forwarded from another extension that didn't answer the call after some number of rings. |
LineCallReason_fwdUncond | The call was forwarded unconditionally from another number. |
LineCallReason_pickup | The call was picked up from another extension. |
LineCallReason_unpark | The call was retrieved as a parked call. |
LineCallReason_redirect | The call was redirected to this station. |
LineCallReason_callCompletion | The call was the result of a call completion request. |
LineCallReason_transfer | The call has been transferred from another number. |
LineCallReason_reminder | The call is a reminder (or "recall") that the user has a call parked or on hold for potentially a long time. |
LineCallReason_unknown | The reason for the call is currently unknown but may become known later. |
LineCallReason_unavail | The reason for the call is unavailable and will not become known later. |
Extensibility | The high order 16 bits can be assigned for device specific extensions. The low order 16 bits are reserved. |
Comments | LINECALLREASON is provided as part of the LINECALLINFO data structure. |
See AlsoFunctions: | lineGetCallInfo |
Data Types: | LINECALLINFO |
LINECALLSELECT
The LINECALLSELECT bit flag constants describe which calls are to be selected.
LINECALLSELECT_LINE0x00000001
LINECALLSELECT_ADDRESS0x00000002
LINECALLSELECT_CALL 0x00000004
Values | The LINECALLSELECT constants have the following values. |
LineCallSelect_line | Selects calls on this specified line device. |
LineCallSelect_address | Selects call on the specified address. |
LineCallSelect_call | Selects related calls to the specified call. Examples are the parties in a conference call. |
Extensibility | The high order 16 bits can be assigned for device specific extensions. The low order 16 bits are reserved. |
Comments | This data type is used in lineGetCalls to specify a selection (scope) of the calls that are requested. |
See AlsoFunctions: | lineGetCalls |
LINECALLSTATE
The LINECALLSTATE bit flag constants describe the call states a call can be in.
LINECALLSTATE_IDLE0x00000001
LINECALLSTATE_OFFERING0x00000002
LINECALLSTATE_ACCEPTED0x00000004
LINECALLSTATE_DIALTONE0x00000008
LINECALLSTATE_DIALING0x00000010
LINECALLSTATE_RINGBACK0x00000020
LINECALLSTATE_BUSY0x00000040
LINECALLSTATE_SPECIALINFO0x00000080
LINECALLSTATE_CONNECTED0x00000100
LINECALLSTATE_PROCEEDING0x00000200
LINECALLSTATE_ONHOLD0x00000400
LINECALLSTATE_CONFERENCED0x00000800
LINECALLSTATE_ONHOLDPENDCONF0x00001000
LINECALLSTATE_ONHOLDPENDTRANSFER0x00002000
LINECALLSTATE_DISCONNECTED0x00004000
LINECALLSTATE_UNKNOWN0x00008000
Values | The LINECALLSTATE constants have the following values. |
LineCallState_idle | The call is idle - no call actually exists. |
LineCallState_offering | The call is being offered to the station, signaling the arrival of a new call. In some environments, a call in the offering state does not automatically alert the user; alerting is done by the switch instructing the line to ring, it does not affect any call states. |
LineCallState_accepted | The call was offering and has been accepted. This indicates to other (monitoring) applications that the current owner application has claimed responsibility for answering the call. In ISDN, this also initiates alerting to both parties. |
LineCallState_dialtone | The call is receiving a dial tone from the switch, which means that the switch is ready to receive a dialed number. |
LineCallState_dialing | Destination address information (a phone number) is being sent to the switch via the call. Note that the operation lineGenerateDigits does not place the line into the dialing state. |
LineCallState_ringback | The call is receiving ringback from the called address. Ringback indicates that the other station has been reached and is being alerted. |
LineCallState_busy | The call is receiving a busy tone. Busy tone indicates that the call cannot be completed - either a circuit (trunk) or the remote party's station are in use. |
LineCallState_special | InfoSpecial information is sent by the network. Special information is typically sent when the destination cannot be reached. |
LineCallState_connected | The call has been established, the connection is made. Information is able to flow over the call between the originating address and the destination address. |
LineCallState_proceeding | Dialing has completed and the call is proceeding through the switch or telephone network. |
LineCallState_onHold | The call is on hold by the switch. |
LineCallState_conferenced | The call is currently a member of a multi-party conference call. |
LineCallState_onholdPendConf | The call is currently on hold while it is being added to a conference. |
LineCallState_onholdPendTransfer | The call is currently on hold awaiting transfer to another number. |
LineCallState_disconnected | The remote party has disconnected from the call. |
LineCallState_unknown | The state of the call is not known. This may be due to limitations of the call progress detection implementation. |
Extensibility | The high order 8 bits can be assigned for device specific extensions. The low order 24 bits are reserved. |
Comments | The LINECALLSTATE constants are used as parameters by the LINE_CALLSTATE message sent to the application, the message carries the new call state that the call transitioned to. This data type is also used as a field in the LINECALLSTATUS structure, returned by the lineGetCallStatus function. |
See AlsoFunctions: | : lineGetCallStatus |
Messages: LINE_CALLSTATE | |
Data Types: | : LINECALLSTATUS |
LINECALLSTATUS
The LINECALLSTATUS structure describes the current status of a call. The information in this structure, as returned via lineGetCallStatus, depends on the device capabilities of the address, the ownership of the call by the invoking application, and the current state of the call being queried.
typedef struct linecallstatus_tag {
DWORDdwTotalSize;
DWORDdwNeededSize;
DWORDdwUsedSize;
DWORDdwCallState;
DWORDdwCallStateMode;
DWORDdwCallPrivilege;
DWORDdwCallFeatures;
DWORDdwDevSpecificSize;
DWORDdwDevSpecificOffset;
} LINECALLSTATUS, FAR *LPLINECALLSTATUS;
Fields: | The LINECALLSTATUS structure contains the following fields: |
dwTotalSize | The total size in bytes allocated to this data structure. |
DwNeededSize | The size in bytes for this data structure that is needed to hold all the returned information. |
DwUsedSize | The size in bytes of this data structure that contains useful information. |
DwCallState | |
dwCallStateMode | The dwCallState field specifies the current call state of the call, of type LINECALLSTATE. The interpretation of the dwCallStateMode field is call state dependent. It specifies the current mode of the call while in its current state (if that state defines a mode). |
LINECALLSTATE_IDLE | Call state mode is unused. |
LINECALLSTATE_OFFERING | Call state mode is unused. |
LINECALLSTATE_ACCEPTED | Call state mode is unused. |
LINECALLSTATE_DIALTONE | The call state mode is of type LINEDIALTONEMODE. Values are: |
LINEDIALTONEMODE_NORMAL | This is a "normal" dialtone which typically is a continuous tone. |
LINEDIALTONEMODE_SPECIAL | This is a special dialtone indicating a certain condition is currently in effect. |
LINEDIALTONEMODE_INTERNAL | This an internal (e.g., PBX) dialtone. |
LINEDIALTONEMODE_EXTERNAL | This is an external (e.g., public network) dialtone. |
LINEDIALTONEMODE_UNKNOWN | The dialtone mode is currently known, but may become known later. |
LINEDIALTONEMODE_UNAVAIL | The dialtone mode is unavailable and will not become known. |
LINECALLSTATE_DIALING | The call state mode is of type LINEDIALINGMODE. Values are: |
LINEDIALINGMODE_ADDRESS | Specifies that an address is being dialed. | |
LINEDIALINGMODE_BILLING | Specifies that billing information such as a credit card number is being dialed. | |
LINECALLSTATE_RINGBACK | Call state mode is unused. | |
LINECALLSTATE_BUSY | The call state mode is of type LINEBUSYMODE. Values are: | |
LINEBUSYMODE_STATION | The busy signal indicates that the called party's station is busy. This is usually signaled via a "normal" busy tone. | |
LINEBUSYMODE_TRUNK | The busy signal indicates that a trunk or circuit is busy. This is usually signaled via a "long" busy tone. | |
LINEBUSYMODE_UNKNOWN | The busy signal's specific mode is currently unkown, but may become known later. | |
LINEBUSYMODE_UNAVAIL | The busy signal's specific mode is unavailable and will not become known. | |
LINECALLSTATE_SPECIALINFO | The call state mode is of type LINESPECIALINFO. Values are: | |
LINESPECIALINFO_NOCIRCUIT | This special information tone preceeds a no circuit or emergency announcement (trunk blockage category). | |
LINESPECIALINFO_CUSTIRREG | This special information tone preceeds a vacant number, AIS, Centrex number change and non-working station, access code not dialed or dialed in error, manual intercept operator message (customer irregularity category). | |
LINESPECIALINFO_REORDER | This special information tone preceeds a reorder announcement (equipment irregularity category). |
LINESPECIALINFO_UNKNOWN | Specific about the special information tone are currently unknown but may become known later. |
LINESPECIALINFO_UNAVAIL | Specifics about the special information tone are unavailable, and will not become known. |
LINECALLSTATE_CONNECTED | Call state mode is unused. |
LINECALLSTATE_PROCEEDING | Call state mode is unused. |
LINECALLSTATE_ONHOLD | Call state mode is unused. |
LINECALLSTATE_CONFERENCED | Call state mode is unused. |
LINECALLSTATE_ONHOLDPENDCONF | Call state mode is unused. |
LINECALLSTATE_ONHOLDPENDTRANSF | Call state mode is unused. |
LINECALLSTATE_DISCONNECTED | Call state mode is of type LINEDISCONNECTMODE. Values are: |
LINEDISCONNECTMODE_NORMAL | This is a "normal" disconnect request by the remote party, the call was terminated normally. |
LINEDISCONNECTMODE_UNKNOWN | The reason for the disconnect request is unknown. |
LINEDISCONNECTMODE_REJECT | The remote user has rejected the call. |
LINEDISCONNECTMODE_PICKUP | The call was picked up from elsewhere. |
LINEDISCONNECTMODE_FORWARDED | The call was forwarded by the switch. |
LINEDISCONNECTMODE_BUSY | The remote user's station is busy. |
LINEDISCONNECTMODE_NOANSWER | The remote user's station does not answer. |
LINEDISCONNECTMODE_BADADDRESS | The destination address in invalid. |
LINEDISCONNECTMODE_UNREACHABLE | The remote user could not be reached. |
LINEDISCONNECTMODE_CONGESTION | The network is congested. |
LINEDISCONNECTMODE_INCOMPATIBLE | The remote user's station equipment is incompatible for the type of call requested. |
LINEDISCONNECTMODE_UNAVAIL | The remote user's station equipment is incompatible for the type of call requested. |
LINECALLSTATE_UNKNOWN | Call state mode is unused. |
DwCallPrivilege | Specifies the application's privilege for this call, of type LINECALLPRIVILEGE. Values are: |
LINECALLPRIVILEGE_MONITOR | The app has monitor privileges. |
LINECALLPRIVILEGE_OWNER | The app has owner privileges. |
DwCallFeatures | These flags indicate which Telephony API functions can be invoked on the call given the availability of the feature in the device capabilities, the current call state, and call ownership of the invoking application. This field is of type LINECALLFEATURE. A zero indicates the corresponding feature cannot be invoked by the application on the call in its current state; a one indicates the feature can be invoked. |
DwDevSpecificSize | |
dwDevSpecificOffset | The size in bytes and the offset in bytes from the beginning of this data structure of the variable sized device specific field. |
Extensibility | Device specific extensions should use the DevSpecific (dwDevSpecificSize and dwDevSpecificOffset) variable sized area of this data structure. |
Comments | The application is sent a LINE_CALLSTATE message whenever the call state of a call changes. This message only provides the new call state of the call. Additional status about a call is available via lineGetCallStatus. |
See AlsoFunctions: | : lineGetCallStatus |
Messages: | LINE_CALLSTATE |
Data Types: | : LINECALLSTATE, LINECALLFEATURE, LINEBUSYMODE, LINEDIALINGMODE, LINEDIALTONEMODE, LINESPECIALINFO, LINEDISCONNECTMODE |
LINEDEVCAPFLAGS
The LINEDEVCAPFLAGS bit flag constants are a collection of BOOLEANs describing various line device capabilities.
LINEDEVCAPFLAGS_CROSSADDRCONF0x00000001
LINEDEVCAPFLAGS_HIGHLEVCOMP0x00000002
LINEDEVCAPFLAGS_LOWLEVCOMP0x00000004
LINEDEVCAPFLAGS_MEDIACONTROL0x00000008
LINEDEVCAPFLAGS_MULTIPLEADDR0x00000010
Values | The LINEDEVCAPFLAGS constants have the following values. |
LineDevCapFlags_crossAddrConf | Specifies whether or not calls on different addresses on this line can be conferenced. |
LineDevCapFlags_highLevComp | Specifies whether or not high level compatibility information elements are supported on this line. |
LineDevCapFlags_lowLevComp | Specifies whether or not low level compatibility information elements are supported on this line. |
LineDevCapFlags_mediaControl | Specifies whether or not media control operations are available for calls at this line. |
LineDevCapFlags_multipleAddr | Specifies whether or not lineMakeCall or lineDial are able to deal with multiple addresses at once (e.g., for inverse multiplexing). |
Extensibility | None. All 32 bits are reserved. |
Comments | None. |
See AlsoData Types: | : LINEDEVCAPS |
LINEDEVCAPS
The LINEDEVCAPS structure describes the capabilities of a line device.
typedef struct linedevcaps_tag {
DWORDdwTotalSize;
DWORDdwNeededSize;
DWORDdwUsedSize;
DWORDdwAPIVersion;
DWORDdwExtVersion;
DWORDdwExtensionID0;
DWORDdwExtensionID1;
DWORDdwExtensionID2;
DWORDdwExtensionID3;
DWORDdwProviderInfoSize;
DWORDdwProviderInfoOffset;
DWORDdwSwitchInfoSize;
DWORDdwSwitchInfoOffset;
DWORDdwPermanentLineID;
DWORDdwLineNameSize;
DWORDdwLineNameOffset;
DWORDdwStringFormat;
DWORDdwNumAddresses;
DWORDdwBearerModes;
DWORDdwMaxRate;
DWORDdwMediaModes;
DWORDdwGenerateToneModes;
DWORDdwGenerateToneMaxNumFreq;
DWORDdwGenerateDigitModes;
DWORDdwMonitorToneMaxNumFreq;
DWORDdwMonitorToneMaxNumEntries;
DWORDdwMonitorDigitModes;
DWORDdwGatherDigitsMinTimeout;
DWORDdwGatherDigitsMaxTimeout;
DWORDdwMedCtlDigitMaxListSize;
DWORDdwMedCtlMediaMaxListSize;
DWORDdwMedCtlToneMaxListSize;
DWORDdwMedCtlCallStateMaxListSize;
DWORDdwDevCapFlags;
DWORDdwMaxNumActiveCalls;
DWORDdwAnswerMode;
DWORDdwRingModes;
DWORDdwLineStates;
DWORDdwUUIAcceptSize;
DWORDdwUUIAnswerSize;
DWORDdwUUIMakeCallSize;
DWORDdwUUIDropSize;
DWORDdwUUISendUserUserInfoSize;
DWORDdwUUICallInfoSize;
LINEDIALPARAMSMinDialParams;
LINEDIALPARAMSMaxDialParams;
LINEDIALPARAMSDefaultDialParams;
DWORDdwNumTerminals;
DWORDdwTerminalCapsSize;
DWORDdwTerminalCapsOffset;
DWORDdwTerminalTextEntrySize;
DWORDdwTerminalTextSize;
DWORDdwTerminalTextOffset;
DWORDdwDevSpecificSize;
DWORDdwDevSpecificOffset;
} LINEDEVCAPS, FAR *LPLINEDEVCAPS;
Fields: | The LINEDEVCAPS structure contains the following fields: |
dwTotalSize | The total size in bytes allocated to this data structure. |
DwNeededSize | The size in bytes for this data structure that is needed to hold all the returned information. |
DwUsedSize | The size in bytes of this data structure that contains useful information. |
DwAPIVersion | Specifies the API version number under which the Telephony API and the service provider for the line device will be operating. The high-order word is the major version number and the low-order word is the minor version number. |
DwExtVersion | Specifies the extension version number under which the service provider for the line device will be operating. This version number is keyed to the specified Extension ID. The high-order word is the major version number and the low-order word is the minor version number. |
DwExtensionID0 dwExtensionID1 dwExtensionID2 dwExtensionID3 | These four DWORDs specify the globally unique Extension ID for the service provider for the line device. |
DwProviderInfoSize dwProviderInfoOffset | The size in bytes and the offset in bytes from the beginning of this data structure of the variable sized field containing service provider information. |
DwSwitchInfoSize dwSwitchInfoOffset | The size in bytes and the offset in bytes from the beginning of this data structure of the variable sized device field containing switch information. |
DwPermanentLineID | Specifies the permanent DWORD identifier by which the line device is known in the system's configuration. |
DwLineNameSize dwLineNameOffset | The size in bytes and the offset in bytes from the beginning of this data structure of the variable sized device field containing user configurable name for this line device. This name can be configured by the user when configuring the line device's service provider and is provided for the user's convenience. |
DwStringFormat | Specifies the string format used with this line device, of type STRINGFORMAT. Values are: |
STRINGFORMAT_ASCII | This is ASCII string format using one byte per character. |
STRINGFORMAT_DBCS | This is DBCS string format using two bytes per character. |
STRINGFORMAT_UNICODE | This is unicode string format using two bytes per character. |
DwNumAddresses | Specifies the number of addresses associated with this line device. Individual addresses are referred to by address IDs. Address IDs range from zero to one less than the value indicated by dwNumAddresses. |
DwBearerModes | This flag array indicates the different bearer modes, of type LINEBEARERMODE the address is able to support. |
LINEBEARERMODE. | Specifies the current bearer mode of the call, of type Values are: |
LINEBEARERMODE_VOICE | This is a regular 3.1kHz analog voice grade bearer service. Bit integrity is not assured. Voice can support fax and modem media modes. |
LINEBEARERMODE_SPEECH | This corresponds to G.711 speech transmission on the call. The network may use processing techniques such as analog transmission, echo cancellation and compression/decompression. Bit integrity is not assured. Speech is not intended to support fax and modem media modes. |
LINEBEARERMODE_MULTIUSE | The multi-use mode defined by ISDN. |
LINEBEARERMODE_DATA | The unrestricted data transfer on the call. The data rate is specified separately. |
LINEBEARERMODE_ALTSPEECHDATA | The alternate transfer of speech or unrestricted data on the same call (ISDN). |
LINEBEARERMODE_NONCALLSIGNALING | This corresponds to a non call-associated signaling connection from the app to the service provider or switch (treated as a "media stream" by the Telephony API). |
DwMaxRate | This field contains the maximum data rate in bits per second for information exchange over the call. |
DwMediaModes | This flag array indicates the different media modes the address is able to support, of type LINEMEDIAMODE. |
LINEMEDIAMODE_NONE | No media stream. This value is mainly used as a NULL value. |
LINEMEDIAMODE_UNKNOWN | A media stream exists but its mode is not known. This would correspond to a call with an unclassified media type. In typical analog telephony environments, an inbound call's media mode may be unknown until after the call has been answered and the media stream filtered to make a determination. |
LINEMEDIAMODE_INTERACTIVEVOICE | The presence of voice energy on the call and the call is treated as an interactive call with humans on both ends. |
LINEMEDIAMODE_AUTOMATEDVOICE | The presence of voice energy on the call and the voice is locally handled by an automated application. |
LINEMEDIAMODE_DIGITALDATA | Digital data being transmitted over the call. |
LINEMEDIAMODE_G3FAX | A group 3 fax is being sent or received over the call. |
LINEMEDIAMODE_G4FAX | A group 4 fax is being sent or received over the call. |
LINEMEDIAMODE_DATAMODEM | A data modem session on the call. |
LINEMEDIAMODE_TELETEX | A teletex session on the call. Teletex is one of the telematic services. |
LINEMEDIAMODE_VIDEOTEX | A videotex session on the call. Videotex is one the telematic services. |
LINEMEDIAMODE_TELEX | A telex session on the call. Telex is one the telematic services. |
LINEMEDIAMODE_MIXED | A mixed session on the call. Mixed is one the ISDN telematic services. |
LINEMEDIAMODE_TDD | A TDD session on the call. TDD stands for Telephony Devices for the Deaf. |
LINEMEDIAMODE_ADSI | An ADSI session on the call. ADSI stands for Analog Display Services Interface. |
LINEMEDIAMODE_UNAVAIL | The media mode of the call is unavailable and will not be known. |
DwGenerateToneModes | Specifies the different kinds of tones that can be generated on this line, of type LINETONEMODE. Values are: |
LINETONEMODE_CUSTOM | The tone is a custom tone, defined by the specified frequencies. |
LINETONEMODE_RINGBACK | The tone to be generated is ringback tone. |
LINETONEMODE_BUSY | The tone is a standard (station) busy tone. |
LINETONEMODE_BEEP | The tone is a beep, as used to announce the beginning of a recording. |
LINETONEMODE_BILLING | The tone is billing information tone such as a credit card prompt tone. |
DwGenerateToneMaxNumFreq | This field contains the maximum number of frequencies that can be specified in describing a general tone using the LINEGENERATETONE data structure when generating a tone using lineGenerateTone. A value of zero indicates that tone generation is not available. |
DwGenerateDigitModes | This field specifies the digit modes than can be generated on this line, of type LINEDIGITMODE. Values are: |
LINEDIGITMODE_PULSE | Generate digits as pulse/rotary pulse sequences. |
LINEDIGITMODE_DTMF | Generate digits as DTMF tones. |
DwMonitorToneMaxNumFreq | This field contains the maximum number of frequencies that can be specified in describing a general tone using the LINEMONITORTONE data structure when monitoring a general tone using lineMonitorTones. A value of zero indicates that tone monitor is not available. |
DwMonitorToneMaxNumEntries | This field contains the maximum number of entries that can be specified in a tone list to lineMonitorTones. |
DwMonitorDigitModes | This field specifies the digit modes than can be detected on this line, of type LINEDIGITMODE. Values are: |
LINEDIGITMODE_PULSE | Detect digits as audible clicks that are the result of rotary pulse sequences. |
LINEDIGITMODE_DTMF | Detect digits as DTMF tones. |
LINEDIGITMODE_DTMFEND | Detect down edges of digits detected as DTMF tones. |
DwGatherDigitsMinTimeout | |
dwGatherDigitsMaxTimeout | These fields contain the minimum and maximum values in milliseconds that can be specified for both the first digit and inter digit timeout values used by lineGatherDigits. If both these field are zero, then timeouts are not supported. |
DwMedCtlDigitMaxListSize dwMedCtlMediaMaxListSize dwMedCtlToneMaxListSize dwMedCtlCallStateMaxListSize | These fields contain the maximum number of entries that can be specified in the digit list, the media list, the tone list, and the call state list parameters of lineSetMediaControl respectively. |
DwDevCapFlags | This field specifies various boolean device capabilities, of type LINEDEVCAPFLAGS. Values are: |
LINEDEVCAPFLAGS_CROSSADDRCONF | Specifies whether or not calls on different addresses on this line can be conferenced. |
LINEDEVCAPFLAGS_HIGHLEVCOMP | Specifies whether or not high level compatibility information elements are supported on this line. |
LINEDEVCAPFLAGS_LOWLEVCOMP | Specifies whether or not low level compatibility information elements are supported on this line. |
LINEDEVCAPFLAGS_MEDIACONTROL | Specifies whether or not media control operations are available for calls at this line. |
LINEDEVCAPFLAGS_MULTIPLEADDR | Specifies whether or not lineMakeCall or lineDial are able to deal with multiple addresses at once (e.g., for inverse multiplexing). |
DwMaxNumActiveCalls | This field provides the maximum number of (minimum bandwidth) calls that can be active (i.e., connected) on the line at any one time. The actual number of active calls may be lower if higher bandwidth calls have been established on the line. |
DwAnswerMode | This field specifies the effect on the active call when answering another offering call on a line device, of type LINEANSWERMODE. Values are: |
LINEANSWERMODE_NONE | Answering another call on the same has no effect on the existing active call(s) on the line. |
LINEANSWERMODE_DROP | The currently active call will be automatically dropped. |
LINEANSWERMODE_HOLD | The currently active call will automatically be placed on hold. |
DwRingModes | This field contains the number of different ring modes that can be reported via the LINE_LINEDEVSTATE message with the ringing indication. Different ring modes range from one to dwRingModes. Zero indicates no ring. |
DwLineStates | This field specified the different line status components for which the application may be notified via a LINE_LINEDEVSTATE message on this line, of type LINEDEVSTATE. Values are: |
LINEDEVSTATE_OTHER | An other status item than those listed below has changed. |
LINEDEVSTATE_RINGING | The switch tells the line to alert the user. |
LINEDEVSTATE_CONNECTED | The line was previously disconnected and is now connected to the API. |
LINEDEVSTATE_DISCONNECTED | This line was previously connected and is now disconnected from the API. |
LINEDEVSTATE_MSGWAITON | The message waiting indicator is turned on. |
LINEDEVSTATE_MSGWAITOFF | The message waiting indicator is turned off. |
LINEDEVSTATE_INSERVICE | The line is connected to the API. This happens when the API is first activated, or when the line wire is physically plugged in and in service at the switch while the API is active. |
LINEDEVSTATE_OUTOFSERVICE | The line is out of service at the switch or physically disconnected. The API cannot be used to operate on the line device. |
LINEDEVSTATE_MAINTENANCE | Mainatenance is being performed on the line at the switch. The API cannot be used to operate on the line device. |
LINEDEVSTATE_OPEN | The line has been opened. |
LINEDEVSTATE_CLOSE | The line has been closed. |
LINEDEVSTATE_NUMCALLS | The number of calls on the line device has changed. |
LINEDEVSTATE_TERMINALS | The terminal settings have changed. |
LINEDEVSTATE_ROAMMODE | The roam mode of the line device has changed. |
LINEDEVSTATE_BATTERY | The battery level has changed significantly (cellular). |
LINEDEVSTATE_SIGNAL | The signal level has changed significantly (cellular). |
LINEDEVSTATE_DEVSPECIFIC | The line's device specific information has changed. |
LINEDEVSTATE_REINIT | Items have changed in the configuration of line devices. To become aware of these changes (e.g., new line devices) the app should reinitialize its use of the API. The hDevice parameter is left NULL for this state change as it applies to any of the lines in the system. |
LINEDEVSTATE_LOCK | The locked status of the line device has changed. |
DwUUIAcceptSize | This field specifies the maximum size of user-to-user information that can be sent during a call accept. |
DwUUIAnswerSize | This field specifies the maximum size of user-to-user information that can be sent during a call answer. |
DwUUIMakeCallSize | This field specifies the maximum size of user-to-user information that can be sent during a make call. |
DwUUIDropSize | This field specifies the maximum size of user-to-user information that can be sent during a call drop. |
DwUUISendUserUserInfoSize | This field specifies the maximum size of user-to-user information that can be sent separately any time during a call via lineSendUserUserInfo. |
DwUUICallInfoSize | This field specifies the maximum size of user-to-user information that can be received via the LINECALLINFO structure. |
MinDialParams MaxDialParams | These fields contain the minimum and maximum values for the dial parameters in milliseconds that can be set for calls on this line. Dialing parameters can be set to values in this range. The granularity of the actual settings are service provider-specific. |
DefaultDialParams | This field contains the default dial params used for calls on this line. These parameter values can be overridden on a per-call basis. |
DwNumTerminals | Specifies the number of terminals that can be set for this line device, its addresses, or its calls. Individual terminals are referred to by terminal IDs, and range from zero to one less than the value indicated by dwNumTerminals. |
DwTerminalCapsSize dwTerminalCapsOffset | The size in bytes and the offset in bytes from the beginning of this data structure of the variable sized device field containing an array with entries of type LINETERMCAPS. This array is indexed by terminal IDs, in the range from zero to dwNumTerminals -1. Each entry in the array specifies the terminal device capabilities of the corresponding terminal. |
DwTerminalTextEntrySize | Specifies the size in bytes of each of the terminal text descriptions pointed at by dwTerminalTextSize/Offset. |
DwTerminalTextSize dwTerminalTextOffset | The size in bytes and the offset from the beginning of this data structure in bytes of the variable sized field containing descriptive text about each of the line's available terminals. Each message is dwTerminalTextEntrySize bytes long. The string format of these textual descriptions is indicated by dwStringFormat in the line's device capabilities. |
DwDevSpecificSize dwDevSpecificOffset | The size in bytes and the offset in bytes from the beginning of this data structure of the variable sized device specific field. |
Extensibility | Device specific extensions should use the DevSpecific (dwDevSpecificSize and dwDevSpecificOffset) variable sized area of this data structure. |
Comments | None. |
See AlsoFunctions: | : lineGetDevCaps |
Data Types: | : LINEADDRESSSHARING, LINETERMMODE, LINEBEARERMODE, LINEGENERATETONE, LINEDIGITMODE |
LINEDEVSTATE
The LINEDEVSTATE bit flag constants describe various line status events.
LINEDEVSTATE_OTHER0x00000001
LINEDEVSTATE_RINGING0x00000002
LINEDEVSTATE_CONNECTED0x00000004
LINEDEVSTATE_DISCONNECTED0x00000008
LINEDEVSTATE_MSGWAITON0x00000010
LINEDEVSTATE_MSGWAITOFF0x00000020
LINEDEVSTATE_INSERVICE0x00000040
LINEDEVSTATE_OUTOFSERVICE0x00000080
LINEDEVSTATE_MAINTENANCE0x00000100
LINEDEVSTATE_OPEN0x00000200
LINEDEVSTATE_CLOSE0x00000400
LINEDEVSTATE_NUMCALLS0x00000800
LINEDEVSTATE_NUMCOMPLETIONS0x00001000
LINEDEVSTATE_TERMINALS0x00002000
LINEDEVSTATE_ROAMMODE0x00004000
LINEDEVSTATE_HOME0x00008000
LINEDEVSTATE_BATTERY0x00010000
LINEDEVSTATE_SIGNAL0x00020000
LINEDEVSTATE_DEVSPECIFIC0x00040000
LINEDEVSTATE_REINIT0x00080000
LINEDEVSTATE_LOCK0x00100000
Values | The LINEDEVSTATE constants have the following values. |
LineDevState_other | An other device status item has changed. |
LineDevState_ringing | The switch tells the line to alert the user. |
LineDevState_connected | The line was previously disconnected and is now connected to the API. |
LineDevState_disconnected | This line was previously connected and is now disconnected from the API. |
LineDevState_msgWaitOn | The message waiting indicator is turned on. |
LineDevState_msgWaitOff | The message waiting indicator is turned off. |
LineDevState_inService | The line is connected to the API. This happens when the API is first activated, or when the line wire is physically plugged in and in service at the switch while the API is active. |
LineDevState_outOfService | The line is out of service at the switch or physically disconnected. The API cannot be used to operate on the line device. |
LineDevState_maintenance | Mainatenance is being performed on the line at the switch. The API cannot be used to operate on the line device. |
LineDevState_open | The line has been opened by another application. |
LineDevState_close | The line has been closed by another application. |
LineDevState_numCalls | The number of calls on the line device has changed. |
LineDevState_numCompletions | The number of outstanding call completions on the line device has changed. |
LineDevState_terminals | The terminal settings have changed. This may happen, for example, if multiple line devices share terminals among them (e.g., two lines sharing a phone terminal). |
LineDevState_roammode | The roam mode of the line device has changed. |
LineDevState_battery | The battery level has changed significantly (cellular). |
LineDevState_signal | The signal level has changed significantly (cellular). |
LineDevState_devSpecific | The line's device specific information has changed. |
LineDevState_reinit | Items have changed in the configuration of line devices. To become aware of these changes (e.g., new line devices) the app should reinitialize its use of the API. |
LineDevState_lock | The locked status of the line device has changed. |
Extensibility | The high order 8 bits can be assigned for device specific extensions. The low order 24 bits are reserved. |
Comments | None. |
See AlsoFunctions: | lineForward, lineGetLineDevStatus |
Messages: LINE_ADDRESSSTATE |
LINEDEVSTATUS
The LINEDEVSTATUS structure describes the current status of a line device.
typedef struct linedevstatus_tag {
DWORDdwTotalSize;
DWORDdwNeededSize;
DWORDdwUsedSize;
DWORDdwNumOpens;
DWORDdwOpenMediaModes;
DWORDdwNumActiveCalls;
DWORDdwNumOnHoldCalls;
DWORDdwNumOnHoldPendCalls;
DWORDdwLineFeatures;
DWORDdwNumCallCompletions;
DWORDdwRingMode;
DWORDdwSignalLevel;
DWORDdwBatteryLevel;
DWORDdwRoamMode;
DWORDdwDevStatusFlags;
DWORDdwTerminalModesSize;
DWORDdwTerminalModesOffset;
DWORDdwDevSpecificSize;
DWORDdwDevSpecificOffset;
} LINEDEVSTATUS, FAR *LPLINEDEVSTATUS;
Fields: | The LINEDEVSTATUS structure contains the following fields: |
dwTotalSize | The total size in bytes allocated to this data structure. |
DwNeededSize | The size in bytes for this data structure that is needed to hold all the returned information. |
DwUsedSize | The size in bytes of this data structure that contains useful information. |
DwNumOpens | Specifies the number of active opens on the line device. |
DwOpenMediaModes | This bit array indicates for which media modes the line device is currently open. |
DwNumActiveCalls | Specifies the number of calls currently active. This number excludes all calls on hold or on hold pending transfer or conference. |
DwNumOnHoldCalls | Specifies the number of calls currently on hold. |
DwNumOnHoldPendingCalls | Specifies the number of calls currently on hold pending either transfer to conference (or drop). |
DwLineFeatures | This field specifies the line-related API functions that are currently available on this line, of type LINEFEATURE. Values are: |
LINEFEATURE_DEVSPECIFIC | Device specific operations can be used on the line. |
LINEFEATURE_DEVSPECIFICFEAT | Device specific features can be used on the line. |
LINEFEATURE_FORWARD | Forwarding of all addresses can be used on the line. |
LINEFEATURE_MAKECALL | An outbound call can be placed on this line using an unspecified address. |
LINEFEATURE_SETMEDIACONTROL | Media control can be set on this line. |
LINEFEATURE_SETERMINAL | Terminal modes for this line can be set. |
DwNumCallCompletions | Specifies the number of outstanding call completion requests on the line. |
DwRingMode | Specifies the current ring mode on the line device. |
DwBatteryLevel | Specifies the current battery level of the line device hardware. This is value in the range 0x00000000 (battery empty) to 0x0000FFFF (battery full). |
DwSignalLevel | Specifies the current signal level of the connection on the line. This is value in the range 0x00000000 (weakest signal) to 0x0000FFFF (strongest signal). |
DwRoamMode | Specifies the current roam mode of the line device, of type LINEROAMMODE. Values are: |
LINEROAMMODE_UNKNOWN | The roam mode is currently unknown, but may become known later. |
LINEROAMMODE_UNAVAIL | The roam mode is unavailable and will not be known. |
LINEROAMMODE_HOME | The line is connected to the home network node. |
LINEROAMMODE_ROAMA | The line is connected to the Roam-A carrier and calls are charged accordingly. |
LINEROAMMODE_ROAMB | The line is connected to the Roam-B carrier and calls are charged accordingly. |
DwDevStatusFlags | The size in bytes of this data structure that contains useful information, of type LINEDEVSTATUSFLAGS. |
LINEDEVSTATUSFLAGS_CONNECTED | Specifies whether the line is connected to the API. If TRUE, the line is connected, and API is able to operate on the line device. If FALSE, the line is disconnected, and the application is unable to control the line device via the API. |
LINEDEVSTATUSFLAGS_MSGWAIT | This field indicates whether or not the line has a message waiting. If TRUE, a message is waiting; if FALSE, no message is waiting. |
LINEDEVSTATUSFLAGS_INSERVICE | This field indicates whether or not the line is in service. If TRUE, th elin eis in service; if FALSE, the line is out of service. |
DwTerminalModesSize | |
dwTerminalModesOffset | The size in bytes and the offset in bytes from the beginning of this data structure of the variable sized device field containing an array with DWORD-sized entries, of type LINETERMMODE. This array is indexed by terminal IDs, in the range from zero to dwNumTerminals -1. Each entry in the array specifies the current terminal modes for the corresponding terminal set via the lineSetTerminal operation for this line. Values are: |
LINETERMMODE_LAMPS | This are lamp events sent from the line to the terminal. |
LINETERMMODE_BUTTONS | These are button press events sent from the terminal to the line. |
LINETERMMODE_DISPLAY | This is display information sent from the line to the terminal. |
LINETERMMODE_RINGER | This is ringer control information sent from the switch to the terminal. |
LINETERMMODE_HOOKSWITCH | These are hookswitch event sent between the terminal and the line. |
LINETERMMODE_MEDIAFROMTERM | 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_MEDIATOTERM | 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_MEDIABIDIR | 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. |
DwDevSpecificSize | |
dwDevSpecificOffset | The size in bytes and the offset in bytes from the beginning of this data structure of the variable sized device specific field. |
Extensibility | Device specific extensions should use the DevSpecific (dwDevSpecificSize and dwDevSpecificOffset) variable sized area of this data structure. |
Comments | None. |
See AlsoFunctions: | lineGetLineDevStatus |
Data Types: | LINEOPENMODE, LINEMEDIAMODE |
LINEDEVSTATUSFLAGS
The LINEDEVSTATUSFLAGS bit flag constants describe a collection of BOOLEAN line device status items.
LINEDEVSTATUSFLAGS_CONNECTED0x00000001
LINEDEVSTATUSFLAGS_MSGWAIT0x00000002
LINEDEVSTATUSFLAGS_INSERVICE0x00000004
LINEDEVSTATUSFLAGS_LOCKED0x00000008
Values | The LINEDEVSTATUSFLAGS constants have the following values. |
LineDevStatusFlags_connected | Specifies whether the line is connected to the API. If TRUE, the line is connected, and API is able to operate on the line device. If FALSE, the line is disconnected, and the application is unable to control the line device via the API. |
LineDevStatusFlags_msgWait | This field indicates whether or not the line has a message waiting. If TRUE, a message is waiting; if FALSE, no message is waiting. |
LineDevStatusFlags_inService | This field indicates whether or not the line is in service. If TRUE, the line is in service; if FALSE, the line is out of service. |
LineDevStatusFlags_locked | This field indicates whether or not the line is locked or unlocked. The locked state is useful with cellular telephones. |
Extensibility | The high order 16 bits can be assigned for device specific extensions. The low order 16 bits are reserved. |
Comments | LINEDEVSTATUSFLAGS is provided as a field of the LINECALLSTATUS data structure. |
See AlsoData Types: | LINECALLSTATUS |
LINEDIALPARAMS
The LINEDIALPARAMS structure describes a collection of dialing-related parameters.
typedef struct linedialparams_tag {
DWORDdwDialPause;
DWORDdwDialSpeed;
DWORDdwDigitDuration;
DWORDdwWaitForDialtone;
} LINEDIALPARAMS, FAR *LPLINEDIALPARAMS;
Values | The LINEDIALPARAMS structure contains the following fields: |
dwDialPause | Specifies the duration in milliseconds of a comma in the dialable address. |
DwDialSpeed | Specifies the inter-digit time period in milliseconds between successive digits. |
DwDigitDuration | Specifies the duration in milliseconds of a digit. |
DwWaitForDialtone | Specifies the maximum amount of time that should be waited for dialtone when a 'W' is used in the dialable address. |
Extensibility | None. |
Comments | The LINEDIALPARAMS structure is used to set dialing related parameters on calls. lineMakeCall allows an application to adjust the dialing parameters to be used for the call. lineSetCallParams can be used to adjust the dialing parameters of an existing call. The LINECALLINFO structure lists the call's current dialing parameters. |
See AlsoFunctions: | lineMakeCall, lineSetCallParams, lineGetCallInfo |
Data Types: | LINECALLPARAMS, LINECALLINFO |
LINEDIALTONEMODE
The LINEDIALTONEMODE bit flag constants describe different types of dialtones. A special dialtone typically carries a special meaning (e.g., message waiting).
LINEDIALTONEMODE_NORMAL0x00000001
LINEDIALTONEMODE_SPECIAL0x00000002
LINEDIALTONEMODE_INTERNAL0x00000004
LINEDIALTONEMODE_EXTERNAL0x00000008
LINEDIALTONEMODE_UNKNOWN0x00000010
LINEDIALTONEMODE_UNAVAIL0x00000020
Values | The LINEDIALTONEMODE constants have the following values. |
LineDialtoneMode_normal | This is a "normal" dialtone which typically is a continuous tone. |
LineDialtoneMode_special | This is a special dialtone indicating a certain condition (known by the switch or network) is currently in effect. Special dialtones typically use an interrupted tone. As with a normal dial tone, this indicates that the switch is ready to receive the number to be dialed. |
LineDialtoneMode_internal | This an internal (e.g., PBX) dialtone. |
LineDialtoneMode_external | This is an external (e.g., public network) dialtone. |
LineDialtoneMode_unknown | The dialtone mode is currently known, but may become known later. |
LineDialtoneMode_unavail | The dialtone mode is unavailable and will not become known. |
Extensibility | The high order 16 bits can be assigned for device specific extensions. The low order 16 bits are reserved. |
Comments | LINEDIALTONEMODE is provided as part of the LINECALLSTATUS for a call in the dialtone state. |
See AlsoData Types: | LINECALLSTATUS |
LINEDIGITMODE
The LINEDIGITMODE constants describe different types of inband digit generation.
LINEDIGITMODE_PULSE0x00000001
LINEDIGITMODE_DTMF0x00000002
LINEDIGITMODE_DTMFEND0x00000004
Values | The LINEDIGITMODE constants have the following values. |
LineDigitMode_pulse | Uses rotary pulse sequences to signal digits. Valid digits are '0' through '9'. |
LineDigitMode_DTMF | Uses DTMF tones to signal digits. Valid digits are '0' through '9', '*', '#', 'A', 'B', 'C', and 'D'. |
LineDigitMode_DTMFEND | Uses DTMF tones to signal digits, and detect the down edges. Valid digits are '0' through '9', '*', '#', 'A', 'B', 'C', and 'D'. |
Extensibility | The high order 16 bits can be assigned for device specific extensions. The low order 16 bits are reserved. |
Comments | A digit mode can be specified when generating or detecting digits. Note that pulse digits are generated by making and breaking the local loop circuit. These pulses are absorbed by the switch. The remote end merely observes this as a series of inband audio clicks. Detecting digits sent as pulses must therefore be able to detect these sequences of 1 to 10 audible clicks. |
See AlsoFunctions: | lineGenerateDigits, lineMonitorDigits, lineGatherDigits, lineSetMediaControl |
Data Types: | LINEMEDIACONTROLDIGITS |
LINEDISCONNECTMODE
The LINEDISCONNECTMODE bit flag constants describe different reasons for a remote disconnect request. A disconnect mode is available as call status to the application after the call state transitions to disconnected.
LINEDISCONNECTMODE_NORMAL0x00000001
LINEDISCONNECTMODE_UNKNOWN0x00000002
LINEDISCONNECTMODE_REJECT 0x00000004
LINEDISCONNECTMODE_PICKUP0x00000008
LINEDISCONNECTMODE_FORWARDED0x00000010
LINEDISCONNECTMODE_BUSY0x00000020
LINEDISCONNECTMODE_NOANSWER0x00000040
LINEDISCONNECTMODE_BADADDRESS0x00000080
LINEDISCONNECTMODE_UNREACHEABLE0x00000100
LINEDISCONNECTMODE_CONGESTION0x00000200
LINEDISCONNECTMODE_INCOMPATIBLE0x00000400
LINEDISCONNECTMODE_UNAVAIL0x00000800
Values | The LINEDISCONNECTMODE constants have the following values. |
LineDisconnectMode_normal | This is a "normal" disconnect request by the remote party, the call was terminated normally. |
LineDisconnectMode_unknown | The reason for the disconnect request is unknown, but may become known later. |
LineDisconnectMode_reject | The remote user has rejected the call. |
LineDisconnectMode_pickup | The call was picked up from elsewhere. |
LineDisconnectMode_forwarded | The call was forwarded by the switch. |
LineDisconnectMode_busy | The remote user's station is busy. |
LineDisconnectMode_noAnswer | The remote user's station does not answer. |
LineDisconnectMode_badAddress | The destination address in invalid. |
LineDisconnectMode_unreacheable | The remote user could not be reached. |
LineDisconnectMode_congestion | The network is congested. |
LineDisconnectMode_incompatible | The remote user's station equipment is incompatible for the type of call requested. |
LineDisconnectMode_unavail | The reason for the disconnect is unavailable and will not become known later. |
Extensibility | The high order 8 bits can be assigned for device specific extensions. The low order 24 bits are reserved. |
Comments | A remote disconnect request for a given call results in the call state transitioning to the disconnected state and a LINE_CALLSTATE messages is sent to the application. The LINEDISCONNECTMODE information provides details about the remote disconnect request. It is available in the call's LINECALLSTATUS structure when the call is in the disconnected state. While a call is in this state, the application is still allowed to query the calls information and status. For example, user-to-user information received as part of the remote disconnect is available then. The app can clear a disconnected call by dropping the call. |
See AlsoData Types: | LINECALLSTATUS |
LINEERR
This is the list of error codes that the implementation may return when invoking operations on lines, addresses, or calls. Consult the individual function descriptions to determine which of these error codes each function may return.
LINEERR_ALLOCATED0x80000001
LINEERR_ADDRESSBLOCKED0x80000002
LINEERR_BADDEVICEID0x80000003
LINEERR_BEARERMODEUNAVAIL 0x80000004
LINEERR_BILLINGREJECTED0x80000005
LINEERR_CALLUNAVAIL0x80000006
LINEERR_COMLETIONOVERRUN 0x80000007
LINEERR_CONFERENCEFULL0x80000008
LINEERR_INCOMPATIBLEVERSION0x80000009
LINEERR_INUSE0x8000000A
LINEERR_INVALADDRESS0x8000000B
LINEERR_INVALADDRESSID0x8000000C
LINEERR_INVALADDRESSMODE0x8000000D
LINEERR_INVALAPPHANDLE0x8000000E
LINEERR_INVALBEARERMODE 0x8000000F
LINEERR_INVALCALLCOMPLMODE0x80000010
LINEERR_INVALCALLHANDLE0x80000011
LINEERR_INVALCALLPARAMS0x80000012
LINEERR_INVALCALLPRIVILEGE0x80000013
LINEERR_INVALCALLSELECT0x80000014
LINEERR_INVALCALLSTATE0x80000015
LINEERR_INVALCALLSTATELIST0x80000016
LINEERR_INVALCOMPLETIONID0x80000017
LINEERR_INVALCONFCALLHANDLE0x80000018
LINEERR_INVALCONSULTCALLHANDLE0x80000019
LINEERR_INVALDEVICEHANDLE0x8000001A
LINEERR_INVALDIGITLIST0x8000001B
LINEERR_INVALDIGITMODE0x8000001C
LINEERR_INVALDIGITS0x8000001D
LINEERR_INVALEXTVERSION 0x8000001E
LINEERR_INVALGROUPID0x8000001F
LINEERR_INVALMEDIALIST0x80000020
LINEERR_INVALMEDIAMODE0x80000021
LINEERR_INVALMODULENAME 0x80000022
LINEERR_INVALPARAM0x80000023
LINEERR_INVALPARKID0x80000024
LINEERR_INVALPARKMODE0x80000025
LINEERR_INVALPOINTER0x80000026
LINEERR_INVALPRIVSELECT0x80000027
LINEERR_INVALRATE 0x80000028
LINEERR_INVALREQUESTMODE0x80000029
LINEERR_INVALLINEHANDLE0x8000002A
LINEERR_INVALLINESTATE0x8000002B
LINEERR_INVALTERMINALID0x8000002C
LINEERR_INVALTERMINALMODE0x8000002D
LINEERR_INVALTONE0x8000002E
LINEERR_INVALTONELIST0x8000002F
LINEERR_INVALTONEMODE0x80000030
LINEERR_INVALTRANSFERMODE0x80000031
LINEERR_NODEVICE0x80000032
LINEERR_NODRIVER0x80000033
LINEERR_NOMEM0x80000034
LINEERR_NOREQUEST0x80000035
LINEERR_NOTREGISTERED0x80000036
LINEERR_OPERATIONFAILED0x80000037
LINEERR_OPERATIONUNAVAIL0x80000038
LINEERR_RATEUNAVAIL 0x80000039
LINEERR_RESOURCEUNAVAIL0x8000003A
LINEERR_REQUESTOVERRUN0x8000003B
LINEERR_TARGETNOTFOUND0x8000003C
Extensibility | Values 0xC0000000 through 0xFFFFFFFF are available for device specific extensions. Values 0x80000000 through 0xBFFFFFFF are reserved, while values 0x00000000 through 0x7FFFFFFF are used as Request IDs. |
Comments | If an application gets an error return that it does not specifically handle (e.g., and error defined by a device specific extension), then it should treat the error as a LINEERR_OPERATIONFAILED (for unspecified reason). |
See Also | Messages: LINE_REPLY |
LINEFEATURE
The LINEFEATURE constants list the operations that can be invoked on a line using this API.
LINEFEATURE_DEVSPECIFIC0x00000001
LINEFEATURE_DEVSPECIFICFEAT0x00000002
LINEFEATURE_FORWARD0x00000004
LINEFEATURE_MAKECALL0x00000008
LINEFEATURE_SETMEDIACONTROL0x00000010
LINEFEATURE_SETTERMINAL0x00000020
Values | Each of the LINEFEATURE values correspond to the API operation with the same name. Values are: |
LineFeature_devSpecific | Device specific operations can be used on the line. |
LineFeature_devSpecificFeat | Device specific features can be used on the line. |
LineFeature_forward | Forwarding of all addresses can be used on the line. |
LineFeature_makeCall | An outbound call can be placed on this line using an unspecified address. |
LineFeature_setMediaControl | Media control can be set on this line. |
LineFeature_setTerminal | Terminal modes for this line can be set. |
Extensibility | None. |
Comments | This data type is used both in LINEDEVCAPS (returned by lineGetDevCaps) and in LINEDEVSTATUS (returned by lineGetLineDevStatus). LINEDEVCAPS reports the availability of the line features by the service provider (mainly the switch) for a given line. An application would make this determination when it initializes. LINEDEVSTATUS reports for a given line which line features can actually be invoked while the line is in the current state. An application would make this determination dynamically, after line state changes, typically caused by address or call-related activities on the line. |
See AlsoFunctions: | lineGetLineDevStatus, lineGetDevCaps |
Data Types: | LINEDEVSTATUS, LINEDEVCAPS |
LINEFORWARD
The LINEFORWARD structure describes an entry of the forwarding instructions.
typedef struct lineforward_tag {
DWORDdwForwardMode;
DWORDdwCallerAddressSize;
DWORDdwCallerAddressOffset;
DWORDdwDestCountryCode;
DWORDdwDestAddressSize;
DWORDdwDestAddressOffset;
} LINEFORWARD, FAR *LPLINEFORWARD;
Values | The LINEFORWARD structure contains the following fields: |
dwForwardMode | Specifies the types of forwarding, of type LINEFORWARDMODE. Values are: |
LINEFORWARDMODE_UNCOND | Forward all calls unconditionally irrespective of their origin. Use this value when unconditional forwarding for internal and external calls cannot be controlled separately. Unconditional forwarding overrides forwarding on busy and/or no answer conditions. |
LINEFORWARDMODE_UNCONDINTERNAL | Forward all internal calls unconditionally. Use this value when unconditional forwarding for internal and external calls can be controlled separately. |
LINEFORWARDMODE_UNCONDEXTERNAL | Forward all external calls unconditionally. Use this value when unconditional forwarding for internal and external calls can be controlled separately. |
LINEFORWARDMODE_UNCONDSPECIFIC | Forward all calls that originated at a specified address unconditionally (selective call forwarding). |
LINEFORWARDMODE_BUSY | Forward all calls on busy irrespective of their origin. Use this value when forwarding for internal and external calls on busy and no answer cannot be controlled separately. |
LINEFORWARDMODE_BUSYINTERNAL | Forward all internal calls on busy. Use this value when forwarding for internal and external calls on busy and no answer can be controlled separately. |
LINEFORWARDMODE_BUSYEXTERNAL | Forward all external calls on busy. Use this value when forwarding for internal and external calls on busy and no answer can be controlled separately. |
LINEFORWARDMODE_BUSYSPECIFIC | Forward all calls that originated at a specified address on busy (selective call forwarding). |
LINEFORWARDMODE_NOASNW | Forward all calls on no answer irrespective of their origin. Use this value when call forwarding for internal and external calls on no answer cannot be controlled separately. |
LINEFORWARDMODE_NOANSWINTERNAL | Forward all internal calls on no answer. Use this value when forwarding for internal and external calls on no answer can be controlled separately. |
LINEFORWARDMODE_NOANSWEXTERNAL | Forward all external calls on no answer. Use this value when forwarding for internal and external calls on no answer can be controlled separately. |
LINEFORWARDMODE_NOANSWSPECIFIC | Forward all calls that originated at a specified address on no answer (selective call forwarding). |
LINEFORWARDMODE_BUSYNA | Forward all calls on busy/no answer irrespective of their origin. Use this value when forwarding for internal and external calls on busy and no answer cannot be controlled separately. |
LINEFORWARDMODE_BUSYNAINTERNAL | Forward all internal calls on busy/no answer. Use this value when call forwarding on busy and no answer cannot be controlled separately for internal calls. |
LINEFORWARDMODE_BUSYNAEXTERNAL | Forward all external calls on busy/no answer. Use this value when call forwarding on busy and no answer cannot be controlled separately for internal calls. |
LINEFORWARDMODE_BUSYNASPECIFIC | Forward all calls that originated at a specified address on busy/no answer (selective call forwarding). |
DwCallerAddressSize dwCallerAddressOffset | The size in bytes and the offset from the beginning of the containing data structure in bytes of the variable sized address field containing the address of a caller to be forwarded. |
DwDestCountryCode | Specifies the country code of the destination address where the call is to be forwarded to. |
DwDestAddressSize dwDestAddressOffset | The size in bytes and the offset from the beginning of the containing data structure in bytes of the variable sized address field containing the address of the address where calls are to be forwarded to. |
Extensibility | None. |
Comments | Each entry in the LINEFORWARD structure specifies a forwarding request. |
See AlsoFunctions: | lineForward, lineGetAddressState |
Messages: | LINE_ADDRESSSTATE |
Data Types: | LINEFORWARDMODE, LINECALLORIGIN, LINEFORWARDLIST |
LINEFORWARDLIST
The LINEFORWARDLIST structure describes a list of forwarding instructions.
typedef struct lineforwardlist_tag {
DWORDdwTotalSize;
DWORDdwNumEntries;
LINEFORWARDLineForward[1];
} LINEFORWARDLIST, FAR *LPLINEFORWARDLIST;
Values | The LINEFORWARDLIST structure contains the following fields: |
dwTotalSize | Specifies the total size in bytes of the data structure. |
DwNumEntries | Specifies number of entries in the array specified as ForwardList[]. |
ForwardList[] | Specifies an array of forwarding instruction. The array's entries are of type LINEFORWARD. |
Extensibility | None. |
Comments | The LINEFORWARDLIST structure defines the forwarding parameters requested for forwarding calls on an address or all addresses on a line. |
See AlsoFunctions: | lineForward, lineGetAddressStatus |
Messages: | LINE_ADDRESSSTATE |
Data Types: | LINEFORWARD |
LINEFORWARDMODE
The LINEFORWARDMODE bit flag constants describe the conditions under which calls to an address can be forwarded.
LINEFORWARDMODE_UNCOND0x00000001
LINEFORWARDMODE_UNCONDINTERNAL0x00000002
LINEFORWARDMODE_UNCONDEXTERNAL0x00000004
LINEFORWARDMODE_UNCONDSPECIFIC0x00000008
LINEFORWARDMODE_BUSY0x00000010
LINEFORWARDMODE_BUSYINTERNAL0x00000020
LINEFORWARDMODE_BUSYEXTERNAL0x00000040
LINEFORWARDMODE_BUSYSPECIFIC0x00000080
LINEFORWARDMODE_NOANSW0x00000100
LINEFORWARDMODE_NOANSWINTERNAL0x00000200
LINEFORWARDMODE_NOANSWEXTERNAL0x00000400
LINEFORWARDMODE_NOANSWSPECIFIC0x00000800
LINEFORWARDMODE_BUSYNA0x00001000
LINEFORWARDMODE_BUSYNAINTERNAL0x00002000
LINEFORWARDMODE_BUSYNAEXTERNAL0x00004000
LINEFORWARDMODE_BUSYNASPECIFIC0x00008000
Values | The LINEFORWARDMODE constants have the following values. |
LineForwardMode_uncond | Forward all calls unconditionally irrespective of their origin. Use this value when unconditional forwarding for internal and external calls cannot be controlled separately. Unconditional forwarding overrides forwarding on busy and/or no answer conditions. |
LineForwardMode_uncondInternal | Forward all internal calls unconditionally. Use this value when unconditional forwarding for internal and external calls can be controlled separately. |
LineForwardMode_uncondExternal | Forward all external calls unconditionally. Use this value when unconditional forwarding for internal and external calls can be controlled separately. |
LineForwardMode_uncondSpecific | Forward all calls that originated at a specified address unconditionally (selective call forwarding). |
LineForwardMode_busy | Forward all calls on busy irrespective of their origin. Use this value when forwarding for internal and external calls on busy and no answer cannot be controlled separately. |
LineForwardMode_busyInternal | Forward all internal calls on busy. Use this value when forwarding for internal and external calls on busy and no answer can be controlled separately. |
LineForwardMode_busyExternal | Forward all external calls on busy. Use this value when forwarding for internal and external calls on busy and no answer can be controlled separately. |
LineForwardMode_busySpecific | Forward all calls that originated at a specified address on busy (selective call forwarding). |
LineForwardMode_noAnsw | Forward all calls on no answer irrespective of their origin. Use this value when call forwarding for internal and external calls on no answer cannot be controlled separately. |
LineForwardMode_noAnswInternal | Forward all internal calls on no answer. Use this value when forwarding for internal and external calls on no answer can be controlled separately. |
LineForwardMode_noAnswExternal | Forward all external calls on no answer. Use this value when forwarding for internal and external calls on no answer can be controlled separately. |
LineForwardMode_noAnswSpecific | Forward all calls that originated at a specified address on no answer (selective call forwarding). |
LineForwardMode_busyNA | Forward all calls on busy/no answer irrespective of their origin. Use this value when forwarding for internal and external calls on busy and no answer cannot be controlled separately. |
LineForwardMode_busyNAInternal | Forward all internal calls on busy/no answer. Use this value when call forwarding on busy and no answer cannot be controlled separately for internal calls. |
LineForwardMode_busyNAExternal | Forward all external calls on busy/no answer. Use this value when call forwarding on busy and no answer cannot be controlled separately for internal calls. |
LineForwardMode_busyNASpecific | Forward all calls that originated at a specified address on busy/no answer (selective call forwarding). |
Extensibility | The high order 8 bits can be assigned for device specific extensions. The low order 24 bits are reserved. |
Comments | The bit flags defined by LINEFORWARDMODE are not orthogonal. Unconditional forwarding ignores any specific condition such as busy or no answer. If unconditional forwarding is not in effect, then forwarding on busy and no answer can either be controlled separately or not. If controlled separately, then the BUSY and NOANSW flags can be used separately. If not controlled separately, then the flag BUSYNA must be used. Similarly, if forwarding of internal and external calls can be controlled separately, then INTERNAL and EXTERNAL flags can be used separately, otherwise the combination is used. |
Address capabilities indicate for each address assigned to a line which forwarding mode(s) are available. An application can use lineForward to set forwarding conditions at the switch. | |
See AlsoFunctions: | lineForward, lineGetAddressCaps |
Messages: LINE_ADDRESSSTATE | |
Data Types: | LINEADDRESSCAPS, LINEADDRESSSTATUS, |
LINEFORWARD |
LINEGATHERTERM
The LINEGATHERTERM bit flag constants describe the conditions under which buffered digit gathering is terminated.
LINEGATHERTERM_BUFFERFULL0x00000001
LINEGATHERTERM_TERMDIGIT0x00000002
LINEGATHERTERM_FIRSTTIMEOUT0x00000004
LINEGATHERTERM_INTERTIMEOUT0x00000008
LINEGATHERTERM_CANCEL0x00000010
Values | The LINEGATHERTERM constants have the following values. |
LineGatherTerm_bufferFull | The requested number of digits has been gathered. The buffer is full. |
LineGatherTerm_termDigit | One of the termination digits matched a received digit. The matched termination digit is the last digit in the buffer. |
LineGatherTerm_firstTimeout | The first digit timeout expired. The buffer contains no digits. |
LineGatherTerm_interTimeout | The inter digit timeout expired. The buffer contains at least one digit. |
LineGatherTerm_cancel | The request was canceled by this application, by another application, or because the call terminated. |
Extensibility | The high order 16 bits can be assigned for device specific extensions. The low order 16 bits are reserved. |
Comments | None. |
See AlsoFunctions: | lineGatherDigits |
Messages: | LINE_GATHERDIGITS |
LINEGENERATETERM
The LINEGENERATETERM bit flag constants describe the conditions under which digit or tone generation is terminated.
LINEGENERATETERM_DONE0x00000001
LINEGENERATETERM_CANCEL0x00000002
Values | The LINEGENERATETERM constants have the following values. |
LineGenerateTerm_done | The requested number of digits have been generated, or requested tones have been generated for the requested duration. |
LineGenerateTerm_cancel | The digit or tone generation request was canceled by this application, by another application, or because the call terminated. |
Extensibility | The high order 16 bits can be assigned for device specific extensions. The low order 16 bits are reserved. |
Comments | None. |
See AlsoFunctions: | lineGenerateDigits, lineGenerateTone |
Messages: | LINE_GENERATE |
LINEGENERATETONE
The LINEGENERATETONE structure contains information about a tone to be generated.
typedef struct linegeneratetone_tag {
DWORDdwFrequency;
DWORDdwCadenceOn;
DWORDdwCadenceOff;
DWORDdwVolume;
} LINEGENERATETONE, FAR *LPLINEGENERATETONE;
Fields: | The LINEGENERATETONE structure contains the following fields: |
dwFrequency | Specifies the frequency in Hertz of this tone component. A service provider may adjust (round up or down) the frequency specified by the application to fit its resolution. |
DwCadenceOn | Determines the "on" duration in milliseconds of the cadence of the custom tone to be generated. Zero means no tone is generated. |
DwCadenceOff | Determines the "off" duration in milliseconds of the cadence of the custom tone to be generated. Zero means no off time - a constant tone. |
DwVolume | Determines the volume level at which the tone is to be generated. A value of 0x0000FFFF represents full volume, and a value of 0x00000000 is silence. |
Extensibility | None. |
Comments | This structure is only used for the generation of tones, it is not used for tone monitoring. |
See AlsoFunctions: | lineGenerateTones |
LINEMEDIACONTROLCALLSTATE
The LINEMEDIACONTROLCALLSTATE structure describes a media action to be executed when detecting transitions into one or more call states.
typedef struct linemediacontrolcallstate_tag {
DWORDdwCallStates;
DWORDdwMediaControl;
} LINEMEDIACONTROLCALLSTATE,
FAR *LPLINEMEDIACONTROLCALLSTATE;
Values | The LINEMEDIACONTROLCALLSTATE structure contains the following fields: |
dwCallStates | Specifies one or more call states, of type LINECALLSTATE. Values are: |
LINECALLSTATE_IDLE | The call is idle - no call actually exists. |
LINECALLSTATE_OFFERING | The call is being offered to the station, signaling the arrival of a new call. In some environments, a call in the offering state does not automatically alert the user; alerting is done by the switch instructing the line to ring, it does not affect any call states. |
LINECALLSTATE_ACCEPTED | The call was offering and has been accepted. This indicates to other (monitoring) applications that the current owner application has claimed responsibility for answering the call. In ISDN, this also initiates alerting to both parties. |
LINECALLSTATE_DIALTONE | The call is receiving a dial tone from the switch, which means that the switch is ready to receive a dialed number. |
LINECALLSTATE_DIALING | Destination address information (a phone number) is being sent to the switch via the call. Note that the operation lineGenerateDigits does not place the line into the dialing state. |
LINECALLSTATE_RINGBACK | The call is receiving ringback from the called address. Ringback indicates that the other station has been reached and is being alerted. |
LINECALLSTATE_BUSY | The call is receiving a busy tone. Busy tone indicates that the call cannot be completed - either a circuit (trunk) or the remote party's station are in use. |
LINECALLSTATE_SPECIALINFO | Special information is sent by the network. Special information is typically sent when the destination cannot be reached. |
LINECALLSTATE_CONNECTED | The call has been established, the connection is made. Information is able to flow over the call between the originating address and the destination address. |
LINECALLSTATE_PROCEEDING | Dialing has completed and the call is proceeding through the switch or telephone network. |
LINECALLSTATE_ONHOLD | The call is on hold by the switch. |
LINECALLSTATE_CONFERENCED | The call is currently a member of a multi-party conference call. |
LINECALLSTATE_ONHOLDPENDCONF | The call is currently on hold while it is being added to a conference. |
LINECALLSTATE_ONHOLDPENDTRANSF | The call is currently on hold awaiting transfer to another number. |
LINECALLSTATE_DISCONNECTED | The remote party has disconnected from the call. |
LINECALLSTATE_UNKNOWN | The state of the call is not known. This may be due to limitations of the call progress detection implementation. |
DwMediaControl | Specifies the media control action, of type LINEMEDIACONTROL. Values are: |
LINEMEDIACONTROL_NONE | Noop. No change is to be made to the media stream. |
LINEMEDIACONTROL_RESET | Reset the media stream. Provide the effect of an end-of-input. All buffers are released. |
LINEMEDIACONTROL_PAUSE | Temporarily pause the media stream. |
LINEMEDIACONTROL_RESUME | Start or resume a paused media stream. |
LINEMEDIACONTROL_RATEUP | The speed of the media stream is increased by some stream-defined quantity. |
LINEMEDIACONTROL_RATEDOWN | The speed of the media stream is decreased by some stream-defined quantity. |
LINEMEDIACONTROL_RATENORMAL | The speed of the media stream is returned to normal. |
LINEMEDIACONTROL_VOLUMEUP | The amplitude of the media stream is increased by some stream-defined quantity. |
LINEMEDIACONTROL_VOLUMEDOWN | The amplitude of the media stream is decreased by some stream-defined quantity. |
LINEMEDIACONTROL_VOLUMENORMAL | The amplitude of the media stream is returned to normal. |
ExtensibilityNone. | |
Comments | The LINEMEDIACONTROLCALLSTATE structure defines a triple <call state(s), media control action>. An array of these triples is passed to the lineSetMediaControl function to set media control actions triggered by the transition to the call state of the given call. When a transition to a listed call state is detected, then the corresponding action on the media stream is invoked. |
See AlsoFunctions: | lineSetStateMediaControl |
Messages: | LINE_CALLSTATE |
Data Types | LINECALLSTATE, LINEMEDIACONTROL |
LINEMEDIACONTROLDIGIT
The LINEMEDIACONTROLDIGIT structure describes a media action to be executed when detecting a digit. It is used as as entry in an array.
typedef struct linemediacontroldigit_tag {
DWORD dwDigit;
DWORD dwDigitModes;
DWORD dwMediaControl;
} LINEMEDIACONTROLDIGIT, FAR *LPLINEMEDIACONTROLDIGIT;
Values | The LINEMEDIACONTROLDIGIT structure contains the following fields: |
dwDigit | The low order byte of this DWORD specifies the digit in ASCII whose detection is to trigger a media action. Valid digits depend on the media mode. |
DwDigitModes | Specifies the digit mode(s) that are to be monitored, of type LINEDIGITMODE. Values are: |
LINEDIGITMODE_PULSE | Detect digits as audible clicks that are the result of rotary pulse sequences. Valid digits for pulse are '0' through '9'. |
LINEDIGITMODE_DTMF | Detect digits as DTMF tones. Valid digits for DTMF are '0' through '9', 'A', 'B', 'C', 'D', '*', and '#'. |
LINEDIGITMODE_DTMFEND | Detect and provide application notification of DTMF down edges. Valid digits for DTMF are '0' through '9', 'A', 'B', 'C', 'D', '*', and '#'. |
DwMediaControl | Specifies the media control action, of type LINEMEDIACONTROL. Values are: |
LINEMEDIACONTROL_NONE | Noop. No change is to be made to the media stream. |
LINEMEDIACONTROL_RESET | Reset the media stream. Provide the effect of an end-of-input. All buffers are released. |
LINEMEDIACONTROL_PAUSE | Temporarily pause the media stream. |
LINEMEDIACONTROL_RESUME | Start or resume a paused media stream. |
LINEMEDIACONTROL_RATEUP | The speed of the media stream is increased by some stream-defined quantity. |
LINEMEDIACONTROL_RATEDOWN | The speed of the media stream is decreased by some stream-defined quantity. |
LINEMEDIACONTROL_RATENORMAL | The speed of the media stream is returned to normal. |
LINEMEDIACONTROL_VOLUMEUP | The amplitude of the media stream is increased by some stream-defined quantity. |
LINEMEDIACONTROL_VOLUMEDOWN | The amplitude of the media stream is decreased by some stream-defined quantity. |
LINEMEDIACONTROL_VOLUMENORMAL | The amplitude of the media stream is returned to normal. |
Extensibility. | None |
Comments | The LINEMEDIACONTROLMEDIA structure defines a triple <digit, digit mode(s), media control action>. An array of these triples is passed to the lineSetMediaControl function to set media control actions triggered by digits detected on a given call. When a listed digit is detected, then the corresponding action on the media stream is invoked. |
See AlsoFunctions: | : lineSetMediaControl |
Data Types | LINEDIGITMODE, LINEMEDIACONTROL |
LINEMEDIACONTROLMEDIA
The LINEMEDIACONTROLDIGIT structure describes a media action to be executed when detecting a media mode change. It is used as as entry in an array.
typedef struct linemediacontrolmedia_tag {
DWORD dwMediaModes;
DWORD dwDuration;
DWORD dwMediaControl;
} LINEMEDIACONTROLMEDIA, FAR *LPLINEMEDIACONTROLMEDIA;
Values | The LINEMEDIACONTROLMEDIA structure contains the following fields: |
dwMediaModes | Specifies one or more media modes, of type LINEMEDIAMODE. Values are: |
LINEMEDIAMODE_UNKNOWN | A media stream exists but its mode is not known. This would correspond to a call with an unclassified media type. In typical analog telephony environments, an inbound call's media mode may be unknown until after the call has been answered and the media stream filtered to make a determination. |
LINEMEDIAMODE_INTERACTIVEVOICE | The presence of voice energy on the call and the call is treated as an interactive call with humans on both ends. |
LINEMEDIAMODE_AUTOMATEDVOICE | The presence of voice energy on the call and the voice is locally handled by an automated application. |
LINEMEDIAMODE_G3FAX | A group 3 fax is being sent or received over the call. |
LINEMEDIAMODE_G4FAX | A group 4 fax is being sent or received over the call. |
LINEMEDIAMODE_DATAMODEM | A data modem session on the call. |
LINEMEDIAMODE_TELETEX | A teletex session on the call. Teletex is one of the telematic services. |
LINEMEDIAMODE_VIDEOTEX | A videotex session on the call. Videotex is one the telematic services. |
LINEMEDIAMODE_TELEX | A telex session on the call. Telex is one the telematic services. |
LINEMEDIAMODE_MIXED | A mixed session on the call. Mixed is one the ISDN telematic services. |
LINEMEDIAMODE_TDD | A TDD session on the call. TDD stands for Telephony Devices for the Deaf. |
LINEMEDIAMODE_ADSI | An ADSI session on the call. ADSI stands for Analog Display Services Interface. |
LINEMEDIAMODE_UNAVAIL | The media mode of the call is unavailable and will not be known.. |
dwDuration | Specifies the duration in milliseconds during which the media mode should be present before the application should be notified or media control action should be taken. |
DwMediaControl | Specifies the media control action, of type LINEMEDIACONTROL. Values are: |
LINEMEDIACONTROL_NONE | Noop. No change is to be made to the media stream. |
LINEMEDIACONTROL_RESET | Reset the media stream. Provide the effect of an end-of-input. All buffers are released. |
LINEMEDIACONTROL_PAUSE | Temporarily pause the media stream. |
LINEMEDIACONTROL_RESUME | Start or resume a paused media stream. |
LINEMEDIACONTROL_RATEUP | The speed of the media stream is increased by some stream-defined quantity. |
LINEMEDIACONTROL_RATEDOWN | The speed of the media stream is decreased by some stream-defined quantity. |
LINEMEDIACONTROL_RATENORMAL | The speed of the media stream is returned to normal. |
LINEMEDIACONTROL_VOLUMEUP | The amplitude of the media stream is increased by some stream-defined quantity. |
LINEMEDIACONTROL_VOLUMEDOWN | The amplitude of the media stream is decreased by some stream-defined quantity. |
LINEMEDIACONTROL_VOLUMENORMAL | The amplitude of the media stream is returned to normal. |
ExtensibilityNone. | |
Comments | The LINEMEDIACONTROLMEDIA structure defines a triple <media mode(s), duration, media control action>. An array of these triples is passed to the lineSetMediaControl function to set media control actions triggered by media mode changes for a given call. When a change to a listed media mode is detected, then the corresponding action on the media stream is invoked. |
See AlsoFunctions: | lineSetMediaControl |
Data Types: | LINEMEDIAMODE, LINEMEDIACONTROL |
LINEMEDIACONTROLTONE
The LINEMEDIACONTROLTONE structure describes a media action to be executed when detecting a tone has been detected. It is used as as entry in an array.
typedef struct linemediacontroltone_tag {
DWORDdwAppSpecific;
DWORDdwDuration;
DWORDdwFrequency1;
DWORDdwFrequency2;
DWORDdwFrequency3;
DWORDdwMediaControl;
} LINEMEDIACONTROLTONE, FAR *LPLINEMEDIACONTROLTONE;
Values | The LINEMEDIACONTROLTONE structure contains the following fields: |
dwAppSpecific | This field is used by the application for tagging the tone. When this tone is detected, the value of the dwAppSpecific field is passed back to the application. |
DwDuration | Specifies the duration in milliseconds during which the tone should be present before a detection is made. |
DwFrequency1 dwFrequency2 dwFrequency3 | Specifies the frequency in Hertz of a component of the tone. If fewer than three frequencies are needed in the tone, then a value of zero should be used for the unused frequencies. A tone with all three frequencies set to zero is interpreted as silence, and can be use for silence detection. |
DwMediaControl | Specifies the media control action, of type LINEMEDIACONTROL. Values are: |
LINEMEDIACONTROL_NONE | Noop. No change is to be made to the media stream. |
LINEMEDIACONTROL_RESET | Reset the media stream. Provide the effect of an end-of-input. All buffers are released. |
LINEMEDIACONTROL_PAUSE | Temporarily pause the media stream. |
LINEMEDIACONTROL_RESUME | Start or resume a paused media stream. |
LINEMEDIACONTROL_RATEUP | The speed of the media stream is increased by some stream-defined quantity. |
LINEMEDIACONTROL_RATEDOWN | The speed of the media stream is decreased by some stream-defined quantity. |
LINEMEDIACONTROL_RATENORMAL | The speed of the media stream is returned to normal. |
LINEMEDIACONTROL_VOLUMEUP | The amplitude of the media stream is increased by some stream-defined quantity. |
LINEMEDIACONTROL_VOLUMEDOWN | The amplitude of the media stream is decreased by some stream-defined quantity. |
LINEMEDIACONTROL_VOLUMENORMAL | The amplitude of the media stream is returned to normal. |
Extensibility | None. |
Comments | The LINEMEDIACONTROLTONE structure defines a tuple <tone, media control action>. An array of these tuples is passed to the lineSetMediaControl function to set media control actions triggered by media mode changes for a given call. When a change to a listed media mode is detected, then the corresponding action on the media stream is invoked. |
A tone with all frequencies set to zero corresponds to silence. An application can thus monitor the call's information stream for silence. | |
See AlsoFunctions: | lineSetMediaControl |
Data Types: | LINEMEDIACONTROL |
LINEMEDIACONTROL
The LINEMEDIACONTROL bit flag constants describe a set of generic operations on media streams. The interpretations are determined by the media stream. The line device must have the media control capability in order for any media control operations to be effective.
LINEMEDIACONTROL_NONE 0x00000001
LINEMEDIACONTROL_START0x00000002
LINEMEDIACONTROL_RESET0x00000004
LINEMEDIACONTROL_PAUSE 0x00000008
LINEMEDIACONTROL_RESUME0x00000010
LINEMEDIACONTROL_RATEUP0x00000020
LINEMEDIACONTROL_RATEDOWN0x00000040
LINEMEDIACONTROL_RATENORMAL0x00000080
LINEMEDIACONTROL_VOLUMEUP0x00000100
LINEMEDIACONTROL_VOLUMEDOWN 0x00000200
LINEMEDIACONTROL_VOLUMENORMAL0x00000400
Values | The LINEMEDIACONTROL constants have the following values. |
LineMediaControl_none | Noop. No change is to be made to the media stream. |
LineMediaControl_start | Start the media stream. |
LineMediaControl_reset | Reset the media stream. Provide the effect of an end-of-input. All buffers are released. |
LineMediaControl_pause | Temporarily pause the media stream. |
LineMediaControl_resume | Resume a paused media stream. |
LineMediaControl_rateUp | The speed of the media stream is increased by some stream-defined quantity. |
LineMediaControl_rateDown | The speed of the media stream is decreased by some stream-defined quantity. |
LineMediaControl_rateNormal | The speed of the media stream is returned to normal. |
LineMediaControl_volumeUp | The amplitude of the media stream is increased by some stream-defined quantity. |
LineMediaControl_volumeDown | The amplitude of the media stream is decreased by some stream-defined quantity. |
LineMediaControl_volumeNormal | The amplitude of the media stream is returned to normal. |
Extensibility | The high order 16 bits can be assigned for device specific extensions. The low order 16 bits are reserved. |
Comments | Media control is provided as a way of providing improved performance of actions on media streams on calls in response to telephony related events. The application should normally manage a media stream through the media specific API, the media control functionality provided here is not intended as a replacement of the native media APIs. Media control actions can be associated with the detection of digits, the detection of tones, the transition into a call state and the detection of a media mode. Consult a line's device capabilities to determine whether media control is available on a line. |
See AlsoFunctions: | lineSetMediaControl |
Data Types: | LINEMEDIACONTROLMEDIA, LINEMEDIACONTROLDIGITS, LINEMEDIACONTROLTONES, LINEMEDIACONTROLCALLSTATES |
LINEMEDIAMODE
The LINEMEDIAMODE constants describe media modes (the data type of a media stream) on calls.
LINEMEDIAMODE_NONE0x00000001
LINEMEDIAMODE_UNKNOWN0x00000002
LINEMEDIAMODE_INTERACTIVEVOICE0x00000004
LINEMEDIAMODE_AUTOMATEDVOICE0x00000008
LINEMEDIAMODE_DIGITALDATA0x00000010
LINEMEDIAMODE_G3FAX 0x00000020
LINEMEDIAMODE_G4FAX0x00000040
LINEMEDIAMODE_DATAMODEM0x00000080
LINEMEDIAMODE_TELETEX0x00000100
LINEMEDIAMODE_VIDEOTEX0x00000200
LINEMEDIAMODE_TELEX0x00000400
LINEMEDIAMODE_MIXED0x00000800
LINEMEDIAMODE_TDD0x00001000
LINEMEDIAMODE_ADSI0x00002000
LINEMEDIAMODE_UNAVAIL0x00004000
Values | The LINEMEDIAMODE constants have the following values. |
LineMediaMode_none | No media stream. This value is mainly used as a NULL value. |
LineMediaMode_unknown | A media stream exists but its mode is not currently known and may become known later. This would correspond to a call with an unclassified media type. In typical analog telephony environments, an inbound call's media mode may be unknown until after the call has been answered and the media stream filtered to make a determination. If the unknown media mode flag is set, other media flags may also be set. This is used to signify that the media is unknown but that it is likely to be one of the other selected media modes. |
LineMediaMode_interactiveVoice | The presence of voice energy on the call and the call is treated as an interactive call with humans on both ends. |
LineMediaMode_automatedVoice | The presence of voice energy on the call and the voice is locally handled by an automated application. |
LineMediaMode_digitalData | Digital data is being sent or received over the call. |
LineMediaMode_G3Fax | A group 3 fax is being sent or received over the call. |
LineMediaMode_G4Fax | A group 4 fax is being sent or received over the call. |
LineMediaMode_dataModem | A data modem session on the call. |
LineMediaMode_teletex | A teletex session on the call. Teletex is one of the telematic services. |
LineMediaMode_videotex | A videotex session on the call. Videotex is one the telematic services. |
LineMediaMode_telex | A telex session on the call. Telex is one the telematic services. |
LineMediaMode_mixed | A mixed session on the call. Mixed is one the ISDN telematic services. |
LineMediaMode_TDD | A TDD session on the call. TDD stands for Telephony Devices for the Deaf. |
LineMediaMode_ADSI | An ADSI session on the call. ADSI stands for Analog Display Services Interface. |
LineMediaMode_unavail | The media mode of the call is unavailable and will not be known.. |
Extensibility | The high order 8 bits can be assigned for device specific extensions. The low order 24 bits are reserved. |
Comments | Note that bearer mode and media mode are different notions. The bearer mode of a call is an indication of the quality of the telephone connection as provided primarily by the network. The media mode of a call is an indication of the type of information stream that is exchanged over that call. Group 3 fax or data modem are media modes that use a call with a 3.1kHz voice bearer mode. |
See AlsoFunctions: | lineMonitorMedia |
Messages: | LINE_MONITORMEDIA |
Data Types: | LINEMEDIACONTROLMEDIA |
LINEMONITORTONE
The LINEMONITORTONE structure describes a tone to be monitored. This is used as an entry in an array.
typedef struct linemonitortone_tag {
DWORDdwAppSpecific;
DWORDdwDuration;
DWORDdwFrequency1;
DWORDdwFrequency2;
DWORDdwFrequency3;
} LINEMONITORTONE, FAR *LPLINEMONITORTONE;
Values | The LINEMONITORTONE structure contains the following fields: |
dwAppSpecific | This field is used by the application for tagging the tone. When this tone is detected, the value of the dwAppSpecific field is passed back to the application. |
DwDuration | Specifies the duration in milliseconds during which the tone should be present before a detection is made. |
DwFrequency1 dwFrequency2 dwFrequency3 | Specifies the frequency in Hertz of a component of the tone. If fewer than three frequencies are needed in the tone, then a value of zero should be used for the unused frequencies. A tone with all three frequencies set to zero is interpreted as silence, and can be use for silence detection. |
Extensibility | None. |
Comments | The LINEMONITORTONE structure defines a tone for the purpose of detection. An array of tones is passed to the lineMonitorTones function which monitors these tones and send a LINE_MONITORTONE message to the application when a detection is made. |
A tone with all frequencies set to zero corresponds to silence. An application can thus monitor the call's information stream for silence. | |
See AlsoFunctions: | lineMonitorTones |
LINEPARKMODE
The LINEPARKMODE bit flag constants describe different ways of parking calls.
LINEPARKMODE_DIRECTED0x00000001
LINEPARKMODE_NONDIRECTED0x00000002
Values | The LINEPARKMODE constants have the following values. |
LineParkMode_directed | Specifies directed call park. The address where the call is to be parked must be supplied to the switch. |
LineParkMode_nondirected | Specifies non directed call park. The address where the call is parked is selected by the switch and provided by the switch to the application. |
Extensibility | The high order 16 bits can be assigned for device specific extensions. The low order 16 bits are reserved. |
Comments | The LINEPARKMODE is used when parking a call. Consult a line's address device capabilities to find out which park mode is available. |
See AlsoFunctions: | linePark |
LINEREMOVEFROMCONF
The LINEREMOVEFROMCONF scalar constants describe how parties participating in a conference call can be removed from a conference call.
LINEREMOVEFROMCONF_NONE0x00000001
LINEREMOVEFROMCONF_LAST0x00000002
LINEREMOVEFROMCONF_ANY 0x00000003
Values | The LINEREMOVEFROMCONF constants have the following values. |
LineRemoveFromConf_none | Parties cannot be removed from the conference call. |
LineRemoveFromConf_last | Only the most recently added party can be removed from the conference call |
LineRemoveFromConf_any | Any participating party can be removed from the conference call. |
Extensibility | |
Values | in the range 0x80000000 to 0xFFFFFFFF can be assigned for device specific extensions; values in the range 0x00000000 to 0x7FFFFFFF are reserved. |
Comments | None. |
See AlsoData Types: | LINEDEVCAPS |
LINEREQDROP
The LINEREQDROP structure describes a tapiRequestDrop request.
typedef struct linereqdrop_tag {
HWNDhWnd;
WORDwRequestID;
} LINEREQDROP, FAR *LPLINEREQDROP;
Values | The LINEREQDROP structure contains the following fields: |
hWnd | Specifies the requesting application's window handle. hWnd, together with wRequestID identify the media call that is to be dropped. |
WRequestID | Specifies an application-selected ID that identifies the call to be dropped. This request ID is also passed in the wParam field of the TAPI_REPLY message to identify the call to which the message applies. |
Extensibility | None. |
Comments | An app must use this structure to interpret the request buffer it received from lineGetRequest with the dropCall request mode. |
See AlsoFunctions: | lineGetRequest |
LINEREQLOGENTRY
The LINEREQLOGENTRY structure describes a lineRequestLogEntry request.
typedef struct linereqlogentry_tag {
HCALLhCall;
BYTEbyComment[LINEMAXCOMMENTSIZE];
DWORDdwSize;
} LINEREQLOGENTRY, FAR *LPLINEREQLOGENTRY;
Values | The LINEREQLOGENTRY structure contains the following fields: |
hCall | Specifies a handle to the call with which this log entry is to be associated. |
ByComment[LINEMAXCOMMENTSIZE] | Specifies the comment about the call request. The maximum length of the comment string is LINEMAXCOMMENTSIZE characters, which includes the NULL terminator. The format of this string is as specified in the dwStringFormat field of the call's line device capabilities. |
DwSize | Specifies the size in bytes of byComment. |
Extensibility | None. |
Comments | An app must use this structure to interpret the request buffer it received from lineGetRequest with the LINEREQUESTMODE_LOGENTRY request mode. |
See AlsoFunctions: | lineGetRequest |
LINEREQMAKECALL
The LINEREQMAKECALL structure describes a tapiRequestMakeCall request.
typedef struct linereqmakecall_tag {
charszDestAddress[TAPIMAXDESTADDRESSSIZE];
charszAppName[TAPIMAXAPPNAMESIZE];
charszCalledParty[TAPIMAXCALLEDPARTYSIZE];
charszComment[TAPIMAXCOMMENTSIZE];
} LINEREQMAKECALL, FAR *LPLINEREQMAKECALL;
Values | The LINEREQMAKECALL structure contains the following fields: |
szDestAddress[TAPIMAXADDRESSSIZE] | Specifies the NULL-terminated destination address of the make call request. The address can use the canonical address format or the dialable address format. The maximum length of the address is TAPIMAXDESTADDRESSSIZE characters, which includes the NULL terminator. Longer strings are truncated. |
SzAppName[TAPIMAXAPPNAMESIZE] | Specifies the ASCII NULL-terminated user-friendly application name or module name of the application that originated the request. The maximum length of the address is TAPIMAXAPPNAMESIZE characters, which includes the NULL terminator. |
SzCalledParty[TAPIMAXCALLEDPARTYSIZE] | Specifies the ASCII NULL-terminated user-friendly called party name. The maximum length of the called party information is TAPIMAXCALLEDPARTYSIZE characters, which includes the NULL terminator. |
SzComment[TAPIMAXCOMMENTSIZE] | Specifies the ASCII NULL-terminated comment about the call request. The maximum length of the comment string is TAPIMAXCOMMENTSIZE characters, which includes the NULL terminator. |
Extensibility | None. |
Comments | The szDestAddress field contains the address of the remote party; the other fields are useful for logging purposes. An app must use this structure to interpret the request buffer it received from lineGetRequest with the LINEREQUESTMODE_MAKECALL request mode. |
See AlsoFunctions | lineGetRequest |
LINEREQMEDIACALL
The LINEREQMEDIACALL structure describes a tapiRequestMediaCall request.
typedef struct linereqmediacall_tag {
HWND hWnd;
WORD wRequestID;
char szDeviceClass[TAPIMAXDEVICECLASSSIZE];
unsigned_char ucDeviceID[TAPIMAXDEVICEIDSIZE];
DWORD dwSize;
DWORD dwSecure;
char szDestAddress[TAPIMAXDESTADDRESSSIZE];
char szAppName[TAPIMAXAPPNAMESIZE];
char szCalledParty[TAPIMAXCALLEDPARTYSIZE];
char szComment[TAPIMAXCOMMENTSIZE];
} LINEREQMEDIACALL, FAR *LPLINEREQMEDIACALL;
Values | The LINEREQMEDIACALL structure contains the following fields: |
hWnd | Specifies the requesting application's window handle. This is the window to which TAPI_REPLY messages are sent. hWnd, together with wRequestID identify the media call to the application. |
WRequestID | Specifies an application-selected ID that identifies this make call request to the application. This request ID is passed in the wParam field of the TAPI_REPLY message to identify the call to which the message applies. The app will use this request ID when requesting that the call be dropped. |
SzDeviceClass[TAPIMAXDEVICECLASSSIZE] | Specifies an ASCII NULL-terminated string containing the name of the device class that identifies the media type for the requested call. The maximum length is TAPIMAXDEVICECLASSSIZE bytes, which includes the NULL terminator. |
UcDeviceID[TAPIMAXDEVICEIDSIZE] | Specifies the name of the ID for the media device that corresponds to the media stream of the requested call. This device is of the device class specified in szDeviceClass. The actual length of the device ID string is dwSize bytes. The maximum length is TAPIMAXDEVICEIDSIZE bytes. The format of this string is device class dependent. |
DwSize | Specifies the size in bytes of the device ID string contained in uDeviceID. dwSize will not exceed TAPIMAXDEVICEIDSIZE. |
DwSecure | Specifies whether or not the requested call is to be established as secure. If zero, the call is not required to be secure and features such as call waiting are not disabled and allowed to interfere with the media stream on the call. If one, the call is required to be secure, if possible. |
SzDestAddress[TAPIMAXADDRESSSIZE] | Specifies the NULL-terminated destination address of the make call request. The address can use the canonical address format or the dialable address format. The maximum length of the address is TAPIMAXDESTADDRESSSIZE characters, which includes the NULL terminator. Longer strings are truncated. |
SzAppName[TAPIMAXAPPNAMESIZE] | Specifies the ASCII NULL-terminated user-friendly application name or module name of the application that originated the request. The maximum length of the address is TAPIMAXAPPNAMESIZE characters, which includes the NULL terminator. |
SzCalledParty[TAPIMAXCALLEDPARTYSIZE] | Specifies the ASCII NULL-terminated user-friendly called party name. . The maximum length of the called party information is TAPIMAXCALLEDPARTYSIZE characters, which includes the NULL terminator. |
SzComment[TAPIMAXCOMMENTSIZE] | Specifies the ASCII NULL-terminated comment about the call request. The maximum length of the comment string is TAPIMAXCOMMENTSIZE characters, which includes the NULL terminator. |
Extensibility. | None |
Comments | An app must use this structure to interpret the request buffer it received from lineGetRequest with the LINEREQUESTMODE_MEDIACALL request mode. |
See AlsoFunctions: | lineGetRequest |
LINEREQUESTMODE
The LINEREQUESTMODE bit flag constants describe different types of telephony requests that can be made from one app to another.
LINEREQUESTMODE_MAKECALL0x00000001
LINEREQUESTMODE_MEDIACALL0x00000002
LINEREQUESTMODE_DROP 0x00000004
LINEREQUESTMODE_LOGENTRY 0x00000008
Values | The LINEREQUESTMODE constants have the following values. |
LineRequestMode_makeCall | A tapiRequestMakeCall request. |
LineRequestMode_mediaCall. | A tapiRequestMediaCall request |
LineRequestMode_drop | A tapiRequestDrop request. |
LineRequestMode_logEntry | A lineRequestLogEntry request. |
Extensibility. | None. All 32 bits are reserved |
Comments. | None |
See AlsoFunctions: | : lineRegisterRequestRecipient, lineGetRequest |
Messages: | LINE_REQUEST |
LINEROAMMODE
The LINEROAMMODE bit flag constants describe the roaming status of a line device.
LINEROAMMODE_UNKNOWN0x00000001
LINEROAMMODE_UNAVAIL0x00000002
LINEROAMMODE_HOME0x00000004
LINEROAMMODE_ROAMA0x00000008
LINEROAMMODE_ROAMB 0x00000010
Values | The LINEROAMMODE constants have the following values. |
LineRoamMode_unknown | The roam mode is currently unknown, but may become known later. |
LineRoamMode_unavail | The roam mode is unavailable and will not be known. |
LineRoamMode_home | The line is connected to the home network node. |
LineRoamMode_roamA | The line is connected to the Roam-A carrier and calls are charged accordingly. |
LineRoamMode_roamB | The line is connected to the Roam-B carrier and calls are charged accordingly. |
Extensibility | The high order 16 bits can be assigned for device specific extensions. The low order 16 bits are reserved. |
Comments | None. |
See AlsoData Types: | LINEDEVCAPS |
LINESPECIALINFO
The LINESPECIALINFO bit flag constants describes special information signals that the network may use to report various reporting and network observation operations. They are special coded tone sequences transmitted at the beginning of network advisory recorded announcements.
LINESPECIALINFO_NOCIRCUIT0x00000001
LINESPECIALINFO_CUSTIRREG0x00000002
LINESPECIALINFO_REORDER 0x00000004
LINESPECIALINFO_UNKNOWN0x00000008
LINESPECIALINFO_UNAVAIL0x00000010
Values | The LINESPECIALINFO constants have the following values. |
LineSpecialInfo_noCircuit. | This special information tone preceeds a no circuit or emergency announcement (trunk blockage category) |
LineSpecialInfo_custIrreg | This special information tone preceeds a vacant number, AIS, Centrex number change and non-working station, access code not dialed or dialed in error, manual intercept operator message (customer irregularity category). |
LineSpecialInfo_reorder | This special information tone preceeds a reorder announcement (equipment irregularity category). |
LineSpecialInfo_unknown | Specific about the special information tone are currently unknown but may become known later. |
LineSpecialInfo_unavail | Specifics about the special information tone are unavailable, and will not become known. |
Extensibility | The high order 16 bits can be assigned for device specific extensions. The low order 16 bits are reserved. |
Comments | Special information tones are defined for advisory messages and not usually used for billing or supervisory purpose. |
See AlsoMessages: | LINECALLSTATUS |
LINETERMCAPS
The LINETERMCAPS structure describes the capabilities of a line's terminal device.
typedef struct linetermcaps_tag {
DWORDdwTermDev;
DWORDdwTermModes;
DWORDdwTermSharing;
} LINETERMCAPS, FAR *LPLINETERMCAPS;
Values | The LINETERMCAPS structure contains the following fields: |
dwTermDev | Specifies the device type of the terminal, of type LINETERMDEV. Values are: |
LINETERMDEV_PHONE | The terminal is a phone set. |
LINETERMDEV_HEADSET | The terminal is a headset |
LINETERMDEV_SPEAKER | The terminal is an external speaker and microphone. |
DwTermModes | Specifies the terminal mode(s) the terminal device is able to deal with, of type LINETERMMODE. Values are: |
LINETERMMODE_BUTTONS | These are button press events sent from the terminal to the line. |
LINETERMMODE_LAMPS | This are lamp events sent from the line to the terminal. |
LINETERMMODE_DISPLAY | This is display information sent from the line to the terminal. |
LINETERMMODE_RINGER | This is ringer control information sent from the switch to the terminal. |
LINETERMMODE_HOOKSWITCH | These are hookswitch event sent from the terminal to the line. |
LINETERMMODE_MEDIAFROMTERM | 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_MEDIATOTERM | 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_MEDIABIDIR | 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. |
DwTermSharing | Specifies how the terminal device is shared between line devices, of type LINETERMSHARING. Values are: |
LINETERMSHARING_PRIVATE | The terminal device is private to a single line device. |
LINETERMSHARING_SHAREDEXCL | The terminal device can be used by multiple lines. The last line device to do a lineSetTerminal to the terminal for a given terminal mode will have exclusive connection to the terminal for that mode. |
LINETERMSHARING_SHAREDCONF | The terminal device can be used by multiple lines. The lineSetTerminal requests of the various terminals end up being "merged" at the terminal. |
Extensibility | None. |
Comments | The LINEMONITORTONE structure defines a tone for the purpose of detection. An array of tones is passed to the lineMonitorTones function which monitors these tones and send a LINE_MONITORTONE message to the application when a detection is made. A tone with all frequencies set to zero corresponds to silence. An application can thus monitor the call's information stream for silence. |
See AlsoFunctions: | lineMonitorTones |
Data Types: | LINETERMDEV, LINETERMMODE, LINETERMSHARING |
LINETERMDEV
The LINETERMDEV bit flag constants describe different types of terminal devices.
LINETERMDEV_PHONE0x00000001
LINETERMDEV_HEADSET0x00000002
LINETERMDEV_SPEAKER0x00000004
Values | The LINETERMDEV constants have the following values. |
LineTermDev_phone | The terminal is a phone set. |
LineTermDev_headset | The terminal is a headset. |
LineTermDev_speaker | The terminal is an external speaker and microphone. |
Extensibility | The high order 16 bits can be assigned for device specific extensions. The low order 16 bits are reserved. |
Comments | These constants are used to characterize a line's terminal device. This allows an application to determine the nature of a terminal device. |
See AlsoFunctions: | lineSetTerminal |
Data Types: | LINEDEVCAPS |
LINETERMMODE
The LINETERMMODE bit flag constants describe different types of events on a phone line that can be routed to a terminal device.
LINETERMMODE_BUTTONS0x00000001
LINETERMMODE_LAMPS0x00000002
LINETERMMODE_DISPLAY0x00000004
LINETERMMODE_RINGER0x00000008
LINETERMMODE_HOOKSWITCH0x00000010
LINETERMMODE_MEDIATOLINE0x00000020
LINETERMMODE_MEDIAFROMLINE0x00000040
LINETERMMODE_MEDIABIDIRECT0x00000080
Values | The LINETERMMODE constants have the following values. |
LineTermMode_buttons | These are button press events sent from the terminal to the line. |
LineTermMode_lamps | These are lamp events sent from the line to the terminal. |
LineTermMode_display | This is display information sent from the line to the terminal. |
LineTermMode_ringer | This is ringer control information sent from the switch to the terminal. |
LineTermMode_hookswitch | These are hookswitch events sent from the terminal to the line. |
LineTermMode_mediaFromTerm | 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_mediaToTerm | 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. |
Extensibility | The high order 16 bits can be assigned for device specific extensions. The low order 16 bits are reserved. |
Comments | These constants describe the classes of control and information streams that can be routed directly between a line device and a terminal device (such as a phone set). |
See AlsoFunctions: | lineSetTerminal |
Data Types: | LINEDEVCAPS |
LINETERMSHARING
The LINETERMSHARING bit flag constants describe different ways in which a terminal can be shared between line devices, addresses, or calls.
LINETERMSHARING_PRIVATE0x00000001
LINETERMSHARING_SHAREDEXCL0x00000002
LINETERMSHARING_SHAREDCONF0x00000004
Values | The LINETERMSHARING constants have the following values. |
LineTermSharing_private | The terminal device is private to a single line device. |
LineTermSharing_sharedExcl | The terminal device can be used by multiple lines. The last line device to do a lineSetTerminal to the terminal for a given terminal mode will have exclusive connection to the terminal for that mode. |
LineTermSharing_sharedConf | The terminal device can be used by multiple lines. The lineSetTerminal requests of the various terminals end up being "merged" or conferenced at the terminal. |
Extensibility | The high order 16 bits can be assigned for device specific extensions. The low order 16 bits are reserved. |
Comments | These constants describe the classes of control and information streams that can be routed directly between a line device and a terminal device (such as a phone set). |
See AlsoFunctions: | lineSetTerminal |
Data Types: | LINEDEVCAPS |
LINETONEMODE
The LINETONEMODE constants describe different selections used when generating line tones.
LINETONEMODE_CUSTOM0x00000001
LINETONEMODE_RINGBACK0x00000002
LINETONEMODE_BUSY0x00000004
LINETONEMODE_BEEP0x00000008
LINETONEMODE_BILLING0x00000010
Values. | The LINETONEMODE constants have the following values |
LineToneMode_custom | The tone is a custom tone, defined by its component frequencies, of type LINEGENERATETONE. |
LineToneMode_ringback | The tone is ringback tone. Exact definition is service provider defined. |
LineToneMode_busy | The tone is a busy tone. Exact definition is service provider defined. |
LineToneMode_beep | The tone is a beep, as used to announce the beginning of a recording. Exact definition is service provider defined. |
LineToneMode_billing | The tone is billing information tone such as a credit card prompt tone. Exact definition is service provider defined. |
Extensibility | The high order 16 bits can be assigned for device specific extensions. The low order 16 bits are reserved. |
Comments | These constants are used to define tones to be generated inband over a call to the remote party. Note that tone detection of non custom tones does not use these constants. |
See AlsoFunctions: | lineGenerateTones |
Messages: | LINE_GENERATE |
Data Types: | LINEGENERATETONE |
LINETRANSFERMODE
The LINETRANSFERMODE bit flag constants describe different ways of resolving call transfer requests.
LINETRANSFERMODE_TRANSFER0x00000001
LINETRANSFERMODE_CONFERENCE0x00000002
Values | The LINETRANSFERMODE constants have the following values. |
LineTransferMode_transfer | The transfer is resolved by transferring the initial call to the consultation call. Both calls will become idle to the application. |
LineTransferMode_conference | The transfer is resolved by establishing a three-way conference between the application, the party connected to the initial call and the party connected to the consultation call. A conference call is created when this option is selected. |
Extensibility | The high order 16 bits can be assigned for device specific extensions. The low order 16 bits are reserved. |
Comments | None. |
See AlsoFunctions: | lineCompleteTransfer |
The PHONEBUTTONFUNCTION scalar constants describe the functions commonly assigned to buttons on telephone sets.
PHONEBUTTONFUNCTION_UNKNOWN | 0x00000000 |
PHONEBUTTONFUNCTION_CONFERENCE | 0x00000001 |
PHONEBUTTONFUNCTION_TRANSFER | 0x00000002 |
PHONEBUTTONFUNCTION_DROP | 0x00000003 |
PHONEBUTTONFUNCTION_HOLD | 0x00000004 |
PHONEBUTTONFUNCTION_RECALL | 0x00000005 |
PHONEBUTTONFUNCTION_DISCONNECT | 0x00000006 |
PHONEBUTTONFUNCTION_CONNECT | 0x00000007 |
PHONEBUTTONFUNCTION_MSGWAITON | 0x00000008 |
PHONEBUTTONFUNCTION_MSGWAITOFF | 0x00000009 |
PHONEBUTTONFUNCTION_SELECTRING | 0x0000000A |
PHONEBUTTONFUNCTION_ABBREVDIAL | 0x0000000B |
PHONEBUTTONFUNCTION_FORWARD | 0x0000000C |
PHONEBUTTONFUNCTION_PICKUP | 0x0000000D |
PHONEBUTTONFUNCTION_RINGAGAIN | 0x0000000E |
PHONEBUTTONFUNCTION_PARK | 0x0000000F |
PHONEBUTTONFUNCTION_REJECT | 0x00000010 |
PHONEBUTTONFUNCTION_REDIRECT | 0x00000011 |
PHONEBUTTONFUNCTION_MUTE | 0x00000012 |
PHONEBUTTONFUNCTION_VOLUMEUP | 0x00000013 |
PHONEBUTTONFUNCTION_VOLUMEDOWN | 0x00000014 |
PHONEBUTTONFUNCTION_SPEAKERON | 0x00000015 |
PHONEBUTTONFUNCTION_SPEAKEROFF | 0x00000016 |
PHONEBUTTONFUNCTION_FLASH | 0x00000017 |
PHONEBUTTONFUNCTION_DATAON | 0x00000018 |
PHONEBUTTONFUNCTION_DATAOFF | 0x00000019 |
PHONEBUTTONFUNCTION_DONOTDISTURB | 0x0000001A |
PHONEBUTTONFUNCTION_INTERCOM | 0x0000001B |
PHONEBUTTONFUNCTION_BRIDGEDAPP | 0x0000001C |
PHONEBUTTONFUNCTION_BUSY | 0x0000001D |
PHONEBUTTONFUNCTION_CALLAPP | 0x0000001E |
PHONEBUTTONFUNCTION_DATETIME | 0x0000001F |
PHONEBUTTONFUNCTION_DIRECTORY | 0x00000020 |
PHONEBUTTONFUNCTION_COVER | 0x00000021 |
PHONEBUTTONFUNCTION_CALLID | 0x00000022 |
PHONEBUTTONFUNCTION_LASTNUM | 0x00000023 |
PHONEBUTTONFUNCTION_NIGHTSRV | 0x00000024 |
PHONEBUTTONFUNCTION_SENDCALLS | 0x00000025 |
PHONEBUTTONFUNCTION_MSGINDICATOR | 0x00000026 |
PHONEBUTTONFUNCTION_REPDIAL | 0x00000027 |
PHONEBUTTONFUNCTION_SETREPDIAL | 0x00000028 |
PHONEBUTTONFUNCTION_SYSTEMSPEED | 0x00000029 |
PHONEBUTTONFUNCTION_STATIONSPEED | 0x0000002A |
PHONEBUTTONFUNCTION_CAMPON | 0x0000002B |
PHONEBUTTONFUNCTION_SAVEREPEAT | 0x0000002C |
PHONEBUTTONFUNCTION_QUEUECALL | 0x0000002D |
PHONEBUTTONFUNCTION_NONE | 0x0000002E |
Extensibility Values in the range 0x80000000 to 0xFFFFFFFF can be assigned for device specific extensions; values in the range 0x00000000 to 0x7FFFFFFF are reserved.
Comments The PHONEBUTTONFUNCTION constants have values commonly found on current telephone sets. These button functions can be used to invoke the corresponding function from the switch using lineDevSpecificFeature. Note that the API does not define the semantics of the button functions, it only provides access to the corresponding function.
See Also Functions: phoneGetButtonInfo, phoneSetButtonInfo, lineDevSpecificFeature
Messages: PHONE_BUTTON
PHONEBUTTONINFO
The PHONEBUTTONINFO structure contains information about a button on a phone device.
typedef struct phonebuttoninfo_tag {
DWORD dwTotalSize;
DWORD dwNeededSize;
DWORD dwUsedSize;
DWORD dwButtonMode;
DWORD dwButtonFunction;
DWORD dwButtonTextSize;
DWORD dwButtonTextOffset;
DWORD dwDevSpecificSize;
DWORD dwDevSpecificOffset;
} PHONEBUTTONINFO, FAR *LPPHONEBUTTONINFO;
Fields The PHONEBUTTONINFO structure contains the following fields:
dwTotalSize
The total size in bytes allocated to this data structure.
dwNeededSize
The size in bytes for this data structure that is needed to hold all the returned information.
dwUsedSize
The size in bytes of this data structure that contains useful information.
dwButtonMode
Defines the mode or general usage class of the button, of type PHONEBUTTONMODE. Values are:
PHONEBUTTONMODE_DUMMY
This value is used to describe a button/lamp position that has no corresponding button, but has only a lamp.
PHONEBUTTONMODE_CALL
The button is assigned to a call appearance.
PHONEBUTTONMODE_FEATURE
The button is assigned to requesting features from the switch, such as hold, conference, transfer, etc.
PHONEBUTTONMODE_KEYPAD
The button is one of the twelve keypad buttons, '0' through '9', '*', and '#'.
PHONEBUTTONMODE_LOCAL
The button is a local function button, such as mute or volume control.
PHONEBUTTONMODE_DISPLAY
The button is a "soft" button associated with the phone's display. A phone set can have zero or more display buttons.
dwButtonFunction
Specifies the function assigned to the button, of type PHONEBUTTONFUNCTION (not listed here).
dwButtonTextSize
dwButtonTextOffset
The size in bytes and the offset in bytes from the beginning of this data structure of the variable sized field containing descriptive text for this button. The format of this information is as specified in the dwStringFormat field of the phone's device capabilities.
dwDevSpecificSize
dwDevSpecificOffset
The size in bytes and the offset in bytes from the beginning of this data structure of the variable sized device specific field.
Extensibility Device specific extensions should use the DevSpecific (dwDevSpecificSize and dwDevSpecificOffset) variable sized area of this data structure.
Comments None.
See Also Functions: phoneGetButtonInfo, phoneSetButtonInfo
Data Types: PHONEBUTTONMODE, PHONEBUTTONFUNCTION
PHONEBUTTONMODE
The PHONEBUTTONMODE bit flag constants describe the button classes.
PHONEBUTTONMODE_DUMMY 0x00000001
PHONEBUTTONMODE_CALL 0x00000002
PHONEBUTTONMODE_FEATURE 0x00000004
PHONEBUTTONMODE_KEYPAD 0x00000008
PHONEBUTTONMODE_LOCAL 0x00000010
PHONEBUTTONMODE_DISPLAY 0x00000020
Values The PHONEBUTTONMODE constants have the following values:
PhoneButtonMode_dummy
This value is used to describe a button/lamp position that has no corresponding button, but has only a lamp.
PhoneButtonMode_call
The button is assigned to a call appearance.
PhoneButtonMode_feature
The button is assigned to requesting features from the switch, such as hold, conference, transfer, etc.
PhoneButtonMode_keypad
The button is one of the twelve keypad buttons, '0' through '9', '*', and '#'.
PhoneButtonMode_local
The button is a local function button, such as mute or volume control.
PhoneButtonMode_display
The button is a "soft" button associated with the phone's display. A phone set can have zero or more display buttons.
Extensibility The high order 16 bits can be assigned for device specific extensions. The low order 16 bits are reserved.
Comments This enumeration type is used in the PHONECAPS data structure to describe the meaning associated with the phone's buttons.
See Also Functions: phoneGetDevCaps, phoneGetButtonInfo, phoneSetButtonInfo
Messages: PHONE_BUTTON
Data Types: PHONECAPS, PHONEBUTTONINFO
PHONEBUTTONSTATE
The PHONEBUTTONSTATE bit flag constants describe various button positions.
PHONEBUTTONSTATE_UP 0x00000001
PHONEBUTTONSTATE_DOWN 0x00000002
Values The PHONEBUTTONSTATE constants have the following values:
PhoneButtonState_up
The button is in the "up" state.
PhoneButtonState_down
The button is in the "down" state (i.e., pressed down).
Extensibility The high order 16 bits can be assigned for device specific extensions. The low order 16 bits are reserved.
Comments None.
See Also Functions: phoneGetDevCaps, phoneSetStatusMessages,
phoneGetStatusMessages
Messages: PHONE_BUTTON
Data Types: PHONECAPS
PHONECAPS
The PHONECAPS structure describes the capabilities of a phone device.
typedef struct phonecaps_tag {
DWORD dwTotalSize;
DWORD dwNeededSize;
DWORD dwUsedSize;
DWORD dwAPIVersion;
DWORD dwExtVersion;
DWORD dwExtensionID0;
DWORD dwExtensionID1;
DWORD dwExtensionID2;
DWORD dwExtensionID3;
DWORD dwProviderInfoSize;
DWORD dwProviderInfoOffset;
DWORD dwPhoneInfoSize;
DWORD dwPhoneInfoOffset;
DWORD dwPermanentPhoneID;
DWORD dwPhoneNameSize;
DWORD dwPhoneNameOffset;
DWORD dwStringFormat;
DWORD dwPhoneStates;
DWORD dwHookSwitchDevs;
DWORD dwHandsetHookSwitchModes;
DWORD dwSpeakerHookSwitchModes;
DWORD dwHeadsetHookSwitchModes;
DWORD dwVolumeFlags;
DWORD dwGainFlags;
DWORD dwDisplayNumRows;
DWORD dwDisplayNumColumns;
DWORD dwNumRingModes;
DWORD dwNumButtonLamps;
DWORD dwButtonModesSize;
DWORD dwButtonModesOffset;
DWORD dwButtonFunctionsSize;
DWORD dwButtonFunctionsOffset;
DWORD dwLampModesSize;
DWORD dwLampModesOffset;
DWORD dwNumSetData;
DWORD dwSetDataSize;
DWORD dwSetDataOffset;
DWORD dwNumGetData
DWORD dwGetDataSize;
DWORD dwGetDataOffset;
} PHONECAPS, FAR *LPPHONECAPS;
Fields The PHONECAPS structure contains the following fields:
dwTotalSize
The total size in bytes allocated to this data structure.
dwNeededSize
The size in bytes for this data structure that is needed to hold all the returned information.
dwUsedSize
The size in bytes of this data structure that contains useful information.
dwAPIVersion
Specifies the API version number under which the Telephony API and the service provider for the line device will be operating. The high-order word is the major version number and the low-order word is the minor version number.
dwExtVersion
Specifies the extension version number under which the service provider for the line device will be operating. This version number is keyed to the specified Extension ID. The high-order word is the major version number and the low-order word is the minor version number.
dwExtensionID0
dwExtensionID1
dwExtensionID2
dwExtensionID3
These four DWORDs specify the globally unique Extension ID for the service provider for the phone device.
dwProviderInfoSize
dwProviderInfoOffset
The size in bytes and the offset in bytes from the beginning of this data structure of the variable sized field containing service provider-specific information.
dwPhoneInfoSize
dwPhoneInfoOffset
The size in bytes and the offset in bytes from the beginning of this data structure of the variable sized device field containing phone-specific information.
dwPermanentPhoneID
Specifies the permanent DWORD identifier by which the phone device is known in the system's configuration.
dwPhoneNameSize
dwPhoneNameOffset
The size in bytes and the offset in bytes from the beginning of this data structure of the variable sized device field containing user configurable name for this phone device. This name can be configured by the user when configuring the phone device's service provider and is provided for the user's convenience.
dwPhoneStates
Specifies the state changes for this phone device for which the app can be notified via a PHONE_STATE callback message, of type PHONESTATE. Values are:
PHONESTATE_OTHER
An other phone status information item not listed below has changed.
PHONESTATE_CONNECTED
The connection between the phone device and the API was just made. This happens when the API is first invoked, or when the wire connection the phone to the PC is plugged in with the API active.
PHONESTATE_DISCONNECTED
The connection between the phone device and the API was just broken. This happens when the wire connecting the phone set to the PC is unplugged while the API is active.
PHONESTATE_OWNER
The number of owners for the phone device has changed.
PHONESTATE_MONITORS
The number of monitors for the phone device has changed.
PHONESTATE_DISPLAY
The display of the phone has changed.
PHONESTATE_LAMP
A lamp of the phone has changed.
PHONESTATE_RINGMODE
The ring mode of the phone has changed.
PHONESTATE_RINGVOLUME
The ring volume of the phone has changed.
PHONESTATE_HANDSETHOOKSWITCH
The handset hookswitch state has changed.
PHONESTATE_HANDSETVOLUME
The handset's speaker volume setting has changed.
PHONESTATE_HANDSETGAIN
The handset's mic gain setting has changed.
PHONESTATE_SPEAKERHOOKSWITCH
The speakerphone's hookswitch state has changed.
PHONESTATE_SPEAKERVOLUME
The speakerphone's speaker volume setting has changed.
PHONESTATE_SPEAKERGAIN
The speakerphone's mic gain setting state has changed.
PHONESTATE_HEADSETHOOKSWITCH
The headset's hookswitch state has changed.
PHONESTATE_HEADSETVOLUME
The headset's speaker volume setting has changed.
PHONESTATE_HEADSETGAIN
The headset's mic gain setting has changed.
PHONESTATE_SUSPEND
The app's use of the phone is temporarily suspended.
PHONESTATE_RESUME
The app's use of the phone device is resumed after having been suspended for some time.
PHONESTATE_DEVSPECIFIC
The phone's device specific information has changed.
dwStringFormat
Specifies the string format to be used with this phone device, of type STRINGFORMAT. Values are:
STRINGFORMAT_ASCII
This is ASCII string format using one byte per character.
STRINGFORMAT_DBCS
This is DBCS string format using two bytes per character.
STRINGFORMAT_UNICODE
This is unicode string format using two bytes per character.
dwHookSwitchDevs
This field specifies the phone's hookswitch devices, of type PHONEHOOKSWITCHDEV. Values are:
PHONEHOOKSWITCHDEV_HANDSET
This is the ubiquitous, hand held ear and mouth piece.
PHONEHOOKSWITCHDEV_SPEAKER
A built-in loudspeaker and microphone. This could also be an externally connected adjunct to the telephone set.
PHONEHOOKSWITCHDEV_HEADSET
This is a headset connected to the phone set.
dwHandsetHookSwitchModes
dwSpeakerHookSwitchModes
dwHeadsetHookSwitchModes
This field specifies the phone's hookswitch mode capabilities of the handset, speaker, or headset respectively, of type PHONEHOOKSWITCHMODE. The field is only meaningful if the hookswitch device is listed in dwHookSwitchDevs. Values are:
PHONEHOOKSWITCHMODE_ONHOOK
The device's mic and speaker are both onhook.
PHONEHOOKSWITCHMODE_MIC
The devicer's mic is active, the speaker is mute.
PHONEHOOKSWITCHMODE_SPEAKER
The device's speaker is active, the mic is mute.
PHONEHOOKSWITCHMODE_MICSPEAKER
The device's mic and speaker are both active.
dwVolumeFlags
This field specifies the volume setting capabilities of the phone device's speaker components. If the bit in position PHONEHOOKSWITCHDEV is TRUE then the volume of the corresponding hookswitch device's speaker component can be adjusted via phoneSetVolume; otherwise FALSE.
dwGainFlags
This field specifies the gain setting capabilities of the phone device's mic components. Of the bit position PHONEHOOKSWITCHDEV is TRUE then the volume of the corresponding hookswitch device's mic component can be adjusted via the phoneSetGain; otherwise FALSE.
dwDisplayNumRows
This field specifies the display capabilities of the phone device by describing the number of rows in the phone display. dwDisplayNumRows and dwDisplayNumColumns are both zero for a phone device without a display.
dwDisplayNumColumns
This field specifies the display capabilities of the phone device by describing the number of columns in the phone display. dwDisplayNumRows and dwDisplayNumColumns are both zero for a phone device without a display.
dwNumRingModes
This field specifies the ring capabilities of the phone device. The phone is able to ring with dwNumRingModes different ring patterns, identified as 1, 2, ... dwNumRingModes - 1. A ring patterns of zero is meant to use silence.
dwNumButtonLamps
This field specifies the number of button/lamps on the phone device that are detectable in the API. Button/lamps are identified by their ID. Valid button/lamp IDs range from zero to dwNumButtonLamps - 1. The keypad buttons '0', through '9', '*', and '#' are assigned the IDs 0 through 12.
dwButtonModesSize
dwButtonModesOffset
The size in bytes and the offset from the beginning of this data structure in bytes of the variable sized field containing the button modes of the phone's buttons, of type PHONEBUTTONMODE. The array is indexed by button/lamp ID. Values are:
PHONEBUTTONMODE_DUMMY
This value is used to describe a button/lamp position that has no corresponding button, but has only a lamp. If the phone provides any non-DUMMY buttons, then the PHONE_BUTTON message will be sent to the application if a button is pressed at the phone device.
PHONEBUTTONMODE_CALL
The button is assigned to a call appearance.
PHONEBUTTONMODE_FEATURE
The button is assigned to requesting features from the switch, such as hold, conference, transfer, etc.
PHONEBUTTONMODE_KEYPAD
The button is one of the twelve keypad buttons, '0' through '9', '*', and '#'.
PHONEBUTTONMODE_LOCAL
The button is a local function button, such as mute or volume control.
PHONEBUTTONMODE_DISPLAY
The button is a "soft" button associated with the phone's display. A phone set can have zero or more display buttons.
dwButtonFunctionsSize
dwButtonFunctionsOffset
The size in bytes and the offset from the beginning of this data structure in bytes of the variable sized field containing the button modes of the phone's buttons, of type PHONEBUTTONFUNCTION. The array is indexed by button/lamp ID.
dwLampModesSize
dwLampModesOffset
The size in bytes and the offset from the beginning of this data structure in bytes of the variable sized field containing the lamp modes of the phone's lamps, of type PHONELAMPMODE. The array is indexed by button/lamp ID. Values are:
PHONELAMPMODE_BROKENFLUTTER
Broken flutter is the superposition of flash and flutter.
PHONELAMPMODE_FLASH
Flash means slow on and off.
PHONELAMPMODE_FLUTTER
Flutter means fast on and off.
PHONELAMPMODE_OFF
The lamp is off.
PHONELAMPMODE_STEADY
The lamp is continuously lit.
PHONELAMPMODE_WINK
The lamp is winking.
dwNumSetData
The number of different download areas in the phone device. The different areas are referred to using the data IDs 0, 1, ..., dwNumSetData - 1. If this field is zero, then the phone does not support the download capability.
dwSetDataSizesSize
dwSetDataSizesOffset
The size in bytes and the offset from the beginning of this data structure in bytes of the variable sized field containing the sizes (in bytes) of the phone's download data areas. This is an array with DWORD-sized elements, indexed by data ID.
dwNumGetData
The number of different upload areas in the phone device. The different areas are referred to using the data IDs 0, 1, ..., dwNumGetData - 1. If this field is zero, then the phone does not support the upload capability.
dwGetDataSizesSize
dwGetDataSizesOffset
The size in bytes and the offset from the beginning of this data structure in bytes of the variable sized field containing the sizes (in bytes) of the phone's upload data areas. This is an array with DWORD-sized elements, indexed by data ID.
Extensibility Device specific extensions should use the DevSpecific (dwDevSpecificSize and dwDevSpecificOffset) variable sized area of this data structure.
Comments None.
See Also Functions: phoneGetDevCaps
Data types: PHONEBUTTONMODE, PHONELAMPMODE,
PHONEHOOKSWITCHDEV
PHONEERR
This is the list of error codes that the implementation may return when invoking operations on phone devices. Consult the individual function descriptions to determine which of these error codes each function may return.
PHONEERR_ALLOCATED 0x80000001
PHONEERR_BADDEVICEID 0x80000002
PHONEERR_INCOMPATIBLEVERSION 0x80000003
PHONEERR_INUSE 0x80000004
PHONEERR_INVALAPPHANDLE 0x80000005
PHONEERR_INVALBUTTONLAMPID 0x80000006
PHONEERR_INVALBUTTONMODE 0x80000007
PHONEERR_INVALBUTTONSTATE 0x80000008
PHONEERR_INVALDATAID 0x80000009
PHONEERR_INVALEXTVERSION 0x8000000A
PHONEERR_INVALHOOKSWITCHDEV 0x8000000B
PHONEERR_INVALHOOKSWITCHMODE 0x8000000C
PHONEERR_INVALLAMPMODE 0x8000000D
PHONEERR_INVALPARAM 0x8000000E
PHONEERR_INVALPHONEHANDLE 0x8000000F
PHONEERR_INVALPHONESTATE 0x80000010
PHONEERR_INVALPOINTER 0x80000011
PHONEERR_INVALRINGMODE 0x80000012
PHONEERR_NODEVICE 0x80000013
PHONEERR_NODRIVER 0x80000014
PHONEERR_NOMEM 0x80000015
PHONEERR_NOTOWNER 0x80000016
PHONEERR_OPERATIONFAILED 0x80000017
PHONEERR_OPERATIONUNAVAIL 0x80000018
PHONEERR_RESOURCEUNAVAIL 0x80000019
PHONEERR_REQUESTOVERRUN 0x8000001A
Extensibility Values 0x90000000 through 0xFFFFFFFF are available for device specific extensions. Values 0x80000000 through 0x8FFFFFFF are reserved, while values 0x0000 through 0x7FFFFFFF are used as request IDs.
Comments If an application gets an error return that it does not specifically handle (e.g., and error defined by a device specific extension), then it should treat the error as a PHONEERR_OPERATIONFAILED (for unspecified reason).
See Also Messages: PHONE_REPLY
PHONEHOOKSWITCHDEV
The PHONEHOOKSWITCHDEV bit flag constants describe various audio I/O devices each with its own hookswitch controllable from the PC.
PHONEHOOKSWITCHDEV_HANDSET 0x00000001
PHONEHOOKSWITCHDEV_SPEAKER 0x00000002
PHONEHOOKSWITCHDEV_HEADSET 0x00000004
Values The PHONEHOOKSWITCHDEV constants have the following values:
PhoneHookSwitchDev_handset
This is the ubiquitous, hand held ear and mouth piece.
PhoneHookSwitchDev_speaker
This is a built-in loudspeaker and microphone. This could also be an externally connected adjunct speaker to the telephone set.
PhoneHookSwitchDev_headset
This is a headset connected to the phone set.
Extensibility The high order 16 bits can be assigned for device specific extensions. The low order 16 bits are reserved.
Comments These constants are used in the PHONECAPS data structure to indicate the hookswitch device capabilities of a phone device. The PHONESTATUS structure reports the state of the phone's hookswitch devices. The function phoneSetHookSwitch and phoneGetHookSwitch use it as a parameter to select the phone's I/O device.
See Also Functions: phoneSetHookSwitch, phoneGetHookSwitch, phoneGetDevCaps,
phoneGetStatus
Data Types: PHONECAPS, PHONESTATUS
PHONEHOOKSWITCHMODE
The PHONEHOOKSWITCHMODE bit flag constants describe the mic and speaker components of a hookswitch device.
PHONEHOOKSWITCHMODE_ONHOOK 0x00000001
PHONEHOOKSWITCHMODE_MIC 0x00000002
PHONEHOOKSWITCHMODE_SPEAKER 0x00000004
PHONEHOOKSWITCHMODE_MICSPEAKER 0x00000008
PHONEHOOKSWITCHMODE_UNKNOWN 0x00000010
Values The PHONEHOOKSWITCHMODE constants have the following values:
PhoneHookSwitchMode_onHook
The device's mic and speaker are both onhook.
PhoneHookSwitchMode_mic
The devicer's mic is active, the speaker is mute.
PhoneHookSwitchMode_speaker
The device's speaker is active, the mic is mute.
PhoneHookSwitchMode_micSpeaker
The device's mic and speaker are both active.
PhoneHookSwitchMode_unknown
The device's hookswitch mode is currenly unknown.
Extensibility The high order 16 bits can be assigned for device specific extensions. The low order 16 bits are reserved.
Comments These constants are used to provide individual level of control over the mic and speaker components of a phone device.
See Also Functions: phoneSetHookSwitch, phoneGetHookSwitch, phoneGetDevCaps,
phoneGetStatus
Data structures: PHONECAPS, PHONESTATUS
PHONELAMPMODE
The PHONELAMPMODE bit flag constants describe various ways in which a phone's lamp can be lit.
PHONELAMPMODE_DUMMY 0x00000001
PHONELAMPMODE_OFF 0x00000002
PHONELAMPMODE_STEADY 0x00000004
PHONELAMPMODE_WINK 0x00000008
PHONELAMPMODE_FLASH 0x00000010
PHONELAMPMODE_FLUTTER 0x00000020
PHONELAMPMODE_BROKENFLUTTER 0x00000040
PHONELAMPMODE_UNKNOWN 0x00000080
Values The PHONELAMPMODE constants have the following values:
PhoneLampMode_dummy
This value is used to describe a button/lamp position that has no corresponding lamp.
PhoneLampMode_off
The lamp is off.
PhoneLampMode_steady
Steady means the lamp is continuously lit.
PhoneLampMode_wink
Wink means normal rate on and off.
PhoneLampMode_flash
Flash means slow on and off.
PhoneLampMode_flutter
Flutter means fast on and off.
PhoneLampMode_brokenflutter
Broken flutter is the superposition of flash and flutter.
PhoneLampMode_unknown
The lamp mode is currently unknown.
Extensibility The high order 16 bits can be assigned for device specific extensions. The low order 16 bits are reserved.
Comments Where the exact on and off cadences may differ across phone sets from different vendors, mapping of actual lamp lighting patterns for most phones onto the values listed above should be straightforward.
See Also Functions: phoneSetLamp, phoneGetLamp, phoneGetDevCaps,
phoneGetStatus
Data Types: PHONECAPS, PHONESTATUS
PHONEPRIVILEGE
The PHONEPRIVILEGE bit flag constants describe the various ways in which a phone device can be opened.
PHONEPRIVILEGE_MONITOR 0x00000001
PHONEPRIVILEGE_OWNER 0x00000002
Values The PHONEPRIVILEGE constants have the following values.
PhonePrivilege_monitor
An application that opens a phone device with the monitor privilege is informed about events and state changes occurring on the phone. The application cannot invoke any operations on the phone device that would change its state; so only status operations can be invoked. Multiple applications can monitor a phone device at any given time.
PhonePrivilege_owner
An application that opens a phone device with the owner privilege is allowed to change the state of the lamps, ringer, display, hook switch, and data blocks of the phone. Opening a phone device in owner mode also provides monitoring of the phone device. One one application is allowed to be the owner of a phone device at any given time.
Extensibility The high order 16 bits can be assigned for device specific extensions. The low order 16 bits are reserved.
Comments None.
See Also Functions: phoneOpen, phoneGetDevCaps, phoneGetStatus
Data Types: PHONECAPS, PHONESTATUS
PHONESTATE
The PHONESTATE bit flag constants describe various status items for a phone device.
PHONESTATE_OTHER 0x00000001
PHONESTATE_CONNECTED 0x00000002
PHONESTATE_DISCONNECTED 0x00000004
PHONESTATE_OWNER 0x00000008
PHONESTATE_MONITORS 0x00000010
PHONESTATE_DISPLAY 0x00000020
PHONESTATE_LAMP 0x00000040
PHONESTATE_RINGMODE 0x00000080
PHONESTATE_RINGVOLUME 0x00000100
PHONESTATE_HANDSETHOOKSWITCH 0x00000200
PHONESTATE_HANDSETVOLUME 0x00000400
PHONESTATE_HANDSETGAIN 0x00000800
PHONESTATE_SPEAKERHOOKSWITCH 0x00001000
PHONESTATE_SPEAKERVOLUME 0x00002000
PHONESTATE_SPEAKERGAIN 0x00004000
PHONESTATE_HEADSETHOOKSWITCH 0x00008000
PHONESTATE_HEADSETVOLUME 0x00010000
PHONESTATE_HEADSETGAIN 0x00020000
PHONESTATE_SUSPEND 0x00040000
PHONESTATE_RESUME 0x00080000
PHONESTATE_DEVSPECIFIC 0x00100000
Values The PHONESTATE constants have the following values:
PhoneState_other
A non-specified phone status information item has changed.
PhoneState_connected
The connection between the phone device and the API was just made. This happens when the API is first invoked, or when the wire connection the phone to the PC is plugged in with the API active.
PhoneState_disconnected
The connection between the phone device and the API was just broken. This happens when the wire connecting the phone set to the PC is unplugged while the API is active.
PhoneState_owner
The number of owners for the phone device.
PhoneState_monitors
The number of monitors for the phone device.
PhoneState_display
The display of the phone has changed.
PhoneState_lamp
A lamp of the phone has changed.
PhoneState_ringmode
The ring mode of the phone has changed.
PhoneState_ringvolume
The ring volume of the phone has changed.
PhoneState_handsetHookSwitch
The handset hookswitch state has changed.
PhoneState_handsetVolume
The handset's speaker volume setting has changed.
PhoneState_handsetGain
The handset's mic gain setting has changed.
PhoneState_speakerHookSwitch
The speakerphone's hookswitch state has changed.
PhoneState_speakerVolume
The speakerphone's speaker volume setting has changed.
PhoneState_speakerGain
The speakerphone's mic gain setting state has changed.
PhoneState_headsetHookSwitch
The headset's hookswitch state has changed.
PhoneState_headsetVolume
The headset's speaker volume setting has changed.
PhoneState_headsetGain
The headset's mic gain setting has changed.
PhoneState_suspend
The app's use of the phone is temporarily suspended.
PhoneState_resume
The app's use of the phone device is resumed after having been suspended for some time.
PhoneState_devspecific
The phone's device specific information has changed.
Extensibility The high order 16 bits can be assigned for device specific extensions. The low order 16 bits are reserved.
Comments None.
See Also Functions: phoneSetStatusMessages, phoneGetStatusMessages
Messages: PHONE_STATE
Data Types: PHONESTATUS
PHONESTATUS
The PHONESTATUS structure describes the current status of a phone device.
typedef struct phonestatus_tag {
DWORD dwTotalSize;
DWORD dwNeededSize;
DWORD dwUsedSize;
DWORD dwStatusFlags;
DWORD dwNumOwners;
DWORD dwNumMonitors;
DWORD dwRingMode;
DWORD dwRingVolume;
DWORD dwHandsetHookSwitchMode;
DWORD dwHandsetVolume;
DWORD dwHandsetGain;
DWORD dwSpeakerHookSwitchMode;
DWORD dwSpeakerVolume;
DWORD dwSpeakerGain;
DWORD dwHeadsetHookSwitchMode;
DWORD dwHeadsetVolume;
DWORD dwHeadsetGain;
DWORD dwDisplaySize;
DWORD dwDisplayOffset;
DWORD dwLampModesSize;
DWORD dwLampModesOffset;
DWORD dwOwnerNameSize;
DWORD dwOwnerNameOffset;
DWORD dwDevSpecificSize;
DWORD dwDevSpecificOffset;
} PHONESTATUS, FAR *LPPHONESTATUS;
Fields The PHONESTATUS structure has the following fields:
dwTotalSize
The total size in bytes allocated to this data structure.
dwNeededSize
The size in bytes for this data structure that is needed to hold all the returned information.
dwUsedSize
The size in bytes of this data structure that contains useful information.
dwStatusFlags
This field provides a collection of status flags for this phone device, of type PHONESTATUSFLAGS. Values are:
PHONESTATUSFLAGS_CONNECTED
Specifies whether the phone is currently connected to the API. TRUE if connected, FALSE otherwise.
PHONESTATUSFLAGS_SUSPENDED
Specifies whether the API's manipulation of the phone device is suspended or not. TRUE is suspended, FALSE otherwise. An app's use of a phone device may be temporarily suspended when the switch wants to manipulate the phone in a way that cannot tolerate interference from the application.
dwRingMode
Specifies the current ring mode of a phone device.
dwRingVolume
Specifies the current ring volume of a phone device. This is a value between 0x00000000 which is silence and 0x0000FFFF which is maximum volume.
dwHandsetHookSwitchMode
Specifies the current hook switch mode of the phone's handset, of type PHONEHOOKSWITCHMODE. Values are:
PHONEHOOKSWITCHMODE_ONHOOK
The device's mic and speaker are both onhook.
PHONEHOOKSWITCHMODE_MIC
The devicer's mic is active, the speaker is mute.
PHONEHOOKSWITCHMODE_SPEAKER
The device's speaker is active, the mic is mute.
PHONEHOOKSWITCHMODE_MICSPEAKER
The device's mic and speaker are both active.
dwHandsetVolume
Specifies the current speaker volume of the phone's handset device. This is a value between 0x00000000 which is silence and 0x0000FFFF which is maximum volume.
dwHandsetGain
Specifies the current mic gain of the phone's handset device. This is a value between 0x00000000 which is silence and 0x0000FFFF which is maximum gain.
dwSpeakerHookSwitchMode
Specifies the current hook switch mode of the phone's speakerphone, of type PHONEHOOKSWITCHMODE. Values are:
PHONEHOOKSWITCHMODE_ONHOOK
The device's mic and speaker are both onhook.
PHONEHOOKSWITCHMODE_MIC
The devicer's mic is active, the speaker is mute.
PHONEHOOKSWITCHMODE_SPEAKER
The device's speaker is active, the mic is mute.
PHONEHOOKSWITCHMODE_MICSPEAKER
The device's mic and speaker are both active.
dwSpeakerVolume
Specifies the current speaker volume of the phone's speaker device. This is a value between 0x00000000 which is silence and 0x0000FFFF which is maximum volume.
dwSpeakerGain
Specifies the current mic gain of the phone's speaker device. This is a value between 0x00000000 which is silence and 0x0000FFFF which is maximum gain.
dwHeadsetHookSwitchMode
Specifies the current hook switch mode of the phone's headset, of type PHONEHOOKSWITCHMODE. Values are:
PHONEHOOKSWITCHMODE_ONHOOK
The device's mic and speaker are both onhook.
PHONEHOOKSWITCHMODE_MIC
The devicer's mic is active, the speaker is mute.
PHONEHOOKSWITCHMODE_SPEAKER
The device's speaker is active, the mic is mute.
PHONEHOOKSWITCHMODE_MICSPEAKER
The device's mic and speaker are both active.
dwHeadsetVolume
Specifies the current speaker volume of the phone's headset device. This is a value between 0x00000000 which is silence and 0x0000FFFF which is maximum volume.
dwHeadsetGain
Specifies the current mic gain of the phone's headset device. This is a value between 0x00000000 which is silence and 0x0000FFFF which is maximum gain.
dwDisplaySize
dwDisplayOffset
The size in bytes and the offset in bytes from the beginning of this data structure of the variable sized field containing the phone's current display information.
dwLampModesSize
dwLampModesOffset
The size in bytes and the offset in bytes from the beginning of this data structure of the variable sized field containing the phone's current lamp modes.
dwOwnerNameSize
dwOwnerNameOffset
The size in bytes and the offset in bytes from the beginning of this data structure of the variable sized field containing the name of the application that is the the current owner of the phone device. The name is the application name provided by the application when it invoked phoneInitialize. If no application name was supplied, then the application's module name is used instead. If the phone currently has no owner, then dwOwnerNameSize is zero.
dwDevSpecificSize
dwDevSpecificOffset
The size in bytes and the offset in bytes from the beginning of this data structure of the variable sized device specific field.
Extensibility Device specific extensions should use the DevSpecific (dwDevSpecificSize and dwDevSpecificOffset) variable sized area of this data structure.
Comments None.
See Also Functions: phoneGetStatus
Data types: PHONELAMPMODE, PHONEHOOKSWITCHDEV,
PHONEHOOKSWICTHMODE, PHONESTATUSFLAGS,
PHONESTATE
PHONESTATUSFLAGS
The PHONESTATUSFLAGS bit flag constants describe a variety of phone device status information.
PHONESTATUSFLAGS_CONNECTED 0x00000001
PHONESTATUSFLAGS_SUSPENDED 0x00000002
Values The PHONESTATUSFLAGS constants have the following values.
PhoneStatusFlags_connected
Specifies whether the phone is currently connected to the API. TRUE if connected, FALSE otherwise.
PhoneStatusFlags_suspended
Specifies whether the API's manipulation of the phone device is suspended or not. TRUE is suspended, FALSE otherwise. An app's use of a phone device may be temporarily suspended when the switch wants to manipulate the phone in a way that cannot tolerate interference from the application.
Extensibility The high order 16 bits can be assigned for device specific extensions. The low order 16 bits are reserved.
Comments None.
See Also Data Types: PHONESTATUS
STRINGFORMAT
The STRINGFORMAT enumeration constants describe different string formats.
STRINGFORMAT_ASCII 0x00000001
STRINGFORMAT_DBCS 0x00000002
STRINGFORMAT_UNICODE 0x00000003
STRINGFORMAT_BINARY 0x00000004
Values The STRINGFORMAT constants have the following values.
StringFormat_ASCII
Specifies standard ASCII character format using one byte per character.
StringFormat_DBCS
Specifies standard DBCS character format using two bytes per character.
StringFormat_unicode
Specifies standard Unicode character format using two bytes per character.
StringFormat_binary
This is an array of unsigned characters; could be used for numeric values.
Extensibility Values in the range 0x80000000 to 0xFFFFFFFF can be assigned for device specific extensions; values in the range 0x00000000 to 0x7FFFFFFF are reserved.
Comments None.
See Also Data Types: VARSTRING
VARSTRING
The VARSTRING structure is used for returning variable sized strings. It is used both by the line device class and the phone device class.
typedef struct varstring_tag {
DWORD dwTotalSize;
DWORD dwNeededSize;
DWORD dwUsedSize;
DWORD dwStringFormat;
DWORD dwStringSize;
DWORD dwStringOffset;
} VARSTRING, FAR *LPVARSTRING;
Fields The VARSTRING structure contains the following fields:
dwTotalSize
The total size in bytes allocated to this data structure.
dwNeededSize
The size in bytes for this data structure that is needed to hold all the returned information.
dwUsedSize
The size in bytes of this data structure that contains useful information.
The size in bytes and the offset in bytes from the beginning of the containing data structure of a variable sized field.
dwStringFormat
Specifies the format of the string, of type STRINGFORMAT. Values are:
STRINGFORMAT_ASCII
This is ASCII string format using one byte per character.
STRINGFORMAT_DBCS
This is DBCS string format using two bytes per character.
STRINGFORMAT_UNICODE
This is unicode string format using two bytes per character.
STRINGFORMAT_BINARY
This is an array of unsigned characters; could be used for numeric values.
dwStringSize
dwStringOffset
The size in bytes and the offset in bytes from the beginning of this data structure of the variable sized device field containing the string information.
Extensibility None.
Comments None.
See Also Data Types: STRINGFORMAT
This page is intentionally left blank.