Customizing Non-UI IP Phone Functionality (Windows Embedded CE 6.0)

1/5/2010

This topic outlines the non-UI customization options provided by the VoIP phone functionality in Windows Embedded CE. For detailed information about these options, see Common VoIP Phone Customization Tasks and Exchange Client.

The non-UI VoIP phone functionality included with Windows Embedded CE implements the underlying functionality used by the VoIP Phone Suite, and in doing so, provides much of the VoIP functionality.

The following table shows the major pieces of non-UI functionality included with Windows Embedded CE and the directory that contains the source code for the component. You cannot customize the implementation to change how the Real-time Communications (RTC) Client API operates. Instead, you can customize or use RTC independently of other VoIP features in other ways, such as changing SIP stacks, using multiple SIP stacks, or using RTC to gain access to presence and instant messaging functionality supplied by the Microsoft Live Communication Server (LCS).

The RTC Client API does not ship in source code form and is not included in this table. For more information about RTC, see Real-time Communications (RTC) Client API.

Functionality Directory Location

VAIL Database Store, which includes call and caller information databases.

%_WINCEROOT%\Public\VoIP\Oak\Phone\Database

PhCommon, which implements the common control and User Interface (UI) functionality.

%_WINCEROOT%\Public\VoIP\Oak\Phone\PhCommon

Exchange Client.

%_WINCEROOT%\Public\VoIP\Oak\Phone\OWAExchangeClient

Because the VAIL Database Store, Exchange Client, and PhCommon are provided in source code form, you can customize their functionality. However, you will probably want to keep the APIs they provide constant, so that you do not need to customize the code that uses the APIs (like the VoIP Phone Suite or another UI.) More frequently, you will want to customize the implementation of the API to change how the components operate.

You can typically customize the Exchange Client and PhCommon features by directly changing the source. You can customize the VAIL Database Store by changing the source and also by providing new COM components that implement specific COM interfaces, if necessary.

Implementing COM interfaces to customize the VAIL Database Store

The VAIL Database Store is designed so that the implementation of much of its functionality is provided using defined COM interfaces. This is the case for the following features and COM interfaces:

Windows Embedded CE ships with implementations for these interfaces that use native Windows Embedded CE databases as the backing store. You can provide your own implementations that store this information in any location.

Directly replacing code to customize the VoIP Phone Suite

Other parts of the VoIP Phone Suite can be modified by directly changing or replacing VoIP Phone Suite component code.

A common example of a VoIP Phone Suite modification that requires changing code is replacing the SIP stack that the VoIP Phone Suite uses for signaling.

By default, the VoIP Phone Suite, through the VoIP Dialer component (PhoneApp), implements signaling using the SIP stack included in the RTC Client API Catalog item, with code in the files in %_WINCEROOT%\Public\VoIP\Oak\Phone\PhoneApp.

To change the SIP stack that the VoIP Phone Suite uses, examine the code in these files and replace references to the RTC Client API functions with code that calls your own SIP stack.

See Also

Concepts

Using the IP Phone Suite with a Custom SIP or Media Stack
Customizing the Supplied UI
Configuration Scenarios for the RTC SIP Stack
Using Exchange Integration
Using a Third Party Media Stack with RTC
Changing How Call Log and Caller Information is Stored
Customizing Keyboard Shortcuts in the VoIP Phone Suite
Recommended Timer Defaults for the VoIP Phone Suite

Other Resources

Customizing VoIP Phone Functionality
VoIP Core Components Reference