Extensibility

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.

LINEADDRCAPFLAGS

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


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


LINEADDRESSMODE

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


PHONEBUTTONFUNCTION

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.