Search Images Maps Play YouTube News Gmail Drive More »
Sign in
Screen reader users: click this link for accessible mode. Accessible mode has the same essential features but works better with your reader.

Patents

  1. Advanced Patent Search
Publication numberUSRE44395 E1
Publication typeGrant
Application numberUS 10/857,805
Publication date23 Jul 2013
Filing date28 May 2004
Priority date24 Feb 1995
Also published asUS5854898, US5999977, USRE40704, USRE42442, USRE44306, USRE44441
Publication number10857805, 857805, US RE44395 E1, US RE44395E1, US-E1-RE44395, USRE44395 E1, USRE44395E1
InventorsGuy G. Riddle
Original AssigneeApple Inc.
Export CitationBiBTeX, EndNote, RefMan
External Links: USPTO, USPTO Assignment, Espacenet
System for terminating multicast channel and data broadcast when at least two second endpoints do not transmit positive acknowledgement message to first endpoint
US RE44395 E1
Abstract
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.
Images(28)
Previous page
Next page
Claims(61)
What is claimed is:
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.
2. The method of claim 1 further comprising the step of receiving detach messages from certain of said plurality of second endpoints, and if at least two of said plurality of second endpoints are not receiving said data, then terminating said broadcast of said data and said multicast communication channel.
3. The method of claim 1 wherein said each acknowledgment message includes a response code.
4. The method of claim 3 wherein said response code indicates whether each said certain of said plurality of second endpoints can receive transmissions broadcast to said first multicast address.
5. The method of claim 1 wherein said data includes teleconference data.
6. The method of claim 1 further comprising, prior to said step of said first endpoint activating said multicast communication channel having a first multicast address, determining whether more than one of said plurality of second endpoints is coupled to said first endpoint on a single communication medium, and if not, aborting said method.
7. The method of claim 6 further comprising, prior to said first endpoint activating said multicast communication channel having said first multicast address, determining whether said single communication medium supports broadcasting to said first multicast address.
8. The method of claim 1 wherein said data includes teleconference data between said first endpoint and said plurality of second endpoints.
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.
10. The apparatus of claim 9 further comprising a circuit for receiving detach messages from others of said plurality of second endpoints, and if at least two of said plurality of second endpoints are not receiving said data, then terminating said broadcast of said data and said multicast communication channel.
11. The apparatus of claim 9 wherein said each acknowledgment message includes a response code.
12. The apparatus of claim 11 wherein said response code indicates whether each of said certain of said plurality of second endpoints can receive transmissions broadcast to said first multicast address.
13. The apparatus of claim 9 wherein said data includes teleconference data.
14. The apparatus of claim 9 further comprising a detection circuit operative prior to said first endpoint activating said multicast communication channel having said first multicast address for determining whether more than one of said plurality of second endpoints is coupled to said first endpoint on a single communication medium, and if not, not activating said circuits b and c.
15. The apparatus of claim 14 further comprising, prior to activation of said detection circuit a circuit for determining whether said single communication medium supports broadcasting to said first multicast address.
16. In a system wherein data is provided to a plurality of endpoints connected by a point-to-point communication channel, an automatic method for optimizing data transmission comprising:
querying at least a subset of the endpoints in order to determine whether they can receive transmissions broadcast to a first multicast address;
receiving, from at least one of said endpoints, an acknowledgment message;
for at least one received acknowledgment message indicating that an endpoint can receive transmissions broadcast to said first multicast address and where a multicast communication channel having the first multicast address has been activated, deactivating said point-to-point communication channel with the endpoint from which said message is received; and
terminating the multicast communication channel having the first multicast address if at least two of said endpoints do not transmit an acknowledgment message containing a positive acknowledgement.
17. The method of claim 16, further comprising:
responsive to receiving at least one acknowledgment message indicating that an endpoint can receive transmissions broadcast to said first multicast address, commencing multicasting.
18. The method of claim 16, further comprising:
responsive to failing to receive an acknowledgment message from each of the queried endpoints, terminating multicasting.
19. The method of claim 16, further comprising:
prior to querying, activating the multicast communication channel having the first multicast address and commencing broadcast of data over said multicast communication channel; and
terminating said broadcast of said data if at least two of said endpoints do not transmit an acknowledgment message containing a positive acknowledgement.
20. The method of claim 16, further comprising receiving detach messages from certain of said plurality of endpoints, and if at least one of said plurality of second endpoints are not receiving said data, then terminating multicasting.
21. The method of claim 16, wherein each acknowledgment message includes a response code.
22. The method of claim 21, wherein said response code indicates whether certain of said plurality of endpoints can receive transmissions broadcast to said first multicast address.
23. The method of claim 16, wherein said data includes teleconference data.
24. The method of claim 16, further comprising, prior to querying:
responsive to less than two of said plurality of endpoints being coupled on a single communication medium; aborting the method.
25. The method of claim 24, further comprising, prior to querying:
determining whether said single communication medium supports broadcasting to said first multicast address.
26. The method of claim 16, wherein said data includes teleconference data to said plurality of second endpoints.
27. In a system wherein data is provided to a plurality of endpoints connected by a point-to-point communication channel, an apparatus for optimizing data transmission comprising:
a circuit for querying at least a subset of the endpoints in order to determine whether they can receive transmissions broadcast to a first multicast address;
a circuit for receiving, from at least one of said endpoints, an acknowledgment message;
a circuit for, for at least one received acknowledgment message indicating that an endpoint can receive transmissions broadcast to said first multicast address and where a multicast communication channel having the first multicast address has been activated, deactivating said point-to-point communication channel with the endpoint from which the message is received; and
a circuit for terminating the multicast communication channel having the first multicast address if at least two of said endpoints do not transmit an acknowledgment message containing a positive acknowledgement.
28. The apparatus of claim 27, further comprising:
a circuit for, responsive to receiving at least one acknowledgment message indicating that an endpoint can receive transmissions broadcast to said first multicast address, commencing multicasting.
29. The apparatus of claim 27, further comprising:
a circuit for, responsive to failing to receive an acknowledgment message from each of the queried endpoints, terminating multicasting.
30. The apparatus of claim 27, further comprising a circuit for:
prior to querying, activating the multicast communication channel having the first multicast address and commencing broadcast of data over said multicast communication channel; and
terminating said broadcast of said data if at least two of said endpoints do not transmit an acknowledgment message containing a positive acknowledgement.
31. The apparatus of claim 27 further comprising a circuit for receiving detach messages from certain of said plurality of endpoints, and if at least one of said plurality of second endpoints are not receiving said data, then terminating multicasting.
32. The apparatus of claim 27 wherein each acknowledgment message includes a response code.
33. The apparatus of claim 32 wherein said response code indicates whether certain of said plurality of endpoints can receive transmissions broadcast to said first multicast address.
34. The apparatus of claim 27 wherein said data includes teleconference data.
35. The apparatus of claim 27 further comprising a circuit for, prior to querying:
responsive to less than two of said plurality of endpoints being coupled on a single communication medium; aborting the apparatus.
36. The apparatus of claim 35 further comprising a circuit for, prior to querying:
determining whether said single communication medium supports broadcasting to said first multicast address.
37. The apparatus of claim 27 wherein said data includes teleconference data to said plurality of second endpoints.
38. A method of adding at least two new members to a conference, the conference being associated with a list of participating members, the method comprising:
receiving a join message, wherein the join message includes a destination conference identifier and a calling conference identifier;
obtaining a list of at least two new members to be added to the conference;
merging the list of at least two new members with the list of participating members; and
establishing a media connection with the at least two new members.
39. The method of claim 38 wherein the conference comprises a teleconference.
40. The method of claim 38 wherein the conference comprises a video conference.
41. The method of claim 38, wherein the join message includes the list of at least two new members.
42. The method of claim 38, wherein the list of at least two new members comprises a subset of members of a second conference, wherein the subset comprises only members of the second conference that agree to share the conference media data with new conference members.
43. An apparatus for adding at least two new members to a conference, the conference being associated with a list of participating members, the method comprising:
a circuit for receiving a join message, wherein the join message includes a destination conference identifier and a calling conference identifier;
a circuit for obtaining a list of at least two new members to be added to the conference;
a circuit for merging the list of at least two new members with the list of participating members; and
a circuit for establishing a media connection with the at least two new members.
44. The apparatus of claim 43 wherein the conference comprises a teleconference.
45. The apparatus of claim 43 wherein the conference comprises a video conference.
46. A method of adding at least two new members to a conference, the conference being associated with a list of participating members, the method comprising:
transmitting a first message requesting to join the conference, wherein the first message includes a destination conference identifier and a calling conference identifier;
receiving an acknowledgement message;
receiving the list of participating members; and
transmitting a second message to establish media connections with the participating members.
47. The method of claim 46 wherein the conference comprises a teleconference.
48. The method of claim 46 wherein the conference comprises a video conference.
49. The method of claim 46, further comprising:
responsive to receiving at least one third message indicating that one or more participating members can receive multicast transmissions, causing a multicast transmission.
50. The method of claim 46, wherein the acknowledgment message includes a response code.
51. The method of claim 46, further comprising:
responsive to less than a requisite number of participating members receiving a multicast transmission, causing the multicast transmission to be terminated.
52. The method of claim 46, further comprising:
determining whether a single communication medium supports multicast transmissions to the participating members.
53. The method of claim 46, wherein the first message includes a list of at least two new members to be added to the conference.
54. The method of claim 53, wherein the list of at least two new members comprises a subset of members of a second conference, wherein the subset comprises only members of the second conference that agree to share the conference media data with new conference members.
55. An apparatus for adding at least two new members to a conference, the conference being associated with a list of participating members, the apparatus comprising:
a first circuit for transmitting a first message requesting to join the conference, wherein the first message includes a destination conference identifier and a calling conference identifier:
a second circuit for receiving an acknowledgement message;
a third circuit for receiving the list of participating members; and
a fourth circuit for transmitting a second message to establish media connections with the participating members.
56. The apparatus of claim 55 wherein the conference comprises a teleconference.
57. The apparatus of claim 55 wherein the conference comprises a video conference.
58. The apparatus of claim 55, wherein the second circuit is further configured to determine whether one or more participating members can receive multicast transmissions.
59. The apparatus of claim 55, wherein the acknowledgment message includes a response code.
60. The apparatus of claim 55, further comprising: a fifth circuit for transmitting a third message to terminate the media connections with the participating members, responsive to the list of participating members being less than a requisite number.
61. The apparatus of claim 55, further comprising: a fifth circuit for determining whether a single communication medium coupled to the participating members supports multicast transmissions.
Description

This is a divisional reissue application of U.S. Reissue application Ser. No. 10/020,515, filed Dec. 7, 2001 now U.S. Pat. No. Re. 42,442, 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 issued Apr. 28, 2009), Ser. Nos. 10/857,799, 10/857,805 (the present application), Ser. Nos. 10/857,806, and 12/210,847.

BACKGROUND OF THE INVENTION

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.

SUMMARY

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.

BRIEF DESCRIPTION OF THE DRAWINGS

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:

FIG. 1 illustrates an example configuration in which various embodiments of the present invention may be implemented.

FIG. 2 shows a typical teleconferencing display which has both media and non-media sources displayed during the course of the teleconference.

FIG. 3 shows a single system in which embodiments of the present invention may be implemented.

FIG. 4 shows an example architecture of a system employing various embodiments of the present invention.

FIG. 5 shows a more detailed view of the conference component illustrated in FIG. 4.

FIG. 6 shows a sequence of typical conference events in a conference component which are issued to an application.

FIG. 7 shows a typical sequence of steps performed for member initialization within the conference component.

FIGS. 8-10 show typical exchanges of messages for different operations.

FIG. 11 shows a detail of a first endpoint establishing a teleconference.

FIG. 12 shows a sequence of steps performed in a second endpoint receiving the messages sent from a first endpoint during the establishment of a teleconference.

FIGS. 13-25 show details of the messages transmitted between endpoints during various teleconferencing applications.

FIGS. 26a, 26b, 26c, and 26d show the steps taken for performing merge operations.

FIGS. 27a and 27b show the conferences before and after a merge operation between teleconferences.

FIGS. 28a-b show a sequence of steps performed by the conference component during a merge operation.

FIG. 29 shows an example of a merged conferences table within a single participant.

FIGS. 30a-30b shows a sequence of steps performed for converting point to point connections to multicast connections for a teleconference.

FIGS. 31 and 32 show the adding of an auxiliary source and the messages during the adding of the source to an existing teleconference.

FIGS. 33-34 show the details of a sequence of steps performed within a participant for adding an auxiliary source.

FIGS. 35a-35b show an example sequence of messages which are sent between a first endpoint and a plurality of other endpoints in a networking system, and showing various messages transmitted therebetween.

DETAILED DESCRIPTION

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 FIG. 1. For example, a first workstation 150 may communicate via teleconference with a second workstation 155, as illustrated. System 150 may include a central processing unit 150c which is coupled to a display 150d a video input device 150a, and a sound input device 150b. The system 150 may communicate with over system 155 over networking medium 170 via network connection module 160. 160 may include any number of network adapters commercially available such as using Ethernet, Token Ring, or any other networking standard commercially available. Note that network adapter 160 may also include a wireless network adapter which allows transmission of data between components without a medium 170. Communication is thus provided via network adapter 165 coupled to system 155, and bi-directional communications may be established between two systems. System 150 further has a keyboard 150e and a pointing device 150f, such as a mouse, track ball, or other device for allowing user selections and user input.

A teleconference display is shown at 200 at FIG. 2. In implemented embodiments of the present invention, there is a source window, such as 201, showing a monitor of the local media source, and there are other media windows, such as 202 or 203 for each other user with which a participant is having communication. In the illustrated example, each of the windows 201-203 provides media information, that is, real-time audio and/or video information for bi-directional teleconferencing. In alternate embodiments of the present invention, non-media information such as 204 may also be displayed within the teleconferencing display. As will become apparent in the description below, in addition to media and non-media information, messaging information may also be transmitted between stations. In addition, an auxiliary media source (e.g. audio or video information) may be transmitted with a specified conference. The details of this will be discussed in more detail below.

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 FIG. 1 is illustrated in more detail in FIG. 3. 150c comprises a bus or other communication means 301 for communicating information, and a processing means 302 coupled with bus 301 for processing information. System 150c further comprises a random access memory (RAM) or other volatile storage device 304 (referred to as main memory), coupled to bus 301 for storing information and instructions to be executed by processor 302. Main memory 304 also may be used for storing temporary variables or other intermediate information during execution of instructions by processor 302. Included in memory 304 during run-time may be the conference component module which operates according to the communication protocols to be described below. System 150c also comprises a read only memory (ROM) and/or other static storage device 306 coupled to bus 301 for storing static information and instructions for processor 302, and a data storage device 307 such as a magnetic disk or optical disk and its corresponding disk drive. Data storage device 307 is coupled to bus 301 for storing information and instructions.

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.

FIG. 4 illustrates a plurality of processes and/or apparatus which may be operative within system 150c. At the highest level, for example, at the highest level in the ISO/OSI networking model, an application program 401, such as a teleconferencing application, an audio/video server, or a data server, communicates with conference component process 400 in the form of Application Program Interface (API) calls. The conference component 400 allows the application to establish communications between two or more teleconference stations. Control information, and media information can be transmitted between the first participant system and a second participant system. The conference component will be shown in more detail in FIG. 5. Conference component 400 communicates with the transport component 402 by sending MovieTalk messages for other teleconferencing stations which are encapsulated and placed into a form that the transport component 402, the network component 403, and the system network component 404 can packetize and transmit over networking medium 170. For the purposes of the remainder of this disclosure, certain of the MovieTalk API calls and MovieTalk messages which are transmitted between conference components in a teleconferencing system will be described in more detail.

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 FIG. 5. Specifically, the conference component 400 is shown in two portions 400a and 400b which show input and output portions of the conference component. Although illustrated as a separate transmitter and receiver, each conference component in the system has both capabilities, so that full bi-directional communication between conference components in respective participant teleconference systems in a network may communicate with one another. As illustrated, the input portion of the conference component 400a receives video and sound information over media input channels 510 and 520. The video channel component and sound channel component 504 present media data at regular intervals to sequence grabber 502. The real-time sound and video data (hereinafter referred to as “media data”) are provided to a source stream director 500 from sequence grabber 502 which then provides the media messages to the transport component 402. Flow Control 501 then lets the video and sound data flow through at an implementation-dependent frequency. The video channel component 503, sound channel component 504, and sequence grabber 502 all are implemented using prior art products such as those commercially available (e.g., the QuickTime video channel, sound channel components, and sequence grabbers, available from Apple Computer, Inc. of Cupertino, Calif.) Flow control 501 may be implemented using known flow control apparatus and/or method as are commercially available, such as those which regulate flow based upon bandwidth, and other constraints in the source participant system. The conference component further comprises a sink stream director 510 which comprises a portion of the component 400b of the conference component for receipt of media data from transport component 402. Corresponding flow control 511, video and sound stream players 512 and 513, and compression and sound manager 514 and 515, for output of video streams 530 and 540, also form part of the conference component for full bi-directional conferencing capabilities.

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.

Application Program Interface (API)

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 FIG. 6 as 600. For example, upon an initial desire by an application to enter into a conference (as expressed by an API call) or a call from another participant, a conference-ready event 601 (e.g. mtConferenceReadyEvent) is generated. The application then creates a media source in the conference component (e.g., member A) which is to provide the conference information. Subsequent to that, any auxiliary media sources may also be attached to the main conference at step 610 for a second media source (e.g. by the call MTConferenceAttachAuxiliary Source). Then, any members that are new to the conference are recognized as being ready by the receipt of MemberReady (e.g. mtMemberReady) events (e.g., 602 and 603 of FIG. 6). This establishes the media sinks such as b and c illustrated in FIG. 6. Then, during the teleconference session, a variety of other events 604 may be issued and acted upon by the conference component. These may include message events, mode events, incoming call events, data transmission events, etc. Members leaving the conference result in the issuance of MemberTerminated (e.g. mtMemberTerminatedEvent) events to the application program such as 605 or 606. Thus, for every MemberReady event for any member participating in a conference, there is a corresponding MemberTerminated (e.g. mtMemberTerminatedEvent) event prior to the end of the conference. In addition, the auxiliary source and the conference itself is terminated via the Auxiliary Terminated (e.g. mtAuxiliaryTerminatedEvent) event 611 and the conference terminated event 607 as illustrated in 600 of FIG. 6. This notifies the application that the conference is terminated, and teleconference data should no longer be transmitted. Any additional clean up operations are then performed by the application, and the source may be discarded.

A typical application's initialization is shown as process 700 of FIG. 7. The application program makes a number of API calls in order to set various parameters associated with the member or potential participant. First, an application may cause the conference component to set its capability at step 702 if it is different than the default. The call to “MTConferenceSetMessageCapabilities” causes the conference component to recall in a store the specific application capabilities within the conference component for the specific conference which are later used during transmission of messages to alert recipients that the sender application has certain functional capabilities prior to the establishment of a connection between the sender and the receiver. Each capability has associated with it a type, version, and “desire” of the capability. Each desire for each capability type may be flagged as:

    • 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 FIG. 7 may be set for any number of conference types which are made available by the member. At any rate, the default mode includes the following values:

    • 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 FIG. 14).

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.

FIGS. 8-10 show examples of the various message exchanges between two endpoints. Messages are generated by conference component 400 depending upon operating context, and application calls. FIG. 8 shows an example of a calling sequence for setting up a conference between two endpoints. Upon the commencement of a call from a first endpoint such as 810 shown in FIG. 8, and a second endpoint such as 820 shown in FIG. 8, a “capabilities” message 802 is transmitted from the endpoint 810 to the endpoint 820 if they have been set by the caller. The exchange of “capabilities” messages 802 and 812 between endpoint 1 810 and endpoint 2 820 are exchanged after a control channel has been opened on the transmission medium between the participants in an implementation-dependent manner (e.g. by invoking MTConferenceCall). This identifies the capabilities of each of the endpoints, if the capabilities of the application are desired to be transmitted. Once capabilities have been transmitted from each endpoint, each endpoint further transmits Hello messages 804 and 814 to identify themselves. The details of the capabilities, Hello, and other messages illustrated in the figure will be discussed below. The Hello message is the first step in establishing a conference, and allows conference components in different systems to exchange basic identification and mode information. Subsequent to the exchange of Capabilities messages (if any), and the Hello messages 804 and 814, the endpoint 1 810 wishing to establish the conference sends a call message 806 to endpoint 2 820. Subsequent thereto, if endpoint 820 desires to engage in the teleconference with endpoint 1 810, it sends a response message 816 to endpoint 1 810. Then, upon the transmission of the call message 806 and the receipt of the response message 816, a teleconference is then established between endpoint 1 810 and endpoint 2 820. The details of the process steps performed within each endpoint are discussed with reference to FIGS. 11 and 12.

FIG. 9 illustrates a “Join” protocol process. This is similar to the calling process, however, a “Join” message 906 is sent to the second endpoint instead of the “call” message 806. The details of a Join are discussed with reference to FIGS. 26a-26c below.

FIG. 10 illustrates the messages exchanged for a terminate message. As illustrated, an endpoint may issue a terminate message to terminate a teleconference. No response is required for any receivers.

FIG. 11 shows the process steps performed by a first participant (e.g., endpoint 1 810) wishing to establish communication with a second participant system (e.g., endpoint 2 820). First, at step 1102, the caller via implementation-dependent means, accesses the address of the party it wishes to call, either by reference to an internal store, referencing a server or other implementation-dependent manner. Once this has been performed, the application invokes the API call MTConferenceCall in order to call the party at step 1104. Responsive thereto, either a failed event 1106 (mtFailedEvent) is received by the caller, or a ringing event 1108 (mtPhoneRingingEvent) when the call message has been transmitted to the second participant. In the event of a ringing event, the endpoint can then get the capabilities, mode and the name of the endpoint such as by examining the data contained in the Capabilities message 812 and/or the Hello message 814. Any “required” communication between the caller and receiver may also be performed. Then, the first sender can appropriately configure itself for the second endpoint. Once any necessary message exchanges and/or configurations have been performed in the caller, then the caller will either receive a MemberRefused event 1112 (e.g. mtRefusedEvent), for example, if the calling member does not provide the necessary access control subsequent to the call message, or, a MemberReady event 1116. Also, a failed event 1106 can be detected at any time, followed by a MemberTerminated event 1114. In the case of a MemberRefused event 1112, then the conference component will generate a MemberTerminated event 1114, and a conference terminated event will then be issued indicating the end of the conference. Once capabilities have been obtained, any required capabilities are checked for at step 1113 (e.g. such as any actions that must be performed before the receiver accepts the call). Subsequent thereto, a ConferenceReadyEvent1115 (e.g. MTConfReadyEvent) and a MemberReady event 1116 (e.g. mtMemberReadyEvent) can be received by the application, then the endpoint can then engage in the exchange of messages typical during a conference, thus commencing the conference at step 1118.

As shown in FIG. 12, the sequence of steps performed by the receiver is illustrated. For example, at step 1202, the receiver application will detect an incoming call event 1202. Subsequent thereto, the receiver can then determine mode, capabilities, caller's name, conference name, and/or return address of the party wishing to engage in the conference. The mode can also be checked for at step 1206. Once this has been done, then a time-out check, if any, at 1208 can be performed in the receiver. The time-out check may be performed, depending upon an application's implementation, by checking the time-out field shown at field 1504 in FIG. 15, which indicates how long the transmitter will wait prior to timing out and generating a CallFailed event (e.g. mtFailedEvent) in order to terminate the call. In this case, according to implementation, the receiver may do a variety of things, for example, issuing a busy signal to the transmitter, issuing a message to the caller or, taking some action, such as forwarding the call to another party. Thus, the embedding of the time-out field 1504, within the initial connection message “Hello,” provides for certain intelligent features in the potential participants of a teleconference. Once any mode checks, if any, have been performed at step 1206, then at step 1208 a time out check, if any, may be performed. Any user interaction may take place at step 1209. The receiver will then issue a reply at step 1210. The reply may indicate either refusal to answer the call (e.g., due to access control, or the participant already engaging in another conference), or choose to respond to the call in the affirmative indicating that the teleconference may commence. In the case of a refusal, the MemberTerminated 1220 event (mtMemberTerminatedEvent) is issued to the application. In the case of the member answering, the MemberReady event 1218 (mtMemberReadyEvent) is issued indicating that the medium channel is open and the conference can commence.

Conferencing Messages

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 FIG. 13, field 1302 contains a ‘K’. All messages are further terminated by a NULL such as that shown in field 1308 of FIG. 13. The Capabilities message 1300 allows a potential member to tell other potential conference members what it can and cannot do in a conference. Each member sends this message before sending the “Hello” message (1400 of FIG. 14) if capabilities other than the default are supported.

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 member's capabilities. This field is optional. If specified, it contains a list of the member's capablilities. An application specifies its capabilities by calling the conference component's MTConferenceSetMessageCapabilities function.

The Capabilities message 1300 shown in FIG. 13 informs other potential conference participants about a member's capabilities. These capabilities relate directly to messages the member either supports or requires, one capability for each conferencing message type that the component supports. The messages themselves are defined by the type of application the member is running. For example, video-phone applications and chat lines deliver different services, and use different messages to do so. As a result, the capabilities a member supports will change in light of the application that is participating in the conference. Entries in the capabilitiesList field may request information from the remote system. By setting an entry's “desires” field (2010 of FIG. 20) mtNegotiationMessageCapabilities (‘N’), a conference member can query for specific information (e.g. about a given component type, such as a codec, hardware/software features supported, etc.). The type field can contain the component type value.

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 FIG. 14) is sent at the start of a conference by each endpoint. The Hello message identifies basic capabilities of the sender and the mode in which it will overate. It contains the following:

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

minimum Version 1404

    • The oldest version of the conference protocol supported by the sending component
      maximum Version 1408
    • The newest version of the conference protocol supported by the sending component.
      conferenceMode 1412
    • The desired conference operating mode. This field contains a value that corresponds to the operating mode the sender desires for this conference. Applications specify their desired mode by a SetMode API call (e.g. MTConferenceSetMode discussed above).
      name 1416
    • The name of the prospective conference member. This name identifies the entity that wants to join the conference, and may represent either an auxiliary data source or a new user. Applications specify a user name by calling the MTConferenceListen API call. The auxiliary name is specified in a MTAttachAuxiliary API call.

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 FIG. 15 begins the process of establishing a conference connection between two possible participants. This is akin to dialing a number from a phone directory.

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 amount of time the calling component is willing to wait for an answer. This field specifies the number of ticks ( 1/60 of a second) the calling component will wait before deciding that the call has not been answered. Called components must respond within this time period. This value may be used by a potential responder for taking some automatic action if the user doesn't answer before the timeout.
      ConferenceName 1508
    • The conference name. If the caller is establishing a conference, this is the name the caller has assigned to the conference. If the caller is connecting to a conference server, the is the name of the server's conference. Applications set the conference name by calling the MTConferenceCall function.
      callingConfID 1512
    • The caller's unique conference identifier. This field uniquely identifies the caller's conference endpoint on the network. Conference components create conference identifiers on behalf of calling applications which are unique within the conference component. Call ID's are discussed with reference to 2200 of FIG. 22.

The Call message 1500 shown in FIG. 15 begins the process of establishing a conference between two participants. This message can be used in two ways. First, this message can create a conference between two participants. In this scenario, the caller assigns a name to the conference, so that other possible participants may join later. Alternatively, this message can request to join a conference that is managed by a conference server on a network. For example, the server will allow incoming calls, but the function of the server is to merge the new conference due to the call with other ongoing conferences. In other words, the server acts exclusively as a “joiner” and does not supply media data. Once the call is set up, the caller can begin exchanging user data with other conference participants.

The response message 1600 of FIG. 16 is sent in response to Call or Join messages 1500 or 1800.

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 result. This field indicates the result of the preceding Call request. This field is set to ‘0’ if the request was successful. Otherwise, it contains an appropriate result code.
      destinationConfID 1608
    • The other endpoint's unique identifier. This field identifies the other participant in the conference.
      The Response message 1600 allows the caller to determine the success of a Call or Join request. The Response message 1600 indicates how the user at the remote system reacted to the call (for example, whether the user answered the call). The callResponse field 1604 contains the request's result code. If non-zero, an error occurred and the request was not successful. Otherwise, the destinationConfID field 1608 identifies the endpoint with which the caller may now communicate.

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 member's conference identifier. This field identifies the member's existing conference endpoint (the conference identifier the member supplied in the Call message when it first joined the conference). This allows other conference participants to identify the source of the auxiliary data within each participant.

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 FIG. 18 allows a member to join an existing conference, given that conference's identifier. This message is useful for adding auxiliary data sources to an existing conference, and for merging two existing conferences.

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 remote endpoint's unique conference identifier. This field identifies the conference to join on.
      callingConfID 1808
    • Unique conference identifier. This field uniquely identifies the caller's conference endpoint on the network. Conference components create conference identifiers on behalf of calling applications. If the message is adding an auxiliary media data source, this is the auxiliary's identifier.
      memberList 1812
    • A list of other conference participants. This list identifies all other known conference participants that are willing to exchange data with new participants (that is, they have the Joiner Mode Mask [e.g. mtJoinerModeMask] set in their conference mode). The conference component can connect with each participant with whom it is not already connected. If the message is adding an auxiliary (via the issuance of an auxiliary message 1700), this list contains the endpoint identifier of each participant to which the caller is making the auxiliary available. It is up to each of them to respond.
    • This is a list of conference endpoint identifiers; each element in the list is followed by a newline character.

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 FIG. 19 combines two conferences. Recipients of this message connect with the listed members with whom they are not already connected.

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 new conference name resulting from the merge. This is the name that was assigned to the conference when the conference was established. Applications specify the conference name by calling the MTConferenceCall API function.
      myConfID 1908
    • Unique conference identifier. This field uniquely identifies the caller's conference endpoint in the target conference. Conference components create conference identifiers on behalf of calling applications.
      memberList 1912
    • A list of other conference participants. This list identifies other current conference participants. This list contains the endpoint identifier of each new participant. This is a list of conference endpoint identifiers; each element in the list is followed by a newline character.

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.

Field Specifics

A capabilities list such as shown in FIG. 20 (e.g., field 1306) contains information about the message supported by a conferencing application. The list consists of zero or more lines of information; each line specifies a single capability and consists of the following fields.:

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

Identifies a message by reference to a unique type value.

version 2006

    • Message version number. Specifies the most-recent version of the message that the application supports.
      desires 2010
    • Support level. This field indicates the level of support required by the application. Possible values are:
      • mtMessageOptionalCapability
        • Optional. Indicates that the message is optional. The value corresponding to this option is ‘O’.
      • mtMessageDesiredCapability
        • Desired. While still optional, this value indicates that the application prefers to receive this message early in the call (e.g. prior to establishing a call, one member may request that the recipient send his business card for long-term storage). The value corresponding to this option is ‘D’.
      • mtMessageRequiredCapability
        • Required. The application must receive this message. The value corresponding to this option is ‘R’.
      • mtNegotiationMessageCapability
        • Negotiate. The application wants to learn about the recipient's facilities. The value corresponding to this option is ‘N’.

Conference identifiers such as 2200 shown in FIG. 22 uniquely identify a conference endpoint. Each endpoint represent a data source or sink for the conference. Note that a single system may have more than one conference endpoint (e.g., an auxiliary) in a given conference, and may have more than one conference at a time. A conference endpoint consists of the following fields:

Field Size Value
UniqueID 2202 1-n bytes (numeric)
separator 2204 1 byte space
name 2206 1-n bytes (alphanumeric)

UniqueID 2202

    • Unique numeric identifier. This field contains a unique numeric endpoint identifier. Each conference component assigns its own identifiers in order to guarantee uniqueness within the context of a given name specified in the name field 2206.
      name 2206
    • A unique name. Identifies the system on the network. The name is unique within the context of a given transport interface. It includes the type of the selected transport and network interface.

A member list such as 1812 of FIG. 21 is an array of zero or more conference identifiers 2102, 2110, etc. Each entry in the array is delimited by a newline character.

The Terminate message 2300 of FIG. 23 ends a conference, closing a member's communications with the participants to which it sends the message.

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 broadcast message subtype. This field must be set to ‘R’.
      multicastAddress 2410
    • The proposed multicast address. This field contains the multicast address on which the member proposes to send broadcast messages.

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 broadcast message subtype. This field must be set to ‘A’.
      broadcastResponse 2508
    • The result. This field indicates whether the member can support the multicast address proposed in the BroadcastRequest message 2500.

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 FIG. 9. FIGS. 26a-26c illustrate the process steps performed in a transmitter and receiver during join operations. FIG. 26a shows a process 2600 which includes the process steps performed by a transmitter of a join message or any message containing a member list. This may occur, for example, responsive to an auxiliary or merge message. First, the transmitter creates a join message at step 2602. The destination conference ID and calling conference ID's are added to the message at step 2603. Then, at step 2604, a member is appended to the members list in the join message. This is shown in more detail in FIG. 26b. A transport level connection with the member to receive the join is then performed at step 2605. Subsequent thereto, the message is then sent to any recipients at step 2606.

FIG. 26b illustrates the “append members” function 2604 shown in FIG. 26a for appending members to a member list. The function starts at step 2610 which determines whether the member is a “joiner.” If so, then additional members can be appended to the join. If not, then the function ends and the join message with the single member is transmitted as shown on FIG. 26a. At 2612, the next member is retrieved according to the conference ID. At step 2614 it is determined whether there are any more members in the specified conference ID. If not, the process is complete. If there are more members and the shareable mode flag is set, as detected at step 2616, then the member is added to the member list at step 2618. In this manner, during a merge operation, other participants receiving join messages can determine if conference membership has changed, requiring additional join messages to be transmitted by receiving members.

FIG. 26c shows the steps performed by a receiver of a join message. First, at step 2652, the destination conference ID contained in the join message is looked up by the receiver in a locally-stored current conferences history table (e.g. 2900 of FIG. 29). This keeps track of previously used conference ID's for any currently active conferences. If the conference ID has changed, the member can then complete the join by referencing an old conference ID and the current conference ID in the member. This allows for conference merge and auxiliary messages from widely distributed members in a network. If the conference ID can't be found, as detected at step 2654, then the connection is refused at step 2656, by the issuance of an appropriate response message, and the join fails. If the conference ID has been found, then, at step 2660, the connection is added to the list of participants for the conference. At step 2662, a Response message that the join can be performed is sent to the sender of the join. Then, the membership of the members contained in the member list of the join can then be performed as shown in FIG. 26d.

The merge membership function 2664 is shown in more detail in FIG. 26d. First, it is determined at step 2678 whether the member merging membership is shareable. If so, then at step 2680, it is determined whether there are any more members in the member list. If not, the function is complete. If so, the next member from the membership list is retrieved at step 2682. If the participant is already connected, is the member or is the member's own auxiliary source, as detected at step 2684 then the process returns to step 2680. It is determined, at step 2686, whether this party is going to initiate the join with this member in the member list. This prevents conflicting join messages from being received and acted upon in the network. This is accomplished by determining whether the recipient's conference ID is greater than the calling party's conference ID. In this case, this party will take action on the join (e.g. place the call to the other party to accomplish the join). Operations necessary to accomplish the join then take place starting at step 2688. At this step, transport level connections are established. Once established, capabilities, if any, (or an auxiliary message, in the case of an auxiliary source), hello, and join messages are sent at step 2690. The member then waits for a response to the join, and if received in the affirmative, the conference component issues MemberReady to the application. This process continues until all members in the member list have been processed.

Merge Operations

Merge operations are initiated using a “Merge” message (e.g., 1900 of FIG. 19) which indicates to a participant that two existing conferences should be merged. This is according to the conference ID contained within the field 1908 of Message 1900. Each Merge message contains within it a memberList 1912 which allows the participating members to transmit Join messages to all the members which have been listed in the memberList. This further allows changing membership and conference ID during the course of a merge operation to be tracked so that correct conference ID's and conference membership may be maintained until after the merge. A merge operation is graphically illustrated with reference to FIGS. 26a and 26b. For example, at a first time period as illustrated in FIG. 26a, conference member ID may be engaging in two conferences denoted 1 and 2 with several other members, A, B, and C. The member then proceeds to issue Merge messages to the members of conferences. That is, member D issues join messages to members A, B and C to Merge the conference 2 (denoted B1 and C1). At the end of the operation, members A, B, C, and D all have point-to-point communication channels and the new conference ID is the same, (A1, B1, C2, D1, respectively in each of the members). The mechanics of this operation are described briefly with reference to FIGS. 28a-28b. That is, the two separate conferences are now denoted by the same conference ID's in each of the members.

FIGS. 28a-28b show the steps taken during a merge operation by the conference component in the transmitter and receivers (if any) of a merge message. FIG. 28a shows the process steps taken by a transmitter of a merge request. The member first combines the conference ID's of the old and new conference in it's internal store at step 2802. Then, at step 2804, the member creates the merge message and appends each of the members of the conference to the members list in the message via the append members routine 2604 (discussed above) in order to ensure full connectivity among all conference members. Then, at step 2806, the merge message is sent to all participants in the merge.

FIG. 28b shows process steps taken in a receiver receiving a merge message. Once a merge message has been detected (step 2812), the merge recipient recalls in a local store for example, the conference name and the conference ID at step 2814. Then, as discussed with reference to FIG. 26d, above, a merger of membership is performed (e.g. process 2664), and the process is thus complete at step 2816.

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 FIG. 29. The current conferences history table allows a member performing a merge or join operation to determine whether in fact conferences to be merged use old conference ID's. If so, then the new conference ID may be used to transmit to the participants receiving the join messages, and/or be matched to the appropriate conference ID. Thus, the member performing the merge operation can reference by way of the current conference ID 2901 contained within the merged conferences table, or other conference ID values 2902, containing a variable length list of conference ID's, to which the current conference ID refers. Conference entries are deleted at the end of a conference by the conference component. If a merge occurs at a peripheral location and a conference ID becomes invalid, then the list of conference ID's for an existing conference ID can be referenced by referencing the merged conferences history table.

Multicast

FIGS. 30a and 30b illustrate a process which is performed as an optimization if multiple participants within a conference support multicast address broadcast capabilities. First, it is detected at step 3001 whether there are any more transport media to be examined. If so, then the next is retrieved at step 3002, and at step 3003 it is determined whether two or more participants are in the same conference and are on the same transport medium. If so, and the transport medium supports multicast at step 3004, then the multicast capabilities of the transport medium are activated at step 3006. If so, and the multicast capabilities are working at step 3008, then step 3008 proceeds to step 3012. If it is not working, as detected at step 3008, then the process is aborted at step 3010. At step 3012 a multicast address which may be used for the transport medium is retrieved at step 3012. Then, at 3014, Broadcast Requests are sent in substantially the format as shown in Message 2400 of FIG. 24, to all the participants detected at step 3002 supporting multicast. The process then awaits BroadcastAck (in the format 2500 shown in FIG. 25) in order to determine whether the multicast address is available for each at step 3016. If so, then for each BroadcastAck determined to be received at step 3018, and it is determined whether the BroadcastAck was positive (due to the response value contained in field 2508 of FIG. 25). At step 3022, if the response was positive, then the point-to-point connection is deactivated. Once all the Broadcast Acks have been received (or have timed-out), then it is determined at step 3024 whether there was a Broadcast Ack received for each Broadcast Request message sent. If not, then the process is complete. If so, however, step 3026 determines whether there were any positive BroadcastAck for the multicast. If not, then multicast is deactivated, and point-to-point communication continues to be used for communication with the other members (this optimization cannot be performed). The process is thus complete.

Auxiliary Operations

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 FIG. 31, a first conference referred to by conference ID 23B in member B, may be notified of an auxiliary source having conference ID 17A from member A. Note that similar to the protocol illustrated with reference to the Capabilities and Hello messages in FIGS. 8 and 9 above, the Auxiliary message may be sent in place of a Capabilities message between a first endpoint and a second endpoint as illustrated in FIG. 32. The timing of the messages is illustrated with reference to FIG. 32. Similar to the capability and call protocol illustrated with reference to FIG. 8 above, the Auxiliary message 3202 is received from the first endpoint 3210, to notify endpoint 2 3220 that an auxiliary source is available from the parent conference ID, as specified in parentConfID field 1704 of Auxiliary message 1700 of FIG. 17. Then, a Hello message 3204 is transmitted from endpoint 1 3210 to endpoint 2 3220. Responsive thereto, endpoint 2 3220 transmits capabilities message 3222 and Hello message 3224. Subsequent thereto, a Join message 3226 with the conference ID=23B is issued from the endpoint to 3220 with the conference ID of the source in order to indicate that the endpoint 3220 wishes to receive the auxiliary source AA, shown in FIG. 31. Subsequent thereto, all messages from source A to recipient B as illustrated in FIG. 31 reference the same conference ID 23B for the ongoing conference between A and B. As illustrated in FIG. 31, the “receive media” mode flag is set to not receive (!Receive) and furthermore, the mode of the auxiliary source is not joiner (!Joiner) since it is a receive-only media source. Subsequent thereto, the second endpoint 3220 sends a response message 3216 indicating that the auxiliary source has been successfully joined with the conference 23B. Subsequent thereto, both media messages for the conference ID 23B, and the auxiliary source having conference ID 17A are treated as from the same source (A) by the application. The details and mechanics of a member receiving an auxiliary source message are illustrated with reference to FIGS. 33 and 34.

FIG. 33 shows the process steps performed within a source of an auxiliary source. At step 3302, the next participant in the conference to which the auxiliary source will be attached is retrieved. It is determined, at step 3304, whether there are any more participants in the conference to which the auxiliary source will be attached. If any, then, at step 3306, auxiliary, hello and join messages are sent to the participant. If accepted via a positive response message (as shown in FIG. 32), the auxiliary then becomes available to the participant for the receiver of the message. The process continues until step 3304 determines that no additional participants in the conference should join in to monitoring of the auxiliary.

FIG. 34 shows the steps taken by a receiver upon receipt of the initial auxiliary message. At step 3402, capabilities (if any), and hello are sent. At step 3404, the auxiliary source media starts to be received, and the conf ID of the parent conference is saved in the conference component of the receiver at step 3406. This allows the application to determine that the auxiliary is associated with the parent media source by storage in the conference component for later retrieval at step 3408. If the auxiliary is received prior to the receipt of a join message, then the association of the auxiliary with the parent conf ID allows the later association of the two from the application's standpoint.

An Example Session (FIGS. 35a and 35b)

An example session using the protocols described above is shown in FIGS. 35a and 35b. The figures illustrate the flow of messages, from the view of a first endpoint. After establishment of the connection between the stations using the transport component, the originating station sends capabilities message 3502, and hello message 3504, specifying the calling station's name “James Watt” with the mode mask set to 15 (all bits set—send, receive, joiner, shareable). Then, a call message 3506 is transmitted to the receiver along with the timeout value=19392 confname=“some conference,” and the confID=“672 mtlkatlkJamesWatt: VideoPhone: VideoZone”. Simultaneously with the establishment of the connect, corresponding capabilities, hello, and response are sent from the station entitled “Hillary Rodham” as illustrated by packets 3508-3512, having the same mode.

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 FIGS. 1-35b, that many modifications made be made, by one skilled in the art, without departing from the scope of the invention as described here. The invention is thus to be viewed as limited only by the appended claims which follow.

Patent Citations
Cited PatentFiling datePublication dateApplicantTitle
US358414213 Dec 19688 Jun 1971Bell Telephone Labor IncInteractive computer graphics using video telephone
US410037728 Apr 197711 Jul 1978Bell Telephone Laboratories, IncorporatedPacket transmission of speech
US438727118 Nov 19807 Jun 1983Cselt Centro Studi E Laboratori Telecomunicazioni S.P.A.Combined telephone and data-transfer system
US450635825 Jun 198219 Mar 1985At&T Bell LaboratoriesTime stamping for a packet switching system
US450778116 Sep 198326 Mar 1985Ibm CorporationTime domain multiple access broadcasting, multipoint, and conferencing communication apparatus and method
US45091675 Aug 19832 Apr 1985At&T Bell LaboratoriesData conference arrangement
US451615615 Mar 19827 May 1985Satellite Business SystemsTeleconferencing method and system
US452577930 Mar 198325 Jun 1985Reuters Ltd.Conversational video system
US457437425 Oct 19834 Mar 1986At&T Bell LaboratoriesMultilocation video conference terminal including rapid video switching
US462705211 Mar 19852 Dec 1986International Computers LimitedInterconnection of communications networks
US46458726 May 198624 Feb 1987John Hopkins UniversityVideophone network system
US465092928 Feb 198517 Mar 1987Heinrich-Hertz-Institut Fur Nachrichtentechnik Berlin GmbhCommunication system for videoconferencing
US465309016 Dec 198524 Mar 1987American Telephone & Telegraph (At&T)Graphics based call management
US46866988 Apr 198511 Aug 1987Datapoint CorporationWorkstation for interfacing with a video conferencing network
US469131430 Oct 19851 Sep 1987Microcom, Inc.Method and apparatus for transmitting data in adjustable-sized packets
US470783123 Oct 198517 Nov 1987Stc PlcPacket switching system
US47109178 Apr 19851 Dec 1987Datapoint CorporationVideo conferencing network
US47347651 Dec 197829 Mar 1988Nippon Telegraph & Telephone Public Corp.Video/audio information transmission system
US474862028 Feb 198631 May 1988American Telephone And Telegraph Company, At&T Bell LaboratoriesTime stamp and packet virtual sequence numbering for reconstructing information signals from packets
US475601927 Aug 19865 Jul 1988Edmund SzybickiTraffic routing and automatic network management system for telecommunication networks
US476057223 Dec 198626 Jul 1988Kabushiki Kaisha ToshibaLimited multicast communication method and communication network system realizing the method
US476331713 Dec 19859 Aug 1988American Telephone And Telegraph Company, At&T Bell LaboratoriesDigital communication network architecture for providing universal information services
US478541529 Aug 198615 Nov 1988Hewlett-Packard CompanyDigital data buffer and variable shift register
US482733915 Aug 19862 May 1989Kokusai Denshin Denwa Co., Ltd.Moving picture signal transmission system
US484782925 Nov 198711 Jul 1989Datapoint CorporationVideo conferencing network
US48498116 Jul 198818 Jul 1989Ben KleinermanSimultaneous audio and video transmission with restricted bandwidth
US48827431 Aug 198821 Nov 1989American Telephone And TelegraphMulti-location video conference system
US488879528 Jun 198819 Dec 1989Nec CorporationVideotelephone apparatus for transmitting high and low resolution video signals over telephone exchange lines
US48933264 May 19879 Jan 1990Video Telecom Corp.Video-telephone communications system
US489786619 Oct 198830 Jan 1990American Telephone And Telegraph Company, At&T Bell LaboratoriesTelecommunication system with subscriber controlled feature modification
US49052313 May 198827 Feb 1990American Telephone And Telegraph Company, At&T Bell LaboratoriesMulti-media virtual circuit
US491871828 Jun 198817 Apr 1990Luma Telecom, Inc.Quadrature amplitude modulation with line synchronization pulse for video telephone
US492431117 Apr 19898 May 1990Nec CorporationDual-mode teleconferencing system
US49264154 Feb 198815 May 1990Kabushiki Kaisha ToshibaLocal area network system for efficiently transferring messages of different sizes
US49320472 Sep 19875 Jun 1990Luma Telecom, Inc.Conversational video phone
US493595327 Apr 198919 Jun 1990International Business Machines CorporationCyclic video region transmission for videoconferencing systems
US49378561 Jun 198726 Jun 1990Natarajan T RajDigital voice conferencing bridge
US49424705 Jul 198917 Jul 1990Nec CorporationReal time processor for video signals
US49425402 Mar 198717 Jul 1990Wang Laboratories, Inc.Method an apparatus for specification of communication parameters
US494256924 Feb 198917 Jul 1990Kabushiki Kaisha ToshibaCongestion control method for packet switching apparatus
US494399428 Oct 198824 Jul 1990Luma Telecom IncorporatedStill picture picturephone communications system
US494541024 Oct 198831 Jul 1990Professional Satellite Imaging, Inc.Satellite communications system for medical related images
US494916927 Oct 198914 Aug 1990International Business Machines CorporationAudio-video data interface for a high speed communication link in a video-graphics display window environment
US49531593 Jan 198928 Aug 1990American Telephone And Telegraph CompanyAudiographics conferencing arrangement
US495319611 May 198828 Aug 1990Ricoh Company, Ltd.Image transmission system
US496252116 Dec 19889 Oct 1990Mitsubishi Denki Kabushiki KaishaApparatus for still picture video telephone apparatus and methods for transmitting and displaying still picture image for use therein
US496581922 Sep 198823 Oct 1990Docu-Vision, Inc.Video conferencing system for courtroom and other applications
US49911692 Aug 19885 Feb 1991International Business Machines CorporationReal-time digital signal processing relative to multiple digital communication channels
US499117126 Sep 19895 Feb 1991At&T Bell LaboratoriesBroadcast packet switch network
US499507130 May 198919 Feb 1991Telenorma Telefonbau Und Normalzeit GmbhVideo conference installation
US499976613 Jun 198812 Mar 1991International Business Machines CorporationManaging host to workstation file transfer
US500353231 May 199026 Mar 1991Fujitsu LimitedMulti-point conference system
US50142676 Apr 19897 May 1991Datapoint CorporationVideo conferencing network
US502002323 Feb 198928 May 1991International Business Machines CorporationAutomatic vernier synchronization of skewed data streams
US503491624 Oct 198823 Jul 1991Reuters LimitedFast contact conversational video system
US504200627 Feb 198920 Aug 1991Alcatel N. V.Method of and circuit arrangement for guiding a user of a communication or data terminal
US504206223 Oct 198920 Aug 1991At&T Bell LaboratoriesMethod and apparatus for providing real-time switching of high bandwidth transmission channels
US504607913 Oct 19893 Sep 1991Hashimoto CorporationTelephone answering device with TV telephone
US504608029 May 19903 Sep 1991Electronics And Telecommunications Research InstituteVideo codec including pipelined processing elements
US505016617 Mar 198817 Sep 1991Antonio CantoniTransfer of messages in a multiplexed system
US50561369 Mar 19908 Oct 1991The United States Of America As Represented By The United States Department Of EnergySecure video communications system
US506213612 Sep 199029 Oct 1991The United States Of America As Represented By The Secretary Of The NavyTelecommunications system and method
US507244228 Feb 199010 Dec 1991Harris CorporationMultiple clock rate teleconferencing network
US507773224 Jul 199031 Dec 1991Datapoint CorporationLAN with dynamically selectable multiple operational capabilities
US507962729 Jun 19897 Jan 1992Optum CorporationVideophone
US50832698 Jan 199021 Jan 1992Kabushiki Kaisha ToshibaBuffer device suitable for asynchronous transfer mode communication
US509951011 Jun 199024 Mar 1992Communications Network Enhancement Inc.Teleconferencing with bridge partitioning and other features
US510145126 Mar 199031 Mar 1992At&T Bell LaboratoriesReal-time network routing
US510948315 Jun 198728 Apr 1992International Business Machines Corp.Node initiating xid exchanges over an activated link including an exchange of sets of binding signals between nodes for establishing sessions
US513296623 Mar 199021 Jul 1992Nec CorporationCall control with transmission priority in a packet communication network of an atm type
US51365812 Jul 19904 Aug 1992At&T Bell LaboratoriesArrangement for reserving and allocating a plurality of competing demands for an ordered bus communication network
US513669224 Jul 19914 Aug 1992International Business Machines CorporationMemory disk buffer manager
US514041720 Jun 199018 Aug 1992Matsushita Electric Co., Ltd.Fast packet transmission system of video data
US514058423 Sep 199118 Aug 1992Kabushiki Kaisha ToshibaPacket communication system and method of controlling same
US515559410 May 199113 Oct 1992Picturetel CorporationHierarchical encoding method and apparatus employing background references for efficiently communicating image sequences
US515766212 Feb 199120 Oct 1992Hitachi, Ltd.Data communication apparatus having communication-mode changeover function and method of data communication between data communication stations having the same
US51630451 Oct 199010 Nov 1992At&T Bell LaboratoriesCommunications network arranged to transport connection oriented and connectionless messages
US51776043 Jun 19885 Jan 1993Radio Telcom & Technology, Inc.Interactive television and data transmission system
US519299925 Apr 19919 Mar 1993Compuadd CorporationMultipurpose computerized television
US5195086 *12 Apr 199016 Mar 1993At&T Bell LaboratoriesMultiple call control method in a multimedia conferencing system
US520095130 Jun 19926 Apr 1993Siemens-Albis AgApparatus and method for transmitting messages between a plurality of subscriber stations
US520693415 Aug 198927 Apr 1993Group Technologies, Inc.Method and apparatus for interactive computer conferencing
US521083613 Oct 198911 May 1993Texas Instruments IncorporatedInstruction generator architecture for a video signal processor controller
US522065326 Oct 199015 Jun 1993International Business Machines CorporationScheduling input/output operations in multitasking systems
US523149216 Mar 199027 Jul 1993Fujitsu LimitedVideo and audio multiplex transmission system
US524162527 Nov 199031 Aug 1993Farallon Computing, Inc.Screen image sharing among heterogeneous computers
US524359618 Mar 19927 Sep 1993Fischer & Porter CompanyNetwork architecture suitable for multicasting and resource locking
US524762629 May 199021 Sep 1993Advanced Micro Devices, Inc.Fddi controller having flexible buffer management
US52532518 Jan 199212 Oct 1993Nec CorporationSwitching system with time-stamped packet distribution input stage and packet sequencing output stage
US527667912 Feb 19924 Jan 1994U.S. West Advanced Technologies, Inc.Method for maintaining channels and a subscriber station for use in an ISDN system
US528363825 Apr 19911 Feb 1994Compuadd CorporationMultimedia computing and telecommunications workstation
US528947014 Dec 199222 Feb 1994International Business Machines Corp.Flexible scheme for buffer space allocation in networking devices
US529149218 Dec 19911 Mar 1994Unifi Communications CorporationExternally controlled call processing system
US52971433 Dec 199022 Mar 1994Echelon Systems, Corp.Network communication protocol including a reliable multicasting technique
US530735126 Aug 199126 Apr 1994Universal Data Systems, Inc.Data communication apparatus for adjusting frame length and method of operating same
US530943318 Jun 19923 May 1994International Business Machines Corp.Methods and apparatus for routing packets in packet transmission networks
US531158514 Apr 199210 May 1994At&T Bell LaboratoriesCarrier proportioned routing
US53134541 Apr 199217 May 1994Stratacom, Inc.Congestion control for cell networks
US531345514 Oct 199217 May 1994Koninklijke Ptt Nederland N.V.Transmission system with recording of untransmitted packets
US531558629 Jun 199224 May 1994Nec CorporationResource reallocation for flow-enforced user traffic
US53234455 Mar 199221 Jun 1994Mitsubishi Denki Kabushiki KaishaMulti-location television conference system
US53331351 Feb 199326 Jul 1994North American Philips CorporationIdentification of a data stream transmitted as a sequence of packets
US533329931 Dec 199126 Jul 1994International Business Machines CorporationSynchronization techniques for multimedia data streams
US53413741 Mar 199123 Aug 1994Trilan Systems CorporationCommunication network integrating voice data and video with distributed call processing
US535537118 Jun 198211 Oct 1994International Business Machines Corp.Multicast communication tree creation and control method and apparatus
US536763726 Mar 199222 Nov 1994International Business Machines CorporationSelf-tuning virtual storage management for dedicated real-time computer system
US537153423 Jul 19926 Dec 1994At&T Corp.ISDN-based system for making a video call
US537354923 Dec 199213 Dec 1994At&T Corp.Multi-level conference management and notification
US537495218 Feb 199420 Dec 1994Target Technologies, Inc.Videoconferencing system
US53750683 Jun 199220 Dec 1994Digital Equipment CorporationVideo teleconferencing for networked workstations
US537719630 Dec 199327 Dec 1994Hewlett-Packard CompanySystem and method of proactively and reactively diagnosing a data communication network
US53847708 May 199224 Jan 1995Hayes Microcomputer Products, Inc.Packet assembler
US53923443 Oct 199121 Feb 1995At&T Corp.Communications network class-of-service routing
US540241215 Oct 199328 Mar 1995Dsc Communications CorporationSystem and method for monitoring a stream of events
US542288316 Oct 19926 Jun 1995International Business Machines CorporationCall setup and channel allocation for a multi-media network bus
US542294210 Sep 19936 Jun 1995Sony CorporationIncoming call transfer terminal
US543252524 Jul 199011 Jul 1995Hitachi, Ltd.Multimedia telemeeting terminal device, terminal device system and manipulation method thereof
US543486020 Apr 199418 Jul 1995Apple Computer, Inc.Flow control for real-time data streams
US544062410 Nov 19928 Aug 1995Netmedia, Inc.Method and apparatus for providing adaptive administration and control of an electronic conference
US54427499 Jul 199315 Aug 1995Sun 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
US544470930 Sep 199322 Aug 1995Apple Computer, Inc.Protocol for transporting real time data
US545378028 Apr 199426 Sep 1995Bell Communications Research, Inc.Continous presence video signal combiner
US545582628 Jun 19943 Oct 1995Oezveren; Cueneyt M.Method and apparatus for rate based flow control
US545585426 Oct 19933 Oct 1995Taligent, Inc.Object-oriented telephony system
US545972522 Mar 199417 Oct 1995International Business Machines CorporationReliable multicasting over spanning trees in packet communications networks
US54736799 Dec 19935 Dec 1995At&T Corp.Signaling system for broadband communications networks
US547574617 Aug 199412 Dec 1995At&T Corp.Method for permitting subscribers to change call features in real time
US547754615 Jul 199219 Dec 1995Hitachi, Ltd.Teleconference terminal equipment and teleconference module
US54835878 Jun 19949 Jan 1996Linkusa CorporationSystem and method for call conferencing
US548358823 Dec 19949 Jan 1996Latitute CommunicationsVoice processing interface for a teleconference system
US54871679 Aug 199423 Jan 1996International Business Machines CorporationPersonal computer with generalized data streaming apparatus for multimedia devices
US549024724 Nov 19936 Feb 1996Intel CorporationVideo subsystem for computer-based conferencing system
US549179810 Nov 199313 Feb 1996International Business Machines CorporationMethod for network call management
US550272631 Jan 199226 Mar 1996Nellcor IncorporatedSerial layered medical network
US550684420 May 19949 Apr 1996Compression Labs, Inc.Method for configuring a statistical multiplexer to dynamically allocate communication channel bandwidth
US550695424 Nov 19939 Apr 1996Intel CorporationPC-based conferencing system
US550901025 Jun 199316 Apr 1996At&T Corp.Communications signaling protocols
US55111681 Jul 199323 Apr 1996Digital Equipment CorporationVirtual circuit manager for multicast messaging
US551549131 Dec 19927 May 1996International Business Machines CorporationMethod and system for managing communications within a collaborative data processing system
US552207322 Nov 199328 May 1996Hewlett-Packard CompanyMethod and apparatus for automating and controlling execution of software tools and tool sets via when/then relationships
US552411016 Nov 19944 Jun 1996Intel CorporationConferencing over multiple transports
US552603717 Jan 199511 Jun 1996Videoconferencing Systems, Inc.Method for remotely controlling a peripheral device in a videoconferencing system
US553080810 Dec 199325 Jun 1996International Business Machines CorporationSystem for transferring ownership of transmitted data packet from source node to destination node upon reception of echo packet at source node from destination node
US553090214 Jun 199325 Jun 1996Motorola, Inc.Data packet switching system having DMA controller, service arbiter, buffer type managers, and buffer managers for managing data transfer to provide less processor intervention
US553293731 Jan 19942 Jul 1996International Business Machines CorporationSwitching of multiple multimedia data streams
US553754814 Jun 199416 Jul 1996International Business Machines CorporationMethod of computer conferencing by intercepting commands issued by application programs and redirecting to all stations for execution
US554192724 Aug 199430 Jul 1996At&T Corp.Method of multicasting
US554430012 Nov 19936 Aug 1996Intel CorporationUser interface for dynamically converting between a single top level window and multiple top level windows
US554639529 Nov 199413 Aug 1996Multi-Tech Systems, Inc.Dynamic selection of compression rate for a voice compression algorithm in a voice over data modem
US555075413 May 199427 Aug 1996Videoptic ResearchTeleconferencing camcorder
US555772412 Oct 199317 Sep 1996Intel CorporationUser interface, method, and apparatus selecting and playing channels having video, audio, and/or text streams
US555774915 Oct 199217 Sep 1996Intel CorporationSystem 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
US55660007 Jun 199515 Oct 1996Qualcomm IncorporatedSystem and method for reducing bottlenecks in low data rate networks processing facsimile data transmission
US55722326 Aug 19935 Nov 1996Intel CorporationMethod and apparatus for displaying an image using subsystem interrogation
US557258224 Feb 19955 Nov 1996Apple Computer, Inc.Method and apparatus for establishing communication between two teleconferencing endpoints
US557493415 Nov 199412 Nov 1996Intel CorporationPreemptive priority-based transmission of signals using virtual channels
US557720823 Jun 199219 Nov 1996Alcatel 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
US558792813 May 199424 Dec 1996Vivo Software, Inc.Computer teleconferencing method and apparatus
US559485921 Feb 199514 Jan 1997Digital Equipment CorporationGraphical user interface for video teleconferencing
US560064627 Jan 19954 Feb 1997Videoserver, Inc.Video teleconferencing system with digital transcoding
US560079716 Nov 19944 Feb 1997Intel CorporationSystem for identifying new client and allocating bandwidth thereto by monitoring transmission of message received periodically from client computers informing of their current status
US560474231 May 199518 Feb 1997International Business Machines CorporationCommunications system and method for efficient management of bandwidth in a FDDI station
US560655425 May 199525 Feb 1997Hitachi, Ltd.Teleconference terminal equipment and teleconference module
US560865312 Feb 19964 Mar 1997Digital Equipment CorporationVideo teleconferencing for networked workstations
US561278818 May 199418 Mar 1997Sony CorporationVideo data compression apparatus for recording and reproducing compressed video data at their various compressed data rates
US56175397 Jun 19961 Apr 1997Vicor, Inc.Multimedia collaboration system with separate data network and A/V network controlled by information transmitting on the data network
US56218949 Aug 199515 Apr 1997Microsoft CorporationSystem and method for exchanging computer data processing capabilites
US562348311 May 199522 Apr 1997Lucent Technologies Inc.Synchronization system for networked multimedia streams
US56234902 Apr 199622 Apr 1997Intelligence-At-LargeMethod and apparatus for multiple media digital communication system
US562369016 Jul 199222 Apr 1997Digital Equipment CorporationAudio/video storage and retrieval for multimedia workstations by interleaving audio and video data in data file
US56254078 Jul 199429 Apr 1997Lucent Technologies Inc.Seamless multimedia conferencing system using an enhanced multipoint control unit and enhanced endpoint devices
US562797816 Dec 19946 May 1997Lucent Technologies Inc.Graphical user interface for multimedia call set-up and call handling in a virtual conference on a desktop computer conferencing system
US563202213 Nov 199120 May 1997The United States Of America As Represented By The Administrator Of The National Aeronautics And Space AdministrationEncyclopedia of software components
US564910510 Nov 199315 Jul 1997Ibm Corp.Collaborative working in a network
US565288731 May 199529 Jul 1997International Business Machines CorporationDynamic Meta commands for peripheral devices
US56596928 May 199519 Aug 1997Massachusetts Institute Of TechnologyComputer method and apparatus for video conferencing
US566412612 Sep 19962 Sep 1997Kabushiki Kaisha ToshibaHuman interface system for communicating networked users
US566416424 Feb 19952 Sep 1997Apple Computer, Inc.Synchronization of one or more data streams
US56642268 Sep 19942 Sep 1997International Business Machines CorporationSystem for merging plurality of atomic data elements into single synchronized file by assigning ouput rate to each channel in response to presentation time duration
US567142828 Aug 199223 Sep 1997Kabushiki Kaisha ToshibaCollaborative document processing system with version and comment management
US56733936 Feb 199630 Sep 1997Intel CorporationManaging bandwidth over a computer network having a management computer that allocates bandwidth to client computers upon request
US567400328 Apr 19957 Oct 1997Andersen; David B.Mechanisms for accessing unique features of telephony networks from a protocol-Independent data transport interface
US56896411 Oct 199318 Nov 1997Vicor, Inc.Multimedia collaboration system arrangement for routing compressed AV signal through a participant site without decompressing the AV signal
US570869727 Jun 199613 Jan 1998Mci Communications CorporationCommunication network call traffic manager
US571059127 Jun 199520 Jan 1998At&TMethod and apparatus for recording and indexing an audio and multimedia conference
US571786327 Sep 199510 Feb 1998Intel CorporationMethod and apparatus for managing pc conference connection addresses
US572172924 Jan 199624 Feb 1998Klingman; Edwin E.Universal input call processing system
US57245089 Mar 19953 Mar 1998Insoft, Inc.Apparatus for collaborative computing
US57245787 Sep 19953 Mar 1998Fujitsu LimitedFile managing system for managing files shared with a plurality of users
US572968720 Dec 199317 Mar 1998Intel CorporationSystem 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
US57375997 Dec 19957 Apr 1998Rowe; Edward R.Method and apparatus for downloading multi-page electronic documents with hint information
US57426709 Jan 199521 Apr 1998Ncr CorporationPassive telephone monitor to control collaborative systems
US574277318 Apr 199621 Apr 1998Microsoft CorporationMethod and system for audio compression negotiation for multiple channels
US57543065 Sep 199519 May 1998Hewlett-Packard CompanySystem and method for a communication system
US57547656 Jun 199519 May 1998Intel CorporationAutomatic transport detection by attempting to establish communication session using list of possible transports and corresponding media dependent modules
US57580797 Jun 199626 May 1998Vicor, Inc.Call control in video conferencing allowing acceptance and identification of participants in a new incoming call during an active teleconference
US576076922 Dec 19952 Jun 1998Intel CorporationApparatus and method for identifying a shared application program in a computer during teleconferencing
US57649158 Mar 19969 Jun 1998International Business Machines CorporationObject-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
US57933652 Jan 199611 Aug 1998Sun Microsystems, Inc.System and method providing a computer user interface enabling access to distributed workgroup members
US579915124 Jul 199525 Aug 1998Hoffer; Steven M.Interactive electronic trade network and user interface
US580170019 Jan 19961 Sep 1998Silicon Graphics IncorporatedSystem and method for an iconic drag and drop interface for electronic file transfer
US580923727 Mar 199515 Sep 1998Intel CorporationRegistration of computer-based conferencing system
US584176313 Jun 199524 Nov 1998Multilink, Inc.Audio-video conferencing system
US584197629 Mar 199624 Nov 1998Intel CorporationMethod and apparatus for supporting multipoint communications in a protocol-independent manner
US58481434 Mar 19968 Dec 1998Geotel Communications Corp.Communications system using a central controller to control at least one network and agent system
US585489824 Feb 199529 Dec 1998Apple Computer, Inc.System for automatically adding additional data stream to existing media connection between two end points upon exchange of notifying and confirmation messages therebetween
US58571898 May 19965 Jan 1999Apple Computer, Inc.File sharing in a teleconference application
US585997921 Oct 199712 Jan 1999Intel CorporationSystem for negotiating conferencing capabilities by selecting a subset of a non-unique set of conferencing capabilities to specify a unique set of conferencing capabilities
US58646788 May 199626 Jan 1999Apple Computer, Inc.System for detecting and reporting data flow imbalance between computers using grab rate outflow rate arrival rate and play rate
US587292328 Sep 199316 Feb 1999Ncr CorporationCollaborative video conferencing system
US588717013 Feb 199523 Mar 1999International Business Machines CorporationSystem for classifying and sending selective requests to different participants of a collaborative application thereby allowing concurrent execution of collaborative and non-collaborative applications
US590375414 Nov 199711 May 1999Microsoft CorporationDynamic layered protocol stack
US59073245 Nov 199725 May 1999Intel CorporationMethod for saving and accessing desktop conference characteristics with a persistent conference object
US59130623 Jul 199715 Jun 1999Intel CorporationConference system having an audio manager using local and remote audio stream state machines for providing audio control functions during a conference session
US59207321 Jul 19966 Jul 1999Apple Computer, 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
US59319618 May 19963 Aug 1999Apple Computer, Inc.Discovery of acceptable packet size using ICMP echo
US59335974 Apr 19963 Aug 1999Vtel CorporationMethod and system for sharing objects between local and remote terminals
US59737242 Oct 199726 Oct 1999Apple Computer, Inc.Merging multiple teleconferences
US59832611 Jul 19969 Nov 1999Apple Computer, Inc.Method and apparatus for allocating bandwidth in teleconferencing applications using bandwidth control
US59954915 Feb 199730 Nov 1999Intelligence At Large, Inc.Method and apparatus for multiple media digital communication system
US59999779 Dec 19977 Dec 1999Apple Computer, Inc.System for terminating multicast channel and data broadcast when at least two second endpoints do not transmit positive acknowledgment message to first endpont
US600880626 Oct 199828 Dec 1999Microsoft CorporationShell extensions for an operating system
US610470610 Nov 199915 Aug 2000Intelligence-At-Large, Inc.Method and apparatus for multiple media digital communication system
US615161926 Nov 199621 Nov 2000Apple Computer, Inc.Method and apparatus for maintaining configuration information of a teleconference and identification of endpoint during teleconference
US617585630 Sep 199616 Jan 2001Apple Computer, Inc.Method and apparatus for dynamic selection of compression processing during teleconference call initiation
US61890348 May 199613 Feb 2001Apple Computer, Inc.Method and apparatus for dynamic launching of a teleconferencing application upon receipt of a call
US62955498 May 199625 Sep 2001Apple Computer, Inc.Method and apparatus for listening for incoming calls on multiple port/socket combinations
US650523416 Aug 20017 Jan 2003Apple Computer, Inc.Method and apparatus for listening for incoming calls on multiple port/socket combinations
US673835719 Jun 200018 May 2004Btg International Inc.Method and apparatus for multiple media digital communication system
US67452289 Dec 20021 Jun 2004Apple Computer, Inc.Method and apparatus for listening for incoming calls on multiple port/socket combinations
US703901926 Mar 20022 May 2006Kabushiki Kaisha ToshibaTelephone exchanging apparatus and telephone system
US705042522 Jun 200423 May 2006Btg International Inc.Apparatus for multiple media digital communication
US707592419 Mar 200411 Jul 2006Btg International Inc.Methods for multiple media digital communication
US71678978 May 199623 Jan 2007Apple Computer, Inc.Accessories providing a telephone conference application one or more capabilities independent of the teleconference application
US2002002935012 Feb 20017 Mar 2002Cooper Robin RossWeb based human services conferencing network
US2002007315016 Oct 200113 Jun 2002Lawrence WilcockAssociating parties with communication sessions
US2002007602518 Dec 200020 Jun 2002Nortel Networks Limited And Bell CanadaMethod and system for automatic handling of invitations to join communications sessions in a virtual team environment
US200301355519 Dec 200217 Jul 2003Guy RiddleMethod and apparatus for listening for incoming calls on multiple port/socket combinations
US2004015351023 Jan 20045 Aug 2004Guy RiddleAccessories providing a telephone conference application one or more capabilities independent of the teleconference application
US2004021063817 May 200421 Oct 2004Guy RiddleMethod and apparatus for listening for incoming calls on multiple port/socket combinations
US2006027162831 Jul 200630 Nov 2006Guy RiddleAccessories for teleconference component
USRE391359 Nov 200113 Jun 2006Apple Computer, Inc.Method and apparatus for allocating bandwidth in teleconferencing applications using bandwidth control
CA2080530A114 Oct 199215 Apr 1994Ho Kee ChiuDynamic networking
EP0279232A226 Jan 198824 Aug 1988International Business Machines CorporationA system and method for version level negotiation
EP0453128A23 Apr 199123 Oct 1991AT&T Corp.Multiple call control method in a multimedia conferencing system
EP1670197A220 Jan 200414 Jun 2006Avaya Technology Corp.Messaging advice in presence-aware networks
EP1816786A223 Feb 19968 Aug 2007Apple Computer, Inc.Identifying application capabilities for teleconference connections
GB2289149A Title not available
WO2005104466A119 Apr 20053 Nov 2005Koninklijke Philips Electronics, N.V.System and method for chat load management in a network chat environment
Non-Patent Citations
Reference
1"Adaptive Audio Playout Algorithm for Shared Packet Networks," IBM Technical Disclosure Bulletin, Apr. 1993, pp. 255-257, vol. 36, No. 4, Armonk, NY.
2"Apple Media Conference Guide," Apple Computer, Inc., screen shots, 14 pages.
3"Apple QuickTime Conferencing Kit," Apple Computer, Inc., Aug. 1995, 2 pages.
4"Apple QuickTime Conferencing," Apple Computer, Inc., Apple QuickTime Fact Sheet, Jan. 1995, 2 pages.
5"Control of Video Telephony from a Data Conferencing System," IBM Technical Disclosure Bulletin, v. 37, Oct. 1994, pp. 327-332.
6"Draft ITU-T Recommendation H.245, Line Transmission of Non-Telephone Signals; Control Protocol for Multimedia Communication," International Telecommunication Union, Nov. 27, 1995, pp. 1-189.
7"Dynamic Conference Call Participation" IBM Technical Disclosure Bulletin, V. 28, Aug. 1995, pp. 1135-1138.
8"Intelligent Packet Relay in Distributed Multimedia Systems," IBM Technical Disclosure Bulletin, v. 37, Jul. 1994, pp. 211-214.
9"OSF/Motif Programmer's Guide, Revision 1.1," Open Software Foundation, 1990, 1991, pp. i-xviii, 1-1-1-9, GL-1-GL-15, Index-1-Index-34, Prentice-Hall, Inc., Englewood Cliffs, NJ.
10"Output Throttle Mechanism," IBM Technical Disclosure Bulletin, Apr. 1990, pp. 274-279, vol. 32, No. 11.
11"ULTRIX Worksystem Software X Window System Protocol: X Version 11," ULTRIX Worksystem Software, Version 2.0, Digital Equipment Corporation, 1988, Order No. AA-MA98A-TE.
12Aguilar, L., et al., "Architecture for a Multimedia Teleconferencing System," Proceedings of ACM SIGCOMM'86, Aug. 1986, pp. 126-136.
13Ahuja, S. R., et al., "The Rapport Multimedia Conferencing System," Proceedings of Conference on Office Information Systems, Mar. 1988, pp. 1-8.
14Baker, S., "Remote-Access Protocols," UNIX Review, May 1995, pp. 1-4.
15Barberis, G., et al., "Coded Speech in Packet-Switched Networks: Models and Experiments," IEEE Journal on Selected Areas in Communications, Special Issue on Packet Switched Voice and Data Communication, Dec. 1983, pp. 1028-1038, vol. SAC-1, No. 6.
16Bubenik, R., et al., "Multipoint Connection Management in High Speed Networks," IEEE INFOCOM '91, pp. 59-67 (1991).
17Burton, J., "Standard Issue," Byte, Sep. 1995, pp. 1-10.
18C. Kim et al., "Performance of Call Splitting Algorithms for Multicast Traffic," INFOCOM '90, pp. 348-356 (1990).
19Carne, E. B., "Modern Telecommunication," Applications of Communications Theory, GTE Laboratories Incorporated, 1984, pp. 44-47.
20Casner, S., et al., "First IETF Internet Audiocast," Reprinted from ACM SIGCOMM Computer Communications Review, Jul. 1992, vol. 22, No. 3, ISI Reprint Series, ISI/RS-92-293, Jul. 1992, pp. 1-6.
21Casner, S., et al., "N-Way Conferencing with Packet Video," Reprinted from the Proceedings of the Third International Workshop on Packet Video held Mar. 22-23, 1990 in Morristown, NJ, ISI Reprint Series, ISI/RS-90-252, Apr. 1990, pp. 1-6.
22Chong-Kwon, K., et al., "Performance of Call Splitting Algorithms for Multicast Traffic," INFOCOM 1990, pp. 348-356.
23Cohen, D., "Specifications for the Network Voice Protocol (NVP)," NWG/RFC 741, Nov. 1977.
24Cohen, D., "Specifications for the Network Voice Protocol," USC/Information Sciences Institute, Mar. 1976, ISI/RR-75-39, Available from DTIC (AD # A023506).
25Comer, D., "Internetworking with TCP/IP, vol. 1: Principles, Protocols, and Architecture," 2nd Edition, 1991, pp. 1-8, 337-346, 505, Prentice Hall, Englewood Cliffs, NJ.
26Deering, S., "Host Extensions for IP Multicasting," RFC 1112, Internet Engineering Task Force, Aug. 1989.
27Degan, J. J., et al., "Fast Packet Technology for Future Switches," AT&T Technical Journal, Mar./Apr. 1989, pp. 36-50, vol. 68, No. 2.
28Donath, J., et al., "The Sociable Web," Proceedings of Second International WWW Conference, 1994, 7 pages, [Online] [Retrieved on Feb. 2, 2008] Retrieved from the internet .
29Donath, J., et al., "The Sociable Web," Proceedings of Second International WWW Conference, 1994, 7 pages, [Online] [Retrieved on Feb. 2, 2008] Retrieved from the internet <URL: http://www.nicoladoering.de/Hogrefe/donath.htm>.
30Eng, K. Y., et al., "Multicast and Broadcast Services in a Knockout Packet Switch," Proceedings of the IEEE INFOCOM'88, pp. 29-34.
31European Search Report and Search Opinion, European Patent Application No. EP 07009590.6, Jul. 24, 2007.
32European Search Report and Search Opinion, European Patent Application No. EP 07009591.4, Jul. 17, 2007.
33European Search Report and Search Opinion, European Patent Application No. EP 07009592.2, Jul. 18, 2007.
34European Search Report for European Patent Application No. EP 09000330.2, Sep. 13, 2010, 7 pages.
35Fenner, W., "Internet Group Management Protocol, Version 2," RFC 2236, Internet Engineering Task Force, Nov. 1997.
36Finnegan, J., "Building Windows NT-Based Client/Server Applications Using Remote Procedure Calls," Microsoft Systems Journal, Oct. 1994, pp. 1-17.
37Forsdick, H., "Explorations into Real-Time Multimedia Conferencing," Proceedings of the 2nd International Symposium on Computer Message Systems, IFIP, Sep. 1985, pp. 331-347.
38Gemmell, J. et al., "An Architecture for Multicast Telepresentations," Journal of Computing and Information Technology-CIT, pp. 255-272, vol. 6, No. 3.
39Gemmell, J. et al., "An Architecture for Multicast Telepresentations," Journal of Computing and Information Technology—CIT, pp. 255-272, vol. 6, No. 3.
40Gemmell, J., et al., "A Scalable Multicast Architecture for One-to-Many Telepresentations," Multimedia Computing and Systems, Proceedings, IEEE International Conference, 1998, pp. 128-139.
41Ghafoor, A., et al., "An Efficient Communication Structure for Distributed Commit Protocols," IEEE Journal on Selected Areas in Communications, Apr. 1989, pp. 375-389, vol. 7, No. 3.
42Handley, M., et al., "The Conference Control Channel Protocol (CCCP): A scalable base for building conference control applications," ACM, SIGCOMM, 1995, pp. 275-287.
43Hoberecht, W. L., "A Layered Network Protocol for Packet Voice and Data Integration," IEEE Journal on Selected Areas in Communications, Special Issue on Packet Switched Voice and Data Communication, Dec. 1983, pp. 1006-1013, vol. SAC-1, No. 6.
44J. Ott et al., "Multicasting the ITU MCS: Integrating Point-to-Point abd Multicast Transport" Singapore ICCS, pp. 1013-1017 (1994).
45Jamsa, K., et al., "Internet Programming," Jan. 1995, pp. 152-218.
46Kalman, S., "CTI Systems: Now's the Time," Network VAR, Aug. 1995, pp. 1-5.
47Lantz, K. A., "An Experiment in Integrated Multimedia Conferencing," Proceedings of the Conference on Computer-Supported Cooperative Work'86, Dec. 1986, pp. 533-552, Reading 19.
48Le Boudec, J., "The Asynchronous Transfer Mode: A Tutorial," Computer Networks and ISDN Systems, May 15, 1992, pp. 279-309, vol. 24, No. 4.
49Lee, T. T., et al., "The Architecture of a Multicast Broadband Packet Switch," Proceedings of IEEE INFOCOM'88, pp. 1-8.
50Leung, W. F., et al., "A Software Architecture for Workstations Supporting Multimedia Conferencing in Packet Switching Networks," IEEE Journal on Selected Areas in Communications, Apr. 1990, pp. 380-390, vol. 8, No. 3.
51Leung, W. H., et al., "A Set of Operating System Mechanisms to Support Multi-Media Applications," Proceedings of 1988 International Zurich Seminar on Digital Communications, Mar. 1988, pp. B4.1-B4.6.
52Levendel, Y., "Software Assembly Workbench: How to Construct Software Like Hardware," IEEE, Feb. 1995, pp. 4-12.
53Maeno, K., et al., "Distributed Desktop Conferencing System (Mermaid) Based on Group Communication Architecture," ICC '91, Jun. 28, 1991, pp. 0520-0525.
54Magill, D. T., "Adaptive Speech Compression for Packet Communication Systems," Conference Record of the IEEE National Telecommunications Conference, 1973, pp. 29D-1-29-D5.
55Mark, J. W., et al., "A Dual-Ring LAN for Integrated Voice/Video/Data Services," Department of Electrical and Computer Engineering and Computer Communications Networks Group, IEEE, 1990, pp. 850-857, University of Waterloo, Waterloo, Ontario, Canada.
56Mello, J. P., Jr., "Telephony's Killer App?," Byte, Sep. 1995, pp. 1-7.
57Minzer, S. E., et al., "New Directions in Signaling for Broadband ISDN," IEEE Communications Magazine, Feb. 1989, pp. 6-14.
58Mon-Song Chen, et al., "Designing a Distributed Collaborative Environment," Communication for Global Users, including a Communications Theory Mini Conference, Orlando, Dec. 6-9, 1992, Institute of Electrical and Electronics Engineers, pp. 219-219.
59Montgomery, W. A., "Techniques for Packet Voice Synchronization," IEEE Journal on Selected Areas in Communications, Special Issue on Packet Switched Voice and Data Communication, Dec. 1983, pp. 1022-1028, vol. SAC-1, No. 6.
60Musser, J. M., et al., "A Local Area Network as a Telephone Local Subscriber Loop," IEEE Journal on Selected Areas in Communications, Special Issue on Packet Switched Voice and Data Communication, Dec. 1983, pp. 1046-1054, vol. SAC-1, No. 6.
61Nicolaou, C., "An Architecture for Real-Time Multimedia Communication Systems," IEEE Journal on Selected Areas in Communications, Apr. 1990, pp. 391-400, vol. 8, No. 3.
62Nojima, S., et al., "High Speed Packet Switching Network for Multi-Media Information," Proceedings of IEEE 1986 Computer Networking Symposium, pp. 141-150.
63Office Action for U.S. Appl. No. 10/857,806, Jul. 27, 2009, 22 Pages.
64Office Action for U.S. Appl. No. 12/210,847, May 12, 2010, 4 Pages.
65Office Action for U.S. Appl. No. 12/210,847, Sep. 21, 2010, 7 Pages.
66Office Action received for U.S. Appl. No. 12/210,847, Dec. 30, 2009, 5 Pages.
67Oikarinen, J., et al., "Request for Comments: 1459: Internet Relay Chat Protocol," Internet Engineering Task Force, Network Working Group, May 1993, 65 pages.
68Ott, J., et al., "Multicasting the ITU MCS: Integrating Point-to-Point & Multicast Transport," Singapore ICCS, 1994, pp. 1013-1017.
69Palmer, L., et al., "Desktop Meeting," LAN Magazine, Nov. 1991, pp. 111-121, vol. 6, No. 11.
70PCT International Search Report (PCT/US96/02459) Aug. 7, 1996.
71Poggio, A., et al., "CCWS: A Computer-Based, Multimedia Information System," Computer, Oct. 1985, pp. 92-103.
72Schooler, E. M., "A Distributed Architecture for Multimedia Conference Control," ISI Research Report, Nov. 1991, ISI/RR-91-289, 20 pages, University of Southern California, Information Sciences Institute.
73Schooler, E. M., "Case Study: Multimedia Conference Control in a Packet-Switched Teleconferencing System," Reprinted from the Journal of Intemetworking: Research and Experience, Jun. 1993, pp. 99-120, vol. 4, No. 2, ISI Reprint Series, ISI/RS-93-359, Aug. 1993, pp. 1-17.
74Schooler, E. M., "Conferencing and Collaborative Computing," Multimedia Systems, 1996, pp. 210-225, vol. 4.
75Schooler, E. M., "The Connection Control Protocol: Architecture Overview," USC/Information Sciences Institute, Version 1.0, Jan. 28, 1992, pp. 1-6.
76Schooler, E. M., "The Connection Control Protocol: Specification," USC/Information Sciences Institute, Version 1.1, Jan. 29, 1992, pp. 1-6.
77Schooler, E. M., et al., "A Packet-Switched Multimedia Conferencing System," Reprinted from ACM SIGOIS Bulletin, Jan. 1989, pp. 12-22, vol. 1, No. 1, University of Southern Califomia, Information Sciences Institute.
78Schooler, E. M., et al., "An Architecture for Multimedia Connection Management," Reprinted from the Proceedings of the IEEE 4th Comsoc International Workshop on Multimedia Communications, MM '92, Apr. 1992, pp. 271-274, Monterey, CA, ISI Reprint Series, ISI/RS-92-294, Aug. 1992, pp. 1-4.
79Schooler, E. M., et al., "Multimedia Conferencing: Has it come of age?," IEEE Journal on Selected Areas in Communications, 1991, pp. 707-716.
80Schulzrinne, H., "A Transport Protocol for Real-Time Applications," Audio-Video Transport WG, Internet Engineering Task Force, Internet Draft, draft-ietf-avt-rtp-00, Dec. 15, 1992, pp. 1-12.
81Schulzrinne, H., et al. "A Transport Protocol for Real-Time Applications," Audio-Video Transport WG, Internet Engineering Task Force, Internet Draft, draft-ietf-avt-rtp-01, May 6, 1993, pp. 1-18.
82Shenker, S., et al., "Managing Shared Ephemeral Teleconferencing State: Policy and Mechanism," Lecture Notes in Computer Science, 1994, vol. 882, 69.
83Shinjo, Y., et al., "Object-Stacking in the World-Wide Web," Fourth International Workshop on Object-Orientation in Operating Systems, IEEE, Aug. 1995, pp. 210-219.
84Shinjo, Y., et al., "Object-Stacking Model for Structuring Object-Based Systems," International Workshop on Object-Orientation in Operating Systems, I-WOOOS '02, Sep. 1992, Paris, France, pp. 328-340.
85Turner, J. S., "Design of a Broadcast Packet Switching Network," IEEE Transactions on Communications, Jun. 1988, pp. 734-743, vol. 36, No. 6.
86U.S. Appl. No. 10/020,515, filed Dec. 7, 2001, Riddle.
87U.S. Appl. No. 10/857,798, filed May 28, 2004, Riddle.
88U.S. Appl. No. 10/857,799, filed May 28, 2004, Riddle.
89U.S. Appl. No. 10/857,805, filed May 28, 2004, Riddle.
90U.S. Appl. No. 10/857,806, filed May 28, 2004, Riddle.
91Ueda, H., et al., "Evaluation of an Experimental Packetized Speech and Data Transmission System," IEEE Journal on Selected Areas in Communications, Special Issue on Packet Switched Voice and Data Communication, Dec. 1983, pp. 1039-1045, vol. SAC-1, No. 6.
92W.H. Leung, et al., "Multimedia Conferencing Capabilities in an Experimental Fast Packet Network," Proceedings of the International Switching Symposium, Yokohama, Oct. 25, 1992, Institute of Electronics, Information and Communication Engineers, pp. 258-262.
93Watabe, K., et al., "Distributed Desktop Conferencing System with Multiuser Multimedia Interface," IEEE Journal on Selected Areas in Communications, May 1991, pp. 531-539, vol. 9, No. 4.
94Weinstein, C. J., et al., "Experience with Speech Communication in Packet Networks," IEEE Journal on Selected Areas in Communications, Special Issue on Packet Switched Voice and Data Communication, Dec. 1983, pp. 963-980, vol. SAC-1, No. 6.
95Wong, W., "Welcome to Teleconferencing," Stacks, Jun. 1995, pp. 1-7.
96Yukimatsu, K., et al., "Multicast Communication Facilities in a High Speed Packet Switching Network," Proceedings of ICCC'86, pp. 276-281.