Cellular Based Video Telephony on Windows Mobile

How do you enable Video Telephony on Windows Mobile? What are the things you have to be careful of?

First
of all, what is the underlying bearer? WiFi, WiMax, or 3G? For WiFi and
WiMax, VT will be just a Video over IP application. For 3G, however,
most likely it will be a circuit-switching based application. This
article is focused on the 3G side of video telephony on Windows Mobile.
The standard 3G-324M is based on ITU H.324 standard that specified a
data rate of 64 kilobits per second over a circuit-switched UMTS or
TD-SCDMA
connection.

The following picture shows the 3G-324M architecture (copied from an article published at www.smartphonemag.com):

Overall, to enable Video Telephony on Windows Mobile, there are four major work items to be done:

  1. Develop a VT application must enable circuit switching for video call with the baseband processor using TAPI;
  2. Must have 3G-324M protocol stack, such as the one from Radvision or Dilithium;
  3. Must have Video codecs for H.264 (a.k.a MPEG-4 AVC), H.263, 3gp, etc.
  4. VT application should be tightly integrated with Windows Mobile phone app;

The following picture from Radvision shows the architecture of a VT app on Windows Mobile:

Note
that the VT application goes directly to TAPI and then RIL. Contrast to
handling cellular voice calls, connection manager is not involved for
VT calls. However, connection manager will be able to detect radio
resources used by VT calls and manage them as "alien calls" which has a
higher priority of data connection but lower priority of cellular voice
call.

Phone canvas integration with the VT application is easy -
Windows Mobile provides many ways to customize controls on the phone
canvas. The AKU has numerous examples of doing that. Outlook and
contacts integration can also be done without too much difficulty.
Codec-wise, the programming interface is standard Direct Show based.

The
major work is the 3G-324M stack, such as implementing call
establishment, control control and quality of service support. Doing
that from scratch does not seem to worth the effort. Adopting a
high-performance stack is a common practice among device manufacturers.