draft-ietf-mmusic-media-loopback-15.txt | draft-ietf-mmusic-media-loopback-16.txt | |||
---|---|---|---|---|
Internet Draft K. Hedayat | Internet Draft K. Hedayat | |||
Expires: September 11, 2011 EXFO | Expires: March 6, 2012 EXFO | |||
N. Venna | N. Venna | |||
Saperix | Saperix | |||
P. Jones | P. Jones | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
A. Roychowdhury | A. Roychowdhury | |||
Hughes Systique Corp. | Hughes Systique Corp. | |||
C. SivaChelvan | C. SivaChelvan | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
N. Stratton | N. Stratton | |||
BlinkMind, Inc. | BlinkMind, Inc. | |||
March 11, 2011 | September 6, 2011 | |||
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-15 | draft-ietf-mmusic-media-loopback-16 | |||
Status of this Memo | Status of this Memo | |||
This Internet-Draft is submitted to IETF in full conformance with | This Internet-Draft is submitted to IETF in full conformance with | |||
the provisions of BCP 78 and BCP 79. | the provisions of BCP 78 and 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 | |||
other groups may also distribute working documents as Internet- | other groups may also distribute working documents as Internet- | |||
Drafts. | Drafts. | |||
skipping to change at page 1, line 43 | skipping to change at page 1, line 43 | |||
documents at any time. It is inappropriate to use Internet-Drafts | documents at any time. It is inappropriate to use Internet-Drafts | |||
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. | |||
This Internet-Draft will expire on Septembre 11, 2011. | This Internet-Draft will expire on March 6, 2012. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2009 IETF Trust and the persons identified as the | Copyright (c) 2009 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
carefully, as they describe your rights and restrictions with | carefully, as they describe your rights and restrictions with | |||
respect to this document. Code Components extracted from this | respect to this document. Code Components extracted from this | |||
document must include Simplified BSD License text as described in | document must include Simplified BSD License text as described in | |||
skipping to change at page 2, line 49 | skipping to change at page 2, line 46 | |||
means for measurement of more advanced VoIP, Real-time Text and | means for measurement of more advanced VoIP, Real-time Text and | |||
Video over IP performance metrics. | Video over IP performance metrics. | |||
Table of Contents | Table of Contents | |||
1. Introduction .................................................. 3 | 1. Introduction .................................................. 3 | |||
1.1 Use Cases Supported ....................................... 4 | 1.1 Use Cases Supported ....................................... 4 | |||
2. Terminology ................................................... 6 | 2. Terminology ................................................... 6 | |||
3. Offering Entity Behavior ...................................... 6 | 3. Offering Entity Behavior ...................................... 6 | |||
4. Answering Entity Behavior ..................................... 6 | 4. Answering Entity Behavior ..................................... 6 | |||
5. SDP Constructs Syntax ......................................... 7 | 5. SDP Constructs Syntax ......................................... 6 | |||
5.1 Loopback Type Attribute ................................... 7 | 5.1 Loopback Type Attribute ................................... 6 | |||
5.2 Loopback Mode Attribute ................................... 7 | 5.2 Loopback Mode Attribute ................................... 7 | |||
5.3 Generating the Offer for Loopback Session ................. 8 | 5.3 Generating the Offer for Loopback Session | |||
5.4 Generating the Answer for Loopback Session ................ 9 | 5.4 Generating the Answer for Loopback Session ................ 9 | |||
5.5 Offerer Processing of the Answer ......................... 11 | 5.5 Offerer Processing of the Answer ......................... 11 | |||
5.6 Modifying the Session .................................... 12 | 5.6 Modifying the Session .................................... 11 | |||
5.7 Priming the loopback pump ................................ 12 | 5.7 Establishing Sessions Between Entities Behind NAT ........ 11 | |||
6. RTP Requirements ............................................. 13 | 6. RTP Requirements ............................................. 11 | |||
7. Payload formats for Packet loopback .......................... 13 | 7. Payload formats for Packet loopback .......................... 12 | |||
7.1 Encapsulated Payload format .............................. 14 | 7.1 Encapsulated Payload format .............................. 12 | |||
7.2 Direct loopback RTP payload format ....................... 16 | 7.2 Direct loopback RTP payload format ....................... 15 | |||
8. Payload format for Priming the Loopback Pump ................. 18 | 8. RTCP Requirements ............................................ 16 | |||
8.1 Usage of RTP Header fields ............................... 18 | 9. Congestion Control ........................................... 16 | |||
8.2 Usage of SDP ............................................. 18 | 10. Examples .................................................... 17 | |||
9. RTCP Requirements ............................................ 18 | 10.1 Offer for specific media loopback type .................. 17 | |||
10. Congestion Control .......................................... 19 | 10.2 Offer for choice of media loopback type ................. 17 | |||
11. Examples .................................................... 19 | 10.3 Response to INVITE request rejecting loopback media ..... 18 | |||
11.1 Offer for specific media loopback type .................. 19 | 11. Security Considerations ..................................... 19 | |||
11.2 Offer for choice of media loopback type ................. 20 | 12. Implementation Considerations ............................... 19 | |||
11.3 Offer for choice of media loopback type with loopback | 13. IANA Considerations ......................................... 20 | |||
primer ....................................................... 21 | 13.1 SDP Attributes .......................................... 20 | |||
11.4 Response to INVITE request rejecting loopback media ..... 22 | 13.2 MIME Types .............................................. 21 | |||
11.5 Response to INVITE request rejecting loopback media with | 14. Normative References ........................................ 30 | |||
loopback primer payload type ................................. 23 | ||||
12. Security Considerations ..................................... 23 | ||||
13. Implementation Considerations ............................... 24 | ||||
14. IANA Considerations ......................................... 24 | ||||
14.1 SDP Attributes .......................................... 24 | ||||
14.2 MIME Types .............................................. 25 | ||||
15. Additional Authors and Acknowledgements ..................... 39 | ||||
1. Introduction | 1. Introduction | |||
The overall quality, reliability, and performance of VoIP, | The overall quality, reliability, and performance of VoIP, | |||
Real-time Text and Video over IP services rely on the performance | Real-time Text and Video over IP services rely on the performance | |||
and quality of the media path. In order to assure the quality of | and quality of the media path. In order to assure the quality of | |||
the delivered media there is a need to monitor the performance of | the delivered media there is a need to monitor the performance of | |||
the media transport. One method of monitoring and managing the | the media transport. One method of monitoring and managing the | |||
overall quality of VoIP, Real-time Text and Video over IP Services | overall quality of VoIP, Real-time Text and Video over IP Services | |||
is through monitoring the quality of the media in an active | is through monitoring the quality of the media in an active | |||
session. This type of "active monitoring" of services is a method | session. This type of "active monitoring" of services is a method | |||
of proactively managing the performance and quality of VoIP based | of proactively managing the performance and quality of VoIP based | |||
services. | 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, Real-time Text or Video over IP session. A way to achieve | VoIP, Real-time Text or Video over IP session. A way to achieve | |||
this goal is to request an endpoint to loop media back to the other | ||||
endpoint and to provide media statistics (e.g., RTCP and RTCP XR | endpoint and to provide media statistics (e.g., RTCP and RTCP XR | |||
information). Another method involves deployment of special | information). Another method involves deployment of special | |||
endpoints that always loop incoming media back for sessions. | endpoints that always loop incoming media back for sessions. | |||
Although the latter method has been used and is functional, it does | Although the latter method has been used and is functional, it does | |||
not scale to support large networks and introduces new network | not scale to support large networks and introduces new network | |||
management challenges. Further, it does not offer the granularity | management challenges. Further, it does not offer the granularity | |||
of testing a specific 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 | |||
skipping to change at page 8, line 18 | skipping to change at page 7, line 49 | |||
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 entity that | loopback-source: This attribute specifies that the entity that | |||
generated the SDP is the media source and expects the receiver of | generated the SDP is the media source and expects the receiver of | |||
the SDP message to act as a loopback-mirror. | the SDP message to act as a loopback-mirror. | |||
loopback-mirror: This attribute specifies that the entity that | loopback-mirror: This attribute specifies that the entity that | |||
generated the SDP will mirror (echo) all received media back to the | generated the SDP will mirror (echo) all received media back to the | |||
sender of the RTP stream. No media is generated locally by the | sender of the RTP stream. No media is generated locally by the | |||
looping back entity for transmission in the mirrored stream unless | looping back entity for transmission in the mirrored stream. | |||
the loopback primer payload type (described in Section 8 of this | ||||
document) is requested by the loopback-source or included in the | ||||
response by loopback-mirror. | ||||
<fmt> is a media format description. The format description has the | <fmt> is a media format description. The format description has the | |||
semantics as defined in section 5.14 of RFC 4566[RFC4566]. When | semantics as defined in section 5.14 of RFC 4566[RFC4566]. When | |||
loopback-mode is specified as loopback-source, the media format | loopback-mode is specified as loopback-source, the media format | |||
corresponds to the RTP payload types the entity that generated the | corresponds to the RTP payload types the entity that generated the | |||
SDP is willing to send. When loopback-mode is specified as | SDP is willing to send. When loopback-mode is specified as | |||
loopback-mirror, the media format corresponds to the RTP payload | loopback-mirror, the media format corresponds to the RTP payload | |||
types the mirror is willing to receive. The "m=" line in the SDP | types the mirror is willing to receive. The "m=" line in the SDP | |||
MUST include all the payload types that will be used during the | MUST include all the payload types that will be used during the | |||
loopback session including those specified in the loopback-mode | loopback session including those specified in the loopback-mode | |||
skipping to change at page 12, line 17 | skipping to change at page 11, line 37 | |||
not supported by the target UA. | not supported by the target UA. | |||
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. | |||
5.7 Priming the loopback pump | 5.7 Establishing Sessions Between Entities Behind NAT | |||
ICE/STUN/TURN provide a general solution to establishing media | ICE/STUN/TURN provide a general solution to establishing media | |||
sessions between entities that are behind NATs. Loopback sessions | sessions between entities that are behind NATs. Loopback sessions | |||
that involve one or more end points behind NATs SHOULD use these | that involve one or more end points behind NATs SHOULD use these | |||
general solutions wherever possible. In scenarios where | general solutions wherever possible. | |||
ICE/STUN/TURN is not available and where the loopback-mirror is | ||||
behind a NAT and the loopback-source has a public IP address, the | ||||
following solution MAY be adapted. Note that this solution | ||||
addresses only a small subset of all possible use cases but | ||||
addresses the expected dominant use case for the loopback | ||||
application. | ||||
If only the loopback-mirror is behind a NAT, it is possible that | ||||
the media transmitted by the loopback-source is blocked by a | ||||
network element until the loopback-mirror starts transmitting | ||||
packets. One example of this scenario is the presence of an RTP | ||||
relay in the path of the media. RTP relays exist in VoIP networks | ||||
for purpose of NAT and Firewall traversal. If an RTP relay is | ||||
present, the loopback-source's packets are dropped by the RTP relay | ||||
until the loopback-mirror has started transmitting media and the | ||||
media state within the RTP relay is established. This results in a | ||||
chicken and egg scenario as the looback-mirror cannot transmit any | ||||
media until it receives the media packets from the loopback-source | ||||
but for the loopback-mirror to receive any packets it needs to send | ||||
one first. In order to resolve this dilemma, Section 8 introduces a | ||||
new media format whose sole purpose is to establish the media state | ||||
in the intermediate devices. In the presence of this media format, | ||||
the loopback-mirror will transmit media according to the payload | ||||
description until it receives media from the loopback-source. The | ||||
loopback-mirror MAY include this media format in the answer if it | ||||
is not present in the offer. This may be necessary if the | ||||
loopback-mirror is aware of NATs, firewalls, or RTP relays on the | ||||
path of the call. In this case the loopback-source MUST accept | ||||
media corresponding to this media format. After the first media | ||||
packet is received from the loopback-source, the loopback-mirror | ||||
MUST terminate the transmission of media for this payload type and | ||||
MUST start looping back media as defined by the other loopback | ||||
attributes present in the offer. | ||||
6. RTP Requirements | 6. RTP Requirements | |||
A loopback-mirror that is compliant to this specification and | A loopback-mirror that is compliant to this specification and | |||
accepting a media with rtp-pkt-loopback loopback-type MUST loopback | accepting a media with rtp-pkt-loopback loopback-type MUST loopback | |||
the incoming RTP packets using either the encapsulated RTP payload | the incoming RTP packets using either the encapsulated RTP payload | |||
format or the direct loopback RTP payload format as defined in | format or the direct loopback RTP payload format as defined in | |||
section 7 of this specification. | section 7 of this specification. | |||
An answering entity that is compliant to this specification and | An answering entity that is compliant to this specification and | |||
skipping to change at page 18, line 5 | skipping to change at page 16, line 25 | |||
type assignment for the stream, so dynamic payload type numbers | type assignment for the stream, so dynamic payload type numbers | |||
MUST be used. The binding to the name is indicated by an rtpmap | MUST be used. The binding to the name is indicated by an rtpmap | |||
attribute. The name used in this binding is "rtploopback". | attribute. The name used in this binding is "rtploopback". | |||
The following is an example SDP fragment for direct loopback RTP | The following is an example SDP fragment for direct loopback RTP | |||
format. | format. | |||
m=audio 41352 RTP/AVP 112 | m=audio 41352 RTP/AVP 112 | |||
a=rtpmap:112 rtploopback/8000 | a=rtpmap:112 rtploopback/8000 | |||
8. Payload format for Priming the Loopback Pump | 8. RTCP Requirements | |||
The sole purpose of the payload format described in this section is | ||||
to prime the loopback pump in cases where the loopback process | ||||
cannot start because of intermediate devices in the network as | ||||
described in Section 5.7. The loopback-mirror MAY send payload data | ||||
of any length and any content as it desires and the loopback-source | ||||
MUST NOT interpret the payload data. This payload format MUST NOT | ||||
be used for any purpose other than priming the loopback pump. | ||||
8.1 Usage of RTP Header fields | ||||
Payload Type (PT): The assignment of an RTP payload type for this | ||||
packet format is outside the scope of this document; it is either | ||||
specified by the RTP profile under which this payload format is | ||||
used or more likely signaled dynamically out-of-band (e.g., using | ||||
SDP; section 8.2 defines the name binding). | ||||
All other fields are set as described in RFC 3550 [RFC3550]. | ||||
8.2 Usage of SDP | ||||
The payload type number for the loopback primer stream can be | ||||
negotiated using a mechanism like SDP. There is no static payload | ||||
type assignment for the loopback primer stream, so dynamic payload | ||||
type numbers MUST be used. The binding to the name is indicated by | ||||
an rtpmap attribute. The name used in this binding is | ||||
"loopbkprimer". | ||||
The following is an example SDP fragment for loopback primer RTP | ||||
stream. | ||||
m=audio 41352 RTP/AVP 112 | ||||
a=rtpmap:112 loopbkprimer/8000 | ||||
9. RTCP Requirements | ||||
The use of the loopback attribute is intended for monitoring of | The use of the loopback attribute is intended for monitoring of | |||
media quality of the session. Consequently the media performance | media quality of the session. Consequently the media performance | |||
information should be exchanged between the offering and the | information should be exchanged between the offering and the | |||
answering entities. An offering or answering entity that is | answering entities. An offering or answering entity that is | |||
compliant to this specification SHOULD support RTCP per [RFC3550] | compliant to this specification SHOULD support RTCP per [RFC3550] | |||
and RTCP-XR per RFC 3611 [RFC3611]. Furthermore, if the client or | and RTCP-XR per RFC 3611 [RFC3611]. Furthermore, if the client or | |||
the server choose to support RTCP-XR, they SHOULD support RTCP-XR | the server choose to support RTCP-XR, they SHOULD support RTCP-XR | |||
Loss RLE report block, Duplicate RLE report block, Statistics | Loss RLE report block, Duplicate RLE report block, Statistics | |||
Summary report block, and VoIP Metric Reports Block per sections | Summary report block, and VoIP Metric Reports Block per sections | |||
4.1, 4.2, 4.6, and 4.7 of RFC 3611 [RFC3611]. The client and the | 4.1, 4.2, 4.6, and 4.7 of RFC 3611 [RFC3611]. The client and the | |||
server MAY support other RTCP-XR reporting blocks as defined by RFC | server MAY support other RTCP-XR reporting blocks as defined by RFC | |||
3611 [RFC3611]. | 3611 [RFC3611]. | |||
10. Congestion Control | 9. Congestion Control | |||
All the participants in a loopback session SHOULD implement | All the participants in a loopback session SHOULD implement | |||
congestion control mechanisms as defined by the RTP profile under | congestion control mechanisms as defined by the RTP profile under | |||
which the loopback mechanism is implemented. For audio video | which the loopback mechanism is implemented. For audio video | |||
profiles, implementations SHOULD conform to the mechanism defined | profiles, implementations SHOULD conform to the mechanism defined | |||
in Section 2 of RFC 3551. | in Section 2 of RFC 3551. | |||
11. Examples | 10. 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. | |||
11.1 Offer for specific media loopback type | 10.1 Offer for specific media loopback type | |||
A client sends an INVITE request with offer SDP which looks like: | A client sends an INVITE request with offer SDP which looks like: | |||
v=0 | v=0 | |||
o=alice 2890844526 2890842807 IN IP4 host.atlanta.example.com | o=alice 2890844526 2890842807 IN IP4 host.atlanta.example.com | |||
s=Example | s=Example | |||
i=An example session | i=An example session | |||
e=alice@example.com | e=alice@example.com | |||
c=IN IP4 host.atlanta.example.com | c=IN IP4 host.atlanta.example.com | |||
t=0 0 | t=0 0 | |||
skipping to change at page 20, line 20 | skipping to change at page 17, line 48 | |||
c=IN IP4 host.biloxi.example.com | c=IN IP4 host.biloxi.example.com | |||
t=0 0 | t=0 0 | |||
m=audio 49270 RTP/AVP 0 | m=audio 49270 RTP/AVP 0 | |||
a=loopback:rtp-media-loopback | a=loopback:rtp-media-loopback | |||
a=loopback-mirror:0 | a=loopback-mirror:0 | |||
a=rtpmap:0 pcmu/8000 | a=rtpmap:0 pcmu/8000 | |||
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. | |||
11.2 Offer for choice of media loopback type | 10.2 Offer for choice of media loopback type | |||
A client sends an INVITE request with offer SDP which looks like: | A client sends an INVITE request with offer SDP which looks like: | |||
v=0 | v=0 | |||
o=alice 2890844526 2890842807 IN IP4 host.atlanta.example.com | o=alice 2890844526 2890842807 IN IP4 host.atlanta.example.com | |||
s=Example | s=Example | |||
i=An example session | i=An example session | |||
e=alice@example.com | e=alice@example.com | |||
c=IN IP4 host.atlanta.example.com | c=IN IP4 host.atlanta.example.com | |||
t=0 0 | t=0 0 | |||
m=audio 49170 RTP/AVP 0 112 113 | m=audio 49170 RTP/AVP 0 112 113 | |||
skipping to change at page 21, line 12 | skipping to change at page 18, line 41 | |||
t=0 0 | t=0 0 | |||
m=audio 49270 RTP/AVP 0 112 | m=audio 49270 RTP/AVP 0 112 | |||
a=loopback:rtp-pkt-loopback | a=loopback:rtp-pkt-loopback | |||
a=loopback-mirror:0 | a=loopback-mirror:0 | |||
a=rtpmap:0 pcmu/8000 | a=rtpmap:0 pcmu/8000 | |||
a=rtpmap:112 encaprtp/8000 | a=rtpmap:112 encaprtp/8000 | |||
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 using the encapsulated RTP payload format. | packet level using the encapsulated RTP payload format. | |||
11.3 Offer for choice of media loopback type with loopback primer | 10.3 Response to INVITE request rejecting loopback media | |||
A client sends an INVITE request with offer SDP which looks like: | ||||
v=0 | ||||
o=alice 2890844526 2890842807 IN IP4 host.atlanta.example.com | ||||
s=Example | ||||
i=An example session | ||||
e=alice@example.com | ||||
c=IN IP4 host.atlanta.example.com | ||||
t=0 0 | ||||
m=audio 49170 RTP/AVP 0 112 113 114 | ||||
a=loopback:rtp-media-loopback rtp-pkt-loopback | ||||
a=loopback-source:0 | ||||
a=rtpmap:0 pcmu/8000 | ||||
a=rtpmap:112 encaprtp/8000 | ||||
a=rtpmap:113 rtploopback/8000 | ||||
a=rtpmap:114 loopbkprimer/8000 | ||||
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 | ||||
client also expects the server to source media until it receives | ||||
packets from the server per media described with the loopbkprimer | ||||
payload type. | ||||
A server sends a response with SDP which looks like: | ||||
v=0 | ||||
o=bob 2890844526 2890842807 IN IP4 host.biloxi.example.com | ||||
s=Example | ||||
i=An example session | ||||
e=user@example.com | ||||
c=IN IP4 host.biloxi.example.com | ||||
t=0 0 | ||||
m=audio 49270 RTP/AVP 0 113 114 | ||||
a=loopback:rtp-pkt-loopback | ||||
a=loopback-mirror:0 114 | ||||
a=rtpmap:0 pcmu/8000 | ||||
a=rtpmap:113 rtploopback/8000 | ||||
a=rtmap:114 loopbkprimer/8000 | ||||
The server is accepting to mirror the media from the client at the | ||||
packet level using the direct loopback RTP payload format. The | ||||
server is also accepting to source media until it receives media | ||||
packets from the client. | ||||
11.4 Response to INVITE request rejecting loopback media | ||||
A client sends an INVITE request with offer SDP which looks like: | A client sends an INVITE request with offer SDP which looks like: | |||
v=0 | v=0 | |||
o=alice 2890844526 2890842807 IN IP4 host.atlanta.example.com | o=alice 2890844526 2890842807 IN IP4 host.atlanta.example.com | |||
s=Example | s=Example | |||
i=An example session | i=An example session | |||
e=user@example.com | e=user@example.com | |||
c=IN IP4 host.atlanta.example.com | c=IN IP4 host.atlanta.example.com | |||
t=0 0 | t=0 0 | |||
skipping to change at page 23, line 5 | skipping to change at page 19, line 31 | |||
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:0 | a=loopback-mirror:0 | |||
a=rtpmap:0 pcmu/8000 | a=rtpmap:0 pcmu/8000 | |||
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. | |||
11.5 Response to INVITE request rejecting loopback media with | 11. Security Considerations | |||
loopback primer payload type | ||||
A client sends an INVITE request with offer SDP which looks like: | ||||
v=0 | ||||
o=alice 2890844526 2890842807 IN IP4 host.atlanta.example.com | ||||
s=Example | ||||
i=An example session | ||||
e=alice@example.com | ||||
c=IN IP4 host.atlanta.example.com | ||||
t=0 0 | ||||
m=audio 49170 RTP/AVP 0 100 | ||||
a=loopback:rtp-media-loopback | ||||
a=loopback-source:0 | ||||
a=rtpmap:0 pcmu/8000 | ||||
a=rtpmap:100 loopbkprimer/8000 | ||||
The client is offering to source the media and expects the server | ||||
to mirror the RTP stream at the media level. The client (offerer) | ||||
also expects the server (answerer) to source media until it | ||||
receives packets from the server using the loopbkprimer payload | ||||
type. | ||||
A server sends a response with answer SDP which looks like: | ||||
v=0 | ||||
o=bob 2890844526 2890842807 IN IP4 host.biloxi.example.com | ||||
s=Example | ||||
i=An example session | ||||
e=bob@example.com | ||||
c=IN IP4 host.biloxi.example.com | ||||
t=0 0 | ||||
m=audio 0 RTP/AVP 0 | ||||
a=loopback:rtp-media-loopback | ||||
a=loopback-mirror:0 | ||||
NOTE: Loopback request may be rejected by either not including the | ||||
loopback mode attribute (for backward compatibility) or setting the | ||||
media port number to zero, or both, in the response. | ||||
12. Security Considerations | ||||
The security considerations of [RFC3261] and [RFC3264] apply. | The security considerations of [RFC3261] and [RFC3264] apply. | |||
Furthermore, given that media loopback may be automated without the | Furthermore, given that media loopback may be automated without the | |||
end user's knowledge, the server of the media loopback should be | end user's knowledge, the server of the media loopback should be | |||
aware of denial of service attacks. It is recommended that sessions | aware of denial of service attacks. It is recommended that sessions | |||
with media loopback are authenticated and the frequency of such | with media loopback are authenticated and the frequency of such | |||
sessions is limited by the server. | sessions is limited by the server. | |||
13. Implementation Considerations | 12. Implementation Considerations | |||
The media loopback approach described in this document is a | The media loopback approach described in this document is a | |||
complete solution that would work under all scenarios. However, it | complete solution that would work under all scenarios. However, it | |||
is believed that the solution may not be light-weight enough for | is believed that the solution may not be light-weight enough for | |||
the common case. In light of this concern, this section clarifies | the common case. In light of this concern, this section clarifies | |||
which features of the loopback proposal MUST be implemented for all | which features of the loopback proposal MUST be implemented for all | |||
implementations and which features MAY be deferred if the complete | implementations and which features MAY be deferred if the complete | |||
solution is not desired. | solution is not desired. | |||
All implementations MUST support the rtp-pkt-loopback option for | All implementations MUST support the rtp-pkt-loopback option for | |||
loopback-type attribute. In addition, for the loopback-mode | loopback-type attribute. In addition, for the loopback-mode | |||
attribute, all implementations of an offerer MUST at a minimum be | attribute, all implementations of an offerer MUST at a minimum be | |||
able to act as a loopback-source. All implementation MUST also at a | able to act as a loopback-source. All implementation MUST also at a | |||
minimum support the direct media loopback payload type. The rtp- | minimum support the direct media loopback payload type. The rtp- | |||
media-loopback attribute MAY be implemented in complete | media-loopback attribute MAY be implemented in complete | |||
implementations of this draft. | implementations of this draft. | |||
14. IANA Considerations | 13. IANA Considerations | |||
14.1 SDP Attributes | 13.1 SDP Attributes | |||
This document defines three new media-level SDP attributes. IANA | This document defines three new media-level SDP attributes. IANA | |||
has registered the following attributes: | has registered the following attributes: | |||
Contact name: Kaynam Hedayat | Contact name: Kaynam Hedayat | |||
<kaynam.hedayat@exfo.com>. | <kaynam.hedayat@exfo.com>. | |||
Attribute name: "loopback". | Attribute name: "loopback". | |||
Type of attribute: Media level. | Type of attribute: Media level. | |||
Subject to charset: No. | Subject to charset: No. | |||
Purpose of attribute: The 'loopback' attribute is used to | Purpose of attribute: The 'loopback' attribute is used to | |||
skipping to change at page 25, line 20 | skipping to change at page 21, line 4 | |||
as a loopback-mirror. | as a loopback-mirror. | |||
Allowed attribute values: The parameter to 'loopback-source' is | Allowed attribute values: The parameter to 'loopback-source' is | |||
a media format ("<fmt>") description | a media format ("<fmt>") description | |||
as defined in RFC 4566 Section 5.14. | as defined in RFC 4566 Section 5.14. | |||
Contact name: Kaynam Hedayat | Contact name: Kaynam Hedayat | |||
<kaynam.hedayat@exfo.com>. | <kaynam.hedayat@exfo.com>. | |||
Attribute name: "loopback-mirror". | Attribute name: "loopback-mirror". | |||
Type of attribute: Media level. | Type of attribute: Media level. | |||
Subject to charset: No. | Subject to charset: No. | |||
Purpose of attribute: The 'loopback-mirror' attribute | Purpose of attribute: The 'loopback-mirror' attribute | |||
specifies that the receiver will | specifies that the receiver will | |||
mirror (echo) all received media back | mirror (echo) all received media back | |||
to the sender of the RTP stream. | to the sender of the RTP stream. | |||
Allowed attribute values: The parameter to 'loopback-mirror' is | Allowed attribute values: The parameter to 'loopback-mirror' is | |||
a media format ("<fmt>") description | a media format ("<fmt>") description | |||
as defined in RFC 4566 Section 5.14. | as defined in RFC 4566 Section 5.14. | |||
14.2 MIME Types | 13.2 MIME Types | |||
The IANA has registered the following MIME types: | The IANA has registered the following MIME types: | |||
14.2.1 audio/encaprtp | 13.2.1 audio/encaprtp | |||
To: ietf-types@iana.org | To: ietf-types@iana.org | |||
Subject: Registration of media type audio/encaprtp | Subject: Registration of media type audio/encaprtp | |||
Type name: audio | Type name: audio | |||
Subtype name: encaprtp | Subtype name: encaprtp | |||
Required parameters: | Required parameters: | |||
skipping to change at page 26, line 38 | skipping to change at page 22, line 22 | |||
framing, and hence is only defined for transfer via | framing, and hence is only defined for transfer via | |||
RTP. Transfer within other framing protocols is not | RTP. Transfer within other framing protocols is not | |||
defined at this time. | defined at this time. | |||
Author: | Author: | |||
Kaynam Hedayat. | Kaynam Hedayat. | |||
Change controller: IETF Audio/Video Transport working | Change controller: IETF Audio/Video Transport working | |||
group delegated from the IESG. | group delegated from the IESG. | |||
14.2.2 video/encaprtp | 13.2.2 video/encaprtp | |||
To: ietf-types@iana.org | To: ietf-types@iana.org | |||
Subject: Registration of media type video/encaprtp | Subject: Registration of media type video/encaprtp | |||
Type name: video | Type name: video | |||
Subtype name: encaprtp | Subtype name: encaprtp | |||
Required parameters: | Required parameters: | |||
skipping to change at page 27, line 46 | skipping to change at page 23, line 30 | |||
framing, and hence is only defined for transfer via | framing, and hence is only defined for transfer via | |||
RTP. Transfer within other framing protocols is not | RTP. Transfer within other framing protocols is not | |||
defined at this time. | defined at this time. | |||
Author: | Author: | |||
Kaynam Hedayat. | Kaynam Hedayat. | |||
Change controller: IETF Audio/Video Transport working | Change controller: IETF Audio/Video Transport working | |||
group delegated from the IESG. | group delegated from the IESG. | |||
14.2.3 text/encaprtp | 13.2.3 text/encaprtp | |||
To: ietf-types@iana.org | To: ietf-types@iana.org | |||
Subject: Registration of media type text/encaprtp | Subject: Registration of media type text/encaprtp | |||
Type name: text | Type name: text | |||
Subtype name: encaprtp | Subtype name: encaprtp | |||
Required parameters: | Required parameters: | |||
rate:RTP timestamp clock rate, which is equal to the | rate:RTP timestamp clock rate, which is equal to the | |||
sampling rate. The typical rate is 8000; other rates | sampling rate. The typical rate is 8000; other rates | |||
may be specified. | may be specified. | |||
Optional parameters: none | Optional parameters: none | |||
skipping to change at page 28, line 49 | skipping to change at page 24, line 35 | |||
framing, and hence is only defined for transfer via | framing, and hence is only defined for transfer via | |||
RTP. Transfer within other framing protocols is not | RTP. Transfer within other framing protocols is not | |||
defined at this time. | defined at this time. | |||
Author: | Author: | |||
Kaynam Hedayat. | Kaynam Hedayat. | |||
Change controller: IETF Audio/Video Transport working | Change controller: IETF Audio/Video Transport working | |||
group delegated from the IESG. | group delegated from the IESG. | |||
14.2.4 application/encaprtp | 13.2.4 application/encaprtp | |||
To: ietf-types@iana.org | To: ietf-types@iana.org | |||
Subject: Registration of media type | Subject: Registration of media type | |||
application/encaprtp | application/encaprtp | |||
Type name: application | Type name: application | |||
Subtype name: encaprtp | Subtype name: encaprtp | |||
Required parameters: | Required parameters: | |||
skipping to change at page 30, line 8 | skipping to change at page 25, line 39 | |||
framing, and hence is only defined for transfer via | framing, and hence is only defined for transfer via | |||
RTP. Transfer within other framing protocols is not | RTP. Transfer within other framing protocols is not | |||
defined at this time. | defined at this time. | |||
Author: | Author: | |||
Kaynam Hedayat. | Kaynam Hedayat. | |||
Change controller: IETF Audio/Video Transport working | Change controller: IETF Audio/Video Transport working | |||
group delegated from the IESG. | group delegated from the IESG. | |||
14.2.5 audio/rtploopback | 13.2.5 audio/rtploopback | |||
To: ietf-types@iana.org | To: ietf-types@iana.org | |||
Subject: Registration of media type audio/rtploopback | Subject: Registration of media type audio/rtploopback | |||
Type name: audio | Type name: audio | |||
Subtype name: rtploopback | Subtype name: rtploopback | |||
Required parameters: | Required parameters: | |||
skipping to change at page 31, line 11 | skipping to change at page 26, line 46 | |||
framing, and hence is only defined for transfer via | framing, and hence is only defined for transfer via | |||
RTP. Transfer within other framing protocols is not | RTP. Transfer within other framing protocols is not | |||
defined at this time. | defined at this time. | |||
Author: | Author: | |||
Kaynam Hedayat. | Kaynam Hedayat. | |||
Change controller: IETF Audio/Video Transport working | Change controller: IETF Audio/Video Transport working | |||
group delegated from the IESG. | group delegated from the IESG. | |||
14.2.6 video/rtploopback | 13.2.6 video/rtploopback | |||
To: ietf-types@iana.org | To: ietf-types@iana.org | |||
Subject: Registration of media type video/rtploopback | Subject: Registration of media type video/rtploopback | |||
Type name: video | Type name: video | |||
Subtype name: rtploopback | Subtype name: rtploopback | |||
Required parameters: | Required parameters: | |||
rate:RTP timestamp clock rate, which is equal to the | rate:RTP timestamp clock rate, which is equal to the | |||
sampling rate. The typical rate is 8000; other rates | sampling rate. The typical rate is 8000; other rates | |||
may be specified. | may be specified. | |||
Optional parameters: none | Optional parameters: none | |||
skipping to change at page 32, line 15 | skipping to change at page 27, line 49 | |||
framing, and hence is only defined for transfer via | framing, and hence is only defined for transfer via | |||
RTP. Transfer within other framing protocols is not | RTP. Transfer within other framing protocols is not | |||
defined at this time. | defined at this time. | |||
Author: | Author: | |||
Kaynam Hedayat. | Kaynam Hedayat. | |||
Change controller: IETF Audio/Video Transport working | Change controller: IETF Audio/Video Transport working | |||
group delegated from the IESG. | group delegated from the IESG. | |||
14.2.7 text/rtploopback | 13.2.7 text/rtploopback | |||
To: ietf-types@iana.org | To: ietf-types@iana.org | |||
Subject: Registration of media type text/rtploopback | Subject: Registration of media type text/rtploopback | |||
Type name: text | Type name: text | |||
Subtype name: rtploopback | Subtype name: rtploopback | |||
Required parameters: | Required parameters: | |||
rate:RTP timestamp clock rate, which is equal to the | rate:RTP timestamp clock rate, which is equal to the | |||
sampling rate. The typical rate is 8000; other rates | sampling rate. The typical rate is 8000; other rates | |||
skipping to change at page 33, line 21 | skipping to change at page 29, line 5 | |||
framing, and hence is only defined for transfer via | framing, and hence is only defined for transfer via | |||
RTP. Transfer within other framing protocols is not | RTP. Transfer within other framing protocols is not | |||
defined at this time. | defined at this time. | |||
Author: | Author: | |||
Kaynam Hedayat. | Kaynam Hedayat. | |||
Change controller: IETF Audio/Video Transport working | Change controller: IETF Audio/Video Transport working | |||
group delegated from the IESG. | group delegated from the IESG. | |||
14.2.8 application/rtploopback | 13.2.8 application/rtploopback | |||
To: ietf-types@iana.org | To: ietf-types@iana.org | |||
Subject: Registration of media type | Subject: Registration of media type | |||
application/rtploopback | application/rtploopback | |||
Type name: application | Type name: application | |||
Subtype name: rtploopback | Subtype name: rtploopback | |||
skipping to change at page 34, line 27 | skipping to change at page 30, line 11 | |||
framing, and hence is only defined for transfer via | framing, and hence is only defined for transfer via | |||
RTP. Transfer within other framing protocols is not | RTP. Transfer within other framing protocols is not | |||
defined at this time. | defined at this time. | |||
Author: | Author: | |||
Kaynam Hedayat. | Kaynam Hedayat. | |||
Change controller: IETF Audio/Video Transport working | Change controller: IETF Audio/Video Transport working | |||
group delegated from the IESG. | group delegated from the IESG. | |||
14.2.9 audio/loopbkprimer | 14. Normative References | |||
To: ietf-types@iana.org | ||||
Subject: Registration of media type audio/loopbkprimer | ||||
Type name: audio | ||||
Subtype name: loopbkprimer | ||||
Required parameters: | ||||
rate:RTP timestamp clock rate, which is equal to the | ||||
sampling rate. The typical rate is 8000; other rates | ||||
may be specified. | ||||
Optional parameters: none | ||||
Encoding considerations: This media type is framed | ||||
binary data. | ||||
Security considerations: See Section 12 of this document. | ||||
Interoperability considerations: none | ||||
Published specification: This MIME type is described fully | ||||
within this document. | ||||
Applications which use this media type: Applications wishing | ||||
to monitor and ensure the quality of transport to the | ||||
edge of a given VoIP, Real-Time Text or Video Over IP | ||||
Service. | ||||
Additional information: none | ||||
Person & email address to contact for further information: | ||||
Kaynam Hedayat | ||||
EMail: kaynam.hedayat@exfo.com | ||||
Intended usage: COMMON | ||||
Restrictions on usage: This media type depends on RTP | ||||
framing, and hence is only defined for transfer via | ||||
RTP. Transfer within other framing protocols is not | ||||
defined at this time. | ||||
Author: | ||||
Kaynam Hedayat. | ||||
Change controller: IETF Audio/Video Transport working | ||||
group delegated from the IESG. | ||||
14.2.10 video/loopbkprimer | ||||
To: ietf-types@iana.org | ||||
Subject: Registration of media type video/loopbkprimer | ||||
Type name: video | ||||
Subtype name: loopbkprimer | ||||
Required parameters: | ||||
rate:RTP timestamp clock rate, which is equal to the | ||||
sampling rate. The typical rate is 8000; other rates | ||||
may be specified. | ||||
Optional parameters: none | ||||
Encoding considerations: This media type is framed | ||||
binary data. | ||||
Security considerations: See Section 12 of this document. | ||||
Interoperability considerations: none | ||||
Published specification: This MIME type is described fully | ||||
within this document. | ||||
Applications which use this media type: Applications wishing | ||||
to monitor and ensure the quality of transport to the | ||||
edge of a given VoIP, Real-Time Text or Video Over IP | ||||
Service. | ||||
Additional information: none | ||||
Person & email address to contact for further information: | ||||
Kaynam Hedayat | ||||
EMail: kaynam.hedayat@exfo.com | ||||
Intended usage: COMMON | ||||
Restrictions on usage: This media type depends on RTP | ||||
framing, and hence is only defined for transfer via | ||||
RTP. Transfer within other framing protocols is not | ||||
defined at this time. | ||||
Author: | ||||
Kaynam Hedayat. | ||||
Change controller: IETF Audio/Video Transport working | ||||
group delegated from the IESG. | ||||
14.2.11 text/loopbkprimer | ||||
To: ietf-types@iana.org | ||||
Subject: Registration of media type text/loopbkprimer | ||||
Type name: text | ||||
Subtype name: encaprtp | ||||
Required parameters: | ||||
rate:RTP timestamp clock rate, which is equal to the | ||||
sampling rate. The typical rate is 8000; other rates | ||||
may be specified. | ||||
Optional parameters: none | ||||
Encoding considerations: This media type is framed | ||||
binary data. | ||||
Security considerations: See Section 12 of this document. | ||||
Interoperability considerations: none | ||||
Published specification: This MIME type is described fully | ||||
within this document. | ||||
Applications which use this media type: Applications wishing | ||||
to monitor and ensure the quality of transport to the | ||||
edge of a given VoIP, Real-Time Text or Video Over IP | ||||
Service. | ||||
Additional information: none | ||||
Person & email address to contact for further information: | ||||
Kaynam Hedayat | ||||
EMail: kaynam.hedayat@exfo.com | ||||
Intended usage: COMMON | ||||
Restrictions on usage: This media type depends on RTP | ||||
framing, and hence is only defined for transfer via | ||||
RTP. Transfer within other framing protocols is not | ||||
defined at this time. | ||||
Author: | ||||
Kaynam Hedayat. | ||||
Change controller: IETF Audio/Video Transport working | ||||
group delegated from the IESG. | ||||
14.2.12 application/loopbkprimer | ||||
To: ietf-types@iana.org | ||||
Subject: Registration of media type | ||||
application/loopbkprimer | ||||
Type name: application | ||||
Subtype name: loopbkprimer | ||||
Required parameters: | ||||
rate:RTP timestamp clock rate, which is equal to the | ||||
sampling rate. The typical rate is 8000; other rates | ||||
may be specified. | ||||
Optional parameters: none | ||||
Encoding considerations: This media type is framed | ||||
binary data. | ||||
Security considerations: See Section 12 of this document. | ||||
Interoperability considerations: none | ||||
Published specification: This MIME type is described fully | ||||
within this document. | ||||
Applications which use this media type: Applications wishing | ||||
to monitor and ensure the quality of transport to the | ||||
edge of a given VoIP, Real-Time Text or Video Over IP | ||||
Service. | ||||
Additional information: none | ||||
Person & email address to contact for further information: | ||||
Kaynam Hedayat | ||||
EMail: kaynam.hedayat@exfo.com | ||||
Intended usage: COMMON | ||||
Restrictions on usage: This media type depends on RTP | ||||
framing, and hence is only defined for transfer via | ||||
RTP. Transfer within other framing protocols is not | ||||
defined at this time. | ||||
Author: | ||||
Kaynam Hedayat. | ||||
Change controller: IETF Audio/Video Transport working | ||||
group delegated from the IESG. | ||||
15. Additional Authors and Acknowledgements | ||||
The following people have contributed to the task of authoring this | ||||
document: Chelliah Sivachelvan (Cisco). | ||||
The authors acknowledge the contributions and comments of , Muthu | ||||
ArulMozhi Perumal, Flemming Andreasen, Jeff Bernstein, Paul | ||||
Kyzivat, and Dave Oran. | ||||
16. 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, June 2002. | RFC 3261, 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, June 2002. | RFC 3264, June 2002. | |||
End of changes. 36 change blocks. | ||||
439 lines changed or deleted | 52 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |