The manner in which communication sessions with remote parties occur is currently limited in functionality and flexibility. Accordingly, what is needed are a system and method that addresses these issues.
For a more complete understanding, reference is now made to the following description taken in conjunction with the accompanying Drawings in which:
It is understood that the following disclosure provides many different embodiments or examples. Specific examples of components and arrangements are described below to simplify the present disclosure. These are, of course, merely examples and are not intended to be limiting. In addition, the present disclosure may repeat reference numerals and/or letters in the various examples. This repetition is for the purpose of simplicity and clarity and does not in itself dictate a relationship between the various embodiments and/or configurations discussed.
Referring to
The control device 102 and client devices 104, 106, and 108 may be mobile devices (e.g., tablets, smartphones, personal digital assistants (PDAs), or netbooks), laptops, desktops, workstations, smart televisions, and/or any other computing device capable of receiving and sending electronic communications via a wired or wireless network connection. Such communications may be direct (e.g., via a peer-to-peer network, an ad hoc network, or using a direct connection), indirect, such as through a server or other proxy (e.g., in a client-server model), or may use a combination of direct and indirect communications.
While multiple sessions may be combined into a single session (e.g., as a conference call or a whiteboard sharing session), it may be desirable in some scenarios described herein to maintain the sessions 110, 112, and 114 as independent sessions. Accordingly, with independent sessions, only the control device 102 has access to the session established with each of the client devices 104, 106, and 108, and the client devices do not have access to the sessions of the other client devices. In other words, neither the client device 106 nor the client device 108 may access the session 110 unless the control device 102 specifically merges the sessions, and such functionality may or may not be available to the control device depending on the particular configuration of the control device and/or client devices. For example, such functionality may be disabled to prevent a user of the control device 102 from inadvertently merging sessions. This may be of particular value in environments where privacy requirements are high and possibly regulated by law, such as telemedicine and counseling environments.
In other embodiments, a client device may be provided the needed functionality to invite another device to a session. In such embodiments, the other device may not be part of an existing session, but would be invited to participate in the session. Each session may be end-to-end encrypted for both signaling and media. This enables sessions to be channeled through third-party servers without compromising private information.
A session may be accessed by the control device 102 and client devices in various ways. For example, a session may be accessed in a web based manner via a web browser (e.g., based solely on a browser's native capabilities or using scripting, an applet, and/or other browser related functionality), or may be accessed in an application based manner using a downloaded application that is installed and/or used to execute a temporary file. It is understood that the control device and client device may access a session in different ways, such as an installed application for the control device and browser access for the client device or vice versa.
The terms “control device” and “client device” as used herein do not in themselves dictate a server/client or other particular relationship between the control and client devices. As will be seen in following examples, the terms are generally used in a relational manner to indicate that the control device is controlling one or more sessions via a control interface, and each client device is communicating with the control device via one of those sessions. In some embodiments, the control device 102 may have access to functionality not available to the client device, such as the ability to inject videos and/or other media into the session when the session is ongoing or placed on hold. In addition, it is understood that each of the control device and client devices are generally used for interactions with a user, and the user information may be used or displayed in any given example herein. For example, the control device 102 may be identified as such, or may be identified by a user name or other designation.
For purposes of example, each of the communication sessions 110, 112, and 114 is described with respect to a hybrid peer-to-peer model, but the present disclosure is not limited to such models. It is understood that each of the sessions 110, 112, and 114 may include multiple connections or channels for different functions, such as a connection/channel for an audio/visual call and another connection/channel for document sharing. Alternatively, a single connection/channel may be used to provide multiple functions. Examples of hybrid peer-to-peer communications and functionality that may be used herein are disclosed in U.S. Pat. Nos. 7,656,870; 7,623,516; 7,623,476; 7,933,260; 8,050,272; 8,218,444; 8,446,900; 8,694,587; 8,892,646; 9,027,032; and 9,356,997.
From a technical perspective, each device may act as a client, a server, and/or as something else depending on the underlying technological framework used to establish and maintain the communication sessions. For example, in a hybrid peer-to-peer framework, both the control device 102 and a client device may take the roles of a server and a client, depending on which way information is being transferred at a given time. In a traditional client-server framework, both the control device 102 and the client device may be clients interacting with a server that is separate from either device. Accordingly, it is understood that the functionality described herein may be translated to various technological frameworks, with appropriate method steps and message flows that correspond to the particular framework in which the present disclosure is implemented.
Referring to
Referring to
The communications framework 120 may enable all of the client devices 104, 106, and 108 to request access to the control device 102 via a single, identical uniform resource locator (URL) or other uniform resource identifier (URI). Because the communications framework 120 enables sessions to be established and managed together, it can identify different session requests and set each session up independently even though all requests are received via the same URL. This means that either static or dynamic URL allocation may be used, and a single URL can be send to multiple invitees for independent sessions. It is understood that this is not required and that unique URLs may be used if desired.
Referring to
In the present example, the GUI 200 may be used to control multiple communication sessions, such as the sessions 110, 112, and 114. Individual sessions may be added or dropped without affecting the status of the other sessions. Depending on the embodiment, a limited number of session slots may be available, or sessions may be added until constrained by technological or other factors (e.g., memory, bandwidth, or available time slots). The GUI 200 may be web-based and accessible by control device 102 via a web browser, or may be application based and accessible by the control device using a downloaded application that is either installed or used to execute a temporary file.
In the present example, the sessions are with individuals using the client devices 104, 106, and 108. The sessions are separate and remain so unless merged by the control device 102. The client devices 104, 106, and 108 may not have the ability to unilaterally merge with another session, but may have the ability to approve or reject a merge initiated by the control device 102. In addition, the control device 102 and/or the client devices 104, 106, and 108 may have the ability to create a new session (e.g., rather than merging an existing session) and add that session to an existing session.
The GUI 200 provides a session list for the user of the device 102, with a session indicator 202a for the session 110, a session indicator 202b for the session 112, and a session indicator 202c for the session 114. In the present example, each session indicator 202a-202c includes a name for the individual communicating via the respective client device.
The GUI 200 may further include controls for each of the sessions 110, 112, and 114, with a control 204a for session 110, a control 204b for session 112, and a control 204c for session 114. The controls 204a-204c enable a currently active session to be put on hold (e.g., the control 204b) or may be used to switch to a currently held session (e.g., the controls 204a and 204c). Switching to a session that is on hold may automatically put the current session hold. Putting the current session on hold may retain the current session as the active session (e.g., may place the current session on hold without switching to another session). Additional controls 206a and 206b may be used to merge existing sessions.
A video display window 208 may be provided for a video call in the active session. As the current session is with Rashmi, her name may be provided in the window. Controls such as a speaker button 210, a mute button 212, and a video button 214 may be provided for control over the audio and video aspects of the call.
A screenshare button 216 may be provided to enable screen sharing. A send button 218 may be provided to send data in the current session. For example, selection of the send button 218 may open a dialog box or menu from which one or more files, URLs, and/or other data may be selected for transmission to the client device separate from, or embedded into, the ongoing call. The terms “file” and “media” as used herein include any type of text, image, model (e.g., a 3-D model or information needed to render/manipulate such a model), audio, and/or video file or combination of files, and may include files having multiple media types (e.g., an audio/video file or a text document with inline or linked images).
The data may be local on the control device 102, may be retrieved from a storage location (e.g., a server or database) prior to being sent by the control device, or may be accessed by the client device from a storage location (e.g., a server or database) using a link or other access mechanism provided by the control device. The data may be send as a discrete file or streamed, depending on the particular file and transfer mechanism. Data may also be provided via a link to the client device.
The send process may be accomplished in different ways. The system may be limited using various parameters or may dynamically adjust how data is sent based on factors such as available bandwidth and processing power, the type of data to be sent, whether the call is on hold or active, and similar factors.
Referring to
In other embodiments, data may be sent while the call is on hold, enabling the client device to display the video file or other file while waiting for the control device 102 to restore the session to active status. One embodiment includes sending/beginning to stream a file and then placing the session on hold (the file may still be sending/streaming while on hold in some examples). Another embodiment includes placing the session on hold and then sending/streaming the file to the client device. Still another embodiment includes sending a URL to the client device before or after placing the session on hold, and the client device selects the URL to download or stream the file. Such data transmissions may require user acceptance/authorization or may automatically play on the client device.
In some embodiments, a URL or a file may be sent or streamed to the client device from a preset list of available options before or after the session is put on hold. The selection may be manual or automatic, with automatic selections having a variety of options such as predefined, prioritized, based on the current session's context, and/or random. In some embodiments, user engagement may be tracked to record whether the file was viewed and, if so, how much of the file was viewed. In other embodiments, the file may simply be transferred without tracking user engagement.
Each feature of the GUI 200, including the session indicators 202a-202c and controls 204a-204c, 206a, and 206b may include text, colors, border modifications (e.g., dotted lines, thicker or multiple lines, etc.), and/or other variations to indicate the status of the associated session and/or available functionality. For example, the active session of session indicator 202b may be outlined or filled with green, and the inactive sessions of session indicators 202a and 202b may be outlined or filled with yellow or red. Additionally or alternatively, some or all section indicators may be shaded in color, may display symbols, etc., to indicate the status of their respective sessions. Functionality may be grayed out or removed if not available. Furthermore, the amount of time on hold may be indicated via a visible timer, changes in the session indicator (e.g., slowly turning from yellow to red), and/or using other methods.
In addition, it is understood that many different arrangements of various elements illustrated on the GUI 200 may be used. Elements may be removed, added, combined, further divided, and positioned differently. Accordingly, it is understood that many different graphical presentation and implementation techniques may be used with the GUI 200 and the present disclosure is not intended to be limited to those explicitly illustrated or described.
Referring to
Referring to
Referring to
The GUI 600 is displaying incoming requests 608a-608c. The incoming request 608a has been selected, showing additional selection possibilities such as an additional information button 610, an assignment button 612, and a schedule button 614. The incoming request button 610 may provide additional information about the caller, whether a particular queue should be used (e.g., an appointment for a particular doctor rather than a general call for first available), and similar user specific details. The assignment button 612 may be used to assign the call to a particular available slot (e.g., the slot 606d). This will place the request in the virtual waiting room for the control device 604a. The schedule button 614 may be used to schedule a later call, such as with the control device 604b when it comes online. In some embodiments (not shown), the control device 604b may have slots available for future calls, and the incoming request 608a may be assigned to one such slot.
Referring to
In step 628, a list of client devices in the virtual waiting room may be displayed. In step 630, a selection of a particular client device is received with any additional options (e.g., whether the session is to be initiated as a chat session, audio only call, or video call). In step 632, the session is initiated. Step 632 will generally end or suspend the media on the client device. Playback may continue if the session is again placed on hold, if the user of the client device indicates they wish to continue, and/or based on other parameters.
Referring to
Referring to
The particular information may be selected based on the context of the session. For example, if the session is a medical consultation, the media may be related to available diagnostic procedures, potentially applicable drugs, and/or other information that may be used to inform and/or educate the patient while waiting for the session to continue. If the session is for discussing the purchase or rental of a product or service, the media may be related to options, upgrades, alternatives, availability, special deals, and/or other information that may be applicable to the consumer. If the session is a consultation session for advice (e.g., beauty advice, counseling, recruiting, or professional development), the media may be related to various options, products, subscriptions, and/or other information that may be applicable to the individual seeking advice. The media may play automatically or may require the user of the client device to accept the media.
In
In
In
Referring to
Referring to
Referring to
Referring to
In step 1102, media or a URL is received. Although not shown, an authorization step may be present in some embodiments that enables a user of the client device 104 to reject the media/URL. If this occurs, the method 1100 may move directly to step 1116. The following description of
If media is received in step 1102 as determined in step 1104, the method proceeds to step 1108 where the media is played. If a URL is received, the method 1100 moves to step 1106 to obtain the media before moving to step 1108. If the hold remains in place as determined in step 1110, the media may continue playing. It is understood that step 1110 may be an interrupt rather than a determination, in which case the media may play until an interrupt occurs.
If the hold is removed, the media is ended/suspended in step 1112 and the method 1100 moves to step 1118 where the call is continued. There may be a closing notice, such as a an audio or text “Thank you” as the media is being closed. If the hold remains, the method 1110 may determine if the media has ended (e.g., finished playing if a video or audio file). If the media has not ended, the method 1100 may return to step 1108 and continue playing the media. If the media has ended, the method 1100 waits for the removal of the hold in step 1116. Once the hold is removed, the call continues in step 1118. In some embodiments, the client device 104 may request additional media in following step 1114 or may receive additional media as indicated in
In some embodiments described in the present disclosure, analytical data may be compiled. For example, if media is played while sessions are on hold, the media name, number of times the media is played, whether the media was paused or reversed for additional viewing, the control device that selected the media, and similar information may be compiled. Such data may be used to determine effectiveness of particular media, gauge interest, identify effectiveness or use patterns relative to other media, etc.
Referring to
The server 1204 may host at least some of the technology needed for the communications and virtual waiting room functionality to operate. For example, if the technological framework is a hybrid peer-to-peer system, the server 1204 may function as the server that performs operations needed for such a system as described in previously referenced U.S. Pat. Nos. 7,656,870; 7,623,516; 7,623,476; 7,933,260; 8,050,272; 8,218,444; 8,446,900; 8,694,587; 8,892,646; 9,027,032; and 9,356,997.
With additional reference to
With respect to both
If media is to be injected into a session while the session is active or on hold, a URL or list of URLs may be provided to the server 1204, one or both of the electronic storages 1206/1208, and/or to the control device 102. This avoids the need to store the media within the medical facility, although such storage may be used for at least some of the media in some embodiments. Media may also be stored on a remote server 1210 that may or may not be associated with the medical facility 1202.
In some embodiments, the control device 102 may not be located within the medical facility some or all of the time. For example, if the control device 102 is a tablet, a doctor within the medical facility may use the tablet from home. In other embodiments, the control device 102 may be limited in functionality based on a geofence, time parameters, and/or other restrictions.
The previously described functionality and interfaces may be directed to the medical environment 1200. For example, the control device 102 may be associated with a doctor, a nurse practitioner, or other medical personnel (all personnel may be generally referred to herein as “doctor” for purposes of illustration). The client devices 104, 106, and 108 may be associated with patients of the doctor. The sessions 110, 112, and 114 are to remain separate as each may involve the transfer of confidential and sensitive health data in the form of verbal and visual communications, text chat, documents, images (e.g., CAT scans and X-rays), etc.
As described previously, additional client devices may be added to a session in a conference call if desired. For example, if the patient is a minor, a parent or guardian may be present. Family members, friends, other medical personnel (e.g., specialists), and/or other individuals may be added to a session. If needed, consent forms may be sent to users of client devices to ensure that proper documentation procedures are followed, just as they would be for in-office visits. Accordingly, by sending and receiving online forms, scans or images of signatures, and similar electronic documents, the present disclosure enables established procedures to be maintained even in virtual consultations.
Reminders may be used if documents are needed, or functionality may be blocked until certain steps are taken. For example, audio and video may not be available to a client device unless a consent form is received. It is understood that such constraints are customizable and may not be required unless desired. Patient education (PE) information, advertisements, and other information may be sent to the client devices as described in previous embodiments, either directly (e.g., as shown in
Referring to
Referring to
It is understood that the sequence diagrams described herein illustrate various exemplary functions and operations that may occur within various communication environments. It is understood that these diagrams are not exhaustive and that various steps may be excluded from the diagrams to clarify the aspect being described. For example, it is understood that some actions, such as network authentication processes and notifications, may have been performed prior to the first step of a sequence diagram. Such actions may depend on the particular type and configuration of a particular device, including how network access is obtained (e.g., cellular or WLAN access). Other actions may occur between illustrated steps or simultaneously with illustrated steps, including network messaging for call maintenance (including handoffs), communications with other devices (e.g., email, text messages, and/or voice calls (including conference calls)), and similar actions. In addition, is it understood that single messages may be illustrated or described, and such messages may actually represent a series of messages.
Referring to
For purposes of simplicity in this and following embodiments, the control device 102 may be hosting or otherwise providing the waiting room. In embodiments where a separate device or server is providing the waiting room (e.g., the gateway server 1204a of
Referring specifically to
Referring specifically to
Referring specifically to
Referring specifically to
In step 1370, the active call between the control device 102 and the client device 106 is ended. In step 1372, the control device 102 updates its status with the server 1204 as available. In step 1374, the control device 102 instructs the server 1204 to disconnect the client device 106 from the waiting room, and the server 1204 notifies the client device 106 of the disconnection in step 1376.
Referring to
Referring specifically to
In step 1418, the control device 102 notifies the server 1204a to begin recording. In step 1420, the server 1204a instructs the server 1204b (which may be the same server as the server 1204a or a different server) to set up a recording session for the control device 102 and the client device 104. In steps 1422 and 1426, respectively, the server 1204a sends a start recording message to the control device 102 and client device 104 to begin recording. This message may contain information needed to send data to the server 1204b.
Referring specifically to
In 1440, the active call between the control device 102 and the client device 104 is ended. Although not shown, the control device 102 may update its status with the server 1204a as available. In step 1442, the control device 102 instructs the server 1204a to disconnect the client device 104 from the waiting room, and the server 1204a notifies the client device 104 of the disconnection in step 1444. In step 1446, the control device 102 may retrieve the recording from the server 1204b and play back the session in step 1448.
Referring to
Referring specifically to
Referring specifically to
In step 1534, the control device 102 invites the client device 106 to join the ongoing call of step 1532. However, the control device 102 does not host the conference call itself and so sends a message to the server 1204a that it is joining a conference call. The message may include the identify of the other participants (e.g., the client devices 104 and 106) and may serve as an instruction to the server 1204a to set up the call. In steps 1540 and 1542, respectively, the client devices 104 and 106 send messages to the server 1204a to join the conference call. In step 1542, the server 1204a connects to a server 1204b, which is the server 1204b of
Referring specifically to
Referring specifically to
Referring specifically to
Referring specifically to
Referring to
Referring to
Steps 1602-1624 are identical to steps 1502-1524 of
Referring to
Referring specifically to
Referring specifically to
In step 1734, the control device 102 invites the client device 106 to join the ongoing call of step 1732. However, the control device 102 does not host the conference call itself and so sends a message to the server 1204a that it is joining a conference call. The message may include the identify of the other participants (e.g., the client devices 104 and 106) and may serve as an instruction to the server 1204a to set up the call. In steps 1740 and 1742, respectively, the client devices 104 and 106 send messages to the server 1204a to join the conference call. In step 1742, the server 1204a connects to a server 1204b, which is the server 1204b of
Referring specifically to
In step 1756, the control device 102 notifies the server 1204a to begin recording. In step 1758, the server 1204a instructs the server 1204b (which may be the same server as the server 1204a or a different server) to setup a recording session for the control device 102 and the client device 104. At this point, there is an active recording session with the server 1204b sending conference call data to the server 1204c for recording as shown by step 1760.
Referring specifically to
Referring specifically to
Referring specifically to
In steps 1790-1792, respectively, the server 1204a notifies the control device 102, the client device 104, and the client device 106 that the conference is over. In step 1793, the control device 102 indicates to the server 1204a that it is available. In step 1794, the control device 102 instructs the server 1204a to disconnect the client devices 104 and 106 from the waiting room. The server 1204a notifies the client devices 104 and 106 of the disconnection in steps 1795 and 1796, respectively. In step 1797, the control device 102 may retrieve the recording from the server 1204b and play back the session in step 1798.
As described in previously incorporated U.S. Provisional Application Ser. No. 63/176,419, filed on Apr. 19, 2021, and entitled SYSTEM AND METHOD FOR HIGHLY SCALABLE BROWSER-BASED AUDIO/VIDEO CONFERENCING, in some embodiments, audio/video data for the control device and/or client device(s) for single and/or conference calls may be displayed via a browser (e.g., using Chrome, Safari, Internet Explorer, Brave, Opera, or a similar browser) without the use of a client-side application or plug-in on the device. It is understood that in other embodiments the present disclosure may be applied to environments in which a device uses an application or browser plug-in to communicate with the other device or MCU 1204b, and the description of browser only communications is not intended to be limiting.
By relying strictly on the browser's inherent capabilities without the use of applications or plug-ins, the ability to join and participate in the conference call is available to any device with a browser. This simplifies joining a conference call, and enables joining even if the device does not permit the download or installation of applications or browser plug-ins. Furthermore, this provides a level of security to the device, as there are no downloads to be installed or authorized in order to access the conference call. In addition, as many browsers are widely used and frequently updated for security reasons, the user of the device need not be concerned about potential application or plug-in flaws that might compromise the device's security if not updated. In addition, by relying only on the device's browser, there is less chance of needing an update before joining a conference call, as might happen if an application or a plug-in has not been used for a while. This also enables even mobile devices to fully participate in a conference call using only their built-in browser (or another browser that is selected by the user).
To accomplish this browser focused conferencing, the conference server 1204b may use the WebRTC framework to provide complete conference functionality. The solution also supports the Unified Plan for SDPs as supported by Safari, in addition to Plan-B that is supported by Chrome and other platforms. Further support may be provided using a cross-platform JavaScript SDK that is fully featured.
Referring to
A waiting room 1812 provides a view of anyone waiting in the virtual waiting room. In the present example, the waiting room is currently empty. An invitation panel 1814 provides a link and a way in which to invite users to the waiting room or a call. For purposes of example, the invitation panel 1814 includes a link 1816 that may be sent to invitees, where clicking on the link will place them in the waiting room. For example, sending the link result in step 1304 of
Referring to
Referring to
Referring to
Various buttons or other actuators may provide functionality, including a chat button 2108 to initiate a chat message, a file share button 2110 to initiate a file share, an audio call button 2112 to initiate an audio call, and a video call button 2114 to initiate a video call. A patient education button 2116 may be used to allow the selection of patient education material to send to the client. A disconnect button 2118 enables disconnection of the current client, which may disconnect them from the waiting room.
Referring to
Referring to
A waiting room view 2310 provides a view of users in the virtual waiting room, with Siva currently waiting. An options selector 2312 may provide options (e.g., some or all of the options of the window 2102 of
Various buttons may be used to provide additional functions and/or control the call. A chat button 2320 may be provided to enable text messaging. A video button 2322 may be provided to enable and disable video. A pause button 2324 may be used to place the call on hold, and may be replaced by a play button (not shown) to remove the call from hold. A mic button 2326 may be used to mute and unmute audio. A disconnect button 2328 may be used to end the call.
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
The computer system 3000 may use any operating system (or multiple operating systems), including various versions of operating systems provided by Microsoft (such as WINDOWS), Apple (such as Mac OS X), UNIX, and LINUX, and may include operating systems specifically developed for handheld devices, personal computers, and servers depending on the use of the computer system 3000. The operating system, as well as other instructions (e.g., for the processes and message sequences described herein), may be stored in the memory unit 3004 and executed by the processor 3002. For example, if the computer system 3000 is the control device 102 or a client device 104, 106, 108, the memory unit 3004 may include instructions for performing some or all of the message sequences and methods described with respect to such devices in the present disclosure.
The network 3016 may be a single network or may represent multiple networks, including networks of different types. For example, the control device 102 or a client device 104, 106, 108 may be coupled to a network that includes a cellular link coupled to a data packet network, or data packet link such as a wide local area network (WLAN) coupled to a data packet network. Accordingly, many different network types and configurations may be used to establish communications between the control device 102, client devices 104, 106, 108, servers, and/or other components described herein.
Exemplary network, system, and connection types include the internet, WiMax, local area networks (LANs) (e.g., IEEE 802.11a and 802.11g wi-fi networks), digital audio broadcasting systems (e.g., HD Radio, T-DMB and ISDB-TSB), terrestrial digital television systems (e.g., DVB-T, DVB-H, T-DMB and ISDB-T), WiMax wireless metropolitan area networks (MANs) (e.g., IEEE 802.16 networks), Mobile Broadband Wireless Access (MBWA) networks (e.g., IEEE 802.20 networks), Ultra Mobile Broadband (UMB) systems, Flash-OFDM cellular systems, and Ultra wideband (UWB) systems. Furthermore, the present disclosure may be used with communications systems such as Global System for Mobile communications (GSM) and/or code division multiple access (CDMA) communications systems. Connections to such networks may be wireless or may use a line (e.g., digital subscriber lines (DSL), cable lines, and fiber optic lines).
Communication among the control device 102, client devices 104, 106, 108, servers, and/or other components described herein may be accomplished using predefined and publicly available (i.e., non-proprietary) communication standards or protocols (e.g., those defined by the Internet Engineering Task Force (IETF) or the International Telecommunications Union-Telecommunications Standard Sector (ITU-T)), and/or proprietary protocols. For example, signaling communications (e.g., session setup, management, and teardown) may use a protocol such as the Session Initiation Protocol (SIP), while data traffic may be communicated using a protocol such as the Real-time Transport Protocol (RTP), File Transfer Protocol (FTP), and/or Hyper-Text Transfer Protocol (HTTP). A sharing session and other communications as described herein may be connection-based (e.g., using a protocol such as the transmission control protocol/internet protocol (TCP/IP)) or connection-less (e.g., using a protocol such as the user datagram protocol (UDP)). It is understood that various types of communications may occur simultaneously, including, but not limited to, voice calls, instant messages, audio and video, emails, document sharing, and any other type of resource transfer, where a resource represents any digital data.
While the preceding description shows and describes one or more embodiments, it will be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the present disclosure. For example, various steps illustrated within a particular sequence diagram or flow chart may be combined or further divided. In addition, steps described in one diagram or flow chart may be incorporated into another diagram or flow chart. Furthermore, the described functionality may be provided by hardware and/or software, and may be distributed or combined into a single platform. Additionally, functionality described in a particular example may be achieved in a manner different than that illustrated, but is still encompassed within the present disclosure. Therefore, the claims should be interpreted in a broad manner, consistent with the present disclosure.
This application is a continuation of U.S. application Ser. No. 17/474,467, filed Sep. 14, 2021, entitled SYSTEM AND METHOD FOR ESTABLISHING AND MANAGING MULTIPLE INDEPENDENT CALL SESSIONS FROM A CENTRALIZED CONTROL INTERFACE, which claims the benefit of U.S. Provisional Application Ser. No. 63/077,892, filed on Sep. 14, 2020, and entitled SYSTEM AND METHOD FOR ESTABLISHING AND MANAGING MULTIPLE INDEPENDENT CALL SESSIONS FROM A CENTRALIZED CONTROL INTERFACE. U.S. application Ser. No. 17/474,467 also claims the benefit of U.S. Provisional Application Ser. No. 63/176,419, filed on Apr. 19, 2021, entitled SYSTEM AND METHOD FOR HIGHLY SCALABLE BROWSER-BASED AUDIO/VIDEO CONFERENCING, which are incorporated by reference herein in its entirety. This application claims the benefit of U.S. Provisional Application Ser. No. 63/176,419, filed on Apr. 19, 2021, and entitled SYSTEM AND METHOD FOR HIGHLY SCALABLE BROWSER-BASED AUDIO/VIDEO CONFERENCING, which is incorporated by reference herein in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
5442637 | Nguyen | Aug 1995 | A |
5761309 | Ohashi et al. | Jun 1998 | A |
5790637 | Johnson et al. | Aug 1998 | A |
5818447 | Wolf et al. | Oct 1998 | A |
5889762 | Pajuvirta et al. | Mar 1999 | A |
6031818 | Lo et al. | Feb 2000 | A |
6128283 | Sabaa et al. | Oct 2000 | A |
6141687 | Blair | Oct 2000 | A |
6161082 | Goldberg et al. | Dec 2000 | A |
6195694 | Chen et al. | Feb 2001 | B1 |
6202084 | Kumar et al. | Mar 2001 | B1 |
6219638 | Padmanabhan et al. | Apr 2001 | B1 |
6298129 | Culver et al. | Oct 2001 | B1 |
6311150 | Ramaswamy et al. | Oct 2001 | B1 |
6343067 | Drottar et al. | Jan 2002 | B1 |
6360196 | Poznanski et al. | Mar 2002 | B1 |
6389016 | Sabaa et al. | May 2002 | B1 |
6438376 | Elliott et al. | Aug 2002 | B1 |
6473425 | Bellaton et al. | Oct 2002 | B1 |
6574668 | Gubbi et al. | Jun 2003 | B1 |
6606112 | Falco | Aug 2003 | B1 |
6741691 | Ritter et al. | May 2004 | B1 |
6754181 | Elliott et al. | Jun 2004 | B1 |
6766373 | Beadle et al. | Jul 2004 | B1 |
6826613 | Wang et al. | Nov 2004 | B1 |
6836765 | Sussman | Dec 2004 | B1 |
6842460 | Olkkonen et al. | Jan 2005 | B1 |
6850769 | Grob et al. | Feb 2005 | B2 |
6898413 | Yip et al. | May 2005 | B2 |
6912278 | Hamilton | Jun 2005 | B1 |
6940826 | Simard et al. | Sep 2005 | B1 |
6963555 | Brenner et al. | Nov 2005 | B1 |
6975718 | Pearce et al. | Dec 2005 | B1 |
6987756 | Ravindranath et al. | Jan 2006 | B1 |
6999575 | Sheinbein | Feb 2006 | B1 |
6999932 | Zhou | Feb 2006 | B1 |
7006508 | Bondy et al. | Feb 2006 | B2 |
7010109 | Gritzer et al. | Mar 2006 | B2 |
7013155 | Ruf et al. | Mar 2006 | B1 |
7079529 | Khuc | Jul 2006 | B1 |
7080158 | Squire | Jul 2006 | B1 |
7092385 | Gallant et al. | Aug 2006 | B2 |
7117526 | Short | Oct 2006 | B1 |
7123710 | Ravishankar | Oct 2006 | B2 |
7184415 | Chaney et al. | Feb 2007 | B2 |
7185114 | Hariharasubrahmanian | Feb 2007 | B1 |
7272377 | Cox et al. | Sep 2007 | B2 |
7302496 | Metzger | Nov 2007 | B1 |
7304985 | Sojka et al. | Dec 2007 | B2 |
7345999 | Su et al. | Mar 2008 | B2 |
7346044 | Chou et al. | Mar 2008 | B1 |
7353252 | Yang et al. | Apr 2008 | B1 |
7353255 | Acharya et al. | Apr 2008 | B2 |
7412374 | Seiler et al. | Aug 2008 | B1 |
7457279 | Scott et al. | Nov 2008 | B1 |
7477282 | Firestone et al. | Jan 2009 | B2 |
7487248 | Moran et al. | Feb 2009 | B2 |
7512652 | Appelman et al. | Mar 2009 | B1 |
7542472 | Gerendai et al. | Jun 2009 | B1 |
7564843 | Manjunatha et al. | Jul 2009 | B2 |
7570743 | Barclay et al. | Aug 2009 | B2 |
7574523 | Traversat et al. | Aug 2009 | B2 |
7590758 | Takeda et al. | Sep 2009 | B2 |
7613171 | Zehavi et al. | Nov 2009 | B2 |
7623476 | Ravikumar et al. | Nov 2009 | B2 |
7623516 | Chaturvedi et al. | Nov 2009 | B2 |
7656870 | Ravikumar et al. | Feb 2010 | B2 |
7664495 | Bonner et al. | Feb 2010 | B1 |
7769881 | Matsubara et al. | Aug 2010 | B2 |
7774495 | Pabla et al. | Aug 2010 | B2 |
7778187 | Chaturvedi et al. | Aug 2010 | B2 |
7782866 | Walsh et al. | Aug 2010 | B1 |
7917584 | Arthursson | Mar 2011 | B2 |
7995712 | VanEpps, Jr. | Aug 2011 | B2 |
8009586 | Chaturvedi et al. | Aug 2011 | B2 |
8065418 | Abuan et al. | Nov 2011 | B1 |
8200796 | Margulis | Jun 2012 | B1 |
8370432 | Digate | Feb 2013 | B2 |
8407314 | Chaturvedi et al. | Mar 2013 | B2 |
8407576 | Yin et al. | Mar 2013 | B1 |
8560642 | Pantos | Oct 2013 | B2 |
8583828 | Chen | Nov 2013 | B2 |
8611540 | Chaturvedi et al. | Dec 2013 | B2 |
8745132 | Obradovich | Jun 2014 | B2 |
8867734 | Calman | Oct 2014 | B2 |
9143489 | Chaturvedi et al. | Sep 2015 | B2 |
9237140 | Lerner | Jan 2016 | B1 |
9264548 | Brittain | Feb 2016 | B2 |
9292164 | Goldman | Mar 2016 | B2 |
9356997 | Chaturvedi et al. | May 2016 | B2 |
9459936 | Fallows | Oct 2016 | B2 |
9742846 | Chaturvedi et al. | Aug 2017 | B2 |
10027926 | Schirdewahn et al. | Jul 2018 | B1 |
10091258 | Carter | Oct 2018 | B2 |
10097638 | Chaturvedi et al. | Oct 2018 | B2 |
10582050 | Deole | Mar 2020 | B2 |
10587753 | Ravichandran | Mar 2020 | B1 |
10834256 | Nair | Nov 2020 | B1 |
10887549 | Wehrung | Jan 2021 | B1 |
10924709 | Faulkner | Feb 2021 | B1 |
11107490 | Slotznick | Aug 2021 | B1 |
11315158 | Lidster | Apr 2022 | B1 |
11380434 | Izadpanah | Jul 2022 | B2 |
11546391 | Ponnusamy | Jan 2023 | B2 |
20030164853 | Zhu | Sep 2003 | A1 |
20040141005 | Banatwala | Jul 2004 | A1 |
20050071678 | Lee et al. | Mar 2005 | A1 |
20050147212 | Benco | Jul 2005 | A1 |
20060064319 | Loevner | Mar 2006 | A1 |
20060188087 | Kortum | Aug 2006 | A1 |
20060195519 | Slater | Aug 2006 | A1 |
20060233163 | Celi | Oct 2006 | A1 |
20070003044 | Liang | Jan 2007 | A1 |
20080002022 | VanEpps | Jan 2008 | A1 |
20080037753 | Hofmann | Feb 2008 | A1 |
20090046838 | Andreasson | Feb 2009 | A1 |
20090282251 | Cook et al. | Nov 2009 | A1 |
20090319916 | Gudipaty | Dec 2009 | A1 |
20100064344 | Wang | Mar 2010 | A1 |
20100299529 | Fielder | Nov 2010 | A1 |
20110044211 | Long | Feb 2011 | A1 |
20110145687 | Grigsby et al. | Jun 2011 | A1 |
20110279640 | Choi | Nov 2011 | A1 |
20110289155 | Pirnazar | Nov 2011 | A1 |
20120064976 | Gault et al. | Mar 2012 | A1 |
20120315880 | Peitrow | Dec 2012 | A1 |
20130018950 | Narayanan | Jan 2013 | A1 |
20130132605 | Kocks | May 2013 | A1 |
20130179941 | McGloin | Jul 2013 | A1 |
20140040783 | Goldman | Feb 2014 | A1 |
20140044249 | Brittain | Feb 2014 | A1 |
20140096036 | Mohler | Apr 2014 | A1 |
20140340468 | Winterstein | Nov 2014 | A1 |
20150185965 | Belliveau | Jul 2015 | A1 |
20150195096 | Anka | Jul 2015 | A1 |
20150295777 | Cholkar | Oct 2015 | A1 |
20160057391 | Block | Feb 2016 | A1 |
20160234264 | Coffman | Aug 2016 | A1 |
20170013233 | Kuusela et al. | Jan 2017 | A1 |
20170171280 | Kim | Jun 2017 | A1 |
20170249394 | Loeb | Aug 2017 | A1 |
20180012192 | Rosenberg | Jan 2018 | A1 |
20180176508 | Pell | Jun 2018 | A1 |
20190273767 | Nelson | Sep 2019 | A1 |
20190306309 | Deole | Oct 2019 | A1 |
20200259952 | Deole | Aug 2020 | A1 |
20200274965 | Ravichandran | Aug 2020 | A1 |
20200301647 | Yoshida | Sep 2020 | A1 |
20200382618 | Faulkner | Dec 2020 | A1 |
20210099574 | Nair | Apr 2021 | A1 |
20220086197 | Lohita | Mar 2022 | A1 |
20230379370 | Lohita | Nov 2023 | A1 |
Number | Date | Country |
---|---|---|
1603339 | Dec 2005 | EP |
1638275 | Mar 2006 | EP |
1848163 | Oct 2007 | EP |
1988698 | Nov 2008 | EP |
1404082 | Oct 2012 | EP |
1988697 | Feb 2018 | EP |
2005094600 | Apr 2005 | JP |
2005227592 | Aug 2005 | JP |
2007043598 | Feb 2007 | JP |
20050030548 | Mar 2005 | KR |
03079635 | Sep 2003 | WO |
2005009019 | Jan 2005 | WO |
2004063843 | Mar 2005 | WO |
2006064047 | Jun 2006 | WO |
2006075677 | Jul 2006 | WO |
2008099420 | Dec 2008 | WO |
Entry |
---|
Balamurugan Karpagavinayagam et al. (Monitoring Architecture for Lawful Interception in VoIP Networks, ICIMP 2007, Aug. 24, 2008). |
Blanchet et al.; “IPv6 Tunnel Broker with the Tunnel Setup Protocol (TSP)”; May 6, 2008; IETF; IETF draft of RFC 5572, draftblanchet-v6ops-tunnelbroker-tsp-04; pp. 1-33. |
Chathapuram, “Security in Peer-To-Peer Networks”, Aug. 8. 2001, XP002251813. |
Cooper et al.; “NAT Traversal for dSIP”; Feb. 25, 2007; IETF; IETF draft draft-matthews-p2psip-dsip-nat-traversal-00; pp. 1-23. |
Cooper et al.; “The Effect of NATs on P2PSIP Overlay Architecture”; IETF; IETF draft draft-matthews-p2psip-nats-and-overlays-01.txt; pp. 1-20. |
Dunigan, Tom, “Almost TCP over UDP (atou),” last modified Jan. 12, 2004; retrieved on Jan. 18, 2011 from 18 pgs. |
Hao Wang, Skype VolP service-architecture and comparison, In: INFOTECH Seminar Advanced Communication Services (ASC), 2005, pp. 4, 7, 8. |
Isaacs, Ellen et al., “Hubbub: A sound-enhanced mobile instant messenger that supports awareness and opportunistic interactions,” Proceedings of the SIGCHI Conference on Human Factors in Computing Systems; vol. 4, Issue No. 1; Minneapolis, Minnesota; Apr. 20-25, 2002; pp. 179-186. |
J. Rosenberg et al., SIP: Session Initiation Protocol (Jun. 2008) retrieved at http://tools.ietf.org/html/rfc3261. Relevant pages provided. |
J. Rosenberg et al. “ Session Traversal Utilities for Nat (STUN)”, draft-ietf-behave-rfc3489bis-06, Mar. 5, 2007. |
Jeff Tyson, “How Instant Messaging Works”, www.verizon.com/learningcenter, Mar. 9, 2005. |
Mahy et al., The Session Initiation Protocol (SIP) “Replaces” Header, Sep. 2004, RFC 3891, pp. 1-16. |
NiceLog User's Manual 385A0114-08 Rev. A2, Mar. 2004. |
Pejman Khadivi, Terence D. Todd and Dongmei Zhao, “Handoff trigger nodes for hybrid IEEE 802.11 WLAN/cellular networks,” Proc. of IEEE International Conference on Quality of Service in Heterogeneous Wired/Wireless Networks, pp. 164-170, Oct. 18, 2004. |
Philippe Bazot et al., Developing SIP and IP Multimedia Subsystem (IMS) Applications (Feb. 5, 2007) retrieved at redbooks IBM form No. SG24-7255-00. Relevant pages provided. |
Qian Zhang; Chuanxiong Guo; Zihua Guo; Wenwu Zhu, “Efficient mobility management for vertical handoff between WWAN and WLAN,” Communications Magazine, IEEE, vol. 41. issue 11, Nov. 2003, pp. 102-108. |
RFC 5694 (“Peer-to-Peer (P2P) Architecture: Definition, Taxonomies, Examples, and Applicability”, Nov. 2009). |
Rory Bland, et al., “P2P Routing” Mar. 2002. |
Rosenberg, “STUN—Simple Traversal of UDP Through NAT”, Sep. 2002, XP015005058. |
Rosenberg, J; “Interactive Connectivity Establishment (ICE): A Protocol for Network Address Translator (NAT) Traversal for Offer/Answer Protocols”; Oct. 29, 2007; I ETF; I ETF draft of RFC 5245, draft-ietf-mmusic-ice-19; pp. 1-120. |
Salman A. Baset, et al., “An Analysis of the Skype Peer-to-Peer Internet Telephony Protocol”, Department of Computer Science, Columbia University, New York, NY, USA, Sep. 15, 2004. |
Seta, N.; Miyajima, H.; Zhang, L;; Fujii, T., “All-SIP Mobility: Session Continuity on Handover in Heterogeneous Access Environment,” Vehicular Technology Conference, 2007. VTC 2007-Spring. IEEE 65th, Apr. 22-25, 2007, pp. 1121-1126. |
Singh et al., “Peer-to Peer Internet Telephony Using SIP”, Department of Computer Science, Columbia University, Oct. 31, 2004, XP-002336408. |
Sinha, S. and Oglieski, A., a TCP Tutorial, Nov. 1998 (Date posted on Internet: Apr. 19, 2001) [Retrieved from the Internet ]. |
Srisuresh et al.; “State of Peer-to-Peer(P2P) Communication Across Network Address Translators(NATs)”; Nov. 19, 2007; I ETF; I ETF draft for RFC 5128, draft-ietf-behave-p2p-state-06.txt; pp. 1-33. |
T. Dierks & E. Rescorla, The Transport Layer Security (TLS) Protocol (Ver. 1.2, Aug. 2008) retrieved at http://tools.ietf.org/htmllrfc5246. Relevant pages provided. |
Wireless Application Protocol—Wireless Transport Layer Security Specification, Version Feb. 18, 2000, Wireless Application Forum, Ltd. 2000; 99 pages. |
WISPA: Wireless Internet Service Providers Association; WISPA-CS-IPNA-2.0; May 1, 2009. |
XiaHou Jlaxi, et al.: Live Broadcast Stream Push Method, Device and Electronic Device; Document Id: KR-20220139393-A; Mar. 26, 2021; 40 pages. |
Number | Date | Country | |
---|---|---|---|
20230379370 A1 | Nov 2023 | US |
Number | Date | Country | |
---|---|---|---|
63176419 | Apr 2021 | US | |
63077892 | Sep 2020 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 17474467 | Sep 2021 | US |
Child | 18352412 | US |