CS 519 Final Project Report

Internet Phone




Date: Sep. 30, 98

Name of Group : G1

Team members: Jing Deng, Rung-Hung Gau

Task: Accounting (#5)



Pseudocode
Interface that our team will provide for other teams
Interface that we will use
Our planned schedule
What do we need from the course staff?
Reference
Go back to report index of our team

Part 1: Get call information from signaling team and directory team, and then store the information in our database.

while (true) do

begin

// wait for a message from signaling team

wait_signaling(message_signal);

// run authenticate algorithm to verify the message

if (authenticate(message_signal)==true)

{

// get IP address of caller

caller_address=get_IP_address(message_signal);

// ask directory service to obtain the identity

message2=directory_service(caller_address);

// run authenticate algorithm to verify the message

if (authenticate(message_dir)==true)

{

// message_type can be call_initialize or call_finished, for example

message_type=get_message_type(message1);

// call_information includes all information that is necessary for accounting

purpose.

// For example, we would like to know a call is a usual telephone call or a

conference call

call_information=get_call_information(message1);

write_to_database(message_type, caller_identity, call_information);

}

}

end

Part 2: Create a bill when a customer request: this should be a event-driven algorithm in order to be efficient

Whenever a customer or a manager requests a telephone bill, do the following,

 

begin

// retrieve call record from database

call_record=retrieve_data(customer);

// execute pricing algorithms to create a bill

bill=create_bill(call_record);

// show telephone bill of a customer in a graphic user interface

show_bill(bill);

end



Our program will provide a graphic interface that allows end-user to input their user name and query their bills and detailed calling activities.



1. We need an interface from Signaling team (#2) to provide us the information for each call. The following are two functions that we will use to obtain call information from signaling team.

phoneCallInit(Service Type, Call Initializer, Call Destination(s), Time, Call ID)

phoneCallFinish(Call ID, Time)

2. We also need an interface from Directory team (#4) to provide us the corresponding user name for a specific IP address (if it exists at all). The following is the prototype of the function.

String getUserName(IP address)



Week

Duration

Planned task

1

Sep. 28-Oct. 2

Learn JDBC, MS access, set up working environments.

2

Oct. 5-Oct. 9

Write simple code to use MS access through JDBC on Java.

3

Oct. 12-Oct. 16

One student works on end-user interface. Another student writes the interface with Signaling team (#2) and Directory team (#4).

4

Oct. 19-Oct. 23

Test the interface and implement a simple price algorithm. Write testing codes for the interface with Signaling team (#2) and Directory team (#4), if needed.

5

Oct. 26-Oct.30

Test the interface with other two teams.

6

Nov. 2-Nov. 6

Further research on better authentication and pricing algorithm.

7

Nov. 9-Nov. 13

Working with Signaling team (#2) and Directory team (#4) to cooperate on the interfaces.

8

Nov. 16-Nov. 20

Documentation and package our software into our group system.

9

Nov. 23-Nov. 27

Done



We need a computer network environment that we can work. First, we need a personal computer with MS-Access, which acts as our accounting server. Windows 95 or Windows NT must be installed in the server since we want to use MS-Access as our database. Windows NT is preferred compared to Windows 95. Besides, a JDBC driver that supports MS-Access DBMS, such as IDS JDBC server and Symantec dbANYWHERE, must be installed in the accounting server. Of course, we need a JAVA compiler and JAVA virtual machine with all necessary classes. We already have the software. However, we need an administrator privilege to install the software.

Secondly, the accounting server must be connected to Internet since we have to communicate with signaling team and directory team. We have some experience about socket programming in Unix. Nevertheless, we do have any experience in network programming in Windows NT. We need some guidance on this topic. We have computer accounts in CS undergraduate lab. Therefore, it will convenient for us to work on the project if the required software can be installed in that lab.



[1] http://java.sun.com/products/jdbc provides information about current situation of JDBC.

[2] http://java.sun.com/products/jdbc/jdbc.drivers.html classifies JDBC drivers into four classes and provides a table composed of available JDBC drivers

[3] http://www.idssoftware.com/jdriver.htm is the homepage for the IDS JDBC driver, which can support MS-Access DBMS.

[4] http://www.symantec.com/dba is the homepage for Symantec dbANYWHERE server, which also supports MS-Access DBMS.

[5] http://java.sun.com/products/jdk/1.1 is the homepage we find a tutorial for JDBC programming.

[6] Barry Holmes, "Programming with JAVA" is the first book we used to learn JAVA.

[7] W. Richard Stevens, "Unix Network Programming" is the book we used to learn socket programming.




Go back to report index of our team