# Patent

## Title
Method and apparatus for automatically data streaming a multiparty conference session

## Abstract

A system and method for automatically data streaming a multiparty conference. The system allows a session moderator or other guests to request data streaming of the multiparty. The data-stream-initiation request is received from an Internet-based interface. Upon receiving the request, the conferencing system automatically establishes data streams of audio and visual data of the conference and transmits the data stream to call participants. The conferencing system is also configured to record the conference call and transcode the call for subsequent playback.

## Background
CROSS-REFERENCE TO RELATED PATENT APPLICATIONS
This patent application claims priority to U.S. Provisional Patent Application Ser. No. 60/186,033, entitled “A Mechanism to Automatically Record and Live-Broadcast/Simulcast a Telephony Conference For Distribution Via Internet Streaming Media,” filed Mar. 1, 2000 by Paul Berberian and Todd Vernon, the disclosure of which is incorporated by reference herein, and claims priority to commonly assigned U.S. Provisional Patent Application Ser. No. 60/199,077, entitled “A Mechanism to Automatically Record and Live-Broadcast/Simulcast a Telephony Conference For Distribution Via Internet Streaming Media,” filed Apr. 20, 2000 by Paul Berberian and Todd Vernon, the disclosure of which is incorporated by reference herein.


BACKGROUND OF THE INVENTION
This invention relates generally to the streaming of a conference session, and in particular, to a method and apparatus for automatically data streaming a multiparty conference session.
Participants of meetings in a single company, as well as meetings between multiple companies, are typically located at geographically remote locations. Often, expenses associated with the participants' travel to a single site for the meetings prohibit such travel. Teleconferencing provides a convenient, low-cost solution by allowing individuals from various geographic locations to have a meeting over the telephone. Teleconferencing also can be used where the number of participants in a meeting exceeds the available physical meeting space.
Conventional conferencing systems and methods are limited in the number of people that can participate in a conference call. One type of limitation includes expense limitations. Typically, the moderator of a conference call has to pay for each connection. For a conference call with a large number of participants, the cost can become prohibitive.
Another type of limitation is a hardware limitation. Conferencing equipment, such as conference bridges, have a limited number of connections that can be handled. Since each participant in the conference call connects to the conference bridge, a connection line on the conference bridge is needed for each participant.
A proposed solution is to record the conference call and make it available for playback by people who did not listen to the original call. However, the process of recording a call and making the recorded data available for later playback involves manually linking equipment and manually initiating the recording process. Such steps are burdensome and time intensive.
As can be appreciated, conventional conferencing systems are limited in their ability to live broadcast a telephone conference and to record a telephone conference. What is needed therefore is a system for recording and automatically data streaming a telephone conference to participants.
SUMMARY OF THE INVENTION
The present invention addresses the aforementioned needs by providing a system that enables the data streaming of a conference session. In accordance with the present invention, the conferencing system can be configured to include a transcoding platform that records the conference session. The conferencing system can data stream the audio data of a conference call to participants. The conferencing system can also record the conference call and transcode it for subsequent playback. It is a feature of the present invention that the data streaming and the recording of the conference call can be automatically initiated and handled by the conferencing system.



BRIEF DESCRIPTION OF THE DRAWINGS
The foregoing and other features and advantages of the invention will be apparent from the following, more particular description of embodiments of the invention, as illustrated in the accompanying drawings.
FIG. 1 illustrates a generic multiparty conference streaming system.
FIG. 2 illustrates a user interface window of the conference streaming system of FIG. 1.
FIGS. 3A-3B, 4A-4B, and 5 are flowcharts of the operation of a multiparty conference streaming system.
FIG. 6 illustrates an embodiment of a transcoding platform according to the invention.



DETAILED DESCRIPTION OF THE INVENTION
Several embodiments of the invention are discussed in detail below. While specific implementations are discussed, it should be understood that this is done for illustration purposes only. A person skilled in the relevant art will recognize that other components and configurations may be used without parting from the spirit and scope of the invention.
The terms “conference call,” “conference session,” and “multiparty conference session” are used interchangeably for any telephone conference call between more than one participant. The term “participant” includes any person who has the ability to talk on a particular conference call or who receives the data stream of a conference call as the call is being conducted. In one embodiment the data stream is an audio stream. One of the participants in the conference call is referred to as a moderator. The moderator can initiate and/or control the conference call.
It can be appreciated that while the description of the invention includes descriptions of different platforms in the conferencing system, one or more of the platforms can be either co-located on a single system or device or located on different devices.
It is a feature of the present invention to provide a system to automatically record and/or broadcast a live telephony conference for distribution. The system enables the live and on-demand play of conferences using streaming media technology. The conference recordation and playback enable persons not able to participate in the original conference call to access and playback the conference call anytime.
Another feature is to automate the starting, ending, and managing of a recording and/or live broadcast of a conference session. Upon a request from a moderator, the conferencing system establishes a link to a transcoding platform and automatically initiates the streaming process. Once the conference is complete, the conferencing system automatically moves the files to an appropriate location and makes them immediately available for playback.
Another feature is to allow listen-only participants to connect to an Internet audio stream of the conference call. A benefit is that the number of participants can be significantly increased without tying up additional conference ports. Typically, few participants in a conference call speak and the majority of the participants listen. By streaming the audio portion of a conference call, many participants can listen to the call while only a single line on the conference bridge is required for those participants.
In one embodiment, the moderator can use a web browser to control the conference. For example, the moderator can view current participants, dial out to new participants, and mute or disconnect participants.
In another embodiment, the moderator may share and control a slide presentation with participants who are using a web browser. Pointers to the actual slides are captured when the conference is recorded.
An example of a system for generating a data stream of a conference session is illustrated in FIG. 1. The system 100 includes a conferencing system 105 that is coupled to a communication network 120 and a communication network 132.
In the illustrated embodiment, communication network 120 is a packet-switched network, such as the Internet, a local area network (LAN), a wide area network (WAN), or any other private or public network. In a packet-switched network, there is no single, continuous connection between the sender and the receiver. Information is broken into small packets, routed to the receiving end and then reassembled.
In one embodiment, communication network 132 is a packet-switched network. Some examples of suitable packet-switched networks include voice-over internet protocol (IP) networks, voice-over digital subscriber line (DSL) networks, and voice-over asynchronous transfer mechanism (ATM) networks.
In another embodiment, communication network 132 can be a circuit-switched network, such as telephone network. In a circuit-switched network, such as a telephone network, after a connection is made, that part the circuit-switched network is dedicated only to that single connection. Some examples of telephone networks include a public switch telephone network (PSTN), a private branch exchange (PBX), or other private telephone network. In one embodiment, the conferencing system 105 can include communication network 132.
The conferencing system 105 is coupled to a plurality of communication devices 110, 112, 114 via communication network 120. Device 114 is designated as the communication device of the moderator of a conference call.
In one embodiment, communication devices 110, 112, 114 are personal computers. In an alternative embodiment, communication devices 110, 112, 114 can be voice-over IP telephones. It can be appreciated that any number of communication devices can be coupled to the communication network 120.
Communication devices 110, 112, 114 can be used by participants in a conference call to listen to the audio portion of a conference call and to view available images during a conference call. Similarly, the devices can be used to playback a recorded conference call at a time unrelated to the call.
The moderator can upload and share a presentation with conference participants who can access the presentation via the communication network 120, as discussed below. Participants listening to the audio portion of a conference call can send written questions to the moderator over the communication network 120.
The conferencing system 105 is also coupled to a plurality of communication devices 140, 142, 144 via telephone network 132. In one embodiment, communication devices 140, 142, 144 are devices that can be coupled to the telephone network 132, such as telephones, including voice-over IP telephones, personal computers, etc. While three communication devices are illustrated in FIG. 1, any number of communication devices can be coupled to network 132.
A connection between the conferencing system 105 and communication devices 140, 142, 144 is established to allow speaking participation by persons using devices 140, 142, 144. In order to talk on a conference call, a participant needs to be connected to the telephone network 132. It can be appreciated that a single participant can operate concurrently one of the communication devices 110, 112, 114 and one of the communication devices 140, 142, 144.
In the illustrated embodiment, the conferencing system 105 includes an interface platform 122. Interface platform 122 provides an interface for participants in a conference call. In the illustrated embodiment, the interface platform 122 is an Internet-based or web-based user interface. In one embodiment, the interface platform 122 can include one or more servers. For example, different participants can be simultaneously interacting with different servers.
The interface platform 122 performs several functions related to the control and monitoring of the conference call. The interface platform 122 generates a series of related web pages that can be used to set up, initiate, and control a conference call. The particular features of the interface platform 122 for a moderator are discussed in greater detail below in reference to FIG. 2.
The moderator can upload a presentation on the interface platform 122. Participants can view the presentation, as controlled by the moderator, using communication devices 110, 112, 114.
The conferencing system 105 includes a conference-state-control platform 124 that is coupled to the interface platform 122. The conference-state-control platform 124 maintains data for an ongoing conference call. Such data can include the identification of the participants for a call, the particular communication device(s) for each participant, and the status of the communication lines for each participant, such as connected, dialed, muted, disconnected, etc.
In one embodiment, the conference-state-control platform includes a processor running an operating system, a database, and a customized software application. An exemplary processor is available from Sun Microsystems in Palo Alto, Calif. An exemplary operating system is a Sun Solaris Operating System available from Sun Microsystems. In one embodiment, the database is a database that includes a central database and a mirror database. An exemplary database is available from Oracle in Redwood Shores, Calif. In the illustrated embodiment, the mirror database contains information about ongoing calls and the central database contains information about previous conference calls. In one embodiment, the software application is a customized Java-based application.
The conferencing system 105 includes a conference bridge or multipoint telephony platform 130. The multipoint telephony platform 130 is coupled to the conference-state-control platform 124 and to telephone network 132 as illustrated in FIG. 1. For a particular conference call, the multipoint telephony platform 130 accepts multiple telephone calls, mixes the voices on the calls into an audio signal, and forwards the resulting signal to all of the connected lines.
In one embodiment, the multipoint telephony platform 130 includes a conference bridge available from Voyant.
The conferencing system 105 also includes a transcoding platform 128 and a streaming server platform 126. In the illustrated embodiment, the transcoding platform 128 is coupled to the conference-state-control platform 124 and to the telephone network 132. The streaming server platform 126 is coupled to the communication network 120 and to the transcoding platform 128.
The transcoding platform 128 includes a plurality of lines to which a call from the multipoint telephony platform 130 can be connected. In one embodiment, individual participants are connected to the multipoint telephony platform 130 via the telephone network 132. The multipoint telephony platform 130 merges the audio from the participants into a single stream which is forwarded to the transcoding platform 128 as a single call. The transcoding platform 128 can handle multiple conference calls from one or more multipoint telephony platforms concurrently.
Each telephone conference call has audio data associated with the call. The transcoding platform 128 processes the audio data for a call that is connected to one of its lines based on the instructions from the moderator for that call.
In one embodiment, the transcoding platform 128 records audio data received via internet protocol (IP) packets, transcodes the data into a streaming media compatible format that is written to a file and/or sends the digital data stream to the streaming server platform 126.
The moderator can request that a conference call be recorded for later playback. The moderator can also request that a call be data streamed to interested participants.
If the moderator requests recording of the call, the audio data of the call is recorded and saved to a file. Pointers to images and slide-change events that are presented as part of the conference call are also recorded into a time-sequenced streaming file. The transcoding platform 128 initiates a time-sequenced streaming or timing file at the beginning of the conference call. When the moderator changes slides during a conference call, the conference-state-control platform 124 informs the transcoding platform 128 and the servers in the interface platform 122 that a slide change occurred. Upon receiving such notification, the transcoding platform 128 records or marks that point in time in the timing file. The marking identifies the time relative to the start of the call that the slide was presented. The notification also causes the servers in the interface platform 122 to show the next slide in the uploaded presentation.
In the illustrated embodiment, the recorded files are forwarded to storage device 134 in a manner that facilitates the retrieval of the file. The recording and playback operations are discussed in greater detail below.
If the moderator requests streaming of the audio portion of a conference call, the transcoding platform 128 sends an encoded digital data stream to a streaming server platform 126. The streaming server platform 126 sends the data stream to the communication network 120. Some examples of a streaming server are a Microsoft Windows Media Server and a Real Networks Server.
Participants can access the data stream utilizing a communication device 110, 112, 114 and communication network 120. It can be appreciated that the audio stream may be listened to utilizing any streaming media player. For example, participants can use the Real PlayerTM media player available from Real Networks.
One embodiment of the transcoding platform 128 is illustrated in FIG. 6. In the illustrated embodiment, the transcoding platform 128 includes a telephony system 150, an audio encoder 152, and a recording system 154. While only one of the telephony system 150, audio encoder 152, and recording system 154 are illustrated, the transcoding platform 128 can include a plurality of each of these devices. For example, the transcoding platform 128 can include a plurality of audio encoders, each of which can encode a data stream or streams into different formats.
In one embodiment, the transcoding platform includes a set of processors or computers that are connected in a network arrangement, such as a LAN, via high speed Ethernet connections. The transcoding platform is also referred to as a media gateway.
In one embodiment, the telephony system includes a telephony interface and processor card connected to the expansion bus of a computer, the software drivers and libraries associated with the card, and customized software. In one embodiment, the connection between the telephone interface card and the communication network 132 is a standard “T-1” line with multiple associated line numbers. Some exemplary interface cards are available from Brooktrout in Needham, Mass. and Dialogic in Parsippany, N.J.
In one embodiment, the audio encoder includes a server or servers operating one or more custom software applications that include encoder software library functions from Real Networks. Each application transcodes incoming audio data packets and sends them to a Real Networks server. Some examples of an audio encoder are a Microsoft Windows Media Encoder and a Real Networks Encoder.
In one embodiment, the recording system includes a customized software application and a merging utility application from Real Networks to generate a combined multimedia archive file suitable for streaming by a Real Networks server.
As previously discussed, the moderator of a conference call can control the call. The interface platform 122 provides several windows and web pages that enable the moderator to control the call. For example, the interface platform 122 can include a page or interface that allows a moderator to upload a presentation, such as a slide presentation, for a call. Once the presentation is uploaded, the moderator can scroll forward or backward through the presentation at any desired speed.
The interface platform 122 also includes a call control window. An embodiment of a call control window is illustrated in FIG. 2. The control window 200 is an interactive window with which a moderator can interact utilizing a mouse, keyboard, or other control device.
The control window 200 includes several areas relevant to the control of a call. The window 200 includes a mute all participants area 210. The moderator can select between a mute button 212 and an unmute button 214. If the mute button 212 is selected, only the moderator can be heard on the call. In one embodiment, the moderator can selectively mute a particular participant on the interface 122. For example, a participant can be muted if he or she is on a bad or noisy connection line.
The window 200 includes a participant list section 220. The moderator can determine whether the participants in the conference call can view a list of all of the participants. The moderator can select a show button 222 or a hide button 224.
The conference continuation area 230 allows the moderator to determine whether participants can continue the conference after the moderator has disconnected. The moderator can select the on or off buttons 232, 234.
The window 200 includes a conference lock area 240. The moderator can decide to lock the conference and prevent new participants from joining by selecting lock button 242. Alternatively, button 244 unlocks the conference.
Sometimes the moderator of a conference call may want to speak with the operator associated with the conference call. The window 200 includes an operator requests area 250. If the moderator selects a public button 252, the operation joins the conference as a participant and can listen and respond to the moderator's request. If the moderator selects a private button 254, an operator establishes a private conference with the moderator.
The moderator can end the conference by selecting the end button 262 in the end conference area 260. The moderator control window 200 can be closed by selecting the close window button 270.
The operation of the conferencing system 105 is now described. FIGS. 3A-3B illustrate a flowchart 300 of the data streaming process for a conference call. Flowchart 300 illustrates the steps that are performed in the establishing of a data stream for a conference session.
At step 302, a conference moderator views a conference control page on a communication device 114, such as a computer, with a web browser. The control page is dynamically generated and updated by the web-based interface platform 122.
The control page includes control elements such as buttons that allow the moderator to initiate a streaming or recording of the conference. For example, the control page includes a record button and a stream button. The selection of either or both record and stream buttons causes the web browser to send a message to the interface platform 122.
At step 304, after receiving the moderator's request, the interface platform 122 sends a message to the conference-state-control platform 124. The content of the message is determined by the button or buttons selected. This message is referred to as a data stream initiation request because the moderator has requested to record and/or data stream the conference call, each of which requires the establishment of a data stream.
At step 306, the conference-state-control platform 124 sends a message to the transcoding platform 128. In one embodiment, the message is in the format of a transmission control protocol (TCP)/IP message. The message to the transcoding platform 128 includes information relating to the moderator's selections for the particular conference call. For example, if the moderator selected recordation of the call, the message includes instructions to record the call. Similarly, if streaming is requested, the message includes streaming instructions. In the illustrated embodiment, the moderator can decide to start and stop recording and streaming at any point during the conference call.
In one embodiment, the conference-state-control platform 124 contacts the telephony system 150 which maintains a pool of telephone numbers associated with telephone lines connected to it. The conference-state-control platform 124 sends certain identifying information about the conference to the telephony system 150.
At step 308, the transcoding platform 128 receives the message from the conference-state-control platform 124 and performs a resource verification. A resource verification is a check that the transcoding platform 128 has sufficient available incoming lines or resources on which to receive and process the call.
If the transcoding platform 128 does not have sufficient resources, then the process continues to step 310. At step 310, the transcoding platform 128 sends a message to the conference-state-control platform 124 that insufficient resources are available. The conference call will continue but audio streaming will not be available.
In one embodiment, the process returns to step 308 and repeats itself. The resource verification loop can repeat itself for a predetermined amount of time or a predetermined number of times, until the conference-state-control platform 124 informs the moderator to retry the call later.
In another embodiment, the conference-state-control platform 124 can contact a different transcoding platform 128 for the conference call.
If the transcoding platform 128 has sufficient resources, the transcoding platform 128 reserves one of its associated connection lines and returns the connection-line designation to the conference-state-control platform 124. Then the process continues to step 312.
At step 312, the transcoding platform 128 reserves a connection line for the conference session.
At step 314, the conference-state-control platform 124 sends a message to the transcoding platform 128 relating to a conference call. The message includes information relating to the recording and/or streaming of the call.
At step 316, once a line at the transcoding platform 128 is placed into a “wait” state, a timer at the transcoding platform 128 is started. The timer is set for a predetermined time period to control how long the line remains in its “wait” state. For example, the timer may be set for thirty seconds. Once the predetermined amount of time has passed, the line is released and made available if the call is not received.
At step 318, a communication-line designation is forwarded from the transcoding platform 128 to the conference-state-control platform 124. The communication-line designation includes information identifying the particular line that has been reserved for the conference call. The communication-line designation is generated by the transcoding platform 128. In one embodiment, the communication-line designation is a telephone number.
At step 320, a communication link is initiated between the multipoint telephony platform 130 and the transcoding platform 128. The link is initiated by messages from the conference-state-control platform 124. A message includes the communication-line designation so that the multipoint telephony platform 130 and the transcoding platform 128 know which line to use for the call.
At step 322, the transcoding platform 128 determines whether it has received the call before the predetermined time period expires. By using the timer to limit the amount of time that a line is reserved for a particular call, the resources of the transcoding platform 128 are more efficiently used. Similarly, the use of the timer also aids in recovering from network call failure.
If the call is not received before the expiration of the time period, the call is not connected to the transcoding platform 128 and the process returns to step 304. If the call is received before the expiration of the time period, then the process continues to step 324.
At step 324, the conference-state-control platform 124 sends a data stream initiation command to the multipoint telephony platform 130. The command instructs the multipoint telephony platform 130 to add one or more participants by dialing the designated number or numbers, thereby establishing a telephone connection.
At step 326, the conference-state-control platform 124 immediately initiates a data stream from the multipoint telephony platform 130 to the transcoding platform 128. As discussed above, the multipoint telephony platform 130 and the transcoding platform 128 are connected via the telephone network 132. In one embodiment, the data stream is a TCP/IP data stream containing sound data.
In the illustrated embodiment, the data stream initiation command includes instructions to dial out from a line connected to the multipoint telephony platform 130 and into the transcoding platform 128. Accordingly, a connection between the multipoint telephony platform 130 and the transcoding platform 128 is established via the telephone network 132. Once the two are successfully linked, a voice path exists between them for the duration of the conference, or until the connection is closed.
In one embodiment, the connection is established by dialing a number in the PSTN, using one telephone line from the multipoint telephony platform 130, and another telephone line from the telephony system 150 through the telephone network 132.
It can be appreciated that the connection can be established by the multipoint telephony platform 130 dialing the transcoding platform 128 or by the transcoding platform 128 dialing the multipoint telephony platform 130.
At step 328, a confirmation that the connection between the multipoint telephony platform 130 and the transcoding platform 128 for the multiparty conference session has been established is forwarded to the conference-state-control platform 124. The successful linkage is communicated to the conference-state-control platform 124 via a TCP/IP message.
At step 330, the successful connection is communicated from the conference-state-control platform 124 to the interface platform 122, and subsequently, the session moderator. The connection can be reflected in an update on the interface platform 122. The update can be any type of indicator, such as audio, visual, etc.
At step 332, a copy of the data stream of the conference call is recorded at the transcoding platform 128. The successful linkage between the multipoint telephony platform 130 initiates a recording process on the transcoding platform 128. The contents of the voice channel are recorded in a digital format for the duration of the session. The recording continues until the multipoint telephony platform 130 is disconnected from the transcoding platform 128. In FIG. 1, the recording process is performed by the telephony system 150 of the transcoding platform 128.
At step 334, if the moderator requested streaming of the conference call, a copy of the recorded data stream is continuously forwarded from the transcoding platform 128 to the streaming server platform 126 during the call. The recorded data stream is encoded for playback by a media player. It can be appreciated that there may be a minimal delay between the audio of the conference call and the presentation of the audio via a media player due to the encoding and network transport of the audio packets. The streaming of the audio data of a call is discussed in greater detail below.
FIGS. 4A-4B illustrate a flowchart 400 that includes steps performed in the recording and streaming of data stream for a conference session.
At step 402, the moderator makes a conference request via interface platform 122. The conference request includes information as to whether the moderator wants the conference call recorded and/or streamed. The interface platform 122 receives the conference request and forwards the request to the conference-state-control platform 124.
At step 404, the conference-state-control platform 124 determines whether the moderator requested streaming of the conference session. If the moderator did not request streaming, then the process skips to step 420. If the moderator requested streaming, the process continues to step 406.
At step 406, the transcoding platform 128 forwards the resource address to the conference-state-control platform 124. The conference-state-control platform 124 maintains a record of the resource addresses that are associated with ongoing conference calls. The resource address is forwarded to the interface platform 122 and is made available to the public via the communication network 120.
At step 408, participants can access the audio stream of a particular conference call via the streaming server platform 126. The participants are directed to links on the streaming server platform 126 using the resource address from the conference-state-control platform. Any person who can play the transcoded audio stream can become a participant in the conference call.
At step 410, the telephony system 150 opens a connection to the audio encoder 152. At this point, data can be forwarded over this connection.
At step 412, the recorded data stream from the conference call is forwarded from the telephony system 150 to the audio encoder 152.
At step 414, the audio encoder 152 converts the audio data stream into a format that is suitable for distribution to communication devices that are coupled to the computer network 120. In the illustrated embodiment, the data stream is transcoded into an Internet-playback format. It can be appreciated that the data stream can be transcoded into any playback format, including synchronized multimedia integration language (SMIL) from W3C.
The audio encoder 152 forwards the transcoded audio data stream to the streaming server platform 126. The transcoded data stream file is stored on the streaming server platform 126 in a manner that facilitates the subsequent retrieval of the file. The storage location of the file is identified and a resource address, such as a uniform resource locator (URL), is generated for retrieval of the file. The resource locator for a file can be referred to as a “ticket.” The “ticket” can be used to retrieve the file or files relating to a particular conference session.
At step 416, the conference-state-control platform 124 determines if the conference session has ended or if a request to stop streaming the conference session has been received. As discussed above, the moderator can request that the streaming of a conference be stopped at any time.
If the session has not ended and no stop request received, then the process returns to step 412. It can be appreciated that steps 412 and 414 are continuously performed during a conference session. If either the session has ended or a stop request received, then the process continues with step 418.
At step 418, the connection between the telephony system 150 and the audio encoder 152 is closed. At this point, the data stream is stopped.
At step 420, the conference-state-control platform 124 determines whether the moderator requested recording of the conference call. If the moderator did not request recording, then the process ends. If the moderator requested recording, the process continues to step 422.
At step 422, upon the disconnection of the multipoint telephony platform 130 from the transcoding platform, the transcoding platform 128 automatically begins the process of transcoding the recorded data into a streaming media format. In the illustrated embodiment, the transcoded data format is selected for playback using a media player, such as Real Player from Real Networks.
At step 424, after the transcoding is completed, a resource address associated with the data stream is forwarded to the conference-state-control platform 124.
At step 426, the transcoded data stream is published to one or more streaming server platforms 126 for later playback using a media player. The resource address is made available via the interface platform 122 for the subsequent playback of a call.
In one embodiment, the moderator can request the resource address or ticket of a recorded conference call. For example, the moderator may want to forward the address to the participants in the call so they can review or make reference back to the call. In the illustrated embodiment, the conferencing system 105 can send the resource address to the moderator in response to the moderator's request. For example, the ticket can be sent by email to the moderator.
In another embodiment, the resource address is published on the interface platform 122 and is available to the general public.
A user, via a communication device 110, 112, selects a resource address associated with a particular conference call that the user would like to playback. The user makes a fetch request for the relevant conference call. The term “fetch request” includes any action taken by a user to select an item. Some examples of fetch requests include clicking on a resource address, clicking on a button on an interface, etc. The conferencing system 105 receives a fetch request from the user and determines the relevant file or files that the user wants.
The streaming server platform 128 distributes the associated transcoded data stream to the user. At this point, the transcoding platform 128 marks the communication line available to allow a new call to be received on that line.
FIG. 5 illustrates a flowchart 500 of a data streaming process that includes steps performed in the transcoding of the data of a conference call for later playback.
In the illustrated embodiment, the data of a conference call can include audio data and video control data. One example of video control data is presentation slides that are used by the moderator during a call. While the slides may be static and under the control of the moderator, the timing of the slides can be recorded so that the slides can be viewed at the same time during the conference call as they actually were shown. In one embodiment, the audio data and pointers or references to images and slide change events are recorded into a time-sequenced streaming file. In another embodiment, they are recorded separately and merged after the conference call. It can be appreciated that the merging can performed in real time as well.
At step 502, the telephony system 150 forwards video control data to the recording system 154. In the illustrated embodiment, the video control data includes a timing file that includes resource addresses that point to particular slides and the time that they were displayed during the conference session.
At step 504, the telephony system 150 forwards audio data from the conference session to the audio encoder 152.
At step 506, the audio encoder 152 processes the audio data into a predetermined media format.
At step 508, the audio encoder 152 forwards the processed audio data to the recording system 154.
At this point, the audio data has been processed. At step 510, the recording system 154 processes the video control data from the conference session. It can be appreciated that the video control data can be processed substantially simultaneously with the processing of the audio data. In one embodiment, the video control data (the timing file) and the audio data can be transcoded and merged into a single file. In another embodiment, the video control data and the audio data can be transcoded and retained in separate files.
At step 512, the recording system 154 stores the processed audio and video control data in the storage device 134. A resource address is generated to facilitate the later playback of the conference session.
In an alternative embodiment, the telephony system 150 can forward audio data from the conference session to the recording system 154. The recording system 154 can process the audio data into a predetermined media format that can be played back using a media player. The recording system then stores the processed files.
In an alternative embodiment, the components of the conferencing system 105 can reside on a single device.
While the invention has been described in detail and with reference to specific embodiments thereof, it will be apparent to one skilled in the art that various changes and modifications can be made therein without departing from the spirit and scope thereof. Thus, it is intended that the present invention covers the modifications and variations of this invention provided they come within the scope of the appended claims and their equivalents.

## Claims

1. A method for automatically data streaming a multiparty conference session, comprising:
providing an Internet-based interface to a session moderator, said Internet-based interface configured for said session moderator to enter a request for data streaming a multiparty conference session;
receiving said request from said session moderator for data streaming the multiparty conference session; and
in response, automatically establishing a data stream of said conferencing session, without any human intervention, wherein establishing said automated data stream includes:
recording the multiparty conference session; and
data streaming the multiparty conference session to listen-only participants thereby enabling listen-only participants to connect to the multiparty conference session without using additional conference ports and/or conference resources.

2. The method of claim 1, further comprising:
automatically transcoding the recorded data stream at a time unrelated to the multiparty conference session into an Internet-playback format.

3. The method of claim 1, further comprising:
creating an address to identify where the data stream of the multiparty conference session is accessible; and
providing said address to said session moderator and other participants of the conference session.

4. The method of claim 1, further comprising:
receiving a fetch request from a user for the data stream of the multiparty conference session, the fetch request at least identifying said multiparty conference session; and
distributing the data stream via the Internet to the user based on the fetch request.

5. The method of claim 1, wherein said automated data streaming process comprises:
sending a communication interface designation from a transcoding platform to a conference-state-control platform;
reserving a communication interface associated with the communication interface designation from the pool of communication interfaces; and
creating a connection for communication, between the communication interface associated with the communication interface designation and a multipoint telephony platform.

6. The method of claim 5, wherein the creating a connection includes initiating-a connection to the transcoding platform using the communication interface associated with the communication interface designation.

7. The method of claim 1, wherein said automated data streaming process proceeds as follows:
sending an initiation request from a conference-state-control platform to the transcoding platform;
initiating, from the conference-state-control platform to a multipoint telephony platform, a data-stream start command; and
sending the data stream associated with the multiparty conference session from the multipoint telephony platform to the transcoding platform based on the data-stream start command, wherein the data stream includes voice and non-voice data stream.

8. The method of claim 1, wherein said data stream has voice content only.

9. An apparatus, comprising:
means for receiving a data-stream-initiation request from a session moderator for data streaming a multiparty conference session; and
means for automatically establishing, in response to the data-stream-initiation request, a data stream associated with the multiparty conference session without any human intervention, wherein the means for establishing the data stream includes:
means for recording the multiparty conference session; and
means for data streaming the multiparty conference session to listen-only participants thereby enabling listen-only participants to connect to the multiparty conference session without using additional conference ports and/or conference resources.

10. The apparatus of claim 9, further comprising:
means for automatically transcoding the recorded data stream at a time unrelated to the multiparty conference session into an Internet-playback format.

11. The apparatus of claim 9, further comprising:
means for creating an address to identify where the data stream is accessible; and
means for providing the address to the session moderator or other participants of the conference session.

12. The apparatus of claim 9, wherein the means for establishing the data stream associated with the multiparty conference session comprises:
means for obtaining a communication-line designation;
means for reserving a communication line associated with the communication-line designation from a pool of communication lines; and
means for initiating a connection from the communication line associated with the communication-line designation to a multipoint telephony platform.

13. The apparatus of claim 9, wherein the means for establishing the data stream associated with the multiparty conference session comprises:
means for sending an initiation request from a conference-state-control platform to a transcoding platform;
means for initiating, from the conference-state-control platform to a multipoint telephony platform, a data-stream start command; and
means for sending the data stream associated with the multiparty conference session from the multipoint telephony platform to the transcoding platform based on the data-stream start command.

14. A computer program product having instructions stored thereon, the instructions when executed by a computer cause the computer to:
receive a data-stream-initiation request from a session moderator for data streaming a multiparty conference session, said data-stream-initiation request received from an Internet-based interface; and
automatically establish, in response to the data-stream-initiation request, a data stream associated with the multiparty conference session without human intervention after receiving the data-stream-initiation request, wherein establishing said automated data stream includes:
recording the multiparty conference session; and
data streaming the multiparty conference session to listen-only participants thereby enabling listen-only participants to connect to the multiparty conference session without using additional conference ports and/or conference resources.

15. The computer program product of claim 14, having instructions stored thereon, the additional instructions when executed by a computer cause the computer to:
automatically transcode the recorded data stream at a time unrelated to the multiparty conference session into an Internet-playback format.

16. The computer program product of claim 14, having instructions stored thereon, the additional instructions when executed by a computer cause the computer to:
create a resource identifier that uniquely identifies the data stream of the multiparty conference session; and
deliver the data stream to a user, upon a data stream request received from the user, said data stream request containing at least the resource identifier.

17. The computer program product of claim 14, wherein the instruction to establish the data stream associated with the multiparty conference session includes the following additional instructions that when executed by a computer cause the computer to:
select a communication interface from a pool of communication interfaces, each of the pool of communication interfaces corresponding to a communication interface designation;
send the communication interface designation corresponding to the selected communication interface from the virtual participant to a conference-state-control platform, the virtual participant reserving the communication interface associated with the communication interface designation; and
initiate a connection between the communication interface associated with the communication interface designation and a multipoint telephony platform.

18. The computer program product of claim 14, wherein the instruction to establish the data stream associated with the multiparty conference session includes the following additional instructions that when executed by a computer cause the computer to:
send an initiation request from a conference-state-control platform to the virtual participant, the virtual participant being a transcoding platform;
initiate, from the conference-state-control platform to a multipoint telephony platform, a data-stream start command; and
send the data stream associated with the multiparty conference session from the multipoint telephony platform to the transcoding platform based on the data-stream start command.

19. A method for automatically data streaming a multiparty conference session, comprising:
receiving a data-stream-initiation request from an Internet-based interface associated with a session moderator;
automatically data streaming the multiparty conference session based on the received data-stream-initiation request; and
automatically transcoding the data-streamed conference session.

20. The method of claim 19, further comprising:
recording the data stream associated with the multiparty conference session upon receiving a record request from the session moderator; and
the automatic transcoding of the recorded data stream being performed such that the recorded data stream is transcoded into an Internet-playback format.

21. The method of claim 19, further comprising:
create a resource identifier that uniquely identifies the data stream of the multiparty conference session; and
deliver the data stream to a user, upon a data stream request received from the user, said data stream request containing at least the resource identifier.

22. The method of claim 19, wherein the automatic data streaming proceeds as follows:
sending a communication line designation from a transcoding platform to a conference-state-control platform, the conference-state-control platform reserving a communication line associated with the communication-line designation from a pool of communication lines; and
initiating a connection from the communication line associated with the communication-line designation to a multipoint telephony platform.

23. The method of claim 19, wherein the automatic data streaming proceeds as follows:
sending an initiation request from a conference-state-control platform to a transcoding platform;
initiating, from the conference-state-control platform to a multipoint telephony platform, a data-stream start command; and
sending the data stream associated with the multiparty conference session from the multipoint telephony platform to the transcoding platform based on the data-stream start command.

24. The method of claim 19, wherein the data stream associated with the multiparty conference session has voice content only.

25. An apparatus, comprising:
a multipoint telephony platform;
a transcoding platform coupled to the multipoint telephony platform; and
a conference-state-control platform coupled to the multipoint telephony platform and to the transcoding platform, the conference-state-control platform automatically establishing a data stream associated with a multiparty conference session between the multipoint telephony platform and the transcoding platform,
the transcoding platform recording the data stream associated with the multiparty conference session, the transcoding platform automatically transcoding the data stream associated with the multiparty conference session.

26. The apparatus of claim 25, wherein the data stream associated with the multiparty conference session is recorded into an Internet-playback format.

27. The apparatus of claim 25, wherein:
the conference-state-control platform sends an address request from a session moderator to the transcoding platform, the address request identifying at least said conference session;
the conference-state-control platform pushes a resource address associated with the conference session to the session moderator;
the transcoding platform receives a fetch request from a user, said fetch request including the resource address; and
the transcoding platform distributes the data stream associated with said conference session via the Internet to the user based on the received fetch request.

28. The apparatus of claim 25, wherein the conference-state-control platform establishes the data stream associated with the multiparty conference session by the following:
sending an initiation request from the conference-state-control platform to the transcoding platform;
initiating, from the conference-state-control platform to the multipoint telephony platform, a data-stream start command; and
sending the data stream associated with the multiparty conference session from the multipoint telephony platform to the transcoding platform based on the data-stream start command.

29. An apparatus, comprising:
a multipoint telephony platform configured to be coupled to a telephone network;
a transcoding platform coupled to the multipoint telephony platform and configured to be coupled to a telephone network; and
a conference-state-control platform coupled to the multipoint telephony platform and to the transcoding platform, the conference-state-control platform automatically establishing a data stream associated with a multiparty conference session between the multipoint telephony platform and the transcoding platform,
the transcoding platform recording the data stream associated with the multiparty conference session.

30. The apparatus of claim 29, wherein the data stream associated with the multiparty conference session is recorded into an Internet-playback format.

31. The apparatus of claim 29, wherein:
the conference-state-control platform sends an address request from a session moderator to the transcoding platform, the address request identifying at least said conference session;
the conference-state-control platform pushes a resource address associated with the conference session to the session moderator;
the transcoding platform receiving a fetch request from a user based on the resource address; and
the transcoding platform distributing the data stream via the Internet to the user based on the received fetch request.

32. The apparatus of claim 29, wherein the conference-state-control platform establishes the data stream associated with the multiparty conference session by the following:
sending an initiation request from the conference-state-control platform to the transcoding platform;
initiating, from the conference-state-control platform to the multipoint telephony platform, a data-stream start command; and
sending the data stream associated with the multiparty conference session from the multipoint telephony platform to the transcoding platform based on the data-stream start command.

33. A method for automatically data streaming a multiparty conference session, comprising:
sending an initiation request from a conference-state-control platform to a transcoding platform;
in response to said initiation request, automatically initiating, from the conference-state-control platform to a multipoint telephony platform, a data-stream start command, the data-stream start command being configured to trigger transmitting a data stream associated with the multiparty conference session from the multipoint telephony platform to the transcoding platform; and
providing said data stream associated with the multiparty conference session to one or more users,
wherein, none of the above steps require any human intervention.

34. The method of claim 33, further comprising:
receiving a connection confirmation at the conference-state-control platform, the connection confirmation indicating that a connection associated with the multiparty conference session has been established between the multipoint telephony platform and the transcoding platform; and
sending a connection confirmation from the conference-state-control platform to an Internet-based interface associated with a session moderator.

35. A method for initiating a multiparty conference session, comprising:
receiving, through an Internet-based interface, a conference request from a session moderator associated with a multiparty conference session for data streaming said conference session; and
creating and sending a machine-readable data-stream-initiation request based on the conference request, the data-stream-initiation request being configured to automatically establish a data stream associated with the multiparty conference session, the data stream being automatically established without further human intervention after receipt of the conference request.

36. The method of claim 35, wherein:
the data-stream-initiation request is further configured to cause the data stream associated with the multiparty conference session to be recorded.

37. The method of claim 35, wherein:
the data-stream-initiation request is further configured to cause the data stream associated with the multiparty conference session to be recorded; and
the data-stream-initiation request is further configured to cause the data stream to be transcoded into an Internet-playback format.

38. The method of claim 35, wherein:
the data-stream-initiation request is further configured to cause the data stream associated with the multiparty conference session to be recorded; and
the data-stream-initiation request is further configured to cause the data stream to be transcoded into an Internet-playback format, the transcoded data stream being subsequently distributed via the Internet.

39. A method for automatically data streaming a multiparty conference session, comprising:
receiving a data-stream-initiation request from an Internet-based interface; and
automatically establishing, upon receiving the data-stream-initiation request, a data stream associated with the multiparty conference session, and providing said data stream to conference participants at run time of said conference session, the automatically establishing being performed without human intervention after receiving the data-stream-initiation request.

40. The method of claim 39, wherein the data stream is recorded for subsequent playback.

41. The method of claim 40, wherein the recorded data stream is accessed via a packet switched network.

42. The method of claim 41, wherein the packet switched network is the Internet.

43. The method of claim 40, wherein the recorded data stream is accessed via a circuit switched network.

44. The method of claim 43, wherein the circuit switched network is a telephone network.

45. The method of claim 39, wherein the automatically establishing and providing said data stream at run time of the multiparty conference session allows for conference participation through either the Internet or a telephone network.

46. The method of claim 39, wherein the automatically establishing and providing said data stream at run time of the multiparty conference session allows for conference participation by receive-only participants, wherein each receive-only participant can observe the conference session and cannot contribute to the conference session, and wherein no additional conference resource is required for adding more receive-only participants to the conference session.

47. An automated conference management system, comprising:
a web-based interface configured to receive a plurality of data stream requests simultaneously, each of the plurality of data stream requests comprising identification of a multiparty conference session to be data streamed; and
a conference controller coupled with said interface, said controller configured to receive said plurality of data stream requests from said interface, and further configured to process each request to initiate data streaming of a respective multiparty conference session.

48. The system of claim 47, further comprising:
a transcoder platform having a pool of connection interfaces, each connection interface having a unique designator, wherein the transcoder platform is configured to:
receive a message from the controller to reserve a connection interface for one of the plurality of data stream requests;
determine whether a connection interface is available; and if so, respond to the controller with the designator of the available connection interface and reserve the available connection interface for a pre-defined period of time.

49. The system of claim 48, further comprising:
a multipoint telephony platform configured to communicate with the transcoder over a telephone network, the multipoint telephony platform further configured to receive an instruction from the controller to start data streaming a conference session, and in response to the instruction, initiate a connection to the transcoder via the designated connection line.

50. The system of claim 48, wherein the transcoder platform comprises a plurality of transcoding engines, each transcoding engine associated with a communication interface and its designator, wherein each transcoding engine is configured to transcode a data stream of a conference session independently, thereby allowing multiple data streams for multiple respective conference sessions to be transcoded simultaneously.

51. The system of claim 49, further comprising:
a streaming server coupled to the transcoder, the streaming server configured to receive a plurality of data streams from the transcode, each of the plurality of data streams associated with a respective conference session, the streaming server further configured to provide access to the plurality of data streams based on a conference participant's fetch request.