Session Initiation Protocol Σχεδίαση και υλοποίηση συστήματος τηλεφωνίας VoIP με χρήση πρωτοκόλλου SIP. Ξέστερνος Χρυσόστομος Οκτώβριος 2007 Υπεύθυνος καθηγητής : Πρεζεράκος Γεώργιος
Session Initiation Protocol Το Πρωτόκολλο Έναρξης Συνδιάλεξης ή SIP (Session Initiation Protocol) το οποίο περιγράφεται στο (RFC 3261) είναι ένα πρωτόκολλο, επιπέδου εφαρμογών, ελέγχου (σηματοδοσίας) εγκαθίδρυσης, διαχείρισης, και τερματισμού συνδιαλέξεων (sessions) μεταξύ δύο ή περισσοτέρων συμμετεχόντων. Συνδιαλέξεις: voice sessions, video sessions, instant text messaging sessions και γενικότερα οποιαδήποτε άλλη ανταλλαγή multimedia πληροφοριών. RFCs: Αιτήσεις Υποβολής Σχολίων (Request for Comments)
Χρησιμοποιείται πίσω από πολλές εφαρμογές πολυμέσων όπως : Voice over IP (VoIP) voicemail Instant messaging presence IPTV Network gaming Πρωτόκολλο πυρήνας του IP Multimedia Subsystem (IMS), η βάση του 3 rd Generation Partnership Program (3GPP) για ενσύρματα και ασύρματα δίκτυα τηλεφωνίας. 3GPP : καθορισμός προδιαγραφών για ένα παγκόσμια εφαρμόσημο 3G σύστημα κινητής τηλεφωνίας IMS : framework για μετάδοση IP πολυμέσων σε mobile χρήστες. IMS Εξέλιξη των δικτύων κινητής τηλεφωνίας πέρα από το GSM
IMS U I U QS SIP S API I W CSPSTN B C C
NGN (Next Generation Network) 1 ο Βήμα : Σύγκλιση internet και fixed networks 3GPP SIP-based IMS 2 ο Βήμα : Tispan + 3GPP Αρμονικό IMS-κεντρικό πυρήνα για ασύρματα και ενσύρματα δίκτυα Telecoms & Internet converged Services & Protocols for Advanced Networks European Telecommunications Standards Institute
Το NGN υπόσχεται απλοποιημένο μοντέλο υπηρεσιών. Content and Services Servers... IP Core UMTS Access GSM/EDGE Access WiFi/WiMax xdsl Access Broadcast PSTN / ISDN
Κύριες λειτουργίες ουργες εός ενός πρωτόκολλου ου σηματοδοσίας ας : Εντοπισμός τερματικών Επικοινωνία για διευκρίνιση επιθυμίας συμμετοχής σε ένα session Ανταλλαγή πληροφοριών Μετατροπή υπαρχόντων multimedia sessions Τερματισμός sessions Το SIP έχει επεκταθεί στην : Δημοσιοποίηση και μετάδοση πληροφορίας ρ παρουσίας (publishing). Απαίτηση μεταφοράς πληροφορίας (requesting). Ειδοποίηση παρουσίας και διαφόρων άλλων γεγονότων (notification). Μεταφορά άμεσων μηνυμάτων (instant messaging). Sip Communicator : audio/video internet τηλέφωνο και instant messenger το οποίο υποστηρίζει SIP
Η IETF (Internet Engineering Task Force) : Ομάδα Εργασίας Μηχανικών Internet συστήνει επιτροπή για την σχεδίαση ενός απλούστερου τρόπου μετάδοσης της φωνής μέσω IP. μιας και το Η.323 θεωρήθηκε τυπικό προϊόν των τηλεπικοινωνιακών εταιρειών μεγάλο, περίπλοκο, και άκαμπτο. αποτέλεσμα: το SIP Ομοιότητα στο σύνολο των χαρακτηριστικών Ομοιότητα στο σύνολο των χαρακτηριστικών μεταξύ Η.323 και SIP, διαφορετική όμως φιλοσοφία
Session Initiation Protocol Proposed standard Πολλαπλές ανεξάρτητες υλοποιήσεις που χρησιμοποιούν το SIP Δοκιμασίες ελέγχου δυνατότητας σύνδεσης επικοινωνίας μεταξύ τους Λειτουργική επιτυχία; Draft standard SIPit 17 Στοκχόλμη, Σουηδία Σεπτέμβριος 2005 : Επόμενο SIPit : Beijing, China
Ενσωματώνει στοιχεία δύο ευρέως χρησιμοποιούμενων διαδικτυακών πρωτοκόλλων: Client-server HTTP (Hyper Text Transport Protocol) URIs SMTP (Simple Mail Transport Protocol) text-encoding Η στοίβα διαδικτυακού πρωτοκόλλου πολυμέσων : SIP Header style Αλληλεπιδράσεις : TCP (transmission Control Protocol) IP (internet t protocol) UDP (user datagram protocol) SIP DNS (domain name system) TLS (transport layer security)
URLs και URIs Ενιαίος Εντοπιστής Πόρων ή URL (Uniform Resource Locator) : παγκόσμιο όνομα κάθε ιστοσελίδας. Οι διευθύνσεις URL έχουν τρία μέρη: το πρωτόκολλο ( scheme ), το όνομα DNS της μηχανής στην οποία βρίσκεται η σελίδα, και ένα τοπικό όνομα. Τα περισσότερα πρωτόκολλα αναφέρονται σε URLs, όμως με το SIP αναφερόμαστε κυρίως σε URIs (Uniform Resource Identifiers). Θέλουμε να προσδώσουμε ευκινησία: ένα (URI) δεν είναι συνδεδεμένο με μια φυσική συσκευή. Είναι μία λογική ύπαρξη που μετακινείται και αλλάζει τοποθεσία μέσα στο διαδίκτυο. Παραδείγματα: sip:alan@wcom.com sip:j.t. Kirk <kirk@starfleet.gov> sip:+1-613-555-1212@wcom.com;user=phone sip:guest@10.64.1.1 pg sip:790-7360@wcom.com;phone-context=vnet
Παράδειγμα μιας απλής εγκαθίδρυσης συνδιάλεξης : SIP User Agent 1: SIP User Agent 2:
147.132.42.18132 42 18 147.132.42.19132 42 19 Η πορεία των μηνυμάτων μ σηματοδοσίας ανεξάρτητη από την πορεία των media. (Χωρισμός του καναλιού ελέγχου και του καναλιού φορέων). ) Το SIP : ένα end-to-end πρωτόκολλο σηματοδοσίας (όχι αναγκαία η ύπαρξη SIP δικτύου-servers): Η client server φύση του SIP πρωτοκόλλου: Όταν ο Tesla δημιουργεί το INVITE αίτημα, ενεργεί ως SIP client. Όταν ο Marconi ανταποκρίνεται στο αίτημα, ενεργεί ως SIP server. Αφότου εγκαθιδρύεται η media σύνοδος, o Marconi δημιουργεί το BYE αίτημα και πράττει ως SIP client, ενώ ο Tesla ενεργεί ως SIP server όταν αποκρίνεται. Γι αυτό οι SIP-enabled συσκευές : περιέχουν SIP server + SIP client λογισμικό
Το μήνυμα INVITE περιέχει τα παρακάτω πεδία: Το INVITE είναι ένα παράδειγμα ενός SIP μηνύματος αίτησης. Υπάρχουν 4 άλλες μέθοδοι ή τύποι SIP αιτημάτων που καθορίζονται αυτήν την στιγμή στην SIP προδιαγραφή RFC 3261 και άλλες στις επεκτάσεις RFCs.
SIP μήνυμα Εφόσον το SIP είναι text encoded πρωτόκολλο, αυτή είναι στην πραγματικότητα η μορφή του SIP μηνύματος στην γραμμή μετάδοσης. Τα πεδία επικεφαλίδας (header fields) ενός SIP μηνύματος. Έχουν την μορφή Header: Value. Via : Κάθε SIP συσκευή η οποία προωθεί ένα SIP μήνυμα δηλώνει την διεύθυνση της σε ένα VIA πεδίο. Max-Forwards : αρχικοποιείται με κάποιο μεγάλο ακέραιο αριθμό και μειώνεται από κάθε SIP server, ο οποίος λαμβάνει και διαβιβάζει το αίτημα, και παρέχει απλή ανίχνευση βρόχων. To From : παρουσιάζουν το δημιουργό και προορισμό του SIP αιτήματος. Call-ID : προσδιοριστικό που χρησιμοποιείται για να παρακολουθήσει μια συγκεκριμένη SIP συνδιάλεξη. CSeq : Περιέχει έναν αριθμό, που ακολουθείται από το όνομα μεθόδου, INVITE σε αυτήν την περίπτωση. Αυτός ο αριθμός αυξάνεται για κάθε νέο αίτημα που στέλνεται.
SDP(Session Description Protocol) parameters: Περιγραφή παραμέτρων αρχικοποίησης streaming media. IP διεύθυνση σύνδεσης (100.101.102.103); Media format (audio); Port number (49170); MEDIA transport protocol (RTP); Sampling rate (8,000 Hz).
180 Ringing
200 OK
ACK BYE
Sip κλήση με Proxy Server To SIP βασίζεται σε μία δομή που αποτελείται από servers, οι οποίοι πρέπει: 1. να γνωρίζουν τις τοποθεσίες των χρηστών και 2. να είναι υπεύθυνοι για την προώθηση των SIP μηνυμάτων προς τον τελικό τους προορισμό. Statefull Proxying Stateless Proxying
Stateful Stateless proxying Αν ο proxy είναι stateful, απαντά με ένα 100 trying μήνυμα για να ενημερωθεί ο client πως παραλήφθηκε το μήνυμα και δεν χρειάζεται να ανησυχεί για τις hop-by-hop p αναμεταδόσεις. Υστερα κοιτάει για την διεύθυνση του client από το SIP URI. Και εφόσον υπάρχει προωθεί το μήνυμα προς την ίδια διεύθυνση. Αντίθετα αν ο proxy είναι stateless τότε δεν απαντά με 100 trying, και τον ρόλο της επανάληψης μετάδοσης των χαμένων μηνυμάτων αναλαμβάνουν τα τερματικά. Διανομή πληροφοριών : Εγκαθίδρυση συνδιάλεξης : Unicast δρομολόγηση : Multicast δρομολόγηση : Η πολλαπλή διανομή είναι πάντα UDP, μιας και τα handshake και acknowledgements του TCP δεν είναι δυνατόν να πραγματοποιηθούν.
Εργαλεία που χρησιμοποιήθηκαν : Java Development Kit (JDK) 1.6.0 Netbeans IDE(integrated development environment) 5.5 Java Media Framework 2.1.1e 1e API Java Runtime Environment (JRE) 1.6.0 JAIN-SIP API βασισμένο στο NIST SIP stack
JAVA Βασικό πλεονέκτημα της Java έναντι των περισσοτέρων άλλων γλωσσών: H ανεξαρτησία του λειτουργικού συστήματος και πλατφόρμας. James Gosling, 1991 Τα προγράμματα που είναι γραμμένα σε Java τρέχουνε ακριβώς το ίδιο σε Windows, Linux, Unix και Macintosh (σύντομα θα τρέχουν και σε Playstation καθώς και σε άλλες παιχνιδομηχανές) χωρίς να χρειάζεται να ξαναγίνει (compiling) ή να αλλάξει ο πηγαίος κώδικας. Για να είναι όμως κατανοητά τα Java προγράμματα από οποιοδήποτε επεξεργαστή αλλά και λειτουργικό σύστημα, αναπτύχθηκε το Virtual Machine το οποίο παίρνει το bytecode, στο οποίο μετατρέπεται ο πηγαίος κώδικας όταν μεταγλωττιστεί, και το μεταφράζει σε γλώσσα και εντολές μηχανής. javac VM Java source code compile Bytecode (.class) interpret assembly
Βήματα ανάπτυξης λογισμικού
JMF Το Java Media Framework (JMF) παρέχει : μία ενιαία αρχιτεκτονική και ένα πρωτόκολλο διαχείρισης της απόκτησης, επεξεργασίας, και παράδοσης των time-based media δεδομένων. Έχει σχεδιαστεί για να υποστηρίξει τους περισσότερους τύπους πολυμέσων, όπως AIFF, AU, AVI, GSM, MIDI, MPEG, QuickTime, RMF, και WAV. Το JMF χρησιμοποιεί αυτό το ίδιο βασικό πρότυπο. Μια πηγή δεδομένων (data source) περιέχει το media stream σαν μια video κασέτα και ένας φορέας (player) παρέχει τους μηχανισμούς επεξεργασίας και ελέγχου παρόμοιους με ένα VCR. Η αναπαραγωγή και η σύλληψη audio και video με JMF απαιτούν τις κατάλληλες συσκευές εισαγωγής και παραγωγής όπως τα μικρόφωνα, οι κάμερες, μικρόφωνα, και οθόνες.
Media Tool GUI Playing and capturing audio Dual Communication Media distribution over Internet Time Based Media
Sip Communicator Jain SIP Οποιοσδήποτε είναι ελεύθερος να εφαρμόσει το πρωτόκολλο σε οποιαδήποτε γλώσσα, ως εκ τούτου να καθορίσει τη δική του διεπαφή για την εφαρμογή της καθορισμένης συμπεριφοράς του πρωτοκόλλου όπως περιγράφονται από τα πρότυπο IETF. Ενώ η προδιαγραφή IETF εξασφαλίζει διαλειτουργικότητα μεταξύ των στοιβών,, δεν εξετάζει τη διαλειτουργικότητα των εφαρμογών στους σωρούς. Το JAIN SIP ικανοποιεί αυτήν την ανάγκη στη γλώσσα προγραμματισμού JAVA. Εξασφαλίζει διαλειτουργικότητα μεταξύ των στοιβών και διαλειτουργικότητα των εφαρμογών στις στοίβες (portability). JAIN SIP Messaging Architecture:
Γιατί SIP τώρα; ; Ασφαλές. Για το επίπεδο ασφάλειας που παρέχει (TLS). Δημοφιλές. Έχει υιοθετηθεί θ και υποστηρίζεται πλέον από οργανισμούς κλειδιά στην βιομηχανία των ηλεκτρονικών υπολογιστικών συστημάτων και επικοινωνιών. Απλό. Βασίζεται σε ένα μοντέλο άμεσης (request-response) αλληλεπίδρασης, διευκολύνοντας το έργο των προγραμματιστών. Επεκτάσιμο. Μπορεί να διευθετήσει session οποιουδήποτε τύπου. Ευέλικτο. Επιτρέπει στους προγραμματιστές να αλληλεπιδρούν με τα μηνύματα (μέσα σε κάποια όρια) χωρίς να επηρεάζεται η εφαρμογή του πρωτοκόλλου. Οικείο. Δανείζεται χαρακτηριστικά από το HTTP και άλλα πρότυπα του internet, πολλές web-like τεχνολογίες μπορούν να χρησιμοποιηθούν κατά την εφαρμογή του SIP. H ανάπτυξη εφαρμογή SIP μοιάζει χαρακτηριστικά με την ανάπτυξη μίας διαδικτυακής εφαρμογής.
Ευχαριστώ!