draft-ietf-mmusic-media-loopback-02.txt | draft-ietf-mmusic-media-loopback-03.txt | |||
---|---|---|---|---|
K. Hedayat | K. Hedayat | |||
Internet Draft Brix Networks | Internet Draft Brix Networks | |||
Expires: May 11, 2006 P. Jones | Expires: December 2006 P. Jones | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
A. Roychowdhury | A. Roychowdhury | |||
Flextronics Software Systems | Hughes | |||
C. SivaChelvan | C. SivaChelvan | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
N. Stratton | N. Stratton | |||
BroadVoice | ||||
November 7, 2005 | ||||
An Extension to the Session Description Protocol (SDP) for Media | An Extension to the Session Description Protocol (SDP) for Media | |||
Loopback | Loopback | |||
draft-ietf-mmusic-media-loopback-02 | draft-ietf-mmusic-media-loopback-03 | |||
Status of this Memo | Status of this Memo | |||
By submitting this Internet-Draft, each author represents that any | By submitting this Internet-Draft, each author represents that any | |||
applicable patent or other IPR claims of which he or she is aware | applicable patent or other IPR claims of which he or she is aware | |||
have been or will be disclosed, and any of which he or she becomes | have been or will be disclosed, and any of which he or she becomes | |||
aware will be disclosed, in accordance with Section 6 of BCP 79. | aware will be disclosed, in accordance with Section 6 of BCP 79. | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF), its areas, and its working groups. Note that | Task Force (IETF), its areas, and its working groups. Note that | |||
skipping to change at page 1, line 44 | skipping to change at page 1, line 41 | |||
as reference material or to cite them other than as "work in | as reference material or to cite them other than as "work in | |||
progress." | progress." | |||
The list of current Internet-Drafts can be accessed at | The list of current Internet-Drafts can be accessed at | |||
http://www.ietf.org/ietf/1id-abstracts.txt | http://www.ietf.org/ietf/1id-abstracts.txt | |||
The list of Internet-Draft Shadow Directories can be accessed at | The list of Internet-Draft Shadow Directories can be accessed at | |||
http://www.ietf.org/shadow.html. | http://www.ietf.org/shadow.html. | |||
Copyright Notice | Copyright Notice | |||
Copyright (C) The Internet Society (2005). | Copyright (C) The Internet Society (2006). | |||
Abstract | Abstract | |||
The wide deployment of VoIP and Video over IP services has | The wide deployment of Voice over IP (VoIP), Real-time Text and | |||
introduced new challenges in managing and maintaining voice/video | Video over IP services has introduced new challenges in managing | |||
quality, reliability, and overall performance. In particular, | and maintaining voice/real-time Text/video quality, reliability, | |||
media delivery is an area that needs attention. One method of | and overall performance. In particular, media delivery is an area | |||
meeting these challenges is monitoring the media delivery | that needs attention. One method of meeting these challenges is | |||
performance by looping media back to the transmitter. This is | monitoring the media delivery performance by looping media back to | |||
typically referred to as "active monitoring" of services. Media | the transmitter. This is typically referred to as "active | |||
loopback is especially popular in ensuring the quality of transport | monitoring" of services. Media loopback is especially popular in | |||
to the edge of a given VoIP or Video over IP service. Today in | ensuring the quality of transport to the edge of a given VoIP, | |||
networks that deliver real-time media, short of running 'ping' and | Real-time Text or Video over IP service. Today in networks that | |||
'traceroute' to the edge, service providers are left without the | deliver real-time media, short of running 'ping' and 'traceroute' | |||
necessary tools to actively monitor, manage, and diagnose quality | to the edge, service providers are left without the necessary tools | |||
issues with their service. The extension defined herein adds new | to actively monitor, manage, and diagnose quality issues with their | |||
SDP media attributes which enables establishment of media sessions | service. The extension defined herein adds new SDP media | |||
where the media is looped back to the transmitter. Such media | attributes which enables establishment of media sessions where the | |||
sessions will serve as monitoring and troubleshooting tools by | media is looped back to the transmitter. Such media sessions will | |||
providing the means for measurement of more advanced VoIP and Video | serve as monitoring and troubleshooting tools by providing the | |||
Over IP performance metrics. | means for measurement of more advanced VoIP, Real-time Text and | |||
Video Over IP performance metrics. | ||||
Table of Contents | Table of Contents | |||
1. Introduction..................................................3 | 1. Introduction..................................................3 | |||
2. Terminology...................................................3 | 2. Terminology...................................................3 | |||
3. Offering Entity Behavior......................................4 | 3. Offering Entity Behavior......................................4 | |||
4. Answering Entity Behavior.....................................4 | 4. Answering Entity Behavior.....................................4 | |||
5. SDP Constructs Syntax.........................................4 | 5. SDP Constructs Syntax.........................................4 | |||
5.1 Loopback Type Attribute...................................4 | 5.1 Loopback Type Attribute...................................4 | |||
5.2 Loopback Mode Attribute...................................6 | 5.2 Loopback Mode Attribute...................................6 | |||
skipping to change at page 2, line 49 | skipping to change at page 2, line 50 | |||
6. RTP Requirements..............................................8 | 6. RTP Requirements..............................................8 | |||
7. RTCP Requirements.............................................9 | 7. RTCP Requirements.............................................9 | |||
8. Examples......................................................9 | 8. Examples......................................................9 | |||
8.1 Offer for specific media loopback type....................9 | 8.1 Offer for specific media loopback type....................9 | |||
8.2 Offer for choice of media loopback type..................10 | 8.2 Offer for choice of media loopback type..................10 | |||
8.3 Offer for choice of media loopback type with | 8.3 Offer for choice of media loopback type with | |||
rtp-start-loopback...........................................11 | rtp-start-loopback...........................................11 | |||
8.4 Response to INVITE request rejecting loopback media......12 | 8.4 Response to INVITE request rejecting loopback media......12 | |||
8.5 Response to INVITE request rejecting loopback media with | 8.5 Response to INVITE request rejecting loopback media with | |||
rtp-start-loopback...........................................13 | rtp-start-loopback...........................................13 | |||
9. Security Considerations......................................13 | 9. Security Considerations......................................14 | |||
10. IANA Considerations.........................................14 | 10. IANA Considerations.........................................14 | |||
11. Acknowledgements............................................14 | 11. Acknowledgements............................................14 | |||
12. References..................................................14 | 12. References..................................................14 | |||
12.1 Normative References....................................14 | ||||
1. Introduction | 1. Introduction | |||
The overall quality, reliability, and performance of VoIP and Video | The overall quality, reliability, and performance of VoIP, | |||
over IP services relies on the performance and quality of the media | Real-time Text and Video over IP services rely on the performance | |||
path. In order to assure the quality of the delivered media there | and quality of the media path. In order to assure the quality of | |||
is a need to monitor the performance of the media transport. One | the delivered media there is a need to monitor the performance of | |||
method of monitoring and managing the overall quality of VoIP and | the media transport. One method of monitoring and managing the | |||
Video over IP Services is through monitoring the quality of the | overall quality of VoIP, Real-time Text and Video over IP Services | |||
media in an active session. This type of "active monitoring" of | is through monitoring the quality of the media in an active | |||
services is a method of pro-actively managing the performance and | session. This type of "active monitoring" of services is a method | |||
quality of VoIP based services. | of pro-actively managing the performance and quality of VoIP based | |||
services. | ||||
The goal of active monitoring is to measure the media quality of a | The goal of active monitoring is to measure the media quality of a | |||
VoIP or Video over IP session. A way to achieve this goal is to | VoIP, Real-time Text or Video over IP session. A way to achieve | |||
request an endpoint to loop media back to the other endpoint and to | this goal is to request an endpoint to loop media back to the other | |||
provide media statistics (e.g., RTCP and RTCP XR information). | endpoint and to provide media statistics (e.g., RTCP and RTCP XR | |||
Another method involves deployment of special endpoints that always | information). Another method involves deployment of special | |||
loop incoming media back for sessions. Although the latter method | endpoints that always loop incoming media back for sessions. | |||
has been used and is functional, it does not scale to support large | Although the latter method has been used and is functional, it does | |||
networks and introduces new network management challenges. | not scale to support large networks and introduces new network | |||
Further, it does not offer the granularity of testing a specific | management challenges. Further, it does not offer the granularity | |||
endpoint that may be exhibiting problems. | of testing a specific endpoint that may be exhibiting problems. | |||
The extension defined in this memo introduces new SDP media | The extension defined in this memo introduces new SDP media | |||
attributes that enable establishment of media sessions where the | attributes that enable establishment of media sessions where the | |||
media is looped back to the transmitter. The offer/answer model | media is looped back to the transmitter. The offer/answer model | |||
per RFC 3264 [RFC3264] is used to establish a loopback connection. | [RFC3264] is used to establish a loopback connection. Furthermore, | |||
Furthermore, this extension provides guidelines on handling RTP | this extension provides guidelines on handling RTP [RFC3550], as | |||
(RFC 3550) [RFC3550], as well as usage of RTCP (RFC 3550) [RFC3550] | well as usage of RTCP [RFC3550] and RTCP XR [RFC3611] for reporting | |||
and RTCP XR (RFC 3611) [RFC3611] for reporting media related | media related measurements. | |||
measurements. | ||||
2. Terminology | 2. Terminology | |||
In this document, the key words "MUST", "MUST NOT", "REQUIRED", | In this document, the key words "MUST", "MUST NOT", "REQUIRED", | |||
"SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", | "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", | |||
and "OPTIONAL" are to be interpreted as described in RFC 2119 | and "OPTIONAL" are to be interpreted as described in RFC 2119 | |||
[RFC3264] and indicate requirement levels for compliant | [RFC3264] and indicate requirement levels for compliant | |||
implementations. | implementations. | |||
3. Offering Entity Behavior | 3. Offering Entity Behavior | |||
skipping to change at page 4, line 25 | skipping to change at page 4, line 25 | |||
4. Answering Entity Behavior | 4. Answering Entity Behavior | |||
An answering entity compliant to this specification and receiving | An answering entity compliant to this specification and receiving | |||
an offer containing media descriptions with the "loopback" media | an offer containing media descriptions with the "loopback" media | |||
attributes, MUST acknowledge the request by including the received | attributes, MUST acknowledge the request by including the received | |||
"loopback" media attributes for each media description in its | "loopback" media attributes for each media description in its | |||
response. The server MAY reject the "loopback" request for | response. The server MAY reject the "loopback" request for | |||
specific media types as defined in section 5.4.1 of this | specific media types as defined in section 5.4.1 of this | |||
specification. | specification. | |||
An answering entity that is not compliant to this specification | An answering entity that is not compliant to this specification and | |||
and which receives an offer with the "loopback" media attributes | which receives an offer with the "loopback" media attributes MAY | |||
MAY safely ignore the attribute and treat the incoming offer as a | ignore the attribute and treat the incoming offer as a normal | |||
normal request. | request. | |||
5. SDP Constructs Syntax | 5. SDP Constructs Syntax | |||
Two new media attributes are defined: one indicates the type of | Two new media attributes are defined: one indicates the type of | |||
loopback and one indicates the mode of the loopback. | loopback and one indicates the mode of the loopback. | |||
5.1 Loopback Type Attribute | 5.1 Loopback Type Attribute | |||
The loopback type is a property media attribute with the following | The loopback type is a property media attribute with the following | |||
syntax: | syntax: | |||
a=loopback:<loopback-type> | a=loopback:<loopback-type> | |||
Following is the Augmented BNF (RFC 2234) [RFC2234] for | Following is the Augmented BNF [RFC2234] for loopback-type: | |||
loopback-type: | ||||
loopback-type = loopback-type-choice [ space loopback-type-choice ] | loopback-type = 1*2(loopback-type-choice) [ space "rtp-start- | |||
loopback-type-choice = "rtp-pkt-loopback" | "rtp-media-loopback | | loopback" ] | |||
rtp-start-loopback" | loopback-type-choice = "rtp-pkt-loopback" | "rtp-media-loopback” | | |||
“rtp-start-loopback" | ||||
The loopback type is used to indicate the type of loopback. The | The loopback type is used to indicate the type of loopback. The | |||
loopback-type values are rtp-pkt-loopback, rtp-media-loopback, and | loopback-type values are rtp-pkt-loopback, rtp-media-loopback, and | |||
rtp-start-loopback. | rtp-start-loopback. | |||
rtp-pkt-loopback: In this mode, the RTP packets are looped back to | rtp-pkt-loopback: In this mode, the RTP packets are looped back to | |||
the sender at a point before the encoder/decoder function in the | the sender at a point before the encoder/decoder function in the | |||
receive direction to a point after the encoder/decoder function in | receive direction to a point after the encoder/decoder function in | |||
the send direction. This effectively re-encapsulates the RTP | the send direction. This effectively re-encapsulates the RTP | |||
payload with the RTP/UDP/IP overheads appropriate for sending it in | payload with the RTP/UDP/IP overheads appropriate for sending it in | |||
skipping to change at page 5, line 39 | skipping to change at page 5, line 39 | |||
path of the media. RTP relays exist in VoIP networks for purpose | path of the media. RTP relays exist in VoIP networks for purpose | |||
of NAT and Firewall traversal. If an RTP relay is present the | of NAT and Firewall traversal. If an RTP relay is present the | |||
offering entity’s packets are dropped by the RTP relay until the | offering entity’s packets are dropped by the RTP relay until the | |||
answering entity has started transmitting media and the media state | answering entity has started transmitting media and the media state | |||
within the RTP relay is established. This loopback attribute is | within the RTP relay is established. This loopback attribute is | |||
used to specify the media type for transmitting media packets by | used to specify the media type for transmitting media packets by | |||
the answering entity prior to the loopback process for the purpose | the answering entity prior to the loopback process for the purpose | |||
of setting media state within the network. In the presence of this | of setting media state within the network. In the presence of this | |||
loopback attribute the answering entity will transmit media, | loopback attribute the answering entity will transmit media, | |||
according to the description that contains this attribute, until it | according to the description that contains this attribute, until it | |||
receives media from the offering entity. After the first media | receives media from the offering entity. The answering entity MAY | |||
packet is received from the offering entity, the answering entity | include this attribute in the answer if it is not present in the | |||
MUST terminate the transmission of rtp-start-loopback media and | offer. This may be necessary if the answering entity is aware of | |||
MUST start looping back media as defined by the other loopback | NAT’s, firewalls, or RTP relays on the path of the call. In this | |||
case the offering entity MUST accept media according to | ||||
rtp-start-loopback attribute. After the first media packet is | ||||
received from the offering entity, the answering entity MUST | ||||
terminate the transmission of rtp-start-loopback media and MUST | ||||
start looping back media as defined by the other loopback | ||||
attributes present in the offer. If an offer includes the | attributes present in the offer. If an offer includes the | |||
rtp-start-loopback attribute it MUST also include at least one | rtp-start-loopback attribute it MUST also include at least one | |||
other attribute as defined in this section. The offering entity is | other attribute as defined in this section. The offering entity is | |||
able to filter rtp-start-loopback packets from other types of | able to filter rtp-start-loopback packets from other types of | |||
loopback with the payload type of the packet. The media port number | loopback with the payload type of the packet. The media port number | |||
for rtp-start-loopback MUST be the same as the corresponding | for rtp-start-loopback MUST be the same as the corresponding | |||
loopback attribute that will take over after the reception of first | loopback attribute that will take over after the reception of first | |||
media packet from the offering entity. | media packet from the offering entity. | |||
It is recommended that an offering entity specifying media with | It is recommended that an offering entity specifying media with | |||
skipping to change at page 6, line 27 | skipping to change at page 6, line 30 | |||
a=<loopback-mode> | a=<loopback-mode> | |||
The loopback-mode values are loopback-source and loopback-mirror. | The loopback-mode values are loopback-source and loopback-mirror. | |||
loopback-source: This attribute specifies that the sender is the | loopback-source: This attribute specifies that the sender is the | |||
media source and expects the receiver to act as a loopback-mirror. | media source and expects the receiver to act as a loopback-mirror. | |||
loopback-mirror: This attribute specifies that the receiver will | loopback-mirror: This attribute specifies that the receiver will | |||
mirror (echo) all received media back to the sender of the RTP | mirror (echo) all received media back to the sender of the RTP | |||
stream. No media is generated locally by the reciver for | stream. No media is generated locally by the receiver for | |||
transmission in the mirrored stream. | transmission in the mirrored stream unless rtp-start-loopback is | |||
requested | ||||
The loopback mode attribute does not apply to rtp-start-loopback | The loopback mode attribute does not apply to rtp-start-loopback | |||
attribute and MUST be ignored if received by the answering entityt. | attribute and MUST be ignored if received by the answering entity. | |||
5.3 Generating the Offer for Loopback Session | 5.3 Generating the Offer for Loopback Session | |||
If an offerer wishes to make a loopback request, it MUST include | If an offerer wishes to make a loopback request, it MUST include | |||
both the loopback-type and loopback-mode attribute in a valid SDP | both the loopback-type and loopback-mode attribute in a valid SDP | |||
offer: | offer: | |||
Example: a=loopback:rtp-media-loopback | Example: a=loopback:rtp-media-loopback | |||
a=loopback-source | a=loopback-source | |||
Note: A loopback offer in a given media description MUST NOT | Note: A loopback offer in a given media description MUST NOT | |||
contain the standard mode attributes sendonly, recvonly, sendrecv | contain the standard mode attributes sendonly, recvonly, sendrecv | |||
or inactive. | or inactive. | |||
The offerer may offer more than one loopback-type in the SDP offer. | The offerer may offer more than one loopback-type in the SDP offer. | |||
In this case the answer MUST include only one of the loopback types | In this case the answer MUST include only one of the loopback types | |||
that is accepted by the answerer. The answerer SHOULD give | that are accepted by the answerer. The answerer SHOULD give | |||
preference to the first loopback-type in the SDP offer. | preference to the first loopback-type in the SDP offer. | |||
For loopback-source media (e.g. audio) streams, the port number and | For loopback-source media (e.g. audio) streams, the port number and | |||
the address in the offer indicates where the offerer would like to | the address in the offer indicate where the offerer would like to | |||
receive the media stream. The payload type numbers indicate the | receive the media stream. The payload type numbers indicate the | |||
value of the payload the offerer expects to receive, and would | value of the payload the offerer expects to receive, and would | |||
prefer to send. However, the answer might indicate a different | prefer to send. However, the answer might indicate a different | |||
payload type number for the same codec. In that case, the offerer | payload type number for the same codec. In that case, the offerer | |||
MUST send the payload type received in the answer. | MUST send the payload type received in the answer. | |||
Note: NAT devices may change the actual port number that is used | ||||
for transmission and the expected receive port. | ||||
5.4 Generating the Answer for Loopback Session | 5.4 Generating the Answer for Loopback Session | |||
If an answerer wishes to accept the loopback request it MUST | If an answerer wishes to accept the loopback request it MUST | |||
include both the loopback mode and loopback type attribute in the | include both the loopback mode and loopback type attribute in the | |||
answer. If a stream is offered with loopback-source or | answer. If a stream is offered with loopback-source or | |||
loopback-mirror attributes, the corresponding stream MUST be | loopback-mirror attributes, the corresponding stream MUST be | |||
loopback-mirror or loopback-source respectively, provided that | loopback-mirror or loopback-source respectively, provided that | |||
answerer is capable of supporting the requested loopback-type. | answerer is capable of supporting the requested loopback-type. | |||
For example, if the offer contains: | For example, if the offer contains: | |||
skipping to change at page 8, line 34 | skipping to change at page 8, line 40 | |||
5.6 Modifying the Session | 5.6 Modifying the Session | |||
At any point during the loopback session, either participant may | At any point during the loopback session, either participant may | |||
issue a new offer to modify the characteristics of the previous | issue a new offer to modify the characteristics of the previous | |||
session. In case of SIP this is defined in section 8 of RFC 3264 | session. In case of SIP this is defined in section 8 of RFC 3264 | |||
[RFC3264]. This also includes transitioning from a normal media | [RFC3264]. This also includes transitioning from a normal media | |||
processing mode to loopback mode, and vice a versa. | processing mode to loopback mode, and vice a versa. | |||
6. RTP Requirements | 6. RTP Requirements | |||
An answering entitity that is compliant to this specification and | An answering entity that is compliant to this specification and | |||
accepting a media with rtp-pkt-loopback loopback-type MUST | accepting a media with rtp-pkt-loopback loopback-type MUST loopback | |||
re-generate all of the RTP header fields as it does when | the incoming RTP packets while re-generating only the SSRC field of | |||
transmitting other media. However, the answering entity MUST | the RTP header. Note that during the rtp-pkt-loopback mode the | |||
maintain the timing information of the received RTP packets when | answering entity does not have control over the encoding of the | |||
generating the RTP timestamp for the transmit packets. Maintaining | media and cannot perform certain functions including congestion | |||
the timing information of the RTP packets enables the offerer to | control on the looped back media. However, since the purpose of the | |||
re-construct the incoming media and take account for impairments | loopback is to characterize the round-trip path at the RTP level, | |||
from gaps in the media due to packet loss. Note that RTP Sequence | this limitation is acceptable. | |||
numbers are re-generated by the answering entity and will not | ||||
provide packet loss information to the receiver of the loopback | ||||
media. | ||||
An answering entity that is compliant to this specification and | An answering entity that is compliant to this specification and | |||
accepting a media with rtp-media-loopback loopback-type MUST | accepting a media with rtp-media-loopback loopback-type MUST | |||
transmit all received media back to the sender . The incoming media | transmit all received media back to the sender . The incoming media | |||
MUST be treated as if it were to be played (e.g. the media stream | MUST be treated as if it were to be played (e.g. the media stream | |||
MAY receive treatment from PLC algorithms). The answering entity | MAY receive treatment from PLC algorithms). The answering entity | |||
MUST re-generate all the RTP header fields as it would when | MUST re-generate all the RTP header fields as it would when | |||
transmitting media. The answering entity MAY choose to encode the | transmitting media. The answering entity MAY choose to encode the | |||
loopback media according to any of the media descriptions supported | loopback media according to any of the media descriptions supported | |||
by the offering entity. Furthermore, in cases where the same media | by the offering entity. Furthermore, in cases where the same media | |||
skipping to change at page 9, line 41 | skipping to change at page 10, line 4 | |||
3611 [RFC3611]. | 3611 [RFC3611]. | |||
8. Examples | 8. Examples | |||
This section provides examples for media descriptions using SDP for | This section provides examples for media descriptions using SDP for | |||
different scenarios. The examples are given for SIP-based | different scenarios. The examples are given for SIP-based | |||
transactions and are abbreviated and do not show the complete | transactions and are abbreviated and do not show the complete | |||
signaling for convenience. | signaling for convenience. | |||
8.1 Offer for specific media loopback type | 8.1 Offer for specific media loopback type | |||
A client sends an INVITE request with SDP which looks like: | A client sends an INVITE request with SDP which looks like: | |||
v=0 | v=0 | |||
o=user1 2890844526 2890842807 IN IP4 126.16.64.4 | o=user1 2890844526 2890842807 IN IP4 126.16.64.4 | |||
s=Example | s=Example | |||
i=An example session | i=An example session | |||
e=user@example.com | e=user@example.com | |||
c=IN IP4 224.2.17.12/127 | c=IN IP4 192.168.0.12/127 | |||
t=0 0 | t=0 0 | |||
m=audio 49170 RTP/AVP 0 | m=audio 49170 RTP/AVP 0 | |||
a=loopback:rtp-media-loopback | a=loopback:rtp-media-loopback | |||
a=loopback-source | a=loopback-source | |||
The client is offering to source the media and expects the server | The client is offering to source the media and expects the server | |||
to mirror the RTP stream per rtp-media-loopback loopback type. | to mirror the RTP stream per rtp-media-loopback loopback type. | |||
A server sends a response with SDP which looks like: | A server sends a response with SDP which looks like: | |||
v=0 | v=0 | |||
o=user1 2890844526 2890842807 IN IP4 126.16.64.4 | o=user1 2890844526 2890842807 IN IP4 126.16.64.4 | |||
s=Example | s=Example | |||
i=An example session | i=An example session | |||
e=user@example.com | e=user@example.com | |||
c=IN IP4 224.2.17.12/127 | c=IN IP4 192.168.0.12/127 | |||
t=0 0 | t=0 0 | |||
m=audio 49170 RTP/AVP 0 | m=audio 49170 RTP/AVP 0 | |||
a=loopback:rtp-media-loopback | a=loopback:rtp-media-loopback | |||
a=loopback-mirror | a=loopback-mirror | |||
The server is accepting to mirror the media from the client at the | The server is accepting to mirror the media from the client at the | |||
media level. | media level. | |||
8.2 Offer for choice of media loopback type | 8.2 Offer for choice of media loopback type | |||
A client sends an INVITE request with SDP which looks like: | A client sends an INVITE request with SDP which looks like: | |||
v=0 | v=0 | |||
o=user1 2890844526 2890842807 IN IP4 126.16.64.4 | o=user1 2890844526 2890842807 IN IP4 126.16.64.4 | |||
s=Example | s=Example | |||
i=An example session | i=An example session | |||
e=user@example.com | e=user@example.com | |||
c=IN IP4 224.2.17.12/127 | c=IN IP4 192.168.0.12/127 | |||
t=0 0 | t=0 0 | |||
m=audio 49170 RTP/AVP 0 | m=audio 49170 RTP/AVP 0 | |||
a=loopback:rtp-media-loopback rtp-pkt-loopback | a=loopback:rtp-media-loopback rtp-pkt-loopback | |||
a=loopback-source | a=loopback-source | |||
The client is offering to source the media and expects the server | The client is offering to source the media and expects the server | |||
to mirror the RTP stream at either the media or rtp level. | to mirror the RTP stream at either the media or rtp level. | |||
A server sends a response with SDP which looks like: | A server sends a response with SDP which looks like: | |||
v=0 | v=0 | |||
o=user1 2890844526 2890842807 IN IP4 126.16.64.4 | o=user1 2890844526 2890842807 IN IP4 126.16.64.4 | |||
s=Example | s=Example | |||
i=An example session | i=An example session | |||
e=user@example.com | e=user@example.com | |||
skipping to change at page 11, line 10 | skipping to change at page 11, line 14 | |||
The client is offering to source the media and expects the server | The client is offering to source the media and expects the server | |||
to mirror the RTP stream at either the media or rtp level. | to mirror the RTP stream at either the media or rtp level. | |||
A server sends a response with SDP which looks like: | A server sends a response with SDP which looks like: | |||
v=0 | v=0 | |||
o=user1 2890844526 2890842807 IN IP4 126.16.64.4 | o=user1 2890844526 2890842807 IN IP4 126.16.64.4 | |||
s=Example | s=Example | |||
i=An example session | i=An example session | |||
e=user@example.com | e=user@example.com | |||
c=IN IP4 224.2.17.12/127 | c=IN IP4 192.168.0.12/127 | |||
t=0 0 | t=0 0 | |||
m=audio 49170 RTP/AVP 0 | m=audio 49170 RTP/AVP 0 | |||
a=loopback:rtp-pkt-loopback | a=loopback:rtp-pkt-loopback | |||
a=loopback-mirror | a=loopback-mirror | |||
The server is accepting to mirror the media from the client at the | The server is accepting to mirror the media from the client at the | |||
packet level. | packet level. | |||
8.3 Offer for choice of media loopback type with rtp-start-loopback | 8.3 Offer for choice of media loopback type with rtp-start-loopback | |||
A client sends an INVITE request with SDP which looks like: | A client sends an INVITE request with SDP which looks like: | |||
v=0 | v=0 | |||
o=user1 2890844526 2890842807 IN IP4 126.16.64.4 | o=user1 2890844526 2890842807 IN IP4 126.16.64.4 | |||
s=Example | s=Example | |||
i=An example session | i=An example session | |||
e=user@example.com | e=user@example.com | |||
c=IN IP4 224.2.17.12/127 | c=IN IP4 192.168.0.12/127 | |||
t=0 0 | t=0 0 | |||
m=audio 49170 RTP/AVP 0 | m=audio 49170 RTP/AVP 0 | |||
a=loopback:rtp-media-loopback rtp-pkt-loopback | a=loopback:rtp-media-loopback rtp-pkt-loopback | |||
a=loopback-source | a=loopback-source | |||
m=audio 49170 RTP/AVP 100 | m=audio 49170 RTP/AVP 100 | |||
a=loopback:rtp-start-loopback | a=loopback:rtp-start-loopback | |||
The client is offering to source the media and expects the server | The client is offering to source the media and expects the server | |||
to mirror the RTP stream at either the media or rtp level. The | to mirror the RTP stream at either the media or rtp level. The | |||
client also expects the server to source media until it receives | client also expects the server to source media until it receives | |||
packets from the server per media described with the | packets from the server per media described with the | |||
rtp-start-loopback attribute. | rtp-start-loopback attribute. | |||
A server sends a response with SDP which looks like: | A server sends a response with SDP which looks like: | |||
v=0 | v=0 | |||
o=user1 2890844526 2890842807 IN IP4 126.16.64.4 | o=user1 2890844526 2890842807 IN IP4 126.16.64.4 | |||
s=Example | s=Example | |||
i=An example session | i=An example session | |||
e=user@example.com | e=user@example.com | |||
c=IN IP4 224.2.17.12/127 | c=IN IP4 192.168.0.12/127 | |||
t=0 0 | t=0 0 | |||
m=audio 49170 RTP/AVP 0 | m=audio 49170 RTP/AVP 0 | |||
a=loopback:rtp-pkt-loopback | a=loopback:rtp-pkt-loopback | |||
a=loopback-mirror | a=loopback-mirror | |||
m=audio 49170 RTP/AVP 100 | m=audio 49170 RTP/AVP 100 | |||
a=rtpmap:100 pcmu/8000 | a=rtpmap:100 pcmu/8000 | |||
a=loopback:rtp-start-loopback | a=loopback:rtp-start-loopback | |||
The server is accepting to mirror the media from the client at the | The server is accepting to mirror the media from the client at the | |||
packet level. The server is also accepting to source media until | packet level. The server is also accepting to source media until | |||
skipping to change at page 12, line 23 | skipping to change at page 12, line 28 | |||
8.4 Response to INVITE request rejecting loopback media | 8.4 Response to INVITE request rejecting loopback media | |||
A client sends an INVITE request with SDP which looks like: | A client sends an INVITE request with SDP which looks like: | |||
v=0 | v=0 | |||
o=user1 2890844526 2890842807 IN IP4 126.16.64.4 | o=user1 2890844526 2890842807 IN IP4 126.16.64.4 | |||
s=Example | s=Example | |||
i=An example session | i=An example session | |||
e=user@example.com | e=user@example.com | |||
c=IN IP4 224.2.17.12/127 | c=IN IP4 192.168.0.12/127 | |||
t=0 0 | t=0 0 | |||
m=audio 49170 RTP/AVP 0 | m=audio 49170 RTP/AVP 0 | |||
a=loopback:rtp-media-loopback | a=loopback:rtp-media-loopback | |||
a=loopback-source | a=loopback-source | |||
The client is offering to source the media and expects the server | The client is offering to source the media and expects the server | |||
to mirror the RTP stream at the media level. | to mirror the RTP stream at the media level. | |||
A server sends a response with SDP which looks like: | A server sends a response with SDP which looks like: | |||
v=0 | v=0 | |||
o=user1 2890844526 2890842807 IN IP4 126.16.64.4 | o=user1 2890844526 2890842807 IN IP4 126.16.64.4 | |||
s=Example | s=Example | |||
i=An example session | i=An example session | |||
e=user@example.com | e=user@example.com | |||
c=IN IP4 224.2.17.12/127 | c=IN IP4 192.168.0.12/127 | |||
t=0 0 | t=0 0 | |||
m=audio 0 RTP/AVP 0 | m=audio 0 RTP/AVP 0 | |||
a=loopback:rtp-media-loopback | a=loopback:rtp-media-loopback | |||
a=loopback-mirror | a=loopback-mirror | |||
NOTE: Loopback request may be rejected by either not including the | NOTE: Loopback request may be rejected by either not including the | |||
loopback mode attribute (for backward compatibility) or setting the | loopback mode attribute (for backward compatibility) or setting the | |||
media port number to zero, or both, in the response. | media port number to zero, or both, in the response. | |||
8.5 Response to INVITE request rejecting loopback media with | 8.5 Response to INVITE request rejecting loopback media with | |||
rtp-start-loopback | rtp-start-loopback | |||
A client sends an INVITE request with SDP which looks like: | A client sends an INVITE request with SDP which looks like: | |||
v=0 | v=0 | |||
skipping to change at page 13, line 15 | skipping to change at page 13, line 18 | |||
8.5 Response to INVITE request rejecting loopback media with | 8.5 Response to INVITE request rejecting loopback media with | |||
rtp-start-loopback | rtp-start-loopback | |||
A client sends an INVITE request with SDP which looks like: | A client sends an INVITE request with SDP which looks like: | |||
v=0 | v=0 | |||
o=user1 2890844526 2890842807 IN IP4 126.16.64.4 | o=user1 2890844526 2890842807 IN IP4 126.16.64.4 | |||
s=Example | s=Example | |||
i=An example session | i=An example session | |||
e=user@example.com | e=user@example.com | |||
c=IN IP4 224.2.17.12/127 | c=IN IP4 192.168.0.12/127 | |||
t=0 0 | t=0 0 | |||
m=audio 49170 RTP/AVP 0 | m=audio 49170 RTP/AVP 0 | |||
a=loopback:rtp-media-loopback | a=loopback:rtp-media-loopback | |||
a=loopback-source | a=loopback-source | |||
m=audio 49170 RTP/AVP 100 | m=audio 49170 RTP/AVP 100 | |||
a=loopback:rtp-start-loopback | a=loopback:rtp-start-loopback | |||
The client is offering to source the media and expects the server | The client is offering to source the media and expects the server | |||
to mirror the RTP stream at the media level. The client also | to mirror the RTP stream at the media level. The client also | |||
expects the server to source media until it receives packets from | expects the server to source media until it receives packets from | |||
the server per media described with the rtp-start-loopback | the server per media described with the rtp-start-loopback | |||
attribute. | attribute. | |||
A server sends a response with SDP which looks like: | A server sends a response with SDP which looks like: | |||
v=0 | v=0 | |||
o=user1 2890844526 2890842807 IN IP4 126.16.64.4 | o=user1 2890844526 2890842807 IN IP4 126.16.64.4 | |||
s=Example | s=Example | |||
i=An example session | i=An example session | |||
e=user@example.com | e=user@example.com | |||
c=IN IP4 224.2.17.12/127 | c=IN IP4 192.168.0.12/127 | |||
t=0 0 | t=0 0 | |||
m=audio 0 RTP/AVP 0 | m=audio 0 RTP/AVP 0 | |||
a=loopback:rtp-media-loopback | a=loopback:rtp-media-loopback | |||
a=loopback-mirror | a=loopback-mirror | |||
m=audio 0 RTP/AVP 0 | m=audio 0 RTP/AVP 0 | |||
a=loopback:rtp-start-loopback | a=loopback:rtp-start-loopback | |||
NOTE: Loopback request may be rejected by either not including the | NOTE: Loopback request may be rejected by either not including the | |||
loopback mode attribute(for backward compatibility) or setting the | loopback mode attribute(for backward compatibility) or setting the | |||
media port number to zero, or both, in the response. | media port number to zero, or both, in the response. | |||
skipping to change at page 14, line 4 | skipping to change at page 14, line 6 | |||
a=loopback:rtp-media-loopback | a=loopback:rtp-media-loopback | |||
a=loopback-mirror | a=loopback-mirror | |||
m=audio 0 RTP/AVP 0 | m=audio 0 RTP/AVP 0 | |||
a=loopback:rtp-start-loopback | a=loopback:rtp-start-loopback | |||
NOTE: Loopback request may be rejected by either not including the | NOTE: Loopback request may be rejected by either not including the | |||
loopback mode attribute(for backward compatibility) or setting the | loopback mode attribute(for backward compatibility) or setting the | |||
media port number to zero, or both, in the response. | media port number to zero, or both, in the response. | |||
9. Security Considerations | 9. Security Considerations | |||
The security considerations of [RFC3261] apply. Furthermore, given | The security considerations of [RFC3261] apply. Furthermore, given | |||
that media loopback may be automated without the end user's | that media loopback may be automated without the end user's | |||
knowledge, the server of the media loopback should be aware of | knowledge, the server of the media loopback should be aware of | |||
denial of service attacks. It is recommended that sessions with | denial of service attacks. It is recommended that sessions with | |||
media loopback are authenticated and the frequency of such sessions | media loopback are authenticated and the frequency of such sessions | |||
are limited by the server. | is limited by the server. | |||
10. IANA Considerations | 10. IANA Considerations | |||
There are no IANA considerations associated with this | There are no IANA considerations associated with this | |||
specification. | specification. | |||
11. Acknowledgements | 11. Acknowledgements | |||
The authors wish to thank Flemming Andreasen, Jeff Bernstein, Paul | The authors wish to thank Nagarjuna Venna, Flemming Andreasen, Jeff | |||
Kyzivat, and Dave Oran for their comments and suggestions. | Bernstein, Paul Kyzivat, and Dave Oran for their comments and | |||
suggestions. | ||||
12. References | 12. References | |||
12.1 Normative References | ||||
[RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., | [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., | |||
Johnston, A., Peterson, J., Sparks, R., Handley, M. | Johnston, A., Peterson, J., Sparks, R., Handley, M. | |||
and E. Schooler, "SIP: Session Initiation Protocol", | and E. Schooler, "SIP: Session Initiation Protocol", | |||
RFC 3261, STD 1, June 2002. | RFC 3261, STD 1, June 2002. | |||
[RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer | [RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer | |||
Model with the Session Description Protocol (SDP)", | Model with the Session Description Protocol (SDP)", | |||
RFC 3264, STD 1, June 2002. | RFC 3264, STD 1, June 2002. | |||
[RFC3550] Schulzrinne, H., Casner, S., Frederick, R. and V. | [RFC3550] Schulzrinne, H., Casner, S., Frederick, R. and V. | |||
skipping to change at page 15, line 31 | skipping to change at page 15, line 34 | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
7025 Kit Creek Rd. | 7025 Kit Creek Rd. | |||
Research Triangle Park, NC 27709 | Research Triangle Park, NC 27709 | |||
US | US | |||
Phone: +1 919 392 6948 | Phone: +1 919 392 6948 | |||
EMail: paulej@packetizer.com | EMail: paulej@packetizer.com | |||
URI: http://www.cisco.com/ | URI: http://www.cisco.com/ | |||
Arjun Roychowdhury | Arjun Roychowdhury | |||
Flextronics Software Systems | Hughes Systique Corp. | |||
11717 Exploration Lane | 15245 Shady Grove Rd, Ste 330 | |||
Germantown, MD 20876 | Rockville MD 20850 | |||
US | US | |||
Phone: +1 301 212 7860 | Phone: +1 301 527 1629 | |||
EMail: arjun.roy@flextronicssoftware.com | EMail: arjun@hsc.com | |||
URI: http://www.flextronicssoftware.com/ | URI: http://www. hsc.com/ | |||
Chelliah SivaChelvan | Chelliah SivaChelvan | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
2200 East President George Bush Turnpike | 2200 East President George Bush Turnpike | |||
Richardson, TX 75082 | Richardson, TX 75082 | |||
US | US | |||
Phone: +1 972 813 5224 | Phone: +1 972 813 5224 | |||
EMail: chelliah@cisco.com | EMail: chelliah@cisco.com | |||
URI: http://www.cisco.com/ | URI: http://www.cisco.com/ | |||
Nathan Stratton | Nathan Stratton | |||
BroadVoice | ||||
900 Chelmsford Street | 663 Salem St. | |||
Tower Three | Lynnfield, MA 01940 | |||
Lowell, MA 01851 | ||||
US | ||||
Phone: +1 410 908 7587 | Phone: +1 410 908 7587 | |||
EMail: nathan@robotics.net | EMail: nathan@robotics.net | |||
URI: http://www.broadvoice.com/ | URI: http://www.robotics.net/ | |||
IPR Disclosure Acknowledgement | IPR Disclosure Acknowledgement | |||
The IETF takes no position regarding the validity or scope of any | The IETF takes no position regarding the validity or scope of any | |||
Intellectual Property Rights or other rights that might be claimed | Intellectual Property Rights or other rights that might be claimed | |||
to pertain to the implementation or use of the technology described | to pertain to the implementation or use of the technology described | |||
in this document or the extent to which any license under such | in this document or the extent to which any license under such | |||
rights might or might not be available; nor does it represent that | rights might or might not be available; nor does it represent that | |||
it has made any independent effort to identify any such rights. | it has made any independent effort to identify any such rights. | |||
Information on the procedures with respect to rights in RFC | Information on the procedures with respect to rights in RFC | |||
skipping to change at page 17, line 11 | skipping to change at page 17, line 13 | |||
an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE | an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE | |||
REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND | REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND | |||
THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, | THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, | |||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT | |||
THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR | THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR | |||
ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A | ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A | |||
PARTICULAR PURPOSE. | PARTICULAR PURPOSE. | |||
Copyright Notice | Copyright Notice | |||
Copyright (C) The Internet Society (2005). | Copyright (C) The Internet Society (2006). | |||
This document is subject to the rights, licenses and restrictions | This document is subject to the rights, licenses and restrictions | |||
contained in BCP 78, and except as set forth therein, the authors | contained in BCP 78, and except as set forth therein, the authors | |||
retain all their rights. | retain all their rights. | |||
Acknowledgment | Acknowledgment | |||
Funding for the RFC Editor function is currently provided by the | Funding for the RFC Editor function is currently provided by the | |||
Internet Society. | Internet Society. | |||
End of changes. 44 change blocks. | ||||
112 lines changed or deleted | 109 lines changed or added | |||
This html diff was produced by rfcdiff 1.32. The latest version is available from http://www.levkowetz.com/ietf/tools/rfcdiff/ |