Transcript Slide 1
VoIP Signaling Protocols
A signaling protocol is a common language spoken by telephones and
call-management servers, the PSTN, and legacy PBX systems as they
communicate to set up, monitor, and tear down calls.
The Voice over IP (VoIP) technology family provides several signaling
protocols. Asterisk support most of them but a few will be discussed here:
H.323
SIP
IAX
H.323
H.323 is an International Telecommunications Union
Telecommunications Standardization Sector (ITU-T) specification for
transmitting multimedia traffic, including video and voice, over an IP
network
H.323 Protocols
Feature
Protocol
Call Signalling
H.225
Media Control
H.245
Audio Codecs
G.711, G.722, G.723, G.728, G.729
Video Codecs
H.261, H.263
Data Sharing
T.120
Media Transport
RTP/RTCP
H.323 Elements
H.323 elements include terminals, gateways, gatekeepers and Multipoint
Control Units (MCUs).
Terminals
Also known as endpoints, terminals provide point-to-point and
multipoint conferencing for audio, video and data
Gateways
Gateways are used to connect between Switched Circuit Network (SCN)
endpoints and H.323 endpoints. Gateways are only needed when an H.323
endpoint needs to interconnect to a different network
Gatekeeper
Gatekeepers provides pre-call and call-level control services to H.323
endpoints.
H.323 elements
Multipoint Controller (MC)
A Multipoint Controller supports conferencing between three or more
endpoints. A Multipoint Processor (MP) receives audio, video and data
streams, and then redistributes those streams to the endpoints in a
multipoint conference
The H.323 Call-Signaling Process
There are five general steps in the H.323 signaling process:
setup/teardown, capabilities negotiation, open media channel, perform
call, and release.
Setup/Teardown
To initiate an H.323 call, H.225 is required for the setup process.
The following are the most commonly used signaling messages :
Setup: A forward message sent by a calling entity in an attempt to
establish a connection with the called entity
Proceeding: A backward message sent from the called entity to the
calling entity to inform that call establishment procedures were initiated
The H.323 Call-Signaling Process
Alerting: A backward message sent from the called entity to inform that
called party ringing was initiated
Connect: A backward message sent from the called entity to the calling
entity that the called party answered the call. The connect message can
contain the transport UDP/IP address for H.245 control signaling
Release: sent by endpoint initiating disconnect
Capabilities Negotiation
After setup, H.245 is enlisted to negotiate the call’s application requirements
H.245 determines:
-Which kind of application media each terminal can support: audio, video.
-Which codecs each terminal is capable of and which it may prefer
-How the media channel will be structured, and which packet interval will be
used
-Which terminal will be the master and which will be the slave for the
duration of the call. Master and slave roles distinguish the client/server role
assumptions for future signals during the call and are a protocol formality
The H.323 Call-Signaling Process
Open Media Channel
Once capabilities negotiation has succeeded, RTP Control Protocol
(RTCP) establishes a UDP socket for the media channel
Perform Call
As the call progresses, RTCP, which runs alongside RTP (usually on
separate, consecutive UDP ports that are selected during call setup), can
keep tabs on the media channel
Release
When the call concludes, H.225 enters its release state, signaling an end
to the media channel, an end to the H.245 application capabilities
session, and an end to the call-accounting transaction on the gatekeeper
Session Initiation Protocol (SIP)
Session Initiation Protocol (SIP) is an application-layer control protocol
used to create, modify and terminate a communication session
Sessions can include audio, video and data streams
SIP Overview
The two components in a SIP system are user agents and network servers.
Calling and called parties are identified by SIP addresses
User Agents
A SIP user agent is a client-end application continuing a User-Agent
Client (UAC) and a User-Agent Server (UAS.) These are known as a SIP
client and a SIP server. The client initiates SIP requests as a user's agent. A
server gets requests. A SIP server acts as a user's agent
SIP Overview
Network Servers
Two types of SIP servers proxy servers and redirect servers.
Proxy Servers
Act on behalf of other clients and contains both client and server
functions. a proxy server interprets and can rewrite request headers
before passing them on other servers. Rewriting ensures that the replies
follow the same path back to proxy instead of the client
Redirect Servers
Accepts SIP requests and sends a redirect response back to the client
containing the address of the next server
SIP Overview
Addressing
SIP Uniform Resource Locators (URLs) provide addressing similar to email addressing. A SIP URL can have various forms and can include a
telephone number, for example:
sip:[email protected]
sip:[email protected]
SIP Overview
SIP Methods and Responses
INVITE: Start sessions and advertise endpoint capabilities
ACK: Acknowledge to the called SIP peer that an INVITE has succeeded
BYE: This method is used when the call is completed
CANCEL: This method is used during attempts to override a prior request
that has not yet been completed
OPTIONS: Query a SIP peer for its capabilities information, without
actually establishing a media channel
REGISTER: This method notifies the SIP server at which endpoint a
particular user can be reached
SIP Overview
SIP Responses
Informational
100 trying
180 Ringing
181 Call is being forwarded
182 Queued
Success
200 Ok
300 Multiple choices
Client error
400 Bad request
401 Unathorized
403 Forbidden
408 Request timeout
482 Loop detected
486 Busy here
Server error
500 Server internal error
502 Bad gateway
Global failure
600 Busy everywhere
603 Decline
SIP header
Headers are used to transport the information to the SIP entities.
The main fields are:
- Via: shows the transport protocol used and the request route, each
proxy adds a line to this field
- From: shows the address of the caller.
- To: show the called user address of the request.
- Call-Id: Unique identifier for each call and contains the host address.
It must be the same for all the messages within a transaction.
- Cseq: begins with a random number and it identifies in a sequential
way each message.
- Contact : shows one (or more) address than can be used to contact
the user
- User Agent: The client agent who deals the communication.
SIP header
Message Header
Via: SIP/2.0/UDP
192.168.0.100:5060;rport;branch=z9hG4bK646464100000007343c526790
00020a600000e45
Content-Length: 0
Call-ID: [email protected]
CSeq: 1 ACK
From: "Prueba"<sip:[email protected]>;tag=8922404614682
Max-Forwards: 70
Route: <sip:[email protected]>
To: <sip:[email protected]>;tag=as0a27b928
User-Agent: SJphone/1.60.289a (SJ Labs)
Contact: <sip:[email protected]:5060>;expires=3600
Inter-Asterisk Exchange (IAX) Protocol
The Inter-Asterisk Exchange (IAX) Protocol is a signaling protocol for VoIP
networks, just like SIP and H.323. It also provides endpoint and trunk signaling
IAX is also NAT-proof, so dozens or hundreds of simultaneous calls from behind a
masquerading firewall will function correctly, just like HTTP.
IAX is much more compact because it has been developed only for telephony
applications
While a complete cycle of registration, call signaling, voice transmission, and teardown can use several TCP and UDP ports and connections with SIP or H.323, IAX
handles all of these functions using a single UDP port. When the IAX client
(endpoint) registers with the IAX server or proxy, this UDP port is utilized. This
same port is also utilized to place a call
Inter-Asterisk Exchange (IAX) Protocol
The way IAX distinguishes between registration, signaling, and voice
packets is by including headers and meta data in each packet