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.
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
www.calendar.yahoo.com provides a very good reference for any event notification and scheduling system.
--------
| 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
[1] SIP VoiceXML
Browser
[2] Email
Notification Over Phone
[3] Email
by Phone
[4] CINEMA Web
Interface
[5] Tcl / Tk
[6] VoiceXML
Spec