Tutoring the 21st Century
Tutoring.NET - A communication portal for e-learning
brought to you by: Markus Beier, Caroline Daniel, Daniel Dudaszek, Marc Hermann, Stéphanie Lecat, Daniel Toeller
Tutoring the 21st Century
• Contact point for students and tutors
• Give students the opportunity to contact their tutors independent of location and time.
• Tutors shall be able to decide when, where and how they can be reached.
Goals :
Tutoring the 21st Century
• Web portal as a meeting point
• SIP enables the new ways of communication
How we achieved this :
Tutoring the 21st Century
Functionality of the web site
4. Admin
1.General Features
2.Student
3.Teacher
Tutoring the 21st Century
Functionality of the web site – Generality
• Register (see student and teacher part)• Log-in• Send an email• Make a call (SIP or Netmeeting) • Log-out
Tutoring the 21st Century
Functionality of the web site - Student • Register yourself• Messages from the teachers• Courses you can join or quit, courses you are already in• Students work group• Students in your courses• Teachers of your courses• Edit your profile
Tutoring the 21st Century
Functionality of the web site - Teacher • Ask the administrator to register• Manage your messages• Courses you are in charge of, deletion, addition• Teacher work group• Students in your courses• Edit your profile
Tutoring the 21st Century
Functionality of the web site - Admin
• Create a teacher account• See the list of all the work group (student and
teacher)• See the list of all the students• See the list of all the teachers• See the list of all the courses
Tutoring the 21st Century
Database
1. MySQL
2. Our database
Tutoring the 21st Century
Database – Advantage of MySQL
• MySQL is a robust and performing SQL server• MySQL easily work with scripts language as PHP• PhpMyAdmin is an easy to learn interface to
manage MySQL database • Not perfect but...
Tutoring the 21st Century
Our Database – schema
Tutoring the 21st Century
Dynamic Web Pages Web page created in response to the request of a user, whose
contents is variable Collecting and sending to the Web server the information entered by
the user in a form Transmission of this data to a script or an application for their
processing Querying of a Database
Returning the result to the user in a HTML page
Tutoring the 21st Century
Use of PHPWhat is php
It is a script language
Embedded in a normal HTML page
Executed by the Web server
It will enable us to manage and use our MySQL database
And using data entered by the visitors
Tutoring the 21st Century
How a PHP program looks likethe tags <?php and ?> represent the beginning andthe end of a PHP program .
Example : <html><head><title>Example</title></head> <body> <H1><?php printf(“ the sum equals : $a + $b “,2,3);
?> </H1> </body></html>
Tutoring the 21st Century
ResultAt the end of its execution the part which goes from
<?php to ?> is removed or replaced by the result of the program. For this example the result we have is :
Tutoring the 21st Century
The advantage of the use of PHP The PHP Code is executed only by the server
Compatible with all kind of browsers
Free software and availability of the source code
Simplicity of writing of scripts
Simplicity of interaction with databases
Integration within many Web servers (Apache, Microsoft IIS, ...)
Tutoring the 21st Century
Personalised webpages
Tutoring the 21st Century
– Functionalities of Tutoring.net site require personalised webpages
– Example: two students which connect to the same page
Tutoring the 21st Century
– main problem: stateless HTTP protocolrequest response principle
Tutoring the 21st Century
• Solution – Session:
• defines an state between server and client• problem here: how to identify a unique user• generate Session ID
– possibilities to pass the Session ID:• use the GET Parameter• store it in a cookie
Tutoring the 21st Century
• Session Management:– At the server side:
• Store Informations about each active Session • Database, shared memory,filesystem
– Sessions properties:• store variables• have a lifetime
Tutoring the 21st Century
• Authentication:– allow webserver to identify client
• Methods to implement Authentication– Basic Authentication – Session Based Authentication
Tutoring the 21st Century
Basic Authentication Session Based Authentication
Basic Authentication vs. Session Based Authentication
Tutoring the 21st Century
+ - Basic - Authentication
easy implementation
no automatically logout possible
no web design possible
the user might be lead to uncertainty
Session Based Authentication
automatic logout possible
web design possible
necessity to implementate all Session functionalities
Basic Authentication vs. Session Based Authentication
Tutoring the 21st Century
• PHPLIB
• overview of selective Features:Session ManagementUser ManagementAuthenticationDatabase Access
Tutoring the 21st Century
• Example Authentication:
Tutoring the 21st Century
Access to page which requires authentication
Tutoring the 21st Century
Login form is shown first which is totally independent from the protected site
Tutoring the 21st Century
If login is valid the requested site is shown
Tutoring the 21st Century
SIPSession Initiation Protocol
-How to initiate a session with SIP
Tutoring the 21st Century
1. Purpose of the protocol2. Basics3. Example
SIP – Session Initiation Protocol
Tutoring the 21st Century
• Mr. Blue wants to call Mr. White via VoIPQuestions:
– Which IP has Mr. White– which type of session shall be initiated– which parameters has the session
Solution: SIP
SIP – Session Initiation Protocol
Tutoring the 21st Century
• textbased protocol, uses UDP (TCP)• closely related to HTTP (same response
codes, authentication schemes)• clear separation: signalling of the session –
type of session (e.g. telephone call, game)• uses the proxy principle• control via 6 methods: REGISTER, INVITE,
ACK, BYE, OPTIONS, CANCEL
SIP – Session Initiation Protocol
Tutoring the 21st Century
SIP – Session Initiation Protocol
Sample SIP MessageINVITE sip:[email protected] SIP/2.0Via: SIP/2.0/UDP 134.155.12.22:5060From: sip:[email protected]: sip:[email protected]: sip:[email protected]: [email protected]: 27246067 INVITEContent-Length: 175Content-Type: application/sdpUser-Agent: eStara SoftPHONE
v=0o=eStara 27246067 27246067 IN IP4 134.155.12.22s=eStarac=IN IP4 134.155.12.22t=0 0m=audio 8000 RTP/AVP 0 101a=rtpmap:101 telephone-event/8000a=fmtp:101 0-15
HeaderContains the signalling information
BodyContains the description of the session
Tutoring the 21st Century
Mr. White turns on the phone
SIP Proxy
12.12.12.12
REGISTER
FROM: [email protected]:12.12.12.12
Example call
SIP – Session Initiation Protocol
Tutoring the 21st Century
SIP Proxy
12.12.12.12
200 OK
Mr. White turns on the phone
Example call
SIP – Session Initiation Protocol
Tutoring the 21st Century
SIP Proxy
12.12.12.12Mr. White
waits for callsMr. Blue
places a call
INVITE
FROM: [email protected]: [email protected]
<Session Data>
Example call
SIP – Session Initiation Protocol
Tutoring the 21st Century
SIP Proxy
12.12.12.12
INVITE
FROM: [email protected]: [email protected]
<Session Data>
100 Trying
Mr. Blue places a call
Mr. White waits for calls
Example call
SIP – Session Initiation Protocol
Tutoring the 21st Century
12.12.12.12
180 Ringing180 Ringing
SIP Proxy
Mr. Blue‘s phone rings
Mr. White‘s phone rings
Example call
SIP – Session Initiation Protocol
Tutoring the 21st Century
12.12.12.12
200 OK200 OK
SIP Proxy
Mr. Blue‘s phone rings
Mr. White accepts
Example call
SIP – Session Initiation Protocol
Tutoring the 21st Century
12.12.12.12
ACK ACK
RTP audio streams
SIP Proxy
Example call
Mr. Blue ison line
Mr. White is on line
SIP – Session Initiation Protocol
Tutoring the 21st Century
12.12.12.12
SIP Proxy
Example call
Mr. Blue isoff line
Mr. White ends the call
SIP – Session Initiation Protocol
BYEBYE
Tutoring the 21st Century
12.12.12.12
ACK ACK
SIP Proxy
Example call
Mr. Blue isoff line
Mr. White is off line
SIP – Session Initiation Protocol
Call Duration 6 minutes: Fee 6€
Tutoring the 21st Century
Call LogicProgramming Sip:• CPL(Call Processing Language)• SIP CGI (Common Gateway Interface) • SIP Servlets
Tutoring the 21st Century
What is CPL?• an XML-based scripting language for describing and controlling call services• a list of condition/action pairs
– Example:„If someone is calling during the presentation, redirect the call to the voicemail server.“
„Redirect my friends to my cell phone, anyone else to my office.“
Tutoring the 21st Century
CPL Scripts can be based on:• Caller/Callee
– Address – Name
• Call subject • Caller's organization • Call Priority • Time periods
Tutoring the 21st Century
Where does CPL run?A CPL script runs in a signallingserver, and controls actions for the set upof a particular call
Tutoring the 21st Century
CPL Script example<?xml version="1.0" ?><!DOCTYPE cpl PUBLIC "-//IETF//DTD RFCxxxx CPL 1.0//EN" "cpl.dtd">
<cpl> <incoming> <location url="sip:[email protected]
mannheim.de"> <redirect /> </location> </incoming></cpl>
Tutoring the 21st Century
CPL scripts can be createdin 2 ways
1.Advanced users can do it by hand2.With GUI based tools (Indigo CPL Editor)
Tutoring the 21st Century
Tutoring the 21st Century
Tutoring the 21st Century
Sip CGI• Similar to Web-CGI• Language-independent (Perl,C,...)• Security problem:
– CGI programs are unlimited in their power
buggy scripts may affect server only for admin
Tutoring the 21st Century
Sip Servlets• Compromise between security and
power Security provided by Java Sandbox Still powerful
Tutoring the 21st Century
Call processing overviewGenerality Security
CGI highest lowest
Servlets medium medium
CPL lowest highest
Tutoring the 21st CenturyTutoring the 21st Century
SIP User Agents
Functionality and Restrictions
Tutoring the 21st Century
• What is a User Agent ?• How does a User Agent work ?• Several used and tested UAs
• eStara Softphone• Microsoft Netmeeting• Pingtel XPressa• History Client
Overview
Tutoring the 21st Century
• What is a User Agent ?• How does a User Agent work ?• Several used and tested UAs
• eStara Softphone• Microsoft Netmeeting• Pingtel XPressa• History Client
Overview
Tutoring the 21st Century
• A „real“ Telephone (Hardphone) with internet-software running
• A so called „Softphone“, a special software that uses Internet communication protocols to run
What is a User Agent ?
•Two „implementations“ :
•A Hard – or Software based Phone to call someone over the Internet
Tutoring the 21st Century
• What is a User Agent ?• How does a User Agent work ?• Several used and tested UAs
• eStara Softphone• Microsoft Netmeeting• Pingtel XPressa• History Client
Overview
Tutoring the 21st Century
RTP
SIPSIP
Tutoring the 21st Century
• What is a User Agent ?• How does a User Agent work ?• Several used and tested UAs
• eStara Softphone• Microsoft Netmeeting• Pingtel XPressa• History Client
Overview
Tutoring the 21st Century
eStara Softphone
•Also possible to run as an applet for customer services
•SIP enabled
•Three different Lines for different simultaneous calls
•Forwarding calls possible
Tutoring the 21st Century
•The only UA, which is launchable directly from the webpage
eStara Softphone
Tutoring the 21st Century
eStara Softphone
•SIP Message Log for detailed look at the SIP Messages
•The only UA, which is launchable directly from the webpage
Tutoring the 21st Century
• What is a User Agent ?• How does a User Agent work ?• Several used and tested UAs
• eStara Softphone• Microsoft Netmeeting• Pingtel XPressa• History Client
Overview
Tutoring the 21st Century
Microsoft Netmeeting - Features
•Supports :WhiteboardsChatVideocallSharing Programs / DesktopFile Transfer
•H.323 Phone
Tutoring the 21st Century
Microsoft Netmeeting - Features
•The only UA which is integrated directly into the webpage via an Active-X-Control
•Embedded into the HTML by the <object> tag
•Buttons to control the call
•Many possibilities :
•Full UI•Only Parts of the UI
Tutoring the 21st Century
Microsoft Netmeeting - Calling
Hard-coded IP-Adress to reacha specified computer
If Netmeeting is integrated via Active-X into the webpage, the call is directly made
Tutoring the 21st Century
• What is a User Agent ?• How does a User Agent work ?• Several used and tested UAs
• eStara Softphone• Microsoft Netmeeting• Pingtel XPressa• History Client
Overview
Tutoring the 21st Century
The Hardphone
Pingtel XPressa
•Multiple simultaneous calls
•Runs Java and SIP
•World´s first Java VoIP-Phone
Tutoring the 21st Century
The Softphone
Instant Xpressa
•Emulation of the Pingtel XPressa•Xdk to develop Java Apps
Tutoring the 21st Century
• What is a User Agent ?• How does a User Agent work ?• Several used and tested UAs
• eStara Softphone• Microsoft Netmeeting• Pingtel XPressa• History Client
Overview
Tutoring the 21st Century
• HistoryClient•Prototype - Software for the tutor
•Shows Notes that were made during earlier sessions with the caller to make it easier to keep track of the problems.
Tutoring the 21st Century
DEMONSTRATION
Tutoring the 21st Century
• On a technical level– SIP, protocols for videoconferences, PHP
• On a personal level– Intercultural work, dealing with misunderstandings
Assessment
Tutoring the 21st Century
Ideas for the future
• Improve billing function
• Make a SIP call to a telephone network
• Getting CPL scripts to work
Tutoring the 21st Century
Thank you for your attention
Tutoring the 21st Century
?