throbber
NTERNET
`
`ARCHIVE
`
`archive.org
`
`AFFIDAVIT OF NATHANIEL E FRANK-WHITE
`
`Iam a Records Request Processorat the Internet Archive. I make this declaration
`of my own personal knowledge.
`
`The Internet Archive is a website that provides access to a digital library of Internet
`sites and other cultural artifacts in digital form. Like a paper library, we provide
`free access to researchers, historians, scholars, and the general public. The Internet
`Archive has partnered with and receives support from variousinstitutions,
`including the Library of Congress.
`
`The Internet Archive has created a service known as the Wayback Machine. The
`Wayback Machine makesit possible to browse more than 450 billion pages stored
`in the Internet Archive's web archive. Visitors to the Wayback Machine can search
`archives by URL (i.e., a website address). If archived records for a URL are
`available, the visitor will be presented with a display of available dates. The visitor
`may select one of those dates, and begin browsing an archived version of the Web.
`Links on archived files in the Wayback Machine pointto other archived files
`(whether HTMLpagesorother file types), if any are found for the URL indicated
`by a given link. For instance, the Wayback Machineis designed such that when a
`visitor clicks on a hyperlink on an archived page that points to another URL,the
`visitor will be served the archived file found for the hyperlink’s URL with the
`closest available date to the initial file containing the hyperlink.
`
`The archived data made viewable and browsable by the Wayback Machineis
`obtained by use of web archiving software that automatically stores copiesof files
`available via the Internet, each file preserved as it existed at a particular point in
`time.
`
`The Internet Archive assigns a URL onits site to the archived files in the format
`http://web.archive.org/web/[Year in yyyy][Month in mm][Day in dd][Time codein
`hh:mm:ss]/[Archived URL] aka an “extended URL”. Thus, the extended URL
`http://web.archive.org/web/19970126045828/http://www.archive.org/ would be the
`URL forthe record of the Internet Archive home page HTMLfile
`(http://www.archive.org/) archived on January 26, 1997 at 4:58 a.m. and 28
`seconds (1997/01/26 at 04:58:28). The date indicated by an extended URL applies
`to a preserved instanceofa file for a given URL,but not necessarily to any other
`files linked therein. Thus, in the case of a page constituted by a primary HTML file
`and other separate files (e.g., files with images, audio, multimedia, design
`elements, or other embedded content) linked within that primary HTMLfile, the
`primary HTML file and the otherfiles will each have their own respective extended
`URLsand maynot have been archived on the same dates.
`
`Attached hereto as Exhibit A are true and accurate copies of screenshots of the
`Internet Archive's records of the archivedfiles for the URLs andthe dates specified
`in the attached coversheet of each printout.
`
`Ex. 1018
`CISCO SYSTEMS, INC./ Page 1 of 33
`
`Ex. 1018
`CISCO SYSTEMS, INC. / Page 1 of 33
`
`

`

`NTERNET ARCHIVE
`
`archive.org
`
`7.
`
`I declare under penalty of perjury that the foregoing is true and correct.
`
`DATE:
`
`01/09/2023
`
`Ncthaniel Frenk-White
`
`Nathaniel E Frank-White
`
`Please see attached
`All Purpose
`Jurat form
`for additional
`
`Notary Events
`
`Ex. 1018
`CISCO SYSTEMS, INC./ Page 2 of 33
`
`Ex. 1018
`CISCO SYSTEMS, INC. / Page 2 of 33
`
`

`

`
`
`
`
`
`EXHIBIT A
`EXHIBIT A
`
`Ex. 1018
`CISCO SYSTEMS, INC./ Page 3 of 33
`
`Ex. 1018
`CISCO SYSTEMS, INC. / Page 3 of 33
`
`

`

`https://web.archive.org/web/20130818191236/https:/xmpp.org/extensions/xep-0327.html
`
`Ex. 1018
`CISCO SYSTEMS, INC. / Page 4 of 33
`
`

`

`
`
`
`
`
`XEP-0327: Rayo
`Abstract:
`This specification defines an XMPP protocel extension for the third-party control of telephone calls and other similar media sessions. The
`Profecol Includes support for session management/signaling, a5 well as advanced media resources such as speech recognizers, speech
`synthesizers and audia/video recorders. The protocol servesadifferent purpose from thatof first-party protecols such as Jingle or SIP,
`and is compatible with thase protects,
`Authors:
`Ben Langfeld, Jose de Castro
`Copyright: =) 1999 - 2013 XMPP Standards Foundation.SEELEGALNOTICES.
`
`‘Status:
`Experimental
`Type:
`Standards Track
`Version:
`o2
`Last Updated: 2013-06-10
`WARNING: This Standards-Track document Is Experimental, Publication 4% an XMPP Extension Protocol does not imply aparoval of this proposal by the
`XMPP Standards Foundation, Implementation of the protoco! Gescribed herein is encouraged In exploratory implementations, Dut production systenvs are
`advised to carefully consider whether It is appropriate te deploy Implementations of this protocol before it advances to. status of Graft
`
`Table of Contents 1
`
`
`
`15.SMiSchema
`15.1. Bavo
`15.2, RavaExt
`15.3. RamExtComplete
`
`15.4.RayoOutput
`25.5. RaveOutoutComplete
`15.6. RayoInout
`15.7. RaveInputComolete
`15.8, RayoPromut
`15.9, RayoRecord
`
`15.10.BayeBetondComnfete
`16, History
`Ex. 1018
`17. Acknowledgements
`CISCO SYSTEMS, INC./ Page 5 of 33
`
`Ex. 1018
`CISCO SYSTEMS, INC. / Page 5 of 33
`
`

`

`=
`
`1. Introduction
`Rayo it @ protocol to allow third-party remote control over media sessions, audio/videomixers and 4 varlety of advanced media resources such as
`speech recognizers, speech synthesizers and audio/video recorders. These capabilities can be combined to create a wide variety of applications such as
`menu-based phone systems, in-game conferencing and anonymous dating services. Uniike Jingle or even SIP, a Rayo client is not concemed with being
`@ party to either the session negotiation or the media stream itself,
`+ A Rayo server takes on the role of negotiating a media session betweenitself and some other endpoint, or between two external endpoints, by
`way of an Implementation-specific means, be that Jingle, SIP, the public-switched telephone network, or anything else. The server may even
`bridge multiple networks.
`« The server then presents the Rayo protocol as an interface to @ Rayo cilent, allowing it to monitor and/or exercise third-party control over the
`established media sessions,
`* The client has the option to accept/reject/answer inbound session requests, request the creation of qutbound sessions and monitor their progress,
`‘execute media operations such a¢ speech synthesis, speech recognition & recording, and to end sessions.
`The relationship bétween the calling parties, the Rayo server and the Rayo client looks something like this:
`=aliow
`pth
`
`
`
`
`
`
`This document defines the core Rayo protocol, and contains provistons for Its extension by further specifications,
`2. How it works
`In onder to understand the nature of a Rayo interaction, here we show 4 simple example of a contro! session.
`Example 1. New call announces itself to a potential controlling party
`
` cfpres
`
`In this example, a call from ‘tel:+ 13058851212" has reached the Rayo server ‘shakespearelit by calling ‘tel: +18003211212', and been assigned an ID
`“S00061". The server has determined that ‘jullet@capuletlit’ Is a valid candidate to be the client to whom the server delegates control of the call, and 20
`has directed an offer event to her ‘balcony’ resource,
`The cllent, ‘jullet@capubet.lt", then decides that Ft Is abée to handle the Incoming call, and so acceptsIt from the server, thus gaining exclusive control
`andIndicating to the calling party that the call will be processed and that
`should ring.
`Example 2. Potentialcontrolling party attempts to becomedefinitive controlling party by sending the call an accept command
`
`
`
`
`
`Following confinmation from the server that the attempé to gain control of the call was successful, the cllent proceeds to answerthe call, opening up the
`media stream between the caller and the server.
`Example 4, Controlling party answers the call
`
` fig
`
`Example 5. Call acknowledges answer command to controlling party
`
`
`
`Once the cient has confirmation that the call has been answered,it triggers the start of a media output componentin order to play a message to the
`caller using a Text-to-speech (TTS) engine.
`Example 6. Controlling party requests a new output component
`
`
`
`After confirmation that the output component was successfully created, the citent then awaits notification of ts completion.
`Exampt
`Output component announcesits completion, giving the reason
`
`gracefully.
`Example 9. Controlling party hangs up the call
`
`
`
` The client then decides it has no further operations to perform on the call, and that the call should end. Tt instructs the server to hang up the call
`
`
`
`
`3. Requirements
`‘The protocol defined herein Is designed to provide the following features:
`
`Ex. 1018
`CISCO SYSTEMS, INC./ Page 6 of 33
`
`Ex. 1018
`CISCO SYSTEMS, INC. / Page 6 of 33
`
`

`

`1, Call Control: Incoming calls are “offered” to clients af which point they con be answered, rejected, redirected to another destination, etc,
`‘Outbound calls may also be made and monitored. Every attempt is made to be shield the Rayo cient from the low level telephony profocal (e.g,
`‘SIP, Jingle, PSTN,etc).
`2. Audio File Playback: A compatible Rayo server will fetch4file from 4 4 specified URL and play the containing audio to the caller,
`3. Speech Synthesis / TTS: In cases where dynamic data must be spoken, a Speech Synthesis engine may be used to play computer generated
`speech to the caller.
`4. Touch-tone Events / DTMF: Rayo surfaces real-time event when the caller presses keys on thelr touch-tone keypad.
`5. Speech Recognithon: Enables the phone application to take spoken queues allowing for sophisticated volce-driven menus and directory services.
`6. Call Recording: Can be used to capture the caller's volce (¢.9. Voicemail) or both sides of the call for auditing and compliance pumposes.
`7. Mixing: Typically referred to a5 an audio “conference”; calls can be Joined together so that the participants can hear each other in real-time,
`Manythird-party call contral protocols have preceeded Rayo (see Astertsk's AGL/AML, FreeSWITCH's eventsocket, Microsoft's TAPI, Java's JTAPI,
`Novell/ATAT's TSAPI, CSTA, ete), None of these protocols Is kieal, and all have one of more of the following drawbacks:
`* Totally ground-up wire protocol requiring emplementation all the way down to the socket.
`* Platform/vendor/hardware specific - each system Implements its own proprietary protocol (in many cases, without a formal published
`specification) which does not allow eauily porting an application from ane back-end to another,
`+ Synchronous interface - Operations on calls or offer entities are often blocking, and one must serialise all control messages,
`* Inconsistent » evolved, rather than cesigned.
`* Lacking in scalability - cllent/server sometimes tied one-to-one, servers rarely clustered, advanced message routing not possible.
`= Poor security - lack of wire-level encryption, lack of or sub-standard authentication mechanisms,lack of or limited authorization mechanisms,
`lack of of poor sandboxing between multiple tenants on one system.
`* Inextensible - The specification of extensions to the core protocol bs either Impossibse orvery difficutt,
`Rayo has been designed with these fallings in mind, and Intends to address many concems not addressed by these earlier attempts. The following
`‘considerations were made:
`+ Simple client library implementation - XMPP client libraries exist In all modern languages, and many are of a high standard of quality and
`maturity.
`« Cross-platform standard - The protocol must pot expose any platform specifics and all elements should be candidates for bmplementation ort
`any sultable platform, Adgiditionally, the profecol must be ratified as a standard following a community discussion,
`* Asynchronous interface - The protocol should present an asynchronous Interface for the purposes of performance and flexibly in performing
`parallel operations,
`* Consistent - The protocol must provide a considered, unobtrusive, logically and philtsophicalty consistent interface,
`= Federated - The protocol must support communitation between client and server entities on separately owned, operated and addressed
`networks.
`* Flexible routing - The protocol must lend itself to routing across wide networks such as theinternet, and to potential complex routing such as
`proxying or redirection. Addmionally, the client and server should each be aware of the presence of the other and be able to use such Information
`to make routing decisions.
`* Extensible - The protocol must provide for the possibility of extra functionality being added by future specifications or an individual
`implementation.
`* Secure - The protocol! should inchude appropriate measures for authentication and authorization of participants, as weil as preventing third-parties
`from intercepting control messages,
`Manyof the features In the above list ane available to Rayo at no specification or Implementation cost, since they are core to XMPP itself and thus Raya
`Inherits these ‘or free’.
`Additionaity, the protocol Is required to abstract away the complexity of the back-end negotiation, especially the details of the transport protecols such
`25 SIP or Jingle, but to map conceptually to such protocols.
`4. Terminology
`4.1 Gloseary
`‘Third-party call control (3PCC)
`‘The observation and/or control of a live media session by an entity which Is not 4 direct party to the session.
`Command
`‘Commands instruct the receiving entity to perform some atomic action. Commands may be executed against a given
`‘call, component or miver and can be considered completed as soon as they receive a response. Same commands:
`create components, and return a reference to the component In their response.
`Component
`‘Components extend the Rayo protoce! by providing additional media and call control functionality, Components are
`created by an appropriate command, which returns 4 reference fo the component. Components are executed
`asynchronously, and havea lifecycle attached to them, with the ability to trigger events or have commands Issued to
`ft. Once @ componentts stopped or comes to an end naturally, @ will Issue & special <complete/> event, indicating
`that It has ceased executing and deliver any required data.
`Potential controlling party (PCP)
`An XMPP entity to which an offer to control an Incoming call may be sent.
`Definitive controfling party (DEP)
`The XMPP entity which gains & lock on control of a session, efther by requesting the session's creation, ar being the
`first respondentto an offer,
`Security Zone
`A security zone Is the conceptual border around a call which defines which parties may interact with the call's media
`or signaling. A security zone MUST contain the raya server's Internal Implementation, the media server to which the
`call Is Joined, the DCP, and any JID whose bare form is the same as the DCP. A server MAY relax this definition
`further, for example to consider all JIDs af the same domain to be in the same security zone.
`4.2 Conventions
`In examples, the following J00s are used:
`» jullet@capulet.lit/balcony, romeo@montague.lit/orchard - Potential controlling parties
`+ shakespeare.lit ~The root domain of the Rayo service
`5. Concepts and Approach
`A complete Rayo deployment has several elements and interacting entities which must be uncersteod.
`5.1 Actors
`5.1.1 Server
`A Rayo server is an entity which ts capable of receiving and initiating calls and being party to their media stream, while
`exposing 4 Rayo interface to a cllent in order to permit contral overits calls. The Rayo server may handle calls in any way
`supported by the Implementation, such as SIP, Jingla, etc, and should expose a full XMPP domain at the root level of the
`service deployment (eg shakespeare.lt).
`The Rayo server is responsible for keeping track of valid clients, routing calls to the correct potential controlling parties,
`Berforming authorization Measures on received stanzas, ete,
`For the purposes of this specification, complex server-sice deployments such as clusters, proxies, gateways, protocol
`translators, ete are not considered. Further details of such concepts may be found in thelr (present or future) relevant
`specifications,
`5.1.2 Client(s)
`A Rayo client Is an entity which implements the Rayo protocol for the purpose of asserting control over calts made available
`by 4 Rayo server. The method by which such control measures are determined Is outside the scope of this document, bat
`may be the result of human interaction or some automated decision-making process.
`A Rayo client ts responsible for indicating its availability to a Rayo server and responding to offer messages appropriately.
`5.1.3 Calls
`A Rayo call is 4 short-lived XMPP entity within the scope of the deployment's root domain, perhaps at a sub-darnain, with
`the purpase of representing a single session. It is usually a simple alias for the main server process,
`A Rayo call Is the entity with which most client interactions are made, and is responsibie for sending its events te and
`recelving commands from a cient. Calis may host components,
`‘Cals have separate presence from the foot domain of the service and thus appear to be separate entities.
`5.1.4 Mixers
`A Rayo mixer is an XMPP entity within the scope of the deployment's root domain, perhaps at a sub-cemaln, with the
`purpose of representing a service for the linking of media strearns from several calls. It Is usually a simpte allas for the
`main server process,
`A Rayo mixer is responsible for sending Its events to and receiving commands from one or more clients, and can host
`components.
`Mixers have separate presence from the root domainof the service and its cals and thus appear to be separate entities.
`5.1.5 Commands
`A Rayo command Isa simple combination of request and response and may be sued directly to the service domain, a call,
`3 mixer or a component attached to any of the former. Commands are executed serially and are generally very short-lived,
`5.1.6 Components
`Components extend the Raye protecol by providing additional media and call control functionality.
`Components havealifecycle and are started by sending 4 specialized command to 4 call or mixer. Thus, @ request for
`‘creation of a componentwill return a reference to the component's 1D, and the component will continise to execute lentil Mt
`completes, potentially sending events and processing commands along the way (such as an instruction fo pause oF
`terminate), before finally issuing an event indicating Its completion and thus unavailability, Multiple components may be
`active on @ call or mixer at any one time, and commands may be executed on any entity during the execution of a
`component.
`5.2 Addressing Scheme
`All of the actors described In the previous section (with the exception of commands) are represented by XMPP entities with a JID of their
`own, Thus, a scheme for determining the J1Ds of each of these entities Is required. The followingis the required naming scheme for Rayo
`deployments, where ebements in square brackets are optional.
`Table 1:
`
`Actor
`AID format
`Example JID
`
`shakespeare.tit
`
`JulletGcapulettitybalcony
`fakeh2@callshakespeare, lit
`
`conf @miner.shakespearelit/932eu <service domain>/<component ID>
`
`<call ID>@[<call sub-domain>.)<service domain>/<component
`
`ID> Geh2@callshakespeare,lit/Hat
`<mixer name>@[<mixer sub-domain>,)<service
`domain /<component ID>
`shakespeare.If3tgs Ex. 1018
`CISCO SYSTEMS, INC./ Page 7 of 33
`
`Ex. 1018
`CISCO SYSTEMS, INC. / Page 7 of 33
`
`

`

`
`Commands should be addressed te the ently on which they should be enacted. Individual commands only apply to certain object (for
`example Instructing @ component to hangup will return an error). In general, commands may be sent from a cilent to the service, a call,
`@ mixer oF a component. Events may be sent from a call, a mixer or a component to a client.
`5.3 Delivery Mechanism
`Rayo defines several events and commands which may be executed on one of the above actors. These payloads must be sent within an
`XMPP primitive element, and the rules are as such:
`«© Events: Sent as directed presence from the entity producing the event toa client.
`* Commands:Sent a5 an <iq/> with the type’ attribute ‘set’ from the client to the entity to be acted on. Responses returned as an
`<lq/> with the ‘type® attribute elther ‘result’ or ‘error’.
`6. Session Flow
`This section describes the form, function and order of Rayo stanzas sent across the wire, and the circumstances in which they apply and/or may arise.
`6.1 Client Registration
`In order for a Rayo client to be considered a potential controlling party for incoming sessions, It MUST first notily the Rayo server that ik
`is avallable for the receipt of calls. This is Gone by sending directed presence tothe Rayo server with a <show/> element containing
`“chat! as in the example:
`Example 12. Client presents itself as available to the Rayo server
`
`Conversely, when a Rayo cient wishes not to be considered a potential contreliing party, It SHOULD send directed presence to the Rayo
`Server with & <show/> element containing “dnd” as in the example:
`Example 13. Client presents itself as unavailable to the Rayo server
`gre
`
`
`Tt
`
`6.2 Session Establishment
`‘Sessions may be established emher at the request of the Rayo client (an outbound call) of as a result of a Ird party request (an Inbound
`call). Each scenario differs in the Rayo protocol only up to the point at which the session Is established and media begins to flow, First we
`shall examine the sequence of stanzas passed between server and client in each of these scenarios,
`6.2.1 OutboundCall
`In onder for a cllent to establish a new outbound cal, it MUST first send @lalcommand to the server, indicating the
`proposed target for the call, its apparent source, and any meta-data to send to the target as headers.
`Example 14. Client requests establishment of a new outbound session
`
`
`
`On successfully receiving and parsing the dial command, the server SHOULD perform its own proprietary authorization
`measures fo ensure that only desirable outbound sessions are created, [f It ls established that the command should nat be
`allowed, the server MUST return an errer giving an authorization reason,
`6.2.1.1 Errors
`‘There are several reasons why the server might Immediately return an error instead of acknowledging the
`creation of a new call:
`@ The cllent [5 unknown te the server and the server does not pErmle session creation by unknown ellents.
`* The client is not authorized to create this new session.
`# The server does mot support outbound calls,
`* The server does not have sufficient resources to create a new session.
`© The dial command was malformed.
`If the client Is unknown to the server and the server does not permit session creation by unknown clients, the
`server MUST retum a <registration-required/> error with a type of ‘auth.
` imple 15. Server indicates
`client is unknown and the server does not permit session creation by
`unknown clients
`
` Jovi
`
`if the client Is not authorized (as determined by an implementation/deployment-specific algorithm) to create a
`hew sutbound session given the parameters pravided, the server MUST return 4 <not-authorized/> error with
`a type of ‘auth’.
`Example 16. Server indicates client is not authorized to create a new outbound session given the
`parameters provided
`
`
`
`
`If the server does not support outbound calls, the server MUST return 4 <festure-not-implemented/> error
`with a type of “cancel’.
`Example 17. Server indicates that it does not support outbound calls
`
`
`
`
`If the server does not have sufficient resources to create a new session, the server MUST retum a <regource-
`constraint) error with a type of‘wait’,
`Example 18. Serverindicates that it does not have sufficient resources to create a new session
`
`
`
`
`satel xalps
`
`
`
`|
`
`
`
` st
`
`Ex. 1018
`CISCO SYSTEMS, INC./ Page 8 of 33
`
`Ex. 1018
`CISCO SYSTEMS, INC. / Page 8 of 33
`
`

`

`
`
`
`
`If the dial command was malformed, the server MUST return a <bed-request/> error with a type of ‘moxiity".
`Example 19. Server indicates the dial command was malformed
`
`
`
`If the command Is successful and the call Is queved, however, confirmation of such should be sent to the client, Inchuding a
`reference to the unique [D of thecall, This call 1 may be used to execute commands and filter events for the duration of
`the session,
`Example 20. Confirmation of successful dial request and call ID
`
`
`
`‘Once the server recelwes notification that the session has been accepted by the third party, it should send a ringing event
`to the client to Indicate such:
`Example 21. Call announces its ringing state (accepted by 3rd party but not yet answered).
`
`
`
`Similarly, once the server receives notification that the session has beenanswered, It should negotiate media between the
`Maled party and its local media server, Once media negotation is complete, It should send an answered event to the cient
`to Indicate such;
`Example 22. Call announces its answered state (media connected).
`
`
`
`6.2.1.2 Nested join
`When sending a dial request, a cent MAY specify a join target within the dial element:
`Example 23. Client requests establishment of a new outbound session, with a nested join
`
`
`
`In this case, the server MUST treat the session creationIn the same way a5 without the join element, until the
`paint of media negotiation. Here, the server should negotiate media as specified by the join element, in
`accordance with the rules defined In joiningcalls. Medla MUST NOT be negotiated with the local media server,
`unless the join specifies so. The join operation MUST behave as described In Joining calls.
`6.2.2 Inbound Call
`When the system recelves a call from one of ts connected networks, It MUST then expose that requested session to Rayo
`clients, ft SHOULD use an implementation-specific routing mechanism to map incoming calls to some set of registered JID
`whieh are considered appropriate controlling parties. From this set, it SHOULD then remove any parties whom It can
`Identity as being temporarily inappropriate for control (either unavailable based on presence, under too much load, or any
`other metric which the server has available). ff, as & result, the set of Potentially Controlling Parties is empty, the server
`MUST reject the call with a ‘decline’ reason.
`If the server can Identify active Potential Controlling Parties, It MUST offer them control of the call simuitaneously, The
`server must broadcast an offer on behalf of the call te all Potential Controlling Parties, using applicable to/fromyheader data
`from the incoming session, The server MUST also inciude entity capabilities Information In the presence stanza containing
`the offer, in order to advertise the fact that the entity ts a call, qualified by the node name “unn:xmpp:rayo:call: 1°,
`Example 24. New call announces itself to a potential controlling party
`
`
`
`Once the server has offered control, & MUST walt indefingtely for a response from a PCP, The server SHOULD monitor the
`availability of PCPs to whom offers have been sent. If they all cease to be PCPs (eg by going offline) then the call should be
`Fejected in the same way as If there had not been any available PCPs to begin with.
`If an offered PCP executes a command against the call, by sending a command node to the call's JID inside an 1Q ‘ser, the
`server should execute the following routine:
`1. 1 the call does not have @ DCP, set it to the PCP from which the command originated.
`2. If the call has a DOP, and the command did not originate from the DCP, retunn a conflict (cancel) error in response to
`the command of the following format:
`Example 25. Server indicates that the call already has another DCP and that control of the call is no
`longer available,
`
`
`
`otherwise;
`3.If the command Is an accept command, notify the remote calling party that the call as been accepted, Return an
`empty 2Q result to the command Issuing party to confirm successful execution.
`4. Tf the command is an answer command, notify the remote calling party that the call has been answered and
`negotiate media between the calling party and the server's local media server, Return an empty [Q result to the
`command isuing party to confirm successful execution.
`5. If the command Is any other, handle it in the manner detailed In the following sections.
`6.3 Joining Calls
`Calls Ina Rayo system are capable of having thelr media streams moved/manipulated. Once such manipulation ls to Join the media
`streams of two calls. In a scenario where callA and callB should be joined, the dient MUST send a join command to elther call (nat both)
`specifying the call 1D of the other call, live £07
`Example 26. Client Instructs calla to join to callB and the server acknowledges the join was completed
`
`
`
`Ex. 1018
`CISCO SYSTEMS, INC./ Page 9 of 33
`
`Ex. 1018
`CISCO SYSTEMS, INC. / Page 9 of 33
`
`

`

`
`I the calls to be joined to each other are in the same security zone, the server MUST join the media stream of the two calls and return
`an-empty [Q result to confirm that the operation has been successful, If the parties to be jolned are not within the same security zone,
`an error should be returned as detailed below,
`When calls are Joined to each other by any mechanism, each call MUST dispatch a joined event specifying who they have been joined
`Example 27, Call A and B were joined, both calls emit joined events
`
`
`
`
`
`By default, the server MUSTjoin the calls by bridging their audio throughits local media server, with bidirectional media, In order to
`Specify altemative behaviour, the client MAY specify a media option (elther‘bridge’ or ‘direct’) and/ora direction option (either ‘duptex’,
`‘send’or recy’), and the server MUST bridge accordingly.
`6.3.1 Errors
`There are several reasons why the call might retunn an error instead of acknowledging a join:
`* The specified join party does not exist or cannot be found.
`+ The specified Join party Is Inaccessible for the purposes of being joined due to security restrictions,
`« The server does not have sufficient resources to complete the join.
`© The joln command was. malformed,
`« The specified mediafdirection options or their combination are not possible/supported.
`If the specified join party does not exist or cannot be found, the server MUST return 4 <service-unavallable/> error with &
`type of ‘cancer.
`Example 28. Call indicates that the specified join party does not exist or cannot be found
`
`
`
`If the specified Join party ts Inaccessible for the purposes of being joined due to security restrictions, the server MUST
`Tetum a <not-allowed)> error with a type of ‘cancel’.
`Example 29. Call indicates that the specified join party is inaccessible for the purposes of being joined due to
`security restrictionss
`
`
`
`If the server does not have sufficient resources to complete the Join, the server MUST return a <resource-constrainty>
`error with a type of ‘walt’,
`Example 30. Call indicates that there are not sufficient resources to complete the poin
`
`
`
`If the Join command was malformed (eg no call URI spectied), the server MUST return 4 <bad-request/> esror with & type
`of "modify".
`Example 34. Call indicates that the join command was malformed
`
`
`
`If the specified media/direction options or thelr combination are not possible/supported, the server MUST return a
`cfeature-not-Implemented/> error with a type of ‘modify’,
`Example 32. Call indicates that the specified media/direction options or their combination are mot
`possible/supported.
`
`
`
`‘deer
`
`airgetiane rere!
`
`6.3.2 Unjoin Command
`When the client wishes to terminate an existing join, it MUST send an unjoin command specifying the Join to break (call-id).,
`Example 33. Client instructs callA te unjoin from calli
`
`
`
`The server MUST unjoin the media streams of the two calls, rejoin both to the media server and retum an empty IQ result
`to confirm that the operation has been successful:
`Example 34, CallA acknowledges unjoin from call
`
`
`
`Optionally, if na join Is specified on the unjoln command, all existing joins must be broken:
`Example 35, Client instructs callA to unjoin from every existing join
`
`
`
`
`6.3.2.1 Errors
`There are several reasons why the call might retum an error instead of acknowledging an unjoln command:
`= The specified join does not exist.
`# The unjoin command was malformed.
`If the specified Join does not exist, the server MUST return 4 <service-unawallable/> error with a type of
`
`Ex. 1018
`CISCO SYSTEMS, INC./ Page 10 of 33
`
`Ex. 1018
`CISCO SYSTEMS, INC. / Page 10 of 33
`
`

`

`‘cancel’.
`Example 36. Call indicates that the specified join does not exist
`
`i=*enppicalictenks shakespanne diel
`
`Ifthe unjoin command was malformed [eg an empty call URI specified), the server MUST return 4 <bad-
`request/> error with a type of ‘madify’.
`Example 37. Call indicates that the join command was malformed
`
`
`
`6.3.3 Unjoined Event
`Calis may be unjoined from othercalls either in re

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