Projects » Voice IP solution for Windows Mobile 6.0
Business situation
SolovatDesign developed a mobile application to allow users to apply VoIP and different IM protocols and limit use of the GSM
connection on the device with Windows Mobile 6.0. By default, Windows Mobile platform does not include support of these abilities.
The application should allow users to
call via SIP servers directly by pressing the "Call" button or launching
the standard phone feature on the Windows Mobile 6 based devices
(Smartphone and Pocket PC).
Solution
SIP-VoIP application uses Session Initiation Protocol (SIP) for
establishing real time communication sessions with one or more
participants and SIP Servers for setting up the calls between
SIP-supported devices. Each device has special SIM cards with credentials
to access to the SIP server.
SIP-VoIP solution allows users to apply VoIP on the devices with Windows
Mobile 6.0. and use different IM protocols (Google Talk, MSN, Yahoo, AIM,
ICQ). This solution allows reducing of communication expenses. Wireless
access points WiFi or high-speed 3G/GPRS (EDGE) connection can be used
instead of the wire infrastructure. The developed solution also blocks use
of the GSM connection, allowing users to make solely VoIP calls. However,
emergency calls via GSM are available. Using just VoIP allows elimination
of GSM telephony services expenses.
User inserts SIM card which will be registered in the GSM server. GSM
server allows creation of SIP account on the SIP server. Then Web Server
generates installation CAB file with SIP credentials and notify GSM server
that the file was build properly. On the next step GSM server sends SMS
with special URL to download software. User should download
installation package and install the software.
The application allows users to call via SIP servers directly by pressing the "Call" button or launching the standard phone feature on the Windows Mobile 6 based devices (Smartphone and Pocket PC). The SIP-VoIP mobile application works in following way:
- blocks attempts to call from the standard GSM method and tries to use WiFi connection to transmit data directly to SIP servers.
- uses the hard coded access URI to connect to the special SIP server and perform call via the SIP server
- allows users to chat via common protocols (Google chat, MSN, Yahoo, AIM, ICQ, OBOPAY)
The SIP-VoIP mobile application consists of several logical modules:
Call Catcher Module
This module is used for determine standard "phone" application launch
process. If standard phone process launching, this module should close
standard process and open its own form that will allow user to make calls
directly via SIP servers. Call Catcher Module is responsible for the
following functionality:
- Blocking standard "Call" function.
- Launching its own UI to replace standard windows mobile phone UI.
- Catching all hardware keys used to make calls (Call key, Answer key and etc.)
Media Engine wrapper module
Media Engine wrapper module provides phone capabilities, which allow
making calls using SIP server and creating application which will have the
same phone features as native phone application on Windows Mobile device.
TCP/IP Connection Control Module
WiFi or GPRS (EDGE) is used as a data link for VoIP connection. The
application periodically checks whether WiFi or GPRS (EDGE) connection is
established, if necessary, it turns from WiFi to GPRS. WiFi connection is
prioritized. When the application gets access to the TCP/IP protocol, SIP
registration is automatically done. If connection has been interrupted,
the application will try to register again. Thus, a user-agent is always
registered on the SIP server.
GSM Calls Module
GSM Calls Module is used for enabling the GSM calls to some numbers (for
example, 911). A user can make GSM calls using only SIP-VoIP application
interface.
Chat Module
Chat Module allows users to chat with other people using most popular protocols. The module has the basic functionality: displaying and managing a contact list, sending and receiving messages, getting a contact status. This module has intuitive user interface:
- Chat window with messages from other people and ability to send a new message.
- Window with the list of all contacts of the user.
- Settings window (It allows configuring connection settings and other user settings).
- "About" dialog (It displays current chat module version).
Chat Module is implemented as a separate application with .Net Compact Framework 2.0. Jabber protocol support is implemented in the chat by using the open-source library agsXMPP. All Protocols specific operations are implemented via menu. Below is the list of protocols which should be supported by Chat module:
- ICQ Protocol
- Google Chat Protocol
- MSN Protocol
- Yahoo Protocol
- AIM Protocol
- OBOPAY Protocol
Products and services used
The following tools and programming languages have been used to develop the application:
- Windows Mobile 6.0
- Windows Mobile 6 Professional SDK
- Microsoft Visual Studio 2008, 2005
- VoiceEngine 2.6
- Specification rfc3261
- agsXMPP SDK 0.9
- C++ programming language