|
One of the most exciting communications technologies
at the moment is Voice over IP. It provides less expensive
calls to any point all over the world but still making
owners of IP telephony systems very reach people. So
everyone is satisfied when using VoIP solutions. In
one of our projects we have developed VoIP software
that is completely integrated with Microsoft Live Communications
Server and provides IM and VoIP services to consumers.
The consumer can
call anywhere and does not care if he or his partner
is under firewall or network translator. The solution
is completely customizable and can fit any needs of
end users. To get the calls controlled and IM messages
delivered the system works using SIP (Session Initiation
Protocol). It is the most reliable protocol ever used
in VoIP. Our VoIP system is optimized to get call accessible for any
network architecture.

The methods for sound processing
don't touch data compression problems but they are required
in phone systems. In our systems we use:
Sound stream re-sampling and streams mixing
Applying 3D effects
Sound buffering for permanent and stable
playback
Sound packet size calculation depending
on network speed and load
General sound stream transformation: channels
count changing, transformation between 8, 16, 32 bit
per sample streams, u-law and a-law streams transformations
In systems where
disparity between the moment of sound generation and
the moment of receiving is critical the UDP protocol
is used. For example when transmitting the voice information
the low-level protocol is UDP and the high-level protocol
is RTP/RTCP. During video data transmitting the MPEG
codec and TCP protocol are used. This combination guarantees
delivery of data.
The tunnel mechanism is used to solve problems connected
with address translations and firewalls which “close”
the necessary ports. This method is implemented for
TCP and UDP protocols and it allows transmitting video-data
the same way as standard HTTP/HTTPS browser does.
Tunneling system
allows creating bi-directional tunnels for UDP packets
transferring through TCP connection. Current system
consists of two applications: Tunnel Client and Tunnel
Server. Tunnel client application can be launched on
any network host (in corporate network which is separated
by proxy/firewall) under any Microsoft Windows OS which
supports input-output completion ports and Winsocks2
while tunnel server can be launched on some server in
the Internet (OS requirements are the same + services
support).
Architecture of
this system makes it fast, reliable and scalable. It
can be used for building high performance client/server
systems which allow supporting 1000s connections at
a moment for data exchange with minimal delays (up to
50 msec) on transferring of each data packet. A lot
of highly-sophisticated applications use input-output
completion port (IOCP) for data transmission.
|