Event Notification and Scheduling (ENAS) for CINEMA

Salman A. Baset
Columbia University
New York
sa2086@cs.columbia.edu


Abstract

Columbia InterNet Extensible Multimedia Architecture (CINEMA) provides a test bed for different multimedia and Internet telephony applications. We have implemented this project to provide CINEMA with a module that enables scheduling the notifications of different CINEMA events like conferences etc. Events Notifications can be scheduled over CINEMA web interface, or through the phone.

Different types of events notifications that can be used scheduled through CINEMA include conferences, general events, birthday reminders, wakeup calls etc. The event notifications are delivered to users email address, instant messsenger, and SIP phone.

Introduction

CINEMA is a software that allows multiple users to login and participate in a Video conference participation,  access information regarding meetings, and seminars.

Event Notification system plays a very important role in the sense that it allows user to schedule 'reminders' for different events at a particular time, (before the event ofcourse) for a reminder system (email, instant messenger, SIP phone) of users choice.

The organization of the report is as follows: 
1) Introduction 
2) Related Work 
3) Architecture 
4) Program Documentation 
5) Future work 
6) References
 

Related Work

www.calendar.yahoo.com provides a very good reference for any event notification and scheduling system. 

Architecture

--------
| UC 1 | Adding a EventGroup / Event / Conference Event    
-------- ==============================================

            User |  Add EventGroup (1) (Eventgroup.cgi)(1)  +----+ 
                 |----------------------------------------->| DB | 
                 |  Add ConfGroup  (2) (ConfEdit.cgi)       |    |
                 |----------------------------------------->+----+
                 | Add Event       (3) (Event.cgi)            ^  ^
                 |--------------------------------------------|  |
                 | Add Conf. Event (4) (Event.cgi)               |
                 |-----------------------------------------------|
        
        Use case NOT a part of project to the project. However it shows the 
        sequence of steps that user has to do to eventually schedule a notification
        for an event.

--------
| UC 2 | Scheduling an Event Notification to Email (Through CINEMA gui)
-------- ==============================================================
             
                     
             User 
         |  (1.a) (Event.cgi) 
         |---------------------------|      +--------------+
            (1.b) (Notification.cgi) |----->|schedule email|
         |---------------------------|      +--------------+ 
                                               |  
                                     +---------|(2)   
                                     |  
                                     V   
                                     +--+   (3)  +----+    (4) +-----+
                                     |at|---|--->|Mail|------->|Inbox|
                                     +--+   |    +----+        +-----+
                                            |                                            
                                         +----+
                                         | DB |
                                         +----+
      
      1. User Schedules Email Notification through CINEMA gui and clicks on 'edit'

      2. 'schedule_email' script runs. It creates a Temporary script file that is 
         provided to the at command. Script file is stored in 
         [CINEMA Install Dir.]/[user]/scripts/ . The name of script file is
         email.[current time].sh

      3. At Command is run. Upon success, Event Notification is stored in 
         'eventgroup_notify' table

      4. At command runs at the specified time and uses 'Mail' to send email 
         to users email address

--------
| UC 3 | Scheduling an Event Notification to SIP IM (Through CINEMA gui)
-------- ===============================================================

                     
             User 
         |  (1.a) (Event.cgi) 
         |---------------------------|      +-----------+
            (1.b) (Notification.cgi) |----->|schedule im|
         |---------------------------|      +-----------+ 
                                               |  
                                 +-------------|(2)   
                                 |  
                                 V   
                                 +--+  (3)   +-----+    (4) +-----------------+
                                 |at|---|--->|siptc|------->|sip client / sipc|
                                 +--+   |    +-----+        +-----------------+
                                        |
                                     +----+
                                     | DB |
                                     +----+

      1. User Schedules IM Notification through CINEMA gui and clicks on 'edit'

      2. 'schedule_im' script runs. It creates a Temporary script file that is 
         provided to the at command. Script file is stored in 
         [CINEMA Install Dir.]/[user]/scripts/. The name of script file is
         'im.[current time].sh' . Also another temporary file is created that 
         contains the SIP Message supplied as command line parameter to siptc. The
         name of that script file is 'im.[current time].sh.MESSAGE'.

      3. At Command is run. Upon success, Event Notification is stored in
         'eventgroup_notify' table

      4. At command runs at the specified time and uses 'siptc' to send instant 
         message to users im client over UDP.


--------
| UC 4 | Scheduling an Event Notification to SIP Phone (Through CINEMA gui)
-------- ==================================================================

                     
         User 
         |   (1.a) (Event.cgi) 
         |---------------------------|      +--------------+
             (1.b) (Notification.cgi)|----->|schedule phone|
         |---------------------------|      +--------------+ 
                                               |  
                                 +-------------|(2)   
                                 |  
                                 V   
                                 +--+  (3)   +-----+  (4)   +---------+
                                 |at|---|--->|sipua|------->|sip phone|
                                 +--+   |    +-----+        +---------+
                                        |
                                     +----+
                                     | DB |
                                     +----+  

      1. User Schedules Phone Notification through CINEMA gui and clicks on 'edit'

      2. 'schedule_phone' script runs. It creates a Temporary script file that is 
         provided to the at command. Script file is stored in 
         [CINEMA Install Dir.]/[user]/scripts/. The name of script file is
         'phone.[current time].sh' . 

      3. At Command is run. Upon success, Event Notification is stored in
         'eventgroup_notify' table

      4. At command runs at the specified time and uses 'sipua' to place a call
         to the user. Currently audio file cannot be specified as a parameter to
         sipua. Ideally, sipua should transfer the call to sipvxml after the 
         announcement is played.


--------
| UC 5 | Scheduling a Email Notification to Email (Through sipvxml)
-------- ==========================================================

                       
    
              User
        |(1)(WelcomeVxml.cgi)     +-------+
        |------------------------>|sipvxml|     
                                  +-------+ 
                                     |  
                                     |(2)PhoneScheduleProcess.cgi   
                                     |  
                                     V   
                                     +--+   (3)  +----+   (4)  +-----+
                                     |at|---|--->|Mail|------->|Inbox|
                                     +--+   |    +----+        +-----+
                                            |
                                         +----+
                                         | DB |
                                         +----+  

      1. TBI: sipvxml places a event notification call to the user and plays out
         the notification file to the user. 
         It then prompts the user for PIN. After validating the user, it prompts the
         user for Notification menu         

      2/3. User is prompted to enter Day / Month and Hour / Minute. Depending on the
         whether 'at' command can be scheduled at that date/time, user is informed 
         appropriately. Currently only email notification can be scheduled over the 
         phone. Nevertheless the process is same as gui notification

      4. At Command is run. Upon success, Event Notification is stored in
         'eventgroup_notify' table

      5. At command runs at the specified time and uses Mail to send email to the user

Program Documentation

Future Work

References

[1] SIP VoiceXML Browser  
[2] Email Notification Over Phone
[3] Email by Phone
[4] CINEMA Web Interface
[5] Tcl / Tk
[6] VoiceXML Spec