# Voice over IP/VoIP Protocols, Hardware, and Software

The term VoIP is often used to describe general IP telephony technology. Behind this term lies a range of different protocols, languages used to communicate between a range of different devices and vendors.
These protocols are one of the most important factors in choosing a VoIP solution. It is generally impossible to get different devices to communicate, unless they support the same protocol.

### VoIP Protocols

The following protocols are associated with VoIP voice call termination and inter-gateway communication.
H.323 - H.323 is used by many commercial vendors for IP telephony, It is a suite of protocols which includes H.245, Q.931, etc. This suite takes care of session establishment between phone and switch and is heavily based on the Integrated Services Digital Network (ISDN) signalling protocols. Signalling part is also taken care by this protocol. This suite uses RTP, RTCP, RSVP for actual data transfer and QOS between phones.
SIP (Session Initiation Protocol) - SIP is a standard developed by the IETF (Internet Engineering Task Force) for use in establishing multimedia sessions such as voice, instant messaging and video, amongst other applications.
SIP is also responsible for the implementation of other voice session related functions such as holding voice calls, transferring calls, or hosting several voice conversations simultaneously (call conferencing).
SIP utilizes the Session Description Protocol (SDP) to negotiate data types available at either end. Voice and video data carrying is typically performed with the RTP and RTCP protocols.
MGCP (Media Gateway Control Protocol) - MGCP is a protocol typically used internally to systems to represent the whole system as a single entity. MGCP systems are made up of Call Agents and Gateways. The Call Agents keep stateful information and offload the majority of the control work from the Gateway(s). Voice and video carrying is performed by RTP and RTCP.
MEGACO/H.248 - MEGACO is very similar to MGCP and is the standard used for Call Agent architectures.
IAX (Inter Asterisk eXchange) - The IAX protocol was developed by a team of open-source developers working on the Asterisk project, a very popular and successful open-source PBX described later in this document.
There is not much industry support for IAX, however support has been slowly increasing. There has been a lack of good documentation for the IAX protocol, and many commercial vendors are hesitant to give their support to a protocol not ratified by a standards body such as the IETF or ITU.
LTP (Lightweight Telephony Protocol) - the LTP is a binary lightweight protocol that is NAT friendly and based entirely on free codecs. It is easily understood and in use since 1999.

### VoIP Phone Hardware/Software

VoIP hardware and software implementations allow phone calls to be placed over IP. Software which uses a computer's soundcard device to provide voice input and output is known as a Softphone.
Several hardware devices exist to provide VoIP telephony. ATA devices provide standard phone ports, allowing standard phone handsets and other devices such as fax machines to utilize VoIP services. Specialized VoIP handsets are also available, often providing advanced features supported by VoIP gateways.
Hardware phones generally provide a better quality VoIP experience than Softphones; however the convenience of not requiring extra hardware, and the smaller expense involved in Softphone products make softphones a popular choice.

#### Softphones

A softphone is a soundcard device to provide voice input (via microphone) and sound output (via headphones/speakers) without the need for extra hardware. Handsets and headsets are available which plug into the soundcard and resemble normal phone headsets/handsets, making softphone use more comfortable.
A popular open source softphone that runs on both Windows and Linux platforms is ekiga which supports both H.323 and SIP protocols. Xten X-Lite is another popular free Softphone which provides all necessary features to initiate and receive phone calls via SIP. A list of some of the softphones available can be found on voip-info.org here, and on Wikipedia here.

#### ATA Adaptors

`ATA (Analog Telephone Adaptor) Devices provide the ability to connect standard telephone handsets to a hardware unit which provides VoIP capability.
An advantage of ATA devices is the ability to connect other telephony devices, such as TTY devices, FAX machines, Pay TV units and even modems.