• No results found

Multimedia Over IP

N/A
N/A
Protected

Academic year: 2021

Share "Multimedia Over IP"

Copied!
65
0
0

Loading.... (view fulltext now)

Full text

(1)

M

M

u

u

l

l

t

t

i

i

m

m

e

e

d

d

i

i

a

a

o

o

v

v

e

e

r

r

I

I

(RT

(RT

P

P

,

,

RT

RT

CP

CP

,

,

S

S

I

I

P

P

,

,

RSTP) 

RSTP) 

(2)

Multimedia Traffic

Multimedia Traffic

Production,

Production, transmissiontransmission

and use of data take place

and use of data take place

at different times at different times (RealPlayer, Windows (RealPlayer, Windows Media Player) Media Player)

The production, transmission,

The production, transmission,

and use of data take

and use of data take

place at the same time

place at the same time

(NetMeeting).

(NetMeeting).

Streaming Live A/V

Streaming Live A/V

(Like broadcast TV/radio but via Internet, (Like broadcast TV/radio but via Internet, Can’t pause, rewind. The time between Can’t pause, rewind. The time between request and display 1 to 10 seconds. request and display 1 to 10 seconds. Continuous playout)

Continuous playout)

Streaming Stored A/V

Streaming Stored A/V

(Like DVD but via Internet (Like DVD but via Internet

Prerecorded multimedia content, user Prerecorded multimedia content, user may pause, rewind, forward,…The may pause, rewind, forward,…The time between

time between request and request and display 1 display 1 toto 10 seconds After display start the

10 seconds After display start the  playout

 playout must be continuous)must be continuous)

Real-Time Interactive A/V

Real-Time Interactive A/V

(IP phone, video conferencing. Can’t pause, (IP phone, video conferencing. Can’t pause, rewind. Delay between initial request

rewind. Delay between initial request andand display small: video

display small: video <150ms, audio <400<150ms, audio <400 acceptable. Continuous playout)

(3)

Non-Real Time Multimedia Traffic

Non-Real Time Multimedia Traffic

Example:

Example: downloading downloading of a video of a video from the Internet. from the Internet. The video has The video has already beenalready been made; it’s a finis

made; it’s a finished product. A hed product. A client HTTP is usclient HTTP is used to ded to downloadownload the video from the video from anan HTTP server and the user

HTTP server and the user views the video at a later time. The views the video at a later time. The production,production, transmission, and use all happen at different times.

transmission, and use all happen at different times.

TCP TCP (port 80) (port 80) TCP TCP (port 80) (port 80)

(4)

Real-Time Multimedia Traffic

Real-Time Multimedia Traffic

Example: a video conference in which a camera is connected to a server that transmits Example: a video conference in which a camera is connected to a server that transmits video information as it is produced. Everything that happens at the server site can be video information as it is produced. Everything that happens at the server site can be displayed on the computer at the client site. This is both multimedia (video) and real-time displayed on the computer at the client site. This is both multimedia (video) and real-time traffic (production and use at the same

traffic (production and use at the same time).time).

Video frames are transmitted

Video frames are transmitted

as they are produced and displayed

as they are produced and displayed

Multimedia Traffic (cont.)

Multimedia Traffic (cont.)

(5)

Time Relationship

Time Relationship

Each packet holds 10 seconds of video information

Each packet holds 10 seconds of video information

Assumption: transfer delay is constant and equal 1 second (exaggerated)

Assumption: transfer delay is constant and equal 1 second (exaggerated)

The receiver sees the video with the same speed as it is created, the

The receiver sees the video with the same speed as it is created, the

constant transfer delay is immaterial.

(6)

Jitter

Jitter

What happens if the transfer delay is not

What happens if the transfer delay is not

constant?

constant?

   T    T    h    h  e  e   s   s   e   e   g   g   a   a   p   p   s   s    b    b  e  e    t    t  w  w   e   e   e   e   n   n   r   r   e   e   c   c   e   e    i

   i  v  v  e  e

   d    d   p   p   a   a   c   c    k    k  e  e    t    t  s  s   a   a   r   r   e   e   c   c   a   a    l    l    l    l  e  e    d    d    j    j    i    i    t    t    t    t  e  e   r   r . .

Real-Time Multimedia Traffic (cont.)

Real-Time Multimedia Traffic (cont.)

(7)

A solution to the jitter problem is use of

A solution to the jitter problem is use of

timestamps

timestamps

-

-

each

each

packe

packe

t ha

t ha

s a t

s a t

ime

ime

of

of

the packet with re

the packet with re

spect to the fi

spect to the fi

rst packet (ti

rst packet (ti

me is measure

me is measure

d at

d at

the sender’s si

the sender’s si

te.)

te.)

(20)

(20)

The playback is deferred 7 The playback is deferred 7 seconds after the reception seconds after the reception of the first packet, all gaps of the first packet, all gaps eliminated

eliminated

Playback time is separated Playback time is separated

5 sec 5 sec 2 sec 2 sec 7sec 7sec

(8)

Playback Buffer

Playback Buffer

In order to separate playback time from the arrival time a

In order to separate playback time from the arrival time a

 playback

 playback

buffer 

buffer 

is needed.

is needed.

Playback Playback (constant (constant bit rate) bit rate) 2 2ndnd packet (TS=10)packet (TS=10) 3 3rdrd packet (TS=20)packet (TS=20) 00:00:01 00:00:01 00:00:15 00:00:15 00:00:27 00:00:27 00:00:11 00:00:11 00:00:25 00:00:25 00:00:37 00:00:37 PLAYBA

PLAYBACK CK BUFFERBUFFER

1 1ststpacket (TS=0)packet (TS=0) Arrival Arrival (variable (variable bit rate) bit rate) Playback Playback (constant (constant bit rate) bit rate) 3 3rdrd packet (TS=20)packet (TS=20) 00:00:01 00:00:01 00:00:15 00:00:15 00:00:27 00:00:27 00:00:25 00:00:25 00:00:37 00:00:37 PLAYBACK BUFFER PLAYBACK BUFFER 1 1ststpacket (TS=0)packet (TS=0) Arrival Arrival (variable (variable bit rate) bit rate) 2 2ndnd packet (TS=10)packet (TS=10) Arrival times Arrival times

Arrival and playback pointers at

Arrival and playback pointers at

Arrival and playback

Arrival and playback pointers atpointers at

00:00:08 00:00:08 7*C bits in buffer 7*C bits in buffer 3*C bits in buffer 3*C bits in buffer

Real-Time Multimedia Traffic (cont.)

Real-Time Multimedia Traffic (cont.)

(9)

Playback Playback (constant (constant bit rate) bit rate) 00:00:01 00:00:01 00:00:15 00:00:15 00:00:27 00:00:27 00:00:11 00:00:11 00:00:37 00:00:37 PLAYBA

PLAYBACK CK BUFFERBUFFER

1 1ststpacket (TS=0)packet (TS=0) Arrival Arrival (variable (variable bit rate) bit rate) Playback Playback (constant (constant bit rate) bit rate) 3 3rdrd packet (TS=20)packet (TS=20) 00:00:01 00:00:01 00:00:15 00:00:15 00:00:27 00:00:27 00:00:25 00:00:25 PLAYBACK BUFFER PLAYBACK BUFFER 1 1ststpacket (TS=0)packet (TS=0) Arrival Arrival (variable (variable bit rate) bit rate) 2 2ndnd packet (TS=10)packet (TS=10)

Arrival and playback pointers at

Arrival and playback pointers at

Arrival and playback pointers at

Arrival and playback pointers at

00:00:28 00:00:28 3 3rdrd ppaacckkeet t ((TTSS==2200)) 22ndnd packet (TS=10)packet (TS=10) 1*C bits in buffer 1*C bits in buffer Buffer empty Buffer empty

(10)

Playback point

Playback point oror plplayayououtt dedelalayy

(constant

(constant offset offset between between datadata generation and playback) generation and playback)

Propagation Propagation delay + max delay + max  jitter  jitter Time Time    B    B  y  y    t    t  e  e  s  s    (    (  s  s  e  e   q   q   u   u   e   e   n   n   c   c   e   e   n   n   u   u   m   m    b    b  e  e   r   r   s   s    )    ) Byte generation Byte generation (CBR) (CBR) Playback  Playback  (CBR) (CBR) Arrival of data Arrival of data (VBR) (VBR)

For most of the voice applications

For most of the voice applications

the pl

the playouayoutt deladelay shouy should be lesld be lesss

than 300ms (for some applications

than 300ms (for some applications

even less than 150 ms is required)

even less than 150 ms is required)

Network Network

delay delay

Playback Buffer (cont.)

Playback Buffer (cont.)

Real-Time Multimedia Traffic (cont.)

Real-Time Multimedia Traffic (cont.)

(11)

How to

How to

determi

determi

ne the

ne the

size o

size o

f playou

f playou

t

t

delay?

delay?

 D = ED +

 D = ED +

 β 

 β 

 EV 

 EV 

where:

where:

 D

 D

 –

 –

Playout

Playout

delay (se

delay (se

t for each

t for each

talk spurt

talk spurt)

)

 ED

 ED

 –

 –

Estima

Estima

ted average pac

ted average pac

ket delay

ket delay

 EV 

 EV 

 –

 –

Estimated

Estimated

average p

average p

acket delay

acket delay

variati

variati

on

on

 β 

 β 

 –

 –

safety fact

safety fact

or (usua

or (usua

lly

lly

 β 

 β 

= 4)

= 4)

The computation of

The computation of

 ED

 ED

and

and

 EV 

 EV 

is done for each packet and is based on

is done for each packet and is based on

timestamps:

timestamps:

 ED

 ED

ii

:=

:=

α 

α 

 ED

 ED

i-1i-1

+ (1-

+ (1-

α 

α 

 ) (r 

 ) (r 

ii

 –

 –

 )

 )

ii

 EV 

 EV 

ii

:=

:=

α

α

 ED

 ED

i-1i-1

+ (1-

+ (1-

α 

α 

 ) |r 

 ) |r 

ii

 –

 –

ii

− 

− 

 ED

 ED

ii

|

|

where:

where:

α 

α 

 – 

 – 

weighting factor (typically

weighting factor (typically

αα

= 0.998)

= 0.998)

ii

 –

 –

time the p

time the p

acket

acket

i

i

is received

is received

(12)

!

!

In order to ensure playback timing and jitter removal

In order to ensure playback timing and jitter removal

timestamps

timestamps

are

are

required.

required.

!

!

In order to ensure the presence and order of data a

In order to ensure the presence and order of data a

sequence number 

sequence number is

is

required.

required.

!

!

Most of the real-time multimedia applications are video conferencing

Most of the real-time multimedia applications are video conferencing

where several clients receive data. Therefore the

where several clients receive data. Therefore the

multicast

multicast

mode is

mode is

 preferred.

 preferred.

!

!

In order to deal with congestion a mechanism for sender notification

In order to deal with congestion a mechanism for sender notification

and change of

and change of

encoding parameters

encoding parameters

must be provided.

must be provided.

!

!

In order to display streams generated by different standards the

In order to display streams generated by different standards the

choice

choice

of encoding

of encoding

must be provided.

must be provided.

!

!

In order to display audio and video streams (and user data like titles)

In order to display audio and video streams (and user data like titles)

within a single A/V session

within a single A/V session

mixers

mixers

are required.

are required.

!

!

In order to use high bit rate streams over a low-bandwidth network the

In order to use high bit rate streams over a low-bandwidth network the

translators

translators

are required (multimedia payload encoders and decoders)

are required (multimedia payload encoders and decoders)

Requireme

Requireme

nts for

nts for

Real-Time Multimedia Traffic

Real-Time Multimedia Traffic

Real-Time Multimedia Traffic (cont.)

Real-Time Multimedia Traffic (cont.)

(13)

!

!

TCP forces the receiver application to wait for

TCP forces the receiver application to wait for

retransmission

retransmission

(s) in case of

(s) in case of

 packet l

 packet l

oss, which ca

oss, which ca

uses larg

uses larg

e delays.

e delays.

!

!

TCP cannot support

TCP cannot support

multicast

multicast

.

.

!

!

TCP

TCP

congestion control

congestion control

mechanisms decreases the congestion window

mechanisms decreases the congestion window

when packe

when packe

t losses ar

t losses ar

e detected ("

e detected ("

slow start

slow start

"). Audio a

"). Audio a

nd vid

nd vid

eo,

eo,

on the

on the

other hand, have "natural" rates that cannot be suddenly decreased.

other hand, have "natural" rates that cannot be suddenly decreased.

!

!

TCP

TCP

headers

headers

are larger than a UDP header (40 bytes for TCP compared to

are larger than a UDP header (40 bytes for TCP compared to

8 bytes for UDP).

8 bytes for UDP).

!

!

TCP doesn’t contain the necessary

TCP doesn’t contain the necessary

timestamp

timestamp

and encoding information

and encoding information

needed by the receiving application.

needed by the receiving application.

!

!

TCP doesn’t

TCP doesn’t

allow packet loss

allow packet loss

. In A/V however loss of 1-20% is tolerable.

. In A/V however loss of 1-20% is tolerable.

(This kind of loss can be compensated by FEC, see later)

(This kind of loss can be compensated by FEC, see later)

Why real-time data can not use TCP?

(14)

There are several related protocols which support the real-time traffic over

There are several related protocols which support the real-time traffic over

Internet (here are listed the most important ones which will be discussed in

Internet (here are listed the most important ones which will be discussed in

the following slides):

the following slides):

!

!

RTP

RTP

(Real-Time Protocol)

(Real-Time Protocol)

---- Used for realUsed for real-time dat-time data transpoa transport (extenrt (extends UDP, sits beds UDP, sits betweentween application and UDP)

application and UDP)

!

!

RTCP

RTCP

(Real-time Control Protocol)

(Real-time Control Protocol)

---- Used to exchaUsed to exchange contrnge control informatol information betweeion between sender and recein sender and receiver,ver, works in conjunction with RTP

works in conjunction with RTP

!

!

SIP

SIP

(Session Initiation Protocol)

(Session Initiation Protocol)

---- ProvidProvides mechanes mechanisms for estisms for establisablishing calhing calls over IPls over IP

!

!

RTSP

RTSP

(Real-Time Streaming Protocol)

(Real-Time Streaming Protocol)

---- Allows usAllows user to control diser to control display (rewinplay (rewind, FF, pausd, FF, pause, resume,e, resume,…)…)

!

!

RSVP

RSVP

(Resource Reservation Protocol, discussed in next chapter)

(Resource Reservation Protocol, discussed in next chapter)

---- Intended to Intended to add dadd determinism to eterminism to connectionless connectionless information, pinformation, providesrovides QoS

QoS to to somsome ee extextent.nt.

Protocols

Protocols

Real-Time Multimedia Traffic (cont.)

Real-Time Multimedia Traffic (cont.)

(15)

A A   p   p   p   pl   l    i    i     c   c   a  a  t    t  i   i     o  onn  d   d   a  a  e   e mm  o  onn k  k   e   e  n n  e   e l   l    MGCP MGCP /Megaco /Megaco

T

T

C

C

P

P

U

U

D

D

P

P

IPv4, IPv6

IPv4, IPv6

H H..332233 SSDDPP SIP SIP R RTTSSPP RRSSVVPP RRTTCCPP RTP RTP H.261, H.261, MPEG MPEG P PPPPP AAAALL33//44 AAAALL55 PPPPPP S Soonneett AATTMM EEtthheerrnneett VV..3344

Signaling 

Signaling 

Quality of Service

Quality of Service

Reservation

Reservation MeasurementMeasurement

 Media

 Media

transport 

transport 

Protocols (cont.)

Protocols (cont.)

SDP

(16)

Real Time Protocol (RTP)

Real Time Protocol (RTP)

(17)

There was a dil

There was a dil

emma whethe

emma whethe

r to implemen

r to implemen

t RTP as a sublayer

t RTP as a sublayer

of transpor

of transpor

t layer

t layer

or a s a part of application layer. At this point it is common that RTP is

or a s a part of application layer. At this point it is common that RTP is

implemented as an

implemented as an

application library

application library

, which executes in user space rather than in

, which executes in user space rather than in

kernel space like all other protocol layers below RTP. (Example:

kernel space like all other protocol layers below RTP. (Example:

JMF -Java

JMF -Java

Media Framework 

Media Framework 

).

).

RTP doesn’t ensure real-time delivery itself, but it provides means for:

RTP doesn’t ensure real-time delivery itself, but it provides means for:

!

!

Jitter 

Jitter 

eliminat

eliminat

ion/reduc

ion/reduc

tion (wi

tion (wi

th applica

th applica

tion’s p

tion’s p

layout

layout

buffers)

buffers)

!

!

Synchronization

Synchronization

of

of

several audio

several audio

and/or

and/or

video

video

streams that

streams that

belong

belong

to

to

the same multimedia session.

the same multimedia session.

!

!

Multiplexing

Multiplexing

of audio/

of audio/

video

video

streams that

streams that

can

can

belong to

belong to

different

different

?????

?????

!

!

Translation

Translation

of video a/v streams from one encoding type to another 

of video a/v streams from one encoding type to another 

With the help of RTCP, RTP also provides “hooks” for adding reliability and

With the help of RTCP, RTP also provides “hooks” for adding reliability and

flow/congestion control which is implemented within the multimedia application

flow/congestion control which is implemented within the multimedia application

(this property is sometimes called:

(18)

RTP RTP header header UDP UDP header

header RTP PayloadRTP Payload PaddingPadding

Pad Pad count count

RTP (cont.)

RTP (cont.)

RTP packets are e

RTP packets are encapsulated in UDPncapsulated in UDP

dat

datagramagramss (TCP ca(TCP can not bn not be used due used duee

to overhead and to the fact that most

to overhead and to the fact that most

of real time traffic is multicast)

of real time traffic is multicast)

Some encoding algorithms

Some encoding algorithms

require fixed block sizes,

require fixed block sizes,

therefore a padding is needed

therefore a padding is needed

Variable size,

Variable size, dependindepending ong on

the application (i.e. when

the application (i.e. when

needed). Designed to be small

needed). Designed to be small

to decrease the overhead.

to decrease the overhead.

One byte

One byte

The size of the payload is

The size of the payload is aa

compromise between overhead and

compromise between overhead and

pack

packetizaetizationtion deladelay. y. In In additadditionion, , it it isis

desirable that the

desirable that the multimediamultimedia

packets are as small as possible so

packets are as small as possible so

that the packet loss doesn’t decrease

that the packet loss doesn’t decrease

the quality of reception (for

the quality of reception (for exampleexample

20 ms of uncompressed voice has 160

20 ms of uncompressed voice has 160

samples (bytes). Loss of 20 ms of

samples (bytes). Loss of 20 ms of

voice

voice is is tolerable. tolerable. Loss Loss of of largerlarger

packets can be

packets can be annoying.annoying.

Port number is an even number

Port number is an even number

randomly assigned at the session

randomly assigned at the session

initiation time

initiation time

RTP Packets

(19)

Version Version number number (current (current version = 2) version = 2) Padding bit Padding bit ( (11 – – packetpacket contains contains padding) padding) Extension bit Extension bit (

(11 – – fixed header isfixed header is

followed by an e

followed by an extensionxtension

header which is required

header which is required

by some

by some applicationapplications)s)

   F    F    i    i  x  x   e   e    d    d   p   p   a   a   r   r    t    t    (    (    1    1    2    2    b    b  y  y    t    t  e  e   s   s    )    ) Marker bit Marker bit 1

1 – – marks the framarks the frame boundme boundaryary

(e.g. beginning of a talkspurt

(e.g. beginning of a talkspurt

in audio, the end of frame in

in audio, the end of frame in

video) video)    C    C    S    S    R    R    C    C    i    i    d    d  e  e   n   n    t    t    i    i    f    f    i

   i  e  e  r  r

  s

  s

SSRC –

SSRC – Synchronization source Synchronization source (source that (source that is generating the is generating the RTP packets fRTP packets for this session)or this session)

CSRC –

CSRC – Contributing source Contributing source (used by a (used by a mixer to identify thmixer to identify the contributing sourcee contributing sources)s)

Number of Number of CSRC CSRC identifiers identifiers Incremented for Incremented for each RTP packet each RTP packet (used to indicate (used to indicate the packet loss the packet loss and to restore the and to restore the packet sequence packet sequence (see next slide)

(20)

RFC 3389 RFC 3389 8000 8000 Audio Audio CN CN 13 13 8000 8000 Audio Audio QCELP QCELP 12 12 RFC 3551 RFC 3551 44100 44100 Audio Audio L16 L16 11 11 RFC 3551 RFC 3551 44100 44100 Audio Audio L16 L16 10 10 RFC 3551 RFC 3551 8000 8000 Audio Audio G722 G722 9 9 RFC 3551 RFC 3551 8000 8000 Audio Audio PCMA PCMA 8 8 RFC 3551 RFC 3551 8000 8000 Audio Audio LPC LPC 7 7 RFC 3551 RFC 3551 16000 16000 Audio Audio DVI4 DVI4 6 6 RFC 3551 RFC 3551 8000 8000 Audio Audio DVI4 DVI4 5 5 8000 8000 Audio Audio G723 G723 4 4 RFC 3551 RFC 3551 8000 8000 Audio Audio GSM GSM 3 3 RFC 3551 RFC 3551 8000 8000 Audio Audio G721 G721 2 2 RFC 3551 RFC 3551 8000 8000 Audio Audio 1016 1016 1 1 RFC 3551 RFC 3551 8000 8000 Audio Audio PCMU PCMU 0 0  References  References  RTP timestamp  RTP timestamp Clock rate (Hz) Clock rate (Hz) Type Type  Name  Name  PT   PT 

RTP (cont.)

RTP (cont.)

Payload Type

Payload Type

(21)

90000 90000 Video Video H263 H263 34 34

Dynamic Payload Types

Dynamic Payload Types

96-127 96-127 RFC 2250 RFC 2250 90000 90000 A/V A/V MP2T MP2T 33 33 RFC 2250 RFC 2250 90000 90000 Video Video MPV MPV 32 32 RFC 2032 RFC 2032 90000 90000 Video Video H261 H261 31 31 RFC 3551 RFC 3551 90000 90000 Video Video nv nv 28 28 RFC 2435 RFC 2435 90000 90000 Video Video JPEG JPEG 26 26 RFC 2029 RFC 2029 90000 90000 Video Video CellB CellB 25 25 8000 8000 Audio Audio G729 G729 18 18 22050 22050 Audio Audio DVI4 DVI4 17 17 11025 11025 Audio Audio DVI4 DVI4 16 16 RFC 3551 RFC 3551 8000 8000 Audio Audio G728 G728 15 15 RFC 3551 RFC 3551 90000 90000 Audio Audio MPA MPA 14 14  References  References  RTP timestamp  RTP timestamp Clock rate (Hz) Clock rate (Hz) Type Type  Name  Name  PT   PT 

MPEG1

MPEG1

and

and

MPEG2

MPEG2

(22)

Timestamp and Sequence Number

Timestamp and Sequence Number

 Audio:

 Audio:

t

t

s

s

=

=

x

x

s

s

n

n

=

=

y

y

Audio stream

Audio stream

t

t

s

s

=

=

x+

x+

1

1

60

60

s

s

n

n

=

=

y

y

+

+

1

1

Timestamp clock rate for audio

Timestamp clock rate for audio

8000 Hz

8000 Hz

(= 125

(= 125

µµ

s)

s)

One RTP packet caries

One RTP packet caries

20 ms

20 ms

of audio samples, each RTP packet sent by

of audio samples, each RTP packet sent by

sepa

sepa

rate

rate

UDP

UDP

data

data

gram

gram

to

to

avoi

avoi

d p

d p

acke

acke

tiza

tiza

tion

tion

del

del

ay

ay

Timestamp increments by 20,000

Timestamp increments by 20,000

µµ

s/125

s/125

µµ

s =

s =

160

160

(even if the packet is not

(even if the packet is not

sent after silence suppression)

sent after silence suppression)

Packet rate = 1 sec/20 ms =

Packet rate = 1 sec/20 ms =

50 Hz

50 Hz

 Number of b

 Number of b

its per RT

its per RT

P payloa

P payloa

d for uncom

d for uncom

pressed au

pressed au

dio = 16

dio = 16

0*8 = 128

0*8 = 128

0,

0,

for compressed audio typically 8 times less.

for compressed audio typically 8 times less.

Sequence number increments by one for each RTP packet

Sequence number increments by one for each RTP packet

Audio stream

Audio stream

RTP packet

RTP packet

k-1

k-1

RTP packet

RTP packet

RTP (cont.)

RTP (cont.)

(23)

Video:

Video:

t

t

s

s

=

=

x

x

s

s

n

n

=

=

y

y

Video stream

Video stream

Timestamp clock rate for video is

Timestamp clock rate for video is

90,000 Hz

90,000 Hz

One RTP packet caries

One RTP packet caries

one video frame

one video frame

(it is possible that one frame is spread

(it is possible that one frame is spread

 between sev

 between sev

eral RTP pac

eral RTP pac

kets)

kets)

Each RTP packet sent by separate UDP datagram.

Each RTP packet sent by separate UDP datagram.

RTP packet rate = 30 Hz (sometimes 25 Hz)

RTP packet rate = 30 Hz (sometimes 25 Hz)

Timestamp increments by (1/30)/(1/90000) = 9000/30 =

Timestamp increments by (1/30)/(1/90000) = 9000/30 =

3000

3000

, or 9000/25 =

, or 9000/25 =

3600

3600

 Number of b

 Number of b

its per R

its per R

TP payload

TP payload

for uncom

for uncom

pressed vid

pressed vid

eo confere

eo confere

ncing =

ncing =

352x240x12 = 1,000,000, for compressed audio typically 30 times less.

352x240x12 = 1,000,000, for compressed audio typically 30 times less.

Required bit rate must cover the overhead (protocol headers and bit stream

Required bit rate must cover the overhead (protocol headers and bit stream

headers)

headers)

Sequence number increments by one for each RTP packet

Sequence number increments by one for each RTP packet

Video stream

Video stream

RTP packet

RTP packet

k-1

k-1

RTP packet

RTP packet

ts

ts

=

=

x+

x+

30

30

00

00

s

(24)

Source Identifiers

Source Identifiers

Synchron

Synchronization

ization source

source identi

identifier

fier

(SSRC)

(SSRC)

Uniquely defines the multimedia source.

Uniquely defines the multimedia source.

The initial value is determined randomly.

The initial value is determined randomly.

Contributing source identifier 

Contributing source identifier (

(

CSRC

CSRC)

)

Used by mixers to identify sources in a mix.

Used by mixers to identify sources in a mix.

RTP (cont.)

RTP (cont.)

(25)

RTP is a protocol that provides basic transport layer for real time applications

RTP is a protocol that provides basic transport layer for real time applications

 but doe

 but doe

s not pro

s not pro

vide any m

vide any m

echanism for e

echanism for e

rror and flow

rror and flow

control, c

control, c

ongesti

ongesti

on

on

control, quality feedback and synchronization. For that purpose the RTCP is

control, quality feedback and synchronization. For that purpose the RTCP is

added as a

added as a

companion to RTP

companion to RTP

to provide end-to-end monitoring and data

to provide end-to-end monitoring and data

delivery, and QoS

delivery, and QoS

RTCP is responsible for three main functions:

RTCP is responsible for three main functions:

!

!

Feedback on performance of the application and the

Feedback on performance of the application and the

network 

network 

!

!

Correlation and synchronization of different media streams

Correlation and synchronization of different media streams

generated by the same sender (e.g. combined audio and video)

generated by the same sender (e.g. combined audio and video)

!

!

The way to convey the identity of sender for display on a

The way to convey the identity of sender for display on a

user interface

(26)

RTCP (cont.)

RTCP (cont.)

UDP

UDP

header 

header 

RTCP

RTCP

header 

header 

RTCP Data

RTCP Data

8 bytes

8 bytes min 12 bytesmin 12 bytes

RTCP Packets

RTCP Packets

Variable, 32-bit boundary

Variable, 32-bit boundary

RTCP UDP port number = RTP UDP port number + 1

RTCP UDP port number = RTP UDP port number + 1

(Usually one port number pair per

(Usually one port number pair per multimedia session)multimedia session)

RTCP packet RTCP packet

UDP

UDP

header 

header 

RTCP

RTCP

 packet

 packet

RTCP

RTCP

 packet

 packet

RTCP

RTCP

 packet

 packet

Usually several R

Usually several RTCP packetTCP packets are combins are combined in a bed in a bundle of undle of severalseveral packetspackets

which are encap

which are encapsulated in thsulated in the same UDP datagrame same UDP datagram (to reduce the ov(to reduce the overhead due toerhead due to

headers).

(27)

Same as

Same as

RTP version

RTP version

(v = 2)

(v = 2) Padding bitPadding bit

(same as RTP)

(same as RTP)

The number of reception

The number of reception

report blocks contained

report blocks contained

in this packet

in this packet

RTCP packet type

RTCP packet type

(see next slide)

(see next slide)

2 bits

2 bits

1

1

b

b

i

i

t

t

s

s

5

5

b

b

i

i

t

t

s

s

8

8

b

b

i

i

t

t

s

s

1

1

6

6

b

b

i

i

t

t

s

s

Message length

Message length

Packet type

Packet type

RR count

RR count

P

P

Version

Version

(28)

XR  XR  APP APP BYE BYE SDES SDES RR  RR  SR  SR  NACK  NACK  FIR  FIR  Acronym  Acronym  RTCP extension RTCP extension 207 207

Application specific functions Application specific functions 204

204

Good

Goodbye –bye – IndiIndicates end ocates end of partif participatcipationion 203

203

Source d

Source description escription items (items (including including CNAME CNAME –– canonicalcanonical name)

name) 202

202

Receiver report for

Receiver report for reception statistics from participants thatreception statistics from participants that are not active

are not active senders (periodically transmitted)senders (periodically transmitted) 201

201

Sender report for transmission and reception statistics from Sender report for transmission and reception statistics from active senders

active senders (periodically transmitted)(periodically transmitted) 200

200

Negative

Negative acknowledgemacknowledgementent 193

193

Full INTRA-frame request Full INTRA-frame request 192 192 Description  Description  Packet  Packet  Type  Type  References: RFC 2032, 3550, 3611 References: RFC 2032, 3550, 3611

RTCP (cont.)

RTCP (cont.)

Packet Type

Packet Type

(29)

Message length Message length PT = 200 PT = 200 RR count RR count P P Version Version SSRC of sender  SSRC of sender 

 NTP timestamp (the absolute wall clock time when report was sent)  NTP timestamp (the absolute wall clock time when report was sent)

RTP timestamp (relative timestamp used in RTP packets) RTP timestamp (relative timestamp used in RTP packets) Sender’

Sender’s packet couns packet count (RTP packets trat (RTP packets transmitnsmitted by this sendted by this sender soer so farfar in this session)

in this session)

Sender’s octet count (same but total number of RTP

Sender’s octet count (same but total number of RTP payload octets)payload octets) sender) sender)

Sender 

Sender 

information

information

 block 

 block 

SSRC SSRC Fractio

Fraction lost (fractin lost (fraction of RTP pktson of RTP pkts from this soufrom this source lost since lasrce lost since last rep.)t rep.) Commutative number of lost packets

Commutative number of lost packets

Extended highest seq. number received (the last significant 16 bits) Extended highest seq. number received (the last significant 16 bits) Interarri

Interarrivalval jitter (esjitter (estimattimate of jitter of RTP date of jitter of RTP data from SSRCa from SSRC Last SR timestamp received from this source

Last SR timestamp received from this source

Delay since receiving the last SR report from this source Delay since receiving the last SR report from this source

Reception

Reception

report

report

 block 

 block 

(for each

(for each

source)

source)

NTP

NTP –  – Network Time ProtocolNetwork Time Protocol used to synchronize clocks of all coused to synchronize clocks of all computers in Internet. Uses UDP/IP,mputers in Internet. Uses UDP/IP,

UTC (Universal Time Coordinated, former Greenwich Mean Time)

UTC (Universal Time Coordinated, former Greenwich Mean Time)

 Necessary fo

 Necessary fo

r

r

synchronizing

synchronizing

A/V streams

A/V streams

(30)

RTCP (cont.)

RTCP (cont.)

Receiver Report

Receiver Report

Message length Message length PT = 201 PT = 201 RR count RR count P P Version Version SSRC of sender  SSRC of sender 

Reception statistics from receivers that are not senders. Reception statistics from receivers that are not senders. Same format

Same format as as SR, buSR, but t without without the sender’s information the sender’s information block.block.

SSRC (of the sender source) SSRC (of the sender source) Fractio

Fraction lost (fractin lost (fraction of RTP pktson of RTP pkts from this soufrom this source lost since lasrce lost since last rep.)t rep.) Commutative number of lost packets

Commutative number of lost packets

Extended highest seq. number received (the last significant 16 bits) Extended highest seq. number received (the last significant 16 bits) Interarri

Interarrivalval jitter (esjitter (estimattimate of jitter of RTP date of jitter of RTP data from SSRCa from SSRC Last SR timestamp received from this source

Last SR timestamp received from this source

Delay since receiving the last SR report from this source Delay since receiving the last SR report from this source

Report

Report

 block 

 block 

(for each

(for each

source)

source)

(31)

Used by source to

Used by source to provide more information about itself. Useful for user provide more information about itself. Useful for user interfacesinterfaces (GUI displays who is the source in a “human understandable” format)

(GUI displays who is the source in a “human understandable” format) Message length Message length PT = 202 PT = 202 So Soururcece cocoununtt P P Version Version SSRC/CSRC of sender  SSRC/CSRC of sender 

List of SDES items

List of SDES items

for each

for each

source

source

SDES item types:

SDES item types:

CNAME

CNAME – – Canonical end-point identifier unique amonCanonical end-point identifier unique among all participants likeg all participants like user@

user@hosthost (CNAME doe(CNAME doesn’t chasn’t change evenge even if SSRC chann if SSRC changes)ges) NAME

NAME – – Real user name of sourceReal user name of source EMAIL

EMAIL – – E-mail address ofE-mail address of PHONE

PHONE – – Telephone number Telephone number  LOC

LOC – – Geographical locationGeographical location TOOL

TOOL – – Name of application generating the streamName of application generating the stream NOTE

NOTE – – Transient message describing the current stat of the sourceTransient message describing the current stat of the source PRIV

(32)

RTCP (cont.)

RTCP (cont.)

RTCP Bye Message

RTCP Bye Message

Message length Message length PT = 203 PT = 203 So Soururcece cocoununtt P P Version Version

Used to confirm to receivers that a prolonged silence is due to

Used to confirm to receivers that a prolonged silence is due to departure of one ordeparture of one or more sources rather than network failure.

more sources rather than network failure.

SSRC/CSRC of sender  SSRC/CSRC of sender  Reason for leaving (optional) Reason for leaving (optional)

for each

for each

departing

departing

source

source

NOTE: In audio with silence suppression, no packets are

NOTE: In audio with silence suppression, no packets are sent between two talksent between two talk spurts. The receiv

spurts. The receiver might ther might think that ink that the sender hthe sender has departed as departed oror the there is the there is aa

network failure. The BYE message at least removes the suspicion of network failure if network failure. The BYE message at least removes the suspicion of network failure if a source

(33)

Message length Message length PT = 204 PT = 204 So Soururcece cocoununtt P P Version Version

Used to confirm to receivers that a prolonged silence is due to

Used to confirm to receivers that a prolonged silence is due to departure of one ordeparture of one or more sources rather than network failure.

more sources rather than network failure.

SSRC/CSRC of sender  SSRC/CSRC of sender   Name (ASCII)  Name (ASCII) Application-dependent data Application-dependent data

(34)

RTCP (cont.)

RTCP (cont.)

Scalability of RTCP

Scalability of RTCP

The volume of RTCP traffic

The volume of RTCP traffic may exceed the RTP traffic during a conference may exceed the RTP traffic during a conference sessionsession involving larg

involving larger number er number of participants of participants (normally only on(normally only one participant talks at e participant talks at the timethe time while other participants are listening. In the meanwhile RTCP

while other participants are listening. In the meanwhile RTCP messages are sentmessages are sent  periodically regardless if participant is talking or not.) Therefore the RTCP packet  periodically regardless if participant is talking or not.) Therefore the RTCP packet

transmission rate

transmission rate is dynamically is dynamically changed dependchanged depending on ing on the numberthe number of participants.of participants. Standard dictates that

Standard dictates that 20%20% of the session bandwidth is allocated to RTCP. In other wordsof the session bandwidth is allocated to RTCP. In other words RTCP RR and SDES packets are

RTCP RR and SDES packets are sent for every 5 RTP packets transmitted.sent for every 5 RTP packets transmitted. In addition,

In addition, 5%5% of the RTCP bandwidth is allocated to particular participant (CNAME).of the RTCP bandwidth is allocated to particular participant (CNAME).

The RTCP

The RTCP transmission intervaltransmission interval of a participant is a function of of a participant is a function of the total number ofthe total number of  participants in the RTP session that ensures required 5% of bandwidth alloc

 participants in the RTP session that ensures required 5% of bandwidth allocation. For thatation. For that  purpose each participant has to co

 purpose each participant has to continuously estimate the session size. The transmissionntinuously estimate the session size. The transmission interval is

interval is randomizedrandomized to avoid synchronization effect.to avoid synchronization effect.

RTCP messages

RTCP messages are stackable –are stackable – to amortize to amortize header overhead header overhead multiple RTCP multiple RTCP messages canmessages can  be combined and sent in a

(35)

A packet is lost if:

A packet is lost if:

 packet neve

 packet neve

r arrived

r arrived

 packet arriv

 packet arriv

ed but c

ed but c

orrupted (R

orrupted (R

TC test, IP and

TC test, IP and

UDP checksu

UDP checksu

m tests fai

m tests fai

led)

led)

 packet arriv

 packet arriv

ed after it

ed after it

s schedu

s schedu

led playo

led playo

ut

ut

time

time

RTP and RTCP do not provide error control (as TCP does via ARQ).

RTP and RTCP do not provide error control (as TCP does via ARQ).

How can lost packets be recovered?

How can lost packets be recovered?

Three approaches:

Three approaches:

!

!

Forward Error Correction

Forward Error Correction

(FEC)

(FEC)

!

!

Interleaving

Interleaving

!

(36)

Generally FEC is

Generally FEC is based on adding redundancy to transmitted data.based on adding redundancy to transmitted data. There are

There are two mechanismstwo mechanisms:: Using

Using parity parity (FEC) (FEC) packetspackets Using redundant A/V streams Using redundant A/V streams

Using parity packets

Using parity packets

22

11

33

44

. . . . .

. . . . .

n-1n-1

 p

 p

11

FEC RTP packet

FEC RTP packet

Data RTP packets

Data RTP packets

FEC block 

FEC block 

1 1

(( ,,

11 22

,,...,,

n n  11

))

p

p X

=

=

X O

OR

R d

d d

d

d  

d  

If any of k packet gets lost, it can be recovered. For example if

If any of k packet gets lost, it can be recovered. For example if

33

is lost, then:

is lost, then:

3

3

(( ,,

11 22

,,

44

,,...,,

n n  11

,,

11

))

d

d X

=

=

X O

OR

R d

d d

d d

d

d

d

p  

p  

Recovering from Packet Loss (cont.)

Recovering from Packet Loss (cont.)

Forward Error Correction (FEC)

(37)

FEC packets are marked as

FEC packets are marked as

dynamic packet type

dynamic packet type

in RTP header.

in RTP header.

A popular algorithm to generate redundant data is

A popular algorithm to generate redundant data is

Reed Solomon Erasure

Reed Solomon Erasure

Correcting code

Correcting code

(RSE code).

(RSE code).

In determining the FEC parameters

In determining the FEC parameters

n

n

and

and

, the following must be taken into

, the following must be taken into

account:

account:

!

!

Additional FEC packets increase the overhead, i.e. the required network 

Additional FEC packets increase the overhead, i.e. the required network 

 bandwid

 bandwid

th: sm

th: sm

all FEC block ca

all FEC block ca

use large

use large

overhead.

overhead.

!

!

Large FEC blocks cause delay in receiver (receiver needs to wait for all

Large FEC blocks cause delay in receiver (receiver needs to wait for all

 packets i

 packets i

n FEC bloc

n FEC bloc

k in ord

k in ord

er to be abl

er to be abl

e to do t

e to do t

he packet rec

he packet rec

overy)

overy)

This can be extended to several parity packets. The parity packets here can help to

This can be extended to several parity packets. The parity packets here can help to

recover the loss of any

recover the loss of any

n-k 

n-k 

out of

out of

n

n

 packets

 packets

22

11

33

. . . . .

. . . . .

 p

 p

11

FEC RTP packets

FEC RTP packets

Data RTP packets

Data RTP packets

 p

 p

22

. . .

. . .

 p

 p

n-k n-k 

(38)

Using Redundant A/V Streams

Using Redundant A/V Streams

11

Scalable

Scalable

A/V

A/V

encoder 

encoder 

11

22

33

44

55

22

33

44

55 A scalable encoder generates two redundant streams: the

A scalable encoder generates two redundant streams: the enhanced-levelenhanced-level and theand the base-level base-level

compressed bit streams. Enhanced-level stream has smaller compression ra

compressed bit streams. Enhanced-level stream has smaller compression rate, higher qualityte, higher quality and longer streams, while base-level streams

and longer streams, while base-level streams have higher compression rate, lover quality andhave higher compression rate, lover quality and smaller streams (example: PCM coded audio at 64 kbps and GSM encoded audio at 13

smaller streams (example: PCM coded audio at 64 kbps and GSM encoded audio at 13 kbps). kbps).

11

11

22

22

33

33

44

44

55

Lost packet

Lost packet

11

22

33

44

55

recovered packet

recovered packet

Stream with

Stream with

The streams are then combined for transmission in a single bit stream.

The streams are then combined for transmission in a single bit stream.

Recovering from Packet Loss (cont.)

Recovering from Packet Loss (cont.)

FEC (cont.)

(39)

The FEC-based methods for data recovery increase the required bandwidth and

The FEC-based methods for data recovery increase the required bandwidth and

latency. An alternative method which doesn’t increase the bandwidth is

latency. An alternative method which doesn’t increase the bandwidth is

interleaving

interleaving. The method is shown on Internet phone application.

. The method is shown on Internet phone application.

1

1

5

5

9

9

1

1

3

3

2

2

6

6

1

1

0

0

1

1

4

4

3

3

7

7

1

1

1

1

1

1

5

5

4

4

8

8

1

1

2

2

1

1

6

6

Original RTP packets (each containing 20 ms of voice samples):

Original RTP packets (each containing 20 ms of voice samples):

1

1

2

2

3

3

4

4

5

5

6

6

7

7

8

8

9

9

1

1

0

0

1

1

1

1

1

1

2

2

1

1

3

3

1

1

4

4

1

1

5

5

1

1

6

6

20 ms

20 ms

5 ms voice units

5 ms voice units

The transmission stream is generated by rearranging the voice units within

The transmission stream is generated by rearranging the voice units within

RTP packets:

RTP packets:

Block of interleaved packets

Block of interleaved packets

(40)

Interleaving (cont.)

Interleaving (cont.)

The FEC-based methods for data recovery increase the required bandwidth and

The FEC-based methods for data recovery increase the required bandwidth and

latency. An alternative method which doesn’t increase the bandwidth is

latency. An alternative method which doesn’t increase the bandwidth is

interleaving

interleaving.

.

The method is shown on Internet phone application.

The method is shown on Internet phone application.

1

1

5

5

9

9

1

1

3

3

2

2

6

6

1

1

0

0

1

1

4

4

3

3

7

7

1

1

1

1

1

1

5

5

4

4

8

8

1

1

2 1

2 1

6

6

Packets received by the receiver:

Packets received by the receiver:

Lost packet

Lost packet

1

1

2

2

3

3

4

4

5

5

6

6

7

7

8

8

9

9

1

1

0

0

1

1

1

1

1

1

2

2

1

1

3

3

1

1

4

4

1

1

5

5

1

1

6

6

Reconstructed RTP payloads after resequencing:

Reconstructed RTP payloads after resequencing:

Lost packet causes small (5 ms) gaps in the restored audio stream. These gaps

Lost packet causes small (5 ms) gaps in the restored audio stream. These gaps

can’t be not

can’t be not

iced. A loss of se

iced. A loss of se

veral packe

veral packe

ts will cause larg

ts will cause larg

er or

er or

more frequen

more frequen

t

t

gaps, which decreases the reception quality gracefully.

gaps, which decreases the reception quality gracefully.

This method doesn’t increase bandwidth, but increases delays, which are

This method doesn’t increase bandwidth, but increases delays, which are

 proport

 proport

ional to t

ional to t

he length

he length

of interle

of interle

aving bl

aving bl

ocks. This l

ocks. This l

imits the u

imits the u

se in int

se in int

eractive

eractive

applications like Internet phone. Good for

applications like Internet phone. Good for

streaming stored audio

streaming stored audio

Missing units

Missing units

Recovering from Packet Loss (cont.)

Recovering from Packet Loss (cont.)

(41)

This method doesn’t increase bandwidth requirements nor delays. Works with

This method doesn’t increase bandwidth requirements nor delays. Works with

smaller packets. Based under the assumption that there is a small difference between

smaller packets. Based under the assumption that there is a small difference between

two neighboring packets, which is specially true in case of voice.

two neighboring packets, which is specially true in case of voice.

1

2

3

4

5

1

2

3

4

5

Lost packet

Lost packet

1

2

2

4

5

1

2

2

4

5

1

1

2

2

3

3

4

4

5

5

Interpolation

Interpolation

Packet recovered by repetition

Packet recovered by repetition

Packet recovered by interpolation

Packet recovered by interpolation

(more computationally expensive,

(more computationally expensive,

4-40 ms

4-40 ms

(42)

Session Initiation Protocol (SIP)

Session Initiation Protocol (SIP)

RFC 3261, June 2002 RFC 3261, June 2002

SIP is used to set up, modify and ter

SIP is used to set up, modify and terminate an RTP-based multimedia session (like IPminate an RTP-based multimedia session (like IP telephone conversation or videoconferencing).

telephone conversation or videoconferencing). There are several issues related to this:

There are several issues related to this:

!

! How to determine the current IP How to determine the current IP address of the callee? He/she may have address of the callee? He/she may have severalseveral

devices like Internet phone on PC (one at

devices like Internet phone on PC (one at home, one at office), PDA, realhome, one at office), PDA, real  phone/cell phone.

 phone/cell phone.

!

! The person can have dynamic IP address (DHCP), or The person can have dynamic IP address (DHCP), or the person is not currentlythe person is not currently

available (not signed in), or doesn’t want

available (not signed in), or doesn’t want to answer at this moment.to answer at this moment.

!

! How can we route the cHow can we route the call if we even do not know where the person is all if we even do not know where the person is at theat the

moment. How can we be notified once the person is

moment. How can we be notified once the person is located, or the person islocated, or the person is available.

available.

!

! Once the connection is established, how can we define the Once the connection is established, how can we define the encoding type for theencoding type for the

audio/video stream, or change the

audio/video stream, or change the encoding type during the session,encoding type during the session,

!

! How can we invite new particHow can we invite new participanipants during the calts during the call, perform calll, perform call transfetransfer and callr and call

holding. holding. All these isues

All these isues are addresare addressed in SIP. An alternatsed in SIP. An alternative protoive protocol to SIP iscol to SIP is H.323H.323, which is more, which is more complex and more difficult to implement/configure. SIP is a simple protocol well suited f complex and more difficult to implement/configure. SIP is a simple protocol well suited foror Internet.

(43)

A A   p   p   p   pl   l    i    i     c   c   a  a  t    t  i   i     o  onn  d   d   a  a  e   e mm  o  onn k  k   e   e  n n  e   e l   l    MGCP MGCP /Megaco /Megaco

T

T

C

C

P

P

U

U

D

D

P

P

IPv4, IPv6

IPv4, IPv6

H H..332233 SSDDPP SIP SIP R RTTSSPP RRSSVVPP RRTTCCPP RTP RTP H.261, H.261, MPEG MPEG P PPPPP AAAALL33//44 AAAALL55 PPPPPP S Soonneett AATTMM EEtthheerrnneett VV..3344

Signaling 

Signaling 

Quality of Service

Quality of Service

Reservation

Reservation MeasurementMeasurement

transport 

transport 

SDP

(44)

SIP is used to transfer calls, terminate calls, and change call SIP is used to transfer calls, terminate calls, and change call  parameters in mid-session (such as adding a 3

 parameters in mid-session (such as adding a 3-way-way conference). conference). Session Session management management

SIP tells the end point that its phone should be “ringing;” SIP tells the end point that its phone should be “ringing;” SIP is used to agree on session attributes used

SIP is used to agree on session attributes used by theby the calling and called party.

calling and called party. Session setup

Session setup

SIP is used by end points to negotiate media capabilities, SIP is used by end points to negotiate media capabilities, such as agreeing on a mutually supported voice codec. such as agreeing on a mutually supported voice codec. User capabilities

User capabilities

SIP is used by end points to determine whether they will SIP is used by end points to determine whether they will “an

“answswer”er” a ca callall.. User availability

User availability

End points (telephones) notify SIP proxies of their location; End points (telephones) notify SIP proxies of their location; SIP determines which end points will participate

SIP determines which end points will participate in a call.in a call. User location and

User location and registration registration  Description  Description  Function  Function

SIP (cont.)

SIP (cont.)

 Basic functions supported by SIP

 Basic functions supported by SIP

:

:

(45)

Call transfer request Call transfer request

REFER

REFER

Event notification after an explicit/implicit subscription Event notification after an explicit/implicit subscription

NOTIFY

NOTIFY

Request notification of call events Request notification of call events

SUBSCRIBE

SUBSCRIBE

Used for mid-session signaling Used for mid-session signaling

INFO

INFO

Registers a user's current location Registers a user's current location

REGISTER

REGISTER

Solicits information about a server's capabilities Solicits information about a server's capabilities

OPTIONS

OPTIONS

Terminates a request, or ongoing transmission Terminates a request, or ongoing transmission

CANCEL

CANCEL

Terminates a connection between users or

Terminates a connection between users or declines a calldeclines a call

BYE

BYE

Used to facilitate reliable message exchange for INVITEs Used to facilitate reliable message exchange for INVITEs

ACK

ACK

Invites a user to a call Invites a user to a call

INVITE INVITE  Description  Description SIP Method  SIP Method 

SIP Commands (Methods)

SIP Commands (Methods)

methods) and responses. They are summarized as follows: methods) and responses. They are summarized as follows:

(46)

Global

Global Failure Failure (e.g. (e.g. 603 -603 - DeclinDecline)e)

6xx

6xx

Server Fa

Server Failure (ilure (e.g. 5e.g. 501 -01 - Not ImpNot Implemenlemented)ted)

5xx

5xx

Req

Requesuest Failt Failure (eure (e.g. 40.g. 404 -4 - Not foNot foundund, 480 -, 480 - TemTemporporariarilyly unavai

unavailable, lable, 486 486 –– Busy Busy there)there)

4xx

4xx

Redire

Redirection (ction (e.g. 30e.g. 302 -2 - MoveMoved tempod temporarily)rarily)

3xx

3xx

Suc

Successcessful ful (e.(e.g. g. 200 200 -- OK, OK, 202 202 -- AcceAcceptepted)d)

2xx

2xx

Info

Informarmatiotional (nal (e.ge.g. 100 . 100 -- TryTryinging, 180 -, 180 - RinRinginging)g)

1xx 1xx  Description  Description Code Code

SIP Responses

SIP Responses

SIP (cont.)

SIP (cont.)

(47)

BYE

BYE

5

5

Media session over RTP

Media session over RTP

4 4 200 OK 200 OK 6 6 200 OK 200 OK C=IN IP4 1.2.3.4 C=IN IP4 1.2.3.4 M=audio 48753 RTP/AVP 3 M=audio 48753 RTP/AVP 3 2 2 ACK ACK 3 3 INVITE sip:[email protected] INVITE sip:[email protected] C=IN IP4 12.26.17.91 C=IN IP4 12.26.17.91 m= audio 38060 RTP/AVP 0 m= audio 38060 RTP/AVP 0 1 1

RTP

RTP

(12.26.17.91) (12.26.17.91) User  User  client client Alice Alice User  User  server  server  Bob Bob (1.2.3.4) (1.2.3.4) 1 1 2 2 3 3 4 4 SIP response/request SIP response/request

(over well known TCP or

(over well known TCP or

UDP port 5060)

UDP port 5060)

Media session over RTP

Media session over RTP

and UDP, port 48753

and UDP, port 48753

Encoding: GSM (AVP 3)

Encoding: GSM (AVP 3)

Media session over RTP

Media session over RTP

and UDP, port 38060

and UDP, port 38060

Encoding:

Encoding: µµ Law audio (AVP 0)Law audio (AVP 0)

12.26.17.91 12.26.17.91 1.2.3.41.2.3.4 I IN N V V IITTEE Port 5060 Port 5060 Terminal rings Terminal rings Port Port 5060 5060 OO K K A ACCKK Port Port 48753 48753 Port Port 38060 38060 5 5 6 6  B

 B Y Y E E

A

References

Related documents

These Application Notes describe the steps for configuring Session Initiation Protocol (SIP) trunking between the Verizon Business VoIP Service and an Avaya SIP telephony solution

Free promo codes and game passes don’t work anymore so instead try some of the above methods to earn a nice amount of FREE ROBUX and make your gaming even..

Previous research of online gaming is briefly covered, along with literature that helps frame the virtual physical environment people experience when playing Runescape, and

Session Description Protocol (SDP) - Learn how SIP uses SDP to define technical parameters that support a.. voice over IP

O RFC 3824 Using E.164 numbers with the Session Initiation Protocol (SIP) O RFC 3891 The Session Initiation Protocol (SIP) &#34;Replaces&#34; Header O RFC 3892 The Session

Messages  sent  and   received   by  the  Session  Initiation  Protocol  are  in  plain   text 

VoIP and Multimedia Control Signaling Protocols over Packet-Switched Networks Commonly Used Protocols: H.323  Session Initiation Protocol SIP  Media Gateway Control Protocol

In designing demographic policies, cross-sectoral coordination and cooperation between social, family, health, employment, education and care services are strongly required,