VoIP Protocols Standards

 

Signalling

ITU-T Standards and Recommendations

H.323 V2

Packet-based multimedia communications systems

H.225.0

Call signalling protocols and media stream packetization for packet-based multimedia (includes Q.931 and RAS)

H.225.0 Annex G

Gatekeeper to gatekeeper (inter-domain) communications

H.245

Control protocol for multimedia communications

H.235

Security and encryption for H-series multimedia terminals

H.450.x

Supplementary services for multimedia:
1. Generic functional protocol for the support of supplementary services in H.323
2. Call transfer
3. Diversion
4. Hold
5. Park & pickup
6. Call waiting
7. Message waiting indication

H.323 Annex D

Real-time fax using T.38

H.323 Annex E

Call connection over UDP

H.323 Annex F

Single-use device

T.38

Procedures for real-time group 3 facsimile communications over IP networks

T.120 series

Data protocols for multimendia conferencing

IETF RFCs and Drafts

RFC 2543

SIP: Session initiation protocol

RFC 2327

SDP: Session description protocol

Internet Draft

SAP: Session announcement protocol

 

Gateway Control

ITU

H.GCP

Proposed recommendations for gateway control protocol

IETF

Internet Draft

MGCP: Media gateway control protocol

Internet Draft

MEGACO protocol

Draft

SGCP: Simple gateway control protocol

Internet Draft

IPDC: IP device control

 

Media Transport

IETF

RFC 1889

RTP: Real-time transport protocol

RFC 1889

RTCP: Real-time transport control protocol

RFC 2326

RTSP: Real-time streaming protocol

 

Media Encoding

ITU

Voice

Standard  

Algorithm

Bit Rate (Kbit/s)

Typical end-to-
end delay (ms)
(excluding
channel delay)

Resultant Voice Quality

G.711

PCM

48, 56, 64

<<1

Excellent

G.723.1

MPE/ACELP

5.3, 6.3

67-97

Good(6.3), Fair(5.3)

H.728

LD-CELP

16

<<2

Good

G.729

CS-ACELP

8

25-35

Good

G.729
annex A

CS-ACELP

8

25-35

Good

G.722

Sub-band ADPCM

48, 56, 64

<<2

Good

G.726

ADPCM

16,24,32,40

60

Good(40), Fair(24)

G.727

AEDPCM

16, 24, 32, 40

60

Good(40), Fair (24)


Video

Standard

Algorithm

Bit Rate (Kbit/s)

Picture Quality

H.261

Discrete cosine transform (DCT) with motion compensation

px64 (p=# of ISDN B channels)

Low

H.263

Improved version of H.261

Various

Medium

 

 

 

Voice Over IP

 

The following VoIP protocols are described here:

 

 

Megaco H.248

Gateway Control Protocol

MGCP

Media Gateway Control Protocol

RVP over IP

Remote Voice Protocol Over IP Specification

SAPv2

Session Announcement Protocol

SDP

Session Description Protocol

SGCP

Simple Gateway Control Protocol

SIP

Session Initiation Protocol

Skinny

Skinny Client Control Protocol (SCCP)

Voice-over-IP Overview

Voice-over-IP (VoIP) implementations enables users to carry voice traffic (for example, telephone calls and faxes) over an IP network.

There are 3 main causes for the evolution of the Voice over IP market:

  • Low cost phone calls
  • Add-on services and unified messaging
  • Merging of data/voice infrastructures

A VoIP system consists of a number of different components: Gateway/Media Gateway, Gatekeeper, Call agent, Media Gateway Controller, Signaling Gateway and a Call manager

The Gateway converts media provided in one type of network to the format required for another type of network. For example, a Gateway could terminate bearer channels from a switched circuit network (i.e., DS0s) and media streams from a packet network (e.g., RTP streams in an IP network). This gateway may be capable of processing audio, video and T.120 alone or in any combination, and is capable of full duplex media translations. The Gateway may also play audio/video messages and performs other IVR functions, or may perform media conferencing.

In VoIP, the digital signal processor (DSP) segments the voice signal into frames and stores them in voice packets. These voice packets are transported using IP in compliance with one of the specifications for transmitting multimedia (voice, video, fax and data) across a network: H.323 (ITU), MGCP (level 3,Bellcore, Cisco, Nortel), MEGACO/H.GCP (IETF), SIP (IETF), T.38 (ITU), SIGTRAN (IETF), Skinny (Cisco) etc.

Coders are used for efficient bandwidth utilization. Different coding techniques for telephony and voice packet are standardized by the ITU-T in its G-series recommendations: G.723.1, G.729, G.729A etc.

The coder-decoder compression schemes (CODECs) are enabled for both ends of the connection and the conversation proceeds using Real-Time Transport Protocol/User Datagram Protocol/Internet Protocol (RTP/UDP/IP) as the protocol stack.

Quality of Service
A number of advanced methods are used to overcome the hostile environment of the IP net and to provide an acceptable Quality of Service. Example of these methods are: delay, jitter, echo, congestion, packet loss, and missordered packets arrival. As VoIP is a delay-sensitive application, a well-engineered, end-to-end network is necessary to use VoIP successfully. The Mean Opinion Score is one of the most important parameters that determine the QoS.

There are several methods and sophisticated algorithms developed to evaluate the QoS: PSQM (ITU P.861), PAMS (BT) and PESQ.Each CODEC provides a certain quality of service. The quality of transmitted speech is a subjective response of the listener (human or artificial means). A common benchmark used to determine the quality of sound produced by specific CODECs is the mean opinion score (MOS). With MOS, a wide range of listeners judge the quality of a voice sample (corresponding to a particular CODEC) on a scale of 1 (bad) to 5 (excellent).

Services
The following are examples of services provided by a Voice over IP network according to market requirements:

Phone to phone, PC to phone, phone to PC, fax to e-mail, e-mail to fax, fax to fax, voice to e-mail, IP Phone, transparent CCS (TCCS), toll free number (1-800), class services, call center applications, VPN, Unified Messaging, Wireless Connectivity, IN Applications using SS7, IP PABX and soft switch implementations.

 

Megaco (H.248)

Internet draft: draft-ietf-megaco-merged-00.txt

The Media Gateway Control Protocol, (Megaco) is a result of joint efforts of the IETF and the ITU-T Study Group 16. The protocol definition of this protocol is common text with ITU-T Recommendation H.248.

The Megaco protocol is used between elements of a physically decomposed multimedia gateway. There are no functional differences from a system view between a decomposed gateway, with distributed sub-components potentially on more than one physical device, and a monolithic gateway such as described in H.246. This protocol creates a general framework suitable for gateways, multipoint control units and interactive voice response units (IVRs).

Packet network interfaces may include IP, ATM or possibly others. The interfaces support a variety of SCN signalling systems, including tone signalling, ISDN, ISUP, QSIG and GSM. National variants of these signalling systems are supported where applicable.

All messages are in the format of ASN.1 text messages.

 

MGCP

RFC: 2705 ftp://ftp.isi.edu/in-notes/rfc2705.txt
MGCP

Media Gateway Control Protocol (MGCP) is used for controlling telephony gateways from external call control elements called media gateway controllers or call agents. A telephony gateway is a network element that provides conversion between the audio signals carried on telephone circuits and data packets carried over the Internet or over other packet networks.

MGCP assumes a call control architecture where the call control intelligence is outside the gateways and handled by external call control elements. The MGCP assumes that these call control elements, or Call Agents, will synchronize with each other to send coherent commands to the gateways under their control. MGCP is, in essence, a master/slave protocol, where the gateways are expected to execute commands sent by the Call Agents.

The MGCP implements the media gateway control interface as a set of transactions. The transactions are composed of a command and a mandatory response. There are eight types of commands:

MGCP Commands

MGC --> MG

CreateConnection: Creates a connection between two endpoints; uses SDP to define the receive capabilities of the paricipating endpoints.

MGC --> MG

ModifyConnection: Modifies the properties of a connection; has nearly the same parameters as the CreateConnection command.

MGC <--> MG

DeleteConnection: Terminates a connection and collects statistics on the execution of the connection.

MGC --> MG

NotificationRequest: Requests the media gateway to send notifications on the occurrence of specified events in an endpoint.

MGC <-- MG

Notify: Informs the media gateway controller when observed events occur.

MGC --> MG

AuditEndpoint: Determines the status of an endpoint.

MGC --> MG

AuditConnection: Retrieves the parameters related to a connection.

MGC <-- MG

RestartInProgress: Signals that an endpoint or group of endpoints is take in or out of service.

MGC=Media Gateway Controller
MG=Media Gateway

  • CreateConnection.
  • ModifyConnection.
  • DeleteConnection.
  • NotificationRequest.
  • Notify.
  • AuditEndpoint.
  • AuditConnection.
  • RestartInProgress.

The first four commands are sent by the Call Agent to a gateway. The Notify command is sent by the gateway to the Call Agent. The gateway may also send a DeleteConnection. The Call Agent may send either of the Audit commands to the gateway. The Gateway may send a RestartInProgress command to the Call Agent.

All commands are composed of a command header, optionally followed by a session description. All responses are composed of a response header, optionally followed by a session description. Headers and session descriptions are encoded as a set of text lines, separated by a carriage return and line feed character (or, optionally, a single line-feed character). The headers are separated from the session description by an empty line.

MGCP uses a transaction identifier to correlate commands and responses. Transaction identifiers have values between 1 and 999999999. An MGCP entity cannot reuse a transaction identifier sooner than 3 minutes after completion of the previous command in which the identifier was used.
The command header is composed of:

  • A command line, identifying the requested action or verb, the transaction identifier, the endpoint towards which the action is requested, and the MGCP protocol version,
  • A set of parameter lines, composed of a parameter name followed by a parameter value.

The command line is composed of:

  • Name of the requested verb.
  • Transaction identifier correlates commands and responses. Values may be between 1 and 999999999. An MGCP entity cannot reuse a transaction identifier sooner than 3 minutes after completion of the previous command in which the identifier was used.
  • Name of the endpoint that should execute the command (in notifications, the name of the endpoint that is issuing the notification).
  • Protocol version.

These four items are encoded as strings of printable ASCII characters, separated by white spaces, i.e., the ASCII space (0x20) or tabulation (0x09) characters. It is recommended to use exactly one ASCII space separator.

 

 

RVP over IP

RVP Over IP Specification, MCK Communications (Proprietary)

Remote Voice Protocol (RVP) is MCK Communications' protocol for transporting digital telephony sessions over packet or circuit based data networks. The protocol is used primarily in MCK's Extender product family, which extends PBX services over Wide Area Networks (WANs). RVP provides facilities for connection establishment and configuration between a client (or remote station set) device and a server (or phone switch) device.

RVP/IP uses TCP to transport signalling and control data, and UDP to transport voice data.

Signalling and Control Packets

Control and signalling packets carried over TCP are encapsulated using the following format, a header followed by signalling or control messages:

1 byte

1 byte

 

Length

Protocol code

RVP/IP messages

RVP over IP packet structure

Length
A one byte field containing the length of the header (protocol code and the entire RVP/IP message). The length field allows recognition of message boundaries in a continuous TCP data stream.

Protocol code
Identifies the RVP/IP protocol:

35

RVP/IP control messages (see RVP Control Protocol).

36

RVP/IP signalling data (see RVP Signalling Operations).

RVP/IP messages
RVP/IP messages include RVP Control Protocol (RVPCP) and RVP Signalling Operations described below.

RVP Control Protocol (RVPCP)

RVP Control Protocol is for control messages that configure and maintain the data link between the client and the server. The control protocol was originally developed for point-to-point data applications; most of its functionality is unnecessary when using TCP/IP. During an RVP/IP session, only one class of RVP/IP control message are exchanged: RVPCP ADD VOICE (operation code 12) packet, used to send the UDP port used by the client (for subsequent voice data packets) to the server. This message always takes a single parameter of type RVPCP UDP PORT (type code 9), which always has a length of exactly two and a value that is the two-byte UDP port to which voice data packets should be addressed. The server responds with a packet containing the code RVPCP ADD VOICE ACK (operation code 13) which contains exactly one parameter, the server's voice UDP port. If RVP/IP is operating in "dynamic voice" mode, this exchange must be repeated whenever the voice channel needs to be reestablished, i.e., whenever the phone goes off-hook.

The structure of the control messages is described below:

2 bytes

2 bytes

 

Operation code

Parameter count

Parameters

RVP over IP control message structure

Operation code
The operation code defines the class of RVP/IP control messages Possible classes are:

12

RVPCP ADD VOICE

13

RVPCP ADD VOICE ACK

Parameter count
The parameter count equals exactly one parameter.

Parameters
Parameters of all control messages are passed as Type, Length and Value (TLV) structures as described below:

2 bytes

2 bytes

 

Type

Length

Value...

RVP over IP control message structure

Type
RVPCP UDP PORT (or type code 9).

Length
The number of bytes in the value field.

Value
The UDP port number.

RVP Signalling Operations

The structure of RVP signalling data (protocol type 36) is described below:

7

8

8

8

Packet Length

Protocol

Message Length

Data

RVP over IP signalling message structure

RVP signalling data packets always begin with a length byte immediately after the RVP/IP encapsulation header. The packets contain two classes of data, either raw digital telephone signalling packets or high-level RVP session commands. Session commands are differentiated from raw signalling data by adding an offset of 130 in the "Message Length" field. All raw signalling data has a true length field of less than or equal to 128. The true length of a session command message is calculated by subtracting 130 from the length field.

For all session commands, the Command Code (one-byte) follows the message length field. Bit seven of the command code is considered the "ACK" bit. All other bits in this field are part of the command code itself.

Voice Data Packets

The structure of voice data packets, carried over UDP datagrams, is described below:

7

 

Protocol

RVP/IP Voice Data...

RVP over IP Voice packet structure

Protocol
The protocol code is always 37 for RVP/IP voice data packets.

RVP/IP voice data
A single voice packet is carried in each UDP datagram.

Interested in more details about testing this protocol?

 

SAPv2

Internet draft: http://search.ietf.org/internet-drafts/draft-ietf-mmusic-sap-v2-04.txt 

SAP is an announcement protocol that is used by session directory clients. A SAP announcer periodically multicasts an announcement packet to a well-known multicast address and port. The announcement is multicast with the same scope as the session it is announcing, ensuring that the recipients of the announcement can also be potential recipients of the session the announcement describes (bandwidth and other such constraints permitting). This is also important for the scalability of the protocol, as it keeps local session announcements local.

The following is the format of the SAP data packet.

V=1

A

R

T

E

C

Auth len

Msg id hash

Originating source

Optional Authentication Data

Optional timeout

Optional payload type

 

0

Payload

SAP data packet structure

V: Version Number
The version number field is three bits and MUST be set to 1.

A: Address Type
The Address type field is one bit. It can have a value of 0 or 1:
0          The originating source field contains a 32-bit IPv4 address. 
1          The originating source contains a 128-bit IPv6 address.

R: Reserved
SAP announcers set this to 0. SAP listeners ignore the contents of this field.

T: Message Type
The Message Type field is one bit. It can have a value of 0 or 1:
0          Session announcement packet
1          Session deletion packet.

E: Encryption Bit
The encryption bit may be 0 or 1.
1          The payload of the SAP packet is encrypted and the timeout field must be added to the packet header.
0          The packet is not encrypted and the timeout must not be present. 

C: Compressed Bit
If the compressed bit is set to 1, the payload is compressed.

Authentication Length
An 8 bit unsigned quantity giving the number of 32 bit words, following the main SAP header, that contain authentication data. If it is zero, no authentication header is present.

Message Identifier Hash