5.1.1.5 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:

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