Session Initiation Protocol (SIP) SIP 1
Outline Signalling generalities Signalling in packet networks SIP generalities SIP functionality and architecture SIP components SDP SIP-T SIP 2
Signalling generalities La PSTN risale al 1876 Negli anni si è però evoluta ed arricchita di servizi Fondamentalmente basata su una architettura a commutazione di circuito Architettura della PSTN utilizza due piani funzionali distinti: Piano di trasporto a commutazione di circuito Piano di controllo Piano di trasporto formato (oggi) da autocommutatori di livello 5 e di livello 4 Piano di controllo formato da un complesso di nodi e database Il piano di controllo gestisce il comportamento degli autocommutatori del piano di trasporto e fornisce tutti i servizi della PSTN SIP 3
Architettura PSTN Service Node STP SCP Control plane Transport plane SIP 4
Next Generation Telephone Systems Successiva generazione di sistemi telefonici basata sulle tecnologie di Internet In Internet assenza di un vero e proprio piano di controllo La rete Internet carica di molti problemi da risolvere Sistemi telefonici di nuova generazione faranno uso di reti private basate sulla tecnologia di Internet Possibili per un periodo transitorio soluzioni miste SIP 5
Problemi della VoIP Serve pur sempre un sistema di segnalazione Anzi volendo fornire un complesso molto più ricco di servizi serve un sistema di segnalazione dotato di più ampie potenzialità 1. Trasporto della segnalazione di chiamata su una rete packet switching Internet è best effort ma in telefonia si vuole una garanzia di qualità 2. Controllo della QoS Coesistenza per lungo periodo della PSTN e VoIP 3. Costruzione di una rete PSTN/VoIP SIP 6
Converged Network STP VoIP Control Network VoIP/PSTN Gateway Service Node SCP Control plane Transport plane Trunk line Routed Data Network Residential/Access Gateway PVC SIP 7 Dynamic, routed path SS7 line Other link
Signalling in packet networks H.323 (H.225/H.245) Troppo complesso e pesante per essere scalabile e non sufficientemente flessibile a adattabile SIP Semplice, flessibile e scalabile anche a grandi scenarii Si deve dire però che a poco a poco è diventato complesso quasi tanto quanto H.323 SIP 8
Architettura H.323 SIP 9
Confronto SIP-H.323 SIP H.323 Un componente di un sistema di comunicazioni Una suite completa ed integrata di protocolli di comunicazione Protocollo flessibile integrabile con altri protocolli (IETF) Sistema integrato e chiuso (ITU-T) Progettato come protocollo di WAN Progettato come protocollo di N Diversi concetti derivato da HTTP Componenti derivati da protocolli ITU-T Implementazione facile Implementazione complessa SIP 10
SIP generalities SIP è parte della Internet multimedia conferencing architecture, un set di protocolli che possono essere usati per fornire servizi multimedia SIP 11
SIP generalities (2) L edizione attuale di SIP è la 2.0, definita nella RFC 3261 la quale ha aggiornato la precedente RFC 2543 Molte altre RFC come la 3312 definiscono varie estensioni e dettagli SIP opera a livello Sessione SIP è simile ad HTTP e condivide alcune delle sue idee progettuali: È leggibile dagli uomini Ha una struttura request-response SIP fa uso del paradigma client/server SIP è basato su un modello di transazione SIP 12
Layered Structure SIP può utilizzare come protocollo di trasporto TCP, UDP o SCTP Una transaction è una richiesta trasmessa da una client transaction a una server transaction, insieme a tutte le risposte a quella richiesta trasmesse all indietro dalla server transaction alla client transaction SIP è un protocollo a strati, con tre layers Transaction layer Transport layer Syntax ed Encoding layer SIP 13
Layered Structure (2) Il transaction layer gestisce la ritrasmissione dell application-layer, l abbinamento dei response alle request, e i timeout dell application layer Il transport layer definisce come un client invia delle request e riceve dei response e come un server riceve delle request e invia response sulla rete Il syntax ed encoding layer si trova al livello più basso della struttura di SIP e il suo encoding è specificato con la BNF grammar Ciascun elemento SIP contiene i due layer più bassi, mentre non tutti contengono il transaction layer SIP 14
Various features SIP è un protocollo text based ed usa il set di caratteri UTF-8 che è uno dei tre formati di codifica UNICODE Due tipi di messagi SIP: Request Response Request inviati dai client ai server Response inviati dai server ai client I due tipi di messaggi vengono distinti tra loro in base alla struttura della loro prima linea (start line) SIP 15
SIP Logical Entities User Agent Proxy server Registrar server Redirect server Locator server Media server Applicazione operante sul sistema terminale che contiene un UAC ed un UAS. Lo UAC invia le request SIP ed opera come agente di chiamata per l utente. Lo UAS riceve le request Intermediario e restituisce che agisce le response come Server da parte e come dell utente Client per servire le request presentate dai client o per inoltrarle Consente ad un user di cambiare l address a cui è contattabile. Un client invia al Registar una request Accetta le request SIP ed invia al client un response di deviazione contenente l indirizzo del server successivo. Non viene coinvolto nelle successive fasi di segnalazione. Elabora le request (provenienti da redirect o proxy server) per fornire informazione circa la posizione Noti come Media Gateway e controllabili variamente AAA server Authentication, Authorization, e Accounting SIP 16
Proxy Server Opera a beneficio degli UAC per facilitare l instaurazione delle sessioni Un proxy server può essere stateful o stateless Se stateless è un semplice elemento per il forwarding Se stateful ST = Server Transaction CT = Client Transaction SIP 17
Proxy Server 2, 3 5, 6 Redirect Server Location Service 4 7 1 12 Proxy Server 11 Proxy Server 10 Proxy Server 9 8 Media Transport Protocol SIP 18
Location Server Updates Database Query Response Componente che frequentemente è soltanto logico Riceve gli updates dal Registrar server Scambia queries e responses con il registrar server SIP 19
Registrar Server Registrar Server SIP User Agent Register Request Register Reply Non-SIP Protocol Location Server SIP 20
Redirect Server Elemento usato quando il Proxy server riceve una richiesta di connessione verso un host fuori dalla rete coperta SIP request Redirected URI Redirect Server SIP 21
User Agent SIP 22
Funzionalità di SIP SIP supporta 5 funzioni fondamentali User location: User availability: User capabilities e QoS: Session setup: Identificazione del sistema terminale da usare per la comunicazione Determinazione della disponibilità della parte chiamata ad accettare la comunicazione Determinazione dei media e dei valori da usare per i diversi parametri Ringing, impostazione dei parametri di sessione ad entrambe le estremità Session management: Compreso il trasferimento e la chiusura delle sessioni, la modifica dei parametri di sessione e la richiesta di servizi SIP 23
SIP Logical Entities (2) Componenti chiave: User Agent, Proxy server e Redirect server Un physical device può avere le funzionalità di una o più logical entities Frequentemente un Proxy server è anche Registrar, Locator e Media server SIP 24
Architectural Model SIP UA Public IP Network Proxy Server Registrar UAC UAS Redirect Server Private IP Network SIP UA Location Server UAC UAS SIP 25
Layout Nel caso più semplice si ha SIP 26
Scambio di messaggi Semplificando all estremo, si ha lo scambio di messaggi: SIP 27
SIP Messages Protocollo SIP basato su un modello di transazione Request/Response simile ad http Transazione formata da una Request che invoca un particolare metodo o funzione sul server ed almeno una Response SIP usa diversi metodi REGISTER INVITE ACK CANCEL BYE OPTIONS UPDATE INFO INVITE RE-INVITE SUBSCRIBE UNSUBSCRIBE MESSAGE NOTIFY REFER PRACK PUBLISH SIP 28
Request e Response Ambedue i tipi di messaggi SIP sono formati da: Una Start line Uno o più campi header Una linea vuota che indica la fine dei campi di header Un message body opzionale La start line, le linee dello header e la linea vuota devono essere terminate da un CRLF I due tipi di messaggio SIP request e response sono distinti tra loro in base alla struttura della start line, che è rispettivamente una request line o una status line SIP 29
SIP Request Message INVITE sip:bob@acme.com SIP/2.0 Request line: Method type, request URI (SIP addres of called party), SIP version Via: SIP/2.0/UDP 63.48.57.12:9918; branch=z9.. SIP version, Transport protoco, IP-addr:portl Max-Forwards:70 Contact: <sip:5303171@63.48.57.12:9918> To Bob b. <sip:bob@acme.com> From: Alice A. <sip:alice@radvision.com> Call-ID: 2388990012@alice-ws.radvision.com CSeq: 1 INVITE Subject: Lunch today Massimo numero di proxies o gateways SIP URI che può essere contattata Utente invitato, come specificato all origine Utente che origina la request ID globally unique di questa call Command sequence. Identifica la transazione Soggetto e/o natura della call Content-type: application/sdp Tipo del body (in questo caso SDP) SIP 30
SIP Request Message (cont) Content-Length: 182 Numero di bytes nel body v=0 Versione di SDP Linea vuota di fine degli header SIP O=Alice 53655765 2353687637 IN IP4 128.3.4.5 S=Call from Alice C=IN IP4 alice_ws.radvision.com M=audio 3456 RTP/AVP 0 3 4 5 Owner/creator e session identifier, session version, address type e address Oggetto della sessione Informazioni circa la connessione Descrizione del media: type, port, possibili formati che il caller vuole ricevere e inviare SIP 31
Request e Response (2) Request line Response line Method Request-URI SIP-Version CRLF SIP-Version Status-code Reason-phrase CRLF esempio esempio INVITE sip:bob@acme.com SIP/2.0 SIP/2.0 420 Bad extension La coppia Request/Response viene considerata come unico elemento di una transaction SIP Per questo motivo Request e Respoonse hanno lo stesso formato di intestazione SIP 32
Status Codes I response messages contengono due campi caratteristici Status-Code: intero di tre cifre che indica il risultato della richiesta Reason-Phrase: fornisce una descrizione testuale comprensibile. La prima cifra dello status-code definisce la classe della Response 1xx Provisional, searching, ringing, queueing, etc Provisional 2xx Success 3xx Redirection, forwarding 4xx Request failure (client mistakes) Final 5xx Server failure 6xx Global failure (busy, refusal, not available anywhere) SIP 33
Header Fields Header field formato da field-name seguito da : e field-value field-name: field-value Header fields estendibili su più linee facendo precedere ogni linea aggiuntiva da almeno un SP o un HT Ordine degli header fields non significativo Possibile combinare header fields con lo stesso field-name se separati da, Ordine relativo degli header field con lo stesso field-name significativo Per rapidità di analisi raccomandato porre in testa gli header fields che devono essere elaborati dai proxy server SIP 34
Header Fields (2) Molti header field Quattro tipi: Gli header field in posizione errata sono ignorati Generic header Entity header Request header Response header Alcuni fondamentali e frequenti Call-ID Contact Content-Type Content-Length CSeq Date From Record-Route Reply-To Route Server Subject To Via SIP 35
Header Fields (3) From Route Date Subject Via Call-ID To Indica l iniziatore della request (può essere differente dall iniziatore del dialogo) Usato per forzare il routing di una request attraverso un elenco di proxy Contiene la data e l ora Fornisce un sommario o indica la natura della call Indica il path seguito dalla request fino ad allora e indica quello che dovrebbe essere seguito dalle response Stringa, globalmente unica, generata dall UAC (contiene IP-address o hostname) Identifica l original recipient della request indicato dallo user identificato nel field From. Può non coincidere con lo UAS che elabora la request SIP 36
Body Request e Response possono includere un message body Interpretazione del body dipende dal metodo della request e dal response status code SIP 37
Metodo INVITE Inizia una sessione Il metodo include la descrizione della sessione ed il tipo di informazioni che si vogliono scambiare Vengono inviate informazioni circa il chiamante ed il chiamato nonché circa il tipo di media che si vuole scambiare SIP 38
Metodo ACK Metodo inviato dal client che trasmette il metodo INVITE ACK è trasmesso per confermare che la sessione è stabilita Dopo la trasmissione del metodo ACK si possono scambiare i media SIP 39
Metodo BYE Metodo usato per terminare una sessione Il metodo BYE può essere trasmesso da un uno user qualsiasi SIP 40
Metodo CANCEL Metodo CANCEL usato per annullare una request inviata in precedenza dal client (pending request come può essere in INVITE) Questo metodo richiede all UAS di interrompere la request e di generare un response di tipo error alla request Da usare prima del BYE che terminerebbe la sessione CANCEL non produce effetto su una request alla quale l UAS ha già dato un response finale Siccome le request diverse da INVITE ricevono risposta immediata, mentre INVITE è una request che richiede del tempo, CANCEL non dovrebbe essere inviato per annullare una request diversa da INVITE SIP 41
Metodo REGISTER REGISTER è usato da un client per effettuare il login e registrarsi con un registrar server SIP 42
Metodo OPTIONS Metodo usato per richiedere la capabilities di un server o di altri dispositivi Può essere utilizzato per controllare la capacità (media supportati) prima di trasmettere un INVITE SIP 43
Authentication Le funzioni di SIP sono molto critiche per la gestione della rete L accesso di un eventuale attacker può provocare gravi danni È allora opportuno richiedere che gli utenti di SIP si autentichino prima di svolgere le diverse funzioni di SIP In questo modo nessuno può spacciarsi per un altro Ma, non è opportuno richiedere lo stesso livello di autenticazione per tutti gli utenti e le rispettive funzioni In ogni modo un attacker può sempre condurre un attacco DoS SIP 44
Ricerca del Next Hop Lo UAC può usare un outbound proxy configurato manualmente Outbound proxy può anche essere conosciuto alla registrazione Se la request URI contiene IP-address e porta il messaggio può essere inviato direttamente Diversamente si determina il server SIP del next hop tramite il DNS Richiesta di un record SRV Richiesta di un record A SIP 45
SIP Address Resolution Steps SIP 46
SIP Address Resolution Steps Il proxy controlla il suffisso del domain. Consulta il location servic, usa il DNS per localizzare il remote domain Il DNS fornisce l IP-address del proxy 2 SIP 47
SIP Address Resolution Steps UA 2 convalida il il SIP URI nei confronti degli user attivi per allertare l interessato o rifiutare la connessione SIP 48
Autenticazione È possibile richiedere che gli user SIP users si autentichino fra loro prima che realizzino le varie funzioni SIP Così nessuno può dichiarare di essere un altro Ma, se si richiede l autenticazione per tutte le funzioni, alcune funzionalità di SIP risultano compromesse SIP 49
Registration La registrazione crea dei collegamenti in un location service per un particolare dominio che associa un address-of-record URI con uno o più contact address La registrazione comporta l invio di una request REGISTER ad un tipo speciale di UAS conosciuto come un registrar Un registrar opera come front-end al location service per un dominio, leggendo e scrivendo i mapping basati sul contenuto delle request di tipo REGISTER Questo location service è allora consultato tipicamente dal proxy server responsabile del routing delle request per il domain Un registrar per un dominio DEVE essere capace di leggere e scrivere i dati al location service, e un proxy o un redirect server per quel dominio DEVE essere capace di leggere quei dati SIP 50
Processo di Registrazione bob UA acme.com Registrar 2) Store Location Service 4) Query 5) Response Proxy 3) INVITE alice@acme.com sip.acme.com 1) REGISTER cube2214a UA alice 6) INVITE alice@cube2214a.acme.com SIP 51
Outbound Proxy Un proxy che riceve delle request da un client, anche se può non essere il server risolto dalla Request-URI Tipicamente, uno UA viene configurato manualmente con un outbound proxy, o può conoscerne uno tramite protocolli di auto configurazione L outbound proxy è un normale proxy SIP Voi configurate il vostro client, sia esso un telefono che un software, per usare il proxy per tutte le sessioni SIP, come quando configurate il vostro browser Web ad usare un proxy Web per tutte le transazioni Web In alcuni casi, l outbound proxy è posto a fianco del firewall ed l unico percorso tramite il quale il traffico SIP passa dalla rete interna ad Internet L outbound proxy usato da uno UA può essere configurato automaticamente con il DHCP SIP 52
SIP URI Una URI SIP o SIPS identifica una resource di comunicazione Una URI SIP contiene informazione sufficiente per iniziare e mantenere una sessione di comunicazione con la risorsa Nel caso di una SIP URI, la sua forma generica è: sip:user:password@host:port;uri-parameters,headers user: Identificatore di una particolare resource presso l host indirizzato password: Una password associata con lo user (opzionale) host: L host che fornisce la risorsa SIP port: Il numero di porta cui è inviata la richiesta SIP SIP 53
SIPS Dalla RFC 3261: SIP also provides a secure URI, called a SIPS URI Un esempio potrebbe essere sips:bob@biloxi.com Una call ad una SIPS URI garantisce che si userà un trasporto sicuro e criptato (TL) per il trasporto di tutti i messaggi SIP dal caller al dominio del callee Da qui in poi, la request è inviata in modo sicuro al callee, Ma con meccanismi di sicurezza che dipendono dalla policy del dominio del callee SIP 54
SDP Session Description Protocol [RFC 2327] è il protocollo utilizzato nel body del messaggio SIP per specificare l informazione la codifica usata in una sessione Non comprende meccanismi di trasporto e/o negoziazione Serve a trasferire, in modo definito, le informazioni necessarie ad un sistema per unirsi ad una sessione multimediale Le descrizioni di sessione SDP sono di tipo text-based SIP 55
SDP (2) Una descrizione di sessione formata da una serie di linee di testo: Type = value Type sempre formato da un solo carattere Formato del value dipendente dal Type cui si applica Informazioni a livello di: Session Si applicano all intera sessione Media-level Si applicano ad un particolare media stream Descrizione di sessione con SDP inizia sempre con l informazione session-level SIP 56
SDP (3) Prima linea descrizione session-level v=0 (SDP version 0) v=0 o=bob 2890844526 2890842807 IN IP4 131.160.1.112 s=sip seminar i=a Seminar on the Session Initiation Protocol u=http://www.cs.columbia.edu/sip e=bob@university.edu c=in IP4 224.2.17.12/127 t=2873397496 2873404696 a=recvonly SIP 57
SDP (4) Sezioni media-level formate da linee m e a Iniziano con una linea m (media line) m=<media type> <port number> <transport protocol> <media formats> Linee a (attribute line) trasportano informazioni circa il formato di media usato, come il clock rate o il numero di canali m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 Espansioni possibili di SDP m=video 51372 RTP/AVP 31 a=rtpmap:31 H261/90000 m=video 53000 RTP/AVP 32 a=rtpmap:32 MPV/90000 SIP 58
RFC 3227 types v b o z s k i a u t e r p m c i Protocol version Bandwidth information Owner of the session and session identifier Time zone adjustments Name of the session Encryption key Information about the session Attribute lines URL containing a description of the session Time when the session is active E-mail address to obtain information about the session Times when the session will be repeated Phone number to obtain information about the session Media line Connection information Information about a media line SIP 59
Servizio di Trasporto per SIP SIP... È indipendente dal trasporto Può girare sopra un qualsiasi servizio di trasporto Reliable o unrealiable Message o byte oriented SIP SCTP TCP UDP Connection oriented Connectionless IP SIP 60
Caratteristiche di Trasporto UDP TCP SCTP Fast Retransmit N Y Y Congestion Control N Y Y Transp. layer frag. N Y Y Head of Line Blocking N Y N Easier Parsing Y N Y Multihoming N N Y SIP 61
SIP-T SIP-T = Session Initiation Protocol Telephony Conosciuto in precedenza come SIP+ o SIP BCP-T RFC 3372 - Session Initiation Protocol for Telephones (SIP-T) Context and Architectures SIP-T definisce l interwork tra SIP e ISUP SIP-T consente una negoziazione diretta tra i gateways Informazione trasportata con SDP che opera negli ambienti IP e ATM SIP 62
Scopi di SIP-T Trasporto su IP della segnalazione PSTN MGC 1 IP network SIP enabled MGC 2 SS7 network Proxy SS7 network Proxy Interworking PSTN-IP MGC IP network SIP enabled SS7 network IP (SIP) phone SIP 63
Approcci di SIP-T Due approcci fondamentali: Encapsulation Translation SIP 64
Implementazione di SIP-T SIP-T richiede fondamentalmente tre Extension Estensione del metodo INFO del protocollo base Gestione di servizi complessi Gestioni di eventi nel corso di una chiamata Potenziamento di meccanismi di inizio e terminazione Aggiunta del tipo MIME Necessità di incapsulare segnalazioni legacy Semplificazione dell interworking tra varianti Mappaggio tra ISUP e SIP SIP 65