Tutoring the 21st Century

Download Report

Transcript Tutoring the 21st Century

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
Goals :
• 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.
Tutoring the 21st Century
How we achieved this :
• Web portal as a meeting point
• SIP enables the new ways of
communication
Tutoring the 21st Century
Functionality of the web site
1.General Features
2.Student
3.Teacher
4. Admin
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 PHP
What 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 like
the tags <?php and
?> represent the beginning and
the 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
Result
At 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 protocol
request 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 vs. Session Based Authentication
Basic Authentication
Session Based Authentication
Tutoring the 21st Century
Basic Authentication vs. Session Based Authentication
+
Basic Authentication
 easy
implementation
Session Based
Authentication
 automatic logout
possible
 web design
possible
 no automatically
logout possible
 no web design
possible
 the user might be
lead to uncertainty
 necessity to
implementate all
Session
functionalities
Tutoring the 21st Century
• PHPLIB
• overview of selective Features:
Session Management
User Management
Authentication
Database 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
SIP
Session Initiation Protocol
How to initiate a session with SIP
Tutoring the 21st Century
1. Purpose of the protocol
2. Basics
3. Example
SIP – Session Initiation Protocol
Tutoring the 21st Century
• Mr. Blue wants to call Mr. White via VoIP
Questions:
– 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
Sample SIP Message
INVITE sip:[email protected] SIP/2.0
Via: SIP/2.0/UDP 134.155.12.22:5060
From: sip:[email protected]
To: sip:[email protected]
Contact: sip:[email protected]
Call-ID: [email protected]
CSeq: 27246067 INVITE
Content-Length: 175
Content-Type: application/sdp
User-Agent: eStara SoftPHONE
v=0
o=eStara 27246067 27246067 IN IP4 134.155.12.22
s=eStara
c=IN IP4 134.155.12.22
t=0 0
m=audio 8000 RTP/AVP 0 101
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
SIP – Session Initiation Protocol
Header
Contains the
signalling information
Body
Contains the
description of the
session
Tutoring the 21st Century
Example call
[email protected]
=
12.12.12.12
Mr. White turns
on the phone
REGISTER
SIP Proxy
FROM: [email protected]
Contact:12.12.12.12
SIP – Session Initiation Protocol
Tutoring the 21st Century
Example call
[email protected]
=
12.12.12.12
Mr. White turns
on the phone
200 OK
SIP Proxy
SIP – Session Initiation Protocol
Tutoring the 21st Century
Example call
[email protected]
=
12.12.12.12
Mr. Blue
places a call
INVITE
FROM: [email protected]
TO: [email protected]
SIP Proxy
<Session Data>
SIP – Session Initiation Protocol
Mr. White
waits for calls
Tutoring the 21st Century
Example call
[email protected]
=
12.12.12.12
Mr. Blue
places a call
100 Trying
Mr. White
waits for calls
INVITE
SIP Proxy
FROM: [email protected]
TO: [email protected]
<Session Data>
SIP – Session Initiation Protocol
Tutoring the 21st Century
Example call
[email protected]
=
12.12.12.12
Mr. Blue‘s
phone rings
180 Ringing
Mr. White‘s
phone rings
180 Ringing
SIP Proxy
SIP – Session Initiation Protocol
Tutoring the 21st Century
Example call
[email protected]
=
12.12.12.12
Mr. Blue‘s
phone rings
200 OK
Mr. White
accepts
200 OK
SIP Proxy
SIP – Session Initiation Protocol
Tutoring the 21st Century
Example call
[email protected]
=
12.12.12.12
Mr. Blue is
on line
ACK
Mr. White is
on line
ACK
SIP Proxy
RTP audio streams
SIP – Session Initiation Protocol
Tutoring the 21st Century
Example call
[email protected]
=
12.12.12.12
Mr. Blue is
off line
BYE
Mr. White
ends the call
BYE
SIP Proxy
SIP – Session Initiation Protocol
Tutoring the 21st Century
Example call
[email protected]
=
12.12.12.12
Mr. Blue is
off line
ACK
Mr. White is
off line
ACK
SIP Proxy
Call Duration 6 minutes: Fee 6€
SIP – Session Initiation Protocol
Tutoring the 21st Century
Call Logic
Programming 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 signalling
server, and controls actions for the set up
of 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]">
<redirect />
</location>
</incoming>
</cpl>
Tutoring the 21st Century
CPL scripts can be created
in 2 ways
1. Advanced users can do it by hand
2. 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 overview
Generality
Security
CGI
highest
lowest
Servlets
medium
medium
CPL
lowest
highest
Tutoring the 21st Century
SIP User Agents
Functionality and Restrictions
Tutoring the 21st Century
Overview
•
•
•
What is a User Agent ?
How does a User Agent work ?
Several used and tested UAs
•
•
•
•
eStara Softphone
Microsoft Netmeeting
Pingtel XPressa
History Client
Tutoring the 21st Century
Overview
•
•
•
What is a User Agent ?
How does a User Agent work ?
Several used and tested UAs
•
•
•
•
eStara Softphone
Microsoft Netmeeting
Pingtel XPressa
History Client
Tutoring the 21st Century
What is a User Agent ?
•A Hard – or Software based Phone to call someone over the Internet
•Two „implementations“ :
•
A „real“ Telephone (Hardphone) with internet-software running
•
A so called „Softphone“, a special software that uses Internet
communication protocols to run
Tutoring the 21st Century
Overview
•
•
•
What is a User Agent ?
How does a User Agent work ?
Several used and tested UAs
•
•
•
•
eStara Softphone
Microsoft Netmeeting
Pingtel XPressa
History Client
Tutoring the 21st Century
RTP
SIP
SIP
Tutoring the 21st Century
Overview
•
•
•
What is a User Agent ?
How does a User Agent work ?
Several used and tested UAs
•
•
•
•
eStara Softphone
Microsoft Netmeeting
Pingtel XPressa
History Client
Tutoring the 21st Century
eStara Softphone
•SIP enabled
•Three different Lines for different
simultaneous calls
•Forwarding calls possible
•Also possible to run as an applet for
customer services
Tutoring the 21st Century
eStara Softphone
•The only UA, which is launchable
directly from the webpage
Tutoring the 21st Century
eStara Softphone
•The only UA, which is launchable
directly from the webpage
•SIP Message Log for detailed look at
the SIP Messages
Tutoring the 21st Century
Overview
•
•
•
What is a User Agent ?
How does a User Agent work ?
Several used and tested UAs
•
•
•
•
eStara Softphone
Microsoft Netmeeting
Pingtel XPressa
History Client
Tutoring the 21st Century
Microsoft Netmeeting - Features
•H.323 Phone
•Supports :
Whiteboards
Chat
Videocall
Sharing Programs / Desktop
File Transfer
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
•Many possibilities :
•Full UI
•Only Parts of the UI
•Buttons to control the call
Tutoring the 21st Century
Microsoft Netmeeting - Calling
If Netmeeting is integrated via
Active-X into the webpage,
the call is directly made
Hard-coded IP-Adress to reach
a specified computer
Tutoring the 21st Century
Overview
•
•
•
What is a User Agent ?
How does a User Agent work ?
Several used and tested UAs
•
•
•
•
eStara Softphone
Microsoft Netmeeting
Pingtel XPressa
History Client
Tutoring the 21st Century
The Hardphone
Pingtel XPressa
•Runs Java and SIP
•Multiple simultaneous calls
•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
Overview
•
•
•
What is a User Agent ?
How does a User Agent work ?
Several used and tested UAs
•
•
•
•
eStara Softphone
Microsoft Netmeeting
Pingtel XPressa
History Client
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
Assessment
• On a technical level
– SIP, protocols for videoconferences, PHP
• On a personal level
– Intercultural work, dealing with misunderstandings
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
?