0% found this document useful (0 votes)
33 views6 pages

Brief Introduction of SIP and SDP Protocol

The document provides an overview of the SIP (Session Initiation Protocol) and SDP (Session Description Protocol), detailing the call flow and essential SIP messages such as INVITE, 200 OK, and ACK. It explains important SIP headers and their functions, as well as SDP parameters for media stream negotiation. Additionally, it discusses issues related to IP addresses in SIP messages, particularly in NAT scenarios, and offers solutions for one-way audio problems and call hangup issues.

Uploaded by

Messene A Jean
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
33 views6 pages

Brief Introduction of SIP and SDP Protocol

The document provides an overview of the SIP (Session Initiation Protocol) and SDP (Session Description Protocol), detailing the call flow and essential SIP messages such as INVITE, 200 OK, and ACK. It explains important SIP headers and their functions, as well as SDP parameters for media stream negotiation. Additionally, it discusses issues related to IP addresses in SIP messages, particularly in NAT scenarios, and offers solutions for one-way audio problems and call hangup issues.

Uploaded by

Messene A Jean
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

Brief Introduction of SIP and SDP Protocol

Eric Jiang

August 23, 2024 22:48

Follow

SIP call flow

SIP protocol is defined in RFC3261 and use INVITE sip message to initial a call.

Here are some introduction about SIP messages:

INVITE

Caller party use to initial a call

180 Ring

Called party is in ringing state

200OK with SDP

Called party has answered the call

ACK

Caller party has received the 200OK with SDP from called party
After Called party received ACK from Caller party we can say the call is established.

Important SIP headers

Request-Line

The called party URI

Via

Indicates where to send the response to

When an Agent receive a request it will send the response for the request to the address in Via header.

From

Indicates the originator of the request

To

It is the address of record of the target of this request

Contact

Provides a URI that used to contact that specific instance of the UA for subsequent requests

For example the contact header in 200OK with sdp will be used by the Caller party to send the ACK
request and this will impact the sip call establishment.

Call-ID

Use to identifies a particular invitation

User-Agent

Indicates which endpoint send this message

SDP parameters

IP PBX and IP Phone use SIP to establish calls and use SDP to negotiate the parameters of media stream
(audio, video).
Here are some related parameters in SDP Media description

 m=media name, port, proto and payload

media name: audio, video

port: the port to receive media stream

proto: RTP/AVP, RTP/SAVP

RTP/AVP represents RTP

RTP/SAVP represents SRTP.

payload represents the codecs in the attribute

 c=connection information

the address to receive media stream.

 a=media attribute lines (directions: sendrecv, sendonly, recvonly, inactive)

The port in m line and IP address in c line is use to tell other peer where to send the RTP stream.

IP Address in SIP message

SIP is an application layer protocol. Means what list in the headers and SDP might not match the actual
IP packet.

Below are two examples may help you understand how the IP address in sip message impact the call
establishment and voice transmission.

1) PBX makes a call to extension which registers from outside network.


Inside Outside(when IP phone receive)

Source IP & Port [Link] [Link]:34232

IP & Port in contact header [Link]:5060 [Link]:5060

IP & Port in SDP [Link]:4046 [Link]:4046

When sip INVITE message sends out to outside network the source IP address changed but the IP
address in the headers and SDP remain the same.

The c(connection type and address) parameter in SDP is the IP address used for sip entity sending RTP
stream.

The m(media definitions including media type e.g.'audio', transport details and formats) parameter in
SDP contains the port for sip entity sending RTP stream.

For this INVITE message is like PBX tell another side that: Please send me the audio to
[Link]:4060, and send me the next request to [Link]:5060.

So the problem comes, there is no route for the device from outside network sending the voice to a
private IP address.
The solution for this one way audio problem is to set NAT and INVITE will use public IP address in SDP.

2) PBX receives a call from extension which registers from outside network.

PBX will send 200OK when called party answered the call.

The contact header use private IP address when send 200OK to IP Phone.

I may cause the call hangup issue after around 30 seconds. When you analyze the pcap file with
Wireshark you will see the call flow like below.
Because there is private IP address in contact header 200OK message so IP Phone will send the ACK
message to there instead of the public address of PBX.

The solution for this problem is to set NAT so that 200OK contact header will use public IP address.

You might also like