420 likes | 543 Vues
The Telephony-Based Grading Solution by Svechinsky and Simanovich enables users to retrieve grades via dial-up phone systems. Leveraging TAPI SDKs, SQL databases, and C#, this solution creates an interactive server that answers calls, communicates with users, and fetches grade information. The architecture supports multithreaded operations for handling multiple lines and calls simultaneously, ensuring fast, real-time database queries. Key components include a call control model and interfaces for robust communication, facilitating seamless interaction between users and the grading system.
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.