...

Diapositiva 1 - labtel.ing.uniroma1.it

by user

on
Category: Documents
9

views

Report

Comments

Transcript

Diapositiva 1 - labtel.ing.uniroma1.it
Facoltà di Ingegneria
Supporto di ENUM, NAT e Audioconferenze per architettura
SIP-Sapientel, e creazione del Wiki per utenti
e sviluppatori
27 Marzo 2007
Relatore
Prof. Alessandro Falaschi
Laureando
Gaetano Sorrentino
Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e
creazione del wiki per utenti e sviluppatori
Gaetano Sorrentino
VOIP – Voice Over Internet Protocol
Instradamento delle chiamate vocali su Internet
Commutazione a pacchetto, mentre nel PSTN (Public Switched Telephone Network)
commutazione di circuito
Vantaggi :
• Possibilità di integrazione e convergenza con altri servizi come Instant Messaging,
posta elettronica e posta vocale, trasmissione dati.
• Flessibilità: i dati (vocali, testuali, video) possono essere rielaborati a livello locale
• Dati in formato digitale: possibilità di compressione, criptazione, maggiore robustezza
• Costi competitivi rispetto a PSTN
Svantaggi :
• Problemi di QoS (Quality Of Service)
• Impossibilità di effettuare chiamate d’emergenza
Tesi di Laurea in Ingegneria Elettronica
1/22
Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e
creazione del wiki per utenti e sviluppatori
Gaetano Sorrentino
SIP – Session Initiation Protocol
Il VoIP richiede due protocolli di comunicazione paralleli :
1. Trasporto dei dati (RTP)
2. Segnalazione della conversazione
Per la segnalazione esistono protocolli proprietari (IAX, Skype, SCCP)
e standardizzati (SIP, H.323, XMPP)
Breve confronto SIP-H323
SIP
Vengono preferiti protocolli
standardizzati.
In Sapientel si è scelto di
affidarsi al protocollo SIP
- Sviluppato da IETF
- Relativamente semplice (~250
pagine di specifica)
- Architettura modulare, flessibile
- E’ facilmente estensibile in modo da
supportare nuovi servizi
- URI della forma
sip:[email protected]
H.323
- Sviluppato da ITU-T
- Standard ad ombrello
- Monolitico,rigido (pila di protocolli
e codec predefinita)
- Complesso (~1500 pagine di
specifica)
- Supporto audio,video,dati (T.120)
- Supporto conferenze
- Ottima integrazione con PSTN
- URI della forma
h323:[email protected]
Tesi di Laurea in Ingegneria Elettronica
2/22
Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e
creazione del wiki per utenti e sviluppatori
Gaetano Sorrentino
SAPIENTEL – Cosa è
• Server VoIP in ambito accademico
• Progetto iniziato 2 anni fa
Architettura
Scopi :
- Comunicazione tra studenti,
Docenti, ricercatori ecc.
- Mobilità
- Raggiungibilità
Tesi di Laurea in Ingegneria Elettronica
3/22
Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e
creazione del wiki per utenti e sviluppatori
Gaetano Sorrentino
SAPIENTEL – Componenti
• SIP Server usando SER (SIP Express Router)
• Media Server per audioconferenze usando SEMS (SIP Express Media Server)
• Registrazione account su database usando MySql
• Interfaccia grafica tramite SERWEB
• Problema del NAT, risolto con Mediaproxy
• Raggiungibilità al proprio numero di telefono fisso tramite ENUM
• Videoconferenze (sperimentale) con OpenMCU
Tesi di Laurea in Ingegneria Elettronica
4/22
Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e
creazione del wiki per utenti e sviluppatori
Gaetano Sorrentino
SAPIENTEL – Novità
Differenze tra la precedente versione di Sapientel e l’attuale
Sapientel
Sapientel
Ieri
Oggi
- SIP server usando OpenSER
- SIP server usando SER
- Database MySql
- Database MySql
- Interfaccia web: SERweb adattato a
Openser
- Interfaccia web: SERweb
- Nessun media server
- Audioconferenze
personalizzato e localizzato
tramite
SEMS
- Videoconferenze tramite OpenMCU
- Nessun supporto ENUM
- Supporto
- Nessun supporto NAT
- Supporto
- Restrizione degli accessi tramite
email
- Restrizione degli accessi tramite
ENUM
NAT tramite
Mediaproxy
gettone di autorizzazione
Tesi di Laurea in Ingegneria Elettronica
5/22
Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e
creazione del wiki per utenti e sviluppatori
Gaetano Sorrentino
SER (Sip Express Router) – Cosa è
Server SIP con funzioni di :
- SIP registrar, proxy, redirect server
- Instant Messaging
- Voicemail
- Gestione domini multipli
- Gestione presenze
• Costituito da un core principale per la segnalazione e
il processamento dei messaggi SIP e una serie di moduli
per le funzioni aggiuntive
• Cuore di SER, è il file di configurazione ser.cfg
Tesi di Laurea in Ingegneria Elettronica
6/22
Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e
creazione del wiki per utenti e sviluppatori
Gaetano Sorrentino
SER – Accessibilità
Limitazione di accesso alle risorse ai soli utenti registrati su database
(possibilità di riavviare il server senza perdere le informazioni degli utenti)
• Soluzione scelta : database MySql
• SER offre il supporto a MySql fornendo i tools:
- Creazione del database (ser_mysql.sh)
- Popolazione del database (serctl)
fifo_db_url="mysql://utente:password@localhost/ser“
• Implementazione agendo sul file ser.cfg
loadmodule "/usr/local/lib/ser/modules/mysql.so"
loadmodule "/usr/local/lib/ser/modules/auth.so"
#----------------------------------# Sezione REGISTER Message Handler
#----------------------------------if (!www_authorize("","subscriber")){
www_challenge("","0");
break;
};
if (!check_to()){
sl_send_reply("401","Unauthorized");
break;
};
consume_credentials();
Tesi di Laurea in Ingegneria Elettronica
7/22
Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e
creazione del wiki per utenti e sviluppatori
Gaetano Sorrentino
SER – ENUM
Necessità di convergenza tra linee PSTN e VoIP
• A partire da un numero telefonico, ENUM consente :
- Traduzione PSTN -> URI
- Raggiungibilità dal proprio numero fisso
- Mobilità
- Chiamate SIP e H.323
- Inviare fax
- Inviare email
Semplice scenario VOIP
Tesi di Laurea in Ingegneria Elettronica
8/22
Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e
creazione del wiki per utenti e sviluppatori
Gaetano Sorrentino
SER – ENUM
Algoritmo per la traduzione di URI
Numero da chiamare : +39 06 44585482
Vengono eliminati i caratteri non numerici e si ottiene:
390644585482
Si inverte il numero:
284585446093
Viente inserito un punto tra ogni cifra:
2.8.4.5.8.5.4.4.6.0.9.3
Si aggiunge il suffisso “.e164.arpa”, ossia il dominio ENUM:
2.8.4.5.8.5.4.4.6.0.9.3.e164.org
Il risultato è compatibile con la tecnologia DNS e viene trattato come:
ZONA DNS
Il server DNS che gestisce questa zona conterrà un record NAPTR per risolvere la query:
$ORIGIN 2.8.4.5.8.5.4.4.6.0.9.3.e164.org
IN NAPTR 10 100 “u” “E2U+sip” “!^.*$!sip:[email protected]!”
URI SIP finale da chiamare:
sip:[email protected]
Tesi di Laurea in Ingegneria Elettronica
9/22
Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e
creazione del wiki per utenti e sviluppatori
Gaetano Sorrentino
SER – ENUM
(RFC 3761)
Le URI vengono associate ai nomi DNS (corrispondenti ai numeri E.164)
mediante i record NAPTR (Naming Authority Pointer)
ENUM
Numero Telefonico
(E.164)
Nome
DNS
UR
I
NAPTR
….
UR
I
Esempio di record NAPTR :
$ORIGIN 2.8.4.5.8.5.4.4.6.0.9.3.e164.org
IN NAPTR 10 100 “u” “E2U+sip” “!^.*$!sip:[email protected]!”
• Abilitazione in Sapientel all’ inbound ENUM,
agendo sul file di configurazione di SER,
aderendo al servizio offerto da e164.org
loadmodule "/usr/local/lib/ser/modules/enum.so“
#--------------------------# Sezione di Instradamento
#--------------------------if(uri=~"sip:\+[0-9]+@"){
if(!enum_query("e164.org."))
{enum_query("e164.arpa.");
};
};
Tesi di Laurea in Ingegneria Elettronica
10/22
Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e
creazione del wiki per utenti e sviluppatori
Gaetano Sorrentino
SER – Attraversamento NAT (Network Address Translation)
• Problema per chi si trova dietro router
• Causa : il pc in rete lan accede ad internet con l’IP pubblico del NAT/Router
• Difficoltà nelle applicazioni end-to-end point
Possibili soluzioni :
• STUN Server (Simple Traversal of UDP through NATs)
RFC 3489
• IP forwarding configurando il router
• Triangolazione Mediaproxy
Tesi di Laurea in Ingegneria Elettronica
11/22
Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e
creazione del wiki per utenti e sviluppatori
Gaetano Sorrentino
SER – NAT Traversal : Mediaproxy
Strumenti offerti da SER per risolvere il problema NAT:
• RTPProxy :
- scritto in C
- non permette di distribuire il carico
- non fornisce strumenti di monitoraggio
SOLUZIONE
SCELTA
• Mediaproxy :
- scritto in Python
- permette l’uso di DNS srv records, per distribuire il carico
- dotato di interfaccia grafica per monitorare il traffico
Tesi di Laurea in Ingegneria Elettronica
12/22
Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e
creazione del wiki per utenti e sviluppatori
Gaetano Sorrentino
SER – NAT Traversal : Mediaproxy
Mediaproxy
Mediaproxy in azione :
socket
• Parte software a sè stante
RT
P
P
RT
SIP
• Socket di comunicazione con SER
• Comunicazione RTP transita per il
mediaproxy
NAT
P
SI
• Modulo da caricare in SER
Proxy SIP
(87.10.123.456)
NAT
(82.18.123.456)
Client SIP
(192.168.1.3)
Client SIP
(192.168.2.6)
Implementazione modificando il file di configurazione di SER
Tesi di Laurea in Ingegneria Elettronica
13/22
Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e
creazione del wiki per utenti e sviluppatori
Gaetano Sorrentino
SEMS (Sip Express Media Server) – Cosa è
• Media (Application) Server
• Struttura modulare, scalabile grazie ai plug-ins
• Poggia sullo stack SIP di SER
- comunicazione tramite socket
• Strutturato con 2 strati :
- media layer : gestione dell’ RTP
- control layer : per la segnalazione
Tesi di Laurea in Ingegneria Elettronica
14/22
Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e
creazione del wiki per utenti e sviluppatori
Gaetano Sorrentino
SEMS – Applicazioni
• Applicazioni fornite di default con SEMS (non attivate in Sapientel) :
- Voicemail
- Mailbox
- Ann_b2b
- Conf_auth
Benvenuto in Sapientel, questo è un
semplice annuncio che indica il
corretto funzionamento…
• Applicazioni attivate in Sapientel :
- Echo : digitando echo (o il numero 110) dal proprio UA
- Test : digitando test (o il numero 111) dal proprio UA
- Conference : digitando conf (o il numero 112) dal proprio UA
Tesi di Laurea in Ingegneria Elettronica
15/22
Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e
creazione del wiki per utenti e sviluppatori
Gaetano Sorrentino
SEMS – Video conferenze?
• Prevista l’implementazione nelle prossime versioni di SEMS
Alternativa
OpenMCU (basato su H.323)
• Necessita di un gateway SIP – H.323
• Soluzione trovata : Yate (Yet Another Telephony Engine)
- Offre un proprio stack SIP
- Fornisce un gateway SIP – H.323
(flusso video abilitato da un lavoro di tesi appena concluso)
• Integrazione del gateway nelle prossime versioni di Sapientel
Tesi di Laurea in Ingegneria Elettronica
16/22
Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e
creazione del wiki per utenti e sviluppatori
Gaetano Sorrentino
SERWEB – Cosa è
Interfaccia grafica per la registrazione degli account
Distribuito dagli stessi sviluppatori di SER-SEMS (Iptel.org)
• Limitazione degli accessi tramite un token
• Personalizzazione
• Localizzazione
Tesi di Laurea in Ingegneria Elettronica
17/22
Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e
creazione del wiki per utenti e sviluppatori
Gaetano Sorrentino
SERWEB – Condizionamento per la fruizione dei servizi
• Perché?
Per non essere troppo permissivi e consentire l’accesso a chiunque
• Soluzione precedente : controllo tramite email
- Registrazione per i solo possessori di email @uniroma1.it
- Troppo restrittiva, non si accettano soggetti esterni
• Soluzione attuale : registrazione previa conoscenza di un
gettone di autorizzazione (token)
- Diffondibile tramite email, telefono, chat ecc.
- Implentazione modificando il codice HTML/php di SERWEB
Tesi di Laurea in Ingegneria Elettronica
18/22
Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e
creazione del wiki per utenti e sviluppatori
Gaetano Sorrentino
SERWEB – Personalizzazione & Localizzazione
• Distribuito originariamente in Inglese, Tedesco, Ceco
• Localizzazione italiana dell’interfaccia e delle email inviate :
- modifiche ai file mail_register.txt, mail_forgot_pass_conf.txt, mail_forgot_pass_pass.txt
- creazione del file italiano-utf-8.php
• Personalizzazione con un footer comune a tutte le pagine :
-Modifica del codice html nel file
/tamplate/_tail.tpl
Tesi di Laurea in Ingegneria Elettronica
19/22
Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e
creazione del wiki per utenti e sviluppatori
Gaetano Sorrentino
SERWEB – Personalizzazione & Localizzazione
Risultato finale
Tesi di Laurea in Ingegneria Elettronica
20/22
Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e
creazione del wiki per utenti e sviluppatori
Gaetano Sorrentino
Il Wiki
• Pubblicazione di Sapientel
• Interazione tra utenti
• Aggiornabile da chiunque
• Istruzioni d’uso e documentazione
• Sezioni dedicate agli utenti e team di sviluppo
Tesi di Laurea in Ingegneria Elettronica
Basato su www.pmwiki.org
21/22
Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e
creazione del wiki per utenti e sviluppatori
Gaetano Sorrentino
CONCLUSIONI
• Proseguimento del progetto Sapientel iniziato dai colleghi A.Calvo e
continuato da A.Fiaschi.
• Approfondimento degli aspetti teorici di alcuni componenti, inserimento di
nuovi e al contempo renderli funzionanti per garantire al meglio a Sapientel, il
funzionamento per cui è stato ideato.
• Avere un server VoIP funzionante per la Facoltà di Ingegneria.
• Diffusione del progetto per ulteriori sviluppi tramite il wiki.
Tesi di Laurea in Ingegneria Elettronica
22/22
Fly UP