A method and apparatus for optimizing transmission of data to a plurality of second endpoints in a system wherein a first endpoint is providing data to the plurality of second endpoints each connected by a point-to-point communication channels. This may be useful in teleconferencing applications with a plurality of participants (endpoints) or broadcast server applications. The first endpoint activates a multicast communication channel having a first multicast address and commences broadcast of the data over the multicast communication channel. The first endpoint transmits a request message to each of the plurality of second endpoints in order to query each of the second endpoints whether they can receive transmissions broadcast to the first multicast address. Certain of the plurality of second endpoints transmit an acknowledgment message if they can receive transmissions broadcast to the first multicast address, and the first endpoint receives the acknowledgment message. Then, for each acknowledgment message received from certain of the plurality of second endpoints, the first endpoint deactivates the point-to-point communication channel and the certain of the plurality of second endpoints.
|
0. 58. A method for attaching an auxiliary media source having a first identifier to an ongoing first conference having a plurality of members and a second identifier, said method comprising:
identifying at least one of the members of said first conference;
transmitting a first message, wherein said first message comprises a request to provide a media stream from said auxiliary media source to said at least one member;
responsive to said first message, said at least one member establishing at least one communications link with said auxiliary media source; and
associating said auxiliary media source with said first identifier.
0. 41. A method for merging at least two conferences by an initiating member, wherein said initiating member is participating in at least one of said conferences, said at least two conferences comprising a first conference and a second conference, said first conference having a first membership and a first unique conference identifier associated therewith, and said second conference having a second membership and a second unique conference identifier associated therewith, said method comprising:
transmitting at least a first message, wherein said first message comprises said first and second unique conference identifiers and a request to merge said first conference with said second conference, said first message causing at least one of said first membership or said second membership to establish at least one communications link; and
allowing merging said first membership with said second membership based at least on said first or second unique conference identifier.
0. 16. A method for merging at least two teleconferences by an initiating member, wherein said initiating member is participating in at least one of said teleconferences, said method comprising:
providing a membership of a first teleconference and a membership of a second teleconference, wherein said first teleconference has a first unique conference identifier, and said second teleconference has a second unique conference identifier;
transmitting at least a first message, wherein said first message comprises said first and second unique conference identifiers and a request to merge said first teleconference with said second teleconference;
responsive to said first message, at least one of said membership of said first or second teleconferences establishing at least one communications link; and
merging said membership of said first teleconference with said membership of said second teleconference based at least on said first or second unique conference identifier.
0. 36. A method for merging at least two teleconferences by an initiating member, comprising:
receiving a first message from said initiating member, wherein said first message comprises a merge request, a first unique conference identifier corresponding to a first teleconference, and a second unique conference identifier corresponding to a second teleconference;
determining first and second lists of members, wherein said first list of members corresponds to said first unique conference identifier, and said second list of members corresponds to said second unique conference identifier;
for at least one member of said first or second list, transmitting a second message initiating communication with said at least one member;
receiving a third message, sent in response to said second message, from said at least one member of said first or second list, wherein said third message establishes a connection; and
merging said first and second teleconferences based at least in part on said third message.
0. 56. An apparatus adapted to merge at least two sessions, said at least two sessions comprising a first session and a second session, said first session having a first membership and a first identifier associated therewith, and said second session having a second membership and a second identifier associated therewith, said apparatus comprising:
a digital processor;
a storage medium in data communication with said processor; and
at least one computer program resident in said storage medium, said at least one program comprising a plurality of instructions which, when executed:
transmit at least a first message, wherein said first message comprises said first and second unique conference identifiers and a request to merge said first session with said second session, said first message being configured to cause at least one of said first membership or said second membership to establish at least one point-to-point communications link; and
allow a merge of said first membership with said second membership based at least on said first or second identifier and said first message.
0. 24. An apparatus for use in a first teleconference, said first teleconference comprising at least one member, said apparatus adapted to merge at least one member of a second teleconference with said first teleconference, said apparatus comprising:
a first apparatus adapted to communicate within said first and second teleconferences;
a second apparatus adapted to store and modify a list of members of said first and second teleconferences; and
a computer readable apparatus comprising media adapted to contain a computer program having a plurality of instructions which, when executed:
transmit a first message to one or more members of at least one of said first or second teleconferences, said first message comprising at least a first unique conference identifier and a second unique conference identifier;
responsive to receipt of said first message, cause said one or more members to join said second teleconference to said first teleconference by negotiating one or more communications links; and
create a merged teleconference comprised of at least a subset of the members of said first teleconference and said second teleconference.
0. 46. An apparatus adapted to merge at least two conferences, said at least two conferences comprising a first conference and a second conference, said first conference having a first membership and a first conference identifier associated therewith, and said second conference having a second membership and a second conference identifier associated therewith, said apparatus comprising:
a digital processor;
a storage medium in data communication with said processor, comprising at least one table, said at least one table comprising a plurality of unique conference identifiers and corresponding memberships; and
at least one computer program resident in said storage medium, said at least one program comprising a plurality of instructions which, when executed:
transmit at least a first message, wherein said first message comprises a request to merge said first conference with said second conference, said first message being configured to cause at least one of said first membership or said second membership to establish at least one communications link; and
allow a merge of said first membership with said second membership based at least on said first or second conference identifier.
0. 1. In a system wherein a first endpoint is providing data to a plurality of second endpoints each connected by a point-to-point communication channel with said first endpoint, an automatic method for optimizing the transmission of said data to said plurality of second endpoints comprising the following steps:
a. said first endpoint activating a multicast communication channel having a first multicast address and commencing broadcast of said data over said multicast communication channel;
b. Said first endpoint transmitting a request message to each of said plurality of second endpoints in order to query each of said second endpoints whether they can receive transmissions broadcast to said first multicast address;
c. certain of said plurality of second endpoints transmitting an acknowledgment message and said first endpoint receiving said acknowledgment message;
d. for each said acknowledgment message received from said certain of said plurality of second endpoints which indicates that said certain of said plurality of second endpoints can receive transmissions broadcast to said first multicast address, deactivating said point-to-point communication channel with said first endpoint and said certain of said plurality of second endpoints; and
e. terminating said broadcast of said data and said multicast communication channel if at least two of said plurality of second endpoints do not transmit said acknowledgment messages containing a positive acknowledgment.
0. 2. The method of
0. 3. The method of
0. 4. The method of
0. 5. The method of
0. 6. The method of
0. 7. The method of
0. 8. The method of
0. 9. An apparatus in a first endpoint for transmitting data to a plurality of second endpoints receiving said data from said first endpoint on point-to-point communication channels comprising:
a. a circuit for activating a multicast communication channel having a first multicast address and commencing broadcast of said data over said multicast communication channel;
b. a circuit for transmitting a request message to each of said plurality of second endpoints in order to query each of said second endpoints whether they can receive transmissions broadcast to said first multicast address;
c. a circuit for receiving acknowledgment messages, if any, from certain of said plurality of second endpoints;
d. a circuit for deactivating each said point-to-point communication channel with said certain of said plurality of second endpoints responsive to receiving each said acknowledgment message; and
e. a circuit for terminating said broadcast of said data and said multicast communication channel if at least two of said acknowledgment messages containing a positive acknowledgment are not received.
0. 10. The apparatus of
0. 11. The apparatus of
0. 12. The apparatus of
0. 13. The apparatus of
0. 14. The apparatus of
0. 15. The apparatus of
0. 17. The method of claim 16, wherein said merging said membership of said first teleconference with said membership of said second teleconference based at least on said first or second unique conference identifier comprises merging based on both of said first and second unique conference identifiers.
0. 18. The method of claim 16, wherein said membership of said first teleconference comprises a plurality of first members, and said membership of said second teleconference comprises a plurality of second members.
0. 19. The method of claim 16, wherein said establishing said at least one communications link comprises establishing a point-to-point communications link between a member of said first teleconference and a member of said second teleconference.
0. 20. The method of claim 16, additionally comprising the step of storing a merged membership, said merged membership based at least in part on said act of merging.
0. 21. The method of claim 20, additionally comprising the step of assigning said merged membership to said first unique conference identifier.
0. 22. The method of claim 16, additionally comprising no longer using at least one of said first and second unique conference identifiers after said merging is performed.
0. 23. The method of claim 16, wherein after said merging is performed, said membership of said first teleconference and said membership of said second teleconference utilize said first identifier to identify the merged teleconference.
0. 25. The apparatus of claim 24, wherein said first message further comprises at least a portion of said list of members of said first and second teleconferences.
0. 26. The apparatus of claim 24, wherein said negotiating said one or more communications links comprises establishing a point-to-point link between said one or more members of said first or second teleconference and a member of the other teleconference.
0. 27. The apparatus of claim 24, wherein said apparatus is associated with a member of both said first and second teleconferences.
0. 28. The apparatus of claim 24, wherein said apparatus is an endpoint device within at least one of said first and second teleconferences.
0. 29. The apparatus of claim 24, further comprising:
at least one application process;
at least one conferencing process;
at least one transport process;
at least one network process; and
at least one system process.
0. 30. The apparatus of claim 24, further comprising at least one wireless network interface adapted to permit transmission of data to or from said apparatus without a wireline medium.
0. 31. The apparatus of claim 24, wherein said plurality of instructions additionally, when executed, store a merged membership based at least in part on said merged teleconference.
0. 32. The apparatus of claim 31, wherein said plurality of instructions additionally, when executed, assign said merged membership to said first unique conference identifier.
0. 33. The apparatus of claim 24, wherein said at least one member of said second teleconference comprises an auxiliary source.
0. 34. The apparatus of claim 33, wherein said auxiliary source comprises an auxiliary media source.
0. 35. The method of claim 24, wherein said first message additionally comprises a request to merge said first teleconference with said second teleconference.
0. 37. The method of claim 36, further comprising participating in said first teleconference having said first unique conference identifier, said first teleconference also having merged said at least one member of said first or second list.
0. 38. The method of claim 36, additionally comprising storing a merged membership, said merged membership based at least in part on said act of merging.
0. 39. The method of claim 36, wherein at least one member of said second list comprises an auxiliary source.
0. 40. The method of claim 39, wherein said auxiliary source comprises a media source adapted to provide one or more media services to at least one of said members of said first teleconference.
0. 42. The method of claim 41, additionally comprising the step of storing a merged membership, said merged membership being based at least in part on said merging.
0. 43. The method of claim 42, additionally comprising the step of assigning said merged membership to said first unique conference identifier.
0. 44. The method of claim 43, additionally comprising no longer using at least one of said first and second unique conference identifiers after said merging is performed.
0. 45. The method of claim 41, wherein after said merging is performed, said first and second membership utilize said first unique conference identifier to identify the merged conference.
0. 47. The apparatus of claim 46, further comprising:
a network interface in communication with said processor; and
a network, said network comprising a plurality of other apparatus in data communication therewith, said other apparatus corresponding to individual ones of said first and second memberships.
0. 48. The apparatus of claim 46, wherein said merge of said conferences is initiated by an initiating member participating in at least one of said conferences.
0. 49. The apparatus of claim 46, wherein said plurality of instructions additionally, when executed, store a merged membership to said table, said merged membership based at least in part on said merged conference.
0. 50. The apparatus of claim 49, wherein said plurality of instructions additionally, when executed, assign said merged membership to said first conference identifier in said table.
0. 51. The apparatus of claim 50, wherein said plurality of instructions additionally, when executed, remove said second conference identifier and said second membership from said table.
0. 52. The apparatus of claim 46, wherein at least one member of said second conference comprises an auxiliary source.
0. 53. The apparatus of claim 52, wherein said auxiliary source comprises a multimedia source.
0. 54. The apparatus of claim 46, wherein said apparatus is associated with a member of both said first and second conferences.
0. 55. The apparatus of claim 46, wherein said apparatus is an endpoint within at least one of said first and second conferences.
0. 57. The apparatus of claim 56, wherein said first identifier comprises a first session identifier, and wherein said second identifier comprises a second session identifier.
0. 59. The method of claim 58, wherein said attaching is initiated by an initiating member, wherein said initiating member is participating in said ongoing first conference.
0. 60. The method of claim 59, wherein said first message additionally comprises said first and second identifiers.
0. 61. The method of claim 59, wherein said initiating member comprises a moderator of said ongoing first conference.
0. 62. The method of claim 61, wherein said media stream is controlled by said moderator.
0. 63. The method of claim 58, wherein said at least one communications link comprises a point-to-point link.
|
This application is a continuation reissue of U.S. application Ser. No. 10/857,798 filed May 28, 2004 now U.S. Pat. No. Re. 40,704, issued Apr. 28, 2009, which is a continuation of U.S. Reissue application Ser. No. 10/020,515, filed Dec. 7, 2001, which is a reissue application of U.S. Pat. No. 5,999,977, issued Dec. 7, 1999, which is a continuation of U.S. patent application Ser. No. 08/468,715, now abandoned, filed Jun. 5, 1995, which is a continuation of U.S. patent application Ser. No. 08/396,198, filed Feb. 24, 1995, now U.S. Pat. No. 5,854,898 issued Dec. 29, 1998. Notice: More than one reissue application has been filed for the reissue of U.S. Pat. No. 5,999,977. The reissue applications are application Ser. Nos. 10/020,515, 10/857,798 (now U.S. Pat. No. Re. 40,704), 10/857,799, 10/857,805, 10/857,806, and 12/210,847 (the present application).
1. Field of the Invention
The present invention relates to teleconferencing systems.
More specifically, the present invention relates to the addition of a data stream, such as an auxiliary data stream to a teleconference.
2. Background Information
Teleconferencing is increasingly becoming a popular application in personal computer systems. Such applications typically allow the transfer of audio and video data between users so that they can speak and otherwise communicate with one another. Such applications sometimes also include data sharing wherein various types of data such as documents, spreadsheets, graphic data, or other types of data, can be shared and manipulated by all participants in the teleconference. Different teleconference applications perhaps residing on different hardware platforms have different capabilities. Moreover, a wide variety of features has been implemented in different teleconference applications, and the proliferation of different types of computer systems with different capacities, and different networking media has created challenges for teleconferencing.
For example, for most teleconferencing applications, it is assumed that the sender and the receiver have certain minimum capabilities. However, with the wide diversity of systems having different computation capacities, and in addition, the wide variety of networking media, that certain systems may not have certain capabilities. For example, the first system may be a high performance workstation coupled to a high performance communication medium whereas a second system may employ an earlier generation processor, operate at a substantially slower clock rate, and/or be coupled to a lower capacity communication medium. Certain network capabilities such as multicast or other optimization features, may not be present in certain networking media. Thus, in order for some teleconference applications to function, the participants in the conference can only operate at the fastest possible configuration provided by any minimum system which may participate in the teleconference. Of course, this results in certain inefficiencies, especially if both of the participants are capable of transmitting in a higher capacity than the system with the least possible capability.
Another issue in teleconference applications is the ability of certain stations to participate in more than one teleconference. In fact, in certain circumstances, multiple individual conferences may be desired to be merged by a user according to operating circumstances. Due to the distributed nature of certain networks, during this merge operation, certain circumstances may change. That is, that while a single station is merging more than one conference it is participating in, a second station at a remote location may further have other operating circumstances changing (e.g., participants leaving, entering, or otherwise joining an on-going teleconference), and thus, the management of such merging operations becomes unduly burdensome.
Yet another shortcoming of certain prior art teleconference applications is the ability to associate an independent data stream with an on-going teleconference. For example, a source participant may desire to provide an additional data stream to other participants in a teleconference. This additional source may include, but not be limited to, video, data, audio or any other type of data available to the source participant. For example, such an additional source may include other audio information for a receiver. Other types of data may also be desired to be associated with an on-going teleconference, which may be accessible to other participant in the teleconference. Certain prior art teleconferencing applications lack these abilities.
A method and apparatus for optimizing transmission of data to a plurality of second endpoints in a system wherein a first endpoint is providing data to the plurality of second endpoints each connected by point-to-point communication channels. This may be useful in teleconferencing applications with a plurality of participants (endpoints) or broadcast server applications. The first endpoint activates a multicast communication channel having a first multicast address and commences broadcast of the data over the multicast communication channel. The first endpoint transmits a request message to each of the plurality of second endpoints in order to query each of the second endpoints whether they can receive transmissions broadcast to the first multicast address. Certain of the plurality of second endpoints transmit an acknowledgement message if they can receive transmissions broadcast to the first multicast address, and the first endpoint receives the acknowledgement message. Then, for each acknowledgement message received from certain of the plurality of second endpoints, the first endpoint deactivates the point-to-point communication channel and the certain of the plurality of second endpoints.
The broadcast of the data and the multicast communication channel is terminated if at least two of the plurality of second endpoints do not transmit the acknowledgement messages containing a positive acknowledgement. In this instance, communication channels are maintained as point-to-point. Subsequent to commencing broadcast of the data to the multicast address, the first endpoint can receive detach messages from certain of the plurality of second endpoints, and if at least two of the plurality of second endpoints are not receiving the data, then the first endpoint can terminate the broadcast of the data and the multicast communication channel. Communication of the data in this instance also reverts to point-to-point communication channels.
In implemented embodiments, the acknowledgement message includes a response code which indicates whether the second endpoint can receive transmissions broadcast to the first multicast address. Also, in implemented embodiments, prior to the first endpoint activating the multicast communication channel having the first multicast address, it is determined whether the single communication medium supports broadcasting to the first multicast address, and if not, multicast cannot be activated.
The present invention is illustrated by way of example and not limitation in the figures of the accompanying in which like references indicate similar elements and in which:
The present invention relates to networking systems, more specifically, the present invention describes a messaging protocol for establishing and maintaining teleconference connections between a plurality of participants in a networking system. Applications for this include, transmitting application and/or system capabilities between participants or potential participants in a teleconference, notifying participants of a teleconference that more than one teleconference should be merged, and addition of an auxiliary data stream to an on-going teleconference. Although the present invention will be described with reference to certain specific embodiments thereof, especially, with relation to certain hardware configurations, data structures, packets, method steps, and other specific details, these should not be viewed as limiting the present invention. Various modifications and other may be made by one skilled in the art, without departing from the overall spirit and scope of the present invention.
A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent disclosure, as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyright rights whatsoever. Copyright Apple Computer, Inc.
A typical system configuration in which a teleconference may take place is illustrated as 100 in
A teleconference display is shown at 200 at
In implemented embodiments of the present invention, a general purpose computer system is used for implementing the teleconferencing applications and associated processes to be described here. Although certain of the concepts to be described here will be discussed with reference to teleconferencing, it is apparent that the methods and associated apparatus can be implemented for other applications, such as file sharing, real time data acquisition, or other types of applications which sends data from a first participant to a second participant or set of participants. A computer system such as that used for implementing embodiments of the present invention will now be described.
A computer system, such as a workstation, personal computer or other processing apparatus 150c or 155c as shown in
System 150c may further be coupled to a display device adapter display 321 such as a cathode ray tube (CRT) or liquid crystal display (LCD) coupled to bus 301 for displaying information to a computer user. Such a display 321 may further be coupled to bus 301 for the receipt of video or image information. An alphanumeric input device 322, including alphanumeric and other keys may also be coupled to bus 301 for communicating information and command selections to processor 302. An additional user input device is cursor control 323, such as a mouse, a trackball, stylus, or cursor direction keys, coupled to bus 301 for communicating direction information and command selections to processor 302, and for controlling cursor movement on display 321. For teleconferencing applications, system 150c may also have coupled to it a sound output device 324, a video input device 325, and sound input device 326, along with the associated D/A (Digital-to-Analog) and A/D (Analog-to-Digital) converters for inputting or outputting media signal bitstreams. System 150c may further be coupled to communication device 327 which is coupled to network adapter 160 for communicating with other teleconferencing stations.
Note, also, that any or all of the components of system 150c and associated hardware may be used in various embodiments, however, it can be appreciated that any configuration of the system may be used for various purposes according to the particular implementation.
In one embodiment, system 150c is one of the Apple Computer® brand family of personal computers such as the Macintosh 8100 brand personal computer manufactured by Apple Computer, Inc. of Cupertino, Calif. Processor 302 may be one of the PowerPC brand microprocessors manufactured by Motorola, Inc. of Schaumburg, Ill.
Note that the following discussion of various embodiments discussed herein will refer specifically to a series of routines which are generated in a high-level programming language (e.g., the C or C++ programming language) and compiled, linked, and then run as object code in system 150c during run-time within main memory 304 by processor 302. For example the object code may be generated by the C++ Compiler available from Symantec, Inc. of Cupertino, Calif.
Although a general purpose computer system has been described, it can be appreciated by one skilled in the art, however, that the following methods and apparatus may be implemented in special purpose hardware devices, such as discrete logic devices, large scale integrated circuits (LSI's), application-specific integrated circuits (ASIC's), or other specialized hardware. The description here has equal application to apparatus having similar function.
The transport component 402 and the networking component 403 provide the necessary operations for communication over the particular type of network adapter 160 and networking medium 170 according to implementation. For example, networking component 402 may provide the TCP or ADSP protcols and packetizing, according to those respective standards.
A more detailed view of the conference component 400 is shown in
The conference component's main function is to establish and maintain a bi-directional connection between every member of a conference. Conferencing applications use a pre-established control channel to exchange control data that is pertinent to the conference. This data might include user identification information or other information that is germane to the application's operation. Conferencing applications (e.g., 401) define the format and content of these control messages by establishing their own control protocols. The conferencing component further establishes communication channels between a first endpoint and a second endpoint, using the underlying transport component 402. Thus, once a media channel has been established, the conference component uses the transport component 402's media channel which is provided for transmission of media and non-media information. For the remainder of this application, however, the focus will be on the establishment of communication between a first and second participant (referred to as endpoints) or group of participants which may participate in a teleconference.
The application program 401 controls the conference component 400 by the issuance of MovieTalk application API calls. The conference component operates using an event-driven model wherein events pertinent to the application are issued to the application program. The application program can then take appropriate action either by modifying internal data structures within (creating a source or sink), and/or issuance of appropriate messages over the network to other connected participants, or potential participants. According to messages received by the conference component, a current context and API calls from the application, the conference component can take appropriate action.
A typical series of events which occur after the establishment of a teleconference by the conference component in an application is illustrated in
A typical application's initialization is shown as process 700 of
1. optional;
2. desired;
3. required; or
4. a negotiation message.
These types of capabilities are included in a capabilities list which is transmitted to endpoints, as will be described below. An “optional” capability is a message which is not required to be exchanged before setting up a conference. A “desired” capability is one which is not required that it be exchanged before setting up a conference, however, it is preferred that it is. A “required” capability is one which requires that a message be exchanged before setting up a conference. This may include access control or other messages which are transferred prior to setting up a conference. An access control capability may include the transmission of a account number and password prior to the commencement of a teleconference. A “negotiation message” is a capability which indicates that the application wishes to query the receiving application. In the case of a negotiation message capability, the type field associated with the capability allows the requests of information about the applications prior to the establishment of a conference (e.g. about the type of software and hardware components the application is interested in, such as sound). Any other types of exchanges which require negotiated information between applications may be set.
Once all individual capabilities have been set by the issuance of “Set Capabilities” API calls (e.g. MTConferenceSetCapabilities) to the conference component at step 702, a member may set its operating mode at step 704. The mode will be contained within a mode mask value which is sent in the API call to the conference component, and moreover, is included in certain messages transmitted from the conference component in the sender to the conference component in the receiver. The mode mask specifies the characteristics of a conference that the member makes available. Different capabilities, modes, and other initialization operations shown in
1. send media;
2. receive media;
3. shareable; and
4. joiner.
The “send media” mode flag indicates that the member intends to send media data in its conferences. Most members will want to send media, however, there will be instances where the member will be a receive-only member, thus the send media mode flag will not be set. The receive media mode flag indicates that the member intends to receive media in conferences. In the case of a send-only member (e.g., a server providing a real-time video and/or audio source), will have the receive media mode flag set to “off” (e.g., a numeric value ‘0’). The “shareable” mode flag indicates that the member is willing to share the conference media data with new conference members. Thus, in the instance of a send-only media server, the shareable mode flag would be set indicating that new members can receive the conference data.
The “joiner” mode flag indicates that all conference members are allowed to interact. This would allow two-way transmission between each of the conference members. However, the setting of this flag to “off” (e.g., a numeric value ‘0’) results in broadcast type conferences wherein one member sends media data to other conference members, but the individual conference members do not exchange any media data among themselves. Each of these mode flags is transmitted at the beginning of a connection (e.g., contained within the “hello” message 1400 in
By default, the conference component establishes conferences that are fully two-way media data capable, shareable, and joinable. If different characteristics are desired, then the application must call “set mode” (e.g. MTConferenceSetMode) at step 704, along with the appropriate flag(s) set. Conference mode settings are stored and associated with a particular conference ID in the sender's conference component so that when messages are created for that conference ID, the appropriate mode flags are transmitted along with the initialization or other messages sent before any other communications.
In addition to the capabilities and mode settings at steps 702 and 704, a time-out value associated with calls placed from the member may be set (e.g. using the API call MTConferenceSetTimeOut). The time-out value is then included at the beginning of certain messages preceding a conference in order to enable a recipient to determine when the caller will stop listening for responses. This allows certain features to be incorporated into participant conference components such as the smart triggering of events based upon context. For example, if the recipient is receiving a call, but a user does not wish to take the call at that time, the recipient's conference knows the time-out occurs and can take certain context-dependent action (e.g., forward the call, send a message, etc.).
The application can then invoke an API call “Listen for Call” (e.g. MTConferenceListen) which implements steps 708 and 710. At step 708, using the underlying transport to which the system is connected, a high level address is registered and published. This then allows other potential participants in the system to call the member. The registration and publication of the address is implementation-dependent, depending upon the media to which the system is connected. Then, at step 710, the conference component waits for incoming calls.
The conference component in the member enters an idle state wherein incoming messages, alerts for the transport component, API and calls will be detected and acted upon. Note that the capabilities, mode, and time-out values are all optional, and the default settings may be used by the member if none of these functions is required by the application. In the call to the MTConferenceListen function, the application must specify the networks on which the member is willing to accept calls. The conference component proceeds to register the member on those networks, doing whatever is appropriate in the various network contexts, and sends an mtListenerStatusEvent to the application to specify whether the registration attempt was successful. After listeners are operational, if another application desires to establish communication with the application, then an mtIncomingCallEvent is forwarded to the application.
As shown in
Conference components exchange a number of messages in order to establish, maintain, and terminate conferences. Conference components also send messages that encapsulate user data, that is, the data that is exchanged by the programs that are using the conference.
After establishing a transport connection but prior to establishing a conference channel with a remote system, a conference member may send either a Capabilities message 1300 or an Auxiliary message 1700. The member then sends a Hello message 1400 to identify itself, specifically its mode of operation (send media, receive media, shareable, or joiner) followed by a Call message 1500 (to set up a conference) or a Join message 1800 (to join to an ongoing conference). The remote member sends a Response message 1600 in answer to the Call or a Join message 1800. Once a conference is established, a member can combine calls or conferences by sending a Merge message 1900. Conference members may send or receive a Terminate message 2300 to end a conference. Connections initially are point-to-point between members of a conference. If the transport medium supports multicast addresses and more than one member is participating in a conference, a broadcast to a multicast address can be used as an optimization. The conference component uses the BroadcastRequest and BroadcastAck messages 2400 and 2500 to negotiate the transition from point-to-point to multipoint connections using multicast addresses.
All messages supported in the conference messaging protocol are preceded by a 2-byte character identifying the message type. For example for a capabilities message shown in
Field
Size
Value
type 1302
2 bytes
‘K’
delimiter 1304
1 byte
newline
capabilitiesList 1306
0-n bytes
(alphanumeric)
terminator 1308
1 byte
NULL
capabilitiesList 1306
The Capabilities message 1300 shown in
In response to a negotiation Capabilities message, the remote member formats a user data message, for example, containing available component subtypes. Note that this list may contain duplicate entries and entries with a value of NULL. To parse this array, a member must determine the array's size. After sending a Capabilities message 1300, the member sends a Hello message 1400 to establish a conference.
A Hello message (e.g., 1400 of
Field
Size
Value
type 1402
2 bytes
‘H’
MinimumVersion 1404
1-n bytes
(numeric)
delimiter 1406
1 byte
colon
maximumVersion 1408
1-n bytes
(numeric)
delimiter 1410
1 byte
newline
conferenceMode 1412
1-n bytes
(numeric)
delimiter 1414
1 byte
newline
name 1416
1-n bytes
(alphanumeric)
delimiter 1418
1 byte
newline
terminator 1420
1 byte
NULL
minimumVersion 1404
The Hello message 1400 is the first step in establishing a conference. This message allows conference components on different systems to exchange basic identification and capability information. Before sending a Hello message 1400, a conference component may send either a Capabilities 1300 or an Auxiliary message 1700. The type of message sent depends upon the role the member anticipates playing in the conference. If the member is looking to join or start a conference, the conference component sends a Capabilities message. If the member is setting up an auxiliary media data source, the component sends an Auxiliary message 1700. Following this message, the conference component can enter the call setup phase by sending the Call message 1500. If the member wants to provide an auxiliary data source to an existing conference, or join an existing conference, the component sends the Join message 1800.
Call message 1500 of
Field
Size
Value
type 1502
2 bytes
‘C’
callTime-out 1504
1-n bytes
(numeric)
delimiter 1506
1 byte
tab
ConferenceName 1508
1-n bytes
(alphanumeric)
delimiter 1510
1 byte
newline
callingConfID 1512
1-n bytes
(alphanumeric)
delimiter 1514
1 byte
newline
terminator 1516
1 byte
NULL
callTime-out 1504
The Call message 1500 shown in
The response message 1600 of
Field
Size
Value
type 1602
2 bytes
‘R’
callResponse 1604
1-n bytes
(signednumeric)
delimiter 1606
1 byte
newline
destinationConfID 1608
1-n bytes
(alphanumeric)
delimiter 1610
1 byte
newline
terminator 1612
1 byte
NULL
callResponse 1604
The auxiliary message 1700 allows one member to alert the other members of a conference that it is about to provide an auxiliary media data source (a source associated with an ongoing conference). This message may be used in place of the Capabilities message 1300 if a participant is being alerted about the presence of an auxiliary media source. The member sends this message before sending the Hello and Join Messages 1400 and 1800, and then proceeds to adding an auxiliary data source to the conference.
Field
Size
Value
type 1702
2 bytes
‘A’
parentConfID 1704
1-n bytes
(alphanumeric)
delimiter 1706
1 byte
newline
terminator 1708
1 byte
NULL
parentConfID 1704
The Auxiliary message 1700 informs other conference participants that a member is about to provide an auxiliary conference data source. For auxiliary data sources, this message replace the Capabilities message during early interactions. The member must send this message to each conference participant. The member then sends a Hello 1400 and a Join message 1800 to each participant. Other participants then accept the new data source by accommodating the Join request.
A Join message 1800 of
Field
Size
Value
type 1802
2 bytes
‘J’
destinationConfID 1804
1-n bytes
(alphanumeric)
delimiter 1806
1 byte
newline
callingConfID 1808
1-n bytes
(alphanumeric)
delimiter 1810
1 byte
newline
memberList 1812
0-n bytes
(alphanumeric)
terminator 1814
1 byte
NULL
destinationConf ID 1804
The Join message 1800 allows a member to add an auxiliary data source to an existing conference or to merge two existing conferences. The caller sends this message to members of the conference in response to a merge or join request instead of a call message.
The Merge message 1900 of
Field
Size
Value
type 1902
2 bytes
‘M’
conferenceName 1904
1-n bytes
(alphanumeric)
delimiter 1906
1 byte
newline
myConfID 1908
1-n bytes
(alphanumeric)
delimiter 1910
1 byte
newline
memberlist 1912
0-n bytes
(alphanumeric)
terminator 1914
1 byte
NULL
conferenceName 1904
The Merge message causes the combination of two conferences. This is the mechanism for creating conferences with more than two participants. The caller sends this message to each existing conference member, specifying the conference's name. Each endpoint establishes communications with any new endpoints. By convention, the endpoint with the higher conference identifier value establishes the connection (to avoid duplicate or missed connections). Members of the conference receive a Join message 1900 instead of a Call message 1500 when contacted by each new member.
A capabilities list such as shown in
Field
Size
Value
type 2002
4 bytes
(alphanumeric)
delimiter 2004
1 byte
tab
version 2006
1-n bytes
(numeric)
delimiter 2008
1 byte
tab
desires 2010
1 byte
(alphanumeric)
delimiter 2012
1 byte
newline
type 2002
Conference identifiers such as 2200 shown in
Field
Size
Value
UniqueID 2202
1-n bytes
(numeric)
separator 2204
1 byte.
space
name 2206
1-n bytes
(alphanumeric)
UniqueID 2202
A member list such as 1812 of
The Terminate message 2300 of
Field
Size
Value
type 2302
2 bytes
‘T’
delimiter 2304
1 byte
newline
terminator 2306
1 byte
NULL
The Terminate message 2300 is the last step in ending a member's participation in a conference. This message ends the member's conference communication with all participants to which it sends the message. If a member is leaving a conference altogether, it must send this message to each conference participant.
The BroadcastRequest message 2400 allows a member to find out if another conference member can accept broadcast (multicast) messages.
Field
Size
Value
type 2402
2 bytes
‘B’
subtype 2406
1 byte
‘R’
delimiter 2408
1 byte
tab
multicastAddress 2410
1-n bytes
(alphanumeric)
delimiter 2412
1 byte
newline
terminator 2414
1 byte
NULL
subtype 2406
The BroadcastRequest message 2400 allows a member to determine whether another conference member can accept broadcast messages over a given multicast network address. The recipient indicates its ability to support the broadcast messages by sending a BroadcastAck message 2500 (described below). If the recipient cannot support broadcast messaging or cannot access this particular broadcast transmission, the calling member should continue to send point-to-point messages to the recipient.
The BroadcastRequest message 2400 is typically uses as part of the negotiation process that follows merging two conferences or the joining of any new members to a conference. As an optimization, conference participants may choose to set up broadcast capabilities as a more-efficient alternative to maintaining several different point-to-point connections.
The BroadcastAck message 2500 allows a member to respond to a BroadcastRequest message 2400.
Field
Size
Value
type 2502
2 bytes
‘B’
subtype 2504
1 byte
‘A’
delimiter 2506
1 byte
tab
broadcastResponse 2508
1-n bytes
(signed numeric)
delimiter 2510
1 byte
newline
terminator 2512
1 byte
NULL
subtype 2504
The BroadcastAck message 2500 allows a member to indicate whether it can receive messages over a proposed multicast address. Another conference participant proposes a multicast address by sending a BroadcastRequest message 2408. If the recipient can support that address, it sets the broadcastResponse field 2508 to ‘0’. Otherwise, the broadcastResponse field 2580 contains an appropriate non-zero result code. This message is typically used as part of the negotiation process that follows merging two conferences. As an optimization, conference participants may choose to set up broadcast capabilities as a more-efficient alternative to maintaining several different point-to-point connections.
Join operations have the protocol illustrated in
The merge membership function 2664 is shown in more detail in
Merge operations are initiated using a “Merge” message (e.g., 1900 of
In addition to using conference ID's for performing merge and subsequent join operations, contained within each Merge and Join message is a list of members of the conferences being merged or joined. These are included in the memberList fields 1812 or 1912 of messages 1800 or 1900. For example, due to propagation delays in a networking system, old conference ID's may still exist in peripheral participants, and therefore during merging and or joining operations, conference ID's may become invalid due to members merging conferences, etc. . . . , or reference conference ID's which no longer exist. Thus, contained within each conference component in a member is a current conferences table such as 2900 shown in
An auxiliary media source can become part of an ongoing conference. The media source is associated with an ongoing conference by a invoking reference to the main conference stored in each conference component (e.g. by the API call MTConferenceAttachAuxiliarySource), however, it is treated as a separate conference in each conference component. For example, as illustrated with reference to
An example session using the protocols described above is shown in
Subsequent to the exchange of capabilities, hello, and call and response, a merge message 3514 is received by the first endpoint including the conference name “Some Conference”, a conf ID=137 “mtlkatlk Hillary Rodham: Video Phone: Video Zone” and a member list. The endpoint then processes the merge, placing a call sending capabilities, and hello to a member of the old conference, and a join along with the member list as shown by messages 3516, 3518, and 3520. Once the connection has been established, capabilities and hello messages 3524 and 3526 are received from the recipient. Responsive to the join the recipient sends a response message 3528 with the result=0 (request successful). Subsequent thereto, the endpoint then attempts to use a multicast address by transmitting broadcast request messages 3530 and 3532. The other members respond with broadcast Acks 3534 and 3536, allowing the use of multicast. The conference can then be terminated at any time by any of the members via the transmission of terminate messages to all of the members, such as 3538 and 3540.
Thus, by use of the foregoing, connections between endpoints, such as for teleconferences between teleconferencing systems, can be enabled. This includes, but is not limited to, the exchange of capabilities and notification of connections between endpoints, the addition of auxiliary data streams to such connections, and the merging of existing connections. It will be appreciated that though the foregoing has been described especially with reference to
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
3584142, | |||
4100377, | Apr 28 1977 | Bell Telephone Laboratories, Incorporated | Packet transmission of speech |
4387271, | Nov 19 1979 | Cselt Centro Studi e Laboratori Telecomunicazioni S.p.A. | Combined telephone and data-transfer system |
4506358, | Jun 25 1982 | AT&T Bell Laboratories | Time stamping for a packet switching system |
4507781, | Mar 14 1980 | IBM Corporation | Time domain multiple access broadcasting, multipoint, and conferencing communication apparatus and method |
4509167, | Aug 05 1983 | AT&T Bell Laboratories; American Bell, Inc. | Data conference arrangement |
4516156, | Mar 15 1982 | Verizon Patent and Licensing Inc | Teleconferencing method and system |
4525779, | Mar 30 1983 | Reuters Ltd. | Conversational video system |
4574374, | Oct 25 1983 | AT&T Bell Laboratories | Multilocation video conference terminal including rapid video switching |
4627052, | Mar 19 1984 | International Computers Limited | Interconnection of communications networks |
4645872, | Apr 01 1982 | John Hopkins University | Videophone network system |
4650929, | Feb 29 1984 | Heinrich-Hertz-Institut fur Nachrichtentechnik Berlin GmbH | Communication system for videoconferencing |
4653090, | Dec 16 1985 | American Telephone & Telegraph (AT&T); AT&T Information Systems (AT&T-IS) | Graphics based call management |
4686698, | Apr 08 1985 | Datapoint Corporation | Workstation for interfacing with a video conferencing network |
4691314, | Oct 30 1985 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Method and apparatus for transmitting data in adjustable-sized packets |
4707831, | Oct 25 1984 | STC PLC, 10 MALTRAVERS STREET, LONDON, WC2R 3HA, ENGLAND A BRITISH COMPANY | Packet switching system |
4710917, | Apr 08 1985 | Datapoint Corporation | Video conferencing network |
4734765, | Dec 02 1977 | Nippon Telegraph & Telephone Corporation | Video/audio information transmission system |
4748620, | Feb 28 1986 | American Telephone and Telegraph Company, AT&T Bell Laboratories | Time stamp and packet virtual sequence numbering for reconstructing information signals from packets |
4756019, | Aug 27 1986 | Traffic routing and automatic network management system for telecommunication networks | |
4760572, | Dec 27 1985 | Kabushiki Kaisha Toshiba | Limited multicast communication method and communication network system realizing the method |
4763317, | Dec 13 1985 | American Telephone and Telegraph Company, AT&T Bell Laboratories | Digital communication network architecture for providing universal information services |
4785415, | Aug 29 1986 | Hewlett-Packard Company; HEWLETT-PACKARD COMPANY, A CA CORP | Digital data buffer and variable shift register |
4827339, | Feb 20 1986 | Kokusai Denshin Denwa Co., Ltd. | Moving picture signal transmission system |
4847829, | Apr 08 1985 | Datapoint Corporation | Video conferencing network |
4849811, | Jul 06 1988 | Simultaneous audio and video transmission with restricted bandwidth | |
4882743, | Aug 01 1988 | American Telephone and Telegraph; AT&T Bell Laboratories | Multi-location video conference system |
4888795, | Jun 30 1987 | NEC Corporation | Videotelephone apparatus for transmitting high and low resolution video signals over telephone exchange lines |
4893326, | May 04 1987 | VIDEO TELECOM CORP | Video-telephone communications system |
4897866, | Oct 19 1988 | American Telephone and Telegraph Company, AT&T Bell Laboratories | Telecommunication system with subscriber controlled feature modification |
4905231, | May 03 1988 | American Telephone and Telegraph Company, AT&T Bell Laboratories | Multi-media virtual circuit |
4918718, | Jun 28 1988 | MITSUBISHI ELECTRONICS AMERICA, INC | Quadrature amplitude modulation with line synchronization pulse for video telephone |
4924311, | Apr 15 1988 | NEC CORPORATION, | Dual-mode teleconferencing system |
4926415, | Feb 04 1987 | Kabushiki Kaisha Toshiba | Local area network system for efficiently transferring messages of different sizes |
4932047, | Nov 07 1985 | MITSUBISHI ELECTRONICS AMERICA, INC | Conversational video phone |
4935953, | Apr 27 1989 | International Business Machines Corporation | Cyclic video region transmission for videoconferencing systems |
4937856, | Jun 01 1987 | DSP TECHNOLOGY CORP , 1325 CAPATIAL PARKWAY, CARROLLTON, TX 75006 | Digital voice conferencing bridge |
4942470, | Jul 20 1984 | NEC Corporation | Real time processor for video signals |
4942540, | Mar 02 1987 | Intel Corporation | Method an apparatus for specification of communication parameters |
4942569, | Feb 29 1988 | Kabushiki Kaisha Toshiba | Congestion control method for packet switching apparatus |
4943994, | Oct 30 1987 | Luma Telecom Incorporated; Mitsubishi Denki Kabushiki Kaisha | Still picture picturephone communications system |
4945410, | Feb 09 1987 | SILVER,LOUIS | Satellite communications system for medical related images |
4949169, | Oct 27 1989 | International Business Machines Corporation | Audio-video data interface for a high speed communication link in a video-graphics display window environment |
4953159, | Jan 03 1989 | AVAYA Inc | Audiographics conferencing arrangement |
4953196, | May 13 1987 | Ricoh Company, Ltd. | Image transmission system |
4962521, | Dec 17 1987 | Mitsubishi Denki Kabushiki Kaisha | Apparatus for still picture video telephone apparatus and methods for transmitting and displaying still picture image for use therein |
4965819, | Sep 22 1988 | MULTIMEDIA TELESYS INC | Video conferencing system for courtroom and other applications |
4991169, | Aug 02 1988 | International Business Machines Corporation | Real-time digital signal processing relative to multiple digital communication channels |
4991171, | Sep 26 1989 | AT&T Bell Laboratories | Broadcast packet switch network |
4995071, | Jul 08 1988 | Telenorma Telefonbau und Normalzeit GmbH | Video conference installation |
4999766, | Jun 13 1988 | International Business Machines Corporation | Managing host to workstation file transfer |
5003532, | Jun 02 1989 | Cisco Technology, Inc | Multi-point conference system |
5014267, | Apr 06 1989 | Datapoint Corporation | Video conferencing network |
5020023, | Feb 23 1989 | International Business Machines Corporation | Automatic vernier synchronization of skewed data streams |
5034916, | Oct 24 1988 | Reuters Limited | Fast contact conversational video system |
5042006, | Feb 27 1988 | Alcatel N. V. | Method of and circuit arrangement for guiding a user of a communication or data terminal |
5042062, | Oct 23 1989 | AT&T Bell Laboratories | Method and apparatus for providing real-time switching of high bandwidth transmission channels |
5046079, | Oct 14 1988 | Hashimoto Corporation | Telephone answering device with TV telephone |
5046080, | May 30 1989 | Electronics and Telecommunications Research Institute; Korea Telecommunication Authority | Video codec including pipelined processing elements |
5050166, | Mar 17 1987 | QPSX COMMUNICATIONS LTD | Transfer of messages in a multiplexed system |
5056136, | Mar 09 1990 | The United States of America as represented by the United States | Secure video communications system |
5062136, | Sep 12 1990 | The United States of America as represented by the Secretary of the Navy | Telecommunications system and method |
5072442, | Feb 28 1990 | Harris Corporation | Multiple clock rate teleconferencing network |
5077732, | Nov 14 1988 | Datapoint Corporation | LAN with dynamically selectable multiple operational capabilities |
5079627, | Jun 15 1988 | Optum Corporation | Videophone |
5083269, | Jan 10 1989 | Kabushiki Kaisha Toshiba | Buffer device suitable for asynchronous transfer mode communication |
5099510, | Jun 11 1990 | Communications Network Enhancement Inc.; COMMUNICATION NETWORK ENHANCEMENT INC | Teleconferencing with bridge partitioning and other features |
5101451, | Dec 29 1988 | AT&T Bell Laboratories; AMERICAN TELEPHONE AND TELEGRAPH COMPANY, | Real-time network routing |
5109483, | Jun 15 1987 | CISCO TECHNOLOGY, INC , A CORPORATION OF CALIFORNIA | Node initiating XID exchanges over an activated link including an exchange of sets of binding signals between nodes for establishing sessions |
5132966, | Mar 23 1989 | Juniper Networks, Inc | Call control with transmission priority in a packet communication network of an ATM type |
5136581, | Jul 02 1990 | AT&T Bell Laboratories | Arrangement for reserving and allocating a plurality of competing demands for an ordered bus communication network |
5136692, | Feb 13 1987 | International Business Machines Corporation | Memory disk buffer manager |
5140417, | Jun 20 1989 | Matsushita Electric Co., Ltd. | Fast packet transmission system of video data |
5140584, | Mar 01 1989 | Kabushiki Kaisha Toshiba | Packet communication system and method of controlling same |
5155594, | May 11 1990 | Polycom, Inc | Hierarchical encoding method and apparatus employing background references for efficiently communicating image sequences |
5157662, | Feb 13 1990 | Hitachi, Ltd. | Data communication apparatus having communication-mode changeover function and method of data communication between data communication stations having the same |
5163045, | Oct 01 1990 | American Telephone and Telegraph Company | Communications network arranged to transport connection oriented and connectionless messages |
5177604, | May 14 1986 | Radio Telcom & Technology, Inc. | Interactive television and data transmission system |
5192999, | Apr 25 1991 | Gateway, Inc | Multipurpose computerized television |
5195086, | Apr 12 1990 | AT&T Bell Laboratories; AMERICAN TELEPHONE AND TELEGRAPH COMPANY, A CORP OF NEW YORK | Multiple call control method in a multimedia conferencing system |
5200951, | Sep 12 1989 | Siemens-Albis AG | Apparatus and method for transmitting messages between a plurality of subscriber stations |
5206934, | Aug 15 1989 | IMAGEXPO, L L C | Method and apparatus for interactive computer conferencing |
5210836, | Oct 13 1989 | TEXAS INSTRUMENTS INCORPORATED, A CORP OF DE | Instruction generator architecture for a video signal processor controller |
5220653, | Oct 26 1990 | International Business Machines Corporation; INTERNATIONAL BUSINESS MACHINES CORPORATION, ARMONK, NY 10504 A CORP OF NY | Scheduling input/output operations in multitasking systems |
5231492, | Mar 16 1989 | Fujitsu Limited | Video and audio multiplex transmission system |
5241625, | Nov 27 1990 | NETOPIA, INC | Screen image sharing among heterogeneous computers |
5243596, | Mar 18 1992 | Round Rock Research, LLC | Network architecture suitable for multicasting and resource locking |
5247626, | May 29 1990 | Intellectual Ventures I LLC | FDDI controller having flexible buffer management |
5253251, | Jan 08 1991 | S AQUA SEMICONDUCTOR, LLC | Switching system with time-stamped packet distribution input stage and packet sequencing output stage |
5276679, | Feb 12 1992 | Qwest Communications International Inc | Method for maintaining channels and a subscriber station for use in an ISDN system |
5283638, | Apr 25 1991 | Gateway 2000 | Multimedia computing and telecommunications workstation |
5289470, | Dec 14 1992 | International Business Machines Corp.; International Business Machines Corp | Flexible scheme for buffer space allocation in networking devices |
5291492, | Dec 18 1991 | MPL APPLICATIONS, L L C | Externally controlled call processing system |
5297143, | Dec 03 1990 | Echelon Systems, Corp. | Network communication protocol including a reliable multicasting technique |
5307351, | Aug 26 1991 | Motorola, Inc | Data communication apparatus for adjusting frame length and method of operating same |
5309433, | Jun 18 1992 | Toshiba Global Commerce Solutions Holdings Corporation | Methods and apparatus for routing packets in packet transmission networks |
5311585, | Apr 14 1992 | AT&T Bell Laboratories; AMERICAN TELEPHONE AND TELEGRAPH COMPANY A CORPORATION OF NEW YORK | Carrier proportioned routing |
5313454, | Apr 01 1992 | Cisco Technology, Inc | Congestion control for cell networks |
5313455, | Apr 23 1990 | KONINKLIJKE KPN N V | Transmission system with recording of untransmitted packets |
5315586, | Jun 28 1991 | Ciena Corporation | Resource reallocation for flow-enforced user traffic |
5323445, | Mar 07 1991 | Mitsubishi Denki Kabushiki Kaisha | Multi-location television conference system |
5333135, | Feb 01 1993 | Koninklijke Philips Electronics N V | Identification of a data stream transmitted as a sequence of packets |
5333299, | Dec 31 1991 | International Business Machines Corporation | Synchronization techniques for multimedia data streams |
5341374, | Mar 01 1991 | TRILAN SYSTEMS CORPORATION A CORPORATION OF DELAWARE | Communication network integrating voice data and video with distributed call processing |
5355371, | Jun 18 1982 | International Business Machines Corp | Multicast communication tree creation and control method and apparatus |
5367637, | Mar 26 1992 | International Business Machines Corporation; INTERNATIONAL BUSINESS MACHINES CORPORATION A CORPORATION OF NEW YORK | Self-tuning virtual storage management for dedicated real-time computer system |
5371534, | Jul 23 1992 | American Telephone and Telegraph Company | ISDN-based system for making a video call |
5373549, | Dec 23 1992 | AVAYA Inc | Multi-level conference management and notification |
5374952, | Jun 03 1993 | C-Phone Corporation | Videoconferencing system |
5375068, | Jun 03 1992 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Video teleconferencing for networked workstations |
5377196, | Mar 12 1991 | Agilent Technologies Inc | System and method of proactively and reactively diagnosing a data communication network |
5384770, | May 08 1992 | TELOGY NETWORKS, INC | Packet assembler |
5392344, | Oct 03 1991 | AT&T Corp. | Communications network class-of-service routing |
5402412, | Oct 15 1993 | ALCATEL USA, INC | System and method for monitoring a stream of events |
5422883, | Oct 16 1992 | IBM Corporation | Call setup and channel allocation for a multi-media network bus |
5422942, | Sep 14 1992 | Sony Corporation | Incoming call transfer terminal |
5432525, | Jul 26 1989 | Hitachi, Ltd. | Multimedia telemeeting terminal device, terminal device system and manipulation method thereof |
5434860, | Apr 20 1994 | Apple Inc | Flow control for real-time data streams |
5440624, | Nov 10 1992 | NETMEDIA, INC | Method and apparatus for providing adaptive administration and control of an electronic conference |
5442749, | Aug 22 1991 | Sun Microsystems, Inc. | Network video server system receiving requests from clients for specific formatted data through a default channel and establishing communication through separate control and data channels |
5444709, | Sep 30 1993 | Apple Inc | Protocol for transporting real time data |
5453780, | Apr 28 1994 | SHINGO LIMITED LIABILITY COMPANY | Continous presence video signal combiner |
5455826, | Jun 28 1994 | ENTERASYS NETWORKS, INC | Method and apparatus for rate based flow control |
5455854, | Oct 26 1993 | Apple Inc | Object-oriented telephony system |
5459725, | Mar 22 1994 | INTERGRAPH HARDWARE TECHNOLOGIES COMPANY INC | Reliable multicasting over spanning trees in packet communications networks |
5473679, | Dec 09 1993 | AT&T IPM Corp | Signaling system for broadband communications networks |
5475746, | Sep 22 1993 | AT&T IPM Corp | Method for permitting subscribers to change call features in real time |
5477546, | Jul 15 1991 | Hitachi, Ltd. | Teleconference terminal equipment and teleconference module |
5483587, | Jun 08 1994 | GLOBAL CROSSING TELECOMMUNICATIONS, INC | System and method for call conferencing |
5483588, | Dec 23 1994 | Cisco Technology, Inc | Voice processing interface for a teleconference system |
5487167, | Dec 31 1991 | LENOVO SINGAPORE PTE LTD | Personal computer with generalized data streaming apparatus for multimedia devices |
5490247, | Nov 24 1993 | Intel Corporation | Video subsystem for computer-based conferencing system |
5491798, | Sep 25 1993 | International Business Machines Corporation | Method for network call management |
5502726, | Jan 31 1992 | Nellcor Puritan Bennett Incorporated | Serial layered medical network |
5506844, | May 20 1994 | Google Technology Holdings LLC | Method for configuring a statistical multiplexer to dynamically allocate communication channel bandwidth |
5506954, | Nov 24 1993 | Intel Corporation | PC-based conferencing system |
5509010, | Jun 25 1993 | AT&T IPM Corp | Communications signaling protocols |
5511168, | Jul 01 1993 | ENTERASYS NETWORKS, INC | Virtual circuit manager for multicast messaging |
5515491, | Dec 31 1992 | International Business Machines Corporation | Method and system for managing communications within a collaborative data processing system |
5522073, | Nov 22 1993 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Method and apparatus for automating and controlling execution of software tools and tool sets via when/then relationships |
5524110, | Nov 15 1994 | Intel Corporation | Conferencing over multiple transports |
5526037, | Oct 20 1993 | LIBRE HOLDINGS, INC | Method for remotely controlling a peripheral device in a videoconferencing system |
5530808, | Dec 10 1993 | International Business Machines Corporation | System for transferring ownership of transmitted data packet from source node to destination node upon reception of echo packet at source node from destination node |
5530902, | Jun 14 1993 | CDC PROPRIETE INTELLECTUELLE | Data packet switching system having DMA controller, service arbiter, buffer type managers, and buffer managers for managing data transfer to provide less processor intervention |
5532937, | Jan 31 1994 | CISCO TECHNOLOGY, INC , A CORPORATION OF CALIFORNIA | Switching of multiple multimedia data streams |
5537548, | Aug 08 1991 | International Business Machines Corporation | Method of computer conferencing by intercepting commands issued by application programs and redirecting to all stations for execution |
5541927, | Aug 24 1994 | THE CHASE MANHATTAN BANK, AS COLLATERAL AGENT | Method of multicasting |
5544300, | Nov 12 1993 | Intel Corporation | User interface for dynamically converting between a single top level window and multiple top level windows |
5546395, | Jul 07 1994 | MULTI-TECH SYSTEMS, INC | Dynamic selection of compression rate for a voice compression algorithm in a voice over data modem |
5550754, | May 13 1994 | KRESTEL SOL GROUP S I , LLC | Teleconferencing camcorder |
5557724, | Oct 12 1993 | Intel Corporation | User interface, method, and apparatus selecting and playing channels having video, audio, and/or text streams |
5557749, | Oct 15 1992 | Micron Technology, Inc | System for automatically compressing and decompressing data for sender and receiver processes upon determination of a common compression/decompression method understood by both sender and receiver processes |
5566000, | Nov 15 1993 | Qualcomm Incorporated | System and method for reducing bottlenecks in low data rate networks processing facsimile data transmission |
5572232, | Aug 06 1993 | Intel Corporation | Method and apparatus for displaying an image using subsystem interrogation |
5572582, | Feb 24 1995 | Apple Inc | Method and apparatus for establishing communication between two teleconferencing endpoints |
5574934, | Nov 24 1993 | Intel Corporation | Preemptive priority-based transmission of signals using virtual channels |
5577208, | Jun 25 1991 | Alcatel NV | "Multimedia" intercommunication between workstations having auxiliary unit directly connected to output of workstation and input to display wherein local and remote image data are combined |
5587928, | May 13 1994 | Intel Corporation | Computer teleconferencing method and apparatus |
5594859, | Jun 03 1992 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Graphical user interface for video teleconferencing |
5600646, | Jan 27 1995 | Cisco Technology, Inc | Video teleconferencing system with digital transcoding |
5600797, | Nov 15 1994 | Intel Corporation | System for identifying new client and allocating bandwidth thereto by monitoring transmission of message received periodically from client computers informing of their current status |
5604742, | May 31 1995 | International Business Machines Corporation | Communications system and method for efficient management of bandwidth in a FDDI station |
5606554, | Jul 15 1991 | Hitachi, Ltd. | Teleconference terminal equipment and teleconference module |
5608653, | Jun 03 1992 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Video teleconferencing for networked workstations |
5612788, | Jul 30 1993 | Sony Corporation; Sony United Kingdom Limited | Video data compression apparatus for recording and reproducing compressed video data at their various compressed data rates |
5617539, | Oct 01 1993 | Pragmatus AV LLC | Multimedia collaboration system with separate data network and A/V network controlled by information transmitting on the data network |
5621894, | Nov 05 1993 | Microsoft Technology Licensing, LLC | System and method for exchanging computer data processing capabilites |
5623483, | May 11 1995 | THE CHASE MANHATTAN BANK, AS COLLATERAL AGENT | Synchronization system for networked multimedia streams |
5623490, | Jun 09 1993 | RPX Corporation | Method and apparatus for multiple media digital communication system |
5623690, | Jun 03 1992 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Audio/video storage and retrieval for multimedia workstations by interleaving audio and video data in data file |
5625407, | Jul 08 1994 | AVAYA Inc | Seamless multimedia conferencing system using an enhanced multipoint control unit and enhanced endpoint devices |
5627978, | Dec 16 1994 | AVAYA Inc | Graphical user interface for multimedia call set-up and call handling in a virtual conference on a desktop computer conferencing system |
5632022, | Nov 13 1991 | The United States of America as represented by the Administrator of the; CALIFORNIA INSTITUTE OF TECHNOLOGY A CORPORATION OF CA; UNITED STATES OF AMERICA, THE, AS REPRESENTED BY THE ADMINISTRATIOI OF THE NATIONAL AERONAOUTICS AND SPACE ADMIN | Encyclopedia of software components |
5649105, | Nov 10 1992 | IBM Corp. | Collaborative working in a network |
5652887, | Jun 22 1994 | International Business Machines Corporation | Dynamic Meta commands for peripheral devices |
5659692, | Jan 13 1992 | Massachusetts Institute of Technology | Computer method and apparatus for video conferencing |
5664126, | Jul 24 1992 | Kabushiki Kaisha Toshiba | Human interface system for communicating networked users |
5664164, | Feb 24 1995 | Apple Inc | Synchronization of one or more data streams |
5664226, | Sep 08 1994 | International Business Machines Corporation | System for merging plurality of atomic data elements into single synchronized file by assigning ouput rate to each channel in response to presentation time duration |
5671428, | Aug 28 1991 | Kabushiki Kaisha Toshiba | Collaborative document processing system with version and comment management |
5673393, | Nov 24 1993 | Intel Corporation | Managing bandwidth over a computer network having a management computer that allocates bandwidth to client computers upon request |
5674003, | Apr 28 1995 | Intel Corporation | Mechanisms for accessing unique features of telephony networks from a protocol-Independent data transport interface |
5689641, | Oct 01 1993 | Pragmatus AV LLC | Multimedia collaboration system arrangement for routing compressed AV signal through a participant site without decompressing the AV signal |
5708697, | Jun 27 1996 | Verizon Patent and Licensing Inc | Communication network call traffic manager |
5710591, | Jun 27 1995 | RPX Corporation | Method and apparatus for recording and indexing an audio and multimedia conference |
5717863, | Sep 27 1995 | Intel Corporation | Method and apparatus for managing pc conference connection addresses |
5721729, | Jan 24 1996 | Universal input call processing system | |
5724508, | Mar 09 1995 | Meta Platforms, Inc | Apparatus for collaborative computing |
5724578, | Dec 07 1994 | Fujitsu Limited | File managing system for managing files shared with a plurality of users |
5729687, | Dec 20 1993 | Intel Corporation | System for sending differences between joining meeting information and public meeting information between participants in computer conference upon comparing annotations of joining and public meeting information |
5737599, | Sep 26 1995 | Adobe Systems, Inc | Method and apparatus for downloading multi-page electronic documents with hint information |
5742670, | Jan 09 1995 | NCR Corporation | Passive telephone monitor to control collaborative systems |
5742773, | Apr 18 1996 | Microsoft Technology Licensing, LLC | Method and system for audio compression negotiation for multiple channels |
5754306, | Jun 15 1993 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | System and method for a communication system |
5754765, | Nov 24 1993 | Intel Corporation | Automatic transport detection by attempting to establish communication session using list of possible transports and corresponding media dependent modules |
5758079, | Oct 01 1993 | Pragmatus AV LLC | Call control in video conferencing allowing acceptance and identification of participants in a new incoming call during an active teleconference |
5760769, | Dec 22 1995 | Intel Corporation | Apparatus and method for identifying a shared application program in a computer during teleconferencing |
5764915, | Mar 08 1996 | International Business Machines Corporation | Object-oriented communication interface for network protocol access using the selected newly created protocol interface object and newly created protocol layer objects in the protocol stack |
5793365, | Jan 02 1996 | Oracle America, Inc | System and method providing a computer user interface enabling access to distributed workgroup members |
5799151, | Apr 04 1994 | Interactive electronic trade network and user interface | |
5801700, | Jan 19 1996 | SAMSUNG ELECTRONICS CO , LTD | System and method for an iconic drag and drop interface for electronic file transfer |
5809237, | Nov 24 1993 | Intel Corporation | Registration of computer-based conferencing system |
5841763, | Jun 13 1995 | AVAYA Holdings Limited | Audio-video conferencing system |
5841976, | Mar 29 1996 | Intel Corporation | Method and apparatus for supporting multipoint communications in a protocol-independent manner |
5848143, | Mar 02 1995 | Cisco Systems, Inc | Communications system using a central controller to control at least one network and agent system |
5854898, | Feb 24 1995 | Apple Inc | System for automatically adding additional data stream to existing media connection between two end points upon exchange of notifying and confirmation messages therebetween |
5857189, | May 08 1996 | Apple Inc | File sharing in a teleconference application |
5859979, | Nov 24 1993 | Intel Corporation | System for negotiating conferencing capabilities by selecting a subset of a non-unique set of conferencing capabilities to specify a unique set of conferencing capabilities |
5864678, | May 08 1996 | Apple Inc | System for detecting and reporting data flow imbalance between computers using grab rate outflow rate arrival rate and play rate |
5872923, | Mar 19 1993 | NCR Corporation | Collaborative video conferencing system |
5887170, | Feb 13 1995 | International Business Machines Corporation | System for classifying and sending selective requests to different participants of a collaborative application thereby allowing concurrent execution of collaborative and non-collaborative applications |
5903754, | Jun 21 1994 | Microsoft Technology Licensing, LLC | Dynamic layered protocol stack |
5907324, | Jun 07 1995 | Intel Corporation | Method for saving and accessing desktop conference characteristics with a persistent conference object |
5913062, | Nov 24 1993 | Intel Corporation | Conference system having an audio manager using local and remote audio stream state machines for providing audio control functions during a conference session |
5920732, | Jul 01 1996 | Apple Inc | System for preallocating additional larger buffer sizes in accordance with packet sizes of discarded packets that can't be stored in existing preallocated buffer sizes |
5931961, | May 08 1996 | Apple Inc | Discovery of acceptable packet size using ICMP echo |
5933597, | Apr 04 1996 | Cisco Technology, Inc | Method and system for sharing objects between local and remote terminals |
5973724, | Feb 24 1995 | Apple Inc | Merging multiple teleconferences |
5983261, | Jul 01 1996 | Apple Inc | Method and apparatus for allocating bandwidth in teleconferencing applications using bandwidth control |
5995491, | Jun 09 1993 | RPX Corporation | Method and apparatus for multiple media digital communication system |
5999977, | Feb 24 1995 | Apple Inc | System for terminating multicast channel and data broadcast when at least two second endpoints do not transmit positive acknowledgment message to first endpont |
6008806, | Dec 13 1994 | Microsoft Technology Licensing, LLC | Shell extensions for an operating system |
6104706, | Jun 09 1993 | RPX Corporation | Method and apparatus for multiple media digital communication system |
6151619, | Nov 26 1996 | Apple Inc | Method and apparatus for maintaining configuration information of a teleconference and identification of endpoint during teleconference |
6175856, | Sep 30 1996 | Apple Inc | Method and apparatus for dynamic selection of compression processing during teleconference call initiation |
6189034, | May 08 1996 | Apple Inc | Method and apparatus for dynamic launching of a teleconferencing application upon receipt of a call |
6295549, | May 08 1996 | Apple Inc | Method and apparatus for listening for incoming calls on multiple port/socket combinations |
6505234, | May 08 1996 | Apple Inc | Method and apparatus for listening for incoming calls on multiple port/socket combinations |
6738357, | Jun 09 1993 | RPX Corporation | Method and apparatus for multiple media digital communication system |
6745228, | May 08 1996 | Apple Inc | Method and apparatus for listening for incoming calls on multiple port/socket combinations |
7039019, | Mar 27 2001 | Kabushiki Kaisha Toshiba | Telephone exchanging apparatus and telephone system |
7050425, | Jun 09 1993 | RPX Corporation | Apparatus for multiple media digital communication |
7075924, | Jun 09 1993 | RPX Corporation | Methods for multiple media digital communication |
7167897, | May 08 1996 | Apple Inc | Accessories providing a telephone conference application one or more capabilities independent of the teleconference application |
7392286, | May 08 1996 | Apple Inc | Accessories for teleconference component |
7415499, | May 08 1996 | Apple Inc | Method and apparatus for listening for incoming calls on multiple port/socket combinations |
7437420, | May 08 1996 | Apple Inc | Accessories providing a telephone conference application one or more capabilities independent of the teleconference application |
20020029350, | |||
20020073150, | |||
20020076025, | |||
CA2080530, | |||
EP279232, | |||
EP453128, | |||
EP1670197, | |||
EP1816786, | |||
GB2289149, | |||
RE39135, | Jul 01 1996 | Apple Computer, Inc. | Method and apparatus for allocating bandwidth in teleconferencing applications using bandwidth control |
WO2005104466, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Sep 15 2008 | Apple Inc. | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
May 01 2013 | ASPN: Payor Number Assigned. |
Date | Maintenance Schedule |
Jun 18 2016 | 4 years fee payment window open |
Dec 18 2016 | 6 months grace period start (w surcharge) |
Jun 18 2017 | patent expiry (for year 4) |
Jun 18 2019 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jun 18 2020 | 8 years fee payment window open |
Dec 18 2020 | 6 months grace period start (w surcharge) |
Jun 18 2021 | patent expiry (for year 8) |
Jun 18 2023 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jun 18 2024 | 12 years fee payment window open |
Dec 18 2024 | 6 months grace period start (w surcharge) |
Jun 18 2025 | patent expiry (for year 12) |
Jun 18 2027 | 2 years to revive unintentionally abandoned end. (for year 12) |