Voice over IP

From Yggenyk
Jump to: navigation, search

Soft Phones


SJphone is a free VOIP softphone. It can be installed on:

Windows (XP SP2, 2000 SP4, Vista, Vista x64), Windows CE (Pocket PC, Windows Mobile), Linux, MAC

It supports both SIP and H.323 standards, and has a brilliant logging feature if you are having trouble getting a call through.

Note for Vista x64 (64 bit version) users:

On my Dell Lattitude I couldn't make a call or run the Audio Wizard, it crashed the program. I found a workaround:

  1. Select: Menu -> To Advanced Mode
  2. Select: Menu -> Options
  3. Select: the Audio tab.
  4. Select: Advanced Settings...
  5. Uncheck: Enable Adaptive Echo Canceller

After that, I can make a call, and it is also possible to run the Audio Wizard....

I found this by trial and error, first I disabled everything in the 'Audio' tab, and reduced the sample rate, then I gradually enabled everything again.

In SJ Labs forum http://forum.sjphone.org/viewtopic.php?t=1589&highlight=aec you can read the following:

Bugs and issues in 1.65
1. Although there is a Video tab on the Options panel, this build does not support Video.
2. AEC may work unstably if you use some old audio boards, or use different devices for input and output audio (for example, a USB mic and on-board audio system).
3. SJphone may deliver sound with less high frequency. In this case, reduce Driver sampling rate to 8000 (Options -> Audio -> Advanced Audio Settings).

This might explain my problem, but I was able to run it on the same Dell D620 without any problems, when it was running Windows XP.

Service Providers

Open source projects


The sipXtapi SDK is a C application programming interface for voice communications over IP. Specifically, sipXtapi provides a generalized telephony interface on top of the Session Initiation Protocol (SIP), RFC 3261, and the real-time Transport Protocol (RTP), RFC 1889. While the SIP and RTP protocols provide signaling and media transport infrastructure, sipXtapi also includes many other protocol and standards implementations needed for voice communications.

Help for compiling sipxmedialib.

Sofia-SIP Library

Sofia-SIP is an open-source SIP User-Agent library, compliant with the IETF RFC3261 specification (see the feature table). It can be used as a building block for SIP client software for uses such as VoIP, IM, and many other real-time and person-to-person communication services. The primary target platform for Sofia-SIP is GNU/Linux. Sofia-SIP is based on a SIP stack developed at the Nokia Research Center. Sofia-SIP is licensed under the LGPL.


Open source SIP stack and media stack for presence, im/instant messaging, and multimedia communication.

This stack can be used on Windows Mobile.

Open source VoIP Servers

Kamailio and SER has now joined in The SIP Router Project.

C# DirectX Libraries

Both projects support nearly the entire DirectX libraries (though SlimDX does support a bit more in the DirectX 9 space).

SlimDX is very mature, and fully featured. Some larger scale, commercial games have been written and published using SlimDX. It also provides more of a "framework" to use, and has more feature-complete documentation.

SharpDX promises slightly better performance in certain scenarios (see benchmarks). It's generated directly from the DirectX headers, so is more of a thin DirectX wrapper.

Streaming Audio from C#



.NET Compact Framework

Information about RTP, RTCP, SIP, RSTP, IAX2


Department of Computer Science at San Diego State University

Their Communication Networks Laboratory has this nice presentation with a lot of demystification.

On this page http://medusa.sdsu.edu/network/CS596/Lectures/Lectures.htm?PAGE=Lectures you can find other network presentations from them. To navigate to this page from their main page http://medusa.sdsu.edu/network/ select CS596 -> Lectures.
Their presentations are based on Forouzan's book: TCP/IP Protocol Suite.

Henning Schulzrinne

SIP Authentication

Network Sorcery

The RFC Sourcebook is a great source for information on Internet protocols for the software professional. This guide is a reference for official networking standards and protocols.


Look up any RFC here.


Getting through firewalls

Tools for testing and debugging VOIP calls



Network protocol analyzer for Windows and Unix that allows examination of data from a live network, or from a capture file on disk. It is free, easy to use and the best network analyzer you can get.

It recognizes VOIP calls and can play back the audio afterwards.


SIPp is a free Open Source test tool / traffic generator for the SIP protocol.

After installing SIPp open two command prompts and change directory to the folder where SIPp was installed.
It the first window start the server with:

sipp -sn uas -i <local ip>

In the second windows start the client with:

sipp -sn uac -i <local ip> <local ip>

Where <local IP> is your IP address on your local LAN network, and -i sets the local IP address for 'Contact:','Via:', and 'From:' headers.
If you start SIPp without parameters you get the help.
The last tho lines is an example.

Run sipp with embedded server (uas) scenario:
./sipp -sn uas
On the same host, run sipp with embedded client (uac) scenario
./sipp -sn uac

This won't work on Vista, because the default IP address for the server will be the IPv6 address of your local host.
To call the server on the default IPv6 address which is ::1, You must use:

sipp -sn uac ::1

For the same reason always specify th -i switch. It will also default to ::1 if not specified.


  • Narrowband In telephony, narrowband is usually considered to cover frequencies 300–3400 Hz
  • Wideband Wideband in speech services means that the used speech frequency response covers 50-7000 Hz
  • POTS Plain old telephone service


  • L16 (uncompressed 8KHz)
  • L16-256 (uncompressed 16KHz)
  • G.711
  • G.711 A at 8KHz
  • G.711 A at 16KHz
  • G.711 u at 8KHz
  • G.711 u at 16KHz
  • GSM
  • Standard GSM 6.10 full rate
  • Microsoft GSM 6.10 full rate
  • GSM 6.60 aka GSM-EFR (enhanced full rate)
  • GSM 6.90 aka GSM-AMR, AMR-NB




Microsoft Real-Time Communications API - RTC
And some fun :-)