draft-ietf-mmusic-media-loopback-18.txt | draft-ietf-mmusic-media-loopback-19.txt | |||
---|---|---|---|---|
Internet Draft H. Kaplan (ed.) | Internet Draft H. Kaplan (ed.) | |||
Expires: August 12, 2012 Acme Packet | Expires: December 12, 2012 Acme Packet | |||
K. Hedayat | K. Hedayat | |||
EXFO | EXFO | |||
N. Venna | N. Venna | |||
Saperix | Saperix | |||
P. Jones | P. Jones | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
A. Roychowdhury | ||||
Hughes Systique Corp. | ||||
C. SivaChelvan | ||||
Cisco Systems, Inc. | ||||
N. Stratton | N. Stratton | |||
BlinkMind, Inc. | BlinkMind, Inc. | |||
March 26, 2012 | July 12, 2012 | |||
An Extension to the Session Description Protocol (SDP) | An Extension to the Session Description Protocol (SDP) | |||
and Real-time Transport Protocol (RTP) for Media Loopback | and Real-time Transport Protocol (RTP) for Media Loopback | |||
draft-ietf-mmusic-media-loopback-18 | draft-ietf-mmusic-media-loopback-19 | |||
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 44 | skipping to change at page 1, line 41 | |||
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 August 12, 2012. | This Internet-Draft will expire on December 12, 2012. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2012 IETF Trust and the persons identified as the | Copyright (c) 2012 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 | |||
skipping to change at page 2, line 35 | skipping to change at page 2, line 27 | |||
performance. In particular, media delivery is an area that needs | performance. In particular, media delivery is an area that needs | |||
attention. One method of meeting these challenges is monitoring | attention. One method of meeting these challenges is monitoring | |||
the media delivery performance by looping media back to the | the media delivery performance by looping media back to the | |||
transmitter. This is typically referred to as "active monitoring" | transmitter. This is typically referred to as "active monitoring" | |||
of services. Media loopback is especially popular in ensuring the | of services. Media loopback is especially popular in ensuring the | |||
quality of transport to the edge of a given VoIP, Real-time Text or | quality of transport to the edge of a given VoIP, Real-time Text or | |||
Video over IP service. Today in networks that deliver real-time | Video over IP service. Today in networks that deliver real-time | |||
media, short of running 'ping' and 'traceroute' to the edge, | media, short of running 'ping' and 'traceroute' to the edge, | |||
administrators are left without the necessary tools to actively | administrators are left without the necessary tools to actively | |||
monitor, manage, and diagnose quality issues with their service. | monitor, manage, and diagnose quality issues with their service. | |||
The extension defined herein adds new SDP media attributes, which | The extension defined herein adds new SDP media types and | |||
enable establishment of media sessions where the media is looped | attributes, which enable establishment of media sessions where the | |||
back to the transmitter. Such media sessions will serve as | media is looped back to the transmitter. Such media sessions will | |||
monitoring and troubleshooting tools by providing the means for | serve as monitoring and troubleshooting tools by providing the | |||
measurement of more advanced VoIP, Real-time Text and Video over IP | means for measurement of more advanced VoIP, Real-time Text and | |||
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. Overview of Operation.........................................6 | 3. Overview of Operation.........................................6 | |||
3.1 SDP Offerer Behavior......................................6 | 3.1 SDP Offerer Behavior......................................6 | |||
3.2 SDP Answerer Behavior.....................................6 | 3.2 SDP Answerer Behavior.....................................6 | |||
4. New SDP Attributes............................................7 | 4. New SDP Attributes............................................7 | |||
skipping to change at page 3, line 16 | skipping to change at page 3, line 9 | |||
5. Rules for Generating the SDP offer/answer.....................9 | 5. Rules for Generating the SDP offer/answer.....................9 | |||
5.1 Generating the SDP Offer for Loopback Session.............9 | 5.1 Generating the SDP Offer for Loopback Session.............9 | |||
5.2 Generating the SDP Answer for Loopback Session...........10 | 5.2 Generating the SDP Answer for Loopback Session...........10 | |||
5.3 Offerer Processing of the SDP Answer.....................11 | 5.3 Offerer Processing of the SDP Answer.....................11 | |||
5.4 Modifying the Session....................................12 | 5.4 Modifying the Session....................................12 | |||
5.5 Establishing Sessions Between Entities Behind NAT........12 | 5.5 Establishing Sessions Between Entities Behind NAT........12 | |||
6. RTP Requirements.............................................12 | 6. RTP Requirements.............................................12 | |||
7. Payload formats for Packet loopback..........................13 | 7. Payload formats for Packet loopback..........................13 | |||
7.1 Encapsulated Payload format..............................13 | 7.1 Encapsulated Payload format..............................13 | |||
7.2 Direct loopback RTP payload format.......................16 | 7.2 Direct loopback RTP payload format.......................16 | |||
8. RTCP Requirements............................................17 | 8. SRTP Behavior................................................17 | |||
9. Congestion Control...........................................17 | 9. RTCP Requirements............................................17 | |||
10. Examples....................................................18 | 10. Congestion Control..........................................18 | |||
10.1 Offer for specific media loopback type..................18 | 11. Examples....................................................18 | |||
10.2 Offer for choice of media loopback type.................18 | 11.1 Offer for specific media loopback type..................18 | |||
10.3 Answerer rejecting loopback media.......................19 | 11.2 Offer for choice of media loopback type.................19 | |||
11. Security Considerations.....................................20 | 11.3 Answerer rejecting loopback media.......................20 | |||
12. Implementation Considerations...............................21 | 12. Security Considerations.....................................20 | |||
13. IANA Considerations.........................................21 | 13. Implementation Considerations...............................21 | |||
13.1 SDP Attributes..........................................21 | 14. IANA Considerations.........................................22 | |||
13.2 MIME Types..............................................22 | 14.1 SDP Attributes..........................................22 | |||
14. Acknowledgements............................................31 | 14.2 Media Types.............................................22 | |||
15. Normative References........................................31 | 15. Acknowledgements............................................31 | |||
16. Informative References......................................32 | 16. Normative References........................................31 | |||
17. Informative References......................................32 | ||||
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 real-time VoIP, Text and Video over IP Services | overall quality of real-time VoIP, 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 | |||
skipping to change at page 4, line 9 | skipping to change at page 3, line 50 | |||
to request an endpoint to loop media back to the other endpoint and | to request an endpoint to loop media back to the other endpoint and | |||
to provide media statistics (e.g., RTCP and RTCP XR information). | to provide media statistics (e.g., RTCP and RTCP XR information). | |||
Another method involves deployment of special endpoints that always | Another method involves deployment of special endpoints that always | |||
loop incoming media back for sessions. Although the latter method | loop incoming media back for sessions. Although the latter method | |||
has been used and is functional, it does not scale to support large | has been used and is functional, it does not scale to support large | |||
networks and introduces new network management challenges. | networks and introduces new network management challenges. | |||
Further, it does not offer the granularity of testing a specific | Further, it does not offer the granularity of testing a specific | |||
endpoint that may be exhibiting problems. | endpoint that may be exhibiting problems. | |||
The extension defined in this document introduces new SDP media | The extension defined in this document introduces new SDP media | |||
attributes that enable establishment of media sessions where the | types and attributes that enable establishment of media sessions | |||
media is looped back to the transmitter. The SDP offer/answer | where the media is looped back to the transmitter. The SDP | |||
model [RFC3264] is used to establish a loopback connection. | offer/answer model [RFC3264] is used to establish a loopback | |||
Furthermore, this extension provides guidelines on handling RTP | connection. Furthermore, this extension provides guidelines on | |||
[RFC3550], as well as usage of RTCP [RFC3550] and RTCP XR [RFC3611] | handling RTP [RFC3550], as well as usage of RTCP [RFC3550] and RTCP | |||
for reporting media related measurements. | XR [RFC3611] for reporting media related measurements. | |||
1.1 Use Cases Supported | 1.1 Use Cases Supported | |||
As a matter of terminology in this document, packets flow from one | As a matter of terminology in this document, packets flow from one | |||
peer acting as a "loopback source", to the other peer acting as a | peer acting as a "loopback source", to the other peer acting as a | |||
"loopback mirror", which in turn returns packets to the loopback | "loopback mirror", which in turn returns packets to the loopback | |||
source. In advance of the session, the peers negotiate to determine | source. In advance of the session, the peers negotiate to determine | |||
which one acts in which role, using the SDP offer/answer exchange. | which one acts in which role, using the SDP offer/answer exchange. | |||
The negotiation also includes details such as the type of loopback | The negotiation also includes details such as the type of loopback | |||
to be used. | to be used. | |||
This specification supports three use cases: "encapsulated packet | This specification supports three use cases: "encapsulated packet | |||
skipping to change at page 6, line 5 | skipping to change at page 6, line 5 | |||
type. The packet is taken as close as possible to the analog level, | type. The packet is taken as close as possible to the analog level, | |||
then re-encoded according to an outgoing format determined by SDP | then re-encoded according to an outgoing format determined by SDP | |||
negotiation. The reencoded content is returned to the loopback | negotiation. The reencoded content is returned to the loopback | |||
source as an RTP packet with payload type corresponding to the | source as an RTP packet with payload type corresponding to the | |||
reencoding format. | reencoding format. | |||
This usage allows trouble-shooting at the codec level. The | This usage allows trouble-shooting at the codec level. The | |||
capability for path statistics is limited to what is available from | capability for path statistics is limited to what is available from | |||
RTCP reports. | RTCP reports. | |||
2. Terminology | 2. Terminology | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in | |||
this document are to be interpreted as described in RFC 2119. | this document are to be interpreted as described in RFC 2119. | |||
SDP: Session Description Protocol, as defined in [RFC4566]. This | SDP: Session Description Protocol, as defined in [RFC4566]. This | |||
document assumes the SDP offer/answer model is followed, per | document assumes the SDP offer/answer model is followed, per | |||
[RFC3264], but does not assume any specific signaling protocol for | [RFC3264], but does not assume any specific signaling protocol for | |||
carrying the SDP. | carrying the SDP. | |||
The following terms are borrowed from [RFC3264] definitions: offer, | The following terms are borrowed from [RFC3264] definitions: offer, | |||
offerer, answer, answerer, and agent. | offerer, answer, answerer, and agent. | |||
3. Overview of Operation | 3. Overview of Operation | |||
This document defines two loopback 'types', two 'roles', and two | This document defines two loopback 'types', two 'roles', and two | |||
encoding formats for loopback. For any given SDP offerer or | encoding formats for loopback. For any given SDP offerer or | |||
answerer pair, one side is the source of RTP packets, while the | answerer pair, one side is the source of RTP packets, while the | |||
other is the mirror looping packets/media back. Those define the | other is the mirror looping packets/media back. Those define the | |||
two loopback roles. As the mirror, two 'types' of loopback can be | two loopback roles. As the mirror, two 'types' of loopback can be | |||
performed: packet-level or media-level. When media-level is used, | performed: packet-level or media-level. When media-level is used, | |||
there is no further choice of encoding format - there is only one | there is no further choice of encoding format - there is only one | |||
format: whatever is indicated for normal media, since the "looping" | format: whatever is indicated for normal media, since the "looping" | |||
is performed at the codec level. When packet-level looping is | is performed at the codec level. When packet-level looping is | |||
performed, however, the mirror can either send back RTP in an | performed, however, the mirror can either send back RTP in an | |||
encapsulated format or direct-loopback format. The rest of this | encapsulated format or direct-loopback format. The rest of this | |||
document describes these loopback types, roles, and encoding | document describes these loopback types, roles, and encoding | |||
formats, and the SDP offer/answer rules for indicating them. | formats, and the SDP offer/answer rules for indicating them. | |||
3.1 SDP Offerer Behavior | 3.1 SDP Offerer Behavior | |||
An SDP offerer compliant to this memo and attempting to establish a | An SDP offerer compliant to this memo and attempting to establish a | |||
media session with media loopback MUST include "loopback" media | media session with media loopback MUST include "loopback" media | |||
attributes for each individual media description in the offer | attributes for each individual media description in the offer | |||
message. The offerer MUST look for the "loopback" media attributes | message. The offerer MUST look for the "loopback" media attributes | |||
in the media description(s) of the response from the answer for | in the media description(s) of the response from the answer for | |||
confirmation that the request is accepted. | confirmation that the request is accepted. | |||
3.2 SDP Answerer Behavior | 3.2 SDP Answerer Behavior | |||
An SDP answerer compliant to this specification and receiving an | An SDP answerer compliant to this specification and receiving an | |||
offer containing media descriptions with the "loopback" media | 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 | |||
asnwer if it agrees to do the loopback. If the answerer does not | answer if it agrees to do the loopback. If the answerer does not | |||
want to do loopback or wants to reject the "loopback" request for | want to do loopback or wants to reject the "loopback" request for | |||
specific media types, it MAY do so as defined in this section. | specific media descriptions, it MUST do so as defined in this | |||
section. | ||||
An answerer MAY reject an offered stream (either with loopback- | An answerer MAY reject an offered stream (either with loopback- | |||
source or loopback-mirror) if the loopback-type is not specified, | source or loopback-mirror) if the loopback-type is not specified, | |||
the specified loopback-type is not supported, or the endpoint | the specified loopback-type is not supported, or the endpoint | |||
cannot honor the offer for any other reason. The loopback request | cannot honor the offer for any other reason. The loopback request | |||
MUST be rejected by setting the stream's media port number to zero | MUST be rejected by setting the stream's media port number to zero | |||
in the answer as defined in RFC 3264 [RFC3264], or by rejecting the | in the answer as defined in RFC 3264 [RFC3264], or by rejecting the | |||
entire offer (i.e., by rejecting the session request entirely). | entire offer (i.e., by rejecting the session request entirely). | |||
Note that an answerer that is not compliant to this specification | Note that an answerer that is not compliant to this specification | |||
and which receives an offer with the "loopback" media attributes | and which receives an offer with the "loopback" media attributes | |||
would ignore the attributes and treat the incoming offer as a | would ignore the attributes and treat the incoming offer as a | |||
normal request. If the offerer does not wish to establish a | normal request. If the offerer does not wish to establish a | |||
"normal" RTP session, it would need to terminate the session upon | "normal" RTP session, it would need to terminate the session upon | |||
receiving such an answer. | receiving such an answer. | |||
4. New SDP Attributes | 4. New SDP Attributes | |||
Three new SDP media-level attributes are defined: one indicates the | Three new SDP media-level attributes are defined: one indicates the | |||
type of loopback, and the other two define the role of the agent. | type of loopback, and the other two define the role of the agent. | |||
4.1 Loopback Type Attribute | 4.1 Loopback Type Attribute | |||
This specification defines a new 'loopback' attribute, which | This specification defines a new 'loopback' attribute, which | |||
indicates that the agent wishes to perform loopback, and the type | indicates that the agent wishes to perform loopback, and the type | |||
of loopack that the agent is able to do. The loopback-type is a | of loopack that the agent is able to do. The loopback-type is a | |||
property media attribute with the following syntax: | value media attribute [RFC4566] with the following syntax: | |||
a=loopback:<loopback-type> | a=loopback:<loopback-type> | |||
Following is the Augmented BNF [RFC5234] for loopback-type: | Following is the Augmented BNF [RFC5234] for loopback-type: | |||
Loopback-attr = "a=loopback:" SP loopback-type | loopback-attr = "a=loopback:" SP loopback-type | |||
loopback-type = loopback-choice [1*SP loopback-choice] | loopback-type = loopback-choice [1*SP loopback-choice] | |||
loopback-choice = loopback-type-pkt / loopback-type-media | loopback-choice = loopback-type-pkt / loopback-type-media | |||
loopback-type-pkt = "rtp-pkt-loopback" | loopback-type-pkt = "rtp-pkt-loopback" | |||
loopback-type-media = "rtp-media-loopback" | loopback-type-media = "rtp-media-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, and rtp-media-loopback. | loopback-type values are rtp-pkt-loopback, and rtp-media-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 | |||
skipping to change at page 8, line 20 | skipping to change at page 8, line 19 | |||
formats that MUST be used for this type of loopback. This type of | formats that MUST be used for this type of loopback. This type of | |||
loopback applies to the encapsulated and direct loopback use-cases | loopback applies to the encapsulated and direct loopback use-cases | |||
described in Section 1.1. | described in Section 1.1. | |||
rtp-media-loopback: This loopback is activated as close as possible | rtp-media-loopback: This loopback is activated as close as possible | |||
to the analog interface and after the decoder so that the RTP | to the analog interface and after the decoder so that the RTP | |||
packets are subsequently re-encoded prior to transmission back to | packets are subsequently re-encoded prior to transmission back to | |||
the sender. This type of loopback applies to the media loopback | the sender. This type of loopback applies to the media loopback | |||
use-case described in Section 1.1.3. | use-case described in Section 1.1.3. | |||
4.2 Loopback Role Attributes: loopback-source and loopback-mirror | 4.2 Loopback Role Attributes: loopback-source and loopback-mirror | |||
The loopback role defines two value media attributes that are used | The loopback role defines two property media attributes [RFC4566] | |||
to indicate the role of the agent generating the SDP offer or | that are used to indicate the role of the agent generating the SDP | |||
answer. The syntax of the two loopback role media attributes are as | offer or answer. The syntax of the two loopback role media | |||
follows: | attributes are as follows: | |||
a=loopback-source | a=loopback-source | |||
and | and | |||
a=loopback-mirror | a=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. | |||
skipping to change at page 9, line 5 | skipping to change at page 9, line 5 | |||
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. | looping back entity for transmission in the mirrored stream. | |||
The "m=" line in the SDP MUST include all the payload types that | The "m=" line in the SDP MUST include all the payload types that | |||
will be used during the loopback session. The complete payload | will be used during the loopback session. The complete payload | |||
space for the session is specified in the "m=" line and the rtpmap | space for the session is specified in the "m=" line and the rtpmap | |||
attribute is used to map from the payload type number to an | attribute is used to map from the payload type number to an | |||
encoding name denoting the payload format to be used. | encoding name denoting the payload format to be used. | |||
5. Rules for Generating the SDP offer/answer | 5. Rules for Generating the SDP offer/answer | |||
5.1 Generating the SDP Offer for Loopback Session | 5.1 Generating the SDP 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-role attributes in a valid SDP | both the loopback-type and loopback-role attributes in a valid SDP | |||
offer: | offer: | |||
Example: m=audio 41352 RTP/AVP 0 8 100 | Example: m=audio 41352 RTP/AVP 0 8 100 | |||
a=loopback:rtp-media-loopback | a=loopback:rtp-media-loopback | |||
a=loopback-source | a=loopback-source | |||
a=rtpmap:0 pcmu/8000 | a=rtpmap:0 pcmu/8000 | |||
a=rtpmap:8 pcma/8000 | a=rtpmap:8 pcma/8000 | |||
skipping to change at page 9, line 33 | skipping to change at page 9, line 33 | |||
since it is implied by default. If either the loopback source or | since it is implied by default. If either the loopback source or | |||
mirror wish to disable loopback use during a session, the direction | mirror wish to disable loopback use during a session, the direction | |||
mode attribute "inactive" MUST be used as per [RFC3264]. The | mode attribute "inactive" MUST be used as per [RFC3264]. The | |||
direction mode attributes "recvonly" and "sendonly" are | direction mode attributes "recvonly" and "sendonly" are | |||
incompatible with the loopback mechanism and MUST NOT be indicated | incompatible with the loopback mechanism and MUST NOT be indicated | |||
when generating an SDP Offer or Answer. When receiving an SDP | when generating an SDP Offer or Answer. When receiving an SDP | |||
Offer or Answer, if "recvonly" or "sendonly" is indicated for | Offer or Answer, if "recvonly" or "sendonly" is indicated for | |||
loopback, the SDP-receiving agent SHOULD treat it as a protocol | loopback, the SDP-receiving agent SHOULD treat it as a protocol | |||
failure of the loopback negotiation and terminate the session | failure of the loopback negotiation and terminate the session | |||
through its normal means (e.g., by sending a SIP BYE if SIP is | through its normal means (e.g., by sending a SIP BYE if SIP is | |||
used). | used), or reject the offending media stream. | |||
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. | |||
The port number and the address in the offer (m/c= lines) indicate | The port number and the address in the offer (m/c= lines) indicate | |||
where the offerer would like to receive the media stream(s). The | where the offerer would like to receive the media stream(s). The | |||
payload type numbers indicate the value of the payload the offerer | payload type numbers indicate the value of the payload the offerer | |||
expects to receive. However, the answer might indicate a subset of | expects to receive. However, the answer might indicate a subset of | |||
payload type numbers from those given in the offer. In that case, | payload type numbers from those given in the offer. In that case, | |||
the offerer MUST only send the payload types received in the | the offerer MUST only send the payload types received in the | |||
answer, per normal SDP offer/answer rules. | answer, per normal SDP offer/answer rules. | |||
If the offer indicates rtp-pkt-loopback support, the offer MUST | If the offer indicates rtp-pkt-loopback support, the offer MUST | |||
also contain either an encapsulated or direct loopback encoding | also contain either an encapsulated or direct loopback encoding | |||
format encoding names, or both, as defined in later sections of | format encoding name, or both, as defined in later sections of this | |||
this document. If the offer only indicates rtp-media-loopback | document. If the offer only indicates rtp-media-loopback support, | |||
support, then neither encapsulated nor direct loopback encoding | then neither encapsulated nor direct loopback encoding formats | |||
formats apply and they MUST NOT be in the offer. | apply and they MUST NOT be in the offer. | |||
If loopback-type is rtp-pkt-loopback, the loopback-mirror MUST send | If loopback-type is rtp-pkt-loopback, the loopback-mirror MUST send | |||
and the loopback-source MUST receive the looped back packets | and the loopback-source MUST receive the looped back packets | |||
encoded in one of the two payload formats (encapsulated RTP or | encoded in one of the two payload formats (encapsulated RTP or | |||
direct loopback) as defined in section 7. | direct loopback) as defined in section 7. | |||
Example: m=audio 41352 RTP/AVP 0 8 112 | Example: m=audio 41352 RTP/AVP 0 8 112 | |||
a=loopback:rtp-pkt-loopback | a=loopback:rtp-pkt-loopback | |||
a=loopback-source | a=loopback-source | |||
a=rtpmap:112 encaprtp/8000 | a=rtpmap:112 encaprtp/8000 | |||
Example: m=audio 41352 RTP/AVP 0 8 112 | Example: m=audio 41352 RTP/AVP 0 8 112 | |||
a=loopback:rtp-pkt-loopback | a=loopback:rtp-pkt-loopback | |||
a=loopback-source | a=loopback-source | |||
a=rtpmap:112 rtploopback/8000 | a=rtpmap:112 rtploopback/8000 | |||
5.2 Generating the SDP Answer for Loopback Session | 5.2 Generating the SDP Answer for Loopback Session | |||
As with the offer, an SDP answer for loopback MUST follow SDP | As with the offer, an SDP answer for loopback MUST follow SDP | |||
offer/answer rules for the direction attribute, but directions of | offer/answer rules for the direction attribute, but directions of | |||
"sendonly" or "recvonly" do not apply for loopback operation. \ | "sendonly" or "recvonly" do not apply for loopback operation and | |||
hence MUST NOT be used. | ||||
The port number and the address in the answer (m/c= lines) indicate | The port number and the address in the answer (m/c= lines) indicate | |||
where the answerer would like to receive the media stream. The | where the answerer would like to receive the media stream. The | |||
payload type numbers indicate the value of the payload types the | payload type numbers indicate the value of the payload types the | |||
answerer expects to send and receive. | answerer expects to send and receive. | |||
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 role and loopback type attributes in the | include both the loopback role and loopback type attributes in the | |||
answer. When a stream is offered with the loopback-source | answer. When a stream is offered with the loopback-source | |||
attribute, the corresponding stream in the response MUST be | attribute, the corresponding stream in the response MUST be | |||
loopback-mirror and vice versa, provided that answerer is capable | loopback-mirror and vice versa, provided the answerer is capable of | |||
of supporting the requested loopback-type. | supporting the requested loopback-type. | |||
For example, if the offer contains the loopback-source attribute: | For example, if the offer contains the loopback-source attribute: | |||
m=audio 41352 RTP/AVP 0 8 | m=audio 41352 RTP/AVP 0 8 | |||
a=loopback:rtp-media-loopback | a=loopback:rtp-media-loopback | |||
a=loopback-source | a=loopback-source | |||
The answer that is capable of supporting the offer MUST contain the | The answer that is capable of supporting the offer must contain the | |||
loopback-mirror attribute: | loopback-mirror attribute: | |||
m=audio 12345 RTP/AVP 0 8 | m=audio 12345 RTP/AVP 0 8 | |||
a=loopback:rtp-media-loopback | a=loopback:rtp-media-loopback | |||
a=loopback-mirror | a=loopback-mirror | |||
If a stream is offered with multiple loopback type attributes, the | If a stream is offered with multiple loopback type attributes, the | |||
answer MUST include only one of the loopback types that are | answer MUST include only one of the loopback types that are | |||
accepted by the answerer. The answerer SHOULD give preference to | accepted by the answerer. The answerer SHOULD give preference to | |||
the first loopback-type in the SDP offer. | the first loopback-type in the SDP offer. | |||
For example, if the offer contains: | For example, if the offer contains: | |||
m=audio 41352 RTP/AVP 0 8 112 | m=audio 41352 RTP/AVP 0 8 112 | |||
a=loopback:rtp-media-loopback rtp-pkt-loopback | a=loopback:rtp-media-loopback rtp-pkt-loopback | |||
a=loopback-source | a=loopback-source | |||
a=rtpmap:112 encaprtp/8000 | a=rtpmap:112 encaprtp/8000 | |||
The answer that is capable of supporting the offer and chooses to | The answer that is capable of supporting the offer and chooses to | |||
loopback the media using the rtp-media-loopback type MUST contain: | loopback the media using the rtp-media-loopback type must contain: | |||
m=audio 12345 RTP/AVP 0 8 | m=audio 12345 RTP/AVP 0 8 | |||
a=loopback:rtp-media-loopback | a=loopback:rtp-media-loopback | |||
a=loopback-mirror | a=loopback-mirror | |||
As specified in section 7, if the loopback-type is | As specified in section 7, if the loopback-type is | |||
rtp-pkt-loopback, either the encapsulated RTP payload format or | rtp-pkt-loopback, either the encapsulated RTP payload format or | |||
direct loopback RTP payload format MUST be used for looped back | direct loopback RTP payload format MUST be used for looped back | |||
packets. | packets. | |||
skipping to change at page 11, line 48 | skipping to change at page 11, line 50 | |||
a=rtpmap:112 encaprtp/8000 | a=rtpmap:112 encaprtp/8000 | |||
m=audio 12345 RTP/AVP 0 8 113 | m=audio 12345 RTP/AVP 0 8 113 | |||
a=loopback:rtp-pkt-loopback | a=loopback:rtp-pkt-loopback | |||
a=loopback-mirror | a=loopback-mirror | |||
a=rtpmap:113 rtploopback/8000 | a=rtpmap:113 rtploopback/8000 | |||
The previous examples used the 'encaprtp' and 'rtploopback' | The previous examples used the 'encaprtp' and 'rtploopback' | |||
encoding names, which will be defined in sections 7.1.3 and 7.2.3. | encoding names, which will be defined in sections 7.1.3 and 7.2.3. | |||
5.3 Offerer Processing of the SDP Answer | 5.3 Offerer Processing of the SDP Answer | |||
If the received SDP answer does not contain an a=loopback-mirror or | If the received SDP answer does not contain an a=loopback-mirror or | |||
a=loopback-source attribute, it is assumed that the loopback | a=loopback-source attribute, it is assumed that the loopback | |||
extensions are not supported by the remote agent. This is not a | extensions are not supported by the remote agent. This is not a | |||
protocol failure, and instead merely completes the SDP offer/answer | protocol failure, and instead merely completes the SDP offer/answer | |||
exchange with whatever normal rules apply; the offerer MAY decide | exchange with whatever normal rules apply; the offerer MAY decide | |||
to end the established RTP session (if any) through normal means of | to end the established RTP session (if any) through normal means of | |||
the upper-layer signaling protocol (e.g., by sending a SIP BYE). | the upper-layer signaling protocol (e.g., by sending a SIP BYE). | |||
5.4 Modifying the Session | 5.4 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, as defined in section 8 of RFC 3264 [RFC3264]. This also | session, as defined in section 8 of RFC 3264 [RFC3264]. This also | |||
includes transitioning from a normal media processing mode to | includes transitioning from a normal media processing mode to | |||
loopback mode, and vice a versa. | loopback mode, and vice versa. | |||
5.5 Establishing Sessions Between Entities Behind NAT | 5.5 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, as defined in | sessions between entities that are behind NATs, as defined in | |||
[RFC5245]. Loopback sessions that involve one or more end points | [RFC5245]. Loopback sessions that involve one or more endpoints | |||
behind NATs SHOULD use these general solutions wherever possible. | behind NATs SHOULD use these general solutions wherever possible. | |||
Furthermore, if the mirroring entity is behind a NAT, it MUST send | Furthermore, if the mirroring entity is behind a NAT, it MUST send | |||
some packets to the identified address/port(s) of the peer, in | some packets to the identified address/port(s) of the peer, in | |||
order to open the NAT pinhole. Using ICE this would be | order to open the NAT pinhole. Using ICE this would be | |||
accomplished with the STUN connectivity check process, or through a | accomplished with the STUN connectivity check process, or through a | |||
TURN server connection. If ICE is not supported, either [RFC6263] | TURN server connection. If ICE is not supported, either [RFC6263] | |||
or Section 10 of ICE [RFC5245] SHOULD be followed to open the | or Section 10 of ICE [RFC5245] SHOULD be followed to open the | |||
pinhole and keep the NAT binding alive/refreshed. | pinhole and keep the NAT binding alive/refreshed. | |||
Note that for any form of NAT traversal to function, symmetric | Note that for any form of NAT traversal to function, symmetric | |||
RTP/RTCP MUST be used. In other words both agents MUST send | RTP/RTCP [RFC4961] MUST be used. In other words both agents MUST | |||
packets from the same source address and port they receive packets | send packets from the source address and port they receive packets | |||
on. | on. | |||
6. RTP Requirements | 6. RTP Requirements | |||
A looback source MUST NOT send multiple source streams on the same | A loopback source MUST NOT send multiple source streams on the same | |||
5-tuple, since there is no means for the mirror to indicate which | 5-tuple, since there is no means for the mirror to indicate which | |||
is which in its mirrored RTP packets. | is which in its mirrored RTP packets. | |||
A loopback mirror that is compliant to this specification and | A loopback mirror that is compliant to this specification and | |||
accepts media with rtp-pkt-loopback loopback-type MUST loopback the | accepts media with rtp-pkt-loopback loopback type MUST loopback the | |||
incoming RTP packets using either the encapsulated RTP payload | 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. | |||
A device that is compliant to this specification and performing the | A device that is compliant to this specification and performing the | |||
mirroring using the loopback type rtp-media-loopback MUST transmit | mirroring using the loopback type rtp-media-loopback MUST transmit | |||
all received media back to the sender, unless congestion feedback | all received media back to the sender, unless congestion feedback | |||
or other lower-layer constraints prevent it from doing so. The | or other lower-layer constraints prevent it from doing so. The | |||
incoming media MUST be treated as if it were to be played (e.g. the | incoming media MUST be treated as if it were to be played (e.g. the | |||
media stream MAY receive treatment from PLC algorithms). The | media stream MAY receive treatment from PLC algorithms). The | |||
mirroring entity MUST re-generate all the RTP header fields as it | mirroring entity MUST re-generate all the RTP header fields as it | |||
would when transmitting media. The mirroring entity MAY choose to | would when transmitting media. The mirroring entity MAY choose to | |||
encode the loopback media according to any of the media | encode the loopback media according to any of the media | |||
descriptions supported by the offering entity. Furthermore, in | descriptions supported by the offering entity. Furthermore, in | |||
cases where the same media type is looped back, the mirroring | cases where the same media type is looped back, the mirroring | |||
entity MAY choose to preserve number of frames/packet and bitrate | entity MAY choose to preserve number of frames/packet and bitrate | |||
of the encoded media according to the received media. | of the encoded media according to the received media. | |||
7. Payload formats for Packet loopback | 7. Payload formats for Packet loopback | |||
The payload formats described in this section MUST be used by a | The payload formats described in this section MUST be used by a | |||
loopback-mirror when 'rtp-pkt-loopback' is the specified | loopback-mirror when 'rtp-pkt-loopback' is the specified | |||
loopback-type. Two different formats are specified here - an | loopback-type. Two different formats are specified here - an | |||
encapsulated RTP payload format and a direct loopback RTP payload | encapsulated RTP payload format and a direct loopback RTP payload | |||
format. The encapsulated RTP payload format should be used when | format. The encapsulated RTP payload format should be used when | |||
the incoming RTP header information needs to be preserved during | the incoming RTP header information needs to be preserved during | |||
the loopback operation. This is useful in cases where loopback | the loopback operation. This is useful in cases where loopback | |||
source needs to measure performance metrics in both directions. | source needs to measure performance metrics in both directions. | |||
However, this comes at the expense of increased packet size as | However, this comes at the expense of increased packet size as | |||
described in section 7.1. The direct loopback RTP payload format | described in section 7.1. The direct loopback RTP payload format | |||
should be used when bandwidth requirement prevents the use of | should be used when bandwidth requirements prevent the use of | |||
encapsulated RTP payload format. | encapsulated RTP payload format. | |||
To keep the implementation of loopback-mirrors simple it is | 7.1 Encapsulated Payload format | |||
mandated that no payload format other than encapsulated or direct | ||||
loopback formats can be used in the packets generated by a | ||||
loopback-mirror. As described in RFC 3550 [RFC3550], sequence | ||||
numbers and timestamps in the RTP header are generated with initial | ||||
random values for security reasons. If this were not mandated and | ||||
the source payload is sequence number aware, the loopback-mirror | ||||
will be required to understand that payload format to generate | ||||
looped back packets that do not violate RFC 3550 [RFC3550]. | ||||
Requiring looped back packets to be in one of the two formats means | ||||
loopback-mirror does not have to look into the actual payload | ||||
received before generating the loopback packets. | ||||
7.1 Encapsulated Payload format | ||||
A received RTP packet is encapsulated in the payload section of the | A received RTP packet is encapsulated in the payload section of the | |||
RTP packet generated by a loopback-mirror. Each received packet | RTP packet generated by a loopback-mirror. Each received packet | |||
MUST be encapsulated in a separate encapsulating RTP packet; the | MUST be encapsulated in a separate encapsulating RTP packet; the | |||
encapsulated packet MUST be fragmented only if required (for | encapsulated packet MUST be fragmented only if required (for | |||
example: due to MTU limitations). | example: due to MTU limitations). | |||
7.1.1Usage of RTP Header fields | 7.1.1 Usage of RTP Header fields | |||
Payload Type (PT): The assignment of an RTP payload type for this | Payload Type (PT): The assignment of an RTP payload type for this | |||
packet format is outside the scope of this document; it is either | packet format is outside the scope of this document; it is either | |||
specified by the RTP profile under which this payload format is | specified by the RTP profile under which this payload format is | |||
used or more likely signaled dynamically out-of-band (e.g., using | used or more likely signaled dynamically out-of-band (e.g., using | |||
SDP; section 7.1.3 defines the name binding). | SDP; section 7.1.3 defines the name binding). | |||
Marker (M) bit: If the received RTP packet is looped back in | Marker (M) bit: If the received RTP packet is looped back in | |||
multiple encapsulating RTP packets, the M bit is set to 1 in every | multiple encapsulating RTP packets, the M bit is set to 1 in every | |||
fragment except the last packet, otherwise it is set to 0. | fragment except the last packet, otherwise it is set to 0. | |||
skipping to change at page 14, line 36 | skipping to change at page 14, line 28 | |||
the loopback-mirror is transmitting this packet to the loopback- | the loopback-mirror is transmitting this packet to the loopback- | |||
source. The RTP timestamp MUST use the same clock rate as that of | source. The RTP timestamp MUST use the same clock rate as that of | |||
the encapsulated packet. The initial value of the timestamp SHOULD | the encapsulated packet. The initial value of the timestamp SHOULD | |||
be random for security reasons (see Section 5.1 of RFC 3550 | be random for security reasons (see Section 5.1 of RFC 3550 | |||
[RFC3550]). | [RFC3550]). | |||
SSRC: set as described in RFC 3550 [RFC3550]. | SSRC: set as described in RFC 3550 [RFC3550]. | |||
CC and CSRC fields are used as described in RFC 3550 [RFC3550]. | CC and CSRC fields are used as described in RFC 3550 [RFC3550]. | |||
7.1.2RTP Payload Structure | 7.1.2 RTP Payload Structure | |||
The outer RTP header of the encapsulating packet MUST be followed | The outer RTP header of the encapsulating packet MUST be followed | |||
by the payload header defined in this section. If the received RTP | by the payload header defined in this section, after any header | |||
packet has to be looped back in multiple encapsulating packets due | extension(s). If the received RTP packet has to be looped back in | |||
to fragmentation, the encapsulating RTP header in each packet MUST | multiple encapsulating packets due to fragmentation, the | |||
be followed by the payload header defined in this section. The | encapsulating RTP header in each packet MUST be followed by the | |||
header is devised so that the loopback-source can decode looped | payload header defined in this section. The header is devised so | |||
back packets in the presence of moderate packet loss [RFC3550]. | that the loopback-source can decode looped back packets in the | |||
presence of moderate packet loss [RFC3550]. The RTP payload of the | ||||
encapsulating RTP packet starts with the payload header defined in | ||||
this section. | ||||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| receive timestamp | | | receive timestamp | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| F | R | CC |M| PT | sequence number | | | F | R | CC |M| PT | sequence number | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| transmit timestamp | | | transmit timestamp | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
skipping to change at page 15, line 33 | skipping to change at page 15, line 33 | |||
encapsulated by creating a new outer RTP header followed by 4 new | encapsulated by creating a new outer RTP header followed by 4 new | |||
bytes of a receive timestamp, followed by the original received RTP | bytes of a receive timestamp, followed by the original received RTP | |||
header and payload, except that the first two bits of the received | header and payload, except that the first two bits of the received | |||
RTP header are overwritten as defined here. | RTP header are overwritten as defined here. | |||
Receive Timestamp: 32 bits | Receive Timestamp: 32 bits | |||
The Receive timestamp denotes the sampling instant for when the | The Receive timestamp denotes the sampling instant for when the | |||
last octet of the received media packet that is being encapsulated | last octet of the received media packet that is being encapsulated | |||
by the loopback-mirror is received from the loopback-source. The | by the loopback-mirror is received from the loopback-source. The | |||
Receive timestamp MUST be based on the same clock used by the | same clock rate MUST used by the loopback-source. The initial | |||
loopback-source. The initial value of the timestamp SHOULD be | value of the timestamp SHOULD be random for security reasons (see | |||
random for security reasons (see Section 5.1 of RFC 3550 | Section 5.1 of RFC 3550 [RFC3550]). | |||
[RFC3550]). | ||||
Fragmentation (F): 2 bits | Fragmentation (F): 2 bits | |||
First Fragment (00) /Last Fragment (01) /No Fragmentation(10)/ | First Fragment (00) /Last Fragment (01) /No Fragmentation(10)/ | |||
Intermediate Fragment (11). This field identifies how much of the | Intermediate Fragment (11). This field identifies how much of the | |||
received packet is encapsulated in this packet by the loopback- | received packet is encapsulated in this packet by the loopback- | |||
mirror. If the received packet is not fragmented, this field is | mirror. If the received packet is not fragmented, this field is | |||
set to 10; otherwise the packet that contains the first fragments | set to 10; otherwise the packet that contains the first fragments | |||
sets this field to 00, the packet that contains the last fragment | sets this field to 00, the packet that contains the last fragment | |||
sets this field to 01, all other packets set this field to 11. | sets this field to 01, all other packets set this field to 11. | |||
7.1.3Usage of SDP | 7.1.3 Usage of SDP | |||
The payload type number for the encapsulated stream can be | The payload type number for the encapsulated stream can be | |||
negotiated using SDP. There is no static payload type assignment | negotiated using SDP. There is no static payload type assignment | |||
for the encapsulating stream, so dynamic payload type numbers MUST | for the encapsulating stream, so dynamic payload type numbers MUST | |||
be used. The binding to the name is indicated by an rtpmap | be used. The binding to the name is indicated by an rtpmap | |||
attribute. The name used in this binding is "encaprtp". | attribute. The name used in this binding is "encaprtp". | |||
The following is an example SDP fragment for encapsulated RTP. | The following is an example SDP fragment for encapsulated RTP. | |||
m=audio 41352 RTP/AVP 112 | m=audio 41352 RTP/AVP 112 | |||
a=rtpmap:112 encaprtp/8000 | a=rtpmap:112 encaprtp/8000 | |||
7.2 Direct loopback RTP payload format | 7.2 Direct loopback RTP payload format | |||
The direct loopback RTP payload format can be used in scenarios | The direct loopback RTP payload format can be used in scenarios | |||
where the 16 byte overhead of the encapsulated payload format is of | where the 16 byte overhead of the encapsulated payload format is of | |||
concern, or simply due to local policy. When using this payload | concern, or simply due to local policy. When using this payload | |||
format, the receiver MUST loop back each received RTP packet | format, the receiver MUST loop back each received RTP packet | |||
payload (not header) in a separate RTP packet. | payload (not header) in a separate RTP packet. | |||
Because a direct loopback format does not retain the original RTP | Because a direct loopback format does not retain the original RTP | |||
headers, there will be no indication of the original payload-type | headers, there will be no indication of the original payload-type | |||
sent to the mirror, in looped returning packets. Therefore, the | sent to the mirror, in looped-back packets. Therefore, the | |||
loopback source SHOULD only send one payload type per loopback RTP | loopback source SHOULD only send one payload type per loopback RTP | |||
session, if direct mode is used. | session, if direct mode is used. | |||
7.2.1Usage of RTP Header fields | 7.2.1 Usage of RTP Header fields | |||
Payload Type (PT): The assignment of an RTP payload type for the | Payload Type (PT): The assignment of an RTP payload type for the | |||
encapsulating packet format is outside the scope of this document; | encapsulating packet format is outside the scope of this document; | |||
it is either specified by the RTP profile under which this payload | it is either specified by the RTP profile under which this payload | |||
format is used or more likely signaled dynamically out-of-band | format is used or more likely signaled dynamically out-of-band | |||
(e.g., using SDP; section 7.2.3 defines the name binding). | (e.g., using SDP; section 7.2.3 defines the name binding). | |||
Marker (M) bit: Set to the value in the received packet. | Marker (M) bit: Set to the value in the received packet. | |||
Extension (X) bit: Defined by the RTP Profile used. | Extension (X) bit: Defined by the RTP Profile used. | |||
Sequence Number: The RTP sequence number SHOULD be generated by the | Sequence Number: The RTP sequence number SHOULD be generated by the | |||
loopback-mirror in the usual manner with a constant random offset. | loopback-mirror in the usual manner with a constant random offset, | |||
as per [RFC3550]. | ||||
Timestamp: The RTP timestamp denotes the sampling instant for when | Timestamp: The RTP timestamp denotes the sampling instant for when | |||
the loopback-mirror is transmitting this packet to the | the loopback-mirror is transmitting this packet to the | |||
loopback-source. The RTP timestamp MUST be based on the same clock | loopback-source. The same clock rate MUST be used as that of the | |||
as that of the received RTP packet. The initial value of the | received RTP packet. The initial value of the timestamp SHOULD be | |||
timestamp SHOULD be random for security reasons (see Section 5.1 of | random for security reasons (see Section 5.1 of RFC 3550 | |||
RFC 3550 [RFC3550]). | [RFC3550]). | |||
SSRC: set as described in RFC 3550 [RFC3550]. | SSRC: set as described in RFC 3550 [RFC3550]. | |||
CC and CSRC fields are used as described in RFC 3550 [RFC3550]. | CC and CSRC fields are used as described in RFC 3550 [RFC3550]. | |||
7.2.2RTP Payload Structure | 7.2.2 RTP Payload Structure | |||
This payload format does not define any payload specific headers. | This payload format does not define any payload specific headers. | |||
The loopback-mirror simply copies the RTP payload data from the | The loopback-mirror simply copies the RTP payload data from the | |||
payload portion of the RTP packet received from the loopback- | payload portion of the RTP packet received from the loopback- | |||
source. | source. | |||
7.2.3Usage of SDP | 7.2.3 Usage of SDP | |||
The payload type number for the payload loopback stream can be | The payload type number for the payload loopback stream can be | |||
negotiated using a mechanism like SDP. There is no static payload | negotiated using a mechanism like SDP. There is no static payload | |||
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. RTCP Requirements | 8. SRTP Behavior | |||
Secure RTP [RFC3711] MAY be used for loopback sessions. SRTP | ||||
operates at a lower logical layer than RTP, and thus if both sides | ||||
negotiate to use SRTP, each side uses its own key, performs | ||||
encryption/decryption, authentication, etc. Therefore the loopback | ||||
function on the mirror occurs after the SRTP packet has been | ||||
decrypted and authenticated, as a normal cleartext RTP packet | ||||
without an MKI or authentication tag; once the cleartext RTP packet | ||||
or payload is mirrored - either at the media-layer, direct packet- | ||||
layer, or encapsulated packet-layer - it is encrypted by the mirror | ||||
using its own key. | ||||
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 agent that is | answering entities. An offering or answering agent 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 offerer or | and RTCP-XR per RFC 3611 [RFC3611]. Furthermore, if the offerer or | |||
answerer choose to support RTCP-XR, they SHOULD support RTCP-XR | answerer 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 offerer and the | 4.1, 4.2, 4.6, and 4.7 of RFC 3611 [RFC3611]. The offerer and the | |||
answerer MAY support other RTCP-XR reporting blocks as defined by | answerer MAY support other RTCP-XR reporting blocks as defined by | |||
RFC 3611 [RFC3611]. | RFC 3611 [RFC3611]. | |||
9. Congestion Control | 10. Congestion Control | |||
All the participants in a loopback session SHOULD implement | All the participants in a media-level loopback session SHOULD | |||
congestion control mechanisms as defined by the RTP profile under | implement congestion control mechanisms as defined by the RTP | |||
which the loopback mechanism is implemented. For audio video | profile under which the loopback mechanism is implemented. For | |||
profiles, implementations SHOULD conform to the mechanism defined | audio video profiles, implementations SHOULD conform to the | |||
in Section 2 of RFC 3551. | mechanism defined in Section 2 of RFC 3551. | |||
10. Examples | For packet-level loopback types, the loopback source SHOULD | |||
implement congestion control. The mirror will simply reflect back | ||||
the RTP packets it receives (either in encapsulated or direct | ||||
modes), therefore the source needs to control the congestion of | ||||
both forward and reverse paths by reducing its sending rate to the | ||||
mirror. This keeps the loopback mirror implementation simpler, and | ||||
provides more flexibility for the source performing a loopback | ||||
test. | ||||
11. 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. | |||
10.1 Offer for specific media loopback type | 11.1 Offer for specific media loopback type | |||
An agent sends an SDP offer which looks like: | An agent sends an SDP offer 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=- | s=- | |||
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 | m=audio 49170 RTP/AVP 0 | |||
a=loopback:rtp-media-loopback | a=loopback:rtp-media-loopback | |||
skipping to change at page 18, line 45 | skipping to change at page 19, line 20 | |||
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 | a=loopback-mirror | |||
a=rtpmap:0 pcmu/8000 | a=rtpmap:0 pcmu/8000 | |||
The answerer is accepting to mirror the media from the offerer at | The answerer is accepting to mirror the media from the offerer at | |||
the media level. | the media level. | |||
10.2 Offer for choice of media loopback type | 11.2 Offer for choice of media loopback type | |||
An agent sends an SDP offer which looks like: | An agent sends an SDP offer 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=- | s=- | |||
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 | |||
a=loopback:rtp-media-loopback rtp-pkt-loopback | a=loopback:rtp-media-loopback rtp-pkt-loopback | |||
skipping to change at page 19, line 30 | skipping to change at page 20, line 4 | |||
v=0 | v=0 | |||
o=box 1234567890 1122334455 IN IP4 host.biloxi.example.com | o=box 1234567890 1122334455 IN IP4 host.biloxi.example.com | |||
s=- | s=- | |||
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 112 | m=audio 49270 RTP/AVP 0 112 | |||
a=loopback:rtp-pkt-loopback | a=loopback:rtp-pkt-loopback | |||
a=loopback-mirror | a=loopback-mirror | |||
a=rtpmap:0 pcmu/8000 | a=rtpmap:0 pcmu/8000 | |||
a=rtpmap:112 encaprtp/8000 | a=rtpmap:112 encaprtp/8000 | |||
The answerer is accepting to mirror the media from the offerer at | The answerer is accepting to mirror the media from the offerer at | |||
the packet level using the encapsulated RTP payload format. | the packet level using the encapsulated RTP payload format. | |||
10.3 Answerer rejecting loopback media | 11.3 Answerer rejecting loopback media | |||
An agent sends an SDP offer which looks like: | An agent sends an SDP offer 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=- | s=- | |||
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 | m=audio 49170 RTP/AVP 0 | |||
a=loopback:rtp-media-loopback | a=loopback:rtp-media-loopback | |||
skipping to change at page 20, line 24 | skipping to change at page 20, line 43 | |||
Note in this case the answerer did not indicate loopback support, | Note in this case the answerer did not indicate loopback support, | |||
although it could have and still used a port number of 0 to | although it could have and still used a port number of 0 to | |||
indicate it does not wish to accept that media session. | indicate it does not wish to accept that media session. | |||
Alternatively, the answering agent could have simply rejected the | Alternatively, the answering agent could have simply rejected the | |||
entire SDP offer through some higher-layer signaling protocol means | entire SDP offer through some higher-layer signaling protocol means | |||
(e.g., by rejecting the SIP INVITE request if the SDP offer was in | (e.g., by rejecting the SIP INVITE request if the SDP offer was in | |||
the INVITE). | the INVITE). | |||
11. Security Considerations | 12. Security Considerations | |||
The security considerations of [RFC3264] and [RFC3550] apply. | The security considerations of [RFC3264] and [RFC3550] apply. | |||
Given that media loopback may be automated without the end user's | Given that media loopback may be automated without the end user's | |||
knowledge, the answerer of the media loopback should be aware of | knowledge, the answerer of the media loopback should be aware of | |||
denial of service attacks. It is recommended that session requests | denial of service attacks. It is RECOMMENDED that session requests | |||
for media loopback be authenticated and the frequency of such | for media loopback be authenticated and the frequency of such | |||
sessions limited by the answerer. | sessions limited by the answerer. | |||
If the higher-layer signaling protocol were not authenticated, a | If the higher-layer signaling protocol were not authenticated, a | |||
malicious attacker could create a session between two parties the | malicious attacker could create a session between two parties the | |||
attacker wishes to target, with each party acting as the loopback- | attacker wishes to target, with each party acting as the loopback- | |||
mirror to the other, of rtp-pkt-loopback type. A few RTP packets | mirror to the other, of rtp-pkt-loopback type. A few RTP packets | |||
sent to either party would then infinitely loop among the two, as | sent to either party would then infinitely loop among the two, as | |||
fast as they could process them, consuming their resources and | fast as they could process them, consuming their resources and | |||
network bandwidth. | network bandwidth. | |||
skipping to change at page 21, line 4 | skipping to change at page 21, line 27 | |||
loopback-source, and uses the mirror to reflect the attacker's | loopback-source, and uses the mirror to reflect the attacker's | |||
packets against a target - perhaps a target the attacker could not | packets against a target - perhaps a target the attacker could not | |||
reach directly, such as one behind a firewall for example. Or the | reach directly, such as one behind a firewall for example. Or the | |||
attacker could initiate the session as the loopback-mirror, in the | attacker could initiate the session as the loopback-mirror, in the | |||
hopes of making the peer generate media against another target. | hopes of making the peer generate media against another target. | |||
If end-user devices such as mobile phones answer loopback requests | If end-user devices such as mobile phones answer loopback requests | |||
without authentication and without notifying the end-user, then an | without authentication and without notifying the end-user, then an | |||
attacker could cause the battery to drain, and possibly deny the | attacker could cause the battery to drain, and possibly deny the | |||
end-user normal phone service or cause network data usage fees. | end-user normal phone service or cause network data usage fees. | |||
This could even occur naturally if a legitimate loopback session | This could even occur naturally if a legitimate loopback session | |||
does not terminate properly and the end device does not have a | does not terminate properly and the end device does not have a | |||
timeout mechanism for such. | timeout mechanism for such. | |||
For the reasons noted above, end user devices SHOULD provide a | For the reasons noted above, end user devices SHOULD provide a | |||
means of indicating to the human user that the device is in a | means of indicating to the human user that the device is in a | |||
loopback session, even if it is an authenticated session. Devices | loopback session, even if it is an authenticated session. Devices | |||
which answer or generate loopback sessions SHOULD either perform | that answer or generate loopback sessions SHOULD either perform | |||
keepalive/refresh tests of the session state through some means, or | keepalive/refresh tests of the session state through some means, or | |||
time out the session automatically. | time out the session automatically. | |||
12. Implementation Considerations | 13. 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 possible that the solution may not be light-weight enough for | |||
the common case. In light of this concern, this section clarifies | some implementations. In light of this concern, this section | |||
which features of the loopback proposal MUST be implemented for all | clarifies which features of the loopback proposal MUST be | |||
implementations and which features MAY be deferred if the complete | implemented for all implementations and which features MAY be | |||
solution is not desired. | deferred if the complete solution is not desired. | |||
All implementations MUST at least support the rtp-pkt-loopback mode | All implementations MUST at least support the rtp-pkt-loopback mode | |||
for loopback-type, with direct media loopback payload encoding. In | for loopback-type, with direct media loopback payload encoding. In | |||
addition, for the loopback role, all implementations of an SDP | addition, for the loopback role, all implementations of an SDP | |||
offerer MUST at least be able to act as a loopback-source. | offerer MUST at least be able to act as a loopback-source. | |||
13. IANA Considerations | 14. IANA Considerations | |||
13.1 SDP Attributes | 14.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 | |||
indicate the type of media loopback. | indicate the type of media loopback. | |||
Allowed attribute values: The parameters to 'loopback' may be | Allowed attribute values: The parameters to 'loopback' may be | |||
one or more of "rtp-pkt-loopback" and | one or more of "rtp-pkt-loopback" and | |||
"rtp-media-loopback". See section 5 | "rtp-media-loopback". See section 5 | |||
of this document for syntax. | of this document for syntax. | |||
Contact name: Kaynam Hedayat | Contact name: Kaynam Hedayat | |||
<kaynam.hedayat@exfo.com>. | <kaynam.hedayat@exfo.com>. | |||
Attribute name: "loopback-source". | Attribute name: loopback-source | |||
Type of attribute: Media level. | Type of attribute: Media level. | |||
Subject to charset: No. | Subject to charset: No. | |||
Purpose of attribute: The 'loopback-source' attribute | Purpose of attribute: The 'loopback-source' attribute | |||
specifies that the sender is the media | specifies that the sender is the media | |||
source and expects the receiver to act | source and expects the receiver to act | |||
as a loopback-mirror. | as a loopback-mirror. | |||
Allowed attribute values: None. | Allowed attribute values: None. | |||
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: None. | Allowed attribute values: None. | |||
13.2 MIME Types | 14.2 Media Types | |||
The IANA has registered the following MIME types: | The IANA has registered the following media types: | |||
13.2.1 audio/encaprtp | 14.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: | |||
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. This is specified by the loop back | |||
source, and reflected by the mirror. | ||||
Optional parameters: none | Optional parameters: none | |||
Encoding considerations: This media type is framed | Encoding considerations: This media type is framed. | |||
binary data. | ||||
Security considerations: See Section 12 of this document. | Security considerations: See Section 12 of this document. | |||
Interoperability considerations: none | Interoperability considerations: none | |||
Published specification: This MIME type is described fully | Published specification: This document. | |||
within this document. | ||||
Applications which use this media type: Applications wishing | Applications which use this media type: Applications wishing | |||
to monitor and ensure the quality of transport to the | to monitor and ensure the quality of transport to the | |||
edge of a given VoIP, Real-Time Text or Video Over IP | edge of a given VoIP Service. | |||
Service. | ||||
Additional information: none | Additional information: none | |||
Person & email address to contact for further information: | Contact: the authors of this document. | |||
Kaynam Hedayat | ||||
EMail: kaynam.hedayat@exfo.com | ||||
Intended usage: COMMON | Intended usage: LIMITED USE | |||
Restrictions on usage: This media type depends on RTP | Restrictions on usage: This media type depends on RTP | |||
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. | |||
13.2.2 video/encaprtp | 14.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: | |||
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. This is specified by the loop back | |||
may be specified. | source, and reflected by the mirror. | |||
Optional parameters: none | Optional parameters: none | |||
Encoding considerations: This media type is framed | Encoding considerations: This media type is framed. | |||
binary data. | ||||
Security considerations: See Section 12 of this document. | Security considerations: See Section 12 of this document. | |||
Interoperability considerations: none | Interoperability considerations: none | |||
Published specification: This MIME type is described fully | Published specification: This document. | |||
within this document. | ||||
Applications which use this media type: Applications wishing | Applications which use this media type: Applications wishing | |||
to monitor and ensure the quality of transport to the | to monitor and ensure the quality of transport to the | |||
edge of a given VoIP, Real-Time Text or Video Over IP | edge of a given Video Over IP Service. | |||
Service. | ||||
Additional information: none | Additional information: none | |||
Person & email address to contact for further information: | Contact: the authors of this document. | |||
Kaynam Hedayat | ||||
EMail: kaynam.hedayat@exfo.com | ||||
Intended usage: COMMON | Intended usage: LIMITED USE | |||
Restrictions on usage: This media type depends on RTP | Restrictions on usage: This media type depends on RTP | |||
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. | |||
13.2.3 text/encaprtp | 14.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. This is specified by the loop back | |||
may be specified. | source, and reflected by the mirror. | |||
Optional parameters: none | Optional parameters: none | |||
Encoding considerations: This media type is framed | Encoding considerations: This media type is framed. | |||
binary data. | ||||
Security considerations: See Section 12 of this document. | Security considerations: See Section 12 of this document. | |||
Interoperability considerations: none | Interoperability considerations: none | |||
Published specification: This MIME type is described fully | Published specification: This document. | |||
within this document. | ||||
Applications which use this media type: Applications wishing | Applications which use this media type: Applications wishing | |||
to monitor and ensure the quality of transport to the | to monitor and ensure the quality of transport to the | |||
edge of a given VoIP, Real-Time Text or Video Over IP | edge of a given Real-Time Text Service. | |||
Service. | ||||
Additional information: none | Additional information: none | |||
Person & email address to contact for further information: | Contact: the authors of this document. | |||
Kaynam Hedayat | ||||
EMail: kaynam.hedayat@exfo.com | ||||
Intended usage: COMMON | Intended usage: LIMITED USE | |||
Restrictions on usage: This media type depends on RTP | Restrictions on usage: This media type depends on RTP | |||
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. | |||
13.2.4 application/encaprtp | 14.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: | |||
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. This is specified by the loop back | |||
may be specified. | source, and reflected by the mirror. | |||
Optional parameters: none | Optional parameters: none | |||
Encoding considerations: This media type is framed | Encoding considerations: This media type is framed. | |||
binary data. | ||||
Security considerations: See Section 12 of this document. | Security considerations: See Section 12 of this document. | |||
Interoperability considerations: none | Interoperability considerations: none | |||
Published specification: This MIME type is described fully | Published specification: This document. | |||
within this document. | ||||
Applications which use this media type: Applications wishing | Applications which use this media type: Applications wishing | |||
to monitor and ensure the quality of transport to the | to monitor and ensure the quality of transport to the | |||
edge of a given VoIP, Real-Time Text or Video Over IP | edge of a given Real-Time Application Service. | |||
Service. | ||||
Additional information: none | Additional information: none | |||
Person & email address to contact for further information: | Contact: the authors of this document. | |||
Kaynam Hedayat | ||||
EMail: kaynam.hedayat@exfo.com | ||||
Intended usage: COMMON | Intended usage: LIMITED USE | |||
Restrictions on usage: This media type depends on RTP | Restrictions on usage: This media type depends on RTP | |||
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. | |||
13.2.5 audio/rtploopback | 14.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: | |||
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. This is specified by the loop back | |||
source, and reflected by the mirror. | ||||
Optional parameters: none | Optional parameters: none | |||
Encoding considerations: This media type is framed | Encoding considerations: This media type is framed. | |||
binary data. | ||||
Security considerations: See Section 12 of this document. | Security considerations: See Section 12 of this document. | |||
Interoperability considerations: none | Interoperability considerations: none | |||
Published specification: This MIME type is described fully | Published specification: This document. | |||
within this document. | ||||
Applications which use this media type: Applications wishing | Applications which use this media type: Applications wishing | |||
to monitor and ensure the quality of transport to the | to monitor and ensure the quality of transport to the | |||
edge of a given VoIP, Real-Time Text or Video Over IP | edge of a given VoIP Service. | |||
Service. | ||||
Additional information: none | Additional information: none | |||
Person & email address to contact for further information: | Contact: the authors of this document. | |||
Kaynam Hedayat | ||||
EMail: kaynam.hedayat@exfo.com | ||||
Intended usage: COMMON | Intended usage: LIMITED USE | |||
Restrictions on usage: This media type depends on RTP | Restrictions on usage: This media type depends on RTP | |||
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. | |||
13.2.6 video/rtploopback | 14.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. This is specified by the loop back | |||
may be specified. | source, and reflected by the mirror. | |||
Optional parameters: none | Optional parameters: none | |||
Encoding considerations: This media type is framed | Encoding considerations: This media type is framed. | |||
binary data. | ||||
Security considerations: See Section 12 of this document. | Security considerations: See Section 12 of this document. | |||
Interoperability considerations: none | Interoperability considerations: none | |||
Published specification: This MIME type is described fully | Published specification: This document. | |||
within this document. | ||||
Applications which use this media type: Applications wishing | Applications which use this media type: Applications wishing | |||
to monitor and ensure the quality of transport to the | to monitor and ensure the quality of transport to the | |||
edge of a given VoIP, Real-Time Text or Video Over IP | edge of a given Video Over IP Service. | |||
Service. | ||||
Additional information: none | Additional information: none | |||
Person & email address to contact for further information: | Contact: the authors of this document. | |||
Kaynam Hedayat | ||||
EMail: kaynam.hedayat@exfo.com | ||||
Intended usage: COMMON | Intended usage: LIMITED USE | |||
Restrictions on usage: This media type depends on RTP | Restrictions on usage: This media type depends on RTP | |||
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. | |||
13.2.7 text/rtploopback | 14.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. This is specified by the loop back | |||
may be specified. | source, and reflected by the mirror. | |||
Optional parameters: none | Optional parameters: none | |||
Encoding considerations: This media type is framed | Encoding considerations: This media type is framed. | |||
binary data. | ||||
Security considerations: See Section 12 of this document. | Security considerations: See Section 12 of this document. | |||
Interoperability considerations: none | Interoperability considerations: none | |||
Published specification: This MIME type is described fully | Published specification: This document. | |||
within this document. | ||||
Applications which use this media type: Applications wishing | Applications which use this media type: Applications wishing | |||
to monitor and ensure the quality of transport to the | to monitor and ensure the quality of transport to the | |||
edge of a given VoIP, Real-Time Text or Video Over IP | edge of a given Real-Time Text Service. | |||
Service. | ||||
Additional information: none | Additional information: none | |||
Person & email address to contact for further information: | Contact: the authors of this document. | |||
Kaynam Hedayat | ||||
EMail: kaynam.hedayat@exfo.com | ||||
Intended usage: COMMON | Intended usage: LIMITED USE | |||
Restrictions on usage: This media type depends on RTP | Restrictions on usage: This media type depends on RTP | |||
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. | |||
13.2.8 application/rtploopback | 14.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 | |||
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. This is specified by the loop back | |||
may be specified. | source, and reflected by the mirror. | |||
Optional parameters: none | Optional parameters: none | |||
Encoding considerations: This media type is framed | Encoding considerations: This media type is framed. | |||
binary data. | ||||
Security considerations: See Section 12 of this document. | Security considerations: See Section 12 of this document. | |||
Interoperability considerations: none | Interoperability considerations: none | |||
Published specification: This MIME type is described fully | Published specification: This document. | |||
within this document. | ||||
Applications which use this media type: Applications wishing | Applications which use this media type: Applications wishing | |||
to monitor and ensure the quality of transport to the | to monitor and ensure the quality of transport to the | |||
edge of a given VoIP, Real-Time Text or Video Over IP | edge of a given Real-Time Application Service. | |||
Service. | ||||
Additional information: none | Additional information: none | |||
Person & email address to contact for further information: | Contact: the authors of this document. | |||
Kaynam Hedayat | ||||
EMail: kaynam.hedayat@exfo.com | ||||
Intended usage: COMMON | Intended usage: LIMITED USE | |||
Restrictions on usage: This media type depends on RTP | Restrictions on usage: This media type depends on RTP | |||
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. Acknowledgements | 15. Acknowledgements | |||
This document's editor would like to thank the original authors of | This document's editor would like to thank the original authors of | |||
the document: Kaynam Hedayat, et al. The editor has made fairly | the document: Kaynam Hedayat, Nagarjuna Venna, Paul E. Jones, Arjun | |||
insignificant changes in the end. Also, we'd like to thank Magnus | Roychowdhury, Chelliah SivaChelvan, and Nathan Stratton. The | |||
Westerlund, Miguel Garcia, Flemming Andreason, Gunnar Hellstrom, | editor has made fairly insignificant changes in the end. Also, | |||
Emil Ivov and Dan Wing for their feedback, comments and | we'd like to thank Magnus Westerlund, Miguel Garcia, Flemming | |||
suggestions. | Andreasen, Gunnar Hellstrom, Emil Ivov and Dan Wing for their | |||
feedback, comments and suggestions. | ||||
15. Normative References | 16. Normative References | |||
[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. | |||
[RFC3550] Schulzrinne, H., Casner, S., Frederick, R. and V. | [RFC3550] Schulzrinne, H., Casner, S., Frederick, R. and V. | |||
Jacobson, "RTP: A Transport Protocol for Real-Time | Jacobson, "RTP: A Transport Protocol for Real-Time | |||
Applications", STD 64, RFC 3550, July 2003. | Applications", STD 64, RFC 3550, July 2003. | |||
[RFC3611] Almeroth, K., Caceres, R., Clark, A., Cole, R., | [RFC3611] Almeroth, K., Caceres, R., Clark, A., Cole, R., | |||
skipping to change at page 32, line 25 | skipping to change at page 32, line 8 | |||
[RFC3551] Schulzrinne, H., Casner, S., "RTP Profile for Audio | [RFC3551] Schulzrinne, H., Casner, S., "RTP Profile for Audio | |||
and Video Conferences with Minimial Control", STD 65, | and Video Conferences with Minimial Control", STD 65, | |||
RFC 3551, July 2003. | RFC 3551, July 2003. | |||
[RFC4566] Handley, M., Jacobson, V., Perkins, C., "SDP: Session | [RFC4566] Handley, M., Jacobson, V., Perkins, C., "SDP: Session | |||
Description Protocol", RFC 4566, July 2006. | Description Protocol", RFC 4566, July 2006. | |||
[RFC4855] Casner, S., "Media Type Registration of RTP Payload | [RFC4855] Casner, S., "Media Type Registration of RTP Payload | |||
Formats", RFC 4855, February 2007. | Formats", RFC 4855, February 2007. | |||
16. Informative References | 17. Informative References | |||
[RFC5245] Rosenberg, J., "Interactive Connectivity | [RFC5245] Rosenberg, J., "Interactive Connectivity | |||
Establishment (ICE): A Protocol for Network Address | Establishment (ICE): A Protocol for Network Address | |||
Translator (NAT) Traversal for Offer/Answer | Translator (NAT) Traversal for Offer/Answer | |||
Protocols", RFC 5245, April 2010. | Protocols", RFC 5245, April 2010. | |||
[RFC6263] Marjou, X., Sollaud, A., "Application Mechanism for | [RFC6263] Marjou, X., Sollaud, A., "Application Mechanism for | |||
Keeping Alive the NAT Mappings Associated with RTP / | Keeping Alive the NAT Mappings Associated with RTP / | |||
RTP Control Protocol (RTCP) Flows", RFC 6263, June | RTP Control Protocol (RTCP) Flows", RFC 6263, June | |||
2011. | 2011. | |||
skipping to change at page 33, line 21 | skipping to change at page 33, line 4 | |||
URI: http://www.exfo.com/ | URI: http://www.exfo.com/ | |||
Nagarjuna Venna | Nagarjuna Venna | |||
Saperix | Saperix | |||
738 Main Street, #398 | 738 Main Street, #398 | |||
Waltham, MA 02451 | Waltham, MA 02451 | |||
US | US | |||
EMail: vnagarjuna@saperix.com | EMail: vnagarjuna@saperix.com | |||
URI: http://www.saperix.com/ | URI: http://www.saperix.com/ | |||
Paul E. Jones | Paul E. Jones | |||
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 | |||
EMail: paulej@packetizer.com | EMail: paulej@packetizer.com | |||
URI: http://www.cisco.com/ | URI: http://www.cisco.com/ | |||
Arjun Roychowdhury | ||||
Hughes Systique Corp. | ||||
15245 Shady Grove Rd, Ste 330 | ||||
Rockville MD 20850 | ||||
US | ||||
EMail: arjun@hsc.com | ||||
URI: http://www. hsc.com/ | ||||
Chelliah SivaChelvan | ||||
Cisco Systems, Inc. | ||||
2200 East President George Bush Turnpike | ||||
Richardson, TX 75082 | ||||
US | ||||
EMail: chelliah@cisco.com | ||||
URI: http://www.cisco.com/ | ||||
Nathan Stratton | Nathan Stratton | |||
BlinkMind, Inc. | BlinkMind, Inc. | |||
2027 Briarchester Dr. | 2027 Briarchester Dr. | |||
Katy, TX 77450 | Katy, TX 77450 | |||
EMail: nathan@robotics.net | EMail: nathan@robotics.net | |||
URI: http://www.robotics.net/ | URI: http://www.robotics.net/ | |||
End of changes. 144 change blocks. | ||||
285 lines changed or deleted | 232 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/ |