Free VoIP Software
There are many different categories of free VoIP software packages, including:
- Free VoIP Software Phones
- Free VoIP Gateways
- Free VoIP Gatekeepers
- Free VoIP Proxies
- Free VoIP Software Development Libraries
- Free VoIP PBX’s
Ekiga is an H.323 compatible videoconferencing and VOIP/IP-Telephony application that allows people to make audio and video calls to remote users with H.323 hardware or software (such as Microsoft Netmeeting). It supports all modern videoconferencing features such as registering to an ILS directory, gatekeeper support, making multi-user conference calls with an external MCU, using modern Quicknet telephony cards, and making PC-To-Phone calls.
Ekiga was previously known as GnomeMeeting.
Twinkle is a soft phone for VoIP communications using the SIP protocol. People can use Twinkle for direct IP phone to IP phone communications or in a network using a SIP proxy to route calls.
In addition to making basic voice calls, Twinkle also provides the following features:
- 2 call appearances (lines)
- Multiple active call identities
- Custom ring tones
- Call Waiting
- Call Hold
- 3-way conference calling
- Call redirection on demand
- Call redirection unconditional
- Call redirection when busy
- Call redirection no answer
- Reject call redirection request
- Blind call transfer
- Reject call transfer request
- Call reject
- Repeat last call
- Do not disturb
- Auto answer
- User definable scripts triggered on call events, E.g. to implement selective call reject or distinctive ringing
- RFC 2833 DTMF events
- Inband DTMF
- Out-of-band DTMF (SIP INFO)
- STUN support for NAT traversal
- Send NAT keep alive packets when using STUN
- NAT traversal through static provisioning
- Missed call indication
- History of call detail records for incoming, outgoing, successful, and missed calls
- DNS SRV support
- Automatic failover to an alternate server if a server is unavailable
- Other programs can originate a SIP call via Twinkle, e.g. call from address book
- System tray icon
- System tray menu to quickly originate and answer calls while Twinkle stays hidden
- User definable number conversion rules
WengoPhone is a SIP phone that allows users to speak at no cost from a computer to other users of SIP compliant VoIP software. It also allows users to call landlines, cellphones, send SMS messages, and to make video calls. None of this functionality is tied to a particular SIP provider and can be used with any provider available on the market, unlike proprietary solutions such as Skype.
Speak Freely is a 100% free Internet telephone that John Walker, founder of Autodesk, originally wrote in 1991. After April of 1996, he stopped developing the program. Since then, several other Internet “telephones” have cropped up all over the world. However, most of these programs cost money. Most of them have poor sound quality, and do not support Speak Freely’s basic features such as encryption, the answering machine, or selectable compression.
Gspeakfreely is a VoIP system with a flexible component system. It implements a set of audio processing component that can be connected to each other or mixed together. The most important components are net in/output, which implement VoIP functionality and the OSS-DSP in/output component.
Additionally, there is an ISDN in/output component that allows making actual phone connections, and a file input component that can also play Internet radio streams. Also included is a fading plug-in, that can fade incoming calls into music. New components can be developed for specific purposes and combined with existing ones.
The net in/output components also have conference support. The net input component can mix incoming audio data from different hosts.
Linphone is a web phone. It allows users to call their friends anywhere in the whole world for free via the Internet. The phone call’s cost is the cost of the Internet connection.
linphone features include:
- Works with the Gnome Desktop under Linux, (maybe others Unixes as well, but this has never been tested). Linphone can also be used under KDE.
- Since version 0.9.0, linphone can be compiled and used without gnome in console mode, by using the program called “linphonec.”
- Works as simply as a cellular phone. Two buttons, no more.
- Linphones includes a large variety of codecs (G711-ulaw, G711-alaw, LPC10-15, GSM, and SPEEX). Thanks to the Speex codec, it is able to provide high quality connections even with slow Internet connections like 28k modems.
- Understands the SIP protocol. SIP is a standardized protocol from the IETF, the organization that made most of the protocols used on the Internet. This guaranties compatibility with most SIP – compatible web phones.
- Users only need a soundcard to use Linphone.
- Other technical functions include DTMF (dial tones) support though RFC2833 and ENUM (to use SIP numbers instead of SIP addresses).
- Linphone is a free software, released under the General Public License.
- Linphone is documented. It has a complete user manual that explains all the user needs to know.
- Linphone includes a sip test server called “sipomatic” that automatically answers to calls by playing a pre-recorded message.
minisip is a SIP VoIP soft phone that implements additional security features such as mutual authentication, encryption, integrity of on-going calls, and encryption of the signaling (SIP over TLS). These security features use work-in-progress IETF standards (SRTP and MIKEY).
OhPhone is a H.323 Video Conferencing Program compatible with other H.323 video conferencing programs including Microsoft NetMeeting.
OhPhone supports full duplex audio and bi-directional video. It requires a full duplex sound card for audio support and a Bt848/878 based video card (using the bktr driver) for video capture.
OhPhone uses the OpenH323 and PWLib libraries, which Equivalence Pty developed.
NetMeeting is Microsoft’s free H.323-compliant VoIP software phone for Windows.
SIPSet is a SIP User Agent with a GUI front end that works with the Vovida SIP stack. It can be used as a soft phone to make and receive phone calls from a Linux PC.
The current SIPSet release implements these features:
- SIPSet can make calls through a SIP proxy.
- SIPSet can register to receive calls through a SIP proxy.
- SIPSet can make and receive calls directly with another User Agent.
KPhone is a SIP User Agent for Linux. It implements the functionality of a VoIP Softphone but is not restricted to this. KPhone is licensed under the GNU General Public License. KPhone is written in C++ and uses Qt.
Jabbin is an open source Jabber client program that allows free PC to PC calls using VoIP over the Jabber network.
isdn2h323 is a Linux based H.323 – ISDN gateway. At the moment, the gateway supports the following features:
- ISDN and H.323 users can initiate a connection.
- The number of simultaneous incoming and outgoing calls is limited by the number of available ISDN channels only.
- H.323 users can specify the other party’s ISDN number.
- The gateway’s administrator can assign an ISDN MSN to a H.323 user. This makes it possible for an ISDN user to call a H.323 user directly. The gateway chooses the H.323 user id depending on the called ISDN MSN.
- The gateway discovers an available H.323 gatekeeper and registers with the gatekeeper. It is possible to specify one or more phone prefixes that the gateway is responsible for.
- ISDNs touch-tones (DTMF) are translated to H.323′s user input messages and vice versa.
- Automatic gain control (AGC)
- Automatic echo compensation (AEC)
- To avoid security problems the gateway offers an option to restrict the IPs allowed to use the gateway for an outgoing ISDN call.
- The status of the lines and the configuration of the gateway are written to an HTML file.
- Errors and other information are logged using Linux’s syslog() feature.
- Three H.323 codecs are supported: ALaw, muLaw, and GSM.
- Least Cost Router
PSTNGw uses PWLib and the OpenH323 stack from Equivalence Ltd Pty.
SIPRG (SIP Residential Gateway)
The SIP Residential Gateway (SIPRG) is an open source application based on the Session Initiation Protocol (SIP). The SIPRG is an IP Telephony Gateway that allows a SIP User Agent to make and receive calls between the Public Switched Telephone Network (PSTN) and a SIP-based network such as VOCAL.
The SIPRG was developed with the VOVIDA SIP stack version 1.3.0 and uses a QuickNet LineJACK card to connect an Analog telephone line. Currently, it supports only a single LineJACK card and is therefore a single-line gateway.
The OpenH323 Gatekeeper is a full featured H.323 gatekeeper that is available for free under GPL license. It is based on the Open H.323 stack. Both components together form the basis for a free IP telephony system (VOIP).
OpenH323 Gatekeeper currently supports Linux, Microsoft Windows, FreeBSD, Solaris, and MacOS X.
OpenGatekeeper is an Open Source H.323 Gatekeeper based on the work done by the OpenH323 project.
OpenGatekeeper runs on Linux, FreeBSD, and Win32 platforms.
OpenGatekeeper supports all the basic features of an H.323 Gatekeeper such as registration, admissions and access control, address translation, and bandwidth monitoring and control.
OpenGateKeeper also supports many advanced features such as:
- Gatekeeper routed calls
- Support of H.323v2 alias types (party number, URL, transport id and email address)
- Support for gateway prefixes
- Registration and call activity logs
- Neighbor gatekeeper database
- Registration time to live
Partysip is a SIP proxy server. It is a plugin oriented program with registration, authentication, and routing capabilities.
Partysip is a modular application where capabilities are added and removed through plugins. The program comes with several GPL plugins. At this step, partysip and its plugins could be used as a ‘SIP registrar,’ a ‘SIP redirect server,’ and a ‘SIP stateful proxy server.’
Siproxd is a proxy/masquerading daemon for the SIP protocol. It registers SIP clients on a private IP network and rewrites the SIP message bodies to make SIP connections possible via a masquerading firewall. It allows SIP clients (like kphone, linphone) to work behind an IP masquerading firewall or router.
Softphones (Voice over IP) use SIP (Session Initiation Protocol) to initiate communication. By itself, SIP does not work via masquerading firewalls as the transferred data contains IP addresses and port numbers.
Load Balancer Proxy
The Load Balancer is a very simple proxy that is useful in SIP-based VoIP installations where there are multiple ingress proxy servers. The Load Balancer permits pooling these servers, thereby eliminating the need to balance user demands for connectivity through a complicated provisioning algorithm.
All users can send their INVITEs and REGISTERs to the same SIP URI and the Load Balancer will assign ingress proxy servers dynamically to each transaction. In this way, the traffic load is balanced over a pool of proxy servers based on the real-time demand for services.
The STUN (Simple Traversal of UDP through NATs (Network Address Translation)) server is an implementation of the STUN protocol that enables STUN functionality in SIP-based systems. The STUN server tar ball also include a client API to enable STUN functionality in SIP endpoints. In addition, there is a command line Unix client and a graphical windows client that check what type of NAT the user is using.
STUN is an application layer protocol that determines the public IP and nature of a NAT device that sits between the STUN client and STUN server.
The current version of the code supports most of RFC 3489 except the ability to get OTPs from the server.
Yate (Yet Another Telephony Engine) is a next generation telephony engine. While currently focused on Voice over Internet Protocol (VoIP) and PSTN, its power lies in its ability to be easily extended. Voice, video, data, and instant messaging can all be unified under Yate’s flexible routing engine, maximizing communications efficiency and minimizing infrastructure costs for businesses.
Yate can be used to build a:
- VoIP server
- VoIP client
- VoIP to PSTN gateway
- PC2Phone and Phone2PC gateway
- H.323 gatekeeper
- H.323 multiple endpoint server
- H.323<->SIP Proxy
- SIP session border controller
- SIP router
- SIP registration server
- IAX server and/or client
- IP Telephony server and/or client
- Call center server
- IVR engine
- Prepaid and/or postpaid cards system
The software is written in C++ and supports scripting in various programming languages (such as those supported by the currently implemented embedded PHP, Python, and Perl interpreters) and even any Unix shell. The PHP, Python, and Perl libraries have been developed and made available in order to ease development of external functionalities for Yate.
Yate is production ready software and is easily extensible.
Yate is licensed under the GPL with an exception for linking with OpenH323 and PWlib (licensed under MPL).
PJSIP is an open source SIP stack supporting many SIP extensions/features, with the following key benefits:
Write the application once and it runs on many platforms (all Windows flavors, Windows Mobile, Linux, all Unix flavors, MacOS X, RTEMS, Symbian OS, etc.)
Very small footprint
With less than 150KB for complete SIP features, PJSIP is ideal not only for embedded development where space is costly, but also for general applications where smaller size means shorter download time for users.
This means less CPU power requirement and more SIP transactions/calls can be handled per second.
Many SIP features/extensions such as multiple usages in dialog, event subscription framework, presence, instant messaging, call transfer, etc. have been implemented in the library.
Extensive SIP documentation
There can never be enough documentation, so fellow developers are provided with hundreds of pages worth of documentation.
PJSIP also features extensions such as:
PJMEDIA is a complementary library for PJSIP to build complete, full featured SIP user agent applications such as softphones/hardphones, gateways, or B2BUA.
PJLIB-UTIL is an auxiliary library providing support for PJMEDIA and PJSIP. Some of the functions/components in this library are small footprint XML parsing, STUN client library, asynchronous/caching DNS resolver, hashing/encryption functions, etc.
A small footprint, high performance, ultra portable abstraction library and framework that PJSIP and PJMEDIA use.
PJLIB is about the only library that PJLIB-UTIL, PJMEDIA, and PJSIP should depend on, as it provides complete abstraction not only to Operating System dependent features, but it is also designed to abstract LIBC and provides some useful data structures too.
Vovida Open Communication Application Library (VOCAL)
The Vovida Open Communication Application Library (VOCAL) is an open source project targeted at facilitating the adoption of VoIP in the marketplace. VOCAL provides the development community with software and tools needed to build new and exciting VoIP features, applications, and services. The software in VOCAL includes a SIP based Redirect Server, Feature Server, Provisioning Server, Policy Server, and Marshal Proxy along with protocol translators from SIP to H.323 and SIP to MGCP. Our hope is that these modules will act as building blocks to help create better, faster, and stronger VoIP systems.
oSIP is an implementation of SIP.
SIP (Session Initiation Protocol) is described by the RFC3261. This library aims to provide multimedia and telecom software developers with an easy and powerful interface to initiate and control SIP based sessions in their applications. SIP is an open standard replacement from IETF for H.323.
JVOIPLIB is an object oriented Voice over IP (VoIP) library written in C++.
eXosip is a new library based on oSIP. It contains a high layer easier to use for implementing SIP End point.
eXosip is a library that hides the complexity of using the SIP protocol for mutlimedia session establishment. This protocol is mainly to be used by VoIP telephony applications (endpoints or conference server), but might be also useful for any application that wishes to establish sessions like multi-player games.
Asterisk is a complete PBX in software. It runs on Linux and provides all of the features expected from a PBX and more. Asterisk does voice over IP in three protocols and can interoperate with almost all standards based telephony equipment using relatively inexpensive hardware.
Asterisk provides Voicemail services with Directory, Call Conferencing, Interactive Voice Response, and Call Queuing. It has support for three-way calling, caller ID services, ADSI, SIP, and H.323 (as both client and gateway).
Asterisk needs no additional hardware for Voice over IP. For interconnection with digital and analog telephony equipment, Asterisk supports a number of hardware devices, most notably all of the hardware that Asterisk’s sponsor, Digium, manufactured. Digium has single and quad span T1 and E1 interfaces for interconnection to PRI lines and channel banks as well as a single port FXO card and a one to four-port modular FXS and FXO card.
Also supported are the Internet Line Jack and Internet Phone Jack products from Quicknet.
Asterisk supports a wide range of TDM protocols for the handling and transmission of voice over traditional telephony interfaces. Asterisk supports US and European standard signaling types used in standard business phone systems, allowing it to bridge between next generation voice-data integrated networks and existing infrastructure. Asterisk not only supports traditional phone equipment, it enhances them with additional capabilities.
Using the Inter-Asterisk eXchange (IAX) Voice over IP protocol, Asterisk merges voice and data traffic seamlessly across disparate networks. While using Packet Voice, it is possible to send data such as URL information and images in-line with voice traffic, allowing advanced information integration.
Asterisk provides a central switching core, with four APIs for modular loading of telephony applications, hardware interfaces, file format handling, and codecs. It allows transparent switching between all supported interfaces, allowing it to tie together a diverse mixture of telephony systems into a single switching network.
Asterisk is primarily developed on GNU/Linux for x/86. It is known to compile and run on GNU/Linux for PPC along with OpenBSD, FreeBSD, and Mac OS X Jaguar. Other platforms and standards based UNIX-like operating systems should be reasonably easy to port for anyone with the time and requisite skill to do so. Asterisk is available in the testing and unstable Debian archives and Mark Purcell maintains it.
GNU Bayonne, the telephony server of GNU Telephony and the GNU project, offers a free, scalable, media independent software environment for development and deployment of telephony solutions used with current and next generation telephone networks.
GNU Bayonne supports IVR scripting using hardware from Voicetronix, Dialogic, Aculab, CAPI drivers, and Quicklink drivers under GNU/Linux. Bayonne performs script driven IVR applications written in GNU Bayonne’s native scripting language, as well as accesses, converts, and plays audio from remote URLs.
FreeSWITCH is an open source telephony application written in C, built from the ground up, and designed to take advantage of as many existing software libraries as possible. FreeSWITCH makes it possible to build an open source PBX system or an open source voip switching platform as well as unite various technologies such as SIP, H.323, IAX2, LDAP, Zeroconf, XMPP / Jingle etc. FreeSWITCH can also be used to interface with other open source PBX systems such as Asterisk, GNU Bayonne, or OpenPBX.
OpenPBX.org is an open Source Private Branch Exchange System (PBX) in software for the Linux Operating system. OpenPBX.org is licensed under the GNU General Public License or GPL.
Other VoIP Software
Fobbit allows Creative VoIP Blaster hardware devices to be used under NetBSD, Linux, and Microsoft Windows. It permits calls to be made to other Fobbit users without the need for the original Creative Labs software, and works from behind firewalls and NAT.
CPhone is a cross-platform GUI for the OpenH323 VoIP libraries.
SIPTiger is a web based provisioning utility for Cisco’s line of 7960 and 7940 Session Initiation Protocol (SIP) IP phones and Cisco SIP Proxy Servers (CSPS). This utility is useful for anyone deploying Cisco 7960/7940 SIP IP Phones.
SIPTiger version 2.3.1 is now available with expanded functionality and several bug fixes. See the readme file for more details.
Cisco 7960/7940 SIP IP phones and Cisco SIP proxy servers both rely on a set of configuration files, which SIPTiger can parse and format into a user friendly web based Graphical User Interface (GUI). After these files are modified, the affected SIP phones can then be remotely reloaded to allow the changes to take effect. SIPTiger also supports administrative-level call forwarding configuration.