Introduction

Code lets a user set their preferences about how the program should answer to the call automatically.Those settings include how many times machine should ring before answering, whether it forwards the call or not, where the directory of calendar program is located, who gets what kind of security level.According to the forwarding and security level option, code generates different output file, which follows the SIP protocol.  The format of output is as follows 

SIP 2.0 480 Meeting J.Doe
Contact: j.doe@bar.edu
Retry-After: Mon, 9 Feb 1998 17:37:17 GMT
Content-Length: 0

Related Work

Background

Architecture

Module schedule::parser generates the output result according to the preference settings, which is determined by the other modules.  As mentioned in the Program Internal Operation under the section of Program Documentation, which follows next, it uses the cm_lookup.  As the alternatives, we considered accessing the file of RPC format under /usr/spool/calendar/callog.$USER.   However, cm_lookup function seems smarter way because with RPC format, it is more difficult to find and calculate the current schedule.
And, when it gets the current time, it uses "date" command.  As an alternative, we had an idea of using system clock.  However, it seems more complicated; therefore, "date" command was used.
The scheduler is written in Tcl/Tk.It utilizes the features of calendar managers, such as cm in UNIX. There are mainly two functions working together as scheduler:Properties setting interface and calendar information text parser.The figure 1 is the architecture of the process handled by scheduler.Figure 2 is the detailed inner mechanism of scheduler which shows how two parts working together to produce the output.

Figure 1 Scheduler Handling Process Flow Outline

Figure 2: The inner mechanism of scheduler

The schedule property interface allows user to set the preferences and option for how the incoming calls should be handled.First it has option of turn it on or off and after how many rings it wants the scheduler to respond.The calendar manager such as cm in Unix, Microsoft outlook can also be launched from the scheduler.The user can also indicate the path for launch it.The main section for the scheduler is the privacy group preference setting.It governs the body of returned message to the caller.Since there is much information can be shown to callers, such as what the reason for the absence of callee, what is the reply time, the forward information, etc.The user needs to be to manipulate the different privacy setting for different incoming calls.There are four levels of privacy:

·Public: this is the default case.Anyone or group who are not listed in the privacy group will be set as the public.It only returns the message of available or not available to the caller.

·Semi-public: This only shows the content message, which is the text message user put in the calendar.The other fields will be empty, except the contact body, which depends on whether user turns the forwarding option on or off.

·Semi-private: This only shows the reply time.The other field will be empty.

·Private: The people in this group have the privilege to see the full body of every field.

There are about 942 lines of coding, with a few modifications to the sip client.The entire program is written in Tcl/Tk.

Figure 3. Screen shot of interface

Program Documentation

Measurements
Code was tested for the preference setting and output.  For the test of preference setting, all the values were changed in arbitrary manner, and checked "schedule.conf" file under "./sipc" directory to find out whether the configuration was saved properly.   For the test of parser function, imaginary schedule was recorded through Calendar Manager.  Then, security group and level are changed.  Finally, output result was examined whether it generated the expected result.


Task List

Yuan Liu wrote code for the interface of the preference settings such as numbers of rings, forwarding option, Calendar Manager program path & execution button, and privacy level.And, Kijun Jeong wrote code for parser function, which generates output result described in program documentation, and forwarding function.However, forwarding function is not complete yet because it must be combined with searching function for address book.At this point, it returns string between two "=".

References