VoIP H.323 / SIP Ιωάννης Αναγνωστόπουλος
Στρώµα Μεταφοράς
Στρώµα Μεταφοράς TSAP TPDU NSAP
Τύποι υπηρεσιών µεταφοράς
User Datagram Protocol (UDP) Το UDP µεταδίδει τµήµατα (segments) segment header 8 byte + payload UDP Header
User Datagram Protocol (UDP) Τι παρέχει ιασύνδεση µε το IP πρωτόκολλο, µε την πρόσθετη ευκολία της αποπολύπλεξης πολλαπλών διεργασιών µέσω των θυρών επικοινωνίας Τι δεν παρέχει Έλεγχο ροής Έλεγχο σφαλµάτων υνατότητα επαναµετάδοσης ενός εσφαλµένου segment (χρονισµός)
TCP Header
Real-time Transport Protocol (RTP) Πρωτόκολλο µεταφοράς δεδοµένων πραγµατικού χρόνου για πολλαπλές εφαρµογές Ραδιόφωνο / Τηλεφωνία µέσω Internet Teleconferences / Videoconferences Video on demand και άλλες πολυµεσικές εφαρµογές
Real-time Transport Protocol (RTP) Σε ποιο επίπεδο βρίσκεται? Το RTP υλοποιείται στο επίπεδο µεταφοράς εκτελείται στο χώρο του χρήστη και συνδέεται µε το πρόγραµµα εφαρµογής λειτουργεί ανεξάρτητα από την εφαρµογή παρέχοντας υπηρεσίας µεταφοράς Ηβασική λειτουργία του RTP είναι η πολύπλεξη πολλαπλών ροών δεδοµένων πραγµατικού χρόνου σε µια µορφή πακέτων UDP. payload: π.χ. δείγµατα ροής ήχου µε πολλαπλές κωδικοποιήσεις (δέλτα, PCM, mp3) εν παρέχει έλεγχο ροής/σφαλµάτων, µηχανισµούς χρονισµού εν επιβάλλεται επανεκποµπή σε περίπτωση απώλειας ενός µέγιστου αριθµού πακέτων (interpolation) Επιτρέπεται η πολυδιανοµή της ροή των UDP πακέτων
RTP Header
Τι παρέχει Πληροφορίες ανάδρασης Real-time Transport Control Protocol (RTCP) Παρέχει πληροφορίες στις πηγές σχετικά µε την καθυστέρηση, την παραµόρφωση χρονισµού, το εύρος ζώνης, την συµφόρηση Παροχή συνεχούς ανάδρασης βελτίωση της απόδοσης των διεργασιών (θέµατα QoS) Συγχρονισµό διαφορετικών ροών Συγχρονίζει ροές µε διαφορετικούς µετρητές, διαφορετικά επίπεδα στάθµισης και ρυθµούς διολίσθησης Μηχανισµό ονοµασίας διαφορετικών πηγών Παροχή πληροφορίας απ ευθείας στο επίπεδο εφαρµογής (οθόνη χρήστη) Τι δεν παρέχει εν µεταφέρει δεδοµένα
Τύποι µηνυµάτων RTCP 200/201 αποστολή της απόλυτης χρονοσφραγίδας, απαραίτητη για τον συγχρονισµό µεταξύ αποστολέα/παραλήπτη µε πολλαπλά διαφορετικά ρεύµατα 202 π.χ. user@host, {όνοµα_σύνδεσης@όνοµα_περιοχής, PC, IP} και άλλες πληροφορίες όπως e-mail address, αριθµός τηλεφώνου, γεωγραφική περιοχή, software/hardware παραγωγής ρεύµατος ροής κλπ 203 bye 204 π.χ. µήνυµα για υπότιτλους για ένα video stream
Αρχιτεκτονικό µοντέλο του H.323 zone Gatekeeper Multipoint Control Unit Terminal Packet Based Networks Gateway Circuit Switched Telephone Network H.323 Components: Gateway, terminals, zone, gatekeeper
Τα συστατικά µέρη του H.323 H.323 Terminals Οι συσκευές (endpoints) που επικοινωνούν. Πρέπει να υποστηρίζουν: H.245 call control signaling RTP/RTCP for media packets Audio codecs (προαιρετικά και video codecs) H.323 Gateways Παρέχουν: µετάφραση µεταξύ οντοτήτων ενός δικτύου µεταγωγής πακέτων (π.χ. IP network) και ενός δικτύου µεταγωγής κυκλώµατος (π.χ. τηλεφωνικό δίκτυο PSTN) µετάφραση πλαισίων µεταφοράς µετάφραση κωδικοποίησης/αποκωδικοποίησης (codec translation) H.323 Multipoint Control Units (MCUs) Υποστηρίζουν και ελέγχουν επικοινωνία τριών ή περισσοτέρων endpoints (teleconferences) Multipoint Controller (MC) λειτουργίες ελέγχου Multipoint Processor (MP) λήψη / επεξεργασία ροών δεδοµένων
H.323 Gatekeepers ΤΕΧΝΟΛΟΓΙΑ ΤΗΣ ΕΠΙΚΟΙΝΩΝΙΑΣ Τα συστατικά µέρη του H.323 Συσκευές που έχουν υπό τη δικαιοδοσία τους κάποιο συγκεκριµένο σύνολο από endpoints (zone) τα οποία να δηλώνουν την παρουσία τους και να λαµβάνουν έγκριση από τον Gatekeeper πριν την πραγµατοποίηση κλήσης. Λειτουργίες που παρέχουν: Address translation Admission control Bandwidth control Zone management Call control signaling (optional) Call authorization (optional) Bandwidth management (optional) Call management (optional)
Στοίβα πρωτοκόλλων H.323 1996 Σύσταση Η.323 από ITU: Συστήµατα και εξοπλισµός οπτικής τηλεφωνίας για δίκτυα τοπικής περιοχής που παρέχουν µη εγγυηµένη ποιότητα υπηρεσιών 1998 Αναθεώρηση της σύστασης H.323 στην σηµερινή µορφή της H.323 Πλήθος συγκεκριµένων πρωτοκόλλων για κωδικοποίηση φωνής, εγκαθίδρυση κλήσεων, σηµατοδοσία και µεταφορά δεδοµένων G.7xx RTP / RTCP H.225 H.245 Q.931 Πατάει πάνω στα πρωτόκολλα UDP / TCP του στρώµατος µεταφοράς
Στοίβα πρωτοκόλλων H.323
G.7xx ΤΕΧΝΟΛΟΓΙΑ ΤΗΣ ΕΠΙΚΟΙΝΩΝΙΑΣ Στοίβα πρωτοκόλλων H.323 ΟΜΙΛΙΑ Σύσταση G.711: PCM (8000 samples/sec) * 8 bit/sample = 64kbps Σύσταση G.723.1: (240 samples/sec) 24 / 20 bytes (προγνωστική κωδικοποίηση) RTP H.245 6,4 / 5,3 kbps ΕΛΕΓΧΟΣ Πρωτόκολλο διαπραγµάτευσης του αλγόριθµου κωδικοποίησης και ρυθµού µετάδοσης για κάθε τερµατικό Q.931 Πρωτόκολλο χαρακτηριστικών τυπικής τηλεφωνίας: εγκαθίδρυση/απόλυση συνδέσεων παροχή τόνων επιλογής, ήχος ειδοποίησης H.225 (Registration/Admission/Status) Πρωτόκολλο ελέγχου επικοινωνίας και ανταλλαγής πληροφοριών µεταξύ terminal και gatekeeper RTCP
VoIP Use Case: PC-to-PC over IP ISP Internet ISP PSTN PSTN USER A Server USER B Modem Modem
Use Case: PC-to-Phone over IP ISP Internet IP Telephony Provider IPTP PSTN Gateway PSTN USER A USER B Modem USER B
Use Case: Phone-to-Phone over IP Management IP Network Gateway Gateway PSTN Network of IP Telephony Service Provider PSTN USER AUSER B USER A USER B USER B
Παράδειγµαεπικοινωνίας endpoints A - B USER A zone Gatekeeper Multipoint Control Unit Terminal Packet Based Networks Gateway Circuit Switched Telephone Network USER B
USER A USER B Gatekeeper Gateway H.225 Req. Gatekeeper H.225 Send IP to A H.225 Registration H.225 Reg. Accepted H.225 Req. B/W H.225 Provide B/W Q.931 - SETUP (tel no. B) Q.931 - Call Proceed. Q.931 - SETUP (tel no. B) Call B (PSTN) Q.931 - Alert Q.931 - Connect
USER A USER B Κανάλι ελέγχου κλήσης Η.245 Gateway Κανάλι ροής δεδοµένων RTP Κανάλι ελέγχου δεδοµένων RTCP
Το πρωτόκολλο SIP (Session Initiation Protocol) SIP Σύσταση της IETF (Internet Research Task Force) Πρωτόκολλο για αντικατάσταση ή συµπλήρωση της πολύπλοκης στοίβας πρωτοκόλλων που ορίζει το H.323 Μεταφέρει ήχο / εικόνα / δεδοµένα Παρέχει λειτουργίες µόνο για εγκαθίδρυση, διαχείριση και απόλυση συνδιαλέξεων (sessions) Πρωτόκολλο επιπέδου εφαρµογών Εκτελείται πάνω από το UDP ή το TCP
SIP Architecture SIP Components Location Server Redirect Server Registrar Server PSTN User Agent Proxy Server Proxy Server Gateway
Τα συστατικά µέρη του SIP User Agent Μια διεργασία η οποία αρχικοποιεί (initiates), λαµβάνει (receives) και τερµατίζει (terminates) κλήσεις User Agent Clients (UAC) Αρχικοποίηση / Τερµατισµός κλήσης User Agent Servers (UAS) Λήψη / Τερµατισµός κλήσης Proxy Server Ένας µεσολαβητής που δρα και ως server και ως client µε σκοπό να διεκπεραιώσει αιτήµατα (request) εκ µέρους άλλων clients Τα αιτήµατα εξυπηρετούνται είτε εσωτερικά είτε προωθούνται σε άλλους εξυπηρετητές Πραγµατοποιούνται λειτουργίες διερµήνευσης / µετάφρασης πριν την προώθηση Redirect Server Λαµβάνει ένα SIP request, εντοπίζει τον ενδιαφερόµενο client και του µεταδίδει το request εν αρχικοποιεί SIP requests (σε αντιδιαστολή µε τον Proxy Server) εν λαµβάνει / τερµατίζει συνδιαλέξεις (σε αντιδιαστολή µε τον User Agent)
Location Server ΤΕΧΝΟΛΟΓΙΑ ΤΗΣ ΕΠΙΚΟΙΝΩΝΙΑΣ Τα συστατικά µέρη του SIP Χρησιµοποιείται από τους Redirect / Proxy Servers για τη λήψη πληροφοριών σχετικά µε την φυσική τοποθεσία των καλούντων Registrar Server Server που δέχεται αιτήµατα εγγραφής (Register requests) Μπορεί να υποστηρίζει λειτουργίες πιστοποίησης (authentication) Στην αρχιτεκτονική συνήθως τοποθετείται δίπλα σε έναν proxy ή redirect server προσφέροντας και location services
Μηνύµατα Μέθοδοι του SIP Τα συστατικά µέρη του SIP επικοινωνούν ανταλλάσσοντας SIP messages: SIP Methods INVITE Αρχικοποιεί µια κλήση, καλώντας µια συσκευή να συµµετάσχει σε µια συνδιάλεξη ACK Πιστοποιεί ότι ο client έχει λάβει µια τελική απόφαση σχετικά µε το INVITE request BYE Τερµατισµός κλήσης CANCEL Ακύρωση ενός αιτήµατος που εκκρεµεί REGISTER Εγγραφή του user agent OPTIONS Μήνυµα ανίχνευσης των δυνατοτήτων ενός server INFO Μήνυµα για out-of-bound information, όπως π.χ. DTMF digits SIP Responses 1xx - Informational Messages 2xx - Successful Responses 3xx - Redirection Responses 4xx - Request Failure Responses 5xx - Server Failure Responses 6xx - Global Failures Responses
SIP Headers Χρησιµοποιείται η σύνταξη και η σηµασιολογία από το HTTP Ένα SIP message µοιάζει µε ένα HTTP message Πολλές επικεφαλίδες υποστηρίζουν το MIME (Multipurpose Internet Mail Extensions) format ----------------------------------------------------------------- SIP Header ----------------------------------------------------------------- INVITE sip:5120@192.168.36.180 SIP/2.0 Via: SIP/2.0/UDP 192.168.6.21:5060 From: sip:5121@192.168.6.21 To: <sip:5120@192.168.36.180> Call-ID: c2943000-e0563-2a1ce-2e323931@192.168.6.21 CSeq: 100 INVITE Expires: 180 User-Agent: Cisco IP Phone/ Rev. 1/ SIP enabled Accept: application/sdp Contact: sip:5121@192.168.6.21:5060 Content-Type: application/sdp
SIP Addressing Η SIP address καθορίζεται από ένα SIP URL, στο ακόλουθο format: user@host Παραδείγµατα SIP URLs: sip:hostname@192.168.10.1 sip:14083831088@some_company.org sip:name_surname@some_company.org
Εγκαθίδρυση επικοινωνίας Η εγκαθίδρυση της επικοινωνίας στο SIP πρωτόκολλο πραγµατοποιείται συνήθως από 6 βήµατα 1. Εγγραφή, αρχικοποίηση και εντοπισµός χρήστη (user registration, initiation, location) 2. Καθορισµός των µέσων επικοινωνίας (περιγραφή της συνδιάλεξης που καλείται ο χρήστης) 3. Καθορισµός της επιθυµίας για επικοινωνία ή όχι του καλούµενου, (αποστολή accept / reject µηνύµατος) 4. Εγκαθίδρυση σύνδεσης (Call setup) 5. ιαχείριση / τροποποίηση κλήσης 6. Τερµατισµός κλήσης (Call termination)
Εγγραφή (Registration) Κάθε φορά που ο χρήστης ενεργοποιεί τον SIP user client (SIP IP Phone, PC, ή άλλη συσκευή SIP), ο πελάτης εγγράφεται στον proxy/registration server Η λειτουργία της εγγραφής πραγµατοποιείται και όταν ο user client πρέπει να ενηµερώσει τον proxy/registration server για την φυσική του τοποθεσία Η πληροφορία εγγραφής (registration information) ανανεώνεται περιοδικά και κάθε user client πρέπει να επανεγγράφεται στον proxy/registration server Ο proxy/registration server προωθεί την πληροφορία εγγραφής στον location/redirect server SIP Phone User REGISTER 200 Proxy/ Registration Server REGISTER 200 Location/ Redirect Server SIP Messages: REGISTER Registers the address listed in the To header field. 200 OK.
SIP Call Setup and Termination Call Setup Media Path User Agent INVITE 180 (Ringing) 200 (OK) ACK Proxy Server Location/Redirect Server Proxy Server User Agent INVITE 302 (Moved Temporarily) ACK INVITE INVITE 302 (Moved Temporarily) ACK 180 (Ringing) 200 (OK) ACK RTP MEDIA PATH INVITE 180 (Ringing) 200 (OK) ACK Call Teardown BYE BYE BYE 200 (OK) 200 (OK) 200 (OK)
SIP Design Framework Το πρωτόκολλο SIP σχεδιάστηκε έτσι ώστε: Να είναι ολοκληρωµένο µε τα υπάρχοντα πρωτόκολλα της IETF Scalability / Simplicity Mobility Εύκολη δηµιουργία υπηρεσιών
Ολοκλήρωση µε IETF πρωτόκολλα Πρωτόκολλα και συστάσεις της IETF µπορούν να χρησιµοποιηθούν προκειµένου να υλοποιηθεί µια εφαρµογή SIP, όπως: Resource reservation Protocol (RSVP) για δέσµευση πόρων Real-time Transport Protocol (RTP) για µετάδοση δεδοµένων πραγµατικού χρόνου και παροχή QoS Real-time Transport Control Protocol (RTCP) για έλεγχο παράδοσης των ροώβ δεδοµένων Session Advertisement Protocol (SAP) για διαφήµιση πολυµεσικών συνδιαλέξεων µε πολυεκποµπή Session Description Protocol (SDP) για περιγραφή πολυµεσικών συνδιαλέξεων Multipurpose Internet Mail Extension (MIME) περιγραφή περιεχοµένου στο Internet Hypertext Transfer Protocol (HTTP) Common Open Policy Service (COPS) Open Settlement Protocol (OSP)
Scalability / Simplicity Η αρχιτεκτονική SIP είναι εξελικτική (scalable), ευέλικτη (flexible) και κατανεµηµένη (distributed) Οι λειτουργίες proxy, redirection, location και registration µπορούν να ανατεθούν σε διαφορετικούς servers Οι κατανεµηµένες λειτουργίες επιτρέπουν την προσθήκη νέων διεργασιών χωρίς να υπάρχει επίδραση στα υπόλοιπα µέρη της αρχιτεκτονικής Text-based easy implementation and debugging Mobility Το SIP παρέχει λειτουργίες mobility στο χρήστη, µέσω των τεχνικών proxy και των αιτήσεων για redirection στην τρέχουσα φυσική θέση του χρήστη Ο χρήστης µπορεί να χρησιµοποιεί: PC γραφείο/οικία, wireless/regular phone ή IP phone Ο χρήστης πρέπει να δηλώνει τη φυσική του θέση Ο proxy server αναλαµβάνει να προωθεί τις κλήσεις στην τρέχουσα φυσική θέση του χρήστη
Εύκολη δηµιουργία υπηρεσιών Ένα SIP-based σύστηµα παρέχει υποστήριξη για γρήγορη ανάπτυξη λειτουργιών και υπηρεσιών µε χρήση: Call Processing Language (CPL) Common Gateway Interface (CGI) Το πρωτόκολλο SIP υποστηρίζει µερικές εφαρµογές όπως: Βασικές λειτουργίες κλήσεις (call waiting, call forwarding, call blocking κλπ) Unified messaging Call forking? Click to talk. Presence Instant messaging Find me / Follow me