Speaky Sim is a unified instant messaging
(IM) application that can interface with 5
popular IM services – AOL, MSN, ICQ,
Yahoo and Wireless Village (WV). With the
Speak Sim IM client, a user would be able
to access these IM services over a single
interface.
As each IM service has its own protocol and
set of functionalities, Speaky Sim’s
design involved leveling out differences between
the IM services and presenting to the end
user, uniform access to a given set of functionalities.
Speaky refers to the voice chat capability
of the application. The voice module is
designed in 2 parts – first, for voice
sessions between Speaky Sim users, and the
other for sessions across non-Speaky Sim
users. For both cases a Voice over IP (VoIP)
has been developed that implements integrated
voice chat sessions across all the above
IM services irrespective of their individual
voice capabilities. For voice sessions across
users who do not have the Speaky Sim libraries
(non-Speaky users), a simple standalone
application is written that uses the common
VoIP library. This application was delivered
as a Win32 executable.
The voice chat module uses RTP/RTCP protocol
to deliver real-time voice data over the
internet. Another interesting technology
used here is the Media Control Interface.
This interface is used to control the settings
and usage of the sound adapter(s) in the
system i.e. for Volume control of incoming
and outgoing sound; Recording and playback
of sound in real time; Detection and enumeration
of sound adapter(s) and Detection of presence
of sound and filtering of silence.
The application with the above mentioned
functionalities was a part of a larger system
which involved instant messaging and voice
communication with a mobile device via a
desktop PC. The customer had pre-developed
appropriate hardware and software required
to interface the mobile device with a PC
using which the device could utilize services
from libraries (DLL’s) on the PC.
Thus, the Speaky Sim client needed to be
delivered in the form of Win32 DLLs for
each of its modules – IM and VoIP
library.
Since Speaky Sim dealt with popular proprietary
IM services, there were certain issues involved
for which a good amount of time and effort
had to be spent in terms of research. Most
important issue here was that of the IM
services not being open i.e. none of the
targeted IM services had documented protocols
available. Research was carried out over
the IM protocols for each service which
involved studying multiple open source codes,
analyzing regular client behavior (of the
particular IM service) with low level TCP
packet analyzers. Another issue was that
of the IM service providers blocking all
or any specific 3rd party IM clients. For
such issues, workarounds were implemented
with help from open source forums.
Apart from the complex features of the
unified IM interface, and voice chat capability,
Speaky Sim also included typical IM functionalities
like contact list management, block and
un-blocking of contacts, group chats, alerts
– as and when provided by the underlying
IM service and online status change. Given
the huge list of features, Speak Sim’s
design called for detailed and thoroughly
researched system architecture coupled with
a planned testing phase. Post-development
phase, a rigorous testing plan was formulated
and executed where the application was tested
over major windows platforms (Win XP –
Home and Professional, 2000, 98SE, Me)
with the testing criteria being memory constraints,
code coverage, system integration and other
performance parameters.
Speaky Sim spanned over 7 months of development
and 3 months of maintenance phases with
a team size of one manager, one project
lead, one QA and 5 developers. For ADI,
its been a great help in terms of honing
our IM development capabilities. With the
low level debugging and other research carried
out for understanding proprietary IM services,
we definitely gained in terms of understanding
IM protocols and standards.
|