Patent Description:
With the increasing number of video conferences and other virtual events taking place worldwide, along with the growing amount of deep fake videos and meeting ID data theft, a heightened security and quality of management is required for these videoconferences. For example, it is not uncommon that videoconferencing meeting links are leaked by one or more participants, which may allow intruders to hijack the meetings and disrupt the experience for the meeting participants.

Furthermore, given the current state of development of wearable immersive technologies such as extended reality (e.g., augmented and/or virtual reality) and the relatively low technological appropriation rate, it is understandable that most videoconferencing solutions provide a flat, 2D user interface where most interactions take place. However, the low levels of realism, user presence, and shared space and the limited number and quality of interactions one can perform when comparing the real-life experience to these solutions contribute to a feeling of loneliness or boredom for many users, in turn resulting sometimes in a lower productivity than when performing the same activities in person.

Therefore, it is desired to have secure videoconferencing measures and life-like mechanics that may increase the security and realism of the user experience.

<CIT> describes a system that matches a unique name to contact details. <CIT> describes a name generator server, a name database, a call name server, and a destination device, which are connected through a network. The user of the device picks a custom name via a web portal on the name generator server. The call name server checks if this name is already in the database. If the name is unique, the server asks for the device number. Finally, a confirmation message shows the successful pairing and provides a call link. Unlike the instant disclosure, <CIT> fails to describe inter alia enabling deep link security by fragmenting the deep link into data fragments, distributing the data fragments of the deep link to at least two different storage locations, or a deep link assembling process that assembles the deep link from the data fragments.

In one aspect, a method enabling deep link security implemented by at least one server computer comprising at least one processor and memory, the method comprising: receiving a deep link generation request; generating a deep link corresponding to a videoconferencing meeting slot of a videoconferencing session, wherein the deep link is configured to, upon activation, direct a participant to a location of the videoconferencing meeting slot within a videoconferencing space; fragmenting the deep link into data fragments, wherein a first data fragment comprises a majority of the data of the deep link and wherein a second data fragment comprises a minority of the data of the deep link; distributing the data fragments of the deep link to at least two different storage locations, wherein the first data fragment is stored in at least a first storage device and wherein the second data fragment is stored in at least a second storage device; generating an assembling link configured to, upon activation, initiate a deep link assembling process that assembles the deep link from the data fragments; and sending the assembling link to an inviter client device.

In another aspect of the current disclosure, a system enabling deep link security comprising: at least one server computer comprising at least one processor and memory comprising instructions configured to cause the at least one server computer to: receive a deep link generation request; generate a deep link corresponding to a videoconferencing meeting slot of a videoconferencing session, wherein the deep link is configured to upon activation, direct a participant to a location of the videoconferencing meeting slot within a videoconferencing space; fragment the deep link into data fragments, wherein a first data fragment comprises a majority of the data of the deep link and wherein a second data fragment comprises a minority of the data of the deep link; distribute the data fragments of the deep link to at least two different storage locations, wherein the first data fragment is stored in at least a first storage device and wherein the second data fragment is stored in at least a second storage device; generate an assembling link configured to, upon activation, initiate a deep link assembling process that assembles the deep link from the data fragments; and send the assembling link to an inviter client device.

In another aspect of the current disclosure, at least one non-transitory computer-readable medium having stored thereon instructions configured to cause at least one server computer comprising a processor and memory to perform steps comprising: receiving a deep link generation request from an administrator entity of a videoconferencing platform; generating a deep link corresponding to a videoconferencing meeting slot of a videoconferencing session of the videoconferencing platform, wherein the deep link is configured to, upon activation, direct a participant to a location of the videoconferencing meeting slot within a videoconferencing space; fragmenting the deep link into data fragments, wherein a first data fragment comprises a first portion of the data of the deep link and wherein a second data fragment comprises a second portion of the data of the deep link; distributing the data fragments of the deep link to at least two different storage locations, wherein the first data fragment is stored in a first storage device and wherein the second data fragment is stored in a second storage device; generating an assembling link configured to, upon activation, initiate a deep link assembling process that assembles the deep link from the data fragments; and sending the assembling link to a participant client device.

The above summary does not include an exhaustive list of all aspects of the present disclosure. It is contemplated that the disclosure includes all systems and methods that can be practiced from all suitable combinations of the various aspects summarized above, as well as those disclosed in the Detailed Description below, and particularly pointed out in the claims filed with the application. Such combinations have advantages not specifically recited in the above summary. Other features and advantages of the present invention will be apparent from the accompanying drawings and from the detailed description that follows below.

Specific features, aspects and advantages of the present disclosure will be better understood with regard to the following description and accompanying drawings, where:.

In the following description, reference is made to drawings which show by way of illustration various embodiments. Also, various embodiments will be described below by referring to several examples. It is to be understood that the embodiments may include changes in design and structure without departing from the scope of the claimed subject matter.

The current disclosure solves at least some of the drawbacks disclosed in the background by a system, method, and computer-readable medium for generating specific secure deep links, a system, method, and computer-readable medium for generating spatial deep links for virtual space, and a system, method, and computer-readable medium enabling distributed deep link security.

<FIG> shows a system <NUM> for generating secure deep links, according to an embodiment.

System <NUM> comprises at least one server computer <NUM> of a server computer system comprising at least one processor <NUM> and memory <NUM> comprising instructions executed by said at least one processor <NUM>. The memory <NUM> further stores a deep link generator <NUM> and a videoconferencing platform <NUM> comprising at least one videoconferencing space <NUM>. The deep link generator <NUM> is configured to receive a deep link generation request and receive a videoconferencing meeting slot list, wherein each videoconferencing meeting slot <NUM> comprises at least a location within the videoconferencing space <NUM>. The deep link generation request may be sent by an administrator of the videoconferencing platform <NUM> through, for example, an administrator client device <NUM>, or may be automatically created by the videoconferencing platform <NUM> as people confirm interest in joining a corresponding videoconferencing session.

The deep link generator <NUM> is further configured to generate a deep link that corresponds to (e.g., is unique for) each videoconferencing meeting slot <NUM>, each deep link including information that represents the location of the videoconferencing meeting slot <NUM> within the videoconferencing space <NUM>.

In some embodiments of the current disclosure, a deep link comprises a Uniform Resource Locator (URL) that links to a specific part of a videoconferencing space of the videoconferencing platform, such as a videoconferencing meeting slot. The URL may be presented on a computing device in the form of a hyperlink. The URL includes all the information required to point to a particular location of the videoconferencing space. When a videoconferencing session participant clicks on, taps, or otherwise activates a deep link generated by the deep link generator, the participant's client device generates and sends a message (e.g., an HTTP request or a message that uses a different protocol) to a server computer that includes the URL. In this way, the deep link takes the participant to a desired location within the videoconferencing space, such as to a specific meeting slot or a to a specific communication instance.

In some embodiments, the videoconferencing meeting slot <NUM> to which a participant will be assigned is initially determined by an administrator. In an illustrative scenario, an administrator makes this determination via a graphical user interface, manually clicking on or otherwise selecting a specific place of a layout of a virtual meeting space (e.g., seating positions around a virtual conference table), and place each participant accordingly. Once the locations are selected, and the deep link generator <NUM> generates respective deep links which direct participants to the corresponding meeting slot, where each deep link is unique to a meeting slot. Altematively, the videoconferencing meeting slot <NUM> to which a participant will be assigned is determined automatically (e.g., in a pseudo-random manner) by the system <NUM> when each user registers, so that when a user clicks on the deep link the user is placed in a position determined automatically by the system <NUM>.

In some embodiments, a communication instance of a videoconferencing session comprises an instance of the videoconferencing space (e.g., of a 2D or 3D virtual environment representing such a video conferencing space) plus one or more corresponding communication channels that enable communications within the videoconferencing space. A public communication instance may be an instance of the videoconferencing space enabling a plurality of users to view each other and to communicate to each other simultaneously. A private communication instance may be an instance of the videoconferencing space enabling communication only to reduced or predetermined number of users upon invitation.

In some embodiments, a user graphical representation graphically represents a user or meeting participant and comprises, e.g., a user 3D virtual cutout constructed from a user-uploaded or third-party-source photo with a removed background, or a user real-time 3D virtual cutout with a removed background generated based on the real-time 2D, stereo, depths or 3D live video stream data feed obtained from the camera, thus comprising the real-time video stream of the user, or a video without removed background, or a video with removed background and displayed utilizing a polygonal structure. Such polygonal structures can be a quad structure or more complex 3D structures used as a virtual frame to support the video. Such user graphical representations may be inserted into three dimensional coordinates within a virtual environment of a 3D videoconferencing space and are therein graphically combined. In the current disclosure, the term "user 3D virtual cutout" refers to a virtual replica of a user constructed from a user-uploaded or third-party-source 2D photo. The user 3D virtual cutout is created via a 3D virtual reconstruction process through machine vision techniques using the user-uploaded or third-party-source 2D photo as input data, generating a 3D mesh or 3D point cloud of the user with removed background. In some embodiments, the data used as input data comprised in the live data feed and/or user-uploaded or third-party-source 2D photo comprises 2D or 3D image data, 3D geometries, video data, media data, audio data, textual data, haptic data, time data, 3D entities, 3D dynamic objects, textual data, time data, metadata, priority data, security data, positional data, lighting data, depth data, and infrared data, amongst others.

In the current disclosure, the term "user real-time 3D virtual cutout" refers to a virtual replica of a user based on the real-time 2D or 3D live video stream data feed obtained from the camera and after having the user background removed. The user real-time 3D virtual cutout is created via a 3D virtual reconstruction process through machine vision techniques using the user live data feed as input data by generating a 3D mesh or 3D point cloud of the user with removed background.

In the current disclosure, the term "video with removed background" refers to a video streamed to a client device, wherein a background removal process has been performed on the video so that only the user may be visible and then displayed utilizing a polygonal structure on the receiving client device.

In the current disclosure, the term "video without removed background" refers to a video streamed to a client device, wherein the video is faithfully representing the camera capture, so that the user and his or her background are visible and then displayed utilizing a polygonal structure on the receiving client device.

The deep link generator <NUM> is further configured to send deep links to each participant client device <NUM>-<NUM>. A participant client device <NUM>-<NUM> may click on or otherwise activate the received link to confirm participation on a corresponding videoconferencing session, which is then sent to the deep link generator <NUM>. The deep link generator <NUM> receives the authorization to participate in the session from, e.g., the user click, and accordingly initiates the video conferencing session by instructing the videoconferencing platform <NUM>. The deep link generator <NUM>, in communication with the videoconferencing platform <NUM>, then assigns the participant to the corresponding videoconferencing meeting slot <NUM>.

The deep link generator <NUM> is a computer-generated deep link creator program stored in memory <NUM> that is configured for generating deep links encoding a plurality of data. For example, the deep link may encode a specific videoconferencing meeting slot from a videoconferencing meeting slot list, so that when the participant clicks on the deep link, the deep link takes the participant to the allocated video conferencing meeting slot <NUM>.

The term "videoconferencing space" refers to a virtual space where a videoconferencing session takes place. The videoconferencing space may be a 2D or a 3D videoconferencing space. In an embodiment where the videoconferencing space is a 2D videoconferencing environment, each videoconferencing meeting slot represents a tile thereof. The meeting slot tiles may be tiles in a matrix, where each tile represents a participant assigned to a specific area within the videoconferencing space and comprises a live-recording or picture of the participant.

In an embodiment where the videoconferencing space is a 3D virtual environment, each videoconferencing meeting slot represents a precise position including 3D coordinates within that 3D virtual environment. The 3D virtual environment is a computer-managed virtual environment supporting real-time communications between participants. As a 3D videoconferencing environment, the virtual environment may comprise other graphical elements not necessarily required for enabling communications, but which may enhance the user experience within the virtual environment. For example, the 3D videoconferencing environment may include a plurality of virtual, graphical elements representing walls, structures and objects within the virtual environment. In some situations, the 3D videoconferencing environment simulates a physical, real-world space. The 3D virtual environment may follow rules related to gravity, topography, physics and kinematics, which may or may not be based on real-world elements, and which may be implemented by suitable computer-implemented mathematical models. In some embodiments, suitable models comprise one or more of a 3D model, dynamic model, geometric model, or a machine learning model, or a combination thereof.

In an embodiment, the deep link generator <NUM> is configured to encode in a deep link an expiration factor, wherein the expiration factor is session-based, time-based, or click-based (activation-based), or a combination thereof. A session-based expiration factor enables the deep link to be used only for a specific session, deleting or deactivating the deep link after the session is over. A time-based deep link enables a participant using such link to access the videoconferencing session within a predetermined time, after which the deep link may expire. A click-based or activation-based deep link enables using the deep link only a predetermined number of times (e.g., one time, two times, or some other number of times) before deleting or deactivating the deep link. Combinations thereof may also be possible.

Elements of <FIG>, including the at least one server computer <NUM> and the various client devices <NUM>-<NUM>, may connect through a network <NUM>, such as a wireless network. In some embodiments, the network <NUM> may include millimeter-wave (mmW) or combinations of mmW and sub <NUM> communication systems, such as 5th generation wireless systems communication (<NUM>). In other embodiments, the system may connect through wireless local area networking (Wi-Fi). In other embodiments, the system may communicatively connect through 4th generation wireless systems communication (<NUM>), may be supported by <NUM> communication systems, or may include other wired or wireless communication systems.

<FIG> shows a videoconferencing platform <NUM> comprising attributes <NUM> and a videoconferencing space <NUM>, according to an embodiment.

The videoconferencing space <NUM> comprises a plurality of meeting slots <NUM>, e.g., meeting slots A and B, each comprising one or more entitlements <NUM>. The entitlements <NUM> refer to permissions that participants <NUM> may have when occupying a specific meeting slot <NUM> that enable a plurality of options within the videoconferencing session.

In some embodiments, the entitlements <NUM> are provided to the participant of the corresponding videoconferencing meeting slot <NUM>. In one embodiment, the entitlements <NUM> are provided to the participant <NUM> before positioning the participant <NUM> in the corresponding meeting slot <NUM>. In another embodiment, the entitlements <NUM> are provided to the participant <NUM> at the moment that the participant is positioned on the meeting slot <NUM>, or afterwards. In certain embodiments, the videoconferencing platform <NUM> sends the participant terms and conditions that need to be reviewed and approved by the participants for use of the specific entitlements in order to receive said entitlements, before providing the entitlements <NUM> to the participant <NUM>.

Providing the entitlements to each of the meeting slots <NUM> and providing a deep link that directs a participant directly to the corresponding meeting slot <NUM> comprising the entitlements <NUM>, enables increased session security. In situations where the deep link is unique to the meeting slot <NUM> and is renewed after each session, this decreases the chances of the link being "leaked" or otherwise obtained by an unauthorized user. In a hypothetical case of a deep link being leaked, the deep link may be valid only for a specific meeting slot <NUM>, so only one participant may enter the videoconferencing session in one particular meeting slot <NUM>, simplifying the process of tracking such a leak. This contrasts with most traditional methods, where a single link is generated for the videoconferencing session, increasing the probabilities of the session link being leaked because of the link being the same for multiple participants. Furthermore, providing a deep link corresponding to each meeting slot <NUM> increases the quality of the user experience by increasing transparency of the positioning within the videoconferencing space <NUM>, as any potential social friction about any of the participants having a wrong meeting slot would be reduced if not eliminated. In some embodiments, a deep link generator <NUM> connects to the videoconferencing platform <NUM> and is configured to receive a participant list, wherein each participant has one or more associated attributes <NUM>. Each attribute <NUM> may represent a specific property, or characteristic, of the participant, such as characteristics related to the user profile, including user identification data, spending ranking, buying preferences, role during the session (e.g., speaker, host, listener, minutes taker, etc.), and the like. The participant list may be input, for example, by an administrator of the videoconferencing platform through, for example, an administrator client device, or may be automatically created by the videoconferencing platform <NUM> as people confirm interest in joining a corresponding videoconferencing session.

In yet further embodiments, each entitlement <NUM> is further adjusted based on the at least one attribute <NUM> linked to the corresponding participant <NUM>. For example, if the entitlements <NUM> that are assigned to a specific meeting slot comprise muting one participant at a time, and the participant in question comprises an attribute <NUM> of being a main presenter, then the entitlement <NUM> of the meeting slot may be adjusted to include enabling muting all participants at the same time.

The deep link generator <NUM> may be further configured to create a meeting slot protocol by allocating a videoconferencing meeting slot <NUM> to each participant based on the one or more attributes <NUM>. In an embodiment, a meeting slot protocol includes the list of participants and the order of seating in the videoconferencing space <NUM> along with the corresponding attributes <NUM> of each meeting slot <NUM>. The deep link generator <NUM> (which may specify the meeting slot protocol in the corresponding deep link) creates a deep link that corresponds to each meeting slot <NUM> based on said meeting slot protocol. For example, a VIP participant (e.g., a speaker, a president, or anyone with a special status for a specific videoconferencing session) may be a assigned a priority meeting slot <NUM>, e.g., meeting slot A, that enables more entitlements than other meeting slots <NUM>, e.g., meeting slots B and C, wherein meeting slot A enables administrator entitlements such as muting other participants' microphones or enables having a higher resolution image or bigger meeting slot tile than the other participants. The deep link generator <NUM> may be further configured to send deep links to each participant client device <NUM>-<NUM>; receive a notification of a click on the deep link or other activation of the deep link from a participant confirming participation on a corresponding videoconferencing session; trigger the videoconferencing session; and assign the participant to the corresponding videoconferencing meeting slot based on the meeting slot protocol.

In one embodiment, the deep link generator <NUM> is further configured to: receive a participant list, wherein each participant comprises one or more associated attributes; select a participant based on the associated attributes; generate a link that has information from the selected participant encoded for authentication purposes; publish the link to the list of participants; receive, from a participant, a click on or other activation of the link; authenticate the participant; in a case where the identity of the participant is valid, generate and send a deep link to the participant; and in a case where the identity of the participant is not valid, deny entry to the invalidated participant to the videoconferencing session. In this embodiment, the participants from the participant list may be users of the videoconferencing platform, and the link that is generated by the deep link generator <NUM> may be a link that is designated for one specific participant based on the participant attributes but may nevertheless be visible to all other users. The deep link generator <NUM>, upon authenticating the user to which the link is destined, automatically generates a deep link that places the participant in the corresponding meeting slot. The authentication may take any suitable form, e.g., biometric scanning, including face scanning, fingerprint scanning, voice recognition, and the like; password; PIN; or combinations thereof.

In some embodiments, each participant is placed in a virtual waiting room. The virtual waiting room is a virtual space where participants may be placed while the administrator of the videoconferencing session allows the participants into the session, such as after verifying their identities. Waiting rooms may increase videoconferencing security by preventing intruders to join a videoconferencing session and potentially hijack the meeting or disrupt the experience. In some embodiments, the waiting room may be a virtual environment where waiting participants may interact before joining the actual session for which they may have registered. For example, in the case of a 3D videoconferencing space, the waiting room may be a 3D room with virtual chairs, where each user may be assigned to a corresponding chair. In the case of a 2D videoconferencing space, the virtual environment may comprise a plurality of tiles, each tile assigned to a corresponding participant that is placed in the waiting room. In some embodiments, the location of the participant within the waiting room is selected based on the entitlement that is adjusted according to at least one attribute linked to the corresponding participant.

<FIG> depicts a schematic representation of a sample hybrid system architecture <NUM> that may be employed in a system for generating secure deep links, according to an embodiment.

The hybrid system architecture <NUM> is, in some embodiments, a hybrid model of communication for interacting with other peer clients (e.g., other attendees), comprising a client-server side <NUM> and a P2P side <NUM>, each delimited in <FIG> by a dotted area. Using such a hybrid model of communication may enable rapid P2P communications between users reducing latency problems while providing web services, data and resources to each session, enabling a plurality of interactions between users and with content in the videoconferencing space.

In various embodiments, the level and ratio of usage of the client-server side <NUM> with respect to the P2P side <NUM> depend on the amount of data to be processed, the latency permitted to sustain a smooth user experience, the desired quality of service (QOS), the services required, and the like. In one embodiment, the P2P side <NUM> is used for video and data processing, streaming and rendering. This mode of employing the hybrid system architecture <NUM> may be suitable, for example, when a low latency and low amounts of data need to be processed, and when in the presence of "heavy" clients, meaning that client devices <NUM> comprise sufficient computing power to perform such operations. In another embodiment, a combination of the client-server side <NUM> and P2P side <NUM> is employed, such as the P2P side <NUM> being used for video streaming and rendering while the client-server side <NUM> is used for data processing. This mode of employing the hybrid system architecture <NUM> may be suitable, for example, when there is a high amount of data to be processed or when other micro-services may be required. In yet further embodiments, the client-server side <NUM> may be used for video streaming along with data processing while the P2P side <NUM> is used for video rendering. This mode of employing the hybrid system architecture <NUM> may be suitable, for example, when there is an even higher amount of data to be processed and/or when only a thin client is available. In yet further embodiments, the client-server side <NUM> may be used for video streaming, rendering and data processing. This mode of employing the hybrid system architecture <NUM> may be suitable when a very thin client is available. The hybrid system architecture <NUM> may be configured for enabling alternating between the different modalities of usage of both the client-server side <NUM> and the P2P side <NUM> within the same session, as required.

In some embodiments, the at least one cloud server from the client-server side <NUM> may be an intermediary server, meaning that the server is used to facilitate and or optimize the exchange of data between client devices <NUM>. In such embodiments, the at least one cloud server may manage, analyze, process and optimize incoming image and multimedia streams and manage, assess, optimize the forwarding of the outbound streams as a router topology (for example but not limited to SFU (Selective Forwarding Units), SAMS (Spatially Analyzed Media Server), multimedia routers, and the like), or may use an image and media processing server topology (for example but not limited for decoding, combining, improving, mixing, enhancing, augmenting, computing, manipulating, encoding) or a forwarding server topology (for example but not limited to MCU, cloud media mixers, cloud 3D renderer, media server), or other server topologies.

In such embodiments, where the intermediary server is a SAMS, such media server manages, analyze and processes incoming data of each sending client device <NUM> (including but not limited to meta-data, priority data, data classes, spatial structure data, three dimensional positional, orientation or locomotion information, image, media, scalable video codec based video), and in such analysis optimizes the forwarding of the outbound data streams to each receiving client device <NUM> by modifying, upscaling or downscaling the media for temporal (e.g., varying frame rate), spatial (e.g., different image size), quality (e.g., different compression or encoding based qualities) and color (e.g., color resolution and range) based on the specific receiving client device user's spatial, three dimensional orientation, distance and priority relationship to such incoming data achieving optimal bandwidths and computing resource utilizations for receiving one or more user client devices <NUM>.

In some embodiments, the media, video and data processing comprise one or more further encoding, transcoding, decoding spatial or 3D analysis and improvements comprising image filtering, computer vision processing, image sharpening, background improvements, background removal, foreground blurring, eye covering, pixilation of faces, voice-distortion, image uprezzing, image cleansing, bone structure analysis, face or head counting, object recognition, marker or QR, code-tracking, eye tracking, feature analysis, 3D mesh or volume generation, feature tracking, facial recognition, SLAM tracking and facial expression recognition or other modular plugins in form of micro-services running on such media router or servers.

The client-server side <NUM> employs secure communication protocols <NUM> to enable a secure end-to-end communication between the client device <NUM> and web/application servers <NUM> over a network. Sample suitable secure communication protocols <NUM> may comprise, for example, Datagram Transport Layer Security (DTLS) which is a secure user datagram protocol (UDP) in itself, Secure Realtime Transport Protocol (SRTP), Hypertext Transfer Protocol Secure (https://) and WebSocket Secure (wss://), which are compatible with each other and may provide full duplex authenticated application access, protection of privacy and integrity of exchanged data in transit. Suitable web/application servers <NUM> may comprise, for example, Jetty web application servers, which are Java HTTP web servers and Java Servlet containers, enabling machine to machine communications and a proper deployment of web application services. The web/application servers <NUM> may be accessed through the client devices <NUM> via a corresponding downloadable/web application <NUM> through a graphical user interface <NUM>.

Although the web/application servers <NUM> are depicted as a single element in <FIG>, those skilled in the art may appreciate that the web servers and application servers may be separate elements. For example, the web servers may be configured to receive client requests through the secure communication protocols <NUM> and route the requests to the application servers. The web/application servers <NUM> may thus receive the client requests using the secure communication protocols <NUM> and process the requests, which may comprise requesting one or more micro-services <NUM> (e.g., Java-based micro-services) and/or looking data up from a database <NUM> using a corresponding database management system <NUM>. The application/web servers <NUM> may provide session management and numerous other services such as 3D content and application logic as well as state persistence of sessions (e.g., for persistently storing shared documents, synchronizing interactions and changes in the virtual environment, or persisting the visual state and modifications of a virtual environment). A suitable database management system <NUM> may be, for example, an object-relational mapping (ORM) database management system, which may be appropriate for database management using open-source and commercial (e.g., proprietary) services given ORM's capability for converting data between incompatible type systems using object-oriented programming languages. In further embodiments, a distributed spatial data bus <NUM> may further be utilized as a distributed message and resource distribution platform between micro-services and client devices by using a publish-subscribe model.

The P2P side <NUM> may use a suitable P2P communication protocol <NUM> enabling real-time communication between peer client devices <NUM> in the virtual environment through suitable application programming interfaces (APIs), enabling real-time interactions and synchronizations thereof, allowing for a multi-user collaborative environment. For example, through the P2P side <NUM>, contributions of one or more users may be directly transmitted to other users, which may observe, in real-time, the changes performed. An example of a suitable P2P communication protocol <NUM> may be a Web Real-Time Communication (WebRTC) communication protocol, which is collection of standards, protocols, and JavaScript APIs, which, in combination, enable P2P audio, video, and data sharing between peer client devices <NUM>. Client devices <NUM> in the P2P side <NUM> may perform real-time 3D rendering of the live session employing one or more rendering engines <NUM>. An example of a suitable rendering engine <NUM> may be 3D engines based on WebGL, which is a JavaScript API for rendering 2D and 3D graphics within any compatible web browser without the use of plug-ins, allowing accelerated usage of physics and image processing and effects by one or more processors of the client device <NUM> (e.g., one or more graphic processing units (GPUs)). Furthermore, client devices <NUM> in the P2P side <NUM> may perform image and video-processing and machine-learning computer vision techniques through one or more suitable computer vision libraries <NUM>. In one embodiment, the image and video-processing performed by the client devices <NUM> in the P2P side <NUM> comprises the background removal process used in the creation of the user graphical representation previous to the insertion of the user graphical representation into a virtual environment, which may be performed either in real-time or almost real-time on received media streams or in non-real-time on, for example, a photo. An example of a suitable computer vision library <NUM> may be OpenCV, which is a library of programming functions configured mainly for real-time computer vision tasks.

<FIG> show 2D and 3D videoconferencing spaces, respectively, according to an embodiment.

With reference to <FIG>, a 2D videoconferencing space <NUM> comprises a plurality of tiles <NUM>, such as tiles A-F, wherein each tile <NUM> represents a place within the 2D videoconferencing space <NUM> that has been assigned to a particular user. Thus, a deep link of the current disclosure may, upon being clicked by a participant, bring the participant directly to the correspondingly assigned tile. Each tile <NUM> further is assigned a plurality of entitlements <NUM>, in such a way that a participant attending a videoconferencing session hosted in the 2D videoconferencing space <NUM> can make use of such entitlements. In some embodiments, some of the entitlements comprise providing a larger tile and/or higher resolution to a specific meeting slot and thus to the corresponding participant assigned to such a meeting slot. In the example embodiment of <FIG>, tile A is larger than tiles B-F, and therefore, a participant such as a VIP or a main speaker may be assigned to such a tile. Tile F is the second largest tile, and may be assigned to, for example, an assistant, co-speaker or co-host. The remaining tiles B-E may be assigned to listeners of the videoconferencing session not having special tile-size entitlements. As another example of an entitlement, participants may be allocated a tile in a location close to the speaker, which may be useful in situations where many (e.g., hundreds or thousands) of participants may be part of a videoconferencing session.

With reference to <FIG>, a 3D videoconferencing space <NUM> comprises a plurality of participant user graphical representations <NUM> sitting on a conferencing table <NUM>, each participant user graphical representations <NUM> sitting on a 3D seat <NUM> that represents a corresponding meeting slot. Thus, a deep link of the current disclosure may, upon being clicked by a participant, bring the participant directly to the correspondingly assigned seat. Each 3D seat <NUM> is further assigned a plurality of entitlements <NUM>, in such a way that a participant attending a videoconferencing session hosted in the 3D videoconferencing space <NUM> can make use of such entitlements <NUM>. As another example of an entitlement in a 3D video conferencing space <NUM>, participants may be allocated a 3D seat <NUM> in a location close to the speaker.

In an example application, a coworking space may have a plurality of 3D videoconferencing spaces <NUM>, each representing a meeting slot. A plurality of participants may request participation in the videoconferencing session to an administrator (e.g., by confirming an invitation or requesting access through the videoconferencing platform). The administrator may send a deep link generation request to the deep link generator, which creates a deep link comprising the meeting slot position assigned to each participant. The deep link generator sends a deep link to each participant, which, after validation from the participant by clicking on the deep link, initiates the videoconferencing session by instructing the videoconferencing platform accordingly. The deep link generator, in communication with the videoconferencing platform, then assigns the participant to the corresponding videoconferencing meeting slot within the coworking space based on the encoded meeting slot information. Participants within the coworking space may thus be "spawned" by inserting their corresponding graphical representations or avatars within the videoconferencing session in a specific 3D coordinate where the meeting slot may be located. The meeting slots may comprise one or more entitlements that may be provided to each participant. The deep link generator may be further configured to receive a participant list, wherein each participant comprises one or more attributes. Each entitlement may further be adjusted based on the at least one attribute linked to the corresponding participant. Participants may thus have special entitlements based on the meeting slot that has been assigned, alternatively, on a combination of the meeting slot entitlement and their own attributes. Similar examples may apply to applications on virtual events that may be hosted on a videoconferencing platform of the current disclosure, including but not being limited to political speeches, concerts, theater plays, comedy shows, conferences, learning (e.g., virtual schools), karaokes, and the like. Participants may be enabled to engage in a plurality of interactions with each other, as described in <FIG> below.

<FIG> shows examples of interactions <NUM> that users may engage on depending on their adjusted entitlements, according to an embodiment.

Such interactions <NUM> may include, for example, chatting <NUM>, screen sharing <NUM>, host options <NUM>, remote sensing <NUM>, recording <NUM>, voting <NUM>, document sharing <NUM>, emoticon sending <NUM>, agenda sharing and editing <NUM>, or other interactions <NUM>. The other interactions <NUM> may comprise, for example virtually hugging, hand-raising, hand-shaking, walking, content adding, meeting-summary preparation, object moving, projecting, laser-pointing, game-playing, purchasing and other social interactions facilitating exchange, competition, cooperation, resolution of conflict between users. The various interactions are described in more detail below. When the videoconferencing space is a 2D videoconferencing space, the entitlements may further comprise an increased resolution and/or tile size allocated to the particular meeting slot <NUM>, for example.

Chatting <NUM> may open up a chat window enabling sending and receiving textual comments and on-the-fly resources. Screen sharing <NUM> may enable to share in real-time the screen of a user to any other participants. Host options <NUM> are configured to provide further options to a conversation host, such as muting one or more users, inviting or removing one or more users, ending the conversation, and the like. Remote sensing <NUM> enables viewing the current status of a user, such as being away, busy, available, offline, in a conference call, or in a meeting. The user status may be updated manually through the graphical user interface or automatically through machine vision algorithms based on data obtained from the camera feed. Recording <NUM> enables recording audio and/or video from the conversation. Voting <NUM> enables to provide a vote for one or more proposals posted by any other participant. Through voting <NUM>, a voting session can be initiated at any time by the host or other participant with such a permission. The subject and choices may be displayed for each participant. Depending on the configuration of the voting interaction, at the end of a timeout period or at the end of everyone's response the results may be shown to all the attendees. Document sharing <NUM> enables to share documents in any suitable format with other participants. These documents may also be persisted permanently by storing them in persistent memory of the one or more cloud server computers and may be associated with the virtual environment where the virtual communication takes place. Emoticon <NUM> sending enables sending emoticons to other participants. Agenda sharing and editing <NUM> enables sharing and editing an agenda that may have been prepared by any of the participants. In some embodiments, a checklist of agenda items may be configured by the host ahead of the meeting. The agenda may be brought to the foreground at any time by the host or other participants with such a permission. Through the agenda-editing option, items can be checked off as a consensus is reached or may be put off.

The other interactions <NUM> provide a non-exhaustive list of possible interactions that may be provided in the virtual environment depending on the virtual environment vertical. Hand-raising enables raising the hand during a virtual communication or meeting so that the host or other participants with such an entitlement may enable the user to speak. Walking enables moving around the virtual environment through the user real-time 3D virtual cutout. Content adding enables users to add interactive applications or static or interactive 3D assets, animations or 2D textures to the virtual environment. Meeting-summary preparation enables an automatic preparation of outcomes of a virtual meeting and distributing such outcomes to participants at the end of the session. Object moving enables moving objects around within the virtual environment. Projecting enables projecting content to a screen or wall available in the virtual environment from an attendee's screen. Laser-pointing enables pointing a laser in order to highlight desired content on a presentation. Game-playing enables playing one or more games or other types of applications that may be shared during a live session. Purchasing enables making insession purchases of content. Other interactions not herein mentioned may also be configured depending on the specific use of the virtual environment platform.

<FIG> shows a method <NUM> for generating secure deep links. Method <NUM> may be implemented by at least one computer of a computer system comprising at least one processor and memory comprising instructions configured for performing the steps of method <NUM>. Method <NUM> begins in step <NUM> by receiving, by a deep link generator stored in memory, a deep link generation request. The deep link generation request may be sent by an administrator of the videoconferencing platform through, for example, an administrator client device, or may be automatically created by the videoconferencing platform as people confirm interest in joining a corresponding videoconferencing session. In step <NUM>, the method <NUM> continues by receiving a videoconferencing meeting slot list, wherein a videoconferencing meeting slot in the list comprises at least a location within a videoconferencing space of a videoconferencing platform. In step <NUM>, the method <NUM> ends by generating a deep link that corresponds to (e.g., is unique for) the videoconferencing meeting slot, the deep link includes information representing at least the location of the videoconferencing meeting slot within the videoconferencing space. The deep link is configured to, upon activation by a meeting participant, direct the meeting participant to the location within the videoconferencing space. The information representing the location may be, e.g., coordinates for a particular meeting slot, a numeric or alphanumeric code that can be used to look up coordinates for a particular meeting slot, or some other representative information.

In some embodiments, the method <NUM> further comprises receiving a participant list, wherein each participant in the participant list comprises one or more attributes linked to the corresponding participant. Each attribute may represent a specific property, or characteristic, of the participant, such as characteristics related to the user profile, including user identification data, spending ranking, buying preferences, role during the session (e.g., speaker, host, listener, minutes taker, etc.), and the like. The participant list may be input, for example, by an administrator of the videoconferencing platform through, for example, an administrator client device, or may be automatically created by the videoconferencing platform as people confirm interest in joining a corresponding videoconferencing session.

In some embodiments, the method <NUM> further comprises creating a meeting slot protocol by allocating a videoconferencing meeting slot to each participant based on the one or more attributes. The meeting slot protocol includes, in some embodimetns, the list of participants and the order of seating in the videoconferencing space along with the corresponding attributes of each meeting slot. The deep link generator may encode the meeting slot protocol in the corresponding deep link and create a deep link that corresponds to each meeting slot based on said meeting slot protocol.

In some embodiments, the method <NUM> further comprises sending deep links to each participant client device; receiving a notification of a click on or other activation of the deep link from a participant confirming participation on a corresponding videoconferencing session, confirming participation in said videoconferencing session; triggering the video conferencing session; and assigning the participant to the corresponding videoconferencing meeting slot based on the meeting slot protocol.

<FIG> shows a system <NUM> for generating spatial deep links for virtual spaces, according to an embodiment.

The system <NUM> comprises at least one server computer <NUM> of a server computer system comprising at least one processor <NUM> and memory <NUM> storing instructions executed by said at least one processor <NUM> to implement a deep link generator <NUM> configured to receive a deep link generation request that is triggered when a participant <NUM> of a videoconferencing session invites an invitee <NUM> to join the videoconferencing session. The deep link generator <NUM> is further configured to retrieve videoconferencing session context data <NUM> and a session communication instance <NUM> corresponding to the specific session to which the participant takes part; and to generate a deep link comprising an encoded representation of the videoconferencing session context data <NUM>. The instructions further implement a videoconferencing platform <NUM> connected to the deep link generator <NUM> comprising at least one videoconferencing space <NUM> hosting the videoconferencing session, wherein the at least one videoconferencing space <NUM> is a 3D virtual environment. The context data <NUM> and session communication instances <NUM> may be part of the videoconferencing platform <NUM> The 3D virtual environment may comprise characteristics as described with reference to <FIG>. The context data <NUM> videoconferencing platform <NUM>.

In one embodiment, the context data <NUM> comprises the 3D coordinates of a user graphical representation <NUM> of the participant <NUM> within the 3D virtual environment and the desired 3D coordinates of the invitee <NUM>. In yet further embodiments, the desired 3D coordinates of the invitee <NUM> are restricted to a predefined radius around the participant <NUM> inviting the invitee <NUM>. In yet further embodiments, the context data <NUM> comprises user attributes including user profile data including user identification data, spending ranking, and buying preferences.

In some embodiments, the videoconferencing platform <NUM> is configured to insert the user graphical representation <NUM> of corresponding participants <NUM>, generated from a live data feed captured by at least one camera <NUM>, into a 3D coordinate position of the videoconferencing space <NUM> and to combine the user graphical representation <NUM> therewith. The 3D virtual environment may comprise characteristics as described with reference to <FIG>. In yet further embodiments, the deep link generator <NUM> is configured to send the deep link to an invitee client device <NUM>; receive a message or other notification of a click on or other activation of the deep link by the invitee <NUM> via the invitee client device <NUM>, accepting the invitation to the videoconferencing session; and retrieve and position the user graphical representation <NUM> of the invitee <NUM> into the precise 3D coordinates within the 3D virtual environment, granting the invitee <NUM> access to the videoconferencing session.

For example, a participant <NUM> may invite an invitee <NUM> to participate in a videoconferencing session within a videoconferencing space <NUM>. The deep link generator <NUM> receives the deep link generation request and encodes videoconferencing session context data <NUM> and a session communication instance <NUM> corresponding to the specific session to which the participant <NUM> takes part, information which is then included in the deep link that is generated by the deep link generator <NUM>. The context data <NUM> comprises the 3D coordinates of the user graphical representation <NUM> of the participant <NUM> within the 3D virtual environment and the desired 3D coordinates of the invitee <NUM>. The participant <NUM> may be present within the videoconferencing space <NUM> through a user graphical representation <NUM> generated from live feed data captured by at least one camera <NUM> and which is inserted by the videoconferencing platform <NUM> into a 3D coordinate of the videoconferencing space <NUM> and combines the user graphical representation <NUM> therewith. In one example, the participant <NUM> invites the invitee <NUM> in such a manner that the deep link includes a 3D coordinate set that positions the invitee <NUM>, through a corresponding invitee user graphical representation <NUM>, in a position that is close to that of the participant user graphical representation <NUM>, because the desired 3D coordinates of the invitee <NUM> may be restricted to a predefined radius around the participant <NUM> inviting the invitee <NUM>. Thus, the participant <NUM> may originally visit an area of the 3D virtual environment of the videoconferencing space <NUM> and, upon finding an area of interest of the 3D virtual environment, may decide to invite a friend to come and join him or her to enjoy that area of interest, for which the participant <NUM> sends a deep link that brings the invitee <NUM> directly in the vicinity of the participant <NUM>, e.g., in front of the participant.

The participant <NUM> and invitee <NUM> may use client devices <NUM> comprising, for example, computers, headsets, mobile phones, glasses, transparent screens, tablets and generally input devices with cameras built-in or which may connect to cameras and receive data feed from said cameras. The client devices <NUM> may connect to each other and to the server <NUM> through a network <NUM>.

In an embodiment, the deep link generator <NUM> is configured to encode each deep link an expiration factor, wherein the expiration factor is session-based, time-based, or click-based, or a combination thereof.

<FIG> show a videoconferencing platform <NUM> comprising a videoconferencing space <NUM> with a public virtual environment <NUM> and a plurality of proprietary virtual environments <NUM>, according to an embodiment.

The public virtual environment <NUM> refers to a public communication instance that a plurality of users can use to join a public videoconferencing session in a 3D virtual environment where each user can see each other along with the public virtual 3D areas that are accessible to all participants.

In one embodiment, as shown in <FIG>, the public virtual environment <NUM> comprises a plurality of proprietary virtual environments <NUM>, such as proprietary virtual environments A-C, which may be publicly or privately accessible by participants. In one embodiment, responsive to a request from the participant, a host of the proprietary virtual environment <NUM> may generate, via the deep link generator, a deep link to an invitee configured to position the invitee in a desired 3D coordinate in the private session.

In <FIG>, an isometric view of the public virtual environment and plurality of proprietary virtual environments are displayed.

In an example with reference to <FIG>, a mall <NUM> may host a public videoconferencing session in a public 3D virtual environment representing the mall <NUM>. The communication instance is a publicly shared communication instance that all participants may use. The mall <NUM> may comprise a plurality of stores, such as a shoe store <NUM> and a clothes store <NUM>, each store comprising its own communication instance, which may be public or private. The public communication instance of a proprietary store refers to a communication instance that participants of a public communication instance (e.g., the mall <NUM>) may access by switching from the public communication instance. The private communication instance of a proprietary store refers to a communication instance that participants of a proprietary store may access only by invitation from, e.g., a host of the proprietary store.

In one embodiment, a host <NUM> of a third-party proprietary virtual environment retrieves the buyer profile data of a participant entering the third-party proprietary virtual environment via a corresponding user graphical representation and sends a private invitation to the corresponding participant that opens up a private session between the host and the invited participant in a private communication instance.

In the example of <FIG>, participants A and B have joined the mall public communication instance and can view the different areas of the mall, including the proprietary stores, and can also view and communicate to each other. In an example of a public communication instance of a proprietary virtual environment, the shoe store <NUM> proprietary virtual environment may enable mall visitors to walk into the store, triggering a switch in the communication instance from the public mall communication instance to the shoe public communication instance. Within the shoe store <NUM>, a plurality of other users (e.g., users C and D) may also visit the 3D virtual environment of the shoe store <NUM>, all of which may be visible to each other. In an example of a private communication instance of a proprietary virtual environment, a store clerk <NUM>, upon any of users C or D meeting one or more criteria, may decide to open an ad hoc communication channel creating a private communication instance between the store clerk <NUM> and any one of users C and D. In some embodiments, the criteria are based on user attributes included in the context data of the participant, such as user identification data, spending ranking, and buying preferences. For example, the store clerk <NUM> may find the spending ranking of user C suitable for a specific offer, and thus may open an ad hoc communication channel with user C to present the offer. User C may be required to confirm interest in such a communication, such as by clicking and approving a deep link sent by the store clerk in order to bring the participant to the private communication session. In a further example of a clothes store <NUM>, the corresponding store clerk <NUM> may, based on visitors of the clothes store (e.g., users E and F) meeting certain criteria, invite both users to a private communication instance if the users are shopping together, which can be inferred from the user attributes.

In one embodiment, responsive to a request from one of the users, the store clerk <NUM> generates, via the deep link generator, a deep link to an invitee configured to position the invitee in a desired 3D coordinate in the private session within a proprietary store. For example, the store clerk <NUM> of the clothes store, upon being requested by user E, may generate a deep link invitation that is sent to user E, who may forward the invitation to a friend or acquaintance to join him or her on the private session in order to view one or more products of interest.

<FIG> shows session context data <NUM>, according to an embodiment.

The session context data <NUM> may comprise user attributes <NUM> including coordinates <NUM> comprising user 3D coordinates <NUM> and desired coordinates of invitee <NUM>. The session context data <NUM> may further comprise user profile data <NUM> including ID data <NUM>, spending ranking <NUM> and buying preferences <NUM>. The user 3D coordinates <NUM> refer to the actual latitude, longitude, and elevation of a user graphical representation of a participant within a 3D virtual environment of a videoconferencing space. The desired 3D coordinates of invitee <NUM> refer to the 3D coordinates where a participant may desire the invitee to arrive to when accessing the videoconferencing session. For example, the participant may prompt the invitee to appear in front of or next to the participant within the videoconferencing session. The ID data <NUM> is a specific user code that may be used to identify a corresponding participant, and which may point to a plurality of user personal data including at least spending ranking <NUM> and buying preferences <NUM>. The spending ranking refers to a ranking provided to the user based on how much he or her spends on products that may be purchased through videoconferencing platforms of the current disclosure, while the buying preferences refers to <NUM> product categories and characteristics that may reflect the buying preferences of the user when buying through videoconferencing platforms of the current disclosure.

<FIG> shows a method <NUM> for generating spatial deep links for virtual spaces, which may be implemented by a computer comprising at least one processor and memory comprising instructions configured to implement a plurality of steps. Method <NUM> begins in step <NUM> by receiving (e.g., by a deep link generator stored in memory) a deep link generation request that is triggered when a participant of a videoconferencing session hosted in a videoconferencing platform invites an invitee to join the videoconferencing session. The method continues in step <NUM> by retrieving videoconferencing session context data and a session communication instance. In step <NUM>, the method ends by generating a deep link comprising the videoconferencing session context data (e.g., in encoded form). The videoconferencing platform connects to the deep link generator and comprises at least one videoconferencing space hosting the videoconferencing session, wherein the at least one videoconferencing space is a 3D virtual environment.

<FIG> shows a secure distributed deep link system, according to an embodiment.

The distributed deep link system <NUM> comprises at least one server computer <NUM> of a server computer system comprising at least one processor <NUM> and memory <NUM> storing instructions executed by said at least one processor <NUM>, which, when implemented by the at least one processor <NUM>, implement a videoconferencing platform <NUM> and a deep link manager <NUM>. The deep link manager <NUM> in turn implements a deep link generator <NUM> configured to receive a deep link generation request, which may be sent, for example, by a client device <NUM> of an inviter <NUM>. Alternatively, the inviter <NUM> may also send the deep link generation request by sending the request to an administrator or host client device (not shown) that may gather all requests to join a videoconferencing session in order to set up the videoconferencing session.

The inviter <NUM> sending the deep link generation request may be used in embodiments where the inviter <NUM> has already joined a videoconferencing session and is willing to invite an invitee <NUM> to participate in such a session. For example, the inviter may have joined a videoconferencing session in a 3D virtual environment of a public or private communication instance, may find content within the virtual environment to be of potential interest to an acquaintance (e.g., a virtual store, information of a conference, an exhibition, job fair, etc.), and may thereafter send the deep link generation request with the purpose of generating a deep link that may be used to invite the invitee <NUM> to join the same videoconferencing session. Alternatively, the administrator can prepare the deep link generation request by gathering videoconferencing participation requests from a plurality of users and then sending the deep links accordingly employing the distributed deep link system <NUM>.

The deep link generator <NUM> then triggers the generation of a deep link that corresponds to each videoconferencing meeting slot or three-dimensional space of a virtual environment within a videoconferencing session of the videoconferencing platform <NUM>. The deep link generator <NUM> splits the deep link data <NUM> into at least two data fragments, wherein a first fragment comprises a data majority <NUM> and wherein a second data fragment comprises a minority <NUM> of the data thereof. In some embodiments, the deep link data comprises the characters that form a deep link URL. In some embodiment, the majority of the deep link data represents between about <NUM>% and about <NUM>% of the deep link data <NUM>, and the minority of data represents between about <NUM>% and about <NUM>% of the deep link data <NUM>. In an illustrative scenario, a deep link URL having <NUM> characters may be split into two fragments comprising a first portion of <NUM> characters and a second portion of <NUM> characters; three fragments comprising a first portion of <NUM> characters, a second portion of <NUM> characters, and a third portion of <NUM> characters; or some other number of fragments or distributions of characters among fragments. As a further alternative, a deep link may be split into fragments where no single fragment contains a majority of the data, such as two fragments that each include a <NUM>% portion of the deep link data, or three fragments having <NUM>%, <NUM>%, and <NUM>% portions of the deep link data, respectively.

The deep link manager <NUM> proceeds by distributing the at least two data fragments of the deep link to at least two different storage locations, wherein the data majority <NUM> is stored in a first storage location (e.g., the memory <NUM> of the server) and the data minority <NUM> is stored in at least one second storage location <NUM>. The deep link generator <NUM> then proceeds by generating a link encoding a deep link assembling process <NUM> that is sent to the inviter client device <NUM>.

Deep link data <NUM> virtualization enabling the fragmentation of the deep link data <NUM> may be performed by the deep link manager <NUM>. Virtualization mechanisms enables storing different portions of the deep link data <NUM> in virtual machines (VMs) without necessarily controlling where these VMs are physically assigned. The VMs can be assigned, for example, to one or more physical servers, which can be part of a larger network of servers comprised in cloud servers, cloudlets, or edge servers. Fragmentation takes data in memory that is broken up into many pieces that are not close together. Data in a file can be managed in units called blocks. Initially, the file blocks may be stored contiguously in a memory located in the private user storage area. However, when fragmenting the data, some of the data blocks can be separated and dispersed into different storage locations, such as into one or more data collector servers. As the storage in the current disclosure is virtualized, the data fragments may be stored in the virtual storage, meaning that the physical storage devices where the data fragments are stored is not of relevance to the system when fetching and assembling the data.

The deep link manager <NUM> is further configured to retrieve, upon validation from the inviter <NUM>, the second data fragment including data minority <NUM> of the deep link from the second storage location <NUM> and the first data fragment including data majority <NUM> of the deep link from the at least one first storage location. Such a validation may take place in the form of the inviter <NUM> clicking on a link configured to, upon activation, initiate a deep link assembling process <NUM> that assembles the deep link from the data fragments. Such a link may be referred to as an assembling link. The assembling link may include information to facilitate some form of authentication (e.g., biometric scanning, including face scanning, fingerprint scanning, voice recognition, and the like; password; PIN; or combinations thereof). The deep link manager <NUM> is further configured to assemble the minority and majority portions <NUM> and <NUM> of the deep link data <NUM>, and to grant access to the invitee <NUM> to the videoconferencing session. The assembled deep link may then be sent to the invitee <NUM> who, upon clicking on the link, may access the videoconferencing session. In some embodiments, the deep link manager <NUM> may send the deep link directly to the invitee <NUM>, or indirectly through the inviter <NUM>. The invitee may then click on the link and access the videoconferencing session through a corresponding invitee client device <NUM>. In some embodiments, having the deep link data <NUM> stored in two or more different locations and having a deep link assembling process triggered upon validation from the inviter <NUM> increases deep link security, as users are not able to validate the deep link assembling process without having the right information.

In some embodiments, after the invitee <NUM> clicks on the deep link, the videoconferencing platform <NUM> inserts a user graphical representation of the invitee <NUM>, generated from a live data feed captured by at least one camera, into a 3D coordinate position of a 3D virtual environment of the videoconferencing platform <NUM>, and combines the user graphical representation therewith. In yet further embodiments, the videoconferencing session is a public videoconferencing session hosted in a public 3D virtual environment in a public communication instance. For example, once an invitee <NUM> has clicked on an assembled deep link, the invitee may have his or her user graphical representation inserted into a 3D coordinate of a virtual mall of <FIG>, such as in a location close to the inviter <NUM>. The deep link may also be created to invite an invitee <NUM> to a videoconferencing space in a private videoconferencing session accessed through a private communication instance.

In some embodiments, the at least one second storage location <NUM> comprises one or more private user servers or client device local memories. The one or more private user servers may be located in data centers destined for the private usage of users for purposes of storing data fragments and hosting the user application. In other embodiments, the one or more private user storage areas may be configured within a user device, such as mobile devices, personal computers, game consoles, media centers, head-mounted displays, and see-through devices (e.g., smart contact lenses).

In other embodiments, the at least one second storage location <NUM> is configured within a distributed ledger network. In some embodiments, the at least one first storage location is the memory <NUM> of the at least one server computer. The distributed ledger is a trusted database that can function as a record of value storage and exchange. The distributed ledger provides a decentralized network of transactions comprising information that is shared across different locations and people, eliminating the need of a central authority. Storage in a distributed ledger may include the use of encryption in order to keep the deep link data fragments securely stored in the different storage areas. In some embodiments, the deep link data fragments are encrypted by a symmetric or asymmetric key encryption mechanism. In the case of asymmetric key encryption, the data fragments are encrypted asymmetrically by a public key sent to the inviter client device <NUM> by the deep link manager <NUM> through a network <NUM> and are decrypted by the deep link manager <NUM> via a private key of the deep link manager <NUM> stored in memory <NUM> of the server <NUM>. In other embodiments, data fragments are encrypted symmetrically by a private key of the inviter client device <NUM> and are decrypted via the same private key by the deep link manager <NUM>.

In some embodiments, the deep link generator <NUM> is further configured to encode in the deep link an expiration factor, wherein the expiration factor is one of a session-based, or time-based, or click-based expiration factor, or a combination thereof.

In some embodiments, the videoconferencing platform is further configured to receive a videoconferencing meeting slot list, wherein each videoconferencing meeting slot comprises at least a location within the videoconferencing space; receive a participant list, wherein each participant comprises one or more attributes linked to the corresponding participant; create a meeting slot protocol by allocating a videoconferencing meeting slot to each participant based on the one or more attributes; provide one or more entitlements to each videoconferencing meeting slot; and provide the one or more entitlements to the participant of the corresponding videoconferencing meeting slot.

<FIG> shows a secure distributed deep link method <NUM>, according to an embodiment.

Method <NUM> may start in step <NUM> by receiving (e.g., by a deep link generator stored in memory of at least one server computer) a deep link generation request. The deep link generator may be part of a deep link manager stored in memory. The memory may further store a videoconferencing platform that can be accessed by users through a network via corresponding client devices.

In step <NUM>, the method <NUM> continues by generating a deep link that corresponds to (e.g., is unique for) each videoconferencing meeting slot of a videoconferencing session of the videoconferencing platform, each deep link including (e.g., in encoded form) at least the location of the videoconferencing meeting slot within a videoconferencing space. In step <NUM>, the method <NUM> proceeds by fragmenting the deep link into at least two data fragments, wherein at least one data fragment comprises a majority of the data of the deep link and wherein at least another data fragment comprises a minority of the data thereof. In some embodiments, the majority of the deep link data represents between about <NUM>% and about <NUM>% of the deep link data, and the minority of data represents between about <NUM>% and about <NUM>% of the deep link data.

In step <NUM>, the method proceeds by distributing the at least two data fragments of the deep link to at least two different storage locations, wherein the majority of the data is stored in memory of at least a first storage location and wherein the minority of the data is stored in memory of at least a second storage location. In step <NUM>, the method <NUM> proceeds by generating an assembling link that, when activated, initiates a deep link assembling process; and in step <NUM>, the method <NUM> ends by sending the assembling link to an inviter client device.

In some embodiments, the at least one second storage location comprises one or more user servers or client device local memories. In other embodiments, the at least one second storage location is configured within a distributed ledger network. In some embodiments, the at least one first storage location is the memory of the at least one server computer.

In some embodiments, the method <NUM> further comprises encoding in the deep link an expiration factor, wherein the expiration factor is one of a session-based, or time-based, or click-based expiration factor, or a combination thereof.

<FIG> shows a deep link assembling method <NUM>, according to an embodiment. Steps from method <NUM> may take place after method <NUM> of <FIG>. The method <NUM> may start in step <NUM> by retrieving, upon validation from the participant, at least one minority data fragment (second data fragment) of the deep link from the second storage location and the majority portion of the deep link (first data fragment) from the at least one first storage location. Such a validation may take place in the form of the inviter clicking on the assembling link initiating a deep link assembling process plus some form of authentication (e.g., biometric scanning, password; PIN; or combinations thereof). The method <NUM> continues in step <NUM> by assembling the minority and majority portions of the deep link. In step <NUM>, the method <NUM> ends by sending the assembled deep link to grant an invitee access to the videoconferencing session.

In some embodiments, the method <NUM> further comprises inserting a user graphical representation of the invitee, generated from a live data feed captured by at least one camera, into a 3D coordinate of the 3D virtual environment and to combine the user graphical representation therewith. In further embodiments, 3D virtual environment in a public communication instance, or is a private videoconferencing session accessed through a private communication instance.

Claim 1:
A method (<NUM>) enabling deep link security implemented by at least one server computer (<NUM>) comprising at least one processor (<NUM>) and memory (<NUM>), the method comprising:
receiving (<NUM>) a deep link generation request;
generating (<NUM>, <NUM>) a deep link corresponding to a videoconferencing meeting slot of a videoconferencing session, wherein the deep link is configured to, upon activation, direct a participant to a location of the videoconferencing meeting slot within a videoconferencing space;
fragmenting (<NUM>) the deep link into data fragments, wherein a first data fragment comprises a majority (<NUM>) of the data of the deep link and wherein a second data fragment comprises a minority (<NUM>) of the data of the deep link;
distributing (<NUM>) the data fragments of the deep link to at least two different storage locations, wherein the first data fragment is stored in at least a first storage device (<NUM>) and wherein the second data fragment is stored in at least a second storage device (<NUM>);
generating (<NUM>) an assembling link configured to, upon activation, initiate a deep link assembling process that assembles the deep link from the data fragments; and
sending (<NUM>) the assembling link to an inviter client device (<NUM>).