draft-ietf-mmusic-trickle-ice-sip-15.txt   draft-ietf-mmusic-trickle-ice-sip-16.txt 
Network Working Group E. Ivov Network Working Group E. Ivov
Internet-Draft Jitsi Internet-Draft Jitsi
Intended status: Standards Track T. Stach Intended status: Standards Track T. Stach
Expires: December 4, 2018 Unaffiliated Expires: December 9, 2018 Unaffiliated
E. Marocco E. Marocco
Telecom Italia Telecom Italia
C. Holmberg C. Holmberg
Ericsson Ericsson
June 2, 2018 June 7, 2018
A Session Initiation Protocol (SIP) Usage for Incremental Provisioning A Session Initiation Protocol (SIP) Usage for Incremental Provisioning
of Candidates for the Interactive Connectivity Establishment (Trickle of Candidates for the Interactive Connectivity Establishment (Trickle
ICE) ICE)
draft-ietf-mmusic-trickle-ice-sip-15 draft-ietf-mmusic-trickle-ice-sip-16
Abstract Abstract
The Interactive Connectivity Establishment (ICE) protocol describes a The Interactive Connectivity Establishment (ICE) protocol describes a
Network Address Translator (NAT) traversal mechanism for UDP-based Network Address Translator (NAT) traversal mechanism for UDP-based
multimedia sessions established with the Offer/Answer model. The ICE multimedia sessions established with the Offer/Answer model. The ICE
extension for Incremental Provisioning of Candidates (Trickle ICE) extension for Incremental Provisioning of Candidates (Trickle ICE)
defines a mechanism that allows ICE Agents to shorten session defines a mechanism that allows ICE Agents to shorten session
establishment delays by making the candidate gathering and establishment delays by making the candidate gathering and
connectivity checking phases of ICE non-blocking and by executing connectivity checking phases of ICE non-blocking and by executing
skipping to change at page 1, line 49 skipping to change at page 1, line 49
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on December 4, 2018. This Internet-Draft will expire on December 9, 2018.
Copyright Notice Copyright Notice
Copyright (c) 2018 IETF Trust and the persons identified as the Copyright (c) 2018 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
(https://trustee.ietf.org/license-info) in effect on the date of (https://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 3, line 5 skipping to change at page 3, line 5
URIs (GRUU) . . . . . . . . . . . . . . . . . . . . . . . 21 URIs (GRUU) . . . . . . . . . . . . . . . . . . . . . . . 21
5.3. Fall-back to Half Trickle . . . . . . . . . . . . . . . . 22 5.3. Fall-back to Half Trickle . . . . . . . . . . . . . . . . 22
6. Considerations for RTP and RTCP Multiplexing . . . . . . . . 24 6. Considerations for RTP and RTCP Multiplexing . . . . . . . . 24
7. Considerations for Media Multiplexing . . . . . . . . . . . . 26 7. Considerations for Media Multiplexing . . . . . . . . . . . . 26
8. SDP 'end-of-candidates' Attribute . . . . . . . . . . . . . . 28 8. SDP 'end-of-candidates' Attribute . . . . . . . . . . . . . . 28
8.1. Definition . . . . . . . . . . . . . . . . . . . . . . . 28 8.1. Definition . . . . . . . . . . . . . . . . . . . . . . . 28
8.2. Offer/Answer Procedures . . . . . . . . . . . . . . . . . 29 8.2. Offer/Answer Procedures . . . . . . . . . . . . . . . . . 29
9. Content Type 'application/trickle-ice-sdpfrag' . . . . . . . 29 9. Content Type 'application/trickle-ice-sdpfrag' . . . . . . . 29
9.1. Overall Description . . . . . . . . . . . . . . . . . . . 29 9.1. Overall Description . . . . . . . . . . . . . . . . . . . 29
9.2. Grammar . . . . . . . . . . . . . . . . . . . . . . . . . 29 9.2. Grammar . . . . . . . . . . . . . . . . . . . . . . . . . 29
10. Info Package . . . . . . . . . . . . . . . . . . . . . . . . 31 10. Info Package . . . . . . . . . . . . . . . . . . . . . . . . 32
10.1. Rationale - Why INFO? . . . . . . . . . . . . . . . . . 31 10.1. Rationale - Why INFO? . . . . . . . . . . . . . . . . . 32
10.2. Overall Description . . . . . . . . . . . . . . . . . . 32 10.2. Overall Description . . . . . . . . . . . . . . . . . . 33
10.3. Applicability . . . . . . . . . . . . . . . . . . . . . 32 10.3. Applicability . . . . . . . . . . . . . . . . . . . . . 33
10.4. Info Package Name . . . . . . . . . . . . . . . . . . . 33 10.4. Info Package Name . . . . . . . . . . . . . . . . . . . 34
10.5. Info Package Parameters . . . . . . . . . . . . . . . . 33 10.5. Info Package Parameters . . . . . . . . . . . . . . . . 34
10.6. SIP Option Tags . . . . . . . . . . . . . . . . . . . . 33 10.6. SIP Option Tags . . . . . . . . . . . . . . . . . . . . 34
10.7. Info Request Body Parts . . . . . . . . . . . . . . . . 33 10.7. Info Request Body Parts . . . . . . . . . . . . . . . . 34
10.8. Info Package Usage Restrictions . . . . . . . . . . . . 33 10.8. Info Package Usage Restrictions . . . . . . . . . . . . 34
10.9. Rate of INFO Requests . . . . . . . . . . . . . . . . . 33 10.9. Rate of INFO Requests . . . . . . . . . . . . . . . . . 34
10.10. Info Package Security Considerations . . . . . . . . . . 34 10.10. Info Package Security Considerations . . . . . . . . . . 35
11. Deployment Considerations . . . . . . . . . . . . . . . . . . 34 11. Deployment Considerations . . . . . . . . . . . . . . . . . . 35
12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 34 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 35
12.1. SDP 'end-of-candidates' Attribute . . . . . . . . . . . 34 12.1. SDP 'end-of-candidates' Attribute . . . . . . . . . . . 35
12.2. Media Type 'application/trickle-ice-sdpfrag' . . . . . . 35 12.2. Media Type 'application/trickle-ice-sdpfrag' . . . . . . 36
12.3. SIP Info Package 'trickle-ice' . . . . . . . . . . . . . 37 12.3. SIP Info Package 'trickle-ice' . . . . . . . . . . . . . 38
12.4. SIP Option Tag 'trickle-ice' . . . . . . . . . . . . . . 37 12.4. SIP Option Tag 'trickle-ice' . . . . . . . . . . . . . . 38
13. Security Considerations . . . . . . . . . . . . . . . . . . . 37 13. Security Considerations . . . . . . . . . . . . . . . . . . . 38
14. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 38 14. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 39
15. Change Log . . . . . . . . . . . . . . . . . . . . . . . . . 38 15. Change Log . . . . . . . . . . . . . . . . . . . . . . . . . 39
16. References . . . . . . . . . . . . . . . . . . . . . . . . . 42 16. References . . . . . . . . . . . . . . . . . . . . . . . . . 43
16.1. Normative References . . . . . . . . . . . . . . . . . . 42 16.1. Normative References . . . . . . . . . . . . . . . . . . 43
16.2. Informative References . . . . . . . . . . . . . . . . . 44 16.2. Informative References . . . . . . . . . . . . . . . . . 46
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 45 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 46
1. Introduction 1. Introduction
The Interactive Connectivity Establishment (ICE) protocol The Interactive Connectivity Establishment (ICE) protocol
[I-D.ietf-ice-rfc5245bis] describes a mechanism for Network Address [I-D.ietf-ice-rfc5245bis] describes a mechanism for Network Address
Translator (NAT) traversal that consists of three main phases. Translator (NAT) traversal that consists of three main phases.
During the first phase an agent gathers a set of candidate transport During the first phase an agent gathers a set of candidate transport
addresses (source IP address, port and transport protocol). This is addresses (source IP address, port and transport protocol). This is
followed by a second phase where these candidates are sent to a followed by a second phase where these candidates are sent to a
skipping to change at page 9, line 18 skipping to change at page 9, line 18
[I-D.ietf-mmusic-ice-sip-sdp]) for the RTCP transport address. [I-D.ietf-mmusic-ice-sip-sdp]) for the RTCP transport address.
If the Offerer wants to use RTCP multiplexing [RFC5761] and/or If the Offerer wants to use RTCP multiplexing [RFC5761] and/or
exclusive RTCP multiplexing [I-D.ietf-mmusic-mux-exclusive], it still exclusive RTCP multiplexing [I-D.ietf-mmusic-mux-exclusive], it still
will include the "a=rtcp-mux" and/or "a=rctp-mux-only" attribute in will include the "a=rtcp-mux" and/or "a=rctp-mux-only" attribute in
the initial Offer. the initial Offer.
In any case, the Offerer MUST include the attribute "a=ice- In any case, the Offerer MUST include the attribute "a=ice-
options:trickle" in accordance to [I-D.ietf-ice-trickle] and MUST options:trickle" in accordance to [I-D.ietf-ice-trickle] and MUST
include in each "m="-line a "a=mid:" attribute in accordance to include in each "m="-line a "a=mid:" attribute in accordance to
[RFC5888]. The a=mid: attribute identifies the m-line to which a [RFC5888]. The "a=mid:" attribute identifies the "m="-line to which
candidate belongs and helps in case of multiple m-lines, when a candidate belongs and helps in case of multiple "m="-lines, when
candidates gathering could occur in a order different from the order candidates gathering could occur in a order different from the order
of the m-lines. of the "m="-lines.
4.1.2. Receiving the Initial Offer 4.1.2. Receiving the Initial Offer
If the initial Offer included candidates, the Answerer uses these If the initial Offer included candidates, the Answerer uses these
candidates to start ICE processing as specified in candidates to start ICE processing as specified in
[I-D.ietf-ice-trickle]. [I-D.ietf-ice-trickle].
If the initial Offer included the attribute a=ice-options:trickle, If the initial Offer included the attribute a=ice-options:trickle,
the Answerer MUST be prepared for receiving trickled candidates later the Answerer MUST be prepared for receiving trickled candidates later
on. on.
skipping to change at page 27, line 5 skipping to change at page 27, line 5
Receipt of this attribute at the Offerer in an INFO request prior to Receipt of this attribute at the Offerer in an INFO request prior to
the Answer indicates that the Answerer supports and uses bundling. the Answer indicates that the Answerer supports and uses bundling.
The Offerer can use this information e.g. for stopping the gathering The Offerer can use this information e.g. for stopping the gathering
of candidates for the remaining "m=" lines in a bundle and/or for of candidates for the remaining "m=" lines in a bundle and/or for
freeing corresponding resources. freeing corresponding resources.
This behaviour is illustrated by the following example Offer that This behaviour is illustrated by the following example Offer that
indicates support for Media Multiplexing. indicates support for Media Multiplexing.
In case the Offerer had sent already candidates for m-lines in a In case the Offerer had sent already candidates for "m="-lines in a
bundle in a previous INFO request, it still needs to repeat them in bundle in a previous INFO request, it still needs to repeat them in
subsequent INFO requests, even in case that support for bundling was subsequent INFO requests, even in case that support for bundling was
confirmed by the Answerer and the Offerer has released no longer confirmed by the Answerer and the Offerer has released no longer
needed candidates. needed candidates.
v=0 v=0
o=alice 2890844526 2890844526 IN IP6 atlanta.example.com o=alice 2890844526 2890844526 IN IP6 atlanta.example.com
s= s=
c=IN IP6 2001:db8:a0b:12f0::3 c=IN IP6 2001:db8:a0b:12f0::3
t=0 0 t=0 0
a=group:BUNDLE foo bar a=group:BUNDLE foo bar
a=ice-pwd:777uzjYhagZgasd88fgpdd a=ice-pwd:777uzjYhagZgasd88fgpdd
a=ice-ufrag:Yhh8 a=ice-ufrag:Yhh8
m=audio 10000 RTP/AVP 0 m=audio 10000 RTP/AVP 0
a=mid:foo a=mid:foo
a=rtcp-mux a=rtcp-mux
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
a=extmap 1 urn:ietf:params:rtp-hdrext:sdes:mid a=extmap 1 urn:ietf:params:rtp-hdrext:sdes:mid
a=candidate:1 1 UDP 1658497328 2001:db8:a0b:12f0::3 10000 typ host a=candidate:1 1 UDP 1658497328 2001:db8:a0b:12f0::3 10000 typ host
m=video 10002 RTP/AVP 31
a=mid:bar
a=rtcp-mux
a=rtpmap:31 H261/90000
a=extmap 1 urn:ietf:params:rtp-hdrext:sdes:mid
The example Offer indicates support for RTP and RTCP multiplexing and The example Offer indicates support for RTP and RTCP multiplexing and
contains a "a=candidate:" attribute only for the m-line with the contains a "a=candidate:" attribute only for the "m="-line with the
suggested Offerer bundle address. Once the dialog is established as suggested Offerer bundle address. Once the dialog is established as
described in Section 4.3 the Answerer sends the following INFO described in Section 4.3 the Answerer sends the following INFO
request. request.
INFO sip:alice@example.com SIP/2.0 INFO sip:alice@example.com SIP/2.0
... ...
Info-Package: trickle-ice Info-Package: trickle-ice
Content-type: application/trickle-ice-sdpfrag Content-type: application/trickle-ice-sdpfrag
Content-Disposition: Info-Package Content-Disposition: Info-Package
Content-length: 219 Content-length: 219
a=group:BUNDLE foo bar a=group:BUNDLE foo bar
a=ice-pwd:asd88fgpdd777uzjYhagZg a=ice-pwd:asd88fgpdd777uzjYhagZg
a=ice-ufrag:8hhY a=ice-ufrag:8hhY
m=audio 9 RTP/AVP 0 m=audio 9 RTP/AVP 0
a=mid:foo a=mid:foo
a=rtcp-mux a=rtcp-mux
a=candidate:1 1 UDP 1658497328 2001:db8:a0b:12f0::3 5000 typ host a=candidate:1 1 UDP 1658497328 2001:db8:a0b:12f0::3 5000 typ host
m=audio 9 RTP/AVP 0
a=mid:bar
This INFO request indicates that the Answerer supports and uses Media This INFO request indicates that the Answerer supports and uses Media
Multiplexing as well. Note, that the second "m=" line shows the Multiplexing as well. Note that the Answerer only includes a single
default values as specified in section Section 4.4, e.g. media set pseudo "m="-line since candidates matching those from the second
'audio' although 'video' was offered. The receiving ICE Agents MUST "m="-line in the offer are not needed from the Answerer.
ignore these default values in the pseudo "m=" lines.
The INFO request also indicates that the Answerer accepted the The INFO request also indicates that the Answerer accepted the
suggested Offerer Bundle Address. This allows the Offerer to omit suggested Offerer Bundle Address. This allows the Offerer to omit
gathering of RTP and RTCP candidates for the other "m=" lines or gathering of RTP and RTCP candidates for the other "m=" lines or
releasing already gathered candidates. If the INFO request did not releasing already gathered candidates. If the INFO request did not
contain the a=group:BUNDLE attribute, the Offerer has to gather RTP contain the a=group:BUNDLE attribute, the Offerer has to gather RTP
and RTCP candidates for the other "m=" lines unless it wants to wait and RTCP candidates for the other "m=" lines unless it wants to wait
until receipt of an Answer that eventually confirms support or non- until receipt of an Answer that eventually confirms support or non-
support for Media Multiplexing. support for Media Multiplexing.
skipping to change at page 42, line 33 skipping to change at page 43, line 33
Require: header field, usage of Require: header field in case of Require: header field, usage of Require: header field in case of
provisioning, text on repetition of candidates in case of RTCP mux provisioning, text on repetition of candidates in case of RTCP mux
and Bundle, various other editorial improvements/corrections based and Bundle, various other editorial improvements/corrections based
on comments from Adam Roach on comments from Adam Roach
o Modified text on rate limitation of INFO requests based on o Modified text on rate limitation of INFO requests based on
comments of Mirja Kuehlewind, Adam Roach and Roman Shpount comments of Mirja Kuehlewind, Adam Roach and Roman Shpount
o some editorial corrections o some editorial corrections
Changes from draft-ietf-mmusic-trickle-ice-sip-15
Corrections in section 7 on Media Multiplexing
16. References 16. References
16.1. Normative References 16.1. Normative References
[I-D.ietf-ice-rfc5245bis] [I-D.ietf-ice-rfc5245bis]
Keranen, A., Holmberg, C., and J. Rosenberg, "Interactive Keranen, A., Holmberg, C., and J. Rosenberg, "Interactive
Connectivity Establishment (ICE): A Protocol for Network Connectivity Establishment (ICE): A Protocol for Network
Address Translator (NAT) Traversal", draft-ietf-ice- Address Translator (NAT) Traversal", draft-ietf-ice-
rfc5245bis-20 (work in progress), March 2018. rfc5245bis-20 (work in progress), March 2018.
skipping to change at page 43, line 21 skipping to change at page 44, line 28
[I-D.ietf-mmusic-mux-exclusive] [I-D.ietf-mmusic-mux-exclusive]
Holmberg, C., "Indicating Exclusive Support of RTP/RTCP Holmberg, C., "Indicating Exclusive Support of RTP/RTCP
Multiplexing using SDP", draft-ietf-mmusic-mux- Multiplexing using SDP", draft-ietf-mmusic-mux-
exclusive-12 (work in progress), May 2017. exclusive-12 (work in progress), May 2017.
[I-D.ietf-mmusic-sdp-bundle-negotiation] [I-D.ietf-mmusic-sdp-bundle-negotiation]
Holmberg, C., Alvestrand, H., and C. Jennings, Holmberg, C., Alvestrand, H., and C. Jennings,
"Negotiating Media Multiplexing Using the Session "Negotiating Media Multiplexing Using the Session
Description Protocol (SDP)", draft-ietf-mmusic-sdp-bundle- Description Protocol (SDP)", draft-ietf-mmusic-sdp-bundle-
negotiation-51 (work in progress), May 2018. negotiation-52 (work in progress), May 2018.
[I-D.ietf-mmusic-sdp-mux-attributes] [I-D.ietf-mmusic-sdp-mux-attributes]
Nandakumar, S., "A Framework for SDP Attributes when Nandakumar, S., "A Framework for SDP Attributes when
Multiplexing", draft-ietf-mmusic-sdp-mux-attributes-17 Multiplexing", draft-ietf-mmusic-sdp-mux-attributes-17
(work in progress), February 2018. (work in progress), February 2018.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
 End of changes. 14 change blocks. 
40 lines changed or deleted 46 lines changed or added

This html diff was produced by rfcdiff 1.46. The latest version is available from http://tools.ietf.org/tools/rfcdiff/