LINECALLSTATUS
The LINECALLSTATUS
structure describes the current status of a call. The information in this
structure, as returned with lineGetCallStatusH0NJU2, 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 {
DWORD dwTotalSize;
DWORD dwNeededSize;
DWORD dwUsedSize;
DWORD dwCallState;
DWORD dwCallStateMode;
DWORD dwCallPrivilege;
DWORD dwCallFeatures;
DWORD dwDevSpecificSize;
DWORD dwDevSpecificOffset;
DWORD dwCallFeatures2;
SYSTEMTIME tStateEntryTime;
} LINECALLSTATUS, FAR *LPLINECALLSTATUS;
Members
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 the portion of this data structure that contains useful information.
dwCallState
dwCallStateMode
The dwCallState
field specifies the current call state of the call. 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). This field uses the
following LINECALLSTATE_ constants:
LINECALLSTATE_IDLE
The call
state mode is unused.
LINECALLSTATE_OFFERING
The call
state mode is of type LINEOFFERINGMODE_. Values are:
LINEOFFERINGMODE_ACTIVE
Indicates
that the call is alerting at the current station (will be accompanied by
LINEDEVSTATE_RINGING messages), and if any application is set up to
automatically answer, it may do so.
LINEOFFERINGMODE_INACTIVE
Indicates
that the call is being offered at more than one station, but the current
station is not alerting (for example, it may be an attendant station where the
offering status is advisory, such as blinking a light).
LINECALLSTATE_ACCEPTED
The call
state mode is unused.
LINECALLSTATE_DIALTONE
The call
state mode, of type LINEDIALTONEMODE_. Values are:
LINEDIALTONEMODE_NORMAL
This is a
"normal" dial tone, which typically is a continuous tone.
LINEDIALTONEMODE_SPECIAL
This is a
special dial tone indicating a certain condition is currently in effect.
LINEDIALTONEMODE_INTERNAL
This an
internal dial tone, as within a PBX.
LINEDIALTONEMODE_EXTERNAL
This is an
external (public network) dial tone.
LINEDIALTONEMODE_UNKNOWN
The dial tone
mode is not currently known but may become known later.
LINEDIALTONEMODE_UNAVAIL
The dial tone
mode is unavailable and will not become known.
LINECALLSTATE_DIALING
Call state
mode is unused.
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 with a "normal" busy tone.
LINEBUSYMODE_TRUNK
The busy
signal indicates that a trunk or circuit is busy. This is usually signaled with
a "long" busy tone.
LINEBUSYMODE_UNKNOWN
The busy
signal's specific mode is currently unknown 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 precedes a no circuit or emergency announcement (trunk
blockage category).
LINESPECIALINFO_CUSTIRREG
This special
information tone precedes a vacant number, AIS, Centrex number change and
nonworking station, access code not dialed or dialed in error, or manual
intercept operator message (customer irregularity category).
LINESPECIALINFO_REORDER
This special
information tone precedes a reorder announcement (equipment irregularity
category).
LINESPECIALINFO_UNKNOWN
Specifics
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 of type LINECONNECTEDMODE_. Values are:
LINECONNECTEDMODE_ACTIVE
Indicates
that the call is connected at the current station (the current station is a
participant in the call).
LINECONNECTEDMODE_INACTIVE
Indicates
that the call is active at one or more other stations, but the current station
is not a participant in the call.
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_NODIALTONE
A dial tone
was not detected within a service-provider defined timeout, at a point during
dialing when one was expected (such as at a "W" in the dialable
string). This can also occur without a service-provider-defined timeout period
or without a value specified in the dwWaitForDialTone member of the LINEDIALPARAMS
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 with the type of call requested.
LINEDISCONNECTMODE_UNAVAIL
The reason for
the disconnect is unavailable and will not become known later.
LINECALLSTATE_UNKNOWN
Call state
mode is unused.
dwCallPrivilege
The
application's privilege for this call. This field uses the following
LINECALLPRIVILEGE_ constants. Values are:
LINECALLPRIVILEGE_MONITOR
The
application has monitor privilege.
LINECALLPRIVILEGE_OWNER
The
application has owner privilege.
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. 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. This field uses
LINECALLFEATURE_ constants.
dwDevSpecificSize
dwDevSpecificOffset
The size in
bytes of the variably sized device-specific field, and the offset in bytes from
the beginning of this data structure.
dwCallFeatures2
Indicates
additional 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. An extension of the dwCallFeatures field.
This field uses LINECALLFEATURE2_ constants.
tStateEntryTime
The
Coordinated Universal Time at which the current call state was entered.
Remarks
Device-specific
extensions should use the DevSpecific (dwDevSpecificSize and dwDevSpecificOffset)
variably sized area of this data structure.
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 with lineGetCallStatus.
The members dwCallFeatures2
and tStateEntryTime are available only to applications that open the
line device with an API version of 0x00020000 or greater.
See Also