Facoltà di Ingegneria Supporto di ENUM, NAT e Audioconferenze per architettura SIP-Sapientel, e...

23
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

Transcript of Facoltà di Ingegneria Supporto di ENUM, NAT e Audioconferenze per architettura SIP-Sapientel, e...

Page 1: Facoltà di Ingegneria Supporto di ENUM, NAT e Audioconferenze per architettura SIP-Sapientel, e creazione del Wiki per utenti e sviluppatori 27 Marzo 2007.

Facoltà di Ingegneria

Supporto di ENUM, NAT e Audioconferenze per architetturaSIP-Sapientel, e creazione del Wiki per utenti

e sviluppatori

27 Marzo 2007

RelatoreProf. Alessandro Falaschi

LaureandoGaetano Sorrentino

Page 2: Facoltà di Ingegneria Supporto di ENUM, NAT e Audioconferenze per architettura SIP-Sapientel, e creazione del Wiki per utenti e sviluppatori 27 Marzo 2007.

1/22

Gaetano Sorrentino

Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e creazione del wiki per utenti e sviluppatori

Tesi di Laurea in Ingegneria Elettronica

VOIP – Voice Over Internet ProtocolInstradamento 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

Page 3: Facoltà di Ingegneria Supporto di ENUM, NAT e Audioconferenze per architettura SIP-Sapientel, e creazione del Wiki per utenti e sviluppatori 27 Marzo 2007.

2/22

Gaetano Sorrentino

Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e creazione del wiki per utenti e sviluppatori

Tesi di Laurea in Ingegneria Elettronica

SIP – Session Initiation ProtocolIl 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)

SIP H.323

- 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]

- 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]

Vengono preferiti protocollistandardizzati.

In Sapientel si è scelto di affidarsi al protocollo SIP

Breve confronto SIP-H323

Page 4: Facoltà di Ingegneria Supporto di ENUM, NAT e Audioconferenze per architettura SIP-Sapientel, e creazione del Wiki per utenti e sviluppatori 27 Marzo 2007.

3/22

Gaetano Sorrentino

Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e creazione del wiki per utenti e sviluppatori

Tesi di Laurea in Ingegneria Elettronica

SAPIENTEL – Cosa è

• Server VoIP in ambito accademico

• Progetto iniziato 2 anni fa

Scopi : - Comunicazione tra studenti, Docenti, ricercatori ecc. - Mobilità - Raggiungibilità

Architettura

Page 5: Facoltà di Ingegneria Supporto di ENUM, NAT e Audioconferenze per architettura SIP-Sapientel, e creazione del Wiki per utenti e sviluppatori 27 Marzo 2007.

4/22

Gaetano Sorrentino

Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e creazione del wiki per utenti e sviluppatori

Tesi di Laurea in Ingegneria Elettronica

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

• Videoconferenze (sperimentale) con OpenMCU

• Raggiungibilità al proprio numero di telefono fisso tramite ENUM

Page 6: Facoltà di Ingegneria Supporto di ENUM, NAT e Audioconferenze per architettura SIP-Sapientel, e creazione del Wiki per utenti e sviluppatori 27 Marzo 2007.

5/22

Gaetano Sorrentino

Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e creazione del wiki per utenti e sviluppatori

Tesi di Laurea in Ingegneria Elettronica

SAPIENTEL – Novità

Differenze tra la precedente versione di Sapientel e l’attuale

SapientelIeri

SapientelOggi

- SIP server usando OpenSER - SIP server usando SER

- Database MySql - Database MySql

- Interfaccia web: SERweb adattato a Openser

- Interfaccia web: SERweb personalizzato e localizzato

- Nessun media server - Audioconferenze tramite SEMS

- Videoconferenze tramite OpenMCU

- Nessun supporto ENUM - Supporto ENUM

- Nessun supporto NAT - Supporto NAT tramite

Mediaproxy

- Restrizione degli accessi tramite email

- Restrizione degli accessi tramite

gettone di autorizzazione

Page 7: Facoltà di Ingegneria Supporto di ENUM, NAT e Audioconferenze per architettura SIP-Sapientel, e creazione del Wiki per utenti e sviluppatori 27 Marzo 2007.

6/22

Gaetano Sorrentino

Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e creazione del wiki per utenti e sviluppatori

Tesi di Laurea in Ingegneria Elettronica

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

Page 8: Facoltà di Ingegneria Supporto di ENUM, NAT e Audioconferenze per architettura SIP-Sapientel, e creazione del Wiki per utenti e sviluppatori 27 Marzo 2007.

7/22

Gaetano Sorrentino

Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e creazione del wiki per utenti e sviluppatori

Tesi di Laurea in Ingegneria Elettronica

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)

• Implementazione agendo sul file ser.cfg

fifo_db_url="mysql://utente:password@localhost/ser“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();

Page 9: Facoltà di Ingegneria Supporto di ENUM, NAT e Audioconferenze per architettura SIP-Sapientel, e creazione del Wiki per utenti e sviluppatori 27 Marzo 2007.

8/22

Gaetano Sorrentino

Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e creazione del wiki per utenti e sviluppatori

Tesi di Laurea in Ingegneria Elettronica

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

Page 10: Facoltà di Ingegneria Supporto di ENUM, NAT e Audioconferenze per architettura SIP-Sapientel, e creazione del Wiki per utenti e sviluppatori 27 Marzo 2007.

9/22

Gaetano Sorrentino

Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e creazione del wiki per utenti e sviluppatori

Tesi di Laurea in Ingegneria Elettronica

SER – ENUMAlgoritmo 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.orgIN NAPTR 10 100 “u” “E2U+sip” “!^.*$!sip:[email protected]!”

URI SIP finale da chiamare:sip:[email protected]

Page 11: Facoltà di Ingegneria Supporto di ENUM, NAT e Audioconferenze per architettura SIP-Sapientel, e creazione del Wiki per utenti e sviluppatori 27 Marzo 2007.

10/22

Gaetano Sorrentino

Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e creazione del wiki per utenti e sviluppatori

Tesi di Laurea in Ingegneria Elettronica

SER – ENUM (RFC 3761)

Le URI vengono associate ai nomi DNS (corrispondenti ai numeri E.164)mediante i record NAPTR (Naming Authority Pointer)

• 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."); };};

$ORIGIN 2.8.4.5.8.5.4.4.6.0.9.3.e164.orgIN NAPTR 10 100 “u” “E2U+sip” “!^.*$!sip:[email protected]!”

Esempio di record NAPTR :

Numero Telefonico(E.164) Nome

DNS

URI

URI

NAPTR ….

ENUMENUM

Page 12: Facoltà di Ingegneria Supporto di ENUM, NAT e Audioconferenze per architettura SIP-Sapientel, e creazione del Wiki per utenti e sviluppatori 27 Marzo 2007.

11/22

Gaetano Sorrentino

Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e creazione del wiki per utenti e sviluppatori

Tesi di Laurea in Ingegneria Elettronica

SER – Attraversamento NAT (Network Address Translation)

• Problema per chi si trova dietro router

• Difficoltà nelle applicazioni end-to-end point

• Causa : il pc in rete lan accede ad internet con l’IP pubblico del NAT/Router

Possibili soluzioni :

• STUN Server (Simple Traversal of UDP through NATs) RFC 3489

• IP forwarding configurando il router

• Triangolazione Mediaproxy

Page 13: Facoltà di Ingegneria Supporto di ENUM, NAT e Audioconferenze per architettura SIP-Sapientel, e creazione del Wiki per utenti e sviluppatori 27 Marzo 2007.

12/22

Gaetano Sorrentino

Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e creazione del wiki per utenti e sviluppatori

Tesi di Laurea in Ingegneria Elettronica

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

• Mediaproxy : - scritto in Python - permette l’uso di DNS srv records, per distribuire il carico - dotato di interfaccia grafica per monitorare il traffico

SOLUZIONESOLUZIONESCELTASCELTA

Page 14: Facoltà di Ingegneria Supporto di ENUM, NAT e Audioconferenze per architettura SIP-Sapientel, e creazione del Wiki per utenti e sviluppatori 27 Marzo 2007.

13/22

Gaetano Sorrentino

Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e creazione del wiki per utenti e sviluppatori

Tesi di Laurea in Ingegneria Elettronica

SER – NAT Traversal : Mediaproxy

Mediaproxy in azione :

• Parte software a sè stante

• Modulo da caricare in SER

• Socket di comunicazione con SER

• Comunicazione RTP transita per il mediaproxy

Implementazione modificando il file di configurazione di SER

Client SIP Client SIP

Proxy SIP

Mediaproxy

RTP

RTP

RTPRTP

SIPSIP

SIPSIP

NATNAT(87.10.123.456)(87.10.123.456)

NATNAT(82.18.123.456)(82.18.123.456)

(192.168.1.3)(192.168.1.3) (192.168.2.6)(192.168.2.6)

socket

Page 15: Facoltà di Ingegneria Supporto di ENUM, NAT e Audioconferenze per architettura SIP-Sapientel, e creazione del Wiki per utenti e sviluppatori 27 Marzo 2007.

14/22

Gaetano Sorrentino

Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e creazione del wiki per utenti e sviluppatori

Tesi di Laurea in Ingegneria Elettronica

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 :

- control layer : per la segnalazione

- media layer : gestione dell’ RTP

Page 16: Facoltà di Ingegneria Supporto di ENUM, NAT e Audioconferenze per architettura SIP-Sapientel, e creazione del Wiki per utenti e sviluppatori 27 Marzo 2007.

15/22

Gaetano Sorrentino

Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e creazione del wiki per utenti e sviluppatori

Tesi di Laurea in Ingegneria Elettronica

SEMS – Applicazioni

• Applicazioni fornite di default con SEMS (non attivate in Sapientel) :

- Voicemail- Mailbox- Ann_b2b- Conf_auth

• 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

Benvenuto in Sapientel, questo è un semplice annuncio che indica il corretto funzionamento…

Page 17: Facoltà di Ingegneria Supporto di ENUM, NAT e Audioconferenze per architettura SIP-Sapientel, e creazione del Wiki per utenti e sviluppatori 27 Marzo 2007.

16/22

Gaetano Sorrentino

Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e creazione del wiki per utenti e sviluppatori

Tesi di Laurea in Ingegneria Elettronica

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

Page 18: Facoltà di Ingegneria Supporto di ENUM, NAT e Audioconferenze per architettura SIP-Sapientel, e creazione del Wiki per utenti e sviluppatori 27 Marzo 2007.

17/22

Gaetano Sorrentino

Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e creazione del wiki per utenti e sviluppatori

Tesi di Laurea in Ingegneria Elettronica

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

Page 19: Facoltà di Ingegneria Supporto di ENUM, NAT e Audioconferenze per architettura SIP-Sapientel, e creazione del Wiki per utenti e sviluppatori 27 Marzo 2007.

18/22

Gaetano Sorrentino

Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e creazione del wiki per utenti e sviluppatori

Tesi di Laurea in Ingegneria Elettronica

SERWEB – Condizionamento per la fruizione dei servizi

• Perché? Per non essere troppo permissivi e consentire l’accesso a chiunque

• Soluzione precedente : controllo tramite email

• Soluzione attualeSoluzione attuale :

- Diffondibile tramite email, telefono, chat ecc.

- Implentazione modificando il codice HTML/php di SERWEB

- Registrazione per i solo possessori di email @uniroma1.it

- Troppo restrittiva, non si accettano soggetti esterni

registrazione previa conoscenza di un gettone di autorizzazione (token)

Page 20: Facoltà di Ingegneria Supporto di ENUM, NAT e Audioconferenze per architettura SIP-Sapientel, e creazione del Wiki per utenti e sviluppatori 27 Marzo 2007.

19/22

Gaetano Sorrentino

Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e creazione del wiki per utenti e sviluppatori

Tesi di Laurea in Ingegneria Elettronica

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

Page 21: Facoltà di Ingegneria Supporto di ENUM, NAT e Audioconferenze per architettura SIP-Sapientel, e creazione del Wiki per utenti e sviluppatori 27 Marzo 2007.

20/22

Gaetano Sorrentino

Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e creazione del wiki per utenti e sviluppatori

Tesi di Laurea in Ingegneria Elettronica

SERWEB – Personalizzazione & Localizzazione

Risultato finale

Page 22: Facoltà di Ingegneria Supporto di ENUM, NAT e Audioconferenze per architettura SIP-Sapientel, e creazione del Wiki per utenti e sviluppatori 27 Marzo 2007.

21/22

Gaetano Sorrentino

Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e creazione del wiki per utenti e sviluppatori

Tesi di Laurea in Ingegneria Elettronica

• Pubblicazione di Sapientel

• Interazione tra utenti

• Aggiornabile da chiunque

• Istruzioni d’uso e documentazione

• Sezioni dedicate agli utenti e team di sviluppo

Il Wiki

Basato su www.pmwiki.org

Page 23: Facoltà di Ingegneria Supporto di ENUM, NAT e Audioconferenze per architettura SIP-Sapientel, e creazione del Wiki per utenti e sviluppatori 27 Marzo 2007.

22/22

Gaetano Sorrentino

Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e creazione del wiki per utenti e sviluppatori

Tesi di Laurea in Ingegneria Elettronica

• 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.

CONCLUSIONI