Scalable WebRTC Media Engine with Virtual Agents

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

WebRTC multi-party interactive sessions face challenges due to the 'full mesh' architecture, which burdens computing resources and bandwidth, and is complicated by variations in WebRTC media stack implementations across different web client types and versions.

Innovation Solution

A scalable WebRTC media engine is introduced that instantiates virtual WebRTC agents, allowing clients to establish interactive flows with these agents, synthesizes content, and directs it back, thereby avoiding the full mesh architecture and resolving compatibility issues between incompatible clients.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a full mesh architecture is used for multi-party WebRTC sessions, then direct peer-to-peer communication is achieved, but computing resources and bandwidth are excessively consumed

Engineering Contradiction:
Improvedirect peer-to-peer communicationVSAvoidcomputing resources and bandwidth
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent introduces a media server as an intermediary component that receives media streams from multiple WebRTC clients and redistributes them. This mediator architecture replaces the full mesh peer-to-peer connections, significantly reducing the computing resources and bandwidth required while maintaining reliable multi-party communication. The media server handles the complex routing and distribution tasks that would otherwise burden individual client devices.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Device complexity

If a central media server is implemented for multi-party WebRTC sessions, then architecture complexity is reduced, but compatibility issues arise due to variations in WebRTC media stack implementations

Engineering Contradiction:
Improvearchitecture complexityVSAvoidcompatibility between different web client types
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The patent employs parameter changes by dynamically adjusting media stream parameters (such as codec selection, resolution, and bitrate) based on the capabilities of each WebRTC client. The media server negotiates and adapts these parameters to ensure compatibility across different client types and versions, resolving the compatibility issues that arise from variations in WebRTC media stack implementations while maintaining a simplified central server architecture.

Inventive Principle:
Principle #35Parameter changes

3Adaptability or versatility

If virtual WebRTC agents are instantiated to manage media flows, then client compatibility is improved, but system complexity increases

Engineering Contradiction:
Improveclient compatibilityVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent creates virtual WebRTC agents as software copies that emulate real WebRTC client behavior. These virtual agents are instantiated on the media server to handle media flows from clients with incompatible media stacks. By copying the essential WebRTC client functionality on the server side, the system achieves broad client compatibility without requiring complex peer-to-peer negotiation between incompatible clients, as the virtual agents serve as standardized intermediaries.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS9065969B2Scalable web real-time communications (WebRTC) media engines, and related methods, systems, and computer-readable media
Publication Date: 2015.06.23 AVAYA INC
  • US9065969B2 patent drawing
  • US9065969B2 patent drawing
  • US9065969B2 patent drawing

AI summary

Scalable Web Real-Time Communication (WebRTC) media engines, and related methods, systems, and computer-readable media, are disclosed herein. In one embodiment, a method for providing a scalable WebRTC media engine comprises instantiating one or more virtual WebRTC agents, each corresponding to one or more of a plurality of WebRTC clients. The method further comprises establishing a plurality of WebRTC interactive flows, each connecting one of the one or more virtual WebRTC agents with the corresponding one or more of the plurality of WebRTC clients. The method also comprises receiving contents of the plurality of WebRTC interactive flows as input from the one or more virtual WebRTC agents, and synthesizing the contents of the plurality of WebRTC interactive flows. The method additionally comprises directing the synthesized contents as output to one of more of the plurality of WebRTC interactive flows via the corresponding one or more virtual WebRTC agents.