Patent Publication Number: US-2003235279-A1

Title: Dynamic web conference monitoring through a streaming mechanism

Description:
[0001] The invention relates to a method for monitoring a voice-based conference.  
       [0002] Advances in crosscutting technologies have brought about interoperation and convergence of data and voice networks. In particular, it is possible to enhance voice services, e.g. PSTN (public switched telephone network) telephony, with new features that entail the transport of service-related data over data networks. The transport of voice can be effected either over separate voice networks or over the same data networks. In the latter case new technologies such as VoIP (voice over IP) are usually employed that allow for transport of voice over packet-switched networks, e.g. IP (Internet Protocol) networks.  
       [0003] There is a number of voice services that lend themselves to enhancement with features that rely on transmission over data networks. In particular, voice services can be augmented by visualisation of service related data or information. Web technologies provide a powerful tools for enhancing services with visualised data. For example, data such as images, text, tables etc. can be formatted for display on a graphical user interface (GUI) of a Web terminal device.  
       [0004] In addition, advances in developing new architectures for distributed systems and modern runtime environments, e.g. Java-based runtime environments or Microsoft .NET, open the path to enhancing complex voice services, such as voice-based conferences, with data-oriented features. These new features often require the transmitted data to be efficiently processed, preferably in real time.  
       [0005] The present invention aims to provide an efficient method for monitoring voice-based conferences.  
       [0006] Within the present method for monitoring a voice-based conference connections are set up for notification of a plurality of participants. A conference agenda is maintained on a Web terminal device. The voice-based conference is monitored based on the conference agenda. Monitoring information is transmitted to the plurality of participants during the voice-based conference.  
       [0007] Participants in the voice-based conference may use a PSTN terminal device, a voice-enabled Internet terminal device or a VoIP telephone. At least part of the conference participants are equipped with Web terminal devices, which may be voice-enabled and also used for voice exchange, to which monitoring information is transmitted. It is also possible that participants use separate terminal devices for the exchange of voice and monitoring information.  
       [0008] This monitoring information can be visualised on the displays of the Web terminal devices. Thus, the exchange of voice between the participants is enhanced through an exchange of data in the form of transmitted monitoring information. This monitoring information may comprise agenda information relating to a dynamically updated or amended agenda for the conference, action items specified during the conference, or the time spent on the current action item. The terminal device where the agenda is maintained may be operated by a conference controller.  
       [0009] The present method provides features for monitoring and controlling voice-based conferences. By introducing a dynamically updated agenda a powerful management tool for the conference controller is provided which helps him/her to control the course of the conference.  
       [0010] The transmission of monitoring information helps the participants keeping track as the conference proceeds. A conference report may be generated at the end of the voice-based conference which summarises the major points. This report may be transmitted to the participants&#39; Web terminal devices before closing the conference-related connections. Participant who did not have access to a Web terminal device during the conference and who participated via PSTN phone may be sent the report via surface mail or email.  
       [0011] The monitored information should be preferably transmitted in real time, in particular information relating to the time spent on individual action items or on the total time spent. Real-time transmission can be effectively realised via streaming mechanisms. One embodiment makes use of a conference server for transmitting monitored information with the help of a streaming technique, such as HTTP (hypertext transfer protocol) streaming. The Web terminal device of the conference controller and the Web terminal devices of the participants can figure as clients that connect to the conference server. The connections may be set up by invoking a server-side Java applet. The monitoring information is first transmitted to the conference server. At the conference server the monitoring information is adjusted so that this information can be sent in the form of a programming language code which is executable by the participants&#39; Web terminal devices. For example, the monitoring information may be encoded in JavaScript, HTTP, or XML (extended markup language) as many a browser can execute JavaScript code or XML code. Possibly, the processing of the monitoring information varies for different participating Web terminal devices. By allowing for different alternatives for processing information one can account for the respective encoding requirements of the software implemented in the individual Web terminal devices. The programming language codes are executed by the browsers of the participants&#39; Web terminal devices, whereby the monitoring information is displayed.  
     
    
    
     [0012] Below the invention is described by way of example and with reference to figures.  
     [0013]FIG. 1 shows a scenario of a voice-based conference with provisions for sending monitoring information to participants  
     [0014]FIG. 2 shows a GUI for manipulating a conference agenda  
     [0015]FIG. 3 shows an exchange of messages according to the present method 
    
    
     [0016]FIG. 1 shows an embodiment of the invention applied to a scenario where a voice-based conference is invoked and controlled via a Web terminal device PC(CC), such as a personal computer connected to the Internet IPNET. The controlling of the voice-based conference includes the steps of preparing and initiating a conference, adding a participant Tln 1 , . . . , Tln 4  to an already established conference, and closing the conference. The Web terminal device PC(CC) is voice-enabled, i.e. it provides the functionality of a VoIP terminal device, so that the conference controller can participate in the voice-based conference via his/her Web terminal device PC(CC). By way of example four participants Tln 1 , . . , Tln 4  are shown on FIG. 1, who differ with respect to the terminal devices used during the conference. Within the conference terminal devices are used on the one hand for transmitting voice, on the other hand for receiving monitoring information. The employed terminal devices are:  
     [0017] Participant Tln 1 : A voice-enabled Web terminal device PCVoIP is used for both purposes. Voice is transmitted via the H.323 protocol, data via the HTTP protocol.  
     [0018] Participant Tln 2 : Two terminal devices are employed, a Web terminal device PC for receiving data via HTTP and a VoIP telephone TelVoIP for voice transmission via H.323.  
     [0019] Participant Tln 3 : A Web terminal device PC and a PSTN telephone are used.  
     [0020] Participant Tln 4 : A PSTN telephone is used. Participant Tln 4  does not receive monitoring information.  
     [0021] To initiate the telephone conference the conference controller CC sets up an HTTP connection to the conference server CtC via the Internet IPNET. Authentication information such as details of the initiator, i.e. the conference controller CC, and the participants Tln 1 , Tln 2 , Tln 3 , and Tln 4  as well as an access PIN (personal identification number) may be provided. The controller CC also specifies the use of a VoIP (voice over IP) connection mediated through the H.323 or the SIP (session initiation protocol) protocol. Optionally, he/she may use a PSTN connection if a PSTN telephone is available. For retrieval and storage of authentication information and authorisation information a LDAP server LDAP is placed in the vicinity of the Web conference server CtC. The Web conference server CtC is linked to an open service platform OSP by means of CORBA (Common Object Request Broker Architecture), which provides an environment for distributed applications on top of the TCP/IP (transmission control protocol over internet protocol) protocol stack. APIs (Application programming interfaces) of the open service platform OSP allow for the provision of additional services and the implementation of additional service features. In addition, the open service platform OPS receives signalling messages for call control of the telephone conference from a telephone switch TS, which are relayed to the Web conference server CtC. Messages between the open service platform OSP and the telephone switch TS are exchanged via the protocols INAP (intelligent network user part) and TCAP (transaction capability application part). These two protocols are commonly used for communication between an SSP (service switching point) and an SCP (service control point) in an IN (intelligent network) network architecture with SS7 (signalling system 7) signalling. The telephone switch TS, e.g. an ISDN switch, assumes switching functions for the PSTN connections of the telephone conference. PSTN connection are also relayed to a media gateway MGW to allow for participation of the participants Tln 1  and Tln 2  and the conference controller CC via VoIP.  
     [0022] An agenda for the conference is maintained on the conference controller&#39;s Web terminal PC(CC). This agenda may be modified, amended or updated during the conference. The participants Tln 1 , Tln 2 , and Tln 3  are notified about changes of the agenda in real time. For this purpose HTTP connections are established between the Web terminal devices of the conference controller PC(CC) and the participants Tln( 1 ), Tln( 2 ), and Tln( 3 ) and the conference server CtC when setting up the conference. In the case of a change of the agenda monitoring information are transmitted from the conference controller&#39;s Web terminal to the conference server CtC, adjusted for representation through browser software and relayed to the participants Tln 1 , Tln 2 , and Tln 3 . In the same way the time spent on the individual agenda items may be monitored by the conference controller and displayed to the participants Tln 1 , Tln 2 , and Tln 3 .  
     [0023] In the preferred embodiment the real-time notification of the conference participant Tln 1 , Tln 2 , and Tln 3  through the transmission of monitoring information is realised by means of a combination of server-side Java servlets and dynamic HTTP. Within this scheme the conference server figures as a Web server and the participants&#39; Web terminal devices PCVoIP and PC figure as Web clients. To start the notification mechanism a server-side servlet is invoked through an HTML request by the clients PCVoIP and PC. By invoking the Java servlet the client PC(CC) subscribes to receive notification messages transmitted from the telephone switch TS.  
     [0024] An HTTP connection is set up for streaming in messages from the server CtC to the clients PCVoIP, PC 2 , and PC 3 . In contrast to the original client-server communication, where the HTTP connection is closed after fetching an HTTP page, the connection remains open while fresh notification messages are pushed to the clients PCVoIP, PC 2 , and PC 3 . Through the subscription by a client a format is specified for notification messages to be sent by the server CtC to the respective client. This format is chosen to be a computer code that can be executed by the client&#39;s browser, such as JavaScript, XML, or Java-serialised objects. The latter format can be used for browsers that make use of client-side Java classes. It is possible to specify different formats for different clients for the same conference. Via the subscription request by the client the transmission protocol for the streaming is specified, too. Preferably, this protocol is chosen to be HTTP, but other choices such as TCP (transmission control protocol), UDP (user datagram protocol), RMI (remote message invocation) etc. are also possible. The monitoring information from the controller&#39;s Web terminal device that is received by the server CtC is formatted or adjusted for transmission to the clients PCVoIP, PC 2 , and PC 3 . The corresponding notification messages are dispatched by means of a Java applet, which is sometimes called pushlet, that pushes or sends the notification messages to the clients&#39; browsers. The pushing or sending of computer code that is executed by a client&#39;s browser is a mechanism originally applied in the framework of dynamic HTML (DHTML). Traditionally, a page could be altered only by reloading a new page from the server. DHTML allows full control of an HTML document within a browser after the page has been loaded. From a programmer&#39;s point of view the entire document in the Web browser—frames, images, paragraphs, tables etc.—is represented as a hierarchical object model, the DOM (document object model). JavaScript code or any other computer code executable by the browser is used to dynamically manipulate the elements of the DOM and thereby change the content or appearance of the document. The official standards body for DHTML-related specifications is the World Wide Web Consortium (W3C). The client&#39;s GUI (graphical user interface) is dynamically updated with new notification messages streamed in from the server.  
     [0025] On FIG. 2 an example of how a conference agenda may be manipulated by means of a GUI. Following information is displayed on the GUI:  
     [0026] The title TIT of the conference  
     [0027] The date DAT of the conference  
     [0028] The participants PART 1 , PART 2 , and PART 3  in the conference  
     [0029] The conference agenda comprising the general agenda points GISSUE 1  and GISSUE 2  and the specific agenda points SISSUE 1  (with sub-points SISSUE 1 . 1  and SISSUE 1 . 2 ) and SISSUE 2 .  
     [0030] The total time TT allocated for the conference and the time slots T 1 , T 2 , and T 3  for the individual agenda points are displayed. Time slots for sub-points may be added, too. There are following buttons provided for changing details of the agenda or for monitoring the conference:  
     [0031] RM: for removing agenda items  
     [0032] AP: for adding agenda points  
     [0033] AsP: for adding sub-points  
     [0034] TM: to activate a timer  
     [0035] ACP: to take down an action point  
     [0036] OP: to take down an open point  
     [0037] An additional button Validte is provided to validate changes made on the agenda. The view of the agenda is activated by clicking on a button displayed on the controller&#39;s terminal device. Changes of the agenda, new action points, and the time spent on the current agenda point may be displayed on participants&#39; terminal devices via the HTTP streaming method described above.  
     [0038] On FIG. 3 an exchange of messages according to the invention are shown. The exchange of messages in the upper part A of the figure relates to an update of the agenda. The lower part B of the figure refers to a message exchange at the end of a conference, where the agenda view on the GUI of the participants and the conference controller is closed.  
     [0039] Messages are exchanged between four different processes or objects. For updating the agenda a request updag (updag: stands for “update agenda”) is transmitted from the conference controller&#39;s GUI to a servlet SLET on the conference server. For the client-server communication the HTTP protocol enhanced with security features HTTP(S) is used. The request updag is decoded by the servlet. Based on the information extracted from the request by the servlet an http notification message bagno is generated and transmitted via RMI (remote message invocation) to a notification module NOMOD situated on the conference server. The RMI method allows for communication of objects or processes located on different platforms. Thus, multiple-platform realisations for the conference servers are viable. Scalability is assured. For a standalone solution of a conference server on a single platform it is more efficient to use inter-process communication than RMI. The notification module NONMOD assumes the distribution of the agenda updates uppgui (uppgui: stands for “update participants&#39; GUI) and upccgui (upccgui: stands for “update conference controller&#39;s GUI) to the participants and the conference controller, respectively. The notification messages are transmitted over an open http connection via http streaming. The sequence of messages is the same at the end of the conference except for the transmission of the notification messages clpgui to the participants and clccgui to the conference controller which signal to the respective GUIs the end of the conference and trigger the closing of the connections for http streaming. Essentially, the exchange of messages is performed via server-client communication, where the processes CCGUI and PGUI reside on the clients CCside (CCside: stands for conference controller&#39;s side) and Pside (Pside: stands for participants&#39; sides) and the processes SLET and NONMOD reside on the server SeSide (SeSide: stands for server side).  
     [0040] The conference controller CCside may or may not participate in the voice-based conference. In the first case he disposed of a voice-enabled terminal device, possible identical with his/her Web terminal device. The conference controller&#39;s GUI of his/her Web terminal device may be updated in the same way and simultaneously with the update of the participants&#39; GUIs. If the update of the controller&#39;s GUI is treated on the same footing as the update of the participants&#39; GUIs and if the conference controller participates in the voice-based conference the term “participants” has to be interpreted to include the conference controller.