RTC Client API OS Design Development

Other versions of this page are also available for the following:

Windows Mobile Not SupportedWindows Embedded CE Supported

8/28/2008

Windows Embedded CE includes the released version of the RTC Client API, version 1.2, and includes the following functionality:

  • Setting up VoIP connections among Windows Embedded CE-based devices, .NET-based devices, 4a7a563b-c21b-4d01-b1d3-4a5b875ed99bMicrosoft Windows XP-based systems, third-party SIP user agents, and PSTN phones.
    The audio functionality includes Automatic Gain Control (AGC). AGC automatically adjusts the output volume heard by the receiver so it remains constant, independent of the input volume.
    For example, this means that if the sender's environmental noise increases, the output volume does not also increase and require the receiver to move the headset away from their ear.
    AGC works by varying the output volume inversely with the input volume.
  • Initiating text-messaging sessions, this can occur simultaneously with voice connections.
  • Receiving presence information to see if your contacts are online, enabling you to change your own presence state and send notifications, and monitoring who is watching the user's online presence.
  • The creation of subscriptions for SUBSCRIBE/NOTIFY events. This allows applications to register for services provided by certain SIP servers such as voice mail.
  • Audio healer, which improves the audio quality of sound on network where packets cannot be reliably delivered.
  • Support for SIP privacy headers.
  • Support for Provisional Acknowledgement messages (PRACKs), which can be used to enable early media.
  • Enhancements to the Port Manager for traversing through network address translation (NAT) devices, in particular support for TCP connections.

The RTC Client API is built on the Session Initiation Protocol (SIP), which is an Internet Engineering Task Force (IETF) standard. SIP connects and receives calls to and from other SIP clients.

When a connection is established using SIP, the RTC Client API uses the real-time transport protocol (RTP) to transfer media between the connected parties.

Windows Embedded CE includes multiple technologies that use the communication functionality provided by the RTC Client API. For example, the IP phone support in Windows Embedded CE is built on top of the RTC Client API. Windows Messenger for Windows Embedded CE is a client application that can use the RTC Client API to transmit and receive text, voice, and presence information.

For more information about IP phone support, see Developing a VoIP Phone.

For more information about Windows Messenger, see Windows Messenger.

OS Design Information

The following table shows operating system design information for RTC.

Concept Description

Dependencies

Audio hardware

Cryptography Services

DNSAPI

IP Helper API

Schannel

TCP/IP

Wininet

Winsock 2.2

XML Core Services

XML Query Languages

Hardware considerations

Audio hardware appropriate for your use cases

For fully functional audio capabilities, one or more of the following solutions must be implemented:

  • A PCI bus must be reserved for an appropriate audio card.
  • If the audio is onboard, it must have an AC97 codec and a codec controller that provides hardware-assisted audio data transfer to and from the codec. The controller must have the following:
    • Enough bandwidth to service the audio and other devices in the system.
    • An interrupt mechanism that can notify the driver when a data transfer is complete.
    • Sufficient buffering capabilities in audio data to allow the interrupt service thread to start another data transfer without causing audio breakup.

The Real Time Communications automatic gain control won’t work properly unless the driver (and hardware) supports mixerSetControlDetails on the microphone input. Specifically, the dwControlID field of the MIXERCONTROLDETAILS struct should be equal to MIXERCONTROL_CONTROLTYPE_VOLUME.

Implementation Considerations

The following table shows the Sysgen variables for RTC.

Sysgen variable Description

SYSGEN_VOIP

Adds the programming interface that provides messaging, presence, and audio between any two IP-enabled devices. Includes G711, G.722.1, and Siren codecs. Sets SYSGEN_VOIP_SIGNALING and SYSGEN_VOIP_MEDIA.

SYSGEN_VOIP_MEDIA_GSM

Adds the GSM 610 codec.

SYSGEN_VOIP_SIGNALING

Adds the signaling portion of RTC client.

SYSGEN_VOIP_MEDIA

Adds the media portion of RTC client.

See Also

Other Resources

Real-time Communications (RTC) Client API
Developing a VoIP Phone
Windows Embedded CE Modules and Components