Just In Time Conferencing Integrating Conferencing and Calendars! Gautam Arora: GT ID# 902408804 Gaurav Mullick: GT ID# 902385139 1. Motivation and Objectives VOIP technology is pushing the barriers of innovation allowing users not to be dependent on telecom providers and enable the development of next generation applications. These are not limited to those that can be run off messenger applications like Skype and mobiles but have crossed boundaries to make inroads into the Web 2.0 domain. We wish to use this emergence of the VOIP platform and its seamless integration with Web to solve the problems associated with setting up, managing, remembering and automating conference calls. The novelty of our solution lies in the aspect that we plan to integrate our conference manager with calendaring applications. 2. Related work Conference Managers have a big presence in enterprises and play an important role in workflow management in Call Centers, Customer Relationship Management (CRM) etc. VOIP solutions like Skype[1] allow users to setup conference calls to assist collaborative activities of distributed development teams. Asterisk offers compelling offering as a open source and extensible conferencing server but has a high learning curve for deployment in disparate customer environments. Sun and Ericsson recently developed a Conference Manager [2] using the Sun Labs Voice Bridge, SIP Servlets and AJAX technology as a convincing usecase of bringing voice to the web. There exists solutions by Zimbra which try to integrate thei Collaboration Suite along with Asterisk but there has not been a solution that tries the complete integration between Conference Managers and Calendars allowing a more flexible and painless approach to managing conference calls while also being able to schedule them optimally. 3. Proposed work To better aid the understanding and development of our project goals, we have divided them into components that can be built, deployed and tested individually and also hold importance and challenges of their own. 1. Audio/Video Conference Manager using conferencing server (like Asterisk, Convedia Media Server) using SIP Servlets [Core component] This module will be responsible for setup of audio and video call setups between multiple participants. To achieve this goal, we plan to use Asterisk SIP-enabled server[3] which is an industry-standard Open IP PBX. The module will be able to setup outgoing calls to all the registered participants and also incorporate a feature called “Follow Me” which will allow the calls to be routed to multiple devices that are used by a single user to track the specific user. Architecturally, we plan to use database triggers or Messaging Systems (like ActiveMQ) to initiate the process of setup of the call by calling associated SIP Servlets (which are Java Servlets that can be deployed on SIP containers and allow the creation of Proxy, B2BUA etc.) 2. Web Application frontend for conference call management (using Ruby on Rails) Though we wish to move to complete integration with a Calendaring Suite like Zimbra, for the initial prototyping of our application we plan to develop a web frontend using Ruby on Rails. This will allow us to be able to test our solution technically, asses our design decisions before we move to the next development phase. Alternate approaches we are considering are RAGI (Ruby Asterisk Gateway Interface)[4] and Adhearsion[5] framework which allow the creation of VOIP applications using Asterisk and call act as a testbed for our project development. 3. Integration with Calendaring applications (like Zimbra Collaboration Suite) The major motivation for our work is the integration with Calendaring applications. This will allow a user to not only to be able to manage the schedules of setting his conference calls where he can use shared calendars to better schedule such calls, but the main use case our application wishes to solve is auto setup of calls at designated times. This holds the benefit of automating a rather mundane task of having users to remember their pin codes and dial into the call. Integration with a calendaring application platform like Zimbra Collaboration suite will be the ultimate goal that we are aiming achieve. The components and their interconnections are shown below: Based on our initial system evaluation, we envision a HTTP/SIP callflow as shown: 4. Plan of action Hardware Resources required: 3 machines acting as servers hosting either web service, database, SIP Application Server and Asterisk/Convedia[7] conferencing server. Each machine would require the following system configuration: CPU: Intel Core 2 Duo 2.16Ghz Memory: 2GB 667MHz 2 mobile phones for testing Software Resources required: OS: Red Hat Enterprise Linux 4 OS Database MySQL 5 Database Web Server: Apache 2.2.0 Web Server Application Server: Sailfin SIP Application Server Conferencing Server: Asterisk PBX or Convedia Media Server Development Environment: JDK 5.0, Java EE 5, Ruby 1.8.6, Rails 2.0 Timeline: Week # Dates Tasks 1 Feb 19 – Feb 24 Learn Asterisk 2 Feb 25 – Mar 2 Deploying Asterisk 3 Mar 3 – Mar 9 Learn Ruby on Rails/RAGI 4 Mar 10 – Mar 16 Develop Web Frontend 5 Mar 17 – Mar 23 Developing SIP proxy, registrar 6 Mar 24 – Mar 30 Developing SIP conference manager 7 Mar 31 – Apr 6 Integration with calendars 8 Apr 7 – Apr 13 Testing of Application 9 Apr 14 – Apr 20 Project Report + Presentation 10 Apr 21 – Apr 25 Project Demo 5. Evaluation and Testing Method As given in the proposed work section above we have three modules which are more or less self reliant and can function independently of each other. Thus to test each of them we will do the following: 1. Conference Manager: This should be able to successfully set up a call to multiple mobile phones at the correct time. It would be triggered by the SIP Application Server which would retrieve this information from the database. 2. Web Frontend: This should accept requests to set up calls and should pass on this data to the SIP Application Server so that it may be stored in the database. 3. Calendaring Application: This should provide the facility to check the desired persons calendar so that an appropriate conference call can be set up at an appropriate time. If all 3 modules are successfully tested as described above the application as a whole will function properly and the end result will be achieved. 6. Bibliography [1] Conference Call Power - Skype Journal : http://www.skypejournal.com/blog/archives/ 2005/04/conference_call_1.php [2] Sun Conference Manager : http://research.sun.com/projects/mc/confmgr.html [3] Asterisk: http://asteriskguru.org/ [4] Ruby Asterisk Gateway Interface (RAGI): http://www.snapvine.com/code/ragi/ [5] Adhearsion: http://adhearsion.com/ [6] Asterisk Zimlet: http://wiki.zimbra.com/index.php?title=Asterisk_VOIP_Zimlet [7] Convedia: http://www.radisys.com/products/Media-Servers.cfm [8] Ruby on Rails: “Agile Web Development with Rails: Second Edition” [9] Conman: http://www.experimentalstuff.com/Technologies/Asterisk/ conman-astricon2006.pdf