Facilitating real-time, multi-point communications over the internet
First Claim
1. A method for facilitating communication between a plurality of clients on a network, comprising:
- receiving a request with a dispatch server, the request being from a first one of the plurality of clients to join a first conference; and
statelessly dispatching the first client to the first conference on a first one of a plurality of media servers associated with the dispatch server.
0 Assignments
0 Petitions
Accused Products
Abstract
Methods and apparatus are described for facilitating a first conference between a plurality of clients on a network. A request to join a first conference is received from a first one of the plurality of clients via the network. In response to the request, it is determined whether the first conference is currently being facilitated on any of a plurality of media servers. Where the first conference is currently being facilitated on a first one of the plurality of media servers, the first client is dispatched to the first conference on the first media server. Where the first conference is not currently being facilitated on any of the plurality of media servers, creation of the first conference on a second one of the plurality of media servers is triggered, and the first client is dispatched to the first conference on the second media server.
133 Citations
55 Claims
-
1. A method for facilitating communication between a plurality of clients on a network, comprising:
-
receiving a request with a dispatch server, the request being from a first one of the plurality of clients to join a first conference; and
statelessly dispatching the first client to the first conference on a first one of a plurality of media servers associated with the dispatch server. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29)
-
-
30. A system for facilitating communication between a plurality of clients on a network, comprising:
-
a plurality of media servers coupled to the network, each media server being for facilitating at least one conference, each of the conferences corresponding to a subset of the plurality of clients; and
a dispatch server coupled to the network for statelessly dispatching the clients to the conferences on the media servers, the dispatch server being operable in response to a request from a first one of the clients to join a first conference to do one of determine which of the media servers is facilitating the first conference, and trigger creation of the first conference on a first one of the media servers where the first conference is not currently being facilitated. - View Dependent Claims (31, 32, 33)
-
-
34. A dispatch server for facilitating communication between a plurality of clients on a network using a plurality of media servers on the network, comprising:
-
a server object;
a remote server service running on the server object for providing access to the server object; and
a master service running on the server object for communicating with and managing operation of the media servers in a stateless manner, the master service also being for statelessly dispatching the plurality of clients to conferences on the media servers. - View Dependent Claims (35, 36)
-
-
37. A media server for facilitating communication between a plurality of clients on a network in conjunction with a dispatch server on the network, comprising:
-
a server object;
a remote server service running on the server object for providing access to the server object;
a slave service running on the server object for communicating with the dispatch server;
a mesh service running on the server object for dynamically providing virtual connections among the plurality of clients for transmission of data and thereby facilitating a conference including the plurality of clients, the virtual connections being dynamically created using a plurality of connection objects; and
a connect service running on the server object for configuring the connection objects in the mesh service to provide the virtual connections. - View Dependent Claims (38)
-
-
39. A method for facilitating a first conference between a plurality of clients on a network, comprising:
-
receiving a request to join a first conference from a first one of the plurality of clients via the network;
in response to the request, determining whether the first conference is currently being facilitated on any of a plurality of media servers;
where the first conference is currently being facilitated on a first one of the plurality of media servers, statelessly dispatching the first client to the first conference on the first media server; and
where the first conference is not currently being facilitated on any of the plurality of media servers, triggering creation of the first conference on a second one of the plurality of media servers and statelessly dispatching the first client to the first conference on the second media server.
-
-
40. A mesh service for running on a server object on a media server, the media server for facilitating a plurality of conferences among a plurality of clients, the mesh service for dynamically providing virtual connections among the plurality of clients and thereby facilitating the conferences, the mesh service comprising:
-
a receiver object for each type of media handled by the mesh service, the receiver object being operable to receive first data packets from each of the plurality of clients, and convert the first data packets to data units;
a plurality of scheduler objects coupled to the receiver object, each of the scheduler objects being associated with one of the plurality of clients, each scheduler object being operable to receive the data units from the receiver object, select first data units corresponding to the associated client from among the data units, and schedule when the first data units should be transmitted;
a plurality of sorter objects coupled to the scheduler objects, each of the sorter objects being associated with one of the conferences, each sorter object being operable to receive the first data units from selected ones of the scheduler objects associated with the associated conference, and organize the first data units according to priorities;
a plurality of filter objects coupled to sorter objects, each of the filter objects being associated with one of the plurality of clients, each filter object being operable to receive the first data units from each of the sorter objects, and select second data units from among the first data units, the second data units excluding any of the first data units corresponding to the associated client; and
a plurality of sender objects coupled to the filter objects, each of the sender objects being associated with one of the plurality of clients, each sender object being operable to receive the second data units from one of the filter objects which corresponds to the associated client, convert the second data units into second data packets, and transmit the second data packets to the associated client. - View Dependent Claims (41)
-
-
42. A mesh service for running on a media server, the media server for facilitating communication among a plurality of clients, the mesh service comprising:
-
a receiver object for receiving first data packets and converting the first data packets to data units;
a scheduler object for receiving the data units, selecting first data units corresponding to an associated client from among the data units, and scheduling when the first data units should be transmitted;
a sorter object for receiving the first data units, and organizing the first data units according to priorities;
a filter object for receiving the first data units, and selecting second data units from among the first data units, the second data units excluding any of the first data units corresponding to an associated client; and
a sender object for receiving the second data units, converting the second data units into second data packets, and transmitting the second data packets to an associated client;
wherein the receiver, scheduler, sorter, filter, and sender objects are each derived from a common connection object and are dynamically configured to provide virtual connections among the plurality of clients.
-
-
43. A mesh service for running on a media server, the media server for facilitating communication among a plurality of clients, the mesh service comprising:
-
a receiver object for receiving first data packets and converting the first data packets to data units;
a scheduler object for receiving the data units, selecting first data units corresponding to an associated client from among the data units, and scheduling when the first data units should be transmitted; and
a sender object for receiving the first data units, converting the first data units into second data packets, and transmitting the second data packets to an associated client;
wherein the receiver, scheduler, and sender objects are each derived from a common connection object and are dynamically configured to provide virtual connections among the plurality of clients.
-
-
44. A mesh service for running on a media server, the media server for facilitating communication among a plurality of clients, the mesh service comprising a plurality of instances of a connection object class comprising an input method for subscribing to an output of a first connection object and receiving data units therefrom, an output method for transmitting the data units to a second connection object subscribing to the output method, and a clock method for moving the data units from the input method to the output method, wherein the plurality of instances of the connection object class are dynamically configured to provide virtual connections among the plurality of clients.
- 45. A method for facilitating communication among a plurality of clients on a media server, comprising dynamically configuring a plurality of instances of a connection object to provide virtual connections among the plurality of clients, the connection object class comprising an input method for subscribing to an output of a first connection object and receiving data units therefrom, an output method for transmitting the data units to a second connection object subscribing to the output method, and a clock method for moving the data units from the input method to the output method.
-
48. A method for facilitating a first conference on a network between a first client and at least one other client, comprising:
-
transmitting a first request to join the first conference to a dispatch server via the network;
receiving a dispatch command from the dispatch server, the dispatch command identifying a first one of a plurality of media servers;
transmitting a second request to join the first conference to the first media server in response to the dispatch command from the dispatch server; and
establishing a connection with the first media server by which the first client may participate in the first conference.
-
-
49. A computer program product for facilitating a first conference on a network between a first client and at least one other client, comprising:
-
at least one computer readable medium;
computer program instructions embedded in the at least one computer readable medium for causing a computer to;
transmit a first request to join the first conference to a dispatch server via the network;
receive a dispatch command from the dispatch server, the dispatch command identifying a first one of a plurality of media servers;
transmit a second request to join the first conference to the first media server in response to a dispatch command from the dispatch server; and
establish a connection with the first media server by which the first client may participate in the first conference. - View Dependent Claims (50, 51, 52, 53)
-
-
54. A computer data signal embodied in a carrier wave and representing program instructions which, when executed by a processor, cause the processor to facilitate a first conference on a network between a first client and at least one other client by:
-
transmitting a first request to join the first conference to a dispatch server via the network;
receiving a dispatch command from the dispatch server, the dispatch command identifying a first one of a plurality of media servers;
transmitting a second request to join the first conference to the first media server in response to a dispatch command from the dispatch server; and
establishing a connection with the first media server by which the first client may participate in the first conference.
-
-
55. A method for facilitating a first conference on a network between a first client and at least one other client, comprising:
-
transmitting a graphical user interface to the first client via the network, the graphical user interface including an object corresponding to the first conference; and
transmitting first data to the first client via the network, the first data identifying a remote conferencing system, the remote conferencing system including a plurality of media servers coupled to the network, and a dispatch server coupled to the network for statelessly dispatching the first client to the first conference on one of the media servers, the dispatch server being operable in response to a request from the first client to join the first conference to do one of determine which of the media servers is facilitating the first conference, and create the first conference on a first one of the media servers where the first conference is not currently being facilitated.
-
Specification