420 likes | 536 Vues
Telephony Based Grading Solution. by Svechinsky Ella and Simanovich Len. Project Description. Control Model. Solution enables: Retrieving their grades using a dial-phone. Server Answers Communicates Retrieves grades. We used: TAPI SDKs SQL DB C#. Telephony Operator.
E N D
Telephony Based Grading Solution by Svechinsky Ella and Simanovich Len
Solution enables: • Retrieving their grades using a dial-phone. • Server • Answers • Communicates • Retrieves grades
We used: • TAPI SDKs • SQL DB • C#
TAPI 3.0 • Simple and generic methods for: • making connections • accessing media streams • Abstract call-control functionality.
Telephony Operator application: • features for dial-up modem communication for Telephony Based Grading Solution project.
Generalized solution: • Abstract interfaces. • Different kinds of communication.
Defined interfaces: • IEngine • ILine • ICall • IDisconnectCallBack
Enable communication • Support: • multiple lines. • incoming and outgoing requests. • receiving and sending data.
DisconnectCallBack Interface • Assigned to the Call object. • Callback interface. • Signals the main server.
Using TAPI 3.0: • ProjectEngine • ProjectLine • ProjectCall
Multiple modems. • One TAPI object = Engine object. • Dial-up modem = Line object. • Incoming call = Call object. • Methods: • multithreaded • callback
ProjectEngine implementation • ProjectEngine: • TAPI object • ArrayList with Line objects.
ProjectEngine implementation (cont.) • Multithreaded methods allow: • Registration for Lines. • Listening for TapiEvents. • Receiving events for all. • Identification of Line. • Passing event to the Line.
Project Line implementation • ProjectLine: • TAPI object • Address of dial-up modem • Call object for a current call • Queue object with DigitEvents
Project Line implementation (cont.) • Multithreaded methods allow: • Handling TapiEvents. • Getting a new call.
Project Line implementation (cont.) • NOTE: • Always answering the incoming call. • Delayed disconnection (Visual Studio .Net 2003)
ProjectCall implementation • ProjectCall object: • ProjectLine object • CallInfo object.
ProjectCall implementation (cont.) • Multithreaded callback methods allow: • Gathering one or more DigitEvents. • Playing audio messages. • Disconnecting. • NOTE: • IsConnected() method is enabled.
Overview Telephony Operator ProjectData-Base Side and Main Service
Data Base Telephony Operator Project Data-Base Side and Main Service • Implemented using Microsoft SQL server 2000. • The logic of managing the information is done in stored procedures.
Data Base Telephony Operator Project Data-Base Side and Main Service • The queries in the Main Service are done in real time, so it has to be fast. The database is designed to have fast queries, on GradesDBFeed’s expense. • The database is on one of the lab server. The connection to it is done with a connection string, using SqlConnection object.
Data Base Tables and Relationships Telephony Operator Project Data-Base Side and Main Service
Data Base Special Stored Procedures Telephony Operator Project Data-Base Side and Main Service • SP_last_grade_course_occurrence_update - used every time that a grade in changed/deleted. • SP_last_grade_all_students_course_update - used whenever a course occurrence is changed/deleted, and we have to update the records of all the students that were registered to this course occurrence. • SP_last_grade_course_update - used every time that a grade is changed/deleted, or the time of a course occurrence is changed/deleted.
Data Base Data integrity Telephony Operator Project Data-Base Side and Main Service
GradesDBFeed Forms Application Telephony Operator Project Data-Base Side and Main Service MasterForm StudentsForm CoursesForm CourseOccurrencesForm GradesForm
GradesDBFeed Data Adapter Telephony Operator Project Data-Base Side and Main Service
DBIF Class Library (Database Interface) Telephony Operator Project Data-Base Side and Main Service • This class library has an explicit function for every query. • This code uses the AutoSProc tool.
DBIF Class Library AutoSProc Telephony Operator Project Data-Base Side and Main Service // creating a command object with the stored procedure name SqlCommand cmd = new SqlCommand("SP_valid_student_password", cnn); cmd.CommandType = CommandType.StoredProcedure; //defining the parameters that the stored procedure gets cmd.Parameters.Add("@student_id",SqlDbType.VarChar,50).Value=student_id; cmd.Parameters.Add("@student_password",SqlDbType.VarChar,50).Value=student_password; cmd.Parameters.Add("@valid", SqlDbType.Int); cmd.Parameters["@valid"].Direction=ParameterDirection.Output; //executing the sql command public interface ISprocCalls: ISprocBase { int SP_valid_student_password(string student_id, string student_password, ref int valid); ... }
MainService Telephony Operator Project Data-Base Side and Main Service • Most of the operations are allowed for a maximum number of tries. • This service is implemented only for one phone line. • Has a function for handling grammer of reading a number a loud. It combines a set of messages to one array."the number of points is 99.5" is translated to "the number of points is ",90","9","and, "a half".
MainService Telephony Operator Project Data-Base Side and Main Service
What did we have here? (key learnings) Telephony Operator Project Data-Base Side and Main Service • System design and Layers of abstractions • C# and .Net • Databases: stored procedures and data integrity.