Synchronization source (ssrc) mapping for real-time interactive multipoint server routed conferencing with dynamic renegotiation of mutlimedia sending participants
Abstract
A method of real-time, dynamic allocation of multimedia streams enables large-scale, server-routed real-time conference (multipoint and interactive broadcast) sessions within advancing communication technologies such as open-standard WebRTC (Web Real-Time Communications) A Synchronization Source (SSRC) mapping concept/technique is used to efficiently manage required real-time renegotiation of media flow correlations (MFC) between session participants in a server-routed conference through the Real-time Transport Protocol (RTP) processor (Engine), collectively RTP Engine. The RTP Engine is a logic processing element that inputs RTP media packets, manipulates the information within the RTP packets, and outputs the modified RTP packets. The SSRC Mapping through the RTP Engine enables the conference server router to isolate the renegotiation to a single offer/answer exchange between a participant changing a media flow correlation and the conference server router. The result is significant real-time interactive performance, efficiency, and capability benefits to server-routed multipoint/broadcast conferences designed for global-scale applications.
Claims
exact text as granted — not AI-modifiedIt is claimed:
1 . A web conference server comprising a processor and memory, the memory storing instructions which when executed by the processor cause the processor to:
begin a web conference by:
generating a media flow correlation pool including a plurality of paired server and sender media flow correlations each comprising a synchronization source identifier, a media stream identifier, and a media type identifier for each of a plurality of potential participants, with each of the server media flow correlations being unique in the web conference and assigned to the web conference server, the sender media flow correlations being unassigned until a non-participant joins the web conference; and
providing the entire media flow correlation pool, including additional sender media flow correlations that are not yet assigned, to each participant in the web conference.
2 . The web conference server of claim 1 wherein the instructions further cause the processor to:
receive a request to join a web conference from a first non-participant;
assign the first sender media flow correlation from the media flow correlation pool to the first non-participant;
respond to the first non-participant accepting the first non-participant as a new participant in the web conference by indicating to the first participant in a manner conforming to the WebRTC specification, including an indication of an assigned synchronization source identifier, media stream identifier, and media type identifier from the first sender media flow correlation, that the first participant has joined the web conference in response to the request; and
continue the web conference with the first sender media flow correlation assigned to the first participant and the additional sender media flow correlations available in the media flow correlation pool for use by subsequent non-participants in the web conference who may request to be added to the web conference as a participant such that communications sent to a particular server media flow correlation are translated and sent by the web server as communications to a corresponding sender media flow correlation.
3 . The web conference server of claim 2 wherein the instructions further cause the processor to:
receive a request by a second non-participant to join the web conference as a participant;
assign one of the additional sender media flow correlations, corresponding to an additional paired server media flow correlation, from the media flow correlation pool to the second non-participant as a second sender media flow correlation to use within the web conference without any data exchange regarding the assignment between the second non-participant and any other participant in the web conference before media flows begin;
respond to the request from the second non-participant accepting the second non-participant as a second new participant in the web conference in a manner conforming to the WebRTC specification including identification of the synchronization source identifier, the media stream identifier, and the media type identifier at the web conference server for use by the second participant to communicate in the web conference, wherein communications using the assigned sender media flow correlation will be translated upon receipt by the web conference server into output on the additional paired server media flow correlation; and
provide the entire media flow correlation pool, including additional sender media flow correlations that are not yet assigned, to the second non-participant in the web conference;
continue the web conference, now including the second participant while directing media flows according to the first and second sender media flow correlations in the media flow correlation pool.
4 . The web conference server of claim 3 wherein the instructions further cause the processor to:
receive an RTP (Real-time Transport Protocol) data packet from the first participant using the first sender media flow correlation;
modify the SSRC (Synchronization Source) sender field and media source field in a RTCP (RTP Control Protocol) feedback packet header of the RTP data packet to the web conference server;
send the RTP data packet from the first participant to all other participants, listeners, and viewers in the web conference using a paired first server media flow correlation; and
generate and respond to the first participant with a responsive output RTCP data packet.
5 . The web conference server of claim 2 wherein the instructions further cause the processor to:
receive a termination request at the web conference from the first participant indicating that the first participant wishes to terminate participation in the web conference;
unassign the first sender media flow correlation used by the first participant and return the first sender media flow correlation to the media flow correlation pool for use by a subsequent non-participant wishing to participate in the web conference; and
respond to the termination request from the first participant by indicating to the first participant that the web conference no longer includes the first participant.
6 . The web conference server of claim 2 wherein the instructions further cause the processor to translate SSRC values in all incoming RTP data packets from the first participant to all other participants and listeners in the web conference using the media flow correlation pool.
7 . The web conference server of claim 6 wherein the instructions further cause the processor to translate received RTP data from one participant to another participant according to mapped SSRC values in the media flow correlation pool.
8 . A method for routing a web conference comprising:
beginning a web conference by:
generating a media flow correlation pool including a plurality of paired server and sender media flow correlations each comprising a synchronization source identifier, a media stream identifier, and a media type identifier for each of a plurality of potential participants, with each of the server media flow correlations being unique in the web conference and assigned to the web conference server, the sender media flow correlations being unassigned until a non-participant joins the web conference; and
providing the entire media flow correlation pool, including additional sender media flow correlations that are not yet assigned, to each participant in the web conference.
9 . The method of claim 8 further comprising:
receiving a request to join a web conference from a first non-participant;
assigning the first sender media flow correlation from the media flow correlation pool to the first non-participant;
responding to the first non-participant accepting the first non-participant as a new participant in the web conference by indicating to the first participant in a manner conforming to the WebRTC specification, including an indication of an assigned synchronization source identifier, media stream identifier, and media type identifier from the first sender media flow correlation, that the first participant has joined the web conference in response to the request; and
continuing the web conference with the first sender media flow correlation assigned to the first participant and the additional sender media flow correlations available in the media flow correlation pool for use by subsequent non-participants in the web conference who may request to be added to the web conference as a participant such that communications sent to a particular server media flow correlation are translated and sent by the web server as communications to a corresponding sender media flow correlation.
10 . The method of claim 9 further comprising:
receiving a request by a second non-participant to join the web conference as a participant;
assigning one of the additional sender media flow correlations, corresponding to an additional paired server media flow correlation, from the media flow correlation pool to the second non-participant as a second sender media flow correlation to use within the web conference without any data exchange regarding the assignment between the second non-participant and any other participant in the web conference before media flows begin;
responding to the request from the second non-participant accepting the second non-participant as a second new participant in the web conference in a manner conforming to the WebRTC specification including identification of the synchronization source identifier, the media stream identifier, and the media type identifier at the web conference server for use by the second participant to communicate in the web conference, wherein communications using the assigned sender media flow correlation will be translated upon receipt by the web conference server into output on the additional paired server media flow correlation; and
providing the entire media flow correlation pool, including additional sender media flow correlations that are not yet assigned, to the second non-participant in the web conference;
continuing the web conference, now including the second participant while directing media flows according to the first and second sender media flow correlations in the media flow correlation pool.
11 . The method of claim 10 further comprising:
receiving an RTP (Real-time Transport Protocol) data packet from the first participant using the first sender media flow correlation;
modifying the SSRC (Synchronization Source) sender field and media source field in a RTCP (RTP Control Protocol) feedback packet header of the RTP data packet to the web conference server;
sending the RTP data packet from the first participant to all other participants, listeners, and viewers in the web conference using a paired first server media flow correlation; and
generating and respond to the first participant with a responsive output RTCP data packet.
12 . The method of claim 9 further comprising:
receiving a termination request at the web conference from the first participant indicating that the first participant wishes to terminate participation in the web conference;
unassigning the first sender media flow correlation used by the first participant and return the first sender media flow correlation to the media flow correlation pool for use by a subsequent non-participant wishing to participate in the web conference; and
responding to the termination request from the first participant by indicating to the first participant that the web conference no longer includes the first participant.
13 . The method of claim 9 further comprising translating SSRC values in all incoming RTP data packets from the first participant to all other participants and listeners in the web conference using the media flow correlation pool.
14 . The method of claim 13 further comprising translating received RTP data from one participant to another participant according to mapped SSRC values in the media flow correlation pool.
15 . A non-volatile, machine-readable medium storing a program having instructions which when executed by a processor will cause the processor to:
begin a web conference by:
generating a media flow correlation pool including a plurality of paired server and sender media flow correlations each comprising a synchronization source identifier, a media stream identifier, and a media type identifier for each of a plurality of potential participants, with each of the server media flow correlations being unique in the web conference and assigned to the web conference server, the sender media flow correlations being unassigned until a non-participant joins the web conference; and
providing the entire media flow correlation pool, including additional sender media flow correlations that are not yet assigned, to each participant in the web conference.
16 . The non-volatile, machine-readable medium of claim 15 wherein the instructions will further cause the processor to:
receive a request to join a web conference from a first non-participant;
assign the first sender media flow correlation from the media flow correlation pool to the first non-participant;
respond to the first non-participant accepting the first non-participant as a new participant in the web conference by indicating to the first participant in a manner conforming to the WebRTC specification, including an indication of an assigned synchronization source identifier, media stream identifier, and media type identifier from the first sender media flow correlation, that the first participant has joined the web conference in response to the request; and
continue the web conference with the first sender media flow correlation assigned to the first participant and the additional sender media flow correlations available in the media flow correlation pool for use by subsequent non-participants in the web conference who may request to be added to the web conference as a participant such that communications sent to a particular server media flow correlation are translated and sent by the web server as communications to a corresponding sender media flow correlation.
17 . The non-volatile, machine-readable medium of claim 16 wherein the instructions will further cause the processor to:
receive a request by a second non-participant to join the web conference as a participant;
assign one of the additional sender media flow correlations, corresponding to an additional paired server media flow correlation, from the media flow correlation pool to the second non-participant as a second sender media flow correlation to use within the web conference without any data exchange regarding the assignment between the second non-participant and any other participant in the web conference before media flows begin;
respond to the request from the second non-participant accepting the second non-participant as a second new participant in the web conference in a manner conforming to the WebRTC specification including identification of the synchronization source identifier, the media stream identifier, and the media type identifier at the web conference server for use by the second participant to communicate in the web conference, wherein communications using the assigned sender media flow correlation will be translated upon receipt by the web conference server into output on the additional paired server media flow correlation; and
provide the entire media flow correlation pool, including additional sender media flow correlations that are not yet assigned, to the second non-participant in the web conference;
continue the web conference, now including the second participant while directing media flows according to the first and second sender media flow correlations in the media flow correlation pool.
18 . The non-volatile, machine-readable medium of claim 16 wherein the instructions will further cause the processor to:
receive an RTP (Real-time Transport Protocol) data packet from the new participant using the first sender media flow correlation;
modify the SSRC (Synchronization Source) sender field and media source field in a RTCP (RTP Control Protocol) feedback packet header of the RTP data packet to the web conference server;
send the RTP data packet from the first participant to all other participants, listeners, and viewers in the web conference using a paired first server media flow correlation; and
generate and respond to the first participant with a responsive output RTCP data packet.
19 . The non-volatile, machine-readable medium of claim 15 wherein the instructions will further cause the processor to:
receive a termination request at the web conference from the first participant indicating that the first participant wishes to terminate participation in the web conference;
unassign the first sender media flow correlation used by the first participant and return the first sender media flow correlation to the media flow correlation pool for use by a subsequent non-participant wishing to participate in the web conference; and
respond to the termination request from the first participant by indicating to the first participant that the web conference no longer includes the first participant.
20 . The apparatus of claim 15 further comprising:
a processor;
a memory; and
wherein the processor and the memory comprise circuits and software for performing the instructions on the storage medium.Join the waitlist — get patent alerts
Track US2022038518A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.