`Investigation
`
`4160 – 148th Avenue, N.E.
`Redmond, WA 98052 USA
`
`http://www.becomm.com
`
`4160 – 148th Avenue, N.E.
`Redmond, WA 98052 USA
`
`http://www.becomm.com
`
`4160 – 148th Avenue, N.E.
`Redmond, WA 98052 USA
`
`http://www.becomm.com
`
`4160 – 148th Avenue, N.E.
`Redmond, WA 98052 USA
`
`Page 1 of 59
`
`Implicit Exhibit 2011
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`
`
`Ó 2000/2001 BeComm Corporation™ All Rights Reserved
`
`This document is protected by copyright. No part of this document may be
`reproduced in any form, by any means, without prior written authorization
`from BeComm Corporation™.
`
`The information contained in this document may be protected by one or
`more U.S. patents, foreign patents, or pending applications.
`
`Trademark Information
`
`The following trademarks or registered trademarks of BeComm
`Corporation™ in the United States and/or other countries may or may not
`appear in this document:
`
`BeComm™, BeComm Corporation™, Strings™, Beads™, HotBeads
`Service™
`
`All other product names mentioned herein are the trademarks or registered
`marks of their respective owners.
`
`Documentation Warranty Information
`
`This document is provided As Is, without warranty of any kind, either
`expressed or implied, including but not limited to the implied warranties of
`merchantability, fitness for a particular purpose, or non-infringement.
`
`This document could include technical inaccuracies or typographical errors.
`Changes are periodically added to the information herein. These changes
`will be incorporated in new editions of the document. BeComm
`Corporation™ may make improvements and/or changes in the product(s) or
`program(s) described in this document at any time.
`
`
`Confidentiality Information
`
`The contents of this document are BeComm Corporation’s confidential
`material and are intended only for those entities—including their agents,
`employees, and legal representatives—who have been expressly permitted
`by BeComm Corporation™ to view the contents. Any attempt to review,
`read, or disseminate, by any means, the contents of this document without
`prior written permission from BeComm Corporation™ are expressly
`prohibited. All contents herein should be handled in accordance with any
`and all Non-Disclosure Agreements or any other such agreements that limit
`the use of this document or any other documentation belonging to BeComm
`Corporation™.
`
`Juno Phase 1 Document – January 26, 2001
`
`
`
`
`
`
`
`
`Page 2
`
`Page 2 of 59
`
`Implicit Exhibit 2011
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`
`
`Table Of Contents
`
`
`Table Of Contents ................................................................................................ 3
`Preface .................................................................................................................. 8
`Document Contributors ..................................................................................... 8
`Audience ........................................................................................................... 8
`Purpose and Scope .......................................................................................... 8
`High-Level Design ........................................................................................ 8
`Tradeoff Analysis .......................................................................................... 9
`Project Status Update .................................................................................. 9
`Documentation Conventions ............................................................................. 9
`Terminology ...................................................................................................... 9
`Requirements Update ........................................................................................ 11
`Scoped Out Requirements ............................................................................. 11
`Playlist Functionality ................................................................................... 11
`WAV & AAC Content .................................................................................. 11
`Buffering To Disk ........................................................................................ 11
`Adapter Control Interface ........................................................................... 11
`DHCP ......................................................................................................... 11
`Dynamic Component Download ................................................................. 11
`Requirements Clarifications ............................................................................ 11
`Scalability ................................................................................................... 11
`QOS ........................................................................................................... 12
`File System Security ................................................................................... 12
`Back-End Service Providers ....................................................................... 12
`Version Information Embedded In Binaries ................................................ 12
`Media Server Installation Location ............................................................. 12
`Sources of Content for Testing ................................................................... 12
`Adapters Are Not Audio Sources ............................................................... 12
`Media Server is not an Internet Proxy Server ............................................ 12
`Installation Requirements ........................................................................... 12
`Internationalization ..................................................................................... 13
`Media Server Hardware ............................................................................. 13
`Adapter Hardware ...................................................................................... 13
`Passing Keys To Decryption Interface Libraries ........................................ 13
`High-Level Design .............................................................................................. 14
`Overview ......................................................................................................... 14
`How Juno Processes Requests For Content ............................................. 14
`Components ................................................................................................... 15
`Real Audio SDK ......................................................................................... 16
`
`Juno Phase 1 Document – January 26, 2001
`
`
`
`
`
`
`
`
`Page 3
`
`Page 3 of 59
`
`Implicit Exhibit 2011
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`
`
`Windows Media Format SDK ..................................................................... 16
`Real Audio Support/Windows Media Support ............................................ 16
`Real Audio Protocol/Windows Media Protocol ........................................... 16
`Win32 File System Support/Linux File System Support ............................. 17
`HTTP Server .............................................................................................. 17
`HTTP Client ................................................................................................ 17
`Win32 Socket Support/Posix Socket Support ............................................ 17
`Socket Protocol .......................................................................................... 17
`MP3 Blocker ............................................................................................... 17
`Media Control ............................................................................................. 17
`Codec Library ............................................................................................. 17
`Codec Protocol ........................................................................................... 17
`Codec Adapter ........................................................................................... 18
`Posix (OSS) Speaker Support/Win32 (Wav or DirectSound) Speaker
`Support ....................................................................................................... 18
`Speaker Protocol ........................................................................................ 18
`Windows Media Decoder/MP3 Decoder .................................................... 18
`Lossless PCM Compressor/Decompressor ............................................... 18
`Strings Audio Transport Protocol (SATP) ................................................... 18
`Strings Core Media Engine ........................................................................ 18
`Decoding Strategies ....................................................................................... 19
`Standalone WM Decoder ........................................................................... 19
`Standalone MP3 Decoder .......................................................................... 20
`WMF SDK Decoder .................................................................................... 20
`RA SDK Decoder ....................................................................................... 20
`RA SDK Transcoder ................................................................................... 20
`Codecs ............................................................................................................ 20
`Stream Control Architecture ........................................................................... 21
`Audio Transport Protocol(s) ............................................................................ 22
`Dual TCP .................................................................................................... 23
`UDP Audio + TCP Stream Control ............................................................. 23
`SATP Audio + TCP Stream Control ........................................................... 23
`Dual SATP .................................................................................................. 24
`Network Stack ................................................................................................. 24
`Strings Stack Pros ...................................................................................... 24
`Strings Stack Cons ..................................................................................... 24
`Control Interface ................................................................................................ 26
`Changes & Clarifications Since CES Demo ................................................... 26
`Playlist Functions ....................................................................................... 26
`Event Publishing ......................................................................................... 26
`UserId & Password ..................................................................................... 26
`AddTarget Restrictions ............................................................................... 26
`Command Mechanism .................................................................................... 27
` Event Mechanism .................................................................................... 27
`State Model ..................................................................................................... 28
`
`Juno Phase 1 Document – January 26, 2001
`
`
`
`
`
`
`
`
`Page 4
`
`Page 4 of 59
`
`Implicit Exhibit 2011
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`
`
`Command Reference ...................................................................................... 30
`Open ........................................................................................................... 31
`Close .......................................................................................................... 31
`Play ............................................................................................................ 31
`Stop ............................................................................................................ 31
`Pause ......................................................................................................... 32
`Resume ...................................................................................................... 32
`Seek ........................................................................................................... 32
`Refresh ....................................................................................................... 32
`AddTarget ................................................................................................... 32
`RemoveTarget ............................................................................................ 33
`QueueNext ................................................................................................. 33
`CancelNext ................................................................................................. 33
`Reply & Event Format ..................................................................................... 33
`JunoReplyVersion1 .................................................................................... 34
`Error ........................................................................................................... 34
`Session ....................................................................................................... 35
`Url ............................................................................................................... 35
`SessionId .................................................................................................... 35
`Status ......................................................................................................... 35
`Event .......................................................................................................... 35
`Progress ..................................................................................................... 36
`Length ........................................................................................................ 36
`Position ....................................................................................................... 36
`Song ........................................................................................................... 36
`Artist ........................................................................................................... 36
`Album ......................................................................................................... 36
`Genre ......................................................................................................... 36
`Metadata .................................................................................................... 36
`Open Issues ........................................................................................................ 37
` Multicasting & Adapter Synchronization .................................................. 37
`Multicast Implementation ............................................................................ 37
`Concurrent Local & Remote Playback ....................................................... 37
`SATP Implications ...................................................................................... 38
` Windows 98 & Windows Me Scheduler .................................................. 38
`Internet MP3 Files & ID3 ................................................................................. 38
`Windows Media .............................................................................................. 39
`Link Layer QOS .............................................................................................. 39
`Encryption ....................................................................................................... 39
`Test Hardware ................................................................................................ 39
`Codec Errors ................................................................................................... 39
`Application Compatibility ................................................................................. 40
`Reference Platform ......................................................................................... 40
`Authentication For Internet MP3 Files ............................................................ 40
`
`Juno Phase 1 Document – January 26, 2001
`
`
`
`
`
`
`
`
`Page 5
`
`Page 5 of 59
`
`Implicit Exhibit 2011
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`
`
`Project Schedule Update ................................................................................... 41
`Appendix A: Audio Quality Techniques .......................................................... 42
`Clock Inconsistencies ................................................................................. 42
`Delayed Start in Mixer ................................................................................ 42
`Out-Of-Band Control Path .......................................................................... 42
`Audio Over TCP ......................................................................................... 42
`Path Creation Overhead ............................................................................. 43
`Compression Techniques ........................................................................... 43
`Clean Audio Startup ................................................................................... 43
`Appendix B: Protocol Configuration Guide .................................................... 44
`codec .............................................................................................................. 44
`Edge 0 - Encode Edge ............................................................................... 45
`Edge 1 - Decode Edge ............................................................................... 45
`Speaker .......................................................................................................... 45
`Edge 0 - Quench Data Edge ...................................................................... 46
`Edge 1 - Persist Data Edge ........................................................................ 46
`Edge 2 - Session Config Edge ................................................................... 46
`Edge 3 - Protocol Config Edge ................................................................... 47
`RTP2 ............................................................................................................... 47
`Edge 0 - Encode Data Edge (deprecated) ................................................. 47
`Edge 1 - Decode Data Edge (deprecated) ................................................. 47
`Edge 2 - Frame Data Edge ........................................................................ 48
`Edge 3 - Unframe Data Edge ..................................................................... 48
`Edge 4 – Border Data Edge ....................................................................... 48
`Edge 5 – Regulate Data Edge .................................................................... 48
`Mixer ............................................................................................................... 48
`Edge 0 – Audio and Control Edge .............................................................. 49
`Configuration File ....................................................................................... 49
`TCP (or UDP) ................................................................................................. 50
`Edge 0 - Encode Data Edge ....................................................................... 51
`Edge 1 - Decode Data Edge ...................................................................... 51
`IP .................................................................................................................... 52
`Edge 0 - Encode Data Edge ....................................................................... 53
`Edge 1 - Decode Data Edge ...................................................................... 53
`DNR ................................................................................................................ 54
`Edge 0 – Domain Name Resolution Edge .................................................. 54
`Unifilter ............................................................................................................ 54
`Edge 0 – Unidirectional to Bidirectional Filter Edge ................................... 55
`HTTP Server ................................................................................................... 55
`Edge 0 – Server Request Edge .................................................................. 55
`Mapping File Extensions to Content Types ................................................ 55
`Configuration Edges ................................................................................... 56
`HTTP Client .................................................................................................... 56
`Edge 0 – Absolute Request Edge .............................................................. 56
`Edge 1 – Relative Request Edge ............................................................... 57
`Edge 2 – Response Edge .......................................................................... 57
`
`Juno Phase 1 Document – January 26, 2001
`
`
`
`
`
`
`
`
`Page 6
`
`Page 6 of 59
`
`Implicit Exhibit 2011
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`
`
`HTTP Push ..................................................................................................... 58
`Edge 0 – Reliable Edge .............................................................................. 58
`Edge 1 – Unreliable Edge .......................................................................... 59
`Edge 2 – Specify Target Edge ................................................................... 59
`
`Juno Phase 1 Document – January 26, 2001
`
`
`
`
`
`
`
`
`Page 7
`
`Page 7 of 59
`
`Implicit Exhibit 2011
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`
`
`Preface
`
`Document Contributors
`Adam Greene
`Neil Mintz
`Guy Carpenter
`Scott Bradley
`Edward Balassanian
`
`Producer; Engineering Mentor
`Producer, Engineering Mentor
`Engineering Master
`Development Manager
`President; CEO
`
`Audience
`The intended audience of this document is members of the BeComm
`Development Team and members of Jupiter’s AudioPort team. Familiarity
`with the phase 0 document is a prerequisite for understanding this
`document.
`
`Purpose and Scope
`This document is the second major milestone in project Juno that BeComm
`will be building as part of Jupiter’s AudioPort initiative. This document
`should serve as an educational tool for future team members both as an
`introduction and as historical reference when read in conjunction with prior
`and subsequent Phase documents.
`
`High-Level Design
`The primary purpose of this phase is to investigate further the issues that
`were identified in the first phase of the project and to begin to define the
`fundamental architecture of the system. By the end of this phase, we should
`have identified all of the major components and have a black-box (interface)
`design for them in place.
`
`Juno Phase 1 Document – January 26, 2001
`
`
`
`
`
`
`
`
`Page 8
`
`Page 8 of 59
`
`Implicit Exhibit 2011
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`
`
`Tradeoff Analysis
`We will document the major architectural alternatives that were considered in
`this phase and provide the rationale for the decisions that will be carried
`forward into phase 2.
`
`Project Status Update
`We will document the status of issues including issues that have been
`resolved, issues that remain open, and issues that were identified within
`phase 1.
`
`Documentation Conventions
`The following conventions are used in this document:
`
`
`We use this icon to highlight open issues or questions that
`need to be resolved in phase 2.
`We use this icon to highlight areas of extreme importance
`or risk to the project.
`
`
`
`
`
`
`
`Terminology
`When possible, we will use terms defined in Jupiter’s AudioPort Product
`Requirements Document. Terms such as Media Server should be
`interpreted to mean the Juno portion of the AudioPort Media Server unless
`the context dictates otherwise.
`We define additional terms as follows:
`Local & remote should be interpreted as relative to the Media Server.
`Local playback refers to the playback of content on the Media Server.
`Remote Playback refers to the streaming of content over the home network
`to a remote adapter.
`Local adapter refers to the playback portion of the Media Server used for
`local playback.
`Remote adapter refers to any Adapter other than the local adapter.
`Adapter locality specifies whether an Adapter is local or remote relative to
`the Media Server.
`Source format refers to the native format of content before Juno has
`performed any decoding or transcoding.
`
`Juno Phase 1 Document – January 26, 2001
`
`
`
`
`
`
`
`
`Page 9
`
`Page 9 of 59
`
`Implicit Exhibit 2011
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`
`
`Wire format refers to the format in which content is transmitted from the
`Media Server to an Adapter. This does not mean to imply the nature of the
`physical link between the Media Server and Adapter, which could be wired
`(e.g. Ethernet) or wireless (e.g. HomeRF or 802.11b).
`Jukebox applications traditionally provide functionality such as CD ripping.
`We will avoid use of the term jukebox to refer to the functionality provided by
`AudioPort since AudioPort does not implement such functionality. Jupiter
`expects AudioPort to be used in conjunction with jukebox products such as
`Real Network’s RealJukebox.
`
`Juno Phase 1 Document – January 26, 2001
`
`
`
`
`
`
`
`
`Page 10
`
`Page 10 of 59
`
`Implicit Exhibit 2011
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`
`
`Requirements Update
`
`In this section, we document the requirements and issues that have been
`resolved or clarified since publication of the Juno Phase 0 document.
`
`Scoped Out Requirements
`The following previously discussed requirements have been scoped out of
`Juno per Jupiter:
`
`Playlist Functionality
`Juno will not implement playlist functionality.
`
`WAV & AAC Content
`Juno will not support source content in WAV or ACC formats.
`
`Buffering To Disk
`Juno will not provide the ability to record the first twenty seconds of Internet
`content on the Media Server.
`
`Adapter Control Interface
`Juno will not provide a control interface on Adapters. All control commands
`must be sent to the Media Server.
`
`DHCP
`Juno will not implement a DHCP client for receiving the IP address to use.
`
`Dynamic Component Download
`Juno will not provide support for dynamically downloading codecs or other
`components.
`
`Requirements Clarifications
`Following are clarifications to previously discussed requirements:
`
`Scalability
`The scalability requirement that the Media Server support 5 concurrent
`streams will be interpreted as a minimum.
`
`Juno Phase 1 Document – January 26, 2001
`
`
`
`
`
`
`
`
`Page 11
`
`Page 11 of 59
`
`Implicit Exhibit 2011
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`
`
`QOS
`The dropout requirement metrics should be interpreted to apply when the
`Media Server is running 5 concurrent streams.
`File System Security
`Juno will not attempt to address OS-level file system security. If we cannot
`open a file for this reason, an error will be returned.
`
`Back-End Service Providers
`Juno will assume that there are no special requirements for handling content
`from back-end service providers.
`
`Version Information Embedded In Binaries
`Windows binaries will include a version resource specifying the file and
`product version. We will investigate providing similar capabilities on Linux.
`
`Media Server Installation Location
`The Media Server (and therefore the Windows version of Strings) will be
`capable of running from a directory other than root.
`
`Sources of Content for Testing
`We will include content from different ripper applications in our test plan.
`This is important since we have already discovered that BeComm’s MP3
`decoder (which will not be used in Juno) is incompatible with MP3 files
`ripped by RealJukebox. The Juno test plan must account for this.
`
`Adapters Are Not Audio Sources
`At least for this initial version of AudioPort, Adapters are not audio sources.
`This means that Juno cannot, for example, capture content from the analog
`audio components attached to an Adapter. This functionality may be added
`to a subsequent version of AudioPort, so Juno must be evolvable in this
`direction.
`
`Media Server is not an Internet Proxy Server
`The Juno Media Server is not a general Internet proxy. It does not make
`Internet content directly available to Adapters.
`
`Installation Requirements
`Strings installation is entirely file-based. Therefore, Juno need only provide
`a file list so that Strings installation can be integrated within AudioPort
`installation. Juno will assume that AudioPort installation will include
`installation of third party components required by Juno including Windows
`Media and Real Audio components.
`
`Juno Phase 1 Document – January 26, 2001
`
`
`
`
`
`
`
`
`Page 12
`
`Page 12 of 59
`
`Implicit Exhibit 2011
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`
`
`Internationalization
`The initial version of AudioPort is US English only. Future versions will be
`internationalized. Juno has no end-user interface, so this should not be an
`issue.
`
`Media Server Hardware
`The minimum hardware required for the Media Server is a 233 MHz Pentium
`II. This was misstated in the Phase 0 document. Pentium Pro systems will
`not be supported.
`
`Adapter Hardware
`The Adapter CPU will be a StrongArm 1110 configured to run in little endian
`mode.
`
`Passing Keys To Decryption Interface Libraries
`AudioPort will be responsible for passing decryption keys to the Windows
`Media Decoder on the Adapter. This component will be implemented as a
`Strings Interface Library. As such, it may make use of platform specific
`mechanisms as needed to implement this requirement. AudioPort intends to
`write the key to a file that will subsequently be read by the interface library.
`Another possible solution under consideration involves the interface library
`listening to receive the information on a socket.
`
`Juno Phase 1 Document – January 26, 2001
`
`
`
`
`
`
`
`
`Page 13
`
`Page 13 of 59
`
`Implicit Exhibit 2011
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`
`
`High-Level Design
`
`In this section we document the high-level design decisions that have been
`made for Juno that will serve as the basis of the low-level design work to
`follow in phase 2.
`
`Overview
`The following diagram illustrates the high-level architecture of Juno:
`
`
`
`Figure 1: Juno Architecture Overview
`
`At the heart of Juno is the Media Control component that receives
`commands from AudioPort and delegates responsibilities to the rest of the
`system. Below we will discuss the various parts of Juno in more detail.
`
`How Juno Processes Requests For Content
`The Media Control receives HTTP commands from AudioPort. A Media
`Control (and Media Server) session starts with an Open command specifying
`the URL of some audio content. Media Control submits the URL to the
`
`Juno Phase 1 Document – January 26, 2001
`
`
`
`
`
`
`
`
`Page 14
`
`Page 14 of 59
`
`Implicit Exhibit 2011
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`
`
`Strings core media engine for processing. Using the media engine’s
`intelligent media routing capabilities (which incorporate Juno-specific
`configuration information specifying how to process each type of source
`content), Strings dynamically assembles the correct sequence of
`components on both the Media Server and Adapter to:
`• Load the desired content (from the local disk or the Internet).
`• Do any server-side decoding or transcoding that is necessary.
`• Deliver the content to one or more Adapters (including the local
`Adapter) either directly (for the local Adapter) or over the home
`network LAN (for remote Adapters).
`• Perform the necessary decoding of the content before finally
`delivering it to the Adapter’s Speaker (for remote Adapters only).
`
`Components
`The following table lists the logical components that make up Juno. The
`overview diagram highlights most of these components. This