Figure 2: VoIPIntegration architecture.
based communication platform (VoIPIntegration) that
is expected to facilitate access by a large number of
users to VoIP technologies, to allow users to access
all services in the same way that they access the con-
ventional analog phone, and to provide advanced fea-
tures for more experienced users. Below, we will ex-
plain this communication platform we have designed
an implemented, we will show how new plugins are
integrated in the system to provide compatibility with
telephone devices and VoIP protocols, and finally we
will describe the already developed plugins.
2 PROPOSED SYSTEM
The system kernel is a application called VoIPInte-
gration that must be installed on the user’s computer.
This application lets integrate different telephone de-
vices like hardware and software telephones, coordi-
nate them and easily access IP telephony using popu-
lar clients or most relevant protocols (fig. 1).
Platform design is plugin based. On one side, plu-
gins for connection with VoIP clients, like Skype or
SIP protocol, are found. These plugins allow every
telephone devices connected to the system to access
the Internet and to contact other clients using their
respective protocols. On the other side, plugins for
connection with local telephones (software and ana-
log telephones) are found. To achieve integration with
analog phones, we have used the USB port and a hard-
ware adapter that we have designed and developed.
3 VOIPINTEGRATION
ARCHITECTURE
The platform kernel (fig. 2) performs the typical func-
tions of a private branch exchange (PBX) and an ad-
dress book. It establishes connections between tele-
phone devices and VoIP clients with device occupa-
tion management and configurable relationships be-
tween VoIP accounts and telephone devices, so that
calls are received by different phones depending on
their origin account. This becomes even more use-
ful by allowing users to maintain multiple active calls
simultaneously. As shown in figure 2 one of the soft-
ware components works as a switchboard. This PBX
connects telephone devices installed in the system
among themselves or with VoIP clients through plu-
gins. Access to each plugin is done through proxies.
Each proxy accesses a plugin through a well-known
interface and using a specific protocol. Proxies are
responsible for getting the required information from
the plugins, storing their state and providing as much
functionality as possible in order to make the imple-
mentation of plugins as simple as possible.
Specifically, a phone plugin proxy stores the
phone status (on-hook, off-hook, dialing, ringing,
talking), the name of the audio input/output devices
that the phone uses, the default VoIP account used by
the phone (although any account integrated in the sys-
tem may be used), and the establishment of calls by
the three available dialing modes (normal, letters and
T9). Several instances of a same telephone plugin can
coexist.
VoIP client proxies link the PBX with client plu-
gins. These plugins can’t have several instances, but
they can access several accounts so that each one is
seen by the PBX as a different communication chan-
nel.
4 VOIPINTEGRATION API
VoIPIntegration has its own API that specifies how
different plugins must connect and communicate with
the system. This API is based on a generic inter-
face for each plugin type (telephone or VoIP client)
and on the format of the text messages exchanged be-
tween the application and different plugins. This API
also allows extending and supporting new protocols
and new phone devices. For this, plugins must fulfill
certain requirements and respect the VoIP integration
communication protocol. Plugins are not able to start
a communication by themselves, but they must wait a
VoIPIntegration request. With this plugin design, it’s
not necessary to use any library, call any function or
WEBIST 2010 - 6th International Conference on Web Information Systems and Technologies
196