throbber
DECLARATION
`
`I, Alexa Morris, based on my personal knowledge and information, hereby declare as follows:
`
`1.
`
`I am Executive Director of the Internet Engineering Task Force (“IETF”) and have held
`
`ON
`
`~)
`
`Oo6
`
`this position since January 1, 2008.
`
`~
`
`Among my responsibilities as Executive Director, I act as the custodian of Internet-
`
`Drafts for the LETF and recordsrelating to Internet-Drafts. I am familiar with the record
`
`keeping practices relating to Internet-Drafts, including the creation and maintenance of
`
`such records.
`
`U2
`
`I make this declaration based on my personal knowledge and information contained in
`
`the business records of the IETF, or confirmation with other responsible IETF personnel
`
`with such knowledge.
`
`-
`
`Since 1998, it has been the regular practice of the IETF to publish Internet-Drafts and
`
`make them available to the public on its website at www.ietf.org (the IETF website).
`
`The IETF maintains copies of Internet-Drafts in the ordinary course of its regularly
`
`conducted activities.
`
`ys
`
`Any Internet-Draft published on the IETF website was reasonably accessible to the
`
`public and was disseminated or otherwise available to the extent that persons interested
`
`and ordinarily skilled in the subject matter or art exercising reasonable diligence could
`
`have located it.
`
`In particular, the Internet-Drafts were indexed and searchable on the
`
`IETF website.
`
`a
`
`Internet-Drafts are posted to an IETF online directory. When an Internet-Draft is
`
`published, an announcement of its publication that describes the Internet-Draft
`
`is
`
`disseminated. Typically,
`
`that dated announcement is made within 24 hours of the
`
`4832-8075-5826.1
`
`Apple Inc.
`Ex. 1015 - Page 1
`
`Apple Inc.
`Ex. 1015 - Page 1
`
`

`

`publication of the Internet-Draft. The announcementis kept in the IETF email archive
`
`and the date is affixed automatically.
`
`. The records of posting the Internet-Drafts in the IETF online repository are kept in the
`
`course of the IETF’s regularly conducted activity and ordinary course of business. The
`
`records are made pursuant to established procedures and are relied upon by the IETF in
`
`the performanceofits functions.
`
`.
`
`It
`
`is the regular practice of the IETF to make and keep the records in the online
`
`repository.
`
`. Exhibit 1 is a true and correct copy of draft-rosenberg-sipping-ice-00, titled “Interactive
`
`Connectivity Establishment (ICE): A Methodology for Network Address Translator
`
`(NAT) Traversal for the Session Initiation Protocol (SIP).” The Internet-Draft shows
`
`that an announcementofits publication was made on February 24, 2003.
`
`Pursuant to Section 1746 of Title 28 of United States Code, I declare under penalty of
`
`perjury under the laws of the United States of America that the foregoing is true and correct and
`
`that the foregoing is based upon personal knowledge and information andis believed to betrue.
`
`Date: pr! D?/% By:
`
`Alexa Morris
`
`oo—OnWN&wwNo
`
`\o
`
`bo i)
`
`i) wo
`
`bt &
`
`nN AY
`
`DECLARATION OF ALEXA MORRIS
`
`Apple Inc.
`Ex. 1015 - Page 2
`
`Apple Inc.
`Ex. 1015 - Page 2
`
`

`

`CALIFDSRS ALL-PURPOSEae
`
`CIVIL CODEa 1189
`
`
`
`A notary public or other officer completing this certificate verifies only the identity of the individual who signed the
`documentto whichthiscertificate is attached, and not the truthfulness, accuracy, orvalidity of that document.
`
`State of California
`
`Date
`
`County of
`SB nta Chava
`On Sepf+ - 144 ZAR before me, Sharon | Chay
`
`personally appeared
`[ | [ELA Maras
`Name(s) of Signer(s)
`
`
`
`
`who proved to me on the basis of satisfactory evidence to be the person i} whose name(s) is/are—
`subscribed to the within instrument and Feseesto me that~he/éhe
`xecuted the same in
`
`histiertheirauthorized capacitytes)-and thatif er;epeiraeneieay the instrumentthe person(s”
`
`or the’entity upon behalf of which the person
`
`a
`
`cted; executedthe in
`
`trument.
`
`| certify under PENALTY OF PERJURY underthe laws
`of the State of California that the foregoing paragraph
`is true and correct.
`
`WITNESS my hand and official seal.
`
`Notary Public - California 3 SSS
`
`
`SHARONJ. CHAI
`
`wey)
`3
`
`;
`
`Santa Clara County
`Commission # 2224197
`MyComm.ExpiresJan3,2022
`
`Z
`r
`p
`
`Place Notary Seal Above
` OPTIONAL
`Thoughthis section is optional, completing this information can deteralteration of the documentor
`fraudulent reattachment of this form to an unintended document.
`
`
`Number of Pages: ¥-
`
`Description of Attached Document
`{uae eV)
`Title or Type of Document:
`Document Date:
`64-1
`Signer(s) Other Than Named Above:
`Capacity(ies) Claimed by Signer(s)
`Signer’s Name: MervA
`Lani 4%
`
`[] Corporate Officer — Title(s):
`
`
`
`(I General
`[| Partner — [) Limited
`
`
`_] Attorney in Fact
`Individual
`
`[] Guardian or Conservator
`Trustee
`L) Other:
`
`UTA
`
`
`
`
`
`
`Signer Is Representing:
`SignerIseerKetea
`
`
`Signer’s Name:
`
`
`
`Corporate Officer — Title(s):
`
`
`
`
`
`J Partner — (J Limited
`General
`
`|_| Attorney in Fact
`CJ Individual
`
`J] Guardian or Conservator
`_] Trustee
`
`[J Other:
`
`Apple Inc.
`Ex. 1015 - Page 3
`
`
`Apple Inc.
`Ex. 1015 - Page 3
`
`

`

`SIPPING J. Rosenberg
`Internet-Draft dynamicsoft
`Expires: August 25, 2003 February 24, 2003
`
` Interactive Connectivity Establishment (ICE): A Methodology for
` Network Address Translator (NAT) Traversal for the Session Initiation
` Protocol (SIP)
` draft-rosenberg-sipping-ice-00
`
`Status of this Memo
`
` This document is an Internet-Draft and is in full conformance with
` all provisions of Section 10 of RFC2026.
`
` Internet-Drafts are working documents of the Internet Engineering
` Task Force (IETF), its areas, and its working groups. Note that other
` groups may also distribute working documents as Internet-Drafts.
`
` Internet-Drafts are draft documents valid for a maximum of six months
` and may be updated, replaced, or obsoleted by other documents at any
` time. It is inappropriate to use Internet-Drafts as reference
` material or to cite them other than as "work in progress."
`
` The list of current Internet-Drafts can be accessed at http://
` www.ietf.org/ietf/1id-abstracts.txt.
`
` The list of Internet-Draft Shadow Directories can be accessed at
` http://www.ietf.org/shadow.html.
`
` This Internet-Draft will expire on August 25, 2003.
`
`Copyright Notice
`
` Copyright (C) The Internet Society (2003). All Rights Reserved.
`
`Abstract
`
` This document describes a methodology for Network Address Translator
` (NAT) traversal for the Session Initiation Protocol (SIP). This
` methodology is called Interactive Connectivity Establishment (ICE).
` ICE is not a new protocol, but rather makes use of existing
` protocols, such as Simple Traversal of UDP Through NAT (STUN),
` Traversal Using Relay NAT (TURN) and even Real Specific IP (RSIP).
` ICE works through the mutual cooperation of both endpoints in a SIP
` dialog. By having the endpoints work together in NAT traversal, a
` number of important properties are obtained. ICE always works,
` independent of the types or number of NATs. It always represents the
` cheapest solution for a carrier. It always results in the minimum
`
`Rosenberg Expires August 25, 2003 [Page 1]
`
`Apple Inc.
`Ex. 1015 - Page 4
`
`

`

`
`Internet-Draft ICE February 2003
`
` voice latency. It can be done with no increase in call setup delays.
` It is far less brittle than STUN. ICE also facilitates the transition
` of the Internet from IPv4 to IPv6, supporting calls between
` dual-stack and v6 clients behind a 4to6 NAT. Preconditions can be
` used in conjunction with ICE, to guarantee that the phone never rings
` unless the users will both hear and see each other when they pick up.
`
`Table of Contents
`
` 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
` 2. Overview of ICE . . . . . . . . . . . . . . . . . . . . . . 4
` 3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . 6
` 4. Core ICE Algorithm . . . . . . . . . . . . . . . . . . . . . 7
` 5. Detailed ICE Algorithm . . . . . . . . . . . . . . . . . . . 8
` 5.1 Gathering Transport Addresses . . . . . . . . . . . . . . . 8
` 5.2 Enabling STUN on Each Transport Address . . . . . . . . . . 8
` 5.3 Prioritizing the Transport Addresses . . . . . . . . . . . . 10
` 5.4 Constructing the Offer . . . . . . . . . . . . . . . . . . . 10
` 5.5 Answerer Processing - Connectivity Checks and Gathering . . 11
` 5.6 Generating the Answer . . . . . . . . . . . . . . . . . . . 13
` 5.7 Offerer Processing of the Answer . . . . . . . . . . . . . . 14
` 5.8 Additional ICE Cycles . . . . . . . . . . . . . . . . . . . 14
` 6. Running STUN on a Derived Transport Addresses . . . . . . . 15
` 6.1 STUN on a TURN Derived Transport Address . . . . . . . . . . 15
` 6.2 STUN on a STUN Derived Transport Address . . . . . . . . . . 16
` 7. SDP Extensions for STUN . . . . . . . . . . . . . . . . . . 18
` 7.1 The stun Attribute . . . . . . . . . . . . . . . . . . . . . 18
` 7.2 The derived Attribute . . . . . . . . . . . . . . . . . . . 18
` 8. Connectivity Preconditions . . . . . . . . . . . . . . . . . 20
` 9. Example Use Cases . . . . . . . . . . . . . . . . . . . . . 22
` 9.1 Public Internet . . . . . . . . . . . . . . . . . . . . . . 22
` 9.2 Disconnected Enterprise . . . . . . . . . . . . . . . . . . 23
` 10. Security Considerations . . . . . . . . . . . . . . . . . . 27
` 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . 28
` 11.1 Precondition Type . . . . . . . . . . . . . . . . . . . . . 28
` 11.2 SDP Attributes . . . . . . . . . . . . . . . . . . . . . . . 28
` 12. IAB Considerations . . . . . . . . . . . . . . . . . . . . . 29
` 12.1 Problem Definition . . . . . . . . . . . . . . . . . . . . . 29
` 12.2 Exit Strategy . . . . . . . . . . . . . . . . . . . . . . . 29
` 12.3 Brittleness Introduced by ICE . . . . . . . . . . . . . . . 30
` 12.4 Requirements for a Long Term Solution . . . . . . . . . . . 31
` 12.5 Issues with Existing NAPT Boxes . . . . . . . . . . . . . . 31
` Informative References . . . . . . . . . . . . . . . . . . . 32
` Author’s Address . . . . . . . . . . . . . . . . . . . . . . 33
` Intellectual Property and Copyright Statements . . . . . . . 34
`
`Rosenberg Expires August 25, 2003 [Page 2]
`
`Apple Inc.
`Ex. 1015 - Page 5
`
`

`

`
`Internet-Draft ICE February 2003
`
`1. Introduction
`
` The subject of NAT traversal for SIP has received a profound amount
` of attention. SIP extensions have been defined for routing responses
` [11] through NAT, and for routing requests from a public network to a
` private one through persistent connections [12].
`
` However, far more troubling is the traversal of SIP’s media sessions
` through NAT. Numerous solutions have been proposed for that. These
` include Application Layer Gateways (ALGs), the Middlebox Control
` Protocol [2], Simple Traversal of UDP through NAT (STUN) [13],
` Traversal Using Relay NAT" [14], Realm Specific IP [3][4], Topology
` Insensitive Service Traversal (TIST) [15], symmetric RTP [16], along
` with protocol extensions needed to make them work, such as [17]. The
` sum total is so complex, that an extensive scenarios document [18]
` has been written. This document outlines the various network
` situations, and analyzes the various solutions in each.
` Unsurprisingly, each situation has a specific ideal solution.
`
` However, the result is a system which is incredibly complex and very
` brittle. What is needed is a single solution which is flexible enough
` to work well in all situations.
`
` Our proposal for such a solution is called Interactive Connectivity
` Establishment, or ICE. ICE makes use of many of the protocols above,
` but uses them in a specific methodology which avoids many of the
` pitfalls of using any one alone. ICE is not a new protocol, and does
` not require extensions from STUN, TURN or RSIP. However, it does
` require some additional SDP attributes, which are discussed below.
`
`Rosenberg Expires August 25, 2003 [Page 3]
`
`Apple Inc.
`Ex. 1015 - Page 6
`
`

`

`
`Internet-Draft ICE February 2003
`
`2. Overview of ICE
`
` ICE makes the fundamental assumption that clients exist in a network
` of segmented connectivity. This segmentation is the result of a
` number of addressing realms in which a client can simultaneously be
` connected. We use "realms" here in the broadest sense. A realm is
` defined purely by connectivity. Two clients are in the same realm if,
` when they exchange the addresses each has in that realm, they are
` able to send packets to each other. This includes IPv6 and IPv4
` realms, which actually use different address spaces, in addition to
` private networks connected to the public Internet through NAT.
`
` The key assumption in ICE is that a client cannot know, apriori,
` whether the peer it wishes to communicate with is connected to one or
` all of the address realms it is in. Therefore, in order to
` communicate, it has to try them all, and choose the best one that
` works.
`
` Before a UA makes a call, it obtains as many IP address and port
` combinations in as many address realsm as it can. These adresses all
` represent potential points at which the UA will receive a specific
` media stream. Any protocol that provides a client with an IP address
` and port on which it can receive traffic can be used. These include
` STUN, TURN, RSIP, and even a VPN. The client also uses any local
` interface addresses. A dual-stack v4/v6 client will obtain both a v6
` and a v4 address/port. The only requirement is that, across all of
` these addresses, the client can be certain that at least one of them
` will work for any peer. This is easily guaranteed by using TURN,
` RSIP, MIDCOM or a VPN from a server on the public Internet to obtain
` one of the addresses.
`
` The UAC then makes a STUN server available on each of the address/
` port combinations it has obtained. This STUN server is running
` locally, on the UA.
`
` All of these addresses are placed into the SDP offer [5] sent by the
` UAC. Each of them is represented by a separate m-line. The SDP ALT
` grouping [19] is used to indicate that each of these m-lines
` represents an alternate point of connectivity for the media stream.
` They are ordered in terms of preference. Local IPv6 addresses always
` have the highest preference, followed by local IPv4 addresses,
` followed by STUN-allocated addresses, followed last by addresses
` allocated through protocols using relays, such as TURN and VPN. SDP
` attributes are also used to convey the STUN username and password
` which are required to gain access to the STUN server on each address/
` port combination.
`
` This offer is sent to the called party. ICE also assumes that SIP
`
`Rosenberg Expires August 25, 2003 [Page 4]
`
`Apple Inc.
`Ex. 1015 - Page 7
`
`

`

`
`Internet-Draft ICE February 2003
`
` itself can provide global connectivity across address realms. Indeed,
` the point of the SIP URI is to act as a globally useful identifier
` for reaching a user wherever they are.
`
` Once the offer arrives at the UAS, it sends STUN requests to each
` alternate address/port in the SDP offer, similar to the intra-realm
` STUN mechanism [20] proposed previously. These STUN requests include
` the username and password obtained from the SDP. None of the flags
` are used. The STUN requests serve two purposes. The first is to check
` for connectivity. If a response is received, the UAS knows that it
` can reach the UAC at that address. The second purpose is to obtain
` more addresses at which the UAS can be contacted. If there were NATs
` between the UAS and UAC, the UAS may discover another address through
` the STUN responses. In its answer, the UAS includes all addresses
` that it can unilaterally determine (just as the UAC did), in addition
` to any that were discovered using the STUN messages to the UAC.
`
` When the answer arrives at the UAC, it performs a similar operation.
` Using STUN, it checks connectivity to each of the addresses in the
` answer. Through the STUN responses, it may learn of additional
` addresses that it can use to receive media. It can therefore generate
` a re-INVITE or UPDATE [6] request to pass this address to the callee.
` Generally, at the end of the first exchange, both sides will have
` discovered one of more addresses which they are capable of
` successfully sending to. Each side uses the most preferred address
` amongst the ones which worked.
`
`Rosenberg Expires August 25, 2003 [Page 5]
`
`Apple Inc.
`Ex. 1015 - Page 8
`
`

`

`
`Internet-Draft ICE February 2003
`
`3. Terminology
`
` Several new terms are introduced in this specification:
`
` Transport Address: The combination of an IP address and port.
`
` Local Transport Address: A local transport address is transport
` address that has been allocated from the operating system on the
` host. This includes transport addresses obtained through VPNs, and
` also transport addresses obtained through RSIP (which lives at the
` operating system level). Transport addresses are typically
` obtained by binding to an interface.
`
` Derived Transport Address: A derived transport address is a
` transport address which is associated with, but different from, a
` local transport address. The derived transport address is
` associated with the local transport address in that packets sent
` to the derived transport address are received on the socket bound
` to that local transport address. Derived addresses are obtained
` using protocols like STUN and TURN, and more generally, any UNSAF
` protocol [8].
`
` Peer Derived Transport Address: A peer derived transport address
` is a derived transport address learned from a STUN server
` advertised by a peer in a media session.
`
` TURN Derived Transport Address: A derived transport address
` obtained from a TURN server.
`
` STUN Derived Transport Address: A derived transport address
` obtained from a STUN server that has been provisioned into the UA.
` This, by definition, excludes Peer Derived Transport Addresses.
`
`Rosenberg Expires August 25, 2003 [Page 6]
`
`Apple Inc.
`Ex. 1015 - Page 9
`
`

`

`
`Internet-Draft ICE February 2003
`
`4. Core ICE Algorithm
`
` At its core, the ICE algorithm is an iterative process in which two
` cooperating entities, A and B, exchange addresses with each other in
` an attempt to connect. One side (say A) starts, collecting all of the
` addresses it can find. It sends those to B. B also collects all of
` the addresses it can find, including those obtained by sending
` address-fixing requests (such as STUN requests) to A itself. Those
` are passed to A. B also checks connectivity to the addresses provided
` by A. When A gets the set of addresses, it performs connectivity
` checks, and attempts to obtain further addresses based on the
` information sent by B. If A learns more addresses, it sends these to
` B, which checks connectivity to those addresses. This process
` iterates back and forth until both sides have obtain all the
` addresses which can be obtained. At least one address past in each
` direction should work.
`
`Rosenberg Expires August 25, 2003 [Page 7]
`
`Apple Inc.
`Ex. 1015 - Page 10
`
`

`

`
`Internet-Draft ICE February 2003
`
`5. Detailed ICE Algorithm
`
` This section describes the detailed processing needed for ICE.
`
`5.1 Gathering Transport Addresses
`
` The offerer begins the process by gathering transport addresses.
` There are two types of addresses it can gather - local transport
` addresses, and derived transport addresses. Local transport addresses
` are obtained by binding to an ephemeral port on an interface
` (physical or virtual) on the host. A multi-homed host SHOULD attempt
` to bind on all interfaces for all media streams it wishes to receive.
` For media streams carried using the Real Time Transport Protocol
` (RTP) [10], the offerer will need to bind to an ephemeral port for
` both RTP and RTCP.
`
` The result will be a set of local transport addresses. The offerer
` may also have access to servers that provide unilateral self-address
` fixing (UNSAF) [8]. Examples of such protocols include STUN, TURN,
` and TEREDO [21]. For each of these protocols, the offerer may have
` access to a multiplicity of servers. For example, a user connected to
` a natted cable access network might have access to a STUN server in
` the private cable network and in the public Internet. For each local
` transport address, the offerer SHOULD address-fix against every
` server for each protocol it supports. The result of this will be a
` set of derived transport addresses, with each derived address
` associated with the local transport address it is derived from.
`
` ICE works better the more options exist for connectivity. However, in
` order to communicate with the peer, at least one of the offered
` addresses has to be guaranteed to work with any peer that might be
` called. This generally requires that one of the derived addresses be
` obtained from a relay service (such as TURN or TEREDO) that exist
` within the public Internet.
`
`5.2 Enabling STUN on Each Transport Address
`
` Once the offerer has obtained a set of transport addresses, it starts
` a STUN server on each local transport address (including ones used
` for RTCP). This, by definition, means that the STUN service will be
` reached for requests sent to the derived addresses.
`
` However, the client does not need to provide STUN service on any
` other IP address or port, unlike the normal STUN usage as described
` in [13]. The need to run the service on multiple ports is to support
` the change flags. However, those flags are not needed with ICE, and
` the server SHOULD reject any requests with these flags set.
`
`Rosenberg Expires August 25, 2003 [Page 8]
`
`Apple Inc.
`Ex. 1015 - Page 11
`
`

`

`
`Internet-Draft ICE February 2003
`
` Furthermore, there is no need to support TLS or to be prepared to
` receive SharedSecret request messages. Those messages are used to
` obtain shared secrets to be used with BindingRequests. However, with
` ICE, usernames and passwords are exchanged in SIP itself.
`
` It is important to note that the transport address being used by the
` STUN server will also need to support the media stream which is to be
` sent to that transport address. This will require the offerer to
` disambiguate STUN messages from messages for the underlying media
` stream protocol. In the case of RTP/RTCP, this disambiguation is
` easy. RTP and RTCP packets start with the bits 0b10 (v=2). The first
` two bits in STUN are always 0b00. Disambiguating STUN with other
` media stream protocols may be more complicated. However, it is
` guaranteed to always be possible by selecting an appropriately random
` username (see below).
`
` The need to run STUN on the same transport address as the media
` stream represents the "ugliest" piece of ICE. However, it is an
` essential part of the story. By sending STUN requests to the very
` same place media is sent, any bindings learned through STUN will be
` useful even when communicating through symmetric NATs. This results
` in a substantial increase in the scope of applicability of STUN, in
` terms of cases where it can provide connectivity. In that sense, the
` usage of STUN here is radically different than the usage models
` outlined in [13], where STUN is generally useless for dealing with
` symmetric NAT.
`
` For each local transport address where a STUN server is running, the
` client MUST choose a username and password. The username MUST be
` globally unique, so that no other host will select a username with
` the same value. This username and password will be passed to the
` answerer in the SDP. They are used by the answerer to authenticate
` the STUN requests to the server.
`
` The gloal uniqueness requirement stems from the lack of uniquenes
` afforded by IP addresses. Consider user agents A, B, and C. A and B
` are within private enterprise 1, which is using 10.0.0.0/8. C is
` within private enterprise 2, which is also using 10.0.0.0/8. As it
` turns out, B and C both have IP address 10.0.1.1. A makes a call to
` C. C, in its answer, provides A with its transport addresses. In this
` case, thats 10.0.1.1:8866 and 8877. As it turns out, B is on a call
` at that same time, and is also using 10.0.1.1:8866 and 8877. This
` means that B has a STUN server running on those ports, just as C
` does. A will send a STUN request to 10.0.1.1:8866 and 8877. However,
` these do not go to C as expected. Instead, they go to B. If B just
` replied to them, A would believe it has connectivity to C, when it
` fact it has connectivity to a completely different user, B. To fix
` this, the STUN username takes on the role of a unique identifier. C
`
`Rosenberg Expires August 25, 2003 [Page 9]
`
`Apple Inc.
`Ex. 1015 - Page 12
`
`

`

`
`Internet-Draft ICE February 2003
`
` provides A with a unique username. A uses this username in its STUN
` query to 10.0.1.1:8866. This STUN query arrives at B. However, the
` username is unknown to B, and so the request is rejected. A treats
` the rejected STUN request as if there were no connectivity to C
` (which is actually true). Therefore, the error is avoided.
`
` Once the STUN server is started, it MUST run until the first media
` packet arrives on that address. Once that occurs, the agent MAY
` terminate the server. It is still possible that a late or lose STUN
` message will show up, but these will generally fail any media stream
` validity checks and be discarded (STUN packets always fail the RTP
` validity checks).
`
` While the server is running, it MUST act as a normal STUN server, but
` MUST only accept STUN requests from clients that authenticate using
` the username and password handed out for the dialog.
`
`5.3 Prioritizing the Transport Addresses
`
` With the STUN servers starting, the next step is to prioritize the
` transport addresses. This priority reflects the desire that the UA
` has to receive media on that address, and is assigned as a value from
` 0 to 1 (1 being most preferred). Although any prioritization is
` possible, it is RECOMMENDED that the prioritization be based on the
` number of intermediaries that will be traversed. The fewer
` intermediaries, the higher the priority. As a result of this, local
` IPv6 transport addresses obtained from physical interfaces have
` highest priority (it is RECOMMENDED that 1.0 be used). Next are local
` IPv4 transport addresses obtained from physical interfaces (it is
` RECOMMENDED that 0.8 be used). Next are STUN derived transport
` addresses (it is RECOMMENDED that 0.6 be used), followed by TURN,
` RSIP or TEREDO derived transport addresses (it is RECOMMENDED that
` 0.4 be used). Last up are local transport addresses obtained from VPN
` interfaces (it is RECOMMENDED that 0.2 be used).
`
`5.4 Constructing the Offer
`
` The next step is to construct the offer. For each media stream, the
` client encodes its available set of transport addresses as a series
` of m-lines. Each m-line conveys a single transport address (or, in
` the case of RTP, two transport addresses - one for RTP, and one for
` RTCP). If, in the case of RTP, the RTP and RTCP transport addresses
` do not follow the even/odd convention, the SDP for NAT [17]
` extensions can be used to convey them.
`
` Each m-line in a media stream is marked with a unique media stream
` identifier (MID) [9]. Furthermore, the Alternative Semantics for the
` SDP Grouping Framework [19] is used to indicate that all of those
`
`Rosenberg Expires August 25, 2003 [Page 10]
`
`Apple Inc.
`Ex. 1015 - Page 13
`
`

`

`
`Internet-Draft ICE February 2003
`
` m-lines are alternatives for that media stream. This is done using
` the ALT group attribute.
`
` Each m-line is also tagged with its q-value, as obtained from the
` processing of Section 5.3. This is done with a new proposed SDP
` attribute, "qvalue". The value of this attribute is a q-value, as
` defined in RFC 3261 [1].
`
` The q-value attribute belongs in the ALT specification. That
` specification provides an ordering of media streams based on the
` order their MIDs are listed in the ALT attribute. However, the
` actual absolute values of the preferences are needed for ICE to
` properly choose the optimal connectivity.
`
` Each m-line also includes the "stun" SDP attribute. This attribute,
` defined in Section 7, indicates that a STUN server is running on the
` transport addresses associated with that m-line, and conveys the
` username and password used to access that server. In the case of RTP,
` this means that STUN servers are running on both the RTP and RCP
` ports, independently of whether the RTCP port is equal to the RTP
` port plus one, or explicitly signaled using [17]. Note that the stun
` attribute is included for local transport addresses and derived
` transport addresses. In the case of derived transport addresses, the
` username and password is the same as that for the STUN server bound
` to the associated local transport address. Section 6 discusses
` running STUN servers on derived transport addresses, and demonstrates
` that it does the "right thing".
`
` Once the offer is constructed, it is sent.
`
`5.5 Answerer Processing - Connectivity Checks and Gathering
`
` Once the answerer receives the offer, it does several things in
` parallel. First, it performs the same processing described in Section
` 5.1. Specifically, for each group of m-lines in the offer that
` represents a distinct media stream, the answerer allocates a set of
` local transport addresses and the full set of derived transport
` addresses.
`
` Note that these addresses can be "pre-gathered" before the call is
` even received, so that a set is always "on-deck". This will avoid any
` increase in call setup times, at the expense of holding onto
` addresses which may not get used. Retaining these addresses may also
` require refresh traffic that consumes network bandwidth.
`
` While the unilateral derived addresses are being obtained, the
` answerer sends a STUN BindingRequest from each local transport
` address to each STUN server identified in the offer. This
`
`Rosenberg Expires August 25, 2003 [Page 11]
`
`Apple Inc.
`Ex. 1015 - Page 14
`
`

`

`
`Internet-Draft ICE February 2003
`
` BindingRequest MUST contain the USERNAME attribute, and the value of
` this attribute MUST equal the username from the stun attribute in the
` offer. The BindingRequest MUST contain a MESSAGE-INTEGRITY attribute,
` computed using the username and password from the stun attribute in
` the offer. The BindingRequest MUST NOT contain the CHANGE-REQUEST or
` RESPONSE-ADDRESS attribute.
`
` It is RECOMMENDED that these STUN requests be sent in parallel. The
` answerer MAY alert the user during this time. Generally, if the user
` is a human (and not an automata), the STUN transactions will have
` completed before the call is answered.
`
` If the STUN BindingRequest elicits a BindingResponse before the STUN
` transaction times out, the result is considered a success. For
` successful transactions, the answerer stores the offered transport
` address (which identifies both the STUN server and the place where
` media is sent), the local transport address from which the STUN
` request was sent, the MID from the offer, and the q-value from the
` offer. If the STUN transaction succeeds, the client knows for certain
` that the media can reach the destination as well. That is because the
` media traffic will be sent from the same transport address, to the
` same trasport address, as the STUN packet was.
`
` Once

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket