Share via


Mapping Hardware to IP Phone Suite Functionality (Windows Embedded CE 6.0)

1/6/2010

The IP Phone Suite is architected so that calling functionality required by specific hardware can be implemented cleanly in one location rather than being strewn throughout the IP Phone Suite source code. Specifically, it is handled by the IP Dialer application, which handles all call control or also by IP Home Screen.

IP Home Screen does not handle call control, but it does handle other hardware triggered functionality.

The phone suite does not have any hardware specific or hardware-dependent code.

By continuing to use this division between hardware-independent and hardware-specific code, you might be able to minimize the amount of integration work to be done if your source code is updated at some future time.

Note

The IP Phone Suite can be used on target devices that support a widely varying set of hardware buttons. This topic doesn't discuss mapping input hardware to IP Phone Suite functionality. For more information about keyboard shortcuts, see Customizing Keyboard Shortcuts in the VoIP Phone Suite.

For example, traditional IP phone hardware meant to be used on an office desk has multiple speakers and microphones: a speaker and microphone in the handset and a speaker and microphone for use as a speaker phone.

IP phone hardware often also supports various indicator lights and LEDs. The interaction with this hardware is specific to the hardware itself.

The IP Dialer application manages the current call state of the IP phone. Out of the box, this state can be one of the following:

  • Idle
  • Handset
  • Speaker phone

The IP Dialer application does this management in a hardware-independent manner in the VoipApp.cpp file that resides in the %_WINCEROOT%\Public\VoIP\OAK\Phone\PhoneApp\PhoneCore directory.

For example, code in Voipapp.cpp calls the VoIPApp_t::OnHookModeChange method to handle switching between different speaker/handset modes.

When the IP Phone Suite detects that, say, the handset has been picked up and the phone is off-hook (using keyboard shortcuts, also called "hotkeys") it responds by changing to a new state and indicating which specific speakers and microphones should be on or off.

The suite is not talking directly to the hardware. It is relying on the keyboard driver to send it keyboard events, in the form of mapped keyboard shortcuts (i.e. "hotkeys") and is responding to those notifications.

Supporting New Hardware (No Keyboard Driver)

To support new hardware or not use the keyboard driver, an OEM is expected to provide their own mechanism (OAL/driver) that will interpret a hardware key as a specific keyboard shortcut ("hotkey") so that the phone suite code will work in the same way.

You can easily modify the phone suite code and the keyboard shortcut ("hotkey") logic to keep the phone suite applications, namely IP Dialer, notified in the same way for either currently supported functionality or for additional hardware functionality that you might want to add.

See Also

Concepts

Customizing the IP Phone Suite Applications

Other Resources

Customizing the VoIP Phone Suite
Customizing Keyboard Shortcuts in the VoIP Phone Suite