DE102014108888B4 - Virtuelle Back-to-Back-Web-Real-Time-Communications(WebRTC)-Agenten und verwandte Verfahren, Systeme und computerlesbare Medien - Google Patents

Virtuelle Back-to-Back-Web-Real-Time-Communications(WebRTC)-Agenten und verwandte Verfahren, Systeme und computerlesbare Medien Download PDF

Info

Publication number
DE102014108888B4
DE102014108888B4 DE102014108888.3A DE102014108888A DE102014108888B4 DE 102014108888 B4 DE102014108888 B4 DE 102014108888B4 DE 102014108888 A DE102014108888 A DE 102014108888A DE 102014108888 B4 DE102014108888 B4 DE 102014108888B4
Authority
DE
Germany
Prior art keywords
webrtc
client
interactive
virtual
flow
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE102014108888.3A
Other languages
English (en)
Other versions
DE102014108888A1 (de
Inventor
Alan B. Johnston
John H. Yoakum
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Avaya Inc
Original Assignee
Avaya Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Avaya Inc filed Critical Avaya Inc
Publication of DE102014108888A1 publication Critical patent/DE102014108888A1/de
Application granted granted Critical
Publication of DE102014108888B4 publication Critical patent/DE102014108888B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/765Media network packet handling intermediate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

Verfahren zum Bereitstellen eines virtuellen Back-to-Back-Web-Real-Time-Communications(WebRTC)-Agenten, das Folgendes umfasst:Empfangen eines WebRTC-Angebot-Antwort-Austausches zwischen einem ersten WebRTC-Client und einem zweiten WebRTC-Client durch einen WebRTC-Server, der auf einer Computereinrichtung ausgeführt wird;Bestimmen, ob der erste WebRTC-Client und der zweite WebRTC-Client kompatibel sind, basierend auf dem WebRTC-Angebot-Antwort-Austausch, einem Abfrage-Rückmeldung-Austausch zwischen dem WebRTC-Server und einem oder mehreren vom ersten WebRTC-Client und vom zweiten WebRTC-Client oder Hyper-Text-Transfer-Protocol(HTTP)-Kopfdaten oder einer Kombination davon;Instanziieren eines oder mehrerer virtueller WebRTC-Agenten, wobei Instanziieren des einen oder der mehreren virtuellen WebRTC-Agenten als Rückmeldung auf Bestimmen, dass der erste WebRTC-Client mit dem zweiten WebRTC-Client nicht kompatibel ist, Folgendes umfasst:Instanziieren eines ersten virtuellen WebRTC-Agenten, der mit dem ersten WebRTC-Client kompatibel ist, wobei der erste virtuelle WebRTC-Agent eine erste Instanz einer WebRTC-fähigen Client-Anwendung aufweist, die auf der Computereinrichtung ausgeführt wird; undInstanziieren eines zweiten virtuellen WebRTC-Agenten, der mit dem zweiten WebRTC-Client kompatibel ist, wobei der zweite virtuelle WebRTC-Agent eine zweite Instanz einer WebRTC-fähigen Client-Anwendung aufweist, die auf der Computereinrichtung ausgeführt wird;Herstellen eines ersten interaktiven WebRTC-Flusses zwischen dem ersten WebRTC-Client und dem ersten virtuellen WebRTC-Agenten und eines zweiten interaktiven WebRTC-Flusses zwischen dem zweiten WebRTC-Client und dem zweiten virtuellen WebRTC-Agenten; undLeiten eines Inhalts des ersten interaktiven WebRTC-Flusses an den zweiten interaktiven WebRTC-Fluss und eines Inhalts des zweiten interaktiven WebRTC-Flusses an den ersten interaktiven WebRTC-Fluss über die virtuellen WebRTC-Agenten.

Description

  • ALLGEMEINER STAND DER TECHNIK
  • Gebiet der Offenbarung
  • Die Technologie der Offenbarung betrifft allgemein interaktive Web-Real-Time-Communications(WebRTC)-Sitzungen.
  • Technischer Hintergrund
  • Web Real-Time Communications (WebRTC) verkörpert eine laufende Bemühung um die Entwicklung von Industriestandards zum Integrieren von Echtzeitkommunikationsfunktionalität in Webclients, etwa Webbrowsern, um direkte Interaktion mit anderen Webclients zu ermöglichen. Diese Echtzeitkommunikationsfunktionalität ist für Webentwickler über Standardauszeichnungs-Tags zugänglich, etwa diejenigen, die durch Version 5 der Hypertext Markup Language (HTML5) bereitgestellt werden, und über clientseitige Skript-Anwendungsprogrammierschnittstellen (APIs) wie JavaScript-APIs. Weitere Informationen zu WebRTC finden sich in „WebRTC: APIs and RTCWEB Protocols of the HTML5 Real-Time Web“ von Alan B. Johnston und Daniel C. Burnett (2012 Digital Codex LLC), das durch Bezugnahme in seinem vollen Umfang hierin aufgenommen wird.
  • WebRTC stellt integrierte Fähigkeiten zum Herstellen von Echtzeitvideo-, -audio- und/oder -datenströmen sowohl bei interaktiven Punkt-zu-Punkt-Sitzungen als auch bei interaktiven Mehr-Teilnehmer-Sitzungen bereit. Die WebRTC-Standards werden derzeit vom World Wide Web Consortium (W3C) und von der Internet Engineering Task Force (IETF) gemeinsam entwickelt. Informationen zum derzeitigen Stand der WebRTC-Standards finden sich z. B. unter http://www.w3c.org und http://www.ietf.org. Aus PERKINS, C., WESTERLUND, M., OTT, J., „Web Real-Time Communication (WebRTC): Media Transport and USE of RTP“, Network Working Group, Feb. 2013, URL.https://tools.ietf.org/html/draft-ietf-rtcweb-rtp-usage-06 ist es zudem das Empfangen eines WebRTC-Angebot-Antwort-Austausches zwischen einem ersten WebRTC.Client und einem zweiten WEbRTC-Client durch einen WebRTC-Server, der auf einer Computereinrichtung ausgeführt wird, bekannt.
  • Um eine interaktive WebRTC-Sitzung (z. B. einen Echtzeitvideo-, -audio- und/oder -datenaustausch) herzustellen, können zwei Webclients WebRTC-fähige Webanwendungen, etwa HTML5/JavaScript-Webanwendungen, von einem WebRTC-Anwendungsserver abrufen. Durch die Webanwendungen nehmen die zwei Webclients eine Medienaushandlung auf, um zu kommunizieren und eine Vereinbarung über Parameter, die Eigenschaften der interaktiven WebRTC-Sitzung definieren, zu erzielen. Diese Medienaushandlung ist bekannt als WebRTC-„Angebot-Antwort“-Austausch. Bei einem Angebot-Antwort-Austausch sendet ein erster Webclient, der auf einer Sendercomputereinrichtung betrieben wird, ein „Angebot“ an einen zweiten Webclient auf einer Empfängercomputereinrichtung. Das Angebot beinhaltet ein WebRTC-Sitzungsbeschreibungsobjekt, das Medientypen und -fähigkeiten spezifiziert, die der erste Webclient unterstützt und zur Nutzung bei der interaktiven WebRTC-Sitzung vorzieht. Der zweite Webclient meldet sich dann mit einer WebRTC-Sitzungsbeschreibungsobjekt-„Antwort“ zurück, die angibt, welche der angebotenen Medientypen und -fähigkeiten er unterstützt und für die interaktive WebRTC-Sitzung akzeptiert. Sobald der WebRTC-Angebot-Antwort-Austausch abgeschlossen ist, können die Webclients dann eine direkte Peerverbindung zueinander herstellen und können mit einem Echtzeitaustausch von Medien oder Daten beginnen. Die Peerverbindung zwischen den Webclients verwendet typischerweise das Secure Real-Time Transport Protocol (SRTP), um Echtzeitmedienflüsse zu transportieren, und kann verschiedene andere Protokolle für Echtzeitdatenaustausch einsetzen.
  • Jedoch ist eine Peer-to-Peer-Architektur unter manchen Umständen möglicherweise nicht optimal für Echtzeitinteraktion. Beispielsweise ist es möglicherweise nötig, Aufzeichnen oder Überwachen des interaktiven WebRTC-Flusses bereitzustellen und/oder bekannte Inkompatibilitäten zwischen Webclients an Endpunkten des interaktiven WebRTC-Flusses anzugehen. Die WebRTC-Standards sehen vor, dass ein interaktiver WebRTC-Fluss in Situationen, in denen keine direkte Peerverbindung möglich ist, durch einen TURN(Traversal Using Relay around NAT)-Server geroutet wird. Jedoch ist ein interaktiver WebRTC-Fluss, der durch einen TURN-Server läuft, verschlüsselt und kann daher am TURN-Server nicht untersucht oder überwacht werden. Ferner würde Konvertieren eines interaktiven WebRTC-Flusses in ein einfacher handhabbares Format in Echtzeit ein Gateway erfordern, das möglicherweise übermäßig komplex und/oder gewerblich nicht erhältlich ist.
  • KURZE DARSTELLUNG DER DETAILLIERTEN BESCHREIBUNG
  • In der detaillierten Beschreibung offenbarte Ausführungsformen stellen virtuelle Back-to-Back-Web-Real-Time-Communications(WebRTC)-Agenten bereit. Verwandte Verfahren, Systeme und computerlesbare Medien werden ebenfalls offenbart. In einigen Ausführungsformen instanziiert ein WebRTC-Server, durch den zwei oder mehr WebRTC-Clients eine interaktive WebRTC-Sitzung herzustellen versuchen, einen oder mehrere virtuelle WebRTC-Agenten. Der WebRTC-Server kannveranlassen, dass jeder der zwei oder mehr WebRTC-Clients einen interaktiven WebRTC-Fluss zu dem einen oder den mehreren virtuellen WebRTC-Agenten herstellt. Der WebRTC-Server kann die virtuellen WebRTC-Agenten dann aufeinanderfolgend („Back-to-Back“) verbinden, indem er den Inhalt der hergestellten interaktiven WebRTC-Flüsse zwischen oder unter dem einen oder den mehreren virtuellen WebRTC-Agenten leitet. Auf diese Weise kann der WebRTC-Server eine interaktive WebRTC-Sitzung für die zwei oder mehr WebRTC-Clients bereitstellen, während er auch zusätzliche Medienverarbeitungsfunktionalität bereitstellt. Als nicht einschränkende Beispiele beinhaltet die Medienverarbeitungsfunktionalität möglicherweise Aufzeichnen und/oder Überwachen der interaktiven WebRTC-Flüsse, Extrahieren von Inhalt aus oder Einfügen von Inhalt in die interaktiven WebRTC-Flüsse und/oder Beseitigen potenzieller oder tatsächlicher Inkompatibilitäten zwischen den WebRTC-Clients.
  • In diesem Zusammenhang ist in einer Ausführungsform ein Verfahren zum Bereitstellen eines virtuellen Back-to-Back-WebRTC-Agenten bereitgestellt. Das Verfahren umfasst Empfangen eines WebRTC-Angebot-Antwort-Austausches zwischen einem ersten WebRTC-Client und einem zweiten WebRTC-Client durch einen WebRTC-Server, der auf einer Computereinrichtung ausgeführt wird. Das Verfahren umfasst weiter Instanziieren eines oder mehrerer virtueller WebRTC-Agenten. Das Verfahren umfasst auch Herstellen eines ersten interaktiven WebRTC-Flusses zwischen dem ersten WebRTC-Client und einem des einen oder der mehreren virtuellen WebRTC-Agenten und eines zweiten interaktiven WebRTC-Flusses zwischen dem zweiten WebRTC-Client und einem des einen oder der mehreren virtuellen WebRTC-Agenten. Das Verfahren umfasst zusätzlich Leiten eines Inhalts des ersten interaktiven WebRTC-Flusses an den zweiten interaktiven WebRTC-Fluss und eines Inhalts des zweiten interaktiven WebRTC-Flusses an den ersten interaktiven WebRTC-Fluss über den einen oder die mehreren virtuellen WebRTC-Agenten.
  • In einer anderen Ausführungsform ist ein System zum Bereitstellen eines virtuellen Back-to-Back-WebRTC-Agenten bereitgestellt. Das System umfasst mindestens eine Kommunikationsschnittstelle und einen WebRTC-Server, der mit der mindestens einen Kommunikationsschnittstelle assoziiert ist. Der WebRTC-Server umfasst einen WebRTC-Anwendungsanbieter, der konfiguriert ist, um einen WebRTC-Angebot-Antwort-Austausch zwischen einem ersten WebRTC-Client und einem zweiten WebRTC-Client zu empfangen. Der WebRTC-Server umfasst weiter einen virtuellen WebRTC-Agent-Manager. Der virtuelle WebRTC-Agent-Manager ist konfiguriert, um einen oder mehrere virtuelle WebRTC-Agenten zu instanziieren. Der virtuelle WebRTC-Agent-Manager ist weiter konfiguriert, um einen ersten interaktiven WebRTC-Fluss zwischen dem ersten WebRTC-Client und einem des einen oder der mehreren virtuellen WebRTC-Agenten und einen zweiten interaktiven WebRTC-Fluss zwischen dem zweiten WebRTC-Client und einem des einen oder der mehreren virtuellen WebRTC-Agenten herzustellen. Der virtuelle WebRTC-Agent-Manager ist auch konfiguriert, um einen Inhalt des ersten interaktiven WebRTC-Flusses an den zweiten interaktiven WebRTC-Fluss und einen Inhalt des zweiten interaktiven WebRTC-Flusses an den ersten interaktiven WebRTC-Fluss über den einen oder die mehreren virtuellen WebRTC-Agenten zu leiten.
  • In einer anderen Ausführungsform ist ein nicht transientes computerlesbares Medium bereitgestellt. Auf dem nicht transienten computerlesbaren Medium sind computerausführbare Befehle abgelegt, um zu veranlassen, dass ein Prozessor ein Verfahren implementiert, das Empfangen eines WebRTC-Angebot-Antwort-Austausches zwischen einem ersten WebRTC-Client und einem zweiten WebRTC-Client umfasst. Das durch die computerausführbaren Befehle implementierte Verfahren umfasst weiter Instanziieren eines oder mehrerer virtueller WebRTC-Agenten. Das durch die computerausführbaren Befehle implementierte Verfahren umfasst auch Herstellen eines ersten interaktiven WebRTC-Flusses zwischen dem ersten WebRTC-Client und einem des einen oder der mehreren virtuellen WebRTC-Agenten und eines zweiten interaktiven WebRTC-Flusses zwischen dem zweiten WebRTC-Client und einem des einen oder der mehreren virtuellen WebRTC-Agenten. Das durch die computerausführbaren Befehle implementierte Verfahren umfasst zusätzlich Leiten eines Inhalts des ersten interaktiven WebRTC-Flusses an den zweiten interaktiven WebRTC-Fluss und eines Inhalts des zweiten interaktiven WebRTC-Flusses an den ersten interaktiven WebRTC-Fluss über den einen oder die mehreren virtuellen WebRTC-Agenten.
  • KURZE BESCHREIBUNG DER FIGUREN
  • Die beiliegenden Zeichnungsfiguren, die in diese Patentschrift aufgenommen sind und einen Bestandteil von ihr bilden, veranschaulichen diverse Ausgestaltungen der Offenbarung und dienen zusammen mit der Beschreibung dazu, die Prinzipien der Offenbarung zu erläutern.
    • 1 ist ein Begriffsschema, das eine interaktive Web-Real-Time-Communications(WebRTC)-Sitzung zwischen zwei WebRTC-Clients über einen WebRTC-Server, der einen virtuellen WebRTC-Agent-Manager beinhaltet, und zwei virtuellen Back-to-Back-WebRTC-Agenten veranschaulicht;
    • 2 ist ein Flussdiagramm, das beispielhafte Abläufe des WebRTC-Servers und des virtuellen WebRTC-Agent-Managers von 1 zum Bereitstellen virtueller Back-to-Back-WebRTC-Agenten veranschaulicht;
    • 3 ist ein Schema, das beispielhafte Kommunikationsflüsse innerhalb eines beispielhaften Systems, welches den virtuellen WebRTC-Agent-Manager und virtuelle Back-to-Back-WebRTC-Agenten von 1 beinhaltet, veranschaulicht;
    • 4 ist ein Begriffsschema, das eine interaktive WebRTC-Sitzung zwischen zwei WebRTC-Clients unter Nutzung eines einzigen, von einem virtuellen WebRTC-Agent-Manager verwalteten virtuellen WebRTC-Agenten einsetzen, veranschaulicht;
    • die 5A-5C sind Flussdiagramme, die detailliertere beispielhafte Abläufe zum Bereitstellen virtueller Back-to-Back-WebRTC-Agenten und zusätzlicher Medienverarbeitungsfunktionalität veranschaulichen; und
    • 6 ist ein Blockschema eines beispielhaften prozessorbasierten Systems, welches den WebRTC-Server und den virtuellen WebRTC-Agent-Manager von 1 beinhalten kann.
  • DETAILLIERTE BESCHREIBUNG
  • Nunmehr werden mit Bezug auf die Zeichnungsfiguren diverse beispielhafte Ausführungsformen der vorliegenden Offenbarung beschrieben. Das Wort „beispielhaft“ wird hierin in der Bedeutung „als ein Beispiel, ein Beispielsfall oder zur Veranschaulichung dienend“ genutzt. Jede hierin als „beispielhaft“ beschriebene Ausführungsform ist nicht zwangsläufig als gegenüber anderen Ausführungsformen bevorzugt oder vorteilhaft auszulegen.
  • In der detaillierten Beschreibung offenbarte Ausführungsformen stellen virtuelle Back-to-Back-Web-Real-Time-Communications(WebRTC)-Agenten bereit. Verwandte Verfahren, Systeme und computerlesbare Medien werden ebenfalls offenbart. In einigen Ausführungsformen instanziiert ein WebRTC-Server, durch den zwei oder mehr WebRTC-Clients eine interaktive WebRTC-Sitzung herzustellen versuchen, einen oder mehrere virtuelle WebRTC-Agenten. Der WebRTC-Server kann veranlassen, dass jeder der zwei oder mehr WebRTC-Clients einen interaktiven WebRTC-Fluss zu dem einen oder den mehreren virtuellen WebRTC-Agenten herstellt. Der WebRTC-Server kann die virtuellen WebRTC-Agenten dann aufeinanderfolgend („Back-to-Back“) verbinden, indem er den Inhalt der hergestellten interaktiven WebRTC-Flüsse zwischen oder unter dem einen oder den mehreren virtuellen WebRTC-Agenten leitet. Auf diese Weise kann der WebRTC-Server eine interaktive WebRTC-Sitzung für die zwei oder mehr WebRTC-Clients bereitstellen, während er auch zusätzliche Medienverarbeitungsfunktionalität bereitstellt. Als nicht einschränkende Beispiele beinhaltet die Medienverarbeitungsfunktionalität möglicherweise Aufzeichnen und/oder Überwachen der interaktiven WebRTC-Flüsse, Extrahieren von Inhalt aus oder Einfügen von Inhalt in die interaktiven WebRTC-Flüsse und/oder Beseitigen potenzieller oder tatsächlicher Inkompatibilitäten zwischen den WebRTC-Clients.
  • In diesem Zusammenhang ist in einer Ausführungsform ein Verfahren zum Bereitstellen eines virtuellen Back-to-Back-WebRTC-Agenten bereitgestellt. Das Verfahren umfasst Empfangen eines WebRTC-Angebot-Antwort-Austausches zwischen einem ersten WebRTC-Client und einem zweiten WebRTC-Client durch einen WebRTC-Server, der auf einer Computereinrichtung ausgeführt wird. Das Verfahren umfasst weiter Instanziieren eines oder mehrerer virtueller WebRTC-Agenten. Das Verfahren umfasst auch Herstellen eines ersten interaktiven WebRTC-Flusses zwischen dem ersten WebRTC-Client und einem des einen oder der mehreren virtuellen WebRTC-Agenten und eines zweiten interaktiven WebRTC-Flusses zwischen dem zweiten WebRTC-Client und einem des einen oder der mehreren virtuellen WebRTC-Agenten. Das Verfahren umfasst zusätzlich Leiten eines Inhalts des ersten interaktiven WebRTC-Flusses an den zweiten interaktiven WebRTC-Fluss und eines Inhalts des zweiten interaktiven WebRTC-Flusses an den ersten interaktiven WebRTC-Fluss über den einen oder die mehreren virtuellen WebRTC-Agenten.
  • 1 veranschaulicht ein beispielhaftes interaktives Kommunikationssystem 10, das virtuelle Back-to-Back-WebRTC-Agenten, wie hierin offenbart, bereitstellt. Insbesondere stellt das beispielhafte interaktive Kommunikationssystem 10 einen WebRTC-Server 12 bereit, der auf einer Computereinrichtung 14 ausgeführt wird und der einen virtuellen WebRTC-Agent-Manager 16 beinhaltet. Der virtuelle WebRTC-Agent-Manager 16 handhabt die Instanziierung virtueller WebRTC-Agenten und koordiniert die Herstellung und die Leitung von Inhalt von interaktiven WebRTC-Flüssen zwischen virtuellen WebRTC-Agenten, um eine interaktive WebRTC-Sitzung zwischen zwei oder mehr Endpunkten bereitzustellen. Wie hierin genutzt, bezieht sich ein „virtueller WebRTC-Agent“ auf eine Instanz eines Browsers oder einer anderen WebRTC-fähigen Clientanwendung, die gesteuert vom virtuellen WebRTC-Agent-Manager 16 auf der Computereinrichtung 14 ausgeführt wird. Eine „interaktive WebRTC-Sitzung“ bezieht sich auf Abläufe zum Ausführen eines WebRTC-Angebot-Antwort-Austausches, zum Herstellen einer Peerverbindung und zum Einleiten eines interaktiven WebRTC-Flusses zwischen zwei oder mehr Endpunkten. Ein „interaktiver WebRTC-Fluss“, wie hierin offenbart, bezieht sich auf einen interaktiven Medienfluss und/oder einen interaktiven Datenfluss, der/die zwischen oder unter zwei oder mehr Endpunkten gemäß den WebRTC-Standards und -Protokollen läuft/laufen. Als nicht einschränkende Beispiele umfasst ein interaktiver Medienfluss, der einen interaktiven WebRTC-Fluss bildet, möglicherweise einen Echtzeitaudiostream und/oder einen Echtzeitvideostream oder andere Echtzeitmedien- oder -datenstreams. Daten und/oder Medien, die einen interaktiven WebRTC-Fluss umfassen, können hierin gemeinsam als „Inhalt“ bezeichnet werden.
  • Zu Zwecken der Veranschaulichung ist ein interaktiver WebRTC-Fluss 18 in 1 als zwischen der Computereinrichtung 14 und einer Computereinrichtung 20 laufend gezeigt, und ein interaktiver WebRTC-Fluss 22 ist als zwischen der Computereinrichtung 14 und einer Computereinrichtung 24 laufend gezeigt. Es versteht sich, dass die Computereinrichtungen 14, 20 und 24 sich alle innerhalb desselben öffentlichen oder privaten Netzes befinden können oder sich innerhalb separater, kommunikativ gekoppelter öffentlicher oder privater Netze befinden können. Einige Ausführungsformen des interaktiven Kommunikationssystems 10 von 1 können vorsehen, dass jede der Computereinrichtungen 14, 20 und 24 eine beliebige Computereinrichtung mit Netzkommunikationsfähigkeiten sein kann, etwa ein Smartphone, ein Tabletcomputer, eine dedizierte Web-Appliance, ein Medienserver, ein Desktop- oder ein Server-Computer oder eine speziell angefertigte Kommunikationseinrichtung, wobei es sich um nicht einschränkende Beispiele handelt. Die Computereinrichtungen 14, 20 und 24 beinhalten Kommunikationsschnittstellen 26, 28 bzw. 30 zum Verbinden der Computereinrichtungen 14, 20 und 24 mit einem oder mehreren öffentlichen und/oder privaten Netzen. In einigen Ausführungsformen können die Elemente der Computereinrichtungen 14, 20 und 24 über mehr als eine Computereinrichtung 14, 20, 24 verteilt sein.
  • Die Computereinrichtungen 20 und 24 von 1 beinhalten WebRTC-Clients 32 bzw. 34. Jeder der WebRTC-Clients 32 und 34 ist möglicherweise eine WebRTC-fähige Webbrowseranwendung, eine dedizierte Kommunikationsanwendung, eine mobile Anwendung oder eine schnittstellenlose Anwendung wie eine Daemon- oder Dienstanwendung, wobei es sich um nicht einschränkende Beispiele handelt. Die WebRTC-Clients 32 und 34 implementieren die Protokolle, die Codecs und die Anwendungsprogrammierschnittstellen (APIs), die zum Bereitstellen interaktiver Echtzeit-WebRTC-Sitzungen zwischen den Computereinrichtungen 20 bzw. 24 und der Computereinrichtung 14 nötig sind.
  • Wie in 1 ersichtlich, ist die Computereinrichtung 20 kommunikativ an eine Audioeingabeeinrichtung 36 (z. B. ein Mikrofon) zum Empfangen von Audioeingaben und eine Audioausgabeeinrichtung 38 (zum Beispiel Lautsprecher oder Kopfhörer) zum Generieren von Audioausgaben gekoppelt. Die Computereinrichtung 20 ist weiter kommunikativ an eine Videoeingabeeinrichtung 40 (etwa eine Kamera, eine Webcam oder eine andere Videoquelle) zum Empfangen von Videoeingaben und eine Videoausgabeeinrichtung 42 (z. B. eine Anzeige) zum Anzeigen von Videoausgaben gekoppelt. Desgleichen ist die Computereinrichtung 24 kommunikativ an eine Audioeingabeeinrichtung 44, eine Audioausgabeeinrichtung 46, eine Videoeingabeeinrichtung 48 und eine Videoausgabeeinrichtung 50 gekoppelt. Die Audioeingabeeinrichtungen 36 und 44, die Audioausgabeeinrichtungen 38 und 46, die Videoeingabeeinrichtungen 40 und 48 und/oder die Videoausgabeeinrichtungen 42 und 50 können in die jeweiligen Computereinrichtungen 20 und 24 integriert sein, und/oder sie können Peripheriegeräte und/oder virtuelle Einrichtungen sein, die kommunikativ an die jeweiligen Computereinrichtungen 20 und 24 gekoppelt sind. In einigen Ausführungsformen können die Computereinrichtungen 20 und/oder 24 kommunikativ an mehr oder weniger Einrichtungen gekoppelt sein als in 1 veranschaulicht.
  • Um eine interaktive WebRTC-Sitzung herzustellen, laden der WebRTC-Client 32 und der WebRTC-Client 34 eine WebRTC-Webanwendung (nicht gezeigt) von einem WebRTC-Anwendungsanbieter 52 des WebRTC-Servers 12 über Hyper-Text-Transfer-Protocol(HTTP)/HyperText-Transfer-Protocol-Secure(HTTPS)-Verbindungen 54 und 56 herunter. In einigen Ausführungsformen umfasst die WebRTC-Webanwendung möglicherweise eine HTML5/JavaScript-Webanwendung, die unter Nutzung von HTML5 ein Rich User Interface bereitstellt, und JavaScript zum Handhaben von Benutzereingaben und zum Kommunizieren mit dem WebRTC-Anwendungsanbieter 52 nutzt. Der WebRTC-Client 32 und der WebRTC-Client 34 nehmen dann einen WebRTC-Angebot-Antwort-Austausch auf, bei dem sie WebRTC-Sitzungsbeschreibungsobjekte (nicht gezeigt) über den WebRTC-Anwendungsanbieter 52 austauschen. Die ausgetauschten WebRTC-Sitzungsbeschreibungsobjekte werden genutzt, um die Medientypen und -fähigkeiten für die gewünschte interaktive WebRTC-Sitzung zu bestimmen.
  • In einer typischen Peer-to-Peer-Architektur würde, sobald der WebRTC-Angebot-Antwort-Austausch abgeschlossen ist, ein interaktiver WebRTC-Fluss direkt zwischen dem WebRTC-Client 32 und dem WebRTC-Client 34 über eine Peerverbindung hergestellt. Jedoch ist, wie oben angemerkt, eine Peer-to-Peer-Architektur unter manchen Umständen möglicherweise nicht optimal. Beispielsweise kann eine Peer-to-Peer-Architektur veranlassen, dass Aufzeichnen oder Überwachen des interaktiven WebRTC-Flusses und/oder Angehen von Inkompatibilitäten zwischen dem WebRTC-Client 32 und dem WebRTC-Client 34 schwierig oder impraktikabel sind.
  • In diesem Zusammenhang werden virtuelle WebRTC-Agenten 58 und 60 vom virtuellen WebRTC-Agent-Manager 16 bereitgestellt. Im Beispiel von 1, wenn der WebRTC-Anwendungsanbieter 52 den WebRTC-Angebot-Antwort-Austausch von den WebRTC-Clients 32 und 34 empfängt, instanziiert der virtuelle WebRTC-Agent-Manager 16 die virtuellen WebRTC-Agenten 58 und 60, die den WebRTC-Clients 32 und 34 entsprechen. In einigen Ausführungsformen kann der virtuelle WebRTC-Agent-Manager 16 die virtuellen WebRTC-Agenten 58 und 60 instanziieren, indem er eine oder mehrere Instanzen eines WebRTC-Clients, etwa einen Webbrowser, auf der Computereinrichtung 14 startet. Einige Ausführungsformen können vorsehen, dass die virtuellen WebRTC-Agenten 58 und 60 innerhalb einer virtuellen Instanz eines Betriebssystems ausgeführt werden.
  • Nach der Instanziierung werden die virtuellen WebRTC-Agenten 58 und 60 vom virtuellen WebRTC-Agent-Manager 16 je dazu angewiesen, eine virtuelle WebRTC-Anwendung (nicht gezeigt) von einem Anbieter virtueller WebRTC-Anwendungen, 62, herunterzuladen. Einige Ausführungsformen können vorsehen, dass der Anbieter virtueller WebRTC-Anwendungen, 62, kommunikativ an den virtuellen WebRTC-Agent-Manager 16 gekoppelt ist. In einigen Ausführungsformen kann der Anbieter virtueller WebRTC-Anwendungen, 62, in den virtuellen WebRTC-Agent-Manager 16 und/oder den WebRTC-Anwendungsanbieter 52 integriert sein oder ansonsten ein Element des virtuellen WebRTC-Agent-Managers und/oder des WebRTC-Anwendungsanbieters bilden. Die virtuelle WebRTC-Anwendung beinhaltet Spezialbefehle zum Kommunizieren über eine Schnittstelle mit den WebRTC-APIs der virtuellen WebRTC-Agenten 58 und 60. Die virtuellen WebRTC-Agenten 58 und 60 können über die virtuelle WebRTC-Anwendung mit den WebRTC-Clients 32 bzw. 34 und mit dem virtuellen WebRTC-Agent-Manager 16 kommunizieren.
  • Der virtuelle WebRTC-Agent-Manager 16veranlasst, dass die virtuellen WebRTC-Agenten 58 und 60 die interaktiven WebRTC-Flüsse 18 und 22 zu den entsprechenden WebRTC-Clients 32 und 34 herstellen. Dabei können der virtuelle WebRTC-Agent-Manager 16 und/oder die virtuellen WebRTC-Agenten 58 und 60 die zwischen den WebRTC-Clients 32 und 34 übermittelten Daten modifizieren, um die Herstellung der interaktiven WebRTC-Flüsse 18 und 22 zu ermöglichen. Zum Beispiel lassen sich Daten, die auf den Ort und/oder die Identität der Endpunkte jedes der interaktiven WebRTC-Flüsse 18 und 22 bezogen sind, so modifizieren, dass die virtuellen WebRTC-Agenten 58 und 60 als Proxys für ihre entsprechenden WebRTC-Clients 32 und 34 fungieren können.
  • Der virtuelle WebRTC-Agent-Manager 16 verbindet dann die virtuellen WebRTC-Agenten 58 und 60 aufeinanderfolgend („Back-to-Back“) (d. h. der durch den interaktiven WebRTC-Fluss 18 des virtuellen WebRTC-Agenten 58 ausgegebene Inhalt wird als Eingabe in den interaktiven WebRTC-Fluss 22 des virtuellen WebRTC-Agenten 60 geleitet und umgekehrt). Um eine „Back-to-Back“-Verbindung zu realisieren, stellt der virtuelle WebRTC-Agent-Manager 16 einen virtuellen Audioempfänger 64 (Rx), einen virtuellen Audiosender (Tx) 66, einen virtuellen Videoempfänger (Rx) 68, einen virtuellen Videosender (Tx) 69, einen virtuellen Datenempfänger (Rx) 70 und einen virtuellen Datensender (Tx) 71 bereit, an die der virtuelle WebRTC-Agent 58 kommunikativ gekoppelt ist. Desgleichen ist der virtuelle WebRTC-Agent 60 kommunikativ an einen virtuellen Audioempfänger (Rx) 72, einen virtuellen Audiosender (Tx) 74, einen virtuellen Videoempfänger (Rx) 76, einen virtuellen Videosender (Tx) 77, einen virtuellen Datenempfänger (Rx) 78 und einen virtuellen Datensender (Tx) 79 gekoppelt, die vom virtuellen WebRTC-Agent-Manager 16 bereitgestellt werden. Wenn die interaktiven WebRTC-Flüsse 18 und 22 anfangen, leiten die virtuellen WebRTC-Agenten 58 und 60 Audiosignale, die aus den entsprechenden interaktiven WebRTC-Flüssen 18 und 22 empfangen werden, weiter an die virtuellen Audioempfänger 64 und 72. Die virtuellen WebRTC-Agenten 58 und 60 leiten auch Videosignale, die aus den entsprechenden interaktiven WebRTC-Flüssen 18 und 22 empfangen werden, weiter an die virtuellen Videoempfänger 68 und 76 und leiten Daten, die aus den entsprechenden interaktiven WebRTC-Flüssen 18 und 22 empfangen werden, weiter an die Datenempfänger 70 und 78.
  • Der virtuelle Audioempfänger 64, der kommunikativ an den virtuellen WebRTC-Agenten 58 gekoppelt ist, ist konfiguriert zum Leiten von Audiosignalen, die aus dem virtuellen WebRTC-Agenten 58 empfangen werden, an den virtuellen Audiosender 74, der kommunikativ an den virtuellen WebRTC-Agenten 60 gekoppelt ist. Der virtuelle Videoempfänger 68, der kommunikativ an den virtuellen WebRTC-Agenten 58 gekoppelt ist, ist konfiguriert zum Leiten von Videosignalen, die aus dem virtuellen WebRTC-Agenten 58 empfangen werden, an den virtuellen Videosender 77, der kommunikativ an den virtuellen WebRTC-Agenten 60 gekoppelt ist. Der virtuelle Datenempfänger 70, der kommunikativ an den virtuellen WebRTC-Agenten 58 gekoppelt ist, ist konfiguriert zum Leiten von Daten, die aus dem virtuellen WebRTC-Agenten 58 empfangen werden, an den virtuellen Datensender 79, der kommunikativ an den virtuellen WebRTC-Agenten 60 gekoppelt ist. Desgleichen ist der virtuelle Audioempfänger 72, der kommunikativ an den virtuellen WebRTC-Agenten 60 gekoppelt ist, konfiguriert zum Leiten von Audiosignalen, die aus dem virtuellen WebRTC-Agenten 60 empfangen werden, an den virtuellen Audiosender 66, der kommunikativ an den virtuellen WebRTC-Agenten 58 gekoppelt ist. Der virtuelle Videoempfänger 76, der kommunikativ an den virtuellen WebRTC-Agenten 60 gekoppelt ist, ist konfiguriert zum Leiten von Videosignalen, die aus dem virtuellen WebRTC-Agenten 60 empfangen werden, an den virtuellen Videosender 69, der kommunikativ an den virtuellen WebRTC-Agenten 58 gekoppelt ist. Der virtuelle Datenempfänger 78, der kommunikativ an den virtuellen WebRTC-Agenten 60 gekoppelt ist, ist konfiguriert zum Leiten von Daten, die aus dem virtuellen WebRTC-Agenten 60 empfangen werden, an den virtuellen Datensender 71, der kommunikativ an den virtuellen WebRTC-Agenten 60 gekoppelt ist.
  • Aus der Perspektive der WebRTC-Clients 32 und 34 scheint die resultierende interaktive WebRTC-Sitzung, die die interaktiven WebRTC-Flüsse 18 und 22 beinhaltet, sich nicht zu unterscheiden von einer interaktiven WebRTC-Sitzung, die über eine direkte Peerverbindung transportiert wird. Während der resultierenden interaktiven WebRTC-Sitzung kann der virtuelle WebRTC-Agent-Manager 16 Inhalt aus dem interaktiven WebRTC-Fluss 18 und/oder dem interaktiven WebRTC-Fluss 22 extrahieren, indem er auf eine Eingabe aus den virtuellen Audioempfängern 64 und/oder 72, den virtuellen Videoempfängern 68 und/oder 76 und/oder den virtuellen Datenempfängern 70 und/oder 78 zugreift. Der virtuelle WebRTC-Agent-Manager 16 kann auch Inhalt in den interaktiven WebRTC-Fluss 18 und/oder den interaktiven WebRTC-Fluss 22 einfügen, indem er eine Ausgabe aus den virtuellen Audiosendern 66 und/oder 74, den virtuellen Videosendern 70 und/oder 78 und/oder den virtuellen Datensendern 71 und 79 modifiziert. Daher können einige Ausführungsformen vorsehen, dass Inhalt aus dem interaktiven WebRTC-Fluss 18 und/oder dem interaktiven WebRTC-Fluss 22 extrahiert oder darin eingefügt werden kann. In einigen Ausführungsformen kann Inhalt aus dem interaktiven WebRTC-Fluss 18 und/oder dem interaktiven WebRTC-Fluss 22 vom virtuellen WebRTC-Agent-Manager 16 aufgezeichnet oder umgewandelt werden.
  • In einigen Ausführungsformen kann Inhalt aus dem interaktiven WebRTC-Fluss 18 und/oder dem interaktiven WebRTC-Fluss 22 optional an einen Funktionalitätsanbieter 80 geleitet oder von einem Funktionalitätsanbieter empfangen werden, wie durch den bidirektionalen Videofeed 82, den bidirektionalen Audiofeed 84 und den bidirektionalen Datenfeed 85 angegeben. Der Funktionalitätsanbieter 80 kann zusätzliche Medienverarbeitungsfunktionalität bereitstellen, etwa Aufzeichnen oder Umwandeln von Inhalt des interaktiven WebRTC-Flusses 18 und/oder des interaktiven WebRTC-Flusses 22. In einigen Ausführungsformen kann der Medienverarbeitungsfunktionalitätsanbieter 80 Inhalt, etwa Audio- oder Videoankündigungen, zur Einfügung in den interaktiven WebRTC-Fluss 18 und/oder den interaktiven WebRTC-Fluss 22 bereitstellen.
  • Im Beispiel von 1 werden die zwei virtuellen WebRTC-Agenten 58 und 60 vom virtuellen WebRTC-Agent-Manager 16 instanziiert. Dies kann unter Umständen nützlich sein, unter denen etwa der WebRTC-Client 32 und der WebRTC-Client 34 bekanntermaßen inkompatibel sind oder eine eingeschränkte Kompatibilität aufweisen. Als nicht einschränkendes Beispiel sind die WebRTC-Clients 32 und 34 möglicherweise Webbrowser mit unterschiedlichen Stufen von Support für die WebRTC-APIs. Um solche Inkompatibilitäten zu beheben, können der spezifische Clienttyp und/oder die spezifische Clientversion des WebRTC-Clients 32 und/oder des WebRTC-Clients 34 vom WebRTC-Anwendungsanbieter 52 und/oder vom virtuellen WebRTC-Agent-Manager 16 bestimmt werden. In einigen Ausführungsformen lassen sich der Clienttyp und/oder die Clientversion des WebRTC-Clients 32 und/oder des WebRTC-Clients 34 basierend auf Daten, die als Teil eines WebRTC-Angebot-Antwort-Austausches, eines Abfrage-Rückmeldung-Austausches zwischen dem virtuellen WebRTC-Agent-Manager 16 und dem WebRTC-Client 32 und/oder dem WebRTC-Client 34 empfangen werden, einem HTTP-Kopf oder anderen vom WebRTC-Client 32 und/oder vom WebRTC-Client 34 bereitgestellten Daten bestimmen. Der virtuelle WebRTC-Agent-Manager 16 kann dann die virtuellen WebRTC-Agenten 58 und 60 mit einem Clienttyp und/oder einer Clientversion instanziieren, die dem Clienttyp und/oder der Clientversion der WebRTC-Clients 32 bzw. 34 entsprechen. Da jeder der WebRTC-Clients 32 und 34 mit einem virtuellen WebRTC-Agenten desselben Typs und derselben Version direkt kommuniziert, lassen sich Inkompatibilitäten zwischen den WebRTC-Clients 32 und 34 beseitigen.
  • Umgekehrt kann der virtuelle WebRTC-Agent-Manager 16 in Situationen, in denen die WebRTC-Clients 32 und 34 bekanntermaßen kompatibel sind, eine interaktive WebRTC-Sitzung zwischen den WebRTC-Clients 32 und 34 unter Nutzung eines einzigen virtuellen WebRTC-Agenten bereitstellen. Durch Bereitstellen eines einzigen virtuellen WebRTC-Agenten können Rechenressourcen der Computereinrichtung 14 eingespart und die Skalierbarkeit des WebRTC-Servers 12 erhöht werden. Diese Ausführungsform wird hinsichtlich 4 unten detaillierter erörtert.
  • Um beispielhafte Abläufe des WebRTC-Anwendungsanbieters 52 und des virtuellen WebRTC-Agent-Managers 16 von 1 zum Bereitstellen virtueller Back-to-Back-WebRTC-Agenten allgemein zu beschreiben, ist 2 bereitgestellt. Der Klarheit halber wird beim Beschreiben von 2 auf Elemente von 1 Bezug genommen. Im Beispiel von 2 beginnen die Abläufe damit, dass der WebRTC-Anwendungsanbieter 52 einen WebRTC-Angebot-Antwort-Austausch zwischen einem ersten WebRTC-Client 32 und einem zweiten WebRTC-Client 34 empfängt (Block 86). In einigen Ausführungsformen beinhaltet die WebRTC-Angebot-Antwort einen Austausch von WebRTC-Sitzungsbeschreibungsobjekten, die genutzt werden können, um die Medientypen und -fähigkeiten des ersten WebRTC-Clients 32 und des zweiten WebRTC-Clients 34 für die gewünschte interaktive WebRTC-Sitzung zu bestimmen.
  • Der virtuelle WebRTC-Agent-Manager 16 instanziiert als Nächstes einen oder mehrere virtuelle WebRTC-Agenten 58 und 60 (Block 88). Einige Ausführungsformen können vorsehen, dass ein einziger virtueller WebRTC-Agent instanziiert wird, falls bestimmt wird, dass der erste WebRTC-Client 32 und der zweite WebRTC-Client 34 kompatibel sind. In einigen Ausführungsformen kann sowohl für den ersten WebRTC-Client 32 als auch für den zweiten WebRTC-Client 34 ein virtueller WebRTC-Agent hergestellt werden, falls bestimmt wird, dass der erste WebRTC-Client 32 und der zweite WebRTC-Client 34 inkompatibel sind. Als nicht einschränkendes Beispiel kann der virtuelle WebRTC-Agent-Manager 16 den einen oder die mehreren virtuellen WebRTC-Agenten 58 und 60 instanziieren, indem er eine oder mehrere Instanzen eines WebRTC-Clients, etwa einen Webbrowser, auf der Computereinrichtung 14 startet.
  • Der virtuelle WebRTC-Agent-Manager 16 stellt dann einen ersten interaktiven WebRTC-Fluss 18 zwischen dem ersten WebRTC-Client 32 und einem des einen oder der mehreren virtuellen WebRTC-Agenten (z. B. dem virtuellen WebRTC-Agenten 58) und einen zweiten interaktiven WebRTC-Fluss 22 zwischen dem zweiten WebRTC-Client 34 und einem des einen oder der mehreren virtuellen WebRTC-Agenten (z. B. dem virtuellen WebRTC-Agenten 60) her (Block 90). Gemäß einigen Ausführungsformen hierin können der virtuelle WebRTC-Agent-Manager 16 und/oder die virtuellen WebRTC-Agenten 58 und 60 die zwischen den WebRTC-Clients 32 und 34 übermittelten Daten modifizieren, um die Herstellung der interaktiven WebRTC-Flüsse 18 und 22 zu ermöglichen. Zum Beispiel lassen sich Daten bezüglich des Orts und/oder der Identität der Endpunkte jedes der interaktiven WebRTC-Flüsse 18 und 22 so modifizieren, dass die virtuellen WebRTC-Agenten 58 und 60 als Proxys für ihre entsprechenden WebRTC-Clients 32 und 34 fungieren können.
  • Der virtuelle WebRTC-Agent-Manager 16 leitet als Nächstes über den einen oder die mehreren virtuellen WebRTC-Agenten 58 und 60 einen Inhalt des ersten interaktiven WebRTC-Flusses 18 an den zweiten interaktiven WebRTC-Fluss 22 und einen Inhalt des zweiten interaktiven WebRTC-Flusses 22 an den ersten interaktiven WebRTC-Fluss 18 (Block 92). Daraus resultiert eine „Back-to-Back“-Verbindung zwischen dem einen oder den mehreren virtuellen WebRTC-Agenten 58 und 60. In einigen Ausführungsformen ist dies realisierbar durch die Nutzung virtueller Audioempfänger und -sender, virtueller Videoempfänger und -sender und virtueller Datenempfänger und -sender, die vom virtuellen WebRTC-Agent-Manager 16 bereitgestellt werden, wie in 1 veranschaulicht.
  • Um beispielhafte Kommunikationsflüsse während der Herstellung einer interaktiven WebRTC-Sitzung unter Nutzung der virtuellen WebRTC-Agenten 58 und 60 von 1 zu veranschaulichen, ist 3 bereitgestellt. In 3 sind der WebRTC-Client 32, der virtuelle WebRTC-Agent 58, der WebRTC-Server 12, der virtuelle WebRTC-Agent 60 und der WebRTC-Client 34 von 1 je durch vertikale gestrichelte Linien dargestellt. Es versteht sich, dass der WebRTC-Server 12 den WebRTC-Anwendungsanbieter 52 und den virtuellen WebRTC-Agent-Manager 16 beinhaltet, die der Klarheit halber in diesem Beispiel weggelassen sind. Es versteht sich für dieses Beispiel weiter, dass der WebRTC-Client 32 und der WebRTC-Client 34 je eine WebRTC-fähige Webanwendung, etwa eine HTML5/JavaScript-WebRTC-Anwendung, vom WebRTC-Server 12 heruntergeladen haben.
  • Wie in 3 ersichtlich, beginnt die Herstellung einer interaktiven WebRTC-Sitzung über die virtuellen WebRTC-Agenten 58 und 60 damit, dass der WebRTC-Client 34 ein Sitzungsbeschreibungsobjekt (SDP) an den WebRTC-Server 12 sendet (in diesem Beispiel über eine HTTPS-Verbindung). Das WebRTC-Sitzungsbeschreibungsobjekt wird als SDP-Objekt A bezeichnet und vom Pfeil 94 angegeben. Das SDP-Objekt A stellt das „Angebot“ bei einem WebRTC-Angebot-Antwort-Austausch dar und legt die Medientypen und -fähigkeiten fest, welche der WebRTC-Client 34 unterstützt und für die Nutzung bei der interaktiven WebRTC-Sitzung vorzieht.
  • Der WebRTC-Server 12 (d. h. der virtuelle WebRTC-Agent-Manager 16) instanziiert den virtuellen WebRTC-Agenten 60, der dem WebRTC-Client 34 entspricht, wie vom Pfeil 96 angegeben. In einigen Ausführungsformen lassen sich ein Clienttyp und/oder eine Clientversion des WebRTC-Clients 34 basierend auf dem SDP-Objekt A, einem Abfrage-Rückmeldung-Austausch zwischen dem WebRTC-Server 12 und dem WebRTC-Client 34, einem HTTP-Kopf oder anderen vom WebRTC-Client 34 bereitgestellten Daten bestimmen. Der virtuelle WebRTC-Agent 60 kann mit einem Clienttyp und/oder einer Clientversion, die bekanntermaßen mit dem WebRTC-Client 34 kompatibel sind, instanziiert werden. Der WebRTC-Server 12 leitet dann das SDP-Objekt A weiter an den WebRTC-Client 32, wie vom Pfeil 98 angegeben.
  • Nachdem der WebRTC-Client 32 das SDP-Objekt A vom WebRTC-Server 12 empfangen hat, sendet der WebRTC-Client 32 als Rückmeldung ein WebRTC-Sitzungsbeschreibungsobjekt, das als SDP-Objekt B bezeichnet wird, über HTTPS an den WebRTC-Server 12, wie vom Pfeil 100 angegeben. Das SDP-Objekt B stellt in diesem Beispiel die „Antwort“ beim WebRTC-Angebot-Antwort-Austausch dar. Der WebRTC-Server 12 (d. h. der virtuelle WebRTC-Agent-Manager 16) instanziiert dann den virtuellen WebRTC-Agenten 58, der dem WebRTC-Client 32 entspricht, wie vom Pfeil 102 angegeben. Einige Ausführungsformen können vorsehen, dass ein Clienttyp und/oder eine Clientversion des WebRTC-Clients 32 basierend auf dem SDP-Objekt B, einem Abfrage-Rückmeldung-Austausch zwischen dem virtuellen WebRTC-Agent-Manager 16 und dem WebRTC-Client 32, einem HTTP-Kopf oder anderen vom WebRTC-Client 32 bereitgestellten Daten bestimmt werden können. Der virtuelle WebRTC-Agent 58 kann mit einem Clienttyp und/oder einer Clientversion, die bekanntermaßen mit dem WebRTC-Client 32 kompatibel sind, instanziiert werden. Der WebRTC-Server 12 leitet wiederum das SDP-Objekt B weiter an den WebRTC-Client 34, wie vom Pfeil 104 gezeigt.
  • Weiter mit Bezug auf 3 beginnen der WebRTC-Client 32 und der WebRTC-Client 34 dann mit „Hole Punching“, um den besten Weg zur Herstellung direkter Kommunikationen mit den virtuellen WebRTC-Agenten 58 bzw. 60 zu bestimmen. Dies wird durch die bidirektionalen Pfeile 106 und 108 in 3 angegeben. Hole Punching ist eine Technik, die oft Protokolle wie Interactive Connectivity Establishment (ICE) nutzt, über die beide WebRTC-Clients 32 und 34 eine Verbindung zu einem keinen Einschränkungen unterliegenden Drittanbieterserver (nicht gezeigt) herstellen, der externe und interne Adressinformationen zur Nutzung bei direkten Kommunikationen freigibt.
  • Sobald das von den Pfeilen 106 und 108 angegebene ICE Hole Punching erfolgreich ist, beginnen der WebRTC-Client 32 und der WebRTC-Client 34 mit Schlüsselaushandlungen, um eine sichere Peerverbindung herzustellen. In einer typischen Peer-to-Peer-Architektur erfolgen die Schlüsselaushandlungen direkt zwischen dem WebRTC-Client 32 und dem WebRTC-Client 34. Jedoch verhandelt in diesem Beispiel jeder der WebRTC-Clients 32 und 34 mit seinem entsprechenden virtuellen WebRTC-Agenten 58 und 60, wie von den bidirektionalen Pfeilen 110 und 111 angegeben. Falls Schlüsselaushandlungen erfolgreich abgeschlossen werden, werden zwischen dem WebRTC-Client 32 und dem virtuellen WebRTC-Agenten 58 und zwischen dem WebRTC-Client 34 und dem virtuellen WebRTC-Agenten 60 Peerverbindungen hergestellt, wie von den bidirektionalen Pfeilen 112 und 113 angegeben.
  • Nach dem Herstellen von Peerverbindungen mit ihren entsprechenden virtuellen WebRTC-Agenten 58 und 60 beginnen der WebRTC-Client 32 und der WebRTC-Client 34, WebRTC-Medien- und/oder -Datenflüsse auszutauschen. Wie in 3 ersichtlich, laufen die WebRTC-Medien- und/oder -Datenflüsse von den WebRTC-Clients 32 und 34 zu ihren jeweiligen virtuellen WebRTC-Agenten 58 und 60, wie von den bidirektionalen Pfeilen 114 und 116 angegeben. Die virtuellen WebRTC-Agenten 58 und 60 senden dann den Inhalt der interaktiven WebRTC-Flüsse 18 und 22 durch den WebRTC-Server 12, wie von den bidirektionalen Pfeilen 118 und 120 gezeigt. Auf diese Weise kann der WebRTC-Server 12 einen Inhalt von interaktiven WebRTC-Flüssen 18 und 22 zwischen den WebRTC-Clients 32 und 34 selektiv steuern, überwachen und/oder modifizieren.
  • Wie oben hinsichtlich 1 angemerkt, kann der virtuelle WebRTC-Agent-Manager 16 eine interaktive WebRTC-Sitzung zwischen den WebRTC-Clients 32 und 34 unter Nutzung eines einzigen virtuellen WebRTC-Agenten bereitstellen, falls die WebRTC-Clients 32 und 34 bekanntermaßen kompatibel sind. Um diese Ausführungsform zu veranschaulichen, ist 4 bereitgestellt. In 4 ist das beispielhafte interaktive Kommunikationssystem 10 von 1 gezeigt. In diesem Beispiel wird jedoch angenommen, dass die WebRTC-Clients 32 und 34 bekanntermaßen kompatibel sind. Beispielsweise sind die WebRTC-Clients 32 und 34 möglicherweise WebRTC-fähige Webbrowser desselben Typs und derselben Version. Daher instanziiert der virtuelle WebRTC-Agent-Manager 16 in der Ausführungsform von 4 einen einzigen virtuellen WebRTC-Agenten 122, mit dem beide WebRTC-Clients 32 und 34 verbunden sein können. Der virtuelle WebRTC-Agent 122 lädt eine virtuelle WebRTC-Anwendung (nicht gezeigt) vom Anbieter virtueller WebRTC-Anwendungen, 62, herunter. Die virtuelle WebRTC-Anwendung kann Spezialbefehle enthalten, um zu ermöglichen, dass der virtuelle WebRTC-Agent 122 mit den WebRTC-Clients 32 und 34 und mit dem virtuellen WebRTC-Agent-Manager 16 kommuniziert. In einigen Ausführungsformen kann die virtuelle WebRTC-Anwendung ermöglichen, dass der virtuelle WebRTC-Agent-Manager 16 steuert, wie der virtuelle WebRTC-Agent 122 Audio- und/oder Videodaten an die WebRTC-Clients 32 und 34 leitet.
  • Im Beispiel von 4 veranlasst der virtuelle WebRTC-Agent-Manager 16, dass der virtuelle WebRTC-Agent 122 die interaktiven WebRTC-Flüsse 18 und 22 zu den WebRTC-Clients 32 und 34 herstellt. Der virtuelle WebRTC-Agent 122 kann dann seine integrierten WebRTC-APIs verwenden, um einen Inhalt des interaktiven WebRTC-Flusses 18 an den interaktiven WebRTC-Fluss 22 zu leiten, und umgekehrt. Der virtuelle WebRTC-Agent 122 kann auch einen Inhalt des interaktiven WebRTC-Flusses 18 und/oder des interaktiven WebRTC-Flusses 22 an den virtuellen WebRTC-Agent-Manager 16 leiten. Während der resultierenden interaktiven WebRTC-Sitzung kann der virtuelle WebRTC-Agent-Manager 16 Inhalt aus dem interaktiven WebRTC-Fluss 18 und/oder dem interaktiven WebRTC-Fluss 22 extrahieren, indem er auf vom virtuellen WebRTC-Agenten 122 gesendeten Inhalt zugreift. Zum Beispiel kann Inhalt aus dem interaktiven WebRTC-Fluss 18 und/oder dem interaktiven WebRTC-Fluss 22 vom virtuellen WebRTC-Agent-Manager 16 oder vom Funktionalitätsanbieter 80 aufgezeichnet oder umgewandelt werden. Der virtuelle WebRTC-Agent-Manager 16 kann den virtuellen WebRTC-Agenten 122 auch dazu anweisen, Inhalt in den interaktiven WebRTC-Fluss 18 und/oder den interaktiven WebRTC-Fluss 22 einzufügen.
  • Die 5A-5C sind bereitgestellt, um einen beispielhaften verallgemeinerten Prozess, bei dem der WebRTC-Anwendungsanbieter 52 und der virtuelle WebRTC-Agent-Manager 16 von 1 virtuelle Back-to-Back-WebRTC-Agenten bereitstellen, detaillierter zu veranschaulichen. Zu Veranschaulichungszwecken beziehen sich die 5A-5C auf Elemente des beispielhaften interaktiven Kommunikationssystems 10 der 1 und 4. 5A zeigt detailliert Abläufe zum Bestimmen der Kompatibilität der WebRTC-Clients 32, 34, die versuchen, eine interaktive WebRTC-Sitzung herzustellen, und zum Bereitstellen eines virtuellen WebRTC-Agenten 122, falls die WebRTC-Clients 32, 34 kompatibel sind. 5B zeigt Abläufe zum Bereitstellen mehrerer virtueller WebRTC-Agenten 58, 60 in einer Situation, in der die WebRTC-Clients 32, 34 nicht kompatibel sind, oder falls aus irgendeinem anderen Grund mehrere virtuelle Clients wünschenswert sind. 5C veranschaulicht Abläufe zum Bereitstellen von zusätzlicher Funktionalität, die Extrahieren von Inhalt aus, Einfügen von Inhalt in, Aufzeichnen und/oder Umwandeln des Inhalts der interaktiven WebRTC-Flüsse 18, 22 beinhalten.
  • In 5A beginnt die Verarbeitung damit, dass der WebRTC-Anwendungsanbieter 52 einen WebRTC-Angebot-Antwort-Austausch zwischen einem ersten WebRTC-Client 32 und einem zweiten WebRTC-Client 34 empfängt (Block 124). Der virtuelle WebRTC-Agent-Manager 16 bestimmt, ob der erste WebRTC-Client 32 und der zweite WebRTC-Client 34 bekanntermaßen kompatibel sind, basierend auf dem WebRTC-Angebot-Antwort-Austausch (Block 126). In einigen Ausführungsformen beinhaltet Bestimmen einer Kompatibilität des ersten WebRTC-Clients 32 und des zweiten WebRTC-Clients 34 möglicherweise Vergleichen eines Clienttyps und/oder einer Clientversion sowohl des ersten WebRTC-Clients 32 als auch des zweiten WebRTC-Clients 34.
  • Falls bestimmt wird, dass der erste WebRTC-Client 32 und der zweite WebRTC-Client 34 kompatibel sind, kann der virtuelle WebRTC-Agent-Manager 16 eine interaktive WebRTC-Sitzung zwischen dem ersten WebRTC-Client 32 und dem zweiten WebRTC-Client 34 unter Nutzung eines einzigen virtuellen WebRTC-Agenten 122 ermöglichen, wie oben hinsichtlich 4 erörtert. Demgemäß instanziiert der virtuelle WebRTC-Agent-Manager 16 einen virtuellen WebRTC-Agenten 122, der sowohl mit dem ersten WebRTC-Client 32 als auch mit dem zweiten WebRTC-Client 34 kompatibel ist (Block 128). Als nicht einschränkendes Beispiel kann der virtuelle WebRTC-Agent-Manager 16 einen WebRTC-Client desselben Clienttyps und/oder derselben Clientversion ausführen wie der erste WebRTC-Client 32 und/oder der zweite WebRTC-Client 34. Der virtuelle WebRTC-Agent-Manager 16 stellt dann einen ersten interaktiven WebRTC-Fluss 18 zwischen dem ersten WebRTC-Client 32 und dem virtuellen WebRTC-Agenten 122 her (Block 130). Der virtuelle WebRTC-Agent-Manager 16 stellt auch einen zweiten interaktiven WebRTC-Fluss 22 zwischen dem zweiten WebRTC-Client 34 und dem virtuellen WebRTC-Agenten 122 her (Block 132). Der virtuelle WebRTC-Agent-Manager 16 leitet über den virtuellen WebRTC-Agenten 122 einen Inhalt des ersten interaktiven WebRTC-Flusses 18 an den zweiten interaktiven WebRTC-Fluss 22 und einen Inhalt des zweiten interaktiven WebRTC-Flusses 22 an den ersten interaktiven WebRTC-Fluss 18 (Block 134). Auf diese Weise kann der virtuelle WebRTC-Agent 122 eine interaktive WebRTC-Sitzung zwischen den WebRTC-Clients 32 und 34 ermöglichen, während die Nutzung von Rechnerressourcen minimiert wird. Die Verarbeitung wird dann bei Block 136 von 5C wieder aufgenommen.
  • Falls der virtuelle WebRTC-Agent-Manager 16 unter erneuter Bezugnahme auf den Entscheidungsblock 126 von 5A bestimmt, dass der erste WebRTC-Client 32 und der zweite WebRTC-Client 34 nicht vollständig kompatibel sind, kann der virtuelle WebRTC-Agent-Manager 16 eine interaktive WebRTC-Sitzung zwischen dem ersten WebRTC-Client 32 und dem zweiten WebRTC-Client 34 unter Nutzung von zwei virtuellen WebRTC-Agenten 58 und 60 ermöglichen, wie oben hinsichtlich 1 erörtert. Demgemäß wird die Verarbeitung bei Block 138 von 5B wieder aufgenommen. Der virtuelle WebRTC-Agent-Manager 16 instanziiert den ersten virtuellen WebRTC-Agenten 58, der mit dem ersten WebRTC-Client 32 kompatibel ist (Block 138). Der virtuelle WebRTC-Agent-Manager 16 instanziiert auch den zweiten virtuellen WebRTC-Agenten 60, der mit dem zweiten WebRTC-Client 34 kompatibel ist (Block 140). In einigen Ausführungsformen weisen die virtuellen WebRTC-Agenten 58 und 60 denselben Clienttyp und/oder dieselbe Clientversion auf wie die WebRTC-Clients 32 bzw. 34.
  • Der virtuelle WebRTC-Agent-Manager 16 stellt dann einen ersten interaktiven WebRTC-Fluss 18 zwischen dem ersten WebRTC-Client 32 und dem ersten virtuellen WebRTC-Agenten 58 her (Block 142). Der virtuelle WebRTC-Agent-Manager 16 stellt auch einen zweiten interaktiven WebRTC-Fluss 22 zwischen dem zweiten WebRTC-Client 34 und dem zweiten virtuellen WebRTC-Agenten 60 her (Block 144). Da sowohl der erste WebRTC-Client 32 als auch der zweite WebRTC-Client 34 direkt mit ihren jeweiligen kompatiblen virtuellen WebRTC-Agenten 58 und 60 interagieren, sollten hinsichtlich der interaktiven WebRTC-Flüsse 18 und 22 keine Kompatibilitätsprobleme auftreten.
  • Der virtuelle WebRTC-Agent-Manager 16 leitet dann über den ersten virtuellen WebRTC-Agenten 58 und den zweiten virtuellen WebRTC-Agenten 60 einen Inhalt des ersten interaktiven WebRTC-Flusses 18 an den zweiten interaktiven WebRTC-Fluss 22 und einen Inhalt des zweiten interaktiven WebRTC-Flusses 22 an den ersten interaktiven WebRTC-Fluss 18 (Block 146). Auf diese Weise werden die virtuellen WebRTC-Agenten 58 und 60 aufeinanderfolgend („Back-to-Back“) verbunden, sodass die Audio-, Video- und/oder Datenausgaben des virtuellen WebRTC-Agenten 58 Eingaben in den virtuellen WebRTC-Agenten 60 werden und umgekehrt. Die Verarbeitung wird dann bei Block 136 von 5C wieder aufgenommen.
  • Unter jetziger Bezugnahme auf 5C kann der virtuelle WebRTC-Agent-Manager 16 an dieser Stelle auf die Inhalte des ersten interaktiven WebRTC-Flusses 18 und des zweiten interaktiven WebRTC-Flusses 22 zugreifen und kann zusätzliche Medienverarbeitungsfunktionalität bereitstellen. Zum Beispiel kann der virtuelle WebRTC-Agent-Manager 16 in einigen Ausführungsformen Inhalt aus dem ersten interaktiven WebRTC-Fluss 18, dem zweiten interaktiven WebRTC-Fluss 22 oder einer Kombination davon extrahieren (Block 136). Einige Ausführungsformen können vorsehen, dass der virtuelle WebRTC-Agent-Manager 16 Inhalt in den ersten interaktiven WebRTC-Fluss 18, den zweiten interaktiven WebRTC-Fluss 22 oder eine Kombination davon einfügen kann (Block 148). Zum Beispiel kann der virtuelle WebRTC-Agent-Manager 16 zusätzliches Audio, zusätzliches Video und/oder zusätzliche Daten in die interaktiven WebRTC-Flüsse 18 und/oder 22 einfügen. Gemäß einigen Ausführungsformen kann der virtuelle WebRTC-Agent-Manager 16 einen Inhalt des ersten interaktiven WebRTC-Flusses 18, einen Inhalt des zweiten interaktiven WebRTC-Flusses 22 oder eine Kombination davon aufzeichnen (Block 150). In einigen Ausführungsformen kann der virtuelle WebRTC-Agent-Manager 16 einen Inhalt des ersten interaktiven WebRTC-Flusses 18, einen Inhalt des zweiten interaktiven WebRTC-Flusses 22 oder eine Kombination davon umwandeln (Block 152).
  • Der virtuelle WebRTC-Agent-Manager 16 bestimmt dann, ob der erste interaktive WebRTC-Fluss 18 oder der zweite interaktive WebRTC-Fluss 22 beendet wurde (Block 154). Falls sowohl der erste interaktive WebRTC-Fluss 18 als auch der zweite interaktive WebRTC-Fluss 22 noch aktiv sind, wird bei der Verarbeitung zu Block 136 von 5C zurückgekehrt. Ansonsten beendet der virtuelle WebRTC-Agent-Manager 16 gegebenenfalls den verbleibenden aktiven interaktiven WebRTC-Fluss 18 oder 22 (Block 156).
  • 6 stellt eine schematische Diagrammdarstellung eines Verarbeitungssystems 158 in der beispielhaften Form eines beispielhaften Computersystems 160 bereit, das angepasst ist, um Befehle zum Durchführen der hierin beschriebenen Funktionen auszuführen. In einigen Ausführungsformen kann das Verarbeitungssystem 158 Befehle zum Durchführen der Funktionen des WebRTC-Anwendungsanbieters 52 und des virtuellen WebRTC-Agent-Managers 16 von 1 ausführen. In diesem Zusammenhang kann das Verarbeitungssystem 158 das Computersystem 160 umfassen, innerhalb dessen ein Satz von Befehlen zum Veranlassen, dass das Verarbeitungssystem 158 eine beliebige oder beliebige mehrere der hierin erörterten Methodiken durchführt, ausgeführt werden kann. Das Verarbeitungssystem 158 ist möglicherweise mit anderen Maschinen in einem Local Area Network (LAN), einem Intranet, einem Extranet oder dem Internet verbunden (etwa vernetzt, wobei es sich um ein nicht einschränkendes Beispiel handelt). Das Verarbeitungssystem 158 wird möglicherweise in einer Client-Server-Netzumgebung oder als gleichrangige Maschine in der Umgebung eines Peer-to-Peer- (oder dezentralen) Netzes betrieben. Auch wenn nur ein einziges Verarbeitungssystem 158 veranschaulicht wird, können die Begriffe „Controller“ und „Server“ auch so aufgefasst werden, dass sie eine beliebige Gruppe von Maschinen beinhalten, die individuell oder gemeinsam einen Satz (oder mehrere Sätze) von Befehlen zum Durchführen einer beliebigen oder beliebiger mehrerer der hierin erörterten Methodiken ausführen. Das Verarbeitungssystem 158 ist möglicherweise ein Server, ein Personal Computer, ein Desktop-Computer, ein Laptop-Computer, ein Personal Digital Assistant (PDA), ein Computerpad, eine mobile Einrichtung oder eine beliebige andere Einrichtung und verkörpert möglicherweise, wobei es sich um nicht einschränkende Beispiele handelt, einen Server oder einen Computer eines Benutzers.
  • Das beispielhafte Computersystem 160 beinhaltet eine Verarbeitungseinrichtung oder einen Prozessor 162, einen Hauptspeicher 164 (ein Read Only Memory (ROM), einen Flashspeicher, einen dynamischen Schreib-Lese-Speicher (DRAM) wie ein synchrones DRAM (SDRAM) etc. als nicht einschränkende Beispiele) und einen statischen Speicher 166 (einen Flashspeicher, einen statischen Schreib-Lese-Speicher (SRAM) etc. als nicht einschränkende Beispiele), die möglicherweise über einen Bus 168 miteinander kommunizieren. Alternativ ist die Verarbeitungseinrichtung 162 möglicherweise direkt oder über irgendein anderes Konnektivitätsmittel mit dem Hauptspeicher 164 und/oder dem statischen Speicher 166 verbunden.
  • Die Verarbeitungseinrichtung 162 stellt eine oder mehrere Verarbeitungseinrichtungen wie einen Mikroprozessor, eine Zentralverarbeitungseinheit (CPU) oder dergleichen dar. Insbesondere ist die Verarbeitungseinrichtung 162 möglicherweise ein Mikroprozessor für Rechenvorgänge mit komplexem Befehlssatz (CISC), ein Mikroprozessor für Rechenvorgänge mit reduziertem Befehlssatz (RISC), ein Mikroprozessor für überlange Befehlswörter (VLIW), ein Prozessor, der andere Befehlssätze implementiert, oder ein Prozessor, der eine Kombination von Befehlssätzen implementiert. Die Verarbeitungseinrichtung 162 ist konfiguriert, um Verarbeitungslogik in Befehlen 170 und/oder gecachten Befehlen 172 zum Durchführen der hierin erörterten Abläufe und Schritte auszuführen.
  • Das Computersystem 160 beinhaltet weiter möglicherweise eine Kommunikationsschnittstelle in Form einer Netzschnittstelleneinrichtung 174. Es kann auch einen Eingang 176 zum Empfangen von Eingaben und Auswahloptionen, die bei der Ausführung der Befehle 170, 172 an das Computersystem 160 zu kommunizieren sind, beinhalten oder nicht. Es kann auch einen Ausgang 178, der unter anderem (eine) Anzeige(n) 180 beinhaltet, beinhalten oder nicht. Die Anzeige(n) 180 ist/sind möglicherweise eine Videoanzeigeeinheit (eine Flüssigkristallanzeige (LCD) oder eine Kathodenstrahlröhre (CRT) als nicht einschränkende Beispiele), eine Einrichtung für alphanumerische Eingaben (eine Tastatur als nicht einschränkendes Beispiel), eine Cursorsteuereinrichtung (eine Maus als nicht einschränkendes Beispiel) und/oder eine Touchscreen-Einrichtung (eine Tablet-Eingabeeinrichtung oder ein Bildschirm als nicht einschränkende Beispiele).
  • Das Computersystem 160 beinhaltet möglicherweise eine oder auch keine Datenablageeinrichtung 182, welche die Nutzung eines Laufwerks/von Laufwerken 184 beinhaltet, um die hierin beschriebenen Funktionen in einem computerlesbaren Medium 186 abzulegen, auf dem ein oder mehrere Sätze von Befehlen 188 (z. B. Software) abgelegt sind, die eine beliebige oder beliebige mehrere der hierin beschriebenen Methodiken oder Funktionen verkörpern. Die Funktionen können die Verfahren und/oder andere Funktionen des Verarbeitungssystems 158, eine Teilnehmerbenutzereinrichtung und/oder einen Lizenzierungsserver beinhalten, wobei es sich um nicht einschränkende Beispiele handelt. Der eine oder die mehreren Sätze von Befehlen 188 können während ihrer Ausführung durch das Computersystem 160 auch vollständig oder mindestens teilweise innerhalb des Hauptspeichers 164 und/oder innerhalb der Verarbeitungseinrichtung 162 liegen. Der Hauptspeicher 164 und die Verarbeitungseinrichtung 162 bilden ebenfalls für Maschinen zugängliche Ablagemedien. Die Befehle 170, 172 und/oder 188 können weiter über ein Netz 190 über die Netzschnittstelleneinrichtung 174 gesendet oder empfangen werden. Das Netz 190 kann ein Intra-Netz oder ein Inter-Netz sein.
  • Wenngleich das computerlesbare Medium 186 in einer beispielhaften Ausführungsform als einzelnes Medium gezeigt ist, ist der Begriff „für Maschinen zugängliches Ablagemedium“ so aufzufassen, dass er ein einzelnes Medium oder mehrere Medien beinhaltet (eine zentrale oder eine dezentrale Datenbank und/oder assoziierte Cache-Speicher und Server als nicht einschränkende Beispiele), die den einen oder die mehreren Sätze von Befehlen 188 ablegen. Der Begriff „für Maschinen zugängliches Ablagemedium“ ist auch so aufzufassen, dass er beliebige Medien beinhaltet, die fähig sind, einen Satz von Befehlen 170, 172 und/oder 188 zur Ausführung durch die Maschine abzulegen, zu codieren oder zu übermitteln, und die veranlassen, dass die Maschine eine beliebige oder beliebige mehrere der hierin offenbarten Methodiken durchführt. Der Begriff „für Maschinen zugängliches Ablagemedium“ ist demgemäß so aufzufassen, dass er Halbleiterspeicher, optische und magnetische Medien und Trägerwellensignale beinhaltet, jedoch nicht darauf beschränkt ist.
  • Die hierin offenbarten Ausführungsformen sind möglicherweise in Hardware und in Befehlen, die in Hardware abgelegt sind, ausgeführt und liegen möglicherweise, wobei es sich um nicht einschränkende Beispiele handelt, in einem Random Access Memory (RAM), einem Flashspeicher, einem Read Only Memory (ROM), einem Electrically Programmable ROM (EPROM), einem Electrically Erasable Programmable ROM (EEPROM), in Registern, auf einer Festplatte, einer Wechselfestplatte, einer CD-ROM oder einem computerlesbaren Medium in irgendeiner anderen aus dem Stand der Technik bekannten Form vor. Ein beispielhaftes Ablagemedium ist an den Prozessor gekoppelt, sodass der Prozessor Informationen auf dem Ablagemedium lesen und das Ablagemedium mit Informationen beschreiben kann. Alternativ kann das Ablagemedium fest in den Prozessor integriert sein. Der Prozessor und das Ablagemedium können sich in einer anwendungsspezifischen integrierten Schaltung (ASIC) befinden. Die ASIC kann sich in einem Remote-Endgerät befinden. Alternativ können sich der Prozessor und das Ablagemedium als separate Komponenten in einem Remote-Endgerät, in einer Basisstation oder auf einem Server befinden.
  • Es wird auch angemerkt, dass die in beliebigen der beispielhaften Ausführungsformen hierin beschriebenen Ablaufschritte beschrieben werden, um Beispiele bereitzustellen und eine Erörterung zu ermöglichen. Die beschriebenen Abläufe sind auch in zahlreichen anderen statt nur in den veranschaulichten Reihenfolgen durchführbar. Des Weiteren können Abläufe, die als einzelner Ablaufschritt beschrieben werden, in der Praxis auch in etlichen unterschiedlichen Schritten durchgeführt werden. Zusätzlich können ein oder mehrere in den beispielhaften Ausführungsformen erörterte Ablaufschritte kombiniert werden. Es versteht sich, dass die in den Flussdiagrammen veranschaulichten Ablaufschritte auf zahlreiche unterschiedliche Arten modifiziert werden können, die sich für den Fachmann ohne Weiteres ergeben. Es verstünde sich für den Fachmann auch, dass Informationen und Signale unter Nutzung beliebiger einer Vielzahl unterschiedlicher Technologien und Techniken dargestellt werden können. Daten, Befehle, Kommandos, Informationen, Signale, Bits, Symbole und Chips, auf die in der obigen Beschreibung gegebenenfalls Bezug genommen wird, können durch Spannungen, Ströme, elektromagnetische Wellen, Magnetfelder oder -partikel, optische Felder oder Partikel oder beliebige Kombinationen davon dargestellt sein, wobei es sich um nicht einschränkende Beispiele handelt.
  • Die vorangehende Beschreibung der Offenbarung wird bereitgestellt, um den Fachmann zu einer Anfertigung gemäß der Offenbarung oder zu ihrer Nutzung zu befähigen. Verschiedene Modifikationen der Offenbarung werden sich für den Fachmann ohne Weiteres ergeben, und die allgemeinen, hierin definierten Prinzipien können auf andere Variationen angewendet werden, ohne vom Gedanken oder vom Schutzbereich der Offenbarung abzuweichen. Daher soll die Offenbarung nicht auf die hierin beschriebenen Beispiele und Ausführungen eingeschränkt sein, sondern ihr soll der weitestmögliche Schutzbereich zukommen, der mit den Prinzipien und den Neuheitsmerkmalen, die hierin offenbart werden, vereinbar ist.

Claims (7)

  1. Verfahren zum Bereitstellen eines virtuellen Back-to-Back-Web-Real-Time-Communications(WebRTC)-Agenten, das Folgendes umfasst: Empfangen eines WebRTC-Angebot-Antwort-Austausches zwischen einem ersten WebRTC-Client und einem zweiten WebRTC-Client durch einen WebRTC-Server, der auf einer Computereinrichtung ausgeführt wird; Bestimmen, ob der erste WebRTC-Client und der zweite WebRTC-Client kompatibel sind, basierend auf dem WebRTC-Angebot-Antwort-Austausch, einem Abfrage-Rückmeldung-Austausch zwischen dem WebRTC-Server und einem oder mehreren vom ersten WebRTC-Client und vom zweiten WebRTC-Client oder Hyper-Text-Transfer-Protocol(HTTP)-Kopfdaten oder einer Kombination davon; Instanziieren eines oder mehrerer virtueller WebRTC-Agenten, wobei Instanziieren des einen oder der mehreren virtuellen WebRTC-Agenten als Rückmeldung auf Bestimmen, dass der erste WebRTC-Client mit dem zweiten WebRTC-Client nicht kompatibel ist, Folgendes umfasst: Instanziieren eines ersten virtuellen WebRTC-Agenten, der mit dem ersten WebRTC-Client kompatibel ist, wobei der erste virtuelle WebRTC-Agent eine erste Instanz einer WebRTC-fähigen Client-Anwendung aufweist, die auf der Computereinrichtung ausgeführt wird; und Instanziieren eines zweiten virtuellen WebRTC-Agenten, der mit dem zweiten WebRTC-Client kompatibel ist, wobei der zweite virtuelle WebRTC-Agent eine zweite Instanz einer WebRTC-fähigen Client-Anwendung aufweist, die auf der Computereinrichtung ausgeführt wird; Herstellen eines ersten interaktiven WebRTC-Flusses zwischen dem ersten WebRTC-Client und dem ersten virtuellen WebRTC-Agenten und eines zweiten interaktiven WebRTC-Flusses zwischen dem zweiten WebRTC-Client und dem zweiten virtuellen WebRTC-Agenten; und Leiten eines Inhalts des ersten interaktiven WebRTC-Flusses an den zweiten interaktiven WebRTC-Fluss und eines Inhalts des zweiten interaktiven WebRTC-Flusses an den ersten interaktiven WebRTC-Fluss über die virtuellen WebRTC-Agenten.
  2. Verfahren nach Anspruch 1, das weiter Extrahieren des Inhalts aus dem ersten interaktiven WebRTC-Fluss oder dem zweiten interaktiven WebRTC-Fluss oder einer Kombination davon umfasst.
  3. Verfahren nach Anspruch 1, das weiter Einfügen von Inhalt in den ersten interaktiven WebRTC-Fluss oder den zweiten interaktiven WebRTC-Fluss oder eine Kombination davon umfasst.
  4. Verfahren nach Anspruch 1, das weiter Aufzeichnen des Inhalts des ersten interaktiven WebRTC-Flusses oder des Inhalts des zweiten interaktiven WebRTC-Flusses oder einer Kombination davon umfasst.
  5. Verfahren nach Anspruch 1, das weiter Umwandeln des Inhalts des ersten interaktiven WebRTC-Flusses oder des Inhalts des zweiten interaktiven WebRTC-Flusses oder einer Kombination davon umfasst.
  6. System zum Bereitstellen eines virtuellen Back-to-Back-Web-Real-Time-Communications(WebRTC)-Agenten, das Folgendes umfasst: mindestens eine Kommunikationsschnittstelle; und einen auf einer Computereinrichtung ausführbaren WebRTC-Server, der mit der mindestens einen Kommunikationsschnittstelle assoziiert ist, wobei der WebRTC-Server einen WebRTC-Anwendungsanbieter umfasst, der konfiguriert ist, um einen WebRTC-Angebot-Antwort-Austausch zwischen einem ersten WebRTC-Client und einem zweiten WebRTC-Client zu empfangen; und wobei der WebRTC-Server weiter einen virtuellen WebRTC-Agent-Manager umfasst, der konfiguriert ist, um: zu bestimmen, ob der erste WebRTC-Client und der zweite WebRTC-Client kompatibel sind, basierend auf dem WebRTC-Angebot-Antwort-Austausch, einem Abfrage-Rückmeldung-Austausch zwischen dem WebRTC-Server und einem oder mehreren vom ersten WebRTC-Client und vom zweiten WebRTC-Client oder Hyper-Text-Transfer-Protocol(HTTP)-Kopfdaten oder einer Kombination davon; einen oder mehrere virtuelle WebRTC-Agenten zu instanziieren, wobei Instanziieren des einen oder der mehreren virtuellen WebRTC-Agenten als Rückmeldung auf Bestimmen, dass der erste WebRTC-Client mit dem zweiten WebRTC-Client nicht kompatibel ist, Folgendes umfasst: Instanziieren eines ersten virtuellen WebRTC-Agenten, der mit dem ersten WebRTC-Client kompatibel ist, wobei der erste virtuelle WebRTC-Agent eine erste Instanz einer WebRTC-fähigen Client-Anwendung aufweist, die auf der Computereinrichtung ausgeführt wird; und Instanziieren eines zweiten virtuellen WebRTC-Agenten, der mit dem zweiten WebRTC-Client kompatibel ist, wobei der zweite virtuelle WebRTC-Agent eine zweite Instanz einer WebRTC-fähigen Client-Anwendung aufweist, die auf der Computereinrichtung ausgeführt wird; einen ersten interaktiven WebRTC-Fluss zwischen dem ersten WebRTC-Client und dem ersten virtuellen WebRTC-Agenten und einen zweiten interaktiven WebRTC-Fluss zwischen dem zweiten WebRTC-Client und dem zweiten virtuellen WebRTC-Agenten herzustellen; und einen Inhalt des ersten interaktiven WebRTC-Flusses an den zweiten interaktiven WebRTC-Fluss und einen Inhalt des zweiten interaktiven WebRTC-Flusses an den ersten interaktiven WebRTC-Fluss über die virtuellen WebRTC-Agenten zu leiten.
  7. Nicht transientes computerlesbares Medium, auf dem computerausführbare Befehle abgelegt sind, um zu veranlassen, dass ein Prozessor ein Verfahren implementiert, das Folgendes umfasst: Empfangen eines Web-Real-Time-Communications(WebRTC)-Angebot-Antwort-Austausches zwischen einem ersten WebRTC-Client und einem zweiten WebRTC-Client durch einen auf einer Computereinrichtung ausgeführten WebRTC-Server; Bestimmen, ob der erste WebRTC-Client und der zweite WebRTC-Client kompatibel sind, basierend auf dem WebRTC-Angebot-Antwort-Austausch, einem Abfrage-Rückmeldung-Austausch zwischen dem WebRTC-Server und einem oder mehreren vom ersten WebRTC-Client und vom zweiten WebRTC-Client oder Hyper-Text-Transfer-Protocol(HTTP)-Kopfdaten oder einer Kombination davon; Instanziieren eines oder mehrerer virtueller WebRTC-Agenten, wobei Instanziieren des einen oder der mehreren virtuellen WebRTC-Agenten als Rückmeldung auf Bestimmen, dass der erste WebRTC-Client mit dem zweiten WebRTC-Client nicht kompatibel ist, Folgendes umfasst: Instanziieren eines ersten virtuellen WebRTC-Agenten, der mit dem ersten WebRTC-Client kompatibel ist, wobei der erste virtuelle WebRTC-Agent eine erste Instanz einer WebRTC-fähigen Client-Anwendung aufweist, die auf der Computereinrichtung ausgeführt wird; und Instanziieren eines zweiten virtuellen WebRTC-Agenten, der mit dem zweiten WebRTC-Client kompatibel ist, wobei der zweite virtuelle WebRTC-Agent eine zweite Instanz einer WebRTC-fähigen Client-Anwendung aufweist, die auf der Computereinrichtung ausgeführt wird;; Herstellen eines ersten interaktiven WebRTC-Flusses zwischen dem ersten WebRTC-Client und dem ersten virtuellen WebRTC-Agenten und eines zweiten interaktiven WebRTC-Flusses zwischen dem zweiten WebRTC-Client und dem zweiten virtuellen WebRTC-Agenten; und Leiten eines Inhalts des ersten interaktiven WebRTC-Flusses an den zweiten interaktiven WebRTC-Fluss und eines Inhalts des zweiten interaktiven WebRTC-Flusses an den ersten interaktiven WebRTC-Fluss über die virtuellen WebRTC-Agenten.
DE102014108888.3A 2013-06-30 2014-06-25 Virtuelle Back-to-Back-Web-Real-Time-Communications(WebRTC)-Agenten und verwandte Verfahren, Systeme und computerlesbare Medien Active DE102014108888B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/931,970 2013-06-30
US13/931,970 US9525718B2 (en) 2013-06-30 2013-06-30 Back-to-back virtual web real-time communications (WebRTC) agents, and related methods, systems, and computer-readable media

Publications (2)

Publication Number Publication Date
DE102014108888A1 DE102014108888A1 (de) 2014-12-31
DE102014108888B4 true DE102014108888B4 (de) 2024-01-11

Family

ID=51410338

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102014108888.3A Active DE102014108888B4 (de) 2013-06-30 2014-06-25 Virtuelle Back-to-Back-Web-Real-Time-Communications(WebRTC)-Agenten und verwandte Verfahren, Systeme und computerlesbare Medien

Country Status (4)

Country Link
US (1) US9525718B2 (de)
CN (1) CN104253857B (de)
DE (1) DE102014108888B4 (de)
GB (1) GB2517833B (de)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10860279B2 (en) * 2009-11-24 2020-12-08 Clearslide, Inc. Method and system for browser-based screen sharing
US9363133B2 (en) 2012-09-28 2016-06-07 Avaya Inc. Distributed application of enterprise policies to Web Real-Time Communications (WebRTC) interactive sessions, and related methods, systems, and computer-readable media
US10164929B2 (en) 2012-09-28 2018-12-25 Avaya Inc. Intelligent notification of requests for real-time online interaction via real-time communications and/or markup protocols, and related methods, systems, and computer-readable media
US9294458B2 (en) 2013-03-14 2016-03-22 Avaya Inc. Managing identity provider (IdP) identifiers for web real-time communications (WebRTC) interactive flows, and related methods, systems, and computer-readable media
US10205624B2 (en) 2013-06-07 2019-02-12 Avaya Inc. Bandwidth-efficient archiving of real-time interactive flows, and related methods, systems, and computer-readable media
US9525718B2 (en) 2013-06-30 2016-12-20 Avaya Inc. Back-to-back virtual web real-time communications (WebRTC) agents, and related methods, systems, and computer-readable media
US9065969B2 (en) * 2013-06-30 2015-06-23 Avaya Inc. Scalable web real-time communications (WebRTC) media engines, and related methods, systems, and computer-readable media
US9112840B2 (en) 2013-07-17 2015-08-18 Avaya Inc. Verifying privacy of web real-time communications (WebRTC) media channels via corresponding WebRTC data channels, and related methods, systems, and computer-readable media
US9614890B2 (en) 2013-07-31 2017-04-04 Avaya Inc. Acquiring and correlating web real-time communications (WEBRTC) interactive flow characteristics, and related methods, systems, and computer-readable media
US9531808B2 (en) 2013-08-22 2016-12-27 Avaya Inc. Providing data resource services within enterprise systems for resource level sharing among multiple applications, and related methods, systems, and computer-readable media
US20150082021A1 (en) * 2013-09-13 2015-03-19 Qualcomm Incorporated Mobile proxy for webrtc interoperability
US10225212B2 (en) 2013-09-26 2019-03-05 Avaya Inc. Providing network management based on monitoring quality of service (QOS) characteristics of web real-time communications (WEBRTC) interactive flows, and related methods, systems, and computer-readable media
US20150121250A1 (en) * 2013-10-31 2015-04-30 Avaya Inc. PROVIDING INTELLIGENT MANAGEMENT FOR WEB REAL-TIME COMMUNICATIONS (WebRTC) INTERACTIVE FLOWS, AND RELATED METHODS, SYSTEMS, AND COMPUTER-READABLE MEDIA
US10263952B2 (en) 2013-10-31 2019-04-16 Avaya Inc. Providing origin insight for web applications via session traversal utilities for network address translation (STUN) messages, and related methods, systems, and computer-readable media
US9769214B2 (en) 2013-11-05 2017-09-19 Avaya Inc. Providing reliable session initiation protocol (SIP) signaling for web real-time communications (WEBRTC) interactive flows, and related methods, systems, and computer-readable media
US10129243B2 (en) 2013-12-27 2018-11-13 Avaya Inc. Controlling access to traversal using relays around network address translation (TURN) servers using trusted single-use credentials
US10581927B2 (en) 2014-04-17 2020-03-03 Avaya Inc. Providing web real-time communications (WebRTC) media services via WebRTC-enabled media servers, and related methods, systems, and computer-readable media
US9749363B2 (en) 2014-04-17 2017-08-29 Avaya Inc. Application of enterprise policies to web real-time communications (WebRTC) interactive sessions using an enterprise session initiation protocol (SIP) engine, and related methods, systems, and computer-readable media
US9912705B2 (en) 2014-06-24 2018-03-06 Avaya Inc. Enhancing media characteristics during web real-time communications (WebRTC) interactive sessions by using session initiation protocol (SIP) endpoints, and related methods, systems, and computer-readable media
DE102014009495B4 (de) 2014-06-26 2020-07-23 Unify Gmbh & Co. Kg Verfahren zum Aufbau einer für die Übermittlung von Medienströmen geeigneten Kommunikationsverbindung von einem ersten RTC-Client zu einem zweiten RTC-Client
WO2016178090A2 (en) * 2015-05-05 2016-11-10 IPalive AB Establishing media paths in real time communications
US10587658B2 (en) 2017-03-03 2020-03-10 At&T Intellectual Property I, L.P. Real time communication hub for multiple secure connections through shared session
US10855755B2 (en) * 2018-05-04 2020-12-01 Citrix Systems, Inc. WebRTC API redirection with fallbacks
US20200021481A1 (en) * 2018-07-13 2020-01-16 Microsoft Technology Licensing, Llc Generic and extensible client agent for enabling third party communications
US11722561B2 (en) * 2020-12-22 2023-08-08 Telefonaktiebolaget Lm Ericsson (Publ) DTLS/SCTP enhancements for RAN signaling purposes
EP4425889A1 (de) * 2023-03-02 2024-09-04 Streamroot Verfahren zur signalisierung einer nachricht von einem peer zu einem anderen peer
EP4425890A1 (de) * 2023-03-02 2024-09-04 Streamroot Verfahren zur kommunikation zwischen einem peer und einem signalisierungssystem

Family Cites Families (133)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5533110A (en) 1994-11-29 1996-07-02 Mitel Corporation Human machine interface for telephone feature invocation
US7145898B1 (en) 1996-11-18 2006-12-05 Mci Communications Corporation System, method and article of manufacture for selecting a gateway of a hybrid communication system architecture
US7389351B2 (en) 2001-03-15 2008-06-17 Microsoft Corporation System and method for identifying and establishing preferred modalities or channels for communications based on participants' preferences and contexts
US6714967B1 (en) 1999-07-30 2004-03-30 Microsoft Corporation Integration of a computer-based message priority system with mobile electronic devices
JP2002207683A (ja) 2001-01-09 2002-07-26 Nippon Telegraph & Telephone West Corp コミュニケーションシステム
WO2002089034A1 (en) 2001-04-25 2002-11-07 Michael Dwinnell Broadcasting information and providing data access over the internet to investors and managers on demand
US7590684B2 (en) 2001-07-06 2009-09-15 Check Point Software Technologies, Inc. System providing methodology for access control with cooperative enforcement
US7379993B2 (en) 2001-09-13 2008-05-27 Sri International Prioritizing Bayes network alerts
US7107316B2 (en) 2001-09-20 2006-09-12 International Business Machines Corporation Controlling throughput of message requests in a messaging system
MXPA04003894A (es) * 2001-10-25 2004-09-13 Worldcom Inc Indicador de calidad de sesion de comunicacion.
US7802207B2 (en) 2001-12-13 2010-09-21 Nvidia International, Inc. System, method, and article of manufacture for generating a customizable network user interface
EP1324628B1 (de) 2001-12-13 2009-11-11 Sony Deutschland GmbH Adaptive Dienstqualitätsreservierung mit vorheriger Ressourcenzuweisung für Mobilfunksysteme
US8605711B1 (en) 2001-12-17 2013-12-10 Verizon Business Global Llc Small office or home office (SOHO) IP phone service
US7266591B1 (en) 2001-12-17 2007-09-04 Verizon Business Global Llc Providing content delivery during a call hold condition
US20030131245A1 (en) 2002-01-04 2003-07-10 Michael Linderman Communication security system
US20030188193A1 (en) 2002-03-28 2003-10-02 International Business Machines Corporation Single sign on for kerberos authentication
US8856236B2 (en) 2002-04-02 2014-10-07 Verizon Patent And Licensing Inc. Messaging response system
US20040019494A1 (en) 2002-05-03 2004-01-29 Manugistics, Inc. System and method for sharing information relating to supply chain transactions in multiple environments
US7391748B2 (en) 2002-10-15 2008-06-24 Cisco Technology, Inc. Configuration of enterprise gateways
US7178163B2 (en) 2002-11-12 2007-02-13 Microsoft Corporation Cross platform network authentication and authorization model
US20040216173A1 (en) 2003-04-11 2004-10-28 Peter Horoszowski Video archiving and processing method and apparatus
EP2270622B1 (de) 2003-06-05 2016-08-24 Intertrust Technologies Corporation Interoperable systeme und verfahren für die peer-to-peer-dienstorchestrierung
US20050084082A1 (en) 2003-10-15 2005-04-21 Microsoft Corporation Designs, interfaces, and policies for systems that enhance communication and minimize disruption by encoding preferences and situations
US20050141694A1 (en) * 2003-12-26 2005-06-30 Alcatel Real-time communications call center server
US20050177380A1 (en) 2004-02-09 2005-08-11 Pritchard Gordon W. System, computer program and method for enabling individual client users to recruit, connect to, and manage a remote workforce through a shared network
JP4047303B2 (ja) 2004-06-04 2008-02-13 キヤノン株式会社 提供装置、提供プログラム、及び、提供方法
US7636348B2 (en) 2004-06-30 2009-12-22 Bettis Sonny R Distributed IP architecture for telecommunications system with video mail
US20070294336A1 (en) * 2004-07-02 2007-12-20 Greg Pounds Proxy-based communications architecture
FR2872983A1 (fr) 2004-07-09 2006-01-13 Thomson Licensing Sa Systeme de pare-feu protegeant une communaute d'appareils, appareil participant au systeme et methode de mise a jour des regles de pare-feu au sein du systeme
JP4101215B2 (ja) 2004-08-06 2008-06-18 キヤノン株式会社 セキュリティポリシー設定方法
US7502514B2 (en) 2004-11-15 2009-03-10 Smith Micro Software, Inc. System and method for lossless compression of already compressed files
US8473617B2 (en) 2004-12-31 2013-06-25 Sony Corporation Media client architecture for networked communication devices
US20060159063A1 (en) 2005-01-19 2006-07-20 Gopesh Kumar A System and Method for Businesses to advertise to receive and measure incoming Prospect Leads through a unique, empowered Independent Agent framework
US8813181B2 (en) 2005-03-07 2014-08-19 Taun Eric Willis Electronic verification systems
US8825871B2 (en) 2005-03-16 2014-09-02 Icontrol Networks, Inc. Controlling data routing among networks
US20060230438A1 (en) 2005-04-06 2006-10-12 Ericom Software Ltd. Single sign-on to remote server sessions using the credentials of the local client
JP5118020B2 (ja) 2005-05-05 2013-01-16 シスコ アイアンポート システムズ エルエルシー 電子メッセージ中での脅威の識別
US8606950B2 (en) 2005-06-08 2013-12-10 Logitech Europe S.A. System and method for transparently processing multimedia data
US7730309B2 (en) 2005-07-27 2010-06-01 Zimmermann Philip R Method and system for key management in voice over internet protocol
CN100456834C (zh) 2005-10-17 2009-01-28 华为技术有限公司 H.264多媒体通信的服务质量监测方法
US20070143408A1 (en) 2005-12-15 2007-06-21 Brian Daigle Enterprise to enterprise instant messaging
US8015484B2 (en) 2006-02-09 2011-09-06 Alejandro Backer Reputation system for web pages and online entities
US20070255662A1 (en) 2006-03-30 2007-11-01 Obopay Inc. Authenticating Wireless Person-to-Person Money Transfers
US8019815B2 (en) 2006-04-24 2011-09-13 Keener Jr Ellis Barlow Interactive audio/video method on the internet
FI20065288A (fi) 2006-05-03 2007-11-04 Emillion Oy Autentikointi
US8386464B2 (en) 2006-08-18 2013-02-26 National Instruments Corporation Configuration of optimized custom properties in a data finder tool
US9251296B2 (en) 2006-08-18 2016-02-02 National Instruments Corporation Interactively setting a search value in a data finder tool
US8099400B2 (en) 2006-08-18 2012-01-17 National Instruments Corporation Intelligent storing and retrieving in an enterprise data system
DE102006051186A1 (de) 2006-10-30 2008-05-08 Siemens Ag Infrastruktur-Servicearchitektur für Applikationen
US20080162642A1 (en) 2006-12-28 2008-07-03 International Business Machines Corporation Availability Filtering for Instant Messaging
US8693392B2 (en) 2007-02-21 2014-04-08 Avaya Canada Corp. Peer-to-peer communication system and method
CA2678714C (en) 2007-02-21 2012-05-22 Avaya Canada Corp. Bootstrapping in peer-to-peer networks with network address translators
US8737596B2 (en) 2007-09-29 2014-05-27 Alcatel Lucent Real-time collaboration center
US20090094684A1 (en) 2007-10-05 2009-04-09 Microsoft Corporation Relay server authentication service
EP2201743A4 (de) 2007-10-17 2016-01-27 Ericsson Telefon Ab L M Verfahren und anordnung zum entscheiden einer sicherheitseinstellung
US9009603B2 (en) 2007-10-24 2015-04-14 Social Communications Company Web browser interface for spatial communication environments
US8300632B2 (en) 2008-02-21 2012-10-30 Avaya Inc. System and method for distributed call monitoring/recording using the session initiation protocol (SIP)
US8131668B2 (en) 2008-05-28 2012-03-06 Sap Ag User-experience-centric architecture for data objects and end user applications
GB2461771A (en) 2008-07-11 2010-01-20 Icyte Pty Ltd Annotation of electronic documents with preservation of document as originally annotated
US8250635B2 (en) 2008-07-13 2012-08-21 International Business Machines Corporation Enabling authentication of openID user when requested identity provider is unavailable
US7921089B2 (en) 2008-07-24 2011-04-05 Zscaler, Inc. Feature based data management
US8286255B2 (en) 2008-08-07 2012-10-09 Sophos Plc Computer file control through file tagging
BRPI0921337B8 (pt) 2008-11-06 2022-07-12 Sharp Kk Equipamento de usuário (ue) e gateway de dados por pacote (pgw) em um sistema de comunicação móvel, sistema de comunicação móvel e método de comunicação para um sistema de comunicação móvel
US8494507B1 (en) 2009-02-16 2013-07-23 Handhold Adaptive, LLC Adaptive, portable, multi-sensory aid for the disabled
GB2468759B (en) 2009-03-16 2012-10-03 Avaya Inc Advanced availability detection
GB2468758B (en) 2009-03-16 2012-01-11 Avaya Inc Advanced availability detection
US8938677B2 (en) 2009-03-30 2015-01-20 Avaya Inc. System and method for mode-neutral communications with a widget-based communications metaphor
US8744147B2 (en) 2009-06-16 2014-06-03 Robert Torti Graphical digital medical record annotation
US8194508B2 (en) 2009-11-05 2012-06-05 Seagate Technology Llc Waveform based bit detection for bit patterned media
US9043488B2 (en) 2010-03-29 2015-05-26 Damaka, Inc. System and method for session sweeping between devices
US20120001932A1 (en) 2010-07-02 2012-01-05 Burnett William R Systems and methods for assisting visually-impaired users to view visual content
US8743781B2 (en) 2010-10-11 2014-06-03 Damaka, Inc. System and method for a reverse invitation in a hybrid peer-to-peer environment
US8645872B2 (en) 2010-11-30 2014-02-04 Verizon Patent And Licensing Inc. User interfaces for facilitating merging and splitting of communication sessions
US8832271B2 (en) 2010-12-03 2014-09-09 International Business Machines Corporation Identity provider instance discovery
US9178917B2 (en) 2010-12-16 2015-11-03 Palo Alto Research Center Incorporated Custodian routing with network address translation in content-centric networks
GB2500356A (en) 2011-01-20 2013-09-18 Box Inc Real time notification of activities that occur in a web-based collaboration environment
EP3734407A1 (de) 2011-02-10 2020-11-04 Samsung Electronics Co., Ltd. Tragbare vorrichtung mit einer berührungsbildschirmanzeige und verfahren zur steuerung davon
US20130002799A1 (en) 2011-06-28 2013-01-03 Mock Wayne E Controlling a Videoconference Based on Context of Touch-Based Gestures
CN102238235B (zh) * 2011-07-01 2017-07-11 中兴通讯股份有限公司 一种交互式业务的代理方法及装置
US20130078972A1 (en) 2011-09-28 2013-03-28 Royce A. Levien Network handling of multi-party multi-modality communication
US9276856B2 (en) 2011-10-10 2016-03-01 Salesforce.Com, Inc. Slipstream bandwidth management algorithm
US20130138829A1 (en) 2011-11-30 2013-05-30 Rovi Technologies Corporation Scalable video coding over real-time transport protocol
WO2013122949A1 (en) 2012-02-13 2013-08-22 Galeal Zino Video session manager and method for enabling and managing video calling and telepresence communications sessions across multiple domains
US20130346329A1 (en) 2012-05-14 2013-12-26 NetSuite Inc. System and methods for social data sharing capabilities for enterprise information systems
US9705729B2 (en) 2012-06-01 2017-07-11 Dell Products L.P. General client engine with load balancing for client-server communication
FR2993071B1 (fr) 2012-07-03 2016-05-06 Videodesk Systeme d'affichage d'une page web
US9363133B2 (en) 2012-09-28 2016-06-07 Avaya Inc. Distributed application of enterprise policies to Web Real-Time Communications (WebRTC) interactive sessions, and related methods, systems, and computer-readable media
US10164929B2 (en) 2012-09-28 2018-12-25 Avaya Inc. Intelligent notification of requests for real-time online interaction via real-time communications and/or markup protocols, and related methods, systems, and computer-readable media
US9280540B2 (en) 2012-10-01 2016-03-08 Verizon Patent And Licensing Inc. Content-driven download speed
US10084848B2 (en) 2012-10-16 2018-09-25 At&T Intellectual Property I, L.P. Centralized control of user devices via universal IP services registrar/hub
EP2909995B1 (de) 2012-10-19 2018-01-24 Unify GmbH & Co. KG Verfahren und vorrichtung zur erzeugung eines virtuellen sip-benutzeragenten durch verwendung eines webrtc-aktivierten webbrowsers
US8867731B2 (en) 2012-11-05 2014-10-21 Genesys Telecommunications Laboratories, Inc. System and method for web-based real time communication with optimized transcoding
US9131067B2 (en) 2012-11-05 2015-09-08 Genesys Telecommunications Laboratories, Inc. System and method for out-of-band communication with contact centers
US9112975B2 (en) 2012-11-05 2015-08-18 Genesys Telecommunications Laboratories, Inc. System and method for web-based real time communication with contact centers
EP2787696B1 (de) 2012-11-15 2016-10-26 Huawei Device Co., Ltd. Verfahren und vorrichtung zur übertragung einer echtzeit-webkommunikationssitzung
US10708335B2 (en) 2012-11-16 2020-07-07 Time Warner Cable Enterprises Llc Situation-dependent dynamic bit rate encoding and distribution of content
WO2014080293A2 (en) 2012-11-23 2014-05-30 Calgary Scientific Inc. Methods and systems for peer-to-peer discovery and connection from a collaborative application session
US8601144B1 (en) 2012-11-27 2013-12-03 Sansay, Inc. Systems and methods for automatic ICE relay candidate creation
US9001975B2 (en) 2012-12-11 2015-04-07 Genesys Telecommunications Laboratories, Inc. Contact center recording service
US9984374B2 (en) 2013-02-25 2018-05-29 Genesys Telecommunications Laboratories Inc. Mobile expert desktop
US9258292B2 (en) * 2013-01-14 2016-02-09 Futurewei Technologies, Inc. Adapting federated web identity protocols
US9307031B2 (en) * 2013-02-04 2016-04-05 Oracle International Corporation Generic model for customizing protocol behavior through javascript
US9331967B2 (en) 2013-02-04 2016-05-03 Oracle International Corporation Browser/HTML friendly protocol for real-time communication signaling
US9712593B2 (en) 2013-02-04 2017-07-18 Oracle International Corporation Javascript API for WebRTC
US9668166B2 (en) * 2013-02-05 2017-05-30 Qualcomm Incorporated Quality of service for web client based sessions
US20140237057A1 (en) 2013-02-21 2014-08-21 Genesys Telecommunications Laboratories, Inc. System and method for processing private messages in a contact center
EP2770667B1 (de) 2013-02-22 2015-09-30 Telefonica Digital España, S.L.U. Verfahren und System für kombiniertes P2P und zentralrelais-serverbasierte Telekommunikationskonferenz, welche eine Telefonie und ein Konferenzprotokoll verwendet
US9552338B2 (en) 2013-03-11 2017-01-24 Futurewei Technologies, Inc. Mechanisms to compose, execute, save, and retrieve hyperlink pipelines in web browsers
US9178998B2 (en) 2013-03-12 2015-11-03 Avaya Inc. System and method for recording calls in a WebRTC contact center
US8949912B2 (en) 2013-03-12 2015-02-03 Centurylink Intellectual Property Llc ABR live to VOD system and method
US9430757B2 (en) 2013-03-13 2016-08-30 Genesys Telecommunications Laboratories, Inc. Rich personalized communication context
US8695077B1 (en) 2013-03-14 2014-04-08 Sansay, Inc. Establishing and controlling communication sessions between SIP devices and website application servers
US9294458B2 (en) * 2013-03-14 2016-03-22 Avaya Inc. Managing identity provider (IdP) identifiers for web real-time communications (WebRTC) interactive flows, and related methods, systems, and computer-readable media
US20140282054A1 (en) 2013-03-15 2014-09-18 Avaya Inc. Compensating for user sensory impairment in web real-time communications (webrtc) interactive sessions, and related methods, systems, and computer-readable media
US9158534B2 (en) 2013-03-15 2015-10-13 Wolters Kluwer United States Inc. Smart endpoint architecture
US9160663B2 (en) 2013-03-15 2015-10-13 Google Inc. Dynamic congestion control
US9191297B2 (en) 2013-03-28 2015-11-17 Hcl Technologies Limited Providing feedback to media senders over real time transport protocol (RTP)
CN105144768B (zh) 2013-04-26 2019-05-21 英特尔Ip公司 频谱共享情境中的共享频谱重新分配
ES2566606T3 (es) * 2013-05-07 2016-04-14 Iveco Magirus Ag Vehículo de servicio con un sistema de asistencia para posicionar apoyos a tierra laterales
US8861692B1 (en) 2013-05-15 2014-10-14 Verizon Patent And Licensing Inc. Web call access and egress to private network
WO2014190094A1 (en) 2013-05-21 2014-11-27 Ecrio, Inc. Real-time rich communications client architecture
US10205624B2 (en) 2013-06-07 2019-02-12 Avaya Inc. Bandwidth-efficient archiving of real-time interactive flows, and related methods, systems, and computer-readable media
US9781167B2 (en) * 2013-06-21 2017-10-03 Verizon Patent And Licensing Inc. WebRTC data channel facilitating IMS support of RCS features
US9065969B2 (en) 2013-06-30 2015-06-23 Avaya Inc. Scalable web real-time communications (WebRTC) media engines, and related methods, systems, and computer-readable media
US20150006610A1 (en) 2013-06-30 2015-01-01 Avaya Inc. Virtual web real-time communications (webrtc) gateways, and related methods, systems, and computer-readable media
US9525718B2 (en) 2013-06-30 2016-12-20 Avaya Inc. Back-to-back virtual web real-time communications (WebRTC) agents, and related methods, systems, and computer-readable media
US9112840B2 (en) 2013-07-17 2015-08-18 Avaya Inc. Verifying privacy of web real-time communications (WebRTC) media channels via corresponding WebRTC data channels, and related methods, systems, and computer-readable media
US9282125B2 (en) 2013-07-30 2016-03-08 Unify Gmbh & Co. Kg Apparatus and method for communications involving a legacy device
US20150039760A1 (en) 2013-07-31 2015-02-05 Avaya Inc. Remotely controlling web real-time communications (webrtc) client functionality via webrtc data channels, and related methods, systems, and computer-readable media
US9614890B2 (en) 2013-07-31 2017-04-04 Avaya Inc. Acquiring and correlating web real-time communications (WEBRTC) interactive flow characteristics, and related methods, systems, and computer-readable media
US10089633B2 (en) 2013-08-13 2018-10-02 Amazon Technologies, Inc. Remote support of computing devices
CN104427296B (zh) 2013-09-05 2019-03-01 华为终端(东莞)有限公司 视频会议中媒体流的传输方法与装置
US9762533B2 (en) 2013-12-20 2017-09-12 Futurewei Technologies, Inc. Method of IMS (SIP network) webRTC optimized P2P communication

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
PERKINS, C.; WESTERLUND, M.; OTT, J.: Web Real-Time Communication (WebRTC): Media Transport and Use of RTP. Network Working Group, Februar 2013 [recherchiert am 19.10.2017]. Im Internet: <URL:https://tools.ietf.org/html/draft-ietf-rtcweb-rtp-usage-06>

Also Published As

Publication number Publication date
GB2517833A (en) 2015-03-04
CN104253857B (zh) 2017-11-28
DE102014108888A1 (de) 2014-12-31
US20150006611A1 (en) 2015-01-01
US9525718B2 (en) 2016-12-20
GB2517833B (en) 2016-02-17
GB201411580D0 (en) 2014-08-13
CN104253857A (zh) 2014-12-31

Similar Documents

Publication Publication Date Title
DE102014108888B4 (de) Virtuelle Back-to-Back-Web-Real-Time-Communications(WebRTC)-Agenten und verwandte Verfahren, Systeme und computerlesbare Medien
DE102014108903B4 (de) Skalierbare Web-Real-Time-Communications(WebRTC)-Medienengines und verwandte Verfahren, Systeme und computerlesbare Medien
DE102015104897B4 (de) Verbessern von Medieneigenschaften während interaktiver Web-Real-Time-Communications(WebRTC)-Sitzungen durch Nutzung von Session-Initiation-Protocol(SIP)-Endpunkten und verwandte Verfahren, Systeme und computerlesbare Medien
DE102014108904A1 (de) Virtuelle Web-Real-Time-Communications(WebRTC)-Gateways und verwandte Verfahren, Systeme und computerlesbare Medien
DE102014107943B4 (de) Bandbreiteneffiziente Archivierung interaktiver Echtzeitflüsse und verwandte Verfahren, Systeme und computerlesbare Medien
DE60119589T2 (de) Vorrichtungen und Verfahren zur Datenübertragung
EP3357218B1 (de) Verfahren zur industriellen kommunikation über tsn
DE102014103209A1 (de) Ausgleichen sensorischer benutzerbeeinträchtigungen bei interaktiven web-real-time-communications(webrtc)-sitzungen und verwandte verfahren, systeme und computerlesbare medien
DE60212339T2 (de) Ein digitales fernsehen anwendungsprotokoll zum interaktiven fernsehen
EP2837154B1 (de) Verfahren zur steuerung von datenströmen einer virtuellen sitzung mit mehreren teilnehmern, kollaborationsserver, computerprogramm, computerprogrammprodukt und digitales speichermedium
DE102011053849B4 (de) Verfahren und Vorrichtungen zum Autorisieren in gemeinschaftlichen Kommunikationssitzungen
US10581927B2 (en) Providing web real-time communications (WebRTC) media services via WebRTC-enabled media servers, and related methods, systems, and computer-readable media
US20150039687A1 (en) Acquiring and correlating web real-time communications (webrtc) interactive flow characteristics, and related methods, systems, and computer-readable media
DE102014115895B4 (de) Bereitstellen eines Ursprungseinblicks für Webanwendungen über Session-Traversal-Utilities-for-Network-Address-Translation(STUN)-Nachrichten und verwandte Verfahren, Systeme und computerlesbare Medien
DE102014115893A1 (de) Bereitstellen einer intelligenten Verwaltung für interaktive Web-Real-Time-Communications(WebRTC)-Flüsse und verwandte Verfahren, Systeme und computerlesbare Medien
DE202015009251U1 (de) Netzwerkpaketkapselung und Routing
EP3162018B1 (de) Verfahren zum aufbau einer für die übermittlung von medienströmen geeigneten kommunikationsverbindung von einem ersten rtc-client zu einem zweiten rtc-client
DE202017107339U1 (de) Bereitstellen eines Auto-Play-Medieninhaltselements von Cross-Origin Ressourcen
WO2016037677A1 (de) Verfahren zur steuerung einer multimedia-anwendung, softwareprodukt und vorrichtung
DE102015100518B4 (de) Verbessern des Datenschutzes durch Verschleiern von Turn-Verbindungen (traversal using relays around network address translator) und damit verwandte Verfahren, Systeme und computerlesbare Medien
DE102013110613B4 (de) Verteilte Anwendung von Unternehmensrichtlinien auf interaktive Web-Real-Time-Communications(WebRTC)-Sitzungen und verwandte Verfahren, Systeme und computerlesbare Medien
EP2815558A1 (de) Übertragen von datenströmen zwischen einem endgerät und einem sicherheitsmodul
DE112008001604T5 (de) Echtzeitkomposition von Diensten
EP2738721A1 (de) Verfahren und System zur Präsentation bei kollaborativer Zusammenarbeit
DE102018208841A1 (de) Alternative network address type (anat)-codierung und medien-interworking

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0029060000

Ipc: H04L0065000000

R018 Grant decision by examination section/examining division