Υλοποίηση τηλεφωνικού κέντρου με λογισμικό ανοικτού κώδικα

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Υλοποίηση τηλεφωνικού κέντρου με λογισμικό ανοικτού κώδικα"

Transcript

1 Υλοποίηση τηλεφωνικού κέντρου με λογισμικό ανοικτού κώδικα Σπουδαστές: Παντελέινας Σωτήριος Σταμέλλος Γρηγόριος Επιβλέπων καθηγητής Μίζας Χαρίλαος Συνεπιβλέπων καθηγητής Δρ. Παπαδάκης Στυλιανός ΚΑΒΑΛΑ 2008 i

2 Τ.Ε.Ι. ΚΑΒΑΛΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΒΙΟΜΗΧΑΝΙΚΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Υλοποίηση τηλεφωνικού κέντρου με λογισμικό ανοικτού κώδικα ii

3 Ευχαριστίες Με την ευκαιρία της ολοκλήρωσης του παρόντος συγγράμματος θα θέλαμε να ευχαριστήσουμε τους καθηγητές μας, Μίζα Χαρίλαο και Dr. Παπαδάκη Στυλιανό για την ψυχολογική υποστήριξη, την καθοδήγηση και την εκπόνηση της πτυχιακής εργασίας μας. Το βιβλίο αυτό αφιερώνεται στους γονείς μου, τον αδερφό μου και τους φίλους μου για την συμπαράσταση και την κατανοήση τους. Παντελέινας Π. Σωτήριος Ένα μεγάλο ευχαριστώ στους γονείς μου, την αδερφή μου και την φίλη μου Νάνσυ για την συμπαράσταση και την κατανοήση τους. Σταμέλλος Σ. Γρηγόριος iii

4 Καβάλα 2008 : Παντελέινας Σωτήριος Σταμέλλος Γρηγόριος Απαγορεύεται η αντιγραφή, αποθήκευση και διανομή της παρούσας εργασίας, εξ ολοκλήρου ή τμήματος αυτής, για εμπορικό σκοπό. Επιτρέπεται η ανατύπωση, αποθήκευση και διανομή για σκοπό μη κερδοσκοπικό, εκπαιδευτικής ή ερευνητικής φύσης, υπό την προϋπόθεση να αναφέρεται η πηγή προέλευσης και να διατηρείται το παρόν μήνυμα. Ερωτήματα που αφορούν τη χρήση της εργασίας για κερδοσκοπικό σκοπό πρέπει να απευθύνονται προς τους συγγραφείς. Παντελέινας Σωτήριος Σταμέλλος Γρηγόριος iv

5 ΠΕΡΙΕΧΟΜΕΝΑ - ΚΕΦΑΛΑΙΟ 1 0 VOIP 1.1 Ιστορική αναδρομή του VOIP(Voice Over IP)...σελ Ορισμός και ανάλυση του VOIP...σελ Πλεονεκτήματα και μειονεκτήματα του VOIP...σελ Αρχιτεκτονική υλικού (HARDWARE) VOIP...σελ Αρχιτεκτονική λογισμικού (SOFTWARE) VOIP...σελ Ασφάλεια (security) VOIP...σελ Ποιότητα στο VOIP...σελ Εισαγωγή...σελ Διαχείρηση QoS...σελ Βελτίωση επιδόσεων για εφαρμογές Voip...σελ Πρωτόκολλα που χρησιμοποιεί το VOIP...σελ SIP...σελ Εισαγωγή...σελ Ιστορική αναδρομή Εκδόσεις... σελ Τι είναι το SIP εν συντομία..... σελ Αρχιτεκτονική SIP... σελ Παράδειγμα μηνύματος... σελ Πραγματοποίηση κλήσης και τερματισμός...σελ Ανακατεύθυνση κλήσης....σελ Call Proxy....σελ Πλεονεκτήματα πρωτοκόλλου..... σελ H σελ Εισαγωγή σελ Ιστορική αναδρομή Εκδόσεις...σελ Αρχιτεκτονική Η σελ Πλεονεκτήματα του H323.. σελ Πρωτόκολλα που καθορίζει το Η σελ Μετάδοση ήχου κινούμενης εικόνας και δεδομένων σελ H.261 σελ H.263 σελ RTP/ RTCP...σελ 50 v

6 1.8.6 RTSP... σελ SDP.....σελ Σύγκριση SIP με H σελ 53 - ΚΕΦΑΛΑΙΟ 2 0 PBX ελεύθερου λογισμικού 2.1 Εισαγωγή..σελ Λογισμικό ανοικτού κώδικα....σελ Λόγοι επιλογής και πλεονεκτήματα του Asterisk PABX...σελ Σύγκριση λογισμικών κλειστού κώδικα...σελ 68 - ΚΕΦΑΛΑΙΟ 3 0 Εισαγωγή στο Asterisk 3.1 Eισαγωγή...σελ Ορισμός και ανάλυση του Asterisk...σελ Το Asterisk ως ελεύθερο λογισμικό...σελ Το Asterisk ως πλατφόρμα πολύπλεξης με διαίρεση χρόνου (TDM) και ανταλλαγής πακέτων φωνής...σελ Το Asterisk ως PBX (Private Branch Exchange)...σελ Το Asterisk ως σύστημα αμφίδρομης φωνητικής απόκρισης...σελ Το Asterisk ως σύστημα αυτόματης κατανομής κλήσεων (ACD)...σελ Αρχιτεκτονική Asterisk...σελ Τρόπος λειτουργίας του Asterisk...σελ Το Asterisk σε γραφείο...σελ Συνδέοντας το τηλεφωνικό σας σύστημα στο Internet...σελ Συνδέοντας το Asterisk με το PSTN...σελ Το Asterisk ως υψηλή πυκνότητα και IVR Conferesing...σελ Το Asterisk στις επιχειρήσεις...σελ Λειτουργίες και Δυνατότητες του Asterisk...σελ Διεπαφές και κανάλια (Interfaces& Channels)...σελ Υποστηριζόμενες τεχνολογίες...σελ Zaptel Pseudo TDM Interfaces...σελ Non-Zaptel Interfaces...σελ Packet voice Protocols («Πρωτόκολλα πακέτων ήχου»)...σελ 92 vi

7 3.8 Υποστηριζόμενα πρωτόκολλα VoIP από τον Asterisk...σελ Inter-Asterisk Exchange (IAX)...σελ SIP...σελ H σελ Asterisk File System...σελ Υποστηριζόμενα Codec από το Asterisk...σελ Τύποι αρχείων ήχου υποστηριζόμενων από το Αsterisk...σελ 98 - ΚΕΦΑΛΑΙΟ 4 0 Ρυθμίσεις του Asterisk 4.1 EΙΣΑΓΩΓΗ σελ Αρχεία ρυθμίσεων...σελ Σύνταξη των αρχείων ρύθμισης του Asterisk (Configuration File Syntax)...σελ Σχόλια...σελ Γραμμές...σελ Ενότητες (Sections)...σελ Μεταβλητές...σελ Η διαδικασία των ρυθμίσεων....σελ sip.conf.σελ extensions.conf...σελ voic .conf...σελ iax.conf.σελ Dialplans...σελ Ενότητες του extensions.conf...σελ [general]...σελ [globals]...σελ Extensions...σελ Mοτίβα...σελ Εφαρμογές...σελ Εφαρμογές που είναι διαθέσιμες στο extensions.conf...σελ Προτεραιότητες...σελ Contexts...σελ 120 vii

8 Αλλάζοντας τη σειρά εκτέλεσης μέσα στα context...σελ Πιστοποίηση (Authentication), Multi hosting, κλήσεις σε Remote Server...σελ Εντολές που είναι διαθέσιμες στο extensions.conf...σελ Αnswer...σελ BackGround...σελ Dial()...σελ DigitTimeOut()...σελ Echo()...σελ Hangup()...σελ Meetme()...σελ PlayBack()...σελ ResponseTimeOut()...σελ Ringing()...σελ SetLanguage()...σελ Voic ()...σελ Wait()...σελ Goto και GotoIf...σελ Παραδείγματα πρότυπων DialPlans...σελ Operator Extension (Extension Διαχειρηστή)...σελ Main Menu (Κυριο Μενού)...σελ Ηχογραφόντας αρχεία ήχου...σελ Interactive Voice Response (IVR) Παράδειγμα...σελ ΚΕΦΑΛΑΙΟ 5 0 Εγκατάσταση του Asterisk και του Asterisk-GUI Ρυθμίσεις του server asterisk.teikav.edu.gr 5.1 Εγκατάσταση του Asterisk...σελ Εγκατάσταση του Asterisk-GUI σελ Προσθήκη χρηστών και παραμετροποίηση του Server asterisk.teikav.edu.gr...σελ Αυτόματος τηλεφωνητής(voic ) και ηχογράφηση ήχου...σελ Φωνο-αλληλεπιδραστική απόκριση (IVR) Τηλεφωνικό κέντρο..σελ Festival...σελ 142 viii

9 - ΚΕΦΑΛΑΙΟ 6 0 Διαχείρηση του Asterisk 6.1 Εισαγωγή...σελ Διαχείρηση του Asterisk απο το GUI...σελ Είσοδος στο σύστημα GUI...σελ Εγγραφή ενός νέου χρήστη...σελ Δημιουργία διάσκεψης...σελ Ρύθμιση του φωνητικού ταχυδρομείου...σελ Ρύθμιση της αναμονής των κλήσεων...σελ Ρύθμιση κλήσεων προς άλλα δίκτυα...σελ Ρύθμιση των εξερχόμενων κλήσεων...σελ Ρύθμιση των εισερχόμενων κλήσεων...σελ Ρύθμιση της διάρκειας των κλήσεων...σελ Στάθμευση κλήσης (call parking)...σελ Ring Groups...σελ Παρακολούθηση ενεργών καναλιών...σελ Πληροφορίες συστήματος...σελ Αρχείο καταγραφής σφαλμάτων......σελ Αρχεία κλήσεων...σελ Ρυθμίσεις πρόσβασης...σελ Διαχείριση αρχείων ασφαλείας...σελ Μετάβαση στα αρχεία του Asterisk...σελ Διαχείρηση του Asterisk από το command line...σελ ΚΕΦΑΛΑΙΟ 7 0 VOIP ΤΗΛΕΦΩΝΑ 7.1 Εισαγωγή...σελ x-lite...σελ Εισαγωγή...σελ Εγγραφή ενός χρήστη...σελ Διαχείριση τηλεφώνου...σελ Λειτουργίες τηλεφώνου...σελ SJphone...σελ 181 ix

10 7.3.1 Εισαγωγή...σελ Ρυθμίσεις Sjphone...σελ Εγγραφή ενός χρήστη...σελ Λειτουργίες τηλεφώνου...σελ SIPPS...σελ Εισαγωγή...σελ Ρυθμίσεις SIPPS...σελ Εγγραφή ενός χρήστη...σελ Λειτουργίες τηλεφώνου...σελ 205 Συμπεράσματα...σελ 209 ΠΑΡΑΡΤΗΜΑ Α...σελ 210 ΒΙΒΛΙΟΓΡΑΦΙΑ...σελ 227 x

11 ΛΙΣΤΑ ΠΙΝΑΚΩΝ 1.1 Response μηνύματα...σελ Requests μηνύματα...σελ Παράδειγμα μηνύματος Response...σελ Παράδειγμα μηνύματος Response...σελ Παρουσίαση GNU Bayonne...σελ Παρουσίαση FreeSWITCH...σελ Παρουσίαση CallWeaver...σελ Παρουσίαση SipX ECS...σελ Κοστολόγιο Cisco και Digium...σελ Χαρακτηριστικά του HiPath 3500 και του Shoretel 7 IP Phone System Series...σελ Χαρακτηριστικά του IP Office και του Unified Call Manager/ Media Convergence Server σελ Τύποι διεπαφών που υποστηρίζει τo Asterisk...σελ Zaptel Hardware...σελ Νοn - Zaptel Hardware...σελ Packet voice Protocols...σελ Asterisk file System...σελ Υποστηριζόμενα Codecs...σελ Τύποι αρχείων ήχου υποστηριζόμενων από το Αsterisk...σελ Δεσμευμένα ονόματα για τα extension...σελ Χαρακτήρες pattern...σελ Γενικά οι εφαρμογές του Asterisk (Asterisk CLI > show applications)...σελ Διαχείρηση κλήσεων...σελ Εφαρμογές για database...σελ Ζap εφαρμογές...σελ Εφαρμογές voic και συνδιασκέψεις...σελ Εφαρμογές για ούρες κλήσεων (call Queue)...σελ Εσωτερικές εφαρμογές του Asterisk...σελ Dial options...σελ Call Queue...σελ Operator Extension...σελ Main Menu...σελ 131 xi

12 4.14 Ηχογράφηση αρχείων ήχου...σελ IVR...σελ Ελάχιστες απαιτήσεις Asterisk σε Hardware...σελ «Κατέβασμα» πακετων Asterisk...σελ Αποσυμπίεση...σελ compilation...σελ 136 ΛΙΣΤΑ ΕΙΚΟΝΩΝ 1.1 Πραγματοποίηση κλήσης στο PSTN...σελ Πραγματοποίηση κλήσης στο VOIP...σελ Πλήρως διοικούμενο επιχειρηματικό δίκτυο...σελ Διοικούμενο επιχειρηματικό δίκτυο μαζί με επιχειρησιακό Συνεργάτη...σελ Εφεδρική τηλεφωνική σύνδεση...σελ Πρότυπα διασύνδεσης VoIP...σελ Πραγματοποίηση κλήσης στο πρότυπο end to end...σελ Tοπολογία δικτύου του πρ προτύπου υ Bilateral...σελ Τοπολογία δικτύου στην πολύπλευρη διασύνδεση...σελ Τοπολογία δικτύου του IPX...σελ Τοπολογία δικτύου του υβριδικού προτύπου...σελ Αρχιτεκτονική λογισμικού (SOFTWARE) VOIP...σελ Φιλτράρισμα σήματος...σελ Μετατροπή του σήματος...σελ Πραγματοποίηση κλήσης και τερματισμός...σελ Ανακατεύθυνση κλήσης...σελ Πραγματοποηση κλήσης με την βοήθεια του Proxy Server...σελ Δομή της επικεφαλίδας RTP...σελ Asterisk PBX...σελ Asterisk IVR...σελ Asterisk ACD...σελ Αρχιτεκτονική του Αsterisk...σελ Asterisk σε γραφείο...σελ Συστημα Asterisk συνδεδεμένο στο Intertnet...σελ Σύνδεση στο PSTN...σελ Το Asterisk ως υψηλή πυκνότητα και IVR Conferesing...σελ Σύνδεση του Asterisk σε μία επιχείρηση...σελ TDM400P της Digium με FXO και FXS modules...σελ 100 xii

13 4.2 Configuration Files (Αρχεία Ρύθμισης)...σελ Contexts Sales και Support...σελ Contexts Including...σελ Contexts Linking...σελ Contexts Including...σελ Καρτέλα Home...σελ Καρτέλα Users...σελ Καρτέλα Conferencing...σελ Καρτέλα Voic ...σελ Καρτέλα Call Queues...σελ καρτέλα Service Providers...σελ παράθυρο Add Service Provider...σελ καρτέλα Calling Rules...σελ Calling Rule...σελ incoming Call Rules...σελ Add a Incoming Rule...σελ Time Based Rules...σελ New Time Rule...σελ call parking...σελ Ring Groups...σελ New Ring Group...σελ Active Channels...σελ System Information...σελ ifconfig...σελ Resources...σελ Asterisk Log...σελ CDR Reader...σελ GUI Access...σελ Take a Backup...σελ Backup...σελ file editor...σελ /etc/asterisk...σελ nano sip.conf...σελ Μήνυμα λάθους...σελ Παράθυρο SIP Account Settings...σελ Παράθυρο Account...σελ Παράθυρο Voic ...σελ171 xiii

14 7.5 Παράθυρο Presence...σελ Καρτέλα Calls&Contacts...σελ Παράθυρο Instant Message...σελ Παράθυρο Calls...σελ Καρτέλα Video...σελ Μορφή τηλεφώνου SJPhone...σελ Παράθυρο User Information...σελ Παράθυρο Call Options...σελ Παράθυρο Interface...σελ Παράθυρο Neighborhood...σελ Παράθυρο Skins...σελ Παράθυρο Hot Keys...σελ Παράθυρο Jabber...σελ Παράθυρο Ringing...σελ Παράθυρο " Profiles"...σελ Παράθυρο Create New Profile...σελ Παράθυρο Profile Options...σελ Συμπλήρωση username και password...σελ Πληροφορίες τηλεφώνου...σελ Επιλογή σύνδεσης...σελ Επιλογή εύρους ζώνης της σύνδεσης...σελ Χρήση της υπηρεσίας ΝΑΤ...σελ Σύνδεση σε διαφορετικό server...σελ Εισαγωγή της διεύθυνσης IP...σελ Εισαγωγή ονόματος...σελ Αναζήτηση συσκευών...σελ Έλεγχος του μικροφώνου και των ηχείων...σελ Αποθήκευση των ρυθμίσεων...σελ Εισαγωγή των στοιχείων του χρήστη...σελ Ολοκλήρωση ρυθμίσεων...σελ Μορφή τηλεφώνου SIPPS...σελ 205 xiv

15 ΠΡΟΛΟΓΟΣ Στις μέρες μας οι τεχνολογίες VoIP εξελίσσονται με ταχύτατους ρυθμούς. Όταν στην τηλεφωνία ενοποιείται η εμπειρία που έχει ο χρήστης με το τηλέφωνο τηλεφωνήματα, υπηρεσία προσωπικού τηλεφωνητή, και τηλεδιάσκεψη με την εργασία που κάνει σε έναν υπολογιστή επεξεργασία κειμένου, υπολογισμοί με λογιστικό φύλλο (spreadsheet), στιγμιαίο μήνυμα instant messaging, ηλεκτρονικό ταχυδρομείο, ημερολόγια τότε έχουμε ένα ενιαίο περιβάλλον επικοινωνίας. Είναι δεδομένο ότι οι ενοποιημένες επικοινωνίες θα μετασχηματίσουν τις επιχειρήσεις στην ερχόμενη δεκαετία με τον ίδιο τρόπο που τον άλλαξε το ηλεκτρονικό ταχυδρομείο στη δεκαετία του 90. Όταν οι τηλεφωνικές υπηρεσίες γίνονται λογισμικό, ρυθμίζονται από έναν κεντρικό υπολογιστή, και συγχωνεύονται στις εφαρμογές υπολογιστών γραφείου. Τότε ένας υπολογιστής αρχίζει να λειτουργεί ως τηλέφωνο, το τηλέφωνο αρχίζει να λειτουργεί όπως ένας υπολογιστής, η υπηρεσία προσωπικού τηλεφωνητή γίνεται ηλεκτρονικό ταχυδρομείο, όλες οι Voice over IP (VoIP) υπηρεσίες είναι διαθέσιμες, οι ενοποιημένες επικοινωνίες βελτιώνουν τις υφιστάμενες υποδομές, τα τηλεφωνήματα γίνονται ψηφιακά στοιχεία και τέλος η υποδομή γίνεται ευέλικτη και επιδέχεται εύκολα βελτιώσεις. Στο παρόν σύγγραμμα στο πρώτο κεφάλαιο αναφερόμαστε στην υπηρεσία VoIP, τον τρόπο εξέλιξής της καθώς και τα πλεονεκτήματά της. Στο δεύτερο κεφάλαιο συγκρίνονται οι πιο διαδεδομένες PBX τεχνολογίες, που βασίζονται σε λογισμικό ανοικτού κώδικα, για να καταλήξουμε στην επιλογή του Asterisk. Στο τρίτο κεφάλαιο και έχοντας πλέον επιλέξει το Asterisk γίνεται μια εισαγωγή ως προς το τι είναι, τι υπηρεσίες μας παρέχει κτλ. Στο τέταρτο κεφάλαιο παρουσιάζονται κάποιες τυπικές ρυθμίσεις του Asterisk. Στο πέμπτο κεφάλαιο παρουσιάζονται η εγκατάσταση του Asterisk, που έγινε στα πλαίσια τις παρούσας πτυχιακής εργασίας καθώς και το τι ρυθμίσεις πραγματοποιήθηκαν στον server μας, τον asterisk.teikav.edu.gr. Στο έκτο κέφαλαιο αναφερόμαστε στην διαχείριση του Asterisk, δηλαδή με ποιους τρόπους μπορούμε να κάνουμε ρυθμίσεις κτλ. Τέλος στο έβδομο κεφάλαιο παρουσιάζονται τα διαθέσιμα VoIP τηλέφωνα και πιο συγκεκριμένα κάποια softphones. xv

16 xvi

17 - ΚΕΦΑΛΑΙΟ 1 0 VOIP 1.1 Ιστορική αναδρομή του VOIP και του VOIP PBX Η διαδικτυακή τηλεφωνία (Voice over Internet Protocol - Voip) είχε αποτελέσει το αντικείμενο του ενδιαφέροντος, σχεδόν από το πρώτο δίκτυο υπολογιστών. Έως το 1973, ήταν φωνή που μεταδιδόταν μέσω του διαδικτύου (Internet). [1] Η τεχνολογία για τη μετάδοση συνομιλιών μέσω του διαδικτύου (Internet) ήταν διαθέσιμη στους χρήστες, τουλάχιστον από τις αρχές του Το 1996, ένα προϊόν λογισμικού αποκαλούμενο VocalTec, τηλέφωνο διαδικτύου παρείχε VoIP υπηρεσίες μαζί με τα πρόσθετα χαρακτηριστικά γνωρίσματα όπως φωνητικό ταχυδρομείο(voice mail) και αναγνώριση κλήσης (caller id). Ωστόσο, δεν προσέφερε μια πύλη (gateway) προς το δημόσιο δίκτυο μεταγωγής κυκλωμάτων (PSTN), έτσι θα ήταν δυνατό να μιλήσει μόνο με άλλους Vocaltec χρήστες του Internet Phone. [2] Το 1997, άρχισε η ανάπτυξη του πρώτου softswitch (ένας όρος που εφευρέθηκε το 1998). Το softswitch σχεδιάστηκε για να αντικαταστήσει τους παραδοσιακούς τηλεφωνικούς διακόπτες υλικού έτσι ώστε να χρησιμεύσει ως η πύλη μεταξύ των τηλεφωνικών δικτύων.[3] Εδώ και 50 χρόνια οι εταιρείες χρησιμοποιούν παραδοσιακά ιδιωτικά συστήματα (Private Branch Exchange - PBX). Το πρώτο PBX πραγματοποιήθηκε το 1960 και βασιζόνταν στην τεχνολογία PCM (Pulse Code Modulation) όπου η μετατροπή του αναλογικού σήματος σε δυαδικά ψηφία 0 και 1 μείωσε την απόσταση και την παρεμβολή του θορύβου στη γραμμή. Το 1980 η ανακάλυψη της τεχνολογίας TDM (Time Division Multiplexing) αποτέλεσε την βάση ανάπτυξης του Voip. Η τεχνολογία αυτή επέτρεπε διαφορετικές ταχύτητες σε κάθε κανάλι και συνάθροιση της κυκλοφορίας. Επίσης η μετατροπή του σήματος από αναλογικό σε ψηφιακό μέσα στο PBX είχε σαν αποτέλεσμα την συσσώρευση των καναλιών σε ένα ενιαίο. 1

18 Το 1990 ανακαλύφθηκε η τεχνολογία ΑΤΜ (Asynchronous Transfer Mode) όπου πρόσφερε ένα υψηλό εύρος ζώνης, χαμηλή καθυστέρηση διάδοσης της φωνής και των δεδομένων και ποιότητα υπηρεσίας.(qos).[4] Στο τέλος της δεκαετίας 1990 οι περισσότερες επιχειρήσεις άρχισαν να μετακινούνται σε συστήματα VOIP PBX, που προσφέρουν το τεράστιο πλεονέκτημα της σύγκλισης των δικτύων δεδομένων και φωνής. 1.2 Ορισμός και ανάλυση του VOIP Το Voice over IP αφορά μία τεχνολογία που καθιστά δυνατή τη δρομολόγηση φωνητικών συνδιαλέξεων μέσω του Διαδικτύου ή ενός δικτύου υπολογιστών. Για την πραγματοποίηση κλήσεων μέσω VοIP, ο χρήστης χρειάζεται ένα πρόγραμμα τηλεφώνου (softphone) SIP. Οι τηλεφωνικές κλήσεις μπορούν να πραγματοποιηθούν προς οποιοδήποτε προορισμό/άτομο: προς αριθμούς VοIP, καθώς και προς άτομα που διαθέτουν αριθμούς τηλεφώνου παραδοσιακής τηλεφωνίας.[5] Το VoIP μεταφέρει τη φωνή σε πακέτα δεδομένων (IP packets) σύμφωνα με το Sector (ITU-T) specification H.323 των διεθνών τηλεπικοινωνιακών προτύπων (International Telecommunications Union Telecommunication Standardization). Εκτός από το πρωτόκολλο του διαδικτύου χρησιμοποιείται επιπρόσθετα και το πρωτόκολλο πραγματικού χρόνου (Real Time Protocol, RTP) για να ελεγχθεί εάν τα πακέτα φωνής που μεταφέρθηκαν έφτασαν έγκαιρα. Με απλά λόγια, το VoIP είναι μία τεχνολογία υλικού και λογισμικού που επιτρέπει τη μεταφορά τηλεφωνικών συνδιαλέξεων σε ένα δίκτυο δεδομένων όπως ένα ενδοδίκτυο ή συνήθως μέσω του διαδικτύου. Οι παραδοσιακές τηλεφωνικές υπηρεσίες παίρνουν τη φωνή και τη μετατρέπουν σε ηλεκτρονικό σήμα, το οποίο μεταδίδεται μέσω εταιρικών τηλεφωνικών καλωδίων. Το σήμα αυτό μετατρέπεται στη συνέχεια σε ήχο, μέσω του τηλεφώνου δέκτη. Από την άλλη πλευρά, το VoIP διαχειρίζεται τη φωνή όπως και κάθε άλλη πληροφορία που αποστέλλεται μέσω Διαδικτύου, μετατρέποντας την σε πακέτα δεδομένων. Τα πακέτα αυτά κωδικοποιούνται σε αρχεία δεδομένων, αποστέλλονται μέσω Διαδικτύου και κωδικοποιούνται πάλι σε ήχο από κάποιον υπολογιστή ή άλλη συσκευή (π.χ. έναν μετατροπέα τηλεφώνου VoIP).[6] 2

19 1.2.1 Πραγματοποίηση κλήσης στο Voip και στο PSTN Οι κλήσεις που γίνονται μέσα σε ένα εταιρικό δίκτυο (IP VPN) είναι δωρεάν. Αυτό όμως δεν γίνεται στη περίπτωση που οι κλήσεις προορίζονται για τους εξωτερικούς αριθμούς τηλεφώνου, οι οποίοι συνδέονται με το δημόσιο δίκτυο μεταγωγής κυκλωμάτων (PSTN). Στο σχήμα της εικόνας 1.1 παρουσιάζεται η ροή της κλήσης στην παραδοσιακή τηλεφωνία. Εικόνα 1.1 Πραγματοποίηση κλήσης στο PSTN 1. Η κλήση προέρχεται από ένα τηλέφωνο συνδεδεμένο σε ένα τοπικό δίκτυο προμηθευτών. 2. Η κλήση λαμβάνεται από έναν μεταφορέα 3. Η κλήση στη συνέχεια μεταφέρεται στον προορισμό του δικτύου, το οποίο θα μπορούσε να είναι ένα εξωτερικό δίκτυο, ένα τοπικό δίκτυο ενός παρόχου για τοπικές κλήσεις ή ένα κινητό δίκτυο μεταφορέα. Η κλήση κοστολογείται πάντα από το φορέα παροχής υπηρεσιών όπου στη συνέχεια αυτός ο φορέας παροχής υπηρεσιών κοστολογείτε από τον τοπικό προμηθευτή Το VoIP όπως παρουσιάζεται στο σχήμα της εικόνας 1.2 παρέχει τη δυνατότητα να αποφευχθεί το κόστος της κλήσης αυτής συνδέοντας πάνω στο IP δίκτυο ένα softswitch. 3

20 Εικόνα 1.2 Πραγματοποίηση κλήσης στο VOIP Το Voip στις επιχειρήσεις Μέρα με τη μέρα σχεδόν όλες οι επιχειρήσεις αρχίζουν να αντικαταστούν το ήδη υπάρχον δίκτυό τους με δίκτυο Voip. Στα σχήματα των εικόνων 1.3 και 1.4 παρουσιάζονται οι τρόποι υλοποίησης δικτύου Voip που έχουν οι επιχειρήσεις. Στο σχήμα της εικόνας 1.3 παρουσιάζεται ένα πλήρως διοικούμενο επιχειρηματικό δίκτυο, δηλαδή ένα δίκτυο που εξυπηρετεί τα συμφέροντα μίας συγκεκριμένης εταιρείας. Εικόνα 1.3. Πλήρως διοικούμενο επιχειρηματικό δίκτυο Στο σχήμα της εικόνας 1.4 παρουσιάζεται ένα διοικούμενο επιχειρηματικό δίκτυο μαζί με έναν επιχειρησιακό συνεργάτη. 4

21 Εικόνα 1.4 διοικούμενο επιχειρηματικό δίκτυο μαζί με έναν επιχειρησιακό συνεργάτη Εφεδρική τηλεφωνική σύνδεση Σχεδόν όλες οι εταιρείες έχουν μια γραμμή PSTN και ένα σύνολο τηλεφωνικών αριθμών. Αυτές οι γραμμές και οι αριθμοί μπορούν να συνεχίσουν να χρησιμοποιούνται μετά από μία πιθανή κατάρρευση του συστήματος όπως παρουσιάζεται στο σχήμα της εικόνας 1.5. Αυτό είναι μια καλή πρακτική, καθώς προσφέρει στην εταιρεία μια εφεδρική τηλεφωνική σύνδεση.[7] Εικόνα 1.5 Εφεδρική τηλεφωνική σύνδεση 5

22 1.2.4 Ανάλυση της εξέλιξης της διασύνδεσης του VoIP Στο σχήμα της εικόνας 1.6 προσδιορίζονται οι διαφορετικοί τύποι προτύπων διασύνδεσης του VoIP. Τα διαφορετικά πρότυπα διασύνδεσης εισάγονται σε σχέση με την εμφάνισή τους σε μια συνέχεια της διαχείρισης από κατανεμημένη διαχείριση σε συγκεντρωμένη διαχείριση. πρότυπο end to end Εικόνα 1.6 Πρότυπα διασύνδεσης VoIP Χρησιμοποιώντας ένα κοινό πρωτόκολλο, οι χρήστες του VoIP μπορούν να επικοινωνήσουν άμεσα μεταξύ τους ανεξάρτητα από την απόσταση ή τη θέση τους. Σε αυτό το πλήρως κατανεμημένο και συνήθως ανοιχτό μοντέλο ο καταλύτης της διασύνδεσης και της μεταφοράς των πακέτων είναι το Internet. Πρωτόκολλα όπως το πρωτόκολλο έναρξης συνόδου (SIP) και το πρωτόκολλο παρουσίας (XMPP) επιτρέπει αυτό το είδος διασύνδεσης. Στο σχήμα της εικόνας 1.7 παρουσιάζεται το πρότυπο end to end. Εικόνα 1.7 Πραγματοποίηση κλήσης στο πρότυπο end to end 6

23 πρότυπο Bilateral Οι επιχειρήσεις και οι φορείς παροχής υπηρεσιών μπορούν να συμφωνήσουν να διασυνδεθούν άμεσα μεταξύ τους με διμερείς όρους, εξυπηρετώντας τους σκοπούς τους. Η σύνδεση γίνεται χωρίς άλλα ενδιάμεσα συμβαλλόμενα μέρη. Αυτό το πρότυπο διασύνδεσης χρησιμοποιείται όταν η πρόσβαση σε υπηρεσίες του διαδικτύου ή του δικτύου μεταξύ των διασυνδεδεμένων συμβαλλόμενων μερών είναι ομοιόμορφα ισορροπημένη, αλλά και όταν η πρόσβαση σε υπηρεσίες του διαδικτύου ή του δικτύου μεταξύ των συμβαλλόμενων μερών είναι άνισα κατανεμημένη. Κάθε συμβαλλόμενο μέρος μπορεί να έχει διμερείς συμφωνίες διασύνδεσης μέχρι και με 24 φορείς παροχής υπηρεσιών. Στο σχήμα της εικόνας 1.8 επεξηγείται η τοπολογία δικτύου του πρότυπου Bilateral. Εικόνα 1.8 τοπολογία δικτύου του πρότυπου Bilateral. πολύπλευρη διασύνδεση Στην πολύπλευρη διασύνδεση ένα κεντρικό σημείο διασύνδεσης χρησιμοποιείται για να χειριστεί και να διευκολύνει τη διασύνδεση μεταξύ διάφορων δικτύων. Κάθε δίκτυο που επιθυμεί να διασυνδεθεί με κάποιο άλλο δίκτυο οργανώνει μια ενιαία συμφωνία με τον κεντρικό υπολογιστή διασύνδεσης και κερδίζει ταυτόχρονα την πρόσβαση σε όλα τα δίκτυα. Το σχήμα της εικόνας 1.9 επεξηγεί αυτό το πρότυπο διασύνδεσης. 7

24 Εικόνα 1.9 Τοπολογία δικτύου στην πολύπλευρη διασύνδεση Πολύπλευρη διασύνδεση χρησιμοποιεί η ιδιωτική ανταλλαγή πακέτων (IP Packet Exchange (IPX)) και το υβριδικό μοντέλο διασύνδεσης (Hybrid interconnection model). Όπως παρουσιάζεται στο σχήμα της εικόνας 1.10, σε αυτό το μοντέλο κάθε μεταφορέας IPX διασυνδέεται με άλλους μεταφορείς IPX. Στη συνέχεια κάθε επιμέρους μεταφορέας IPX παρέχει υπηρεσίες διασύνδεσης στους παρόχους υπηρεσιών. Εικόνα 1.10 Τοπολογία δικτύου IPX Το υβριδικό πρότυπο διασύνδεσης που παρουσιάζεται στο σχήμα της εικόνας 1.11 προσπαθεί να εκμεταλλευθεί τα καλύτερα χαρακτηριστικά γνωρίσματα και να συνδυάσει τις συγκεντρωμένες και αποκεντρωμένες δομές. Παραδείγματος χάρη το ευρωπαϊκό ίδρυμα προτύπων τηλεπικοινωνιών (ETSI) έχει καθορίσει ανοικτά και σφαιρικά πρότυπα αποκαλούμενα ανοικτό πρωτόκολλο τακτοποίησης (OSP). Το υβριδικό πρότυπο διασύνδεσης σηματοδοτεί απευθείας την κλήση μεταξύ των χρηστών ενώ με τη χρήση ενός κεντρικού υπολογιστή αφαιρεί 8

25 μόνο τα μηνύματα που αφορούν τα προβλήματα ικανότητας και εξελιξιμότητας του συστήματος. Δεδομένου ότι η σηματοδότηση είναι χωρισμένη, επιτρέπει επίσης στους κόμβους (ITSPs) να αποφασίσουν την τεχνολογία που θα χρησιμοποιηθεί για τη σηματοδότηση της κλήσης. Μπορούν να χρησιμοποιήσουν τα πρωτόκολλα επικοινωνίας IP όπως SIP, H.323, IAX ή μπορούν να πειραματιστούν και σε άλλα μελλοντικά πρωτόκολλα. Ένας κεντρικός υπολογιστής ανταλλαγής κίνησης στο δίκτυο αυξάνει την ασφάλεια του δικτύου με την κεντρική διαχείριση των καταλόγων ελέγχου πρόσβασης και συνήθως και από τη χρήση της υποβολής δημοσίου κλειδιού (PKI) για την εξακρίβωση της γνησιότητας των ITSPs. Επίσης ένα κεντρικός υπολογιστής λειτουργεί ως ένα ουδέτερο μέρος για τη συλλογή δεδομένων που επιτρέπει τη χρήση διάφορων προτύπων χρέωσης σε πολλά μοντέλα όπως για παράδειγμα το IPNP το οποίο χρησιμοποιείται συνήθως σε PSTN. [8] Εικόνα 1.11 Τοπολογία δικτύου του υβριδικού προτύπου 1.3 Πλεονεκτήματα και μειονεκτήματα του VOIP Η υπηρεσία Voip μας παρέχει μια πλειάδα από πλεονεκτήματα και ευκολίες όπως: 9

26 Μεγαλύτερη ευκολία εγκατάστασης & διαμόρφωσης σε σύγκριση με ένα ιδιόκτητο τηλεφωνικό σύστημα: Ένα πρόγραμμα λογισμικού που εκτελείται σε έναν υπολογιστή μπορεί να επωφεληθεί από την προηγμένη ισχύ επεξεργασίας του υπολογιστή και του περιβάλλοντος εργασίας και των δυνατοτήτων του λειτουργικού συστήματος (Unix, Linux ή windows). Οποιοσδήποτε έχει γνώσεις υπολογιστών και ενός λειτουργικού συστήματος μπορεί να εγκαταστήσει και να διαμορφώσει το PBX. Ένα ιδιόκτητο τηλεφωνικό σύστημα απαιτεί συχνά την εγκατάσταση από έναν τεχνικό που έχει εκπαιδευτεί στο συγκεκριμένο ιδιόκτητο σύστημα. Μεγαλύτερη ευκολία διαχείρισης, χάρη στο περιβάλλον διαμόρφωσης με βάση το Web: Ένα τηλεφωνικό σύστημα VOIP διαθέτει ένα περιβάλλον διαμόρφωσης με βάση το Web, το οποίο μας επιτρέπει να διαχειριζόμαστε και να ρυθμίζουμε εύκολα το τηλεφωνικό μας σύστημα. Συνήθως, τα ιδιόκτητα τηλεφωνικά συστήματα δεν διαθέτουν εύκολες διεπαφές προς τον διαχειριστή, ενώ αυτές είναι συχνά σχεδιασμένες κατά τέτοιο τρόπο, ώστε να μπορούν να χρησιμοποιηθούν αποτελεσματικά μόνο από τους τεχνικούς εγκατάστασης του τηλεφωνικού συστήματος. Μείωση των χρεώσεων κλήσης: Μπορούμε να έχουμε σημαντική εξοικονόμηση χρημάτων, χρησιμοποιώντας έναν πάροχο υπηρεσιών VoIP για τις υπεραστικές ή τις διεθνείς κλήσεις. Συνδέουμε εύκολα τα τηλεφωνικά συστήματα μεταξύ γραφείων/ υποκαταστημάτων και πραγματοποιούμε δωρεάν τηλεφωνικές κλήσεις. Δεν απαιτείται ξεχωριστή τηλεφωνική καλωδίωση χρησιμοποιούμε το δίκτυο υπολογιστών: Ένα τηλεφωνικό σύστημα VoIP μας επιτρέπει να συνδέουμε τηλεφωνικές συσκευές απευθείας σε μία συνηθισμένη θύρα δικτύου υπολογιστών (την οποία μπορεί να μοιράζεται με τον παρακείμενο υπολογιστή). Τα τηλέφωνα λογισμικού (softphones) μπορούν να εγκατασταθούν απευθείας στον Η/Υ. Αυτό σημαίνει ότι δε χρειάζεται να εγκαταστήσουμε & να διαθέτουμε μια ξεχωριστή καλωδίωση για το τηλεφωνικό σύστημα, γεγονός που μας παρέχει πολύ μεγαλύτερη ευελιξία, 10

27 ως προς την προσθήκη χρηστών/ επεκτάσεων. Εάν μεταφερόμαστε σε ένα νέο γραφείο και δεν έχουμε εγκαταστήσει ακόμη τηλεφωνικές καλωδιώσεις, μπορούμε να έχουμε σημαντική εξοικονόμηση εγκαθιστώντας απλά ένα δίκτυο υπολογιστών. Ικανότητα κλιμάκωσης: Τα ιδιόκτητα συστήματα μπορεί να ξεπεραστούν εύκολα. Η προσθήκη περισσότερων τηλεφωνικών γραμμών ή επεκτάσεων απαιτεί συχνά δαπανηρές αναβαθμίσεις υλικού. Σε ορισμένες περιπτώσεις απαιτείται ένα εντελώς καινούριο τηλεφωνικό σύστημα. Αυτό δεν συνιστά πρόβλημα στην περίπτωση ενός τηλεφωνικού συστήματος VoIP, ένας συνηθισμένος υπολογιστής μπορεί εύκολα να χειριστεί ένα μεγάλο αριθμό τηλεφωνικών γραμμών και επεκτάσεων. Προσθέτουμε απλά περισσότερα τηλέφωνα στο δίκτυό μας για να το επεκτείνουμε. Καλύτερη εξυπηρέτηση πελατών & παραγωγικότητα: Καθώς οι κλήσεις γίνονται μέσω υπολογιστή, είναι πολύ ευκολότερο για τους κατασκευαστές λογισμικού να ενσωματώσουν το λογισμικό τους στις επαγγελματικές εφαρμογές. Για παράδειγμα μία εισερχόμενη κλήση μπορεί αυτόματα να εμφανίζει στην οθόνη το αρχείο του καλούντος πελάτη, βελτιώνοντας σημαντικά την εξυπηρέτηση των πελατών και μειώνοντας το κόστος μέσω της μείωσης του χρόνου που απαιτείται για κάθε καλούντα. Οι εξερχόμενες κλήσεις μπορούν να πραγματοποιηθούν απευθείας π.χ. από το Outlook, χωρίς να απαιτείται η πληκτρολόγηση του τηλεφωνικού αριθμού από τον χρήστη. Τα τηλέφωνα με βάση λογισμικό είναι ευκολότερα στη χρήση: Στα ιδιόκτητα τηλέφωνα, η χρήση προηγμένων δυνατοτήτων τηλεφωνικών συστημάτων, όπως η διάσκεψη, είναι συχνά δύσκολη. Κάτι τέτοιο δεν συμβαίνει με τα τηλέφωνα SIP βάσει λογισμικού, όπου όλες οι δυνατότητες χρησιμοποιούνται εύκολα μέσω ενός φιλικού προς το χρήστη γραφικού περιβάλλοντος εργασίας παραθύρων. Παροχή πάντα περισσότερων δυνατοτήτων: 11

28 Καθώς ένα τηλεφωνικό σύστημα VoIP λειτουργεί με βάση το λογισμικό, είναι ευκολότερο για τους κατασκευαστές λογισμικού να αναπτύξουν, να προσθέσουν και να βελτιώσουν τις ομάδες χαρακτηριστικών. Επομένως, τα περισσότερα τηλεφωνικά συστήματα VoIP συνοδεύονται από μια πλούσια γκάμα χαρακτηριστικών, στην οποία περιλαμβάνεται το σύστημα δρομολόγησης (routing) και διαχείρισης τηλεφωνικών κλήσεων (management of telephone calls), ο τηλεφωνητής (voice mail), η αναμονή κλήσεων (call waiting) και πολλά ακόμη. Οι επιλογές αυτές είναι συχνά εξαιρετικά δαπανηρές στα ιδιόκτητα τηλεφωνικά συστήματα. Καλύτερος έλεγχος μέσω καλύτερης καταγραφής: Οι ρυθμίσεις VoIP αποθηκεύουν τις πληροφορίες των εισερχόμενων και των εξερχόμενων κλήσεων σε μία βάση δεδομένων στο διακομιστή μας, επιτρέποντας μια πολύ αποτελεσματικότερη καταγραφή των χρεώσεων και της κίνησης των κλήσεων. Καλύτερη παρακολούθηση της τρέχουσας κατάστασης του συστήματος και των κλήσεων: Τα ιδιόκτητα συστήματα απαιτούν συχνά ακριβά τηλεφωνικά συστήματα για να παρέχουν στο τηλεφωνικό κέντρο προηγμένα χαρακτηριστικά πολλαπλών γραμμών έτσι ώστε να είμαστε σε θέση να γνωρίζουμε το "τι συμβαίνει" στο τηλεφωνικό μας σύστημα. Ακόμη και με αυτά, οι πληροφορίες κατάστασης είναι στην καλύτερη περίπτωση δυσνόητες. Με τα συστήματα VoIP έχουμε τη δυνατότητα να ορίσουμε ποιοι χρήστες μπορούν να έχουν πρόσβαση στη γραφική απεικόνιση της κατάστασης του τηλεφωνικού μας συστήματος μέσω ενός προγράμματος περιήγησης στο Web. Δυνατότητα στους χρήστες άμεσης τοποθέτησης του τηλεφώνου τους σε οποιοδήποτε σημείο του γραφείου: Οι χρήστες παίρνουν απλά την τηλεφωνική συσκευή τους, την τοποθετούν στην κοντινότερη θύρα ethernet και διατηρούν τον αριθμό που ήδη έχουν. Δυνατότητα εύκολης περιαγωγής των χρηστών: 12

29 Δυνατότητα εκτροπής των κλήσεων, οπουδήποτε στον κόσμο, χάρη στα χαρακτηριστικά του πρωτοκόλλου SIP[9] Όμως υπάρχουν και μερικές δυσλειτουργίες που παρεμποδίζουν ακόμα την ευρεία αποδοχή της τεχνολογίας από το κοινό, μολονότι υπάρχουν προσωρινές λύσεις στα προβλήματα αυτά. Η έλλειψη συνεχούς λειτουργίας κατά τη διάρκεια των διακοπών ρεύματος, όπου αντιμετωπίζεται με γεννήτριες ηλεκτρικής ενέργειας και η κλήση έκτακτης ανάγκης που αντιμετωπίζεται με αναδυόμενα πρότυπα αποκαλούμενα e911, είναι τα δύο μεγαλύτερα προβλήματα στο Voip.[10] 1.4 Αρχιτεκτονική υλικού (HARDWARE) VOIP Για την υλοποίηση και την λειτουργία ενός δικτύου Voip χρειαζόμαστε εκτός από το λογισμικό και υλικό. Το υλικό που απαιτείται για την υλοποίηση VoIP αναλύεται παρακάτω. VoIP κάρτες διεπαφών για υπολογιστές (VoIP Interface Cards for PCs): οι οποίες μετατρέπουν τον υπολογιστή σε ένα πολύ ικανό τηλέφωνο VoIP. Τα τηλέφωνα υπολογιστή (PC telephones): είναι τηλέφωνα που συνδέονται με τον υπολογιστή, συνήθως μέσω USB, και μας επιτρέπουν να κάνουμε τηλεφωνικές κλήσεις μέσω του υπολογιστή. VoIP τηλέφωνα (VoIP telephones): είναι τα τηλέφωνα τα οποία συνδέονται άμεσα σε ένα δίκτυο μέσω μιας Ethernet θύρας (port). VoIP μεταγωγείς (VoIP switches): είναι συσκευές που επιτρέπουν την σύνδεση πολλαπλών τηλεφωνικών γραμμών σε μια Ethernet θύρα (port). Αυτό επιτρέπει σε κάθε τηλέφωνο που είναι συνδεδεμένο με το διακόπτη να κάνει κλήσεις VoIP. VoIP πύλες (VoIP Gateways): είναι συσκευές δικτύου οι οποίες βοηθούν να μετατρέψουμε κλήσεις φωνής και fax, σε πραγματικό χρόνο, ανάμεσα σε ένα δίκτυο IP και Public Switched Telephone 13

30 Network (PSTN). Συνήθως, μια πύλη VoIP έχει την ικανότητα να υποστηρίζει τουλάχιστον δύο γραμμές T1/E1 ψηφιακών καναλιών. VoIP δρομολογητές (VoIP Routers): καθοδηγούν την κυκλοφορία του VoIP με τον ίδιο σχεδόν τρόπο με τους κανονικούς δρομολογητές. VoIP PBX: είναι υψηλής τεχνολογίας, χαμηλού κόστους, ισοδύναμα των παραδοσιακών τηλεφώνων PBX. Εκτός από την παραδοσιακή λειτουργία PBX, τα VoIP PBX διαμορφώνουν και διαχειρίζονται τις ικανότητες δικτύων VoIP.[11] 1.5 Αρχιτεκτονική λογισμικού (SOFTWARE) VOIP Στο σχήμα της εικόνας 1.12 παρουσιάζεται η αρχιτεκτονική του λογισμικού που χρησιμοποιεί η διαδικτυακή τηλεφωνία. Η αρχιτεκτονική του λογισμικού χωρίζεται σε δύο τμήματα. Την ψηφιακή επεξεργασία σήματος (Digital signal processing DSP) και τον μικροεπεξεργαστή.[12] Εικόνα 1.12 Αρχιτεκτονική λογισμικού (SOFTWARE) VOIP Μικροεπεξεργαστής Η αυξανόμενη σημασία της ψηφιακής επεξεργασίας σημάτων (DSP) οδήγησε αρκετούς μεγάλους κατασκευαστές κατά τη διάρκεια της δεκαετίας του 1980 (όπως η Texas Instruments, Analog Devices και η 14

31 Motorola) να αναπτύξουν μικροεπεξεργαστές, με αρχιτεκτονικές που είναι ειδικά σχεδιασμένες για τις εργασίες που απαιτεί η ψηφιακή επεξεργασία του σήματος (ASIC design). Όπως φαίνεται στο σχήμα της εικόνας 1.12 ο μικροεπεξεργαστής είναι υπεύθυνος για τη μετακίνηση των πακέτων φωνής, για την προσαρμογή γενικών επικεφαλίδων στα φωνητικά πακέτα όπως ορίζεται από την εφαρμογή, για την επεξεργασία πληροφοριών σηματοδότησης και τη μετατροπή τους από τη μορφή του PSTN στη σηματοδότηση του δικτύου πακέτων. Ο μικροεπεξεργαστής αποτελείται από τις παρακάτω υπομονάδες. Υπομονάδα Packet Voice software: Τρέχει πάνω σε ένα DSP. Προετοιμάζει τα δείγματα φωνής για μετάδοση μέσω του δικτύου VoIP. Τα συστατικά στοιχεία εκτελούν: ακύρωση της echo, συμπίεση φωνής, ανίχνευση δραστηριότητας φωνής στο δίκτυο, απομάκρυνση του jitter, συγχρονισμό ρολογιού, πακετάρισμα φωνής. Υπομονάδα Telephone Singaling Gateway Software Αλληλεπιδρά με τον εξοπλισμό τηλεφωνίας: Μεταφράζει τη σηματοδότηση έτσι ώστε να χρησιμοποιηθεί από την υπομονάδα packet voice για την δημιουργία των συνδέσεων. Υπομονάδα Packet Protocol Επεξεργάζεται πληροφορίες σηματοδότησης: Μετατρέπει τα πρωτόκολλα σηματοδότησης της τηλεφωνίας σε πρωτόκολλα σηματοδότησης πακέτων. Χρησιμοποιείται για την αποκατάσταση συνδέσεων σε δίκτυο πακέτων (Q.993 και σηματοδότηση VoFR). Προσθέτει επικεφαλίδα (header) στα πακέτα φωνής αλλά και στα πακέτα σηματοδότησης πριν τη μετάδοσή τους στο δίκτυο πακέτων. Υπομονάδα Network Management 15

32 Παρέχει την κατάλληλη διεπαφή (interface) για τη διαχείριση της φωνής, για τον σχηματισμό και την συντήρηση των άλλων υπομονάδων στο VoIP σύστημα. Οι πληροφορίες για τη διαχείριση καθορίζονται στο ANSI. Συνεργάζεται με το SNMP (Signaling Network Management Protocol). Ψηφιακή Επεξεργασία Σήματος (Digital signal processing DSP) DSP, είναι η επεξεργασία των σημάτων με ψηφιακά μέσα. Όπως φαίνεται στο σχήμα 1.12 το DSP επεξεργάζεται τα δεδομένα φωνής και τα προωθεί στον μικροεπεξεργαστή. Η αρχιτεκτονική λογισμικού είναι χωρισμένη έτσι ώστε το λογισμικό των DSP να ενσωματώνεται σε πρωτόκολλα και εφαρμογές. Το λογισμικό των DSP παρέχει μια καθαρή αλληλεπίδραση μεταξύ των γενικών λειτουργιών επεξεργασίας της φωνής, όπως: o Συμπίεση o Ακύρωση της ηχούς της φωνής (echo) o Ανίχνευση δραστικότητας της φωνής (Detection activity voice) o Σηματοδότηση συγκεκριμένης εφαρμογής o Επεξεργασία πρωτοκόλλου[13] Ένα αναλογικό σήμα πρέπει να μετατραπεί σε ψηφιακό για να μπορέσουν να εφαρμοστούν οι τεχνικές DSP. Η μετατροπή από αναλογικό σε ψηφιακό σήμα γίνεται με τη χρήση ενός ηλεκτρονικού κυκλώματος που ονομάζεται αναλογικός-ψηφιακός μετατροπέας ή ADC. Αυτό δημιουργεί μια ψηφιακή έξοδο δυαδικών αριθμών, η οποία αντιπροσωπεύει την ηλεκτρική τάση των εισόδων. Η επεξεργασία των σημάτων μπορεί να γίνει με ποικίλους τρόπους. Παραδείγματος χάρη, το σήμα παραγωγής από έναν μετατροπέα μπορεί να έχει παρεμβολές από έναν ανεπιθύμητο ηλεκτρικό "θόρυβο". Αυτές οι ανεπιθύμητες παρεμβολές μπορούν να αφαιρεθούν ή να μειωθούν με ένα κύκλωμα φίλτρων. Η λειτουργία ενός φίλτρου είναι να αφαιρεθούν τα ανεπιθύμητα μέρη του σήματος, όπως ο τυχαίος θόρυβος, ή να εισαχθούν τα χρήσιμα μέρη του σήματος. 16

33 Στο σχήμα της εικόνας 1.13 φαίνεται η βασική ιδέα φιλταρίσματος ενός σήματος. Εικόνα 1.13 Φιλτράρισμα σήματος Υπάρχουν δύο είδη φίλτρων, τα αναλογικά και τα ψηφιακά. Ένα αναλογικό φίλτρο χρησιμοποιεί τα αναλογικά ηλεκτρονικά κυκλώματα που αποτελούνται από τις αντιστάσεις και τους πυκνωτές για να παράξουν την απαραίτητη επίδραση φιλτραρίσματος. Σε όλα τα στάδια, το σήμα που φιλτράρεται αναλογικά, δέχεται μια ηλεκτρική τάση ή ένα ρεύμα που είναι ανάλογο με το μέγεθος του σήματος. Ένα ψηφιακό φίλτρο χρησιμοποιεί έναν ψηφιακό επεξεργαστή για να εκτελέσει τους αριθμητικούς υπολογισμούς στις επιλεγμένες τιμές του σήματος. Ο επεξεργαστής μπορεί να είναι ένας γενικής χρήσης υπολογιστής, ή ένα εξειδικευμένο chip DSP. Το αναλογικό σήμα εισόδου, όπως παρουσιάζεται στο σχήμα της εικόνας 1.14 πρέπει πρώτα να επιλεχθεί και να μετατραπεί χρησιμοποιώντας έναν ADC μετατροπέα. Οι δυαδικοί αριθμοί που προκύπτουν αντιπροσωπεύουν τις επιλεγμένες τιμές του σήματος και μεταφέρονται στον επεξεργαστή ο οποίος κάνει τους αριθμητικούς υπολογισμούς. Τα αποτελέσματα των υπολογισμών αυτών, μπορούν να μετατραπούν πάλι σε αναλογική μορφή χρησιμοποιώντας έναν ψηφιακό-αναλογικό μετατροπέα (DAC).[13] Εικόνα 1.14 Μετατροπή του σήματος 17

34 1.6 Ασφάλεια (security) VOIP Σύμφωνα με έρευνα της Microsoft στο πρώτο εξάμηνο του 2007 εντοπίστηκαν περίπου 31,6 εκατομμύρια επιθέσεις, ως προς την ασφάλεια των δικτύων παγκοσμίως, αριθμός που παρουσιάζει αύξηση της τάξης του 150% αναλογικά με το τελευταίο εξάμηνο του Αυτές οι επιθέσεις μπορούν να στοιχίσουν οικονομικά στις επιχειρήσεις και να μειώσουν την παραγωγικότητα. Η ασφάλεια των Voip δικτύων κατατάσσεται σε τέσσερις (4) κατηγορίες: Μαζικές επιθέσεις (Distributed DoS (DDoS) Attacks) Μη αναγνωρίσιμη πρόσβαση (Unauthorized Access) Toll Fraud Υποκλοπή (Eavesdropping) Μαζικές επιθέσεις (Distributed DoS (DDoS) Attacks) Οι επιθέσεις DoS αποσκοπούν στην κατάρρευση της λειτουργίας του συστήματος στέλνοντας πακέτα εκμεταλλευόμενες την λειτουργία του λογισμικού (software). Η επίθεση DoS γίνεται με δύο τρόπους: Το Voip αποτελείται από πολλές διαιρέσεις με μία πολύ ειδική δομή. Η αποτυχία σε ένα από αυτά τα κομμάτια προκαλεί αποτυχία σε όλο το σύστημα. Τα τμήματα του Voip χρησιμοποιούν πολύπλοκα πρωτόκολλα που το καθένα από αυτά έχει τις δικές του αδυναμίες. Μη αναγνωρίσιμη πρόσβαση (Unauthorized Access) Τα Voip συστήματα περιλαμβάνουν πολύπλοκους μηχανισμούς για τον έλεγχο των κλήσεων όπως τη διαχείριση και την έκδοση λογαριασμών. Κάθε ένα από αυτά τα συστήματα μπορεί να περιλαμβάνει δεδομένα όπως παραδείγματος χάρη τιμολόγια, ανακοινώσεις της εταιρείας, προϊόντα, τα οποία αν παραβιαστούν από κάποια απειλή θα φέρει καταστροφικές συνέπειες στην επιχείρηση. Toll Fraud 18

35 Στα δίκτυα το 1980, όταν οι αναλογικές τεχνολογίες άρχισαν να γίνονται ψηφιακές, άρχισε να δημιουργείται μία ομάδα hacker τηλεφωνικών συστημάτων. Αυτή η ομάδα χρησιμοποίησε διάφορες μεθόδους για να σπάσει τα συστήματα ελέγχου των κλήσεων με παράνομο τρόπο και να έχει τον έλεγχο του δικτύου. Υποκλοπή (Eavesdropping) Τα Voip συστήματα μπορούν να είναι ευάλωτα σε υποκλοπές από μη αναγνωρισμένους παράγοντες. Η υποκλοπή μπορεί να προκύψει από την σύνδεση μη αναγνωρισμένου τηλεφώνου IP πάνω στο σύστημα ή να είναι αποτέλεσμα διασταυρωμένων πακέτων (intercepting packets). Οι καλύτερες πρακτικές στα μέτρα ασφάλειας Η εισαγωγή της φωνής σε δομημένα δίκτυα εισάγει κινδύνους ως προς την ασφάλεια. Αυτό οφείλεται επειδή η φωνή και τα δεδομένα πλέον μετέχουν σε μία κοινή, εκτεταμένη δομή και εξαιτίας της πολυπλοκότητάς τους, οι Voip τεχνολογίες εισάγουν ένα πλήθος απειλών ως προς τα ήδη υπάρχοντα IP δίκτυα. Αυτές οι νέες απειλές κάνουν ολόκληρο το δίκτυο ευάλωτο. Τα καλά νέα είναι ότι υπάρχει ένας αριθμός βέλτιστων πρακτικών μέτρων ασφαλείας που οι διαχειριστές του δικτύου μπορούν να πάρουν για να ελαχιστοποιηθεί ο κίνδυνος επίθεσης. Τα μέτρα περιλαμβάνουν την εγκατάσταση των διαφόρων συσκευών σε βασικές διασυνδέσεις με το δίκτυο, την εφαρμογή της στρατηγικής ασφάλειας, διατάξεις σχετικά με τις Voip συσκευές καθώς και την σκόπιμη διαμόρφωση και εκτέλεση των τυποποιημένων διαδικασιών για τον περιορισμό της έκθεσης του δικτύου σε επιθέσεις τόσο από εντός όσο και από εκτός του δικτύου. Παρακάτω ακολουθεί λίστα βασικών κανόνων που εφαρμόζονται σε κάθε δίκτυο προκειμένου να πλησιάσουμε στην ασφάλεια των Voip. Διατήρηση /συντήρηση των σημερινών επιπέδων Patch Οι ανεπάρκεια (bugs, Security vulnerabilities) πολλές φορές του λογισμικού εκθέτουν σε κινδύνους τα δίκτυα. Οι επιθέσεις στα δίκτυα αποτελούν εμπόδιο στις εφαρμογές και στις επενδύσεις τους, αφού προσβάλλουν τα τρωτά σημεία του λογισμικού, για αυτό απαιτείται η συνεχής ενημέρωση και ανανέωση του λογισμικού (software update, patch). Εγκατάσταση Anti-Virus και ενημέρωσή του τακτικά 19

36 Με την τρέχουσα εξάπλωση των ιών (virus) και των σκουληκιών (worms-προγράμματα καταστροφικά που μπορούν να πολλαπλασιάζονται και να μεταδίδονται μέσω του δικτύου) κανένα δίκτυο ή υπολογιστής δεν μπορεί να λειτουργήσει με ασφάλεια χωρίς antivirus. Τα anti-virus στα Voip συστήματα τείνουν να προστατέψουν τα συστήματα φωνής και δεδομένων που είναι τα πιο ευάλωτα στις επιθέσεις. Μερικά προιόντα, όπως τα firewalls, ενσωματώνουν τη λειτουργικότητα εντοπισμού ιών, μαζί με άλλα ιδιαίτερα χαρακτηριστικά υλοποίησης και διαχείρισης. Εφαρμογή τεχνικής ανίχνευσης και πρόληψης κατάστασης συστημάτων Η εφαρμογή τεχνικής ανίχνευσης και πρόληψης κατάστασης συστημάτων γίνεται με IDP (Intrusion Detection and Prevention) συστήματα φύλαξης. Αύτα τα συστήματα εξετάζουν όλα τα πακέτα που περιλαμβάνουν ανακοινώσεις κυκλοφορίας για να προσλάβουν μία ευρεία ποικιλία ύποπτων απειλών και νόμιμων δραστηριοτήτων που λειτουργούν σε επίπεδο εφαρμογών. Εφαρμογή ασφάλειας SIP μέσω αυθεντικοποίησης και IPSec Το SIP αναπτύχθηκε σε ένα μεγάλο βαθμό για την τροφοδότηση των Voip συστημάτων με ένα υπερσύνολο από χαρακτηριστικά κλήσεων και λειτουργίες μέσω των κυκλωμάτων μεταγωγής της φωνής σε δίκτυα. Είναι η συσκευή καταγραφής των κλήσεων, εγκατάστασης των κλήσεων (call set up), τερματισμού των κλήσεων και άλλων προηγμένων χαρακτηριστικών όπως αναμονή, εκτροπή και αναγνώριση κλήσεων. Οι χρήστες των Voip δικτύων αντιμετωπίζουν αυξανόμενες απειλές όπως το Spam over Internet Telephony (SPIT), ανεπιθύμητες κλήσεις και τηλεφωνικά μηνύματα. Το κλειδί για την προστασία στις συνδιαλλαγές SIP είναι η ισχυρή ταυτότητα και το IPSec. Το SIP παρέχει ένα ασφαλές καθεστώς, βασισμένο στο μηχανισμό αναγνώρισης μέσω http (Hypertext Transfer Protocol). Ένας τρόπος για να διασφαλιστεί σε μεγάλο βαθμό η προστασία των Voip δικτύων είναι να απαιτείται στην είσοδο εξουσιοδότηση 20

37 και αποδοχή του αιτήματος έτσι ώστε να αποφευχθεί η πλαστοπροσωπία και οι επιθέσεις DoS. Το IPSec παρέχει απόκρυπτογράφηση και ταυτοποίηση όλων των πακέτων στο SIP. Το SIP παρέχει επαρκές και εξειδικευμένο τείχος προστασίας ως προς την ασφάλεια. Για να προστεθούν οι φωνητικές συνδιαλέξεις απαιτείται ισχυρή κρυπτογράφηση και ταυτοποίηση. Εκτέλεση κινήσεων Voip Virtual Private Network (VPN) για την ελαχιστοποίηση του κινδύνου της υποκλοπής σε κρίσιμα τμήματα. Τα Voip δίκτυα περιλαμβάνουν VPN κρυπτογράφηση. Μία επίθεση μπορεί να γίνει από ένα εσωτερικό δίκτυο IP. Μια επιχείρηση μπορεί να χρησιμοποιεί Voip μεταξύ ξεχωριστών τοποθεσιών. Σε αυτήν την περίπτωση το VPN χρησιμοποιείται για να συνδέσει τις τοποθεσίες αυτές και να παρέχει προστασία στα δεδομένα που κινούνται στο μη αξιόπιστο/ ελεγχόμενο δίκτυο. Η κρυπτογράφηση εφαρμόζεται επιλεκτικά Όπου υπάρχει αμφιβολία για υποκλοπή οι χρήστες του δικτύου πρέπει να χρησιμοποιήσουν τα τηλέφωνα κρυπτογράφησης. Η κρυπτογράφηση πρέπει να γίνει από τους χρήστες με ακρίβεια. Προστασία από πλημμύρες(flooding) του UDP Οι πλημμύρες του UDP είναι μία εξειδικευμένη επίθεση σε δίκτυα που συμβαίνει όταν UDP πακέτα στέλνονται για να επιβραδύνουν το σύστημα με σκοπό να μην μπορεί να χειριστεί έγκυρες συνδέσεις. Ο καλύτερος τρόπος προστασίας από αυτού του είδους την επίθεση είναι η εγκατάσταση εξειδικευμένων προστατευτικών προϊόντων όπως τα VPN UDP, όπου προϋποθέτει τον καθορισμό ενός ορίου για τον περιορισμό του ρυθμού με τον οποίο τα πακέτα μεταφέρονται από μία ή περισσότερες πηγές προς έναν συγκεκριμένο προορισμό. Ανάπτυξη ενός προγράμματος ασφάλειας 21

38 Στα firewall, στα VPN και σε άλλα συστήματα ασφάλειας εγκαθίστανται ζώνες ασφαλείας για να βελτιωθεί η προστασία. Γίνεται εγκατάσταση πολιτικών και διαδικασιών για όλες τις προσωπικές συνδιαλέξεις, από τηλεφωνικές κλήσεις μέχρι επισκέψεις όπου πάντα απαιτείται ταυτοποίηση. Επίσης δημιουργία και διάδοση standars για την διαβάθμιση της διαδικασίας ώστε να αποτραπούν προσβάσεις στο δίκτυο. [15] 1.7 QoS (QUALITY OF SERVICE) ΠΟΙΟΤΗΤΑ ΥΠΗΡΕΣΙΑΣ Εισαγωγή Ο όρος ποιότητα (Quality) μπορεί να εμπεριέχει πολλούς τομείς στα δίκτυα, συνήθως όμως χρησιμοποιείται για να περιγράψει τη διαδικασία της αποστολής δεδομένων με έναν αξιόπιστο τρόπο. Όπως σε όλα τα δίκτυα και στο VOIP υπάρχουν προβλήματα ποιότητας και αξιοπιστίας ήχου. Εδώ την λύση την δίνει το QoS (Quality of Service) που είναι υπηρεσία παροχής ποιότητας. Στην ουσία ο όρος αυτός μάλλον δεν είχε νόημα στα δίκτυα παρά μόνο τα τελευταία πολύ λίγα χρόνια. Το μόνο που ενδιέφερε πριν κάποια χρόνια τον μηχανικό του δικτύου ήταν να φτάσουν τα πακέτα (αν μιλούσαμε για μεταγωγή πακέτου) στον προορισμό τους επιτυχώς. Αν μπορούμε να θεωρήσουμε κάτι σαν QoS και να το μετρήσουμε θα ήταν το αν φτάσει το πακέτο στο προορισμό του ή όχι. Ένα βήμα για την βελτίωσή του ήταν στα δίκτυα IP που μας ενδιαφέρουν το πρωτόκολλο TCP [ Transmission Control Protocol, DARPA Internet Program Protocol Specification, September 1981], το οποίο, «κλέβοντας» λίγο από το εύρος ζώνης (bandwidth) του δικτύου, εισήγαγε μηχανισμούς διόρθωσης σφαλμάτων. Θα μπορούσε κανείς να πει ότι, σε συνδυασμό με το πρωτόκολλο UDP [ User Datagram Protocol, J. Postel, August 1980], το οποίο δεν καθυστερούσε μεν το δίκτυο, δε διόρθωνε δε τα σφάλματα. Αυτό βέβαια πρακτικά, σημαίνει για το δίκτυο, προσφορά δύο τάξεων υπηρεσιών. Στην αρχική άλλωστε σχεδίαση του IP πρωτοκόλλου υπάρχει στην κεφαλίδα του κάθε δεδομενογραφήματος (datadagram) το πεδίο type of service που επιτρέπει στα δίκτυα να προσφέρουν διάφορα προφίλ υπηρεσιών, να προσφέρουν δηλαδή διαφοροποίηση. Αρχικά βέβαια δεν έγιναν καν προσπάθειες στα αρχικά ερευνητικά στάδια του νεότευκτου δικτύου εκμετάλλευσης του πεδίου αυτού μέχρι το χρηματοδοτούμενο από την κυβέρνηση των Ηνωμένων Πολιτειών NSFnet [16] 22

39 1.7.2 Διαχείριση QoS Η διαχείριση QoS στο Voip μπορεί να διαιρεθεί σε δύο τμήματα. Το σχέδιο δεδομένων και το σχέδιο ελέγχου. Οι μηχανισμοί στο σχέδιο δεδομένων περιλαμβάνουν πακέτο ταξινόμησης, διαμόρφωσης, αστυνόμευσης, διαχείριση μνήμης, προγραμματισμού και απόκρυψη λαθών. Ενώ οι μηχανισμοί στο σχέδιο ελέγχου περιλαμβάνουν τον πόρο τροφοδότησης, την μηχανική κίνηση, την είσοδο ελέγχου και την σύνδεση για την διαχείριση των συνδέσεων. Σχέδιο δεδομένων Διαχείριση και προγραμματισμός του Buffer: πρέπει να γίνεται συνεχώς διαχείριση των σειρών αναμονής έτσι ώστε να μην προωθούνται τα πακέτα προτού μια σειρά αναμονής γίνει πλήρης. Με αυτόν τον τρόπο επιτυγχάνουμε το πρόβλημα της άδικης χρήσης των πόρων του συστήματος. Οι προβλέψεις της καθυστέρησης αναμονής και η διανομή του εύρους ζώνης μπορούν να επιτευχθούν με την χωριστή μεταχείριση των ροών στις διαφορετικές σειρές αναμονής. Η λύση είναι βασισμένη στον χρονοπρογραμματισμό του στατικού περιορισμού προτεραιότητας (Static Priority amd Constraint Based WFQ) που ακολουθεί ένα χρονοδιάγραμμα κυκλοφορίας. Πρέπει να σημειωθεί ότι είναι δύσκολο στη μεμονωμένη ροή να αποκτηθεί η προβλέψιμη καθυστέρηση και το εύρος ζώνης. Για αυτό τον λόγο και στις εφαρμογές της φωνής πρέπει να υπάρχουν οι ακριβείς απαιτήσεις καθυστέρησης. Απώλεια και ανάκτηση: η απώλεια και η ανάκτηση μπορεί να διαιρεθεί σε ενεργητική και παθητική ανάκτηση. Στην ενεργητική ανάκτηση έχουμε αναμετάδοση και στην παθητική έχουμε προώθηση και διόρθωση των λαθών. Σχέδιο ελέγχου Τροφοδότηση πόρων και μηχανικής κίνησης: αναφέρεται σε διορθώσεις των εφαρμογών στα δίκτυα. Ο σχεδιασμός των δικτύων γίνεται πλούσιος και μπορεί να προγραμματιστεί ευκολότερα. 23

40 Μηχανική κίνηση: κυρίως επικεντρώνεται στη χρησιμοποίηση ενός συγκεκριμένου τμήματος του δικτύου ενώ η χωρητικότητα μεταφέρεται και είναι διαθέσιμη σε άλλα τμήματα του δικτύου. Με αυτούς τους μηχανισμούς οι πόροι των δικτύων μπορούν να προορίζονται για την δρομολόγηση των φωνητικών κινήσεων μέσω των διαδρομών που καθορίζει το CBR ή μέσω των κοντινότερων διαδρομών που καθορίζει κάποιος αλγόριθμος. Αποδοχή ελέγχου: τα Voip δίκτυα δεν έχουν αποδοχές ελέγχου και μπορούν να προσφέρουν μόνο προσπάθειες για καλύτερες υπηρεσίες Βελτίωση επιδόσεων για εφαρμογές Voip Στην υλοποίηση ενός δικτύου VoIP είναι σημαντικό να εξεταστούν όλοι οι παράγοντες που θα έχουν επιπτώσεις στην ποιότητα της φωνής. end-to-end καθυστέρηση: υπάρχουν δύο είδη καθυστερήσεων. Η καθυστέρηση που οφείλεται στη διαβίβαση και επεξεργασία του λόγου όπου είναι αποτέλεσμα του πολλαπλασιασμού των καθυστερήσεων μεταξύ των κόμβων και η καθυστέρηση που οφείλεται στο δίκτυο όπου χωρίζεται στο πάγιο μέρος και στο μεταβλητό μέρος. Το σταθερό μέρος εξαρτάται από την απόδοση των κόμβων του δικτύου σχετικά με την διαβίβαση και την χωρητικότητα των γραμμών μεταξύ των κόμβων. Το μεταβλητό μέρος βασίζεται στις σειρές που εξαρτώνται από το φορτίο του δικτύου. Η καθυστέρηση των σειρών μπορεί να μειωθεί με την εισαγωγή προηγμένων μηχανισμών προγραμματισμού (Expidited Forwarding and priority queuing). Τα IP πακέτα καθυστερήσεων μπορούν να μειωθούν με τον τεμαχισμό του πακέτου σε μικρότερα πακέτα. Τέλος χρήσιμη τεχνική για την μείωση της φωνητικής καθυστέρησης στα WAN είναι η γραμμή κατακερματισμού όπου ένα μακρύτερο πακέτο κατακερματίζεται σε μικρότερα. Καθυστέρηση JITTER: οι διαφορετικοί χρόνοι καθυστέρησης των πακέτων εμποδίζει την κατάλληλη αναδημιουργία των πακέτων φωνής στο αρχικό και περιοδικό τους σχέδιο. Για να επιτευχθεί αυτό πρέπει τα πακέτα να αποθηκευτούν για αρκετό καιρό έτσι ώστε να επιτρέπουν στα πιο αργά πακέτα να φθάσουν και να δημιουργηθεί η σωστή ακολουθία. Οι τεχνικές για να αποφευχθεί η καθυστέρηση JITTER είναι να οριστεί ένας χρόνος playout σε όλα τα πακέτα μίας συνόδου ή κατά την διάρκεια μίας συνόδου. Επίσης να προσαρμοστεί ο χρόνος playout κατά τη διάρκεια των 24

41 περιόδων σιωπής σχετικά με τις τρέχουσες καθυστερήσεις του δικτύου. Τέλος να προσαρμόζεται ο χρόνος playout σε κάθε πακέτο συνεχώς έτσι ώστε να διατηρείται ο χρόνος playout. Σβήσιμο πεδίου: συμβαίνει όταν IP πακέτα που μεταφέρουν πλαίσια ομιλίας δεν φτάνουν έγκαιρα στον αποδέκτη. Μεγάλα διαστήματα και καθυστερήσεις μπορούν να επιφέρουν μεγάλης διάρκειας διακεκομμένη φωνή. Λήψη πακέτων που είναι εντός λειτουργίας: συμβαίνει στις σύνθετες τοπολογίες όπου οι διαδρομές μεταξύ αποστολέα και παραλήπτη είναι περισσότερες από μία. Το σύστημα παραλαβής πρέπει να αναδιοργανώσει τα πακέτα που έλαβε με την σωστή σειρά για να αντικαταστήσει το αρχικό μήνυμα ομιλίας.[17] 1.8 Πρωτόκολλα που χρησιμοποιεί το VOIP SIP Εισαγωγή Η συνεχής και έντονη ανάπτυξη εφαρμογών του Internet έκανε επιτακτική την ανάγκη για την ύπαρξη νέων υπηρεσιών και αρχιτεκτονικών. Έτσι η μεταπήδηση από τα παραδοσιακά τηλεφωνικά δίκτυα στην IP τηλεφωνία ήταν κάτι αναμενόμενο και ταυτόχρονα πολλά υποσχόμενο. Το SIP είναι ένα πρωτόκολλο επιπέδου εφαρμογής (application-layer control) το οποίο αρχικά σχεδιάστηκε από τον Henning Schulzrinne και τον Mark Handley το Το πρωτόκολλο που ενώ αρχικά χρησιμοποιούνταν προκειμένου να πραγματοποιούνται πολυσημειακές (multipoint) συσκέψεις στο Internet Multicast Backbone (Mbone), αποφασίστηκε έπειτα να χρησιμοποιηθεί για να επιτρέπει διασκέψεις από σημείο σε σημείο (pointto-point conferences) και τηλεφωνικές κλήσεις. Έτσι λοιπόν μιλάμε για ένα πρωτόκολλο σηματοδοσίας για τη δημιουργία multimedia συνδέσεων πάνω από IΡ δίκτυα, για ένα πρωτόκολλο το οποίο είναι εναλλακτικό του Η.323 πρωτοκόλλου[18]. Το SIP πρωτόκολλο (RFC 3261) είναι τυποποιημένο από την Internet Engineering Task Force (IETF), τον οργανισμό που είναι υπεύθυνος για την ανάπτυξη και διαχείριση όσων έχουν να κάνουν με το Internet. Οι συνδέσεις που υποστηρίζει το SIP μπορεί να είναι είτε μια απλή αμφίδρομη τηλεφωνική κλήση είτε μια πιο πολύπλοκη πολυμεσική (multimedia) σύνοδος με περισσότερους συμμετέχοντες. Ακριβώς αυτή η δυνατότητα είναι που το κάνει να είναι συνεχώς εξελισσόμενο και να επεκτείνεται συνεχώς στην κοινωνία του Internet. Ενδεικτικά εφαρμογές 25

42 του πρωτοκόλλου αυτού αποτελούν τα voice-enriched commerce, οι ιστοσελίδες επιλογής τηλεφωνικής κλήσης (web page click-to-dial), το στιγμιαίο μήνυμα (Instant Messaging), και οι υπηρεσίες IP Centrex. Ως πρωτόκολλο ακολουθεί την γενικότερη φιλοσοφία της IETF η οποία συνίσταται στο να ορίζει μόνο όσα χρειάζονται να οριστούν. Δηλαδή επειδή το SIP είναι πρωτόκολλο επιπέδου εφαρμογών δεν ασχολείται με τις λεπτομέρειες των συνεδριών απλά μόνο με την αρχικοποίηση, την τροποποίηση και τον τερματισμό μιας διαλογικής (interactive) συνεδρίας μεταξύ χρηστών, η οποία συμπεριλαμβάνει στοιχεία πολυμέσων όπως το βίντεο, την φωνή, την άμεση αποστολή και λήψη μηνυμάτων, τα διαδικτυακά παιχνίδια και την εικονική πραγματικότητα. Το SIP είναι ένα ανοιχτό πρότυπο, το οποίο επιτρέπει μεγαλύτερη συνεργασία μεταξύ των παρόχων υπηρεσιών για την δημιουργία πολυμεσικών(multi-media) υπηρεσιών, που βασίζονται σε SIP αφού μοιάζει αρκετά σε δυο άλλα πρωτόκολλα το HTTP (Hyper Text Transfer Protocol) και SMTP (Simple Mail Transfer Protocol)τα οποία διαχειρίζονται το world wide web και την ηλεκτρονική αλληλογραφία αντίστοιχα. Συγκριτικά με τη σύγκλιση των πολυμεσικών εφαρμογών που υποστηρίζει, το SIP συνεργάζεται με πολλά προϋπάρχοντα πρωτόκολλα u964 τα οποία διαχειρίζονται την ποιότητα της φωνής (voice quality), την εξακρίβωση ενός χρήστη αν είναι εξουσιοδοτημένος να χειρίζεται κάτι μέσα στο σύστημα (authentication) κ.τ.λ.[19] Ιστορική αναδρομή Εκδόσεις Το SIP εμφανίστηκε στο προσκήνιο το 1996 από τον καθηγητή Henning Schulzrinne και την ερευνητική ομάδα του. Ο ίδιος είχε λάβει μέρος στην ανάπτυξη τόσο του RTP (Real-Time Transfer Protocol) πρωτοκόλλου που ασχολείται με τη μετάδοση σε πραγματικό χρόνο δεδομένων στο διαδίκτυο αλλά και επίσης με το πρωτόκολλο RTSP (Real- Time Streaming Protocol) το οποίο θα αναλύσουμε παρακάτω. Αρχικός του σκοπός ήταν να ορίσει ένα πρότυπο για Multiparty Multimedia Session Control (MMUSIC). Το 1996 παρέδωσε στην IETF μια απεικόνιση του SIP. Το 1999 και αφού αφαιρέθηκαν κάποια κομμάτια εκδόθηκαν τα πρώτα ειδικά χαρακτηριστικά (specification) του SIP RFC Καθώς κάποιοι πωλητές (vendors) έβλεπαν με σκεπτικισμό την αλλαγή από τα γνωστά και ασφαλή Η323 ΜGCP πρωτόκολλα, η IETF συνέχισε την επεξεργασία και την ανάπτυξή του οπότε το 2001 εκδόθηκε το RFC Το πρωτόκολλο περιγράφεται αναλυτικά, ενώ στη συνέχεια υπήρχε εμπλουτισμός σε θέματα ασφάλειας και την εξακρίβωση ενός χρήστη αν είναι εξουσιοδοτημένος να χειρίζεται κάτι μέσα στο σύστημα (authentication)με άλλα RFC. Το RFC 3262 για παράδειγμα ελέγχει την αξιοπιστία των προσωρινών απαντήσεων (Provisional Responses). Το RFC 26

43 3263 ορίζει τους κανόνες για την επικοινωνία με τους SIP Proxy Servers, ενώ το RFC 3264 προσφέρει ένα μοντέλο για προσφορά/απάντηση (offer/ answer). Το RFC 3265 ορίζει πως θα γίνεται ο προσδιορισμός (determination) ενός γεγονότος (event). Στην αρχή του 2001 υπήρξε μεταβολή στην στάση των πωλητών (vendors) οι οποίοι άρχισαν να εμπιστεύονται το νέο αυτό πρωτόκολλο. Από τότε το ενδιαφέρον συνεχώς αυξάνει. Σήμερα οργανισμοί όπως η Sun Microsystems Java Community Process δημιουργεί ΑΡΙs (Application Program Interfaces) χρησιμοποιώντας την Java για να χτίσουν πάνω εκεί SIP εξαρτήματα (components) και εφαρμογές για παρόχους και επιχειρήσεις. Αυτό που έχει σημασία είναι το συνεχές αυξανόμενο ενδιαφέρον για το ευέλικτο αυτό πρωτόκολλο που τείνει να γίνει ίσως το πιο δημοφιλές μετά τα HTTP και SMTP πρωτόκολλα Τι είναι το SIP εν συντομία Το SIP αναθέτει σε κάθε χρήστη μια SIP διεύθυνση. Με την διεύθυνση αυτή ο χρήστης μπορεί να εντοπιστεί οπουδήποτε όπως επίσης μπορεί να φανεί εάν είναι ή όχι συνδεδεμένος στο δίκτυο. Το πρωτόκολλο βασίζεται σε ανταλλαγές μηνυμάτων (requests και responses). Ένα SIP μήνυμα μπορεί να περιέχει διαφόρων ειδών πληροφορίες όπως παραδείγματος χάρη: την περιγραφή για το είδος των δεδομένων που θα μεταφερθούν (SDP), το περιεχόμενο , φωτογραφίες (πχ JPG). Το SIP ακολουθεί την αρχιτεκτονική πελάτη/ εξυπηρετητή (client/server). Κύριες οντότητες στα SIP δίκτυα είναι οι ακόλουθες: 1) User Agents (Client, Server) 2) SIP Proxy Servers, 3) SIP Registrars. Το SIP υποστηρίζει την προσωπική κινητικότητα (personal mobility) όπου δηλαδή ένας χρήστης μπορεί να είναι καταχωρημένος σε περισσότερες από μια περιοχές και οι κλήσεις μπορούν να προωθούνται ταυτόχρονα σε όλες τις καταχωρημένες περιοχές. Το SIP μπορεί να χρησιμοποιηθεί σαν: 1) End to End πρωτόκολλο από και προς SIP Clients 2) Πρωτόκολλο για διασύνδεση PSTN με IP και για επικοινωνία (SIP-T) για διασύνδεση ελεγκτή media πυλών με ελεγκτή media πυλών (Media Gateway Controller- Media Gateway Controller (MGC- MGC)). 3) Πρωτόκολλο για διασύνδεση μετασηματοδοσίας και χρησιμοποιείται και από άλλα πρωτόκολλα σαν το SIP, όπως είναι το MGCP και το MEGACO. 27

44 Το SIP είναι ένα μόνο κομμάτι της συνολικής multimedia αρχιτεκτονικής που έχει καθορίσει η IETF. Ολόκληρη η αρχιτεκτονική περιλαμβάνει ένα σύνολο πρωτοκόλλων που είναι τα ακόλουθα: 1) Το RTP (Real Time Protocol) που το αναλύουμε παρακάτω 2) Το MGCP (Media Gateway Control Protocol) αναλαμβάνει τον έλεγχο των Media Gateways. 3) Το SDP (Session Description Protocol) που το αναλύουμε παρακάτω 4) Το SAP (Session Announcement Protocol) δίνει τον τρόπο για να δημιουργηθούν multicast συνδέσεις (π.χ. 3 way call). 5) Το TRIP (Telephony Routing Over IP) αναλαμβάνει να εντοπίσει την κοντινότερη πύλη προς το δίκτυο σταθερής τηλεφωνίας ανάλογα με τον προορισμό αν η κλήση είναι για σταθερό τηλέφωνο, έτσι ώστε να δρομολογηθούν τα VoΙΡ πακέτα από αυτή την πύλη ΑΡΧΙΤΕΚΤΟΝΙΚΗ SIP Η αρχιτεκτονική του δικτύου SIP βασίζεται στην αρχιτεκτονική πελάτη/ εξυπηρετητή (client/server). Βασικές λογικές οντότητες είναι οι εξής: User Agent Είναι τα στοιχεία του δικτύου από όπου ξεκινούν οι SIP συνδέσεις. Επίσης είναι συνήθως και οι τελικοί προορισμοί των συνδέσεων. Π.χ. Internet phones(διαδικτυακά τηλέφωνα), software applications (εφαρμογές λογισμικό). Registrar Servers Δέχονται τις αιτήσεις για εγγραφή (subscribe, register) στα SIP δίκτυα. Κρατάνε τις απαραίτητες πληροφορίες για τους συνδρομητές που έχουν στην ευθύνη τους. Π.χ. Location servers. Proxy Servers Προωθούν τα SIP μηνύματα στα κατάλληλα υπο-δίκτυα για να βρουν αυτά τον προορισμό τους. Redirect Servers Εφόσον ο χρήστης δεν βρέθηκε στην τοποθεσία που είχε ο register server καταχωρημένη, οι redirect servers αναλαμβάνουν να βρουν πού έχει μετακινηθεί ο προορισμός και να ανακατευθύνουν την κλήση εκεί (user mobility). 28

45 Back To Back User Agents (B2BUA) Αναλυτικότερα ο user agent έχει ένα στοιχείο πελάτη (client), τον User Agent Client (UAC) και ένα στοιχείο κεντρικού υπολογιστή (server), τον User Agent Server (UAS). Το στοιχείο πελάτη (client) αρχικοποιεί τις κλήσεις ενώ το στοιχείο κεντρικού υπολογιστή (server) απαντά στις κλήσεις. Αυτό επιτρέπει σε κλήσεις peer-to-peer να πραγματοποιούνται χρησιμοποιώντας το μοντέλο client-server (αίτησης /απάντησης). Οι κεντρικοί υπολογιστές SIP (SIP servers) παρέχουν τις πληροφορίες που αφορούν τον καλούμενο, αφού ο καλών δεν είναι δυνατόν να γνωρίζει την ΙΡ διεύθυνση ή το host name του καλούμενου. Επίσης μεταφέρει μηνύματα σε άλλους κεντρικούς υπολογιστές (servers) χρησιμοποιώντας τα κατάλληλα πρωτόκολλα. Οι κεντρικοί υπολογιστές SIP (SIP servers) λειτουργούν με u948 δύο τρόπους: stateful και stateless. Η διαφορά τους έγκειται στο ότι στην stateful λειτουργία ο κεντρικός υπολογιστής (server) θυμάται τις εισερχόμενες αιτήσεις που έχει λάβει όπως επίσης και εκείνες που έχει στείλει και τις αποκρίσεις του. Μόλις σταλούν οι αιτήσεις από τον κεντρικό υπολογιστή (server) δεν κρατάει την πληροφορία. Από την άλλη πλευρά οι stateful servers είναι πιο κοντά στους user agents αφού ελέγχουν τα domains των χρηστών. Άλλες λειτουργίες που πραγματοποιούνται από τους κεντρικούς υπολογιστές (server) είναι το redirect και το forking. Στην άμεση (redirect) λειτουργία ο κεντρικός υπολογιστής (server) αντί να περάσει την πληροφορία στον επόμενο κεντρικό υπολογιστή (server) απλώς ενημερώνει τον καλούντα με την διεύθυνση του καλούμενου. Το forking έχει την δυνατότητα να δεσμεύει μια εισερχόμενη κλήση σε διάφορες περιοχές που δέχονται ταυτόχρονες κλήσεις με αποτέλεσμα να προωθείται η κλήση σε εκείνη την περιοχή που θα απαντήσει πρώτη.[20] Παράδειγμα μηνύματος Το πρωτόκολλο SIP βασίζεται στις ανταλλαγές μηνυμάτων. Υπάρχουν δύο τύποι μηνυμάτων: τα αιτήματα (requests) και οι ανταποκρίσεις (responses). Τα αιτήματα (requests) στέλνονται από τον πελάτη (client) στον κεντρικό υπολογιστή (server) και οι ανταποκρίσεις (responses) στέλνονται από τον κεντρικό υπολογιστή (server) στον πελάτη (client). Αναλυτικότερα ακολουθούν οι πίνακες 1.1 και 1.2 με τα αιτήματα (requests) και τις ανταποκρίσεις (responses). SIP MHNYMATA: RΕSPONSES Ενημερωτικά Επιτυχή Ανακατεύθυνση Λάθος στον client 29

46 Λάθος στον server Γενική αποτυχία Πίνακας 1.1 Μηνύματα responses INVITE CANCEL BYE UPDATE SUBSCRIBE REGISTER NOTIFY PRACK INFO ACK OPTIONS SIP MHNYMATA: REQUESTS Πρόσκληση για συμμετοχή σε διάσκεψη Ακύρωση σε μια συμμετοχή για διάσκεψη Λήξη της διάσκεψης Ανανέωση των παραμέτρων μιας διάσκεψης Αίτημα για την κατάσταση ενός απομακρυσμένου κόμβου Ανακοίνωση πληροφορίας χρήστη Αναφορά αλλαγών κατάστασης Provisional Response Acknowledgement Πληροφορία για ενδιάμεση κλήση Τριπλή χειραψία για την πρόσκληση συμμετοχής Ερώτηση σε server για τις δυνατότητες που διαθέτει Πίνακας1.2 Μηνύματα requests Παρακάτω παρατίθενται κωδικοί που χρησιμοποιούνται στην τρέχουσα έκδοση του πρωτοκόλλου. Οι περισσότεροι προέρχονται από το HTTP/1.1. Έχει οριστεί και μια νέα κλάση κωδικών σε σχέση με το HTTP/1.1 (6xx): 100 Trying: Ο επόμενος server έχει λάβει το μήνυμα και έχει προβεί σε κάποια ακαθόριστη ενέργεια για λογαριασμό της κλήσης. 180 Ringing: Ο UA που έλαβε το μήνυμα προσπαθεί να ενημερώσει τον χρήστη. 181 Call Is Being Forwarded: Η κλήση προωθείται. 182 Queued: Ο κληθείς UA δεν είναι διαθέσιμος. Ωστόσο η κλήση μπήκε σε σειρά προτεραιότητας και δεν απορρίφθηκε. 183 Session Progress: Το μήνυμα περιέχει πληροφορίες για την κατάσταση της κλήσης που δεν περιγράφονται από άλλα status codes. 200 OK: Η αίτηση έγινε δεκτή και επεξεργάστηκε επιτυχώς. 300 Multiple Choices: Το μήνυμα περιέχει μια λίστα με πιθανούς προορισμούς που μπορεί να απευθυνθεί ο χρήστης για ικανοποίηση 30

47 του αιτήματός του. Συνήθως περιλαμβάνονται και χαρακτηριστικά του κάθε προορισμού για να επιλεγεί ο καταλληλότερος. 301 Moved Permanently: Ο χρήστης δεν μπορεί να βρεθεί πλέον στο URI που περιέχει η αίτηση. Ο καλών θα πρέπει να ξαναπροσπαθήσει στο URI που βρίσκεται στο Contact header field του response. 302 Moved Temporarily: Ο χρήστης δεν μπορεί να βρεθεί προσωρινά στο URI που περιέχει η αίτηση. Ο καλών θα πρέπει να ξαναπροσπαθήσει στο URI που βρίσκεται στο Contact header field του response. 305 Use Proxy: Ο χρήστης πρέπει να ξαναστείλει το request, αυτή τη φορά μέσω του PS του οποίου το URI περιέχεται στο Contact header field του response. 380 Alternative Service: Η κλήση απέτυχε, αλλά είναι δυνατές εναλλακτικές υπηρεσίες. 400 Bad Request: Η αίτηση δεν έγινε κατανοητή, λόγω λανθασμένης σύνταξης. 401 Unauthorized: Απαιτείται πιστοποίηση του χρήστη. Χρησιμοποιείται από UASs και Registrars. 402 Payment Required: Κρατείται για μελλοντική χρήση. 403 Forbidden: Ο Server αρνείται να εκπληρώσει την αίτηση, ενώ την έχει κατανοήσει και δεν τίθεται θέμα πιστοποίησης του χρήστη. 404 Not Found: Ο καλών δεν υπάρχει στο domain που ορίζεται στο Request URI ή το domain δεν υπάρχει στη λίστα του SIP Server. 405 Method Not Allowed: Η μέθοδος που περιέχεται στην αίτηση δεν είναι επιτρεπόμενη για τη διεύθυνση που ορίζει το Request URI. 406 Not Acceptable: Ο καλών δεν είναι σε θέση να μεταδώσει τους τύπους μέσων που ορίζονται στο Accept header field 407 Proxy Authentication Required: Απαιτείται πιστοποίηση του χρήστη. Χρησιμοποιείται από PSs. 408 Request Timeout: Η αίτηση δεν μπόρεσε να επεξεργαστεί επιτυχώς εντός της προθεσμίας. 410 Gone: Ο καλών δε βρίσκεται πλέον στην περιοχή που ορίζεται στην αίτηση και δεν υπάρχουν πληροφορίες σχετικά με την τρέχουσα τοποθεσία του. 413 Request Entity Too Large: Το κυρίως μέρος της αίτησης είναι μεγαλύτερο από ότι μπορεί ή επιθυμεί να επεξεργαστεί ο Server. Αν πρόκειται για προσωρινό πρόβλημα ο Server μπορεί να συμπεριλάβει ένα Retry-After header field. 414 Request-URI Too Long: Το Request-URI είναι μεγαλύτερο από ότι μπορεί ή επιθυμεί να επεξεργαστεί ο Server. 415 Unsupported Media Type: : Το κυρίως μέρος της αίτησης είναι σε μορφή που δεν μπορεί να επεξεργαστεί ο Server. Στο αντίστοιχο 31

48 response θα πρέπει να περιλαμβάνονται το Accept, το Accept- Encoding, ή το Accept-Language header field. 416 Unsupported URI Scheme: Η μορφή του Request-URI είναι άγνωστη στο Server. 420 Bad Extension: O Server δεν κατανοεί την επέκταση του πρωτοκόλλου που περιλαμβάνεται στο Proxy-Require ή Require header field της αίτησης. 421 Extension Required: Ο UAS που έλαβε την αίτηση απαιτεί την ύπαρξη μιας συγκεκριμένης επέκτασης που δεν περιλαμβάνεται στο Supported header field της αίτησης. Το αντίστοιχο response πρέπει να περιλαμβάνει ένα Required header field με την απαιτούμενη επέκταση. 423 Interval Too Brief: Ο Server απορρίπτει την αίτηση γιατί ο χρόνος λήξης του στοιχείου που ανανεώνει την αίτηση ήταν πολύ μικρός. 480 Temporarily Unavailable: Ο καλών έλαβε την κλήση, αλλά δεν είναι διαθέσιμος. Στο αντίστοιχο response θα πρέπει να περιέχεται ένα Retry-After header field. 481 Call/Transaction Does Not Exist: H αίτηση δεν είναι μέρος κανενός από τους διεξαγόμενους διαλόγους ή συναλλαγές. 482 Loop Detected: Κατά τη δρομολόγηση της αίτησης διαπιστώθηκε ότι ακολουθεί ατέρμονη διαδρομή (loop). 483 Too Many Hops: Το Max-Forwards header field του μηνύματος μηδενίστηκε πριν παραδοθεί στον τελικό παραλήπτη. 484 Address Incomplete: Το Request-URI ήταν ημιτελές. 485 Ambiguous: Το Request-URI ήταν ασαφές 486 Busy Here: Η αίτηση παραδόθηκε επιτυχώς, αλλά ο χρήστης είναι απασχολημένος και δεν μπορεί να δεχθεί επιπλέον κλήσεις. Στο αντίστοιχο response μπορεί να περιέχεται ένα Retry-After header field ή ένα Contact header field με εναλλακτικές τοποθεσίες. 487 Request Terminated: Η αίτηση τερματίστηκε από μια BYE ή CANCEL request. 488 Not Acceptable Here: Στ συγκεκριμένο Server δε γίνεται δεκτό το Request-URI του μηνύματος. 491 Request Pending: Η αίτηση λήφθηκε από τον UA ενώ υπήρχε προγενέστερη αίτηση του ίδιου διαλόγου σε αναμονή. 493 Undecipherable: Η αίτηση λήφθηκε κανονικά αλλά περιέχει ένα κρυπτογραφημένο MIME κυρίως μέρος για το οποίο δεν υπάρχει διαθέσιμο κατάλληλο κλειδί αποκρυπτογράφησης. 500 Server Internal Error: Ο Server δεν μπόρεσε να ικανοποιήσει το αίτημα, χωρίς να ευθύνεται ο χρήστης. Η αίτηση θα πρέπει να επαναληφθεί αργότερα. 32

49 501 Not Implemented: Η λειτουργικότητα που χρειάζεται για να εξυπηρετηθεί η συγκεκριμένη αίτηση δεν υποστηρίζεται από το Server. 502 Bad Gateway: O Server ενώ προωθούσε το μήνυμα σαν Gateway, αντιμετώπισε κάποιο πρόβλημα με τη σύνδεσή του στο υπόλοιπο δίκτυο. 503 Service Unavailable: Ο Server είναι προσωρινά μη διαθέσιμος, λόγω φόρτου ή συντήρησης. 504 Server Time-out: Ο Server δεν έλαβε έγκαιρα απάντηση σε ένα μήνυμα που έστειλε σε άλλο Server προσπαθώντας να εξυπηρετήσει το request. 505 Version Not Supported: H έκδοση του SIP πρωτοκόλλου που υπάρχει στην αίτηση δεν υποστηρίζεται από το Server. 513 Message Too Large: To μήκος του μηνύματος ήταν μεγαλύτερο από αυτό που μπορεί να επεξεργαστεί ο Server. 600 Busy Everywhere: Η αίτηση του καλούντος δεν μπορεί να εξυπηρετηθεί πουθενά. 603 Decline: Η αίτηση παραδόθηκε κανονικά, αλλά απορρίφθηκε από τον κληθέντα. 604 Does Not Exist Anywhere: Ο Server έχει επιβεβαιωμένες πληροφορίες ότι ο χρήστης που αναφέρεται στο Request-URI δεν υπάρχει πουθενά. 606 Not Acceptable: Η αίτηση παραδόθηκε κανονικά, αλλά κάποιες παράμετροι (μέσο, εύρος ζώνης κλπ) δεν έγιναν δεκτές[21]. Tα τμήματα ενός μηνύματος είναι τα εξής: Start Line Headers Message Body Στην Start Line με την οποία ξεκινούν όλα τα SIP μηνύματα μεταβιβάζεται ο τύπος του μηνύματος και η έκδοση του πρωτοκόλλου. Η «αρχική γραμμή» μπορεί να είναι είτε μια Request-line όσον αφορά τα αιτήματα ή μια Status line για τις απαντήσεις. Δηλαδή ένα Request-line περιέχει το Request-URI το οποίο υποδεικνύει στον χρήστη ή στην υπηρεσία το σημείο όπου απευθύνεται το αίτημα. Το Status line κρατά τον αριθμητικό Status κώδικα και το αντίστοιχο κείμενο. Οι SIP Headers μεταβιβάζουν τα χαρακτηριστικά του μηνύματος που προσφέρουν περαιτέρω πληροφορίες για αυτό. Αποτελούνται από το header όνομα το οποίο ακολουθείται από μια header τιμή. Παραδείγματος χάρη: From: sip: 33

50 Στην παρούσα έκδοση του πρωτοκόλλου χρησιμοποιούνται τα παρακάτω πεδία στις επικεφαλίδες (header fields), ενώ μπορούν να οριστούν κι άλλα σε μεταγενέστερες εκδόσεις, ανάλογα με τις ανάγκες που πρέπει να εξυπηρετεί: Accept: Ορίζει τους τύπους μέσων (πχ text, audio, html) που είναι δεκτοί ως απάντηση Accept-Encoding: Ορίζει τις δεκτές κωδικοποιήσεις των μέσων Accept-Language: Ορίζει τις προτιμώμενες γλώσσες για την απάντηση. Alert-Info: Τροποποιεί τον ήχο εισερχόμενης κλήσης του χρήστη. Allow: Δηλώνει το σύνολο μεθόδων που υποστηρίζει ο UA. Μπορεί να περιληφθεί και σε Requests και σε Responses. Authentication-Info: Δίνει τη δυνατότητα αμοιβαίας πιστοποίησης με χρήση του HTTP Digest. Μπορεί να συμπεριληφθεί μόνο σε 2xx Responses από UAs. Authorization: Παρέχει πληροφορίες για την ταυτοποίηση του UA. Call-ID: Παράμετρος που χαρακτηρίζει μοναδικά μια συγκεκριμένη πρόσκληση (Request με INVITE method) ενός UA. Call-Info: Περιέχει επιπρόσθετες πληροφορίες για αυτόν που έστειλε το μήνυμα. Contact: Περιέχει ένα URI του οποίου το νόημα εξαρτάται από τον τύπο του μηνύματος. Content-Disposition: Περιγράφει τον τρόπο με τον οποίο το κυρίως μέρος του μηνύματος πρέπει να ερμηνευτεί. Content-Encoding: Αναφέρει τους μηχανισμούς αποκωδικοποίησης/ συμπίεσης που πρέπει να εφαρμοστούν στο κυρίως μέρος του μηνύματος. Content-Language: Αναφέρει τη γλώσσα στην οποία είναι γραμμένη το κυρίως μέρος του μηνύματος. Content-length: Το μέγεθος του κυρίως μέρους του μηνύματος. Content-Type: Ο τύπος του μέσου στο κυρίως μέρος του μηνύματος. CSeq: Παράμετρος που χρησιμοποιείται για να ορίσει μοναδικά μια συνεδρία στην οποία μετέχει ο ΜΝ. Αποτελείται από έναν ακέραιο 32 bit και μια μέθοδο. Date: Η ημερομηνία και ώρα. Error-Info: Περιέχει δείκτη σε επιπρόσθετες πληροφορίες για το λάθος που συνέβη. Για παράδειγμα, ένας UA που χρησιμοποιεί κάποια συσκευή τηλεφώνου θα χρειαστεί να ακούσει ένα προηχογραφημένο μήνυμα για το λάθος. Το πεδίο error-info περιέχει τη διεύθυνση του προηχογραφημένου μηνύματος και μένει στο UA να το αναπαράγει αν το κρίνει απαραίτητο. 34

51 Expires: Το χρονικό διάστημα (σε δευτερόλεπτα) μετά το οποίο το μήνυμα παύει να ισχύει. From: Δείχνει τον κόμβο που έστειλε (αρχικά) την αίτηση. Δε μεταβάλλεται σε περίπτωση αναμετάδοσης (για παράδειγμα από κάποιο PS). In-Reply-To: Περιέχει το Call-ID της κλήσης στην οποία αναφέρεται το μήνυμα. Χρησιμοποιείται για υπηρεσίες επανάκλησης (call-back). Max-Forwards: Περιορίζει τον αριθμό των PS και Gateways που μπορεί να προωθήσουν το μήνυμα. Πρόκειται για ακέραιο 8 bit (0-255). Min-Expires: Τον ελάχιστο χρόνο για τον οποίο στοιχεία της information base ενός SIP Server δεν μπορούν να αλλαχτούν. Σχετίζεται με την αποστολή μηνύματος με status-code 423 (Interval Too Brief) MIME-Version: Μηνύματα που έχουν δημιουργηθεί με βάση το ΜΙΜΕ πρωτόκολλο περιέχουν αυτό το header field που καθορίζει την έκδοσή του. Organization: Περιέχει το όνομα του οργανισμού στον οποίο ανήκει η SIP οντότητα που εξέδωσε το μήνυμα. Priority: Περιέχει την προτεραιότητα που πρέπει να δοθεί στο συγκεκριμένο μήνυμα σε περιπτώσεις συμφόρησης. Ορίζονται 4 κλάσεις προτεραιότητας "non-urgent", "normal", "urgent" και "emergency". Proxy-Authenticate: Περιέχει δεδομένα απαραίτητα για την ταυτοποίηση του UA που έστειλε το μήνυμα από έναν PS που πρόκειται να το επεξεργαστεί. Συνήθως αποτελεί απάντηση σε ένα Response με status code 407 (Proxy Authentication Required). Proxy-Authorization: Το περιεχόμενο του είναι στις περισσότερες περιπτώσεις ίδιο με του Proxy-Authenticate header field. Η μοναδική διαφορά είναι ότι οι PS δεν μπορούν να το τροποποιήσουν. Proxy-Require: Περιέχει τις προδιαγραφές που πρέπει να πληρεί ο PS για να επεξεργαστεί το μήνυμα. Record-Route: Προστίθεται από κάποιον PS, ώστε να αναγκάσουν και τα υπόλοιπα μηνύματα ενός dialog να δρομολογηθούν μέσω του ίδιου PS. Reply-To: Περιέχει ένα URI, όχι κατά ανάγκη ίδιο με αυτό του From header field. Μπορεί να χρησιμοποιηθεί για να αποστέλλονται λίστες με χαμένες ή ανεπιτυχείς κλήσεις. Require: Χρησιμοποιείται από UACs για να ενημερώσουν τους UASs για τις επιλογές που πρέπει να υποστηρίζουν, ώστε να επεξεργαστούν επιτυχώς το μήνυμα. 35

52 Retry-After: Πρόκειται για ένα ακέραιο που ισούται με το χρόνο (σε δευτερόλεπτα) που πρέπει να περιμένει ο καλών πριν ξανακαλέσει σε περίπτωση που λάβει κάποιο μήνυμα λάθους από τα παρακάτω: 404 (Not Found), 413 (Request Entity Too Large), 480 (Temporarily Unavailable), 486 (Busy Here), 00 (Server Internal Error), 503 (Service Unavailable) 600 (Busy), 603 (Decline). Route: Παρέχει μια συγκεκριμένη λίστα από PS μέσα από τους οποίους πρέπει να δρομολογηθεί το συγκεκριμένο μήνυμα. Server: Περιέχει πληροφορίες σχετικά με το software που χρησιμοποιεί ο UAS για να επεξεργαστεί το request. Subject: Το θέμα του μηνύματος. Supported: Περιέχει όλες τις επεκτάσεις που υποστηρίζει ο UA. Timestamp: Περιέχει τον χρόνο κατά τον οποίο το request στάλθηκε από τον UAC στον UAS. To: Περιέχει το URI του τελικού παραλήπτη. Unsupported: Περιέχει λίστα με χαρακτηριστικά που δεν υποστηρίζει ο UAS. User-Agent: Περιέχει πληροφορίες για τον UAC που δημιούργησε το request. Via: Περιέχει τη μέχρι τώρα διαδρομή που ακολούθησε το μήνυμα και δείχνει τη διαδρομή που θα πρέπει να ακολουθηθεί στη συνέχεια. Πρόκειται για χρήσιμο πεδίο για την αναγνώριση από τους PS ατέρμονων διαδρομών (loops). Warning: Περιέχει επιπρόσθετες πληροφορίες για την κατάσταση του response. Όπως και με τους status-codes υπάρχουν αντίστοιχοι warn-codes που αντιπροσωπεύονται και αυτοί με τριψήφιους κωδικούς. WWW-Authenticate: Χρησιμοποιείται για την πιστοποίηση του UAC από τον UAS. Συγκεκριμένα ο UAS συμπεριλαμβάνει αυτό το header field σε responses με status code 401 (Unauthorized) ζητώντας στοιχεία που να πιστοποιούν τον UAC. Στο Message Body περιγράφεται το είδος της διάσκεψης που θα ξεκινήσει προκειμένου να συμπεριληφθούν αποκωδικοποιητές εικόνας ή ήχου ή επίσης παρέχει δεδομένα που αφορούν την σύνοδο. Το «σώμα του μηνύματος» μπορεί να περιέχεται τόσο στις αιτήσεις όσο και στις απαντήσεις και μπορεί να περιέχει πληροφορίες για το SDP είτε για το MIME (Multipurpose Internet Mail Extensions) είτε για άλλα πρότυπα απο την IETF. Στους πίνακες 1.3 και 1.4 αναλύεται ένα παράδειγμα μηνύματος: 36

53 Μήνυμα Request Request Message Line Περιγραφή. INVITE SIP/2.0 Request line: Method type, Request-UR (SIP διεύθυνση του καλούμενου), έκδοση SIP. Via: SIP/2.0/UDP :5060; branch=z9hg4bk- Αναγνωρίζει την τοποθεσία όπου θα σταλεί η απάντηση. 2f059 Max-Forwards:70 Περιορίζει τον αριθμό των πηδημάτων της αίτησης έως ότου αυτή φθάσει στον προορισμό της. From: Alice A. Ο αρχικός χρήστης φτιάχνει την αίτηση η οποία περιέχει μια μοναδική ετικέτα. To: Bob B. Ο χρήστης που προσκαλείται δηλώνεται από την αρχή. Call-ID: Μοναδική σφαιρική ταυτότητα για αυτή την κλήση. CSeq: 1 INVITE Αλληλουχία εντολών. Αναγνωρίζει την εκτέλεση. Απευθείας διαδρομή προς την επαφή Alice σε περαιτέρω αιτήσεις. Subject: Lunch today. Αντικείμενο της κλήσης και η φύση της. Content-Type: application/sdp Τύπος body - εδώ SDP. Content-Length: 182. Αριθμός των bytes στο body. Η κενή γραμμή δηλώνει το τέλος των SIP headers και την αρχή του body. v=0 Έκδοση του SDP. o=alice IN IP s=call from Alice. c=in IP4 alice_ws.radvision.com M=audio 3456 RTP/AVP Ιδιοκτήτης δημιουργός και αναγνωριστής της συνόδου, η έκδοση της συνόδου, ο τύπος της διεύθυνσης και η διεύθυνση. Αντικείμενο της συνόδου. Πληροφορία για την σύνδεση. Περιγραφή των τύπων των μέσων: 37

54 τύπος, θύρα, πιθανό φορμάτ εκείνου που καλεί αν θα δέχεται και αν θα στέλνει. Πινακας1.3 παράδειγμα μηνύματος Request Response Message Line Μήνυμα Response Περιγραφή. SIP/ OK Via: SIP/2.0/UDP :5060; branch=z9hg4bk- 2f059 From:Alice A. To: Bob B. Κατάσταση γραμμής (Status line): έκδοση SIP, κώδικας απάντησης, περιγραφή αιτίας. Αντιγραμμένο από την αίτηση. Αντιγραμμένο από την αίτηση. Αντιγραμμένο από την αίτηση. Περιέχει μοναδική ετικέτα για να αναγνωρίσει το σκέλος της κλήσης. Call-ID: CSeq: 1 INVITE Αντιγραμμένο από την αίτηση. Αντιγραμμένο από την αίτηση. Απευθείας σύνδεση στην επαφή Bob. Content-Type: application/sdp Content-Length: 200 Η κενή γραμμή δηλώνει το τέλος των SIP headers και την αρχή του body. v=0 Έκδοση SDP. o=bob IN IP s=lunch Ιδιοκτήτης/ δημιουργός και Αναγνωριστής της συνόδου, η έκδοση της συνόδου, ο τύπος της διεύθυνσης και η διεύθυνση. Αντικείμενο συνόδου. Πίνακας1.4 παράδειγμα μηνύματος Response Πραγματοποίηση κλήσης και τερματισμός 38

55 Στο σχήμα της εικόνας 1.12 φαίνεται γραφικά μια κλήση και ο τερματισμός της: Εικόνα 1.15 Πραγματοποίηση κλήσης και τερματισμός Η ροή (flow) της κλήσης αναλυτικά έχει ως εξής: 1. Ο UA1 στέλνει ένα μήνυμα INVITE στην SIP διεύθυνση του Bob: Αυτό το μήνυμα επίσης περιέχει και ένα SDP πακέτο που περιγράφει τις δυνατότητες των media του καλούμενου τερματικού. 2. Ο UA2 ο λαμβάνει το request και απαντά άμεσα με απαντητικό μήνυμα 100-Trying. 3. O UA2 αρχίζει να κάνει μηχανισμούς για να ενημερώσει τον Bob για τη νέα κλήση. Ταυτόχρονο ένα μήνυμα 180 Ringing στέλνεται στον UAC. 4. O UA2 στέλνει ένα μήνυμα της θέσης της κλήσης 182 Queued για να δηλώσει ότι η κλήση είναι τρίτη στην σειρά πίσω από άλλες δύο κλήσεις. 5. O UA2 στέλνει ένα μήνυμα της θέσης της κλήσης 182 Queued για να δηλώσει ότι η κλήση είναι πίσω από μια άλλη κλήση στη σειρά. 6. O Bob απαντά στην κλήση και ο UA2 στέλνει ένα μήνυμα 200 OK στον καλούντα UA. Το μήνυμα αυτό επίσης περιέχει ένα SDP πακέτο που περιγράφει τις δυνατότητες του τερματικού του Βοb. 7. O UA1 στέλνει ένα ACK request για να επιβεβαιώσει ότι το 200 OK παραλήφθηκε. 39

56 Η ροή της κλήσης για την κατάργηση της κλήσης έχει ως εξής: 1. O καλούμενος αποφασίζει να τερματίσει την κλήση και κλείνει το τηλέφωνο. Στέλνεται έτσι ένα BYE request στον UA2. 2. Ο UA2 απαντά με ένα μήνυμα 200 (OK) και ενημερώνει τον Bob ότι η συνομιλία έληξε Ανακατεύθυνση κλήσης Στο σχήμα της εικόνας 1.16 φαίνεται η ανακατεύθυνση μιας κλήσης: Εικόνα 1.16 Ανακατεύθυνση κλήσης Η ροή της κλήσης αναλυτικά έχει ως εξής: 1. Αρχικά ένα SIP INVITE μήνυμα στέλνεται στο αλλά βρίσκει τον άμεσο κεντρικό υπολογιστή (Redirect server) sip.acme.com μαζί με την σηματοδοτημένη διαδρομή (signaling path). 2. Ο άμεσος κεντρικός υπολογιστής (Redirect server) ελέγχει την τωρινή θέση του Bob σε μια θέση υπηρεσίας (Location Service) χρησιμοποιώντας ένα πρωτόκολλο που δεν είναι SIP (π.χ. LDAP). 3. Η θέση υπηρεσίας (Location Service) επιστρέφει την τωρινή θέση του Bob: SIP address 4. Ο Redirect Server επιστρέφει την πληροφορία στον καλούντα UA με ένα προσωρινό 302 response μήνυμα. Στο μήνυμα αυτό βάζει μια 40

57 επικεφαλίδα επαφής (contact header) και θέτει την τιμή στην τωρινή θέση του Bob, 5. Ο καλούντας UA αναγνωρίζει την απάντηση και στέλνει ένα ACK μήνυμα. 6. Ο καλούντας UAC συνεχίζει στέλνοντας ένα νέο INVITE μήνυμα απευθείας στο gw.telco.com. 7. Το gw.telco.com μπορεί να ειδοποιήσει το τερματικό του Bob για την κλήση και ο Bob σηκώνει το τηλέφωνο. Ένα 200 (OK) response μήνυμα στέλνεται πίσω στον calling UA. 8. Ο καλούντας UA το αποδέχεται με ένα ACK μήνυμα Call Proxy Στο σχήμα της εικόνας 1.17 φαίνεται πώς πραγματοποιείται μια κλήση με την βοήθεια του Proxy Server: Εικόνα 1.17 πραγματοποίηση κλήσης με την βοήθεια του Proxy Server Η ροή της κλήσης αναλυτικά έχει ως εξής: 1. Ένα INVITE μήνυμα στέλνεται στο αλλά βρίσκει τον Proxy server sip.acme.com μαζί με την σηματοδοτημένη διαδρομή (signaling path). 2. Ο Proxy server απαντά αμέσως με ένα προσωρινό μήνυμα 100 Trying Response. 3. Ο Proxy server ελέγχει την τωρινή θέση του Bob σε μία θέση υπηρεσίας (Location Service) χρησιμοποιώντας ένα πρωτόκολλο που δεν είναι SIP (π.χ. LDAP). 41

58 4. Η θέση υπηρεσίας (Location Service) επιστρέφει την τωρινή θέση του Bob: SIP address, 5. Ο Proxy server αποφασίζει να δημιουργήσει εκ νέου ένα INVITE βασισμένο πάνω στο αρχικό INVITE μήνυμα αλλά με το Request- URI στην γραμμή έναρξης (start line) να έχει αλλάξει σε Ο Proxy server στέλνει αυτή την request στο UA2. 6. Ο UA2 απαντά αρχικά με ένα μήνυμα 100 Trying. 7. Ο UA2 απαντά με ένα μήνυμα 180 Ringing response. 8. Ο Proxy server προωθεί το μήνυμα 180 Ringing response πίσω στον UA1. 9. Όταν η κλήση γίνει δεκτή από τον χρήστη, τότε ο UA2 στέλνει ένα 200 (OK) response μήνυμα. Εδώ ο UA2 βάζει μια επικεφαλίδα επαφής (Contact header) στην response με την τιμή Περαιτέρω SIP επικοινωνία θα σταλεί απευθείας και όχι μέσω του Proxy server. 10. Ο Proxy προωθεί το 200 (OK) response μήνυμα πίσω στον καλούντα UAC. 11. Ο καλούντα UA στέλνει ένα ACK μήνυμα απευθείας στον UA2 (σύμφωνα με το Contact header που ήταν μέσα στο 200 (OK) response μήνυμα)[20] Πλεονεκτήματα πρωτοκόλλου SIP Το SIP εμφανίζεται να υπερτερεί συγκριτικά με άλλα πρωτόκολλα αφού τα μηνύματά του είναι σε κείμενο (text) οπότε η ανάγνωση και η μεταβολή τους δεν αποτελεί δύσκολη υπόθεση. Επίσης το πρωτόκολλο επαναχρησιμοποιεί λειτουργίες και συστήματα που προϋπάρχουν, οπότε οι νέες υπηρεσίες είναι ήδη τεκμηριωμένες και αξιόπιστες. Τόσο το SIP όσο και οι clients χρησιμοποιούν τον MIME τύπο περιγραφής, οπότε εφαρμογές που σχετίζονται με συνόδους μπορούν να πραγματοποιηθούν ταυτόχρονα. Το πρωτόκολλο είναι ένα ανεξάρτητο επίπεδο μεταφοράς επομένως το από κάτω επίπεδο μπορεί να είναι ΙΡ. Το ότι χρησιμοποιεί τα UDP και TCP πρωτόκολλα επιτρέπει στους χρήστες να επικοινωνούν άνετα ανεξάρτητα από την υποδομή στην οποία στηρίζεται ο καθένας. Το πρωτόκολλο επιτρέπει πολλαπλή συνεργασία διαφορετικών συσκευών μεταξύ τους.[21] H Εισαγωγή 42

59 Το Η.323 είναι μια σύσταση της ΙΤU (Telecommunication Standarization Sector (ITU-T)) που ορίζει τα πρωτόκολλα τα οποία παρέχουν οπτικοακουστικές συνόδους πάνω από οποιοδήποτε δίκτυο. Ανήκει στην οικογένεια των πρωτοκόλλων της σειράς Η.32* τα οποία απευθύνονται τόσο στο δημόσιο δίκτυο μεταγωγής κυκλωμάτων (Public Switched Telephone Network - PSTN), στο Ψηφιακό δίκτυο ενοποιημένων υπηρεσιών (Integrated Services Digital Network - ISDN) αλλά και στο σύστημα σηματοδοσίας 7 (Signaling System - SS7). Ο βασικός στόχος για τον οποίο σχεδιάστηκε το Η.323 ήταν η μετάδοση φωνής, αργότερα όμως και η μετάδοση εικόνας και δεδομένων σε packet switched δίκτυα αποτέλεσε ακόμη ένα λόγο για την δημιουργία του. Επίσης μεγάλη σημασία είχε και το interoperability ανάμεσα σε αυτά τα δίκτυα και το Η.323 ήρθε να βοηθήσει προς αυτή την κατεύθυνση επίσης. Η ανάγκη για την ανάπτυξη νέων ολοκληρωμένων υπηρεσιών, όπου το κόστος ταυτόχρονα θα μειωνόταν αλλά και η ανάγκη για τηλεδιασκέψεις, για το ηλεκτρονικό εμπόριο αλλά και η ανάγκη για την εκπαίδευση από απόσταση δημιούργησαν το Η.323 το οποίο μέχρι και σήμερα αποτελεί την βάση για άλλα πρωτόκολλα τα οποία προορίζονται για τις ίδιες εφαρμογές. Το ίδιο το Η.323 είναι βασισμένο σε προϋπάρχοντα πρότυπα όπως είναι το H.320, RTP και το Q.931. Αυτό το οποίο οι σχεδιαστές του πρωτοκόλλου είχαν στο μυαλό τους ήταν οι ετερόκλητες ανάγκες μεταξύ χρηστών και μεταξύ εταιριών και μελλοντικές αλλαγές που θα συνέβαιναν αναπόφευκτα. Για αυτό το λόγο θεώρησαν σωστό να σχεδιαστεί ένα πρωτόκολλο το οποίο θα είναι ευέλικτο σε μελλοντικές αλλαγές και όπου οι εταιρίες θα μπορούν να προσθέτουν τα δικά τους χαρακτηριστικά (specifications) και να πραγματοποιούν αλλαγές τις οποίες θα υποστηρίζει το πρωτόκολλο εξαρχής. Σήμερα το Η.323 είναι ένα από τα πλέον χρησιμοποιούμενα πρωτόκολλα που προτιμάται από πολλούς χρήστες και εταιρείες.[22] Ιστορική αναδρομή Εκδόσεις Το πρότυπο Η.323 αρχικά δημιουργήθηκε για να παρέχει τους μηχανισμούς για την μετάδοση πολυμεσικών εφαρμογών πάνω από LAN δίκτυα. Παρόλα αυτά όμως σύντομα αναπτύχθηκε για να επεκταθεί στις ανάγκες των VoIP δικτύων και στις συνεχώς αυξανόμενες απαιτήσεις του Internet. Το Η.323 ξεκίνησε να γράφεται τον Μάιο του 1995 και εγκρίθηκε από την ΙΤU-Τ και από την 16 η ομάδα της, που ασχολείται με το πρωτόκολλο αυτό, τον Φεβρουάριο του 1996 για την πρώτη του έκδοση, 43

60 την ίδια χρονική περίοδο δηλαδή όπου εκδόθηκε η πρώτη περιγραφή του SIP. Η αρχική του βασική λειτουργία παρείχε μόνο την μετάδοση φωνής u949 ενώ αργότερα αυτό που κυριάρχησε ως και σήμερα είναι η μετάδοση βίντεο και δεδομένων εκτός από την φωνή. Αυτό το έκανε να είναι ανταγωνιστικό για τις επιχειρήσεις που επιθυμούσαν κάτι παραπάνω από απλές τηλεφωνικές κλήσεις. Άλλωστε το πρωτόκολλο αυτό είναι το πρώτο VoIP πρότυπο που χρησιμοποίησε το RTP (Real Time Protocol) της IETF (Internet Engineering Task Force) για μετάδοση ήχου και εικόνας πάνω από ΙΡ. Το Η.323 είναι βασισμένο στο Integrated Services Digital Network (ISDN) Q.931 πρωτόκολλο το οποίο επιτρέπει την επικοινωνία με PSTN δίκτυα ή την σηματοδοσία SS7. Το Η.323 έχει συνολικά 6 εκδόσεις. Αναλυτικότερα, η πρώτη έκδοση του Η.323 πραγματοποιήθηκε το 1996 όπου εστίαζε πάνω στην μετάδοση φωνής, βίντεο και δεδομένων. Η δεύτερη έκδοσή του πραγματοποιήθηκε το 1998, όπου εστίαζε πάνω στην internet τηλεφωνία και παρουσίαζε ανάπτυξη σε ήδη υπάρχοντα πρωτόκολλα όπως είναι το Η225 το πρωτόκολλο το οποίο περιγράφει πρωτόκολλα σηματοδοσίας RAS, Call Signaling, Annex G και το Η245 το πρωτόκολλο που ελέγχει άλλα πολυμεσικά πρωτόκολλα. Η τρίτη έκδοση πραγματοποιήθηκε το 1999 με ιδιαίτερες βελτιώσεις πάνω στο βασικό πρότυπο ενώ η τέταρτη έκδοση του πρωτοκόλλου πραγματοποιήθηκε το 2000 και εμπεριέχονταν βασικές βελτιώσεις οι οποίες εστίαζαν πάνω στις απαιτήσεις των παρόχων υπηρεσιών για ασφάλεια και αξιοπιστία. Η πέμπτη έκδοση πραγματοποιήθηκε τον Ιούλιο του 2003 όπου βασίστηκε πάνω στην πρώτη έκδοση για περισσότερη σταθερότητα από το να εισαχθούν στοιχεία που θα έθεταν το πρωτόκολλο σε αμφισβήτηση. Η έκτη έκδοση του Η.323 πραγματοποιήθηκε τον Ιούνιο του 2006 και δεν υπάρχουν ιδιαίτερες αλλαγές στη βάση του αλλά κάποια νέα μηνύματα όσων αφορά άλλα πρωτόκολλα. Σήμερα το πρωτόκολλο υλοποιείται από διάφορες εφαρμογές σε πραγματικό χρόνο όπως είναι το Net Meeting και το Ekiga μεταξύ άλλων. Οι εφαρμογές του Η.323 για να πραγματοποιηθούν βασίζονται πάνω σε ένα open source project το OpenH.323 πάνω στο οποίο αναπτύσσονται δύο βιβλιοθήκες η OpenH.323 και η PWlib με σκοπό να αφήσουν τους προγραμματιστές να κινηθούν σε υψηλό επίπεδο προγραμματισμού ενώ οι ίδιες αναλαμβάνουν την λεπτομέρεια του πηγαίου κώδικα.[23] Αρχιτεκτονική Η.323 Το πρότυπο Η.323 καθορίζει λεπτομερώς τέσσερα είδη στοιχείων (components) τα οποία βρισκόμενα όλα μαζί δικτυωμένα μπορούν να παράσχουν από σημείο σε σημείο (point-to-point) και από σημείο σε πολλά σημεία (point-to-multipoint), πολυμεσικές επικοινωνιακές 44

61 υπηρεσίες. Η αρχιτεκτονική λοιπόν του Η.323 αποτελείται από τα εξής στοιχεία: Τερματικά (Terminals) Πύλες (Gateways), Gatekeepers Πολυσημειακές μονάδες ελέγχου (Multipoint Control Units MCUs) Πολυσημειακός ελεγκτής (Multipoint Controller) Πολυσημειακός επεξεργαστής (Multipoint Processor) H.323 proxy. Τα τερματικά (Terminals), οι πύλες()gateways) και οι πολυσημειακές μονάδες ελέγχου(multipoint Control Units MCUs) ονομάζονται επίσης και τελικά σημεία(endpoints). Τερματικά (Terminals) Ένα Η.323 τερματικό είναι ένα τελικό σημείο (endpoint) στο LAN το οποίο συμμετέχει σε πραγματικό χρόνο σε αμφίδρομες επικοινωνίες με άλλα Η.323 τερματικά (terminal), πύλες (gateway) ή Πολυσημειακές μονάδες ελέγχου(mcu). Μπορεί να είναι ένας υπολογιστής(pc) ή κάποια άλλη συσκευή η οποία τρέχει το Η.323 και κάποια πολυμεσική υπηρεσία παραδείγματος χάρη μπορούν να είναι τηλέφωνα, βιντεοτηλέφωνα, συσκευές IVR, συστήματα τηλεφωνητή(voic ) και τηλέφωνο λογισμικού (softphones). Το τερματικό υποστηρίζει υποχρεωτικά την μετάδοση ήχου ενώ προαιρετικά την μετάδοση βίντεο και δεδομένων. Δηλαδή, ένα τερματικό θα πρέπει να υποστηρίζει επικοινωνία για μετάδοση ήχου, εικόνας και ήχου, ήχου και δεδομένων ή και συνδυασμό των προηγούμενων. Για αυτό το λόγο τα τερματικά (terminals) είναι σημαντικό κομμάτι της ΙΡ τηλεφωνίας. Βασικός στόχος των H.323 τερματικών είναι η διαδραστικότητά τους με άλλα τερματικά πολυμέσων (multimedia terminals). Τα H.323 τερματικά (terminals) είναι συμβατά με τα H.324 τερματικά (terminals) σε SCN (Seattle Community Network) και ασύρματα δίκτυα, τα H.310 terminals πάνω σε B ISDN, τα H.320 terminals πάνω σε ISDN, τα H.321 terminals πάνω σε B ISDN και τα H.322 terminals σε QoS LANs. Τα H.323 terminals δύναται να χρησιμοποιηθούν σε πολυσημειακές (multipoint) συνόδους. Προαιρετικά τα Η.323 τερματικά μπορούν να υποστηρίζουν αλληλεπιδραστικές συσκευές. Παράλληλα, τα Η.323 τερματικά υποστηρίζουν τις διεπαφές (interfaces) που διαθέτει ο χρήστης, κωδικοποιητές /αποκωδικοποιητές (CODECs) για ήχο και εικόνα, τα Τ.120 πρωτόκολλα δεδομένων, τις δυνατότητες της πολυσημειακής μονάδας ελέγχου (MCU), όπως επίσης το εξάρτημα(component) Η.225 που ονομάζεται RAS (Registration/Admission/Status) και το οποίο είναι ένα πρωτό- 45

62 κολλο το οποίο χρησιμοποιείται προκειμένου να υπάρξει επικοινωνία με τον Gatekeeper. Πύλες (Gateway) Οι Η.323 gateway αποτελούν προαιρετικό συστατικό του πρωτοκόλλου. Προσφέρει την συνδεσιμότητα και τη διαλειτουργικότητα (interoperability) που χρειάζεται τόσο μεταξύ των Η.323 δικτύων όσο και μεταξύ δικτύων που είναι συμβατά με τον Διεθνή Οργανισμό Τηλεπικοινωνιών (International Telecommunications Union -compliant) όπως είναι το PSTN και τα τηλεφωνικά κέντρα. Η συνδεσιμότητα διαφορετικών δικτύων επιτυγχάνεται με την μετάφραση των πρωτοκόλλων για την εγκατάσταση μιας κλήσης (call setup) και την ενεργοποίηση μιας κλήσης (call release), την μετατροπή των media formats και τη μετάδοση πληροφορίας μεταξύ διαφορετικών δικτύων που είναι ενωμένα από την gateway. Οι gateway έχουν αναλάβει την μετάφραση στο επίπεδο της σηματοδότησης της κλήσης (call signaling) Q931 σε H.225 και του έλεγχου(control) H.242 σε H.245. Υποστηρίζουν πολλές τερματικές συσκευές οι οποίες είναι συμβατές με τα Η.320, Η.310, Η.322. Επίσης παρέχουν και την μετάφραση μεταξύ των κωδικοποιητών-αποκωδικοποιητών (CODECs) ήχου και εικόνας όπως επίσης και πραγματοποιούν την εγκατάσταση(call setup) και τον καθαρισμό(clearing). Gatekeeper O Gatekeeper αν και αποτελεί και αυτός προαιρετικό συστατικό του Η.323 εντούτοις θεωρείται ότι είναι η καρδιά του Η.323. Εκτελεί υπηρεσίες που έχουν να κάνουν με τη διευθυνσιοδότηση (addressing), εξουσιοδότηση ( authorization) και authentication των τερματικών(terminals) και των πυλών (gateways), όπως επίσης με τα λογιστικά προγράμματα (accounting), την έκδοση λογαριασμών (billing) και τη χρέωση των υπηρεσιών. Επίσης εκτελεί δύο σημαντικές λειτουργίες προκειμένου να διατηρηθεί η καλή λειτουργία των δικτύων. Έχει αναλάβει την μετάφραση των διευθύνσεων ανάμεσα σε τοπικά δίκτυα (Local Area Network (LAN)) συνδέσμους για τερματικά(terminals) και πύλες (gateways) και ΙΡ ή ΙΡΧ διευθύνσεις. Η άλλη του λειτουργία είναι να διαχειρίζεται το εύρος χωρητικότητας μιας δικτυακής σύνδεσης (bandwidth) ενώ μπορεί να παρέχει και υπηρεσίες που αφορούν την 46

63 δρομολόγηση (rooting) μιας κλήσης. Για παράδειγμα ο Gatekeeper μπορεί να αρνηθεί να δημιουργηθούν νέες συνδέσεις σε μια τηλεδιάσκεψη σε περίπτωση που έχει τεθεί όριο συμμετεχόντων. Έτσι σώζεται χώρος προκειμένου η τηλεδιάσκεψη που θα πραγματοποιηθεί να επιτρέπει μεταφορά δεδομένων και την αλληλογραφία στους συμμετέχοντες. Η ζώνη του Η.323 είναι μια λογική και όχι μια φυσική οντότητα και υφίσταται όταν ένας Gatekeeper ελέγχει τα τερματικά(terminal), τις πύλες (Gateways) και τις πολυσημειακές μονάδες ελέγχου (MCUs). Μια ζώνη μπορεί να είναι μοιρασμένη σε περισσότερα από ένα δίκτυα. Πολυσημειακές μονάδες ελέγχου (Multipoint Control Unit (MCU)) Η MCU είναι υπεύθυνη για να παρέχει υποστήριξη για συνδιασκέψεις πολλών σταθμών Η.323. Όλα τα τερματικά που συμμετέχουν είναι συνδεδεμένα με την MCU. Διαχειρίζεται τους διαθέσιμους πόρους για την συνδιάσκεψη ενώ βοηθά και στην διαπραγμάτευση μεταξύ των τερματικών για το πως θα χρησιμοποιηθούν οι κώδικες, ποιοι κωδικοποιητές (coder) και αποκωδικοποιητές (decoder) για ήχο και εικόνα πρόκειται να συμπεριληφθούν στην σύσκεψη. Μπορεί επίσης να ξεκινήσει μια point-to-point διάσκεψη μεταξύ δύο τερματικών η οποία αργότερα μπορεί να εξελιχθεί σε multipoint διάσκεψη. Πολυσημειακός Ελεγκτής (Multipoint Controller) Είναι και αυτό τμήμα της αρχιτεκτονικής του Η.323 αφού η MCU αποτελείται από έναν ή περισσότερους multipoint controller και ο οποίος διαχειρίζεται τις διαπραγματεύσεις του Η.245 και ασχολείται με τις κοινές δυνατότητες για τον ήχο και το βίντεο. Πολυσημειακός Επεξεργαστής (Multipoint Processor) Η MCU αποτελείται από έναν ή περισσότερους multipoint processor ο οποίος ασχολείται με το mixing, το switching και το processing των bits που αφορούν τον ήχο την εικόνα και τα δεδομένα. H.323 Proxy Ένας Η.323 proxy server είναι ένας proxy που είναι ειδικά σχεδιασμένος για το Η.323 πρωτόκολλο και εξετάζει πακέτα μεταξύ δύο εφαρμογών. Μπορεί να ορίσει την απόσταση μιας κλήσης και να εκτελεί βήματα τις κλήσεις αν αυτό κριθεί απαραίτητο. Πιο συγκεκριμένα εκτελούν τις ακόλουθες λειτουργίες: 47

64 Τα τερματικά φωνής που δεν υποστηρίζουν το Resource Reservation Protocol (RSVP) μπορούν να συνδεθούν με απομακρυσμένη πρόσβασή ή με τοπικά δίκτυα με τους proxy έχοντας ποιότητα υπηρεσίας (QoS). Συνδυασμένοι proxy μπορούν να αναπτύξουν τούνελς στο ΙΡ δίκτυο. Οι proxy υποστηρίζουν την κίνηση Η.323 πέρα από τη συνήθη κίνηση για δεδομένα χρησιμοποιώντας το application-specific routing (ASR). Οι proxy είναι συμβατοί με τις λειτουργίες για μεταφράσεις διευθύνσεων στα gateways ή gatekeepers επιτρέποντας έτσι στο Η.323 να αναπτυχθεί σε ιδιωτικό χώρο διευθύνσεων Πλεονεκτήματα του H323 Το Η.323 διακρίνεται για κάποια πλεονεκτήματα του που το καθιστούν ιδιαίτερα ελκυστικό. Σε μια σύντομη ανάλυση μπορούμε να αναφέρουμε τα παρακάτω βασικά του πλεονεκτήματα: 1. Πρότυπα για κωδικοποίηση (Codec): Το H.323 καθιερώνει πρότυπα για την συμπίεση και από-συμπίεση των ροών δεδομένων ήχου και εικόνας, εγγυώντας έτσι ότι διαφορετικές συσκευές από διαφορετικούς πωλητές (vendors) θα μπορούν να έχουν μια κοινή επιφάνεια επικοινωνίας και υποστήριξης. 2. Διαλειτουργικότητα (Interoperability): Οι χρήστες είναι γνωστό πως επιθυμούν να κάνουν συνδιάσκεψη δίχως την έγνοια για το αν θα υπάρχει συμβατότητα με το σημείο που θα λαμβάνει. Εκτός από αυτό ο δέκτης μπορεί να αποσυμπιέσει την πληροφορία και το Η.323 εγκαθιστά μεθόδους για την λήψη clients για τις δυνατότητες επικοινωνίας με τον αποστολέα. Το πρότυπο επίσης εγκαθιστά κοινά setup κλήσεων και πρωτοκόλλων ελέγχου. 3. Ανεξαρτησία Δικτύων: Το H.323 είναι σχεδιασμένο να τρέχει στην κορυφή των συνήθων αρχιτεκτονικών δικτύων. Καθώς η τεχνολογία δικτύων και οι διαδικασίες για τη διαχείριση του εύρους ζώνης(bandwidth) βελτιώνονται, προτάσεις βασισμένες πάνω στο H.323 θα μπορούν να χρησιμοποιήσουν όλα αυτά τα πλεονεκτήματα που τους παρέχονται. 4. Ανεξαρτησία Πλατφόρμας Και Εφαρμογών: Το H.323 δεν εξαρτιέται από κανένα σύστημα hardware ή λειτουργικού. Οι συμβατές με το H.323 πλατφόρμες είναι διαθέσιμες σε πολλά είδη και μεγέθη που συμπεριλαμβάνουν δυνατότητες για βίντεο, ΙΡ τηλέφωνα, καλωδιακές τηλεοράσεις κ.ο.κ. 48

65 5. Multipoint Υποστήριξη: Αν και το H.323 μπορεί να υποστηρίξει συνόδους με 3 ή περισσότερους τελικούς δέκτες χωρίς να χρειάζεται κάποια συγκεκριμένη MCU, μπορεί να παρέχει πιο δυνατή και ευέλικτη αρχιτεκτονική για να φιλοξενήσει multipoint συνόδους. 6. Διαχείριση Bandwidth: Η κίνηση εικόνας και ήχου απαιτεί σωστή διαχείριση. Το Η.323 προσφέρει αυτή την διαχείριση. Οι υπεύθυνοι των δικτύων (Network managers) μπορούν να βάλουν ένα συγκεκριμένο αριθμό για Η.323 ταυτόχρονες συνδέσεις μέσα στο δίκτυο ή να διαχειριστούν το εύρος ζώνης (bandwidth) στις διάφορες H.323 εφαρμογές. Αυτά τα όρια διασφαλίζουν την σωστή κίνηση μέσα στο δίκτυο. 7. Multicast Υποστήριξη: Το H.323 υποστηρίζει πολλαπλής διανομής μεταφορά σε πολυσημειακές συνόδους. Το Multicast στέλνει ένα πακέτο με τους προορισμούς στο δίκτυο δίχως αντίγραφο. Αντίθετα, οι unicast στέλνουν πολλαπλές εκπομπές point-to-point καθώς το broadcast στέλνει προς όλους. Σε unicast ή broadcast εκπομπή, το δίκτυο χρησιμοποιείται ανεπαρκώς καθώς τα πακέτα αντιγράφονται πάνω στο δίκτυο. Στην Multicast εκπομπή χρησιμοποιείται το εύρος ζώνης σωστότερα αφού όλοι οι σταθμοί στο multicast γκρουπ διαβάζουν ένα μόνο stream δεδομένων. 8. Ευελιξία: Μια H.323 σύνοδος μπορεί να περιλαμβάνει τελικά σημεία (end-points) με διαφορετικές δυνατότητες. Παραδείγματος χάρη ένα τερματικό που διαθέτει μόνο δυνατότητες για ήχο μπορεί να συμμετάσχει σε συνόδους με άλλα τερματικά που υποστηρίζουν ήχο ή/και εικόνα ή και δεδομένα. Επιπλέον ένα πολυμεσικό τερματικό Η.323 μπορεί να συνυπάρξει με ένα τερματικό που είναι T.120 για δεδομένα μόνο την στιγμή που μοιράζεται ήχο, εικόνα και δεδομένα με άλλα Η.323 τερματικά. 9. Δια-δικτυακές σύνοδοι: Πολλοί χρήστες LAN δικτύου επιθυμούν να πραγματοποιήσουν συνόδους με άλλους σε απομακρυσμένο σημείο. Για παράδειγμα το Η.323 μπορεί να επικοινωνήσει με σύνοδο με γκρουπ που είναι βασισμένα στο ISDN. Το H.323 χρησιμοποιεί τεχνολογία κωδικοποίησης από διαφορετικά πρότυπα τηλεδιάσκεψης προκειμένου να ελαχιστοποιήσει τις καθυστερήσεις από το transcoding και να παράσχει πολύ υψηλή απόδοση Πρωτόκολλα που καθορίζει το Η.323 Το Η.323 ακριβώς επειδή αποτελεί πρωτόκολλο «ομπρέλα», περιγράφει την χρήση των H.225.0, H.245 αλλά και άλλων προτύπων που αφορούν στην παράδοση των υπηρεσιών για συνόδους που είναι βασισμένα στην μεταφορά πολυμεσικών πακέτων. Δηλαδή το Η.225 περιγράφει τρία πρωτόκολλα σηματοδοσίας που είναι το RAS, το Call 49

66 Signaling, και το Annex G, ενώ το Η.245 περιγράφει το πρωτόκολλο που αφορά τον έλεγχο τον πολυμέσων και είναι παρόμοιο με τα Η.323, Η.310 και Η.324. Πέρα όμως από τα βασικά το Η.323 περιγράφει και κάποια επιπρόσθετα πρότυπα όπως είναι το H.235 που ασχολείται με τη ασφάλεια μεταξύ συστημάτων βασισμένων πάνω σε H.245, το H.246 που ασχολείται με την διάδραση με το δίκτυο PSTN. Ακόμη ασχολείται με τα H.450.x πρότυπα που αναφέρονται σε επιπρόσθετες υπηρεσίες και με την σειρά των H.460.x που αποτελούν επεκτάσεις του κυρίως Η.323 πρωτοκόλλου. Επιπροσθέτως το Η.323 περιγράφει και το πρωτόκολλο Η.501 που ασχολείται με την διαχείριση κινητικότητας για inter-intra επικοινωνία ενώ το παρουσιάζει και το H.510 που αφορά τους χρήστες τα τερματικά και την κινητικότητα της υπηρεσίας Μετάδοση ήχου κινούμενης εικόνας και δεδομένων Ο βασικός στόχος του Η.323 είναι να καταφέρει να μεταδώσει ήχο. Αυτή την λειτουργία υποχρεωτικά την υποστηρίζουν όλα τα τερματικά. Οι διαφορές που υπάρχουν ανάμεσα στις συστάσεις της ΙTU περιγράφουν τα trades off και τις διαφορές που υπάρχουν ανάμεσα στα χαρακτηριστικά όπως είναι η υπολογιστική ισχύ, η ποιότητα ήχου, ο ρυθμός μετάδοσης και η καθυστέρηση του σήματος. Το G.711 προσφέρει παλμοκωδική διαμόρφωση στις συχνότητες της φωνής. Το G.722 δίνει ψηφιακή φωνή με δειγματοληψία στα 7 ΚHz, ενώ τo G μεταφέρει φωνή με χαμηλό ρυθμό μετάδοσης (bit rate). Τo G.728 επιτρέπει την ψηφιακή μετάδοση φωνής με κωδικοποίηση χαμηλής καθυστέρησης. Η μετάδοση βίντεο δεν είναι υποχρεωτική για τα τερματικά του Η.323. Είναι όμως από τις πιο σημαντικές λειτουργίες και προτείνεται η Η.261 και η Η.263 κωδικοποίηση. Αναλυτικότερα το Η.261 χρησιμοποιεί κανάλια με χωρητικότητα πολλαπλάσια των 64 Κbps και το Η.323 είναι συμβατό με το Η.261 καθώς χρησιμοποιεί προηγμένες τεχνικές κωδικοποίησης. Το Η.261 ορίζει πέντε standard formats. Και τα δύο θα πρέπει να υποστηρίζουν το QCIF φορμάτ. Η μετάδοση δεδομένων δεν είναι υποχρεωτική αλλά όταν υφίσταται μπορεί να γίνει κοινή χρήση προγραμμάτων και επίσης επιτρέπεται η μεταφορά αρχείων. Υποστηρίζεται το πρωτόκολλο Τ.120 της ΙΤU για υποστήριξη multicast. Μπορεί να υποστηρίξει πολυσημειακές συσκέψεις (multipoint conferencing) ενώ είναι ανεξάρτητο από τις πλατφόρμες εφαρμογής.[24] H

67 Το Η.261 είναι μια κωδικοποίηση video ορισμένο από το ITU. Έχει σχεδιαστεί για ρυθμούς δεδομένων οι οποίοι είναι πολλαπλάσια των 64 Kbit/s, για αυτό και μερικές φορές ορίζεται και ως p x 64Kbit/s όπου το p παίρνει τιμές από Οι ρυθμοί αυτοί μετάδοσης εξυπηρετούνται κυρίως από γραμμές ISDN. Το H.261 έχει σχεδιαστεί ώστε η πολυμεσική πληροφορία να μεταφέρεται με τη βοήθεια του RTP πρωτοκόλλου. Η H.261 κωδικοποίηση υποστηρίζει μια τεχνική αντιστάθμιση της κίνησης (motion compensation) με την οποία το επόμενο προς μετάδοση πλαίσιο (frame) δημιουργείται με βάση τα προηγούμενα. Δύο αναλύσεις υποστηρίζονται από το πρότυπο αυτό, οι οποίες είναι η Quarter Common Interchange Format (QCIF) στα 144x176 pixel και Common Interchange Format (CIF) στα 288x352 pixel [25], [26] H.263 Το H.263 είναι μια κωδικοποίηση βίντεο σχεδιασμένη από το ITU-T σαν μια λύση στην απαίτηση για πραγματοποίηση τηλεδιάσκεψης με χαμηλό ρυθμό. Στην αρχή είχε σχεδιαστεί για τα H.324 συστήματα (δίκτυα μεταγωγής κυκλώματος PSTN για πραγματοποίηση τηλεδιασκέψεων). Χρησιμοποιεί μια αντισταθμισμένη κίνηση φραγμών (block motion compensated) DCT μέθοδο για την κωδικοποίηση του βίντεο. Η κωδικοποίηση αυτή είναι πιο αποτελεσματική από την H.261. Τεμαχίζει την εικόνα σε macroblock τα οποία αποτελούνται από 16x16 luminance block και 8x8 chrominance block. Το κάθε macroblock μπορεί να κωδικοποιηθεί είτε ως intra (χωρίς συσχετίσεις ανάμεσα σε διαδοχικά frame) είτε ως inter (με συσχετίσεις ανάμεσα σε διαδοχικά frame). Το H.263 βασίζεται στο H.261 ενώ παράλληλα παρέχει κάποιες επεκτάσεις για πιο αποτελεσματική κωδικοποίηση. [24],[25] RTP/ RTCP Το Real-time Transmission Protocol (RTP) είναι το βασικό πρότυπο που μαζί με το Real-time Transmission Control Protocol (RTCP) προδιαγράφει υπηρεσίες για τη μεταφορά περιεχομένου σε πραγματικό χρόνο. Οι υπηρεσίες αυτές περιλαμβάνουν χρονική αποκατάσταση (timing recovery), ανίχνευση απωλειών και διόρθωση, εξακρίβωση της 51

68 ταυτότητας της πηγής και του φορτίου (payload), ενημέρωση για την ποιότητα λήψης, συγχρονισμό των διαφόρων μέσων και διαχείριση της ιδιότητας μέλους. Αν και το RTP αρχικά σχεδιάστηκε για χρήση σε εφαρμογές συνδιάσκεψης με πολυεκπομπή χρησιμοποιώντας ένα ελαφρύ μοντέλο για συνεδρίες, σήμερα έχει αποδειχθεί χρήσιμο για ένα μεγάλο σύνολο από εφαρμογές και για εκπομπή από σημείο σε σημείο. Το RTP ορίζει μία επικεφαλίδα μεγέθους 12 bytes ή μεγαλύτερη, ακολουθούμενη από ένα τομέα φορτίου (payload). Η επικεφαλίδα, μεταξύ άλλων πεδίων, περιέχει τον αριθμό ακολουθίας (sequence number) για να μπορεί να καθοριστεί η τυχόν απώλεια πακέτων, τη χρονοσφραγίδα ώστε να καθορίζει τη θέση του φορτίου στον άξονα του χρόνου αναπαραγωγής και ένα bit σήμανσης (marker bit) το οποίο χρησιμοποιείται συνήθως για να προσδιορίζει τα όρια ενός πλαισίου στο βίντεο. Η δομή της επικεφαλίδας RTP φαίνεται στο σχήμα της εικόνας V=2 P X CC M PT sequence number timestamp synchronization source (SSRC) identifier +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ contributing source (CSRC) identifiers Εικόνα 1.18 Δομή της επικεφαλίδας RTP Το ακριβές περιεχόμενο του φορτίου (όπως και η ακριβής ερμηνεία του bit σήμανσης και της χρονοσφραγίδας της επικεφαλίδας) καθορίζεται από επιπρόσθετα πρότυπα (Payload Format Specifications). Πιο συγκεκριμένα, το φορτίο του RTP, δεν μεταφέρει απλά μη επεξεργασμένα (raw) δεδομένα από το περιεχόμενο, αλλά και επιπλέον στοιχεία όπως δεδομένα για την χρήση εργαλείων για ανάκτηση έναντι σφάλματος (error resilience). Στην προδιαγραφή του RTP ορίζεται και το Real-time Transmission Control Protocol (RTCP) το οποίο χρησιμοποιείται παράλληλα κατασκευάζοντας μία αμφίδρομη σύνδεση ώστε να 52

69 ανταλλάσσεται πληροφορία μεταξύ του δέκτη και του αποστολέα για την ποιότητα της σύνδεσης. Η χρήση του RTP γίνεται, συνήθως, πάνω από το πρωτόκολλο μεταφοράς UDP.[27] RTSP/ RTCP Για να λάβει η εφαρμογή πελάτη μία ροή πραγματικού χρόνου από έναν εξυπηρετητή πρέπει να δημιουργηθεί μία σύνδεση με τον εξυπηρετητή η οποία θα αναλάβει την αρχικοποίηση, τον έλεγχο, τη διαχείριση και τον τερματισμό της. Μία τέτοια σύνδεση ονομάζεται συνεδρία (session) και για την περίπτωση των ροών πραγματικού χρόνου, το πιο διαδεδομένο πρωτόκολλο για χρήση πάνω από το διαδίκτυο είναι το Real-Time Streaming Protocol (RTSP). Το RTSP εγκαθιστά και ελέγχει την σύνδεση για μία ή περισσότερες ροές μέσων όπως εικόνα και ήχο τα οποία είναι συγχρονισμένα. Δεν είναι το ίδιο που μεταφέρει συνήθως τις ροές, αλλά ενεργεί ως «δικτυακό τηλεκοντρόλ» απέναντι στους εξυπηρετητές πολυμέσων. Το RTSP χρησιμοποιεί τη σύνταξη του HTTP αλλά διαφέρει ως προς αυτό σε αρκετά σημεία, με βασικότερο το ότι κρατάει την κατάσταση (state) για κάθε συνεδρία που διαχειρίζεται. Στο πρωτόκολλο δεν ορίζεται η έννοια της σύνδεσης, αλλά αυτή της συνεδρίας, καθώς μπορεί κανείς με περισσότερες από μία συνδέσεις στο επίπεδο μεταφοράς να εκτελέσει αιτήσεις RTSP που αφορούν την ίδια συνεδρία. Εφόσον χρειάζεται αξιόπιστο μέσο μεταφοράς πάνω από ένα δίκτυο, χρησιμοποιεί το TCP και παρέχει την δυνατότητα στον χρήστη να ζητήσει από τον εξυπηρετητή την περιγραφή της ροής (DESCRIBE), την προετοιμασία της σύνδεσης (SETUP), την αποστολή της ροής (PLAY) και τον τερματισμό της σύνδεσης (TEARDOWN). Επιπλέον λειτουργίες που ορίζει το πρωτόκολλο, όπως η ανακατεύθυνση (REDIRECT), συνήθως, δεν υλοποιούνται από τις εμπορικές εφαρμογές των εταιριών. Σε μια προσπάθεια καλύτερου ορισμού τον επιπλέον λειτουργιών, οι ομάδες εργασίας AVT (Audio/Video Transport) και MMUSIC (Multiparty Multimedia Session Control) της IETF βρίσκονται στο στάδιο του αναλυτικότερου καθορισμού του πρωτοκόλλου.[28] 53

70 1.8.7 SDP (Session Description Protocol) Το Session Description Protocol (SDP) περιγράφει τις πολυμεσικές συνδέσεις εκτελώντας λειτουργίες όπως την ανακοίνωση μιας σύνδεσης, την πρόσκληση σε μια σύνοδο και κάποιες άλλες μορφές εγκαθίδρυσης μιας πολυμεσικής σύνδεσης. Το SDP είναι σχεδιασμένο έτσι ώστε να βοηθάει μια πολυμεσική σύνοδος να γίνει γνωστή στους συμμετέχοντες αλλά και τον τρόπο με τον οποίο αυτοί θα την εγκαταστήσουν. Το πρωτόκολλο αυτό απλά αποτελεί ένα format για την περιγραφή μιας συνόδου και δεν περιλαμβάνει κάποιο πρωτόκολλο μεταφοράς. Βέβαια για τις ανάγκες της περιγραφής της συνόδου είναι διατεθειμένο να χρησιμοποιήσει τα πρωτόκολλα Session Announcement Protocol (SAP), Session Initiation Protocol (SIP), Real-Time Streaming Protocol (RTSP) και το Hypertext Transport Protocol (HTTP). Σκοπός του SDP είναι να είναι ένα γενικό πρωτόκολλο που να μπορούν να το χρησιμοποιήσουν αρκετές εφαρμογές στο δίκτυο και όχι μόνο οι συνδέσεις πολλαπλής διανομής (multicast). Εντούτοις δεν είναι σχεδιασμένο στο να υποστηρίζει την διαπραγμάτευση για το περιεχόμενου της πληροφορίας που θα διακινηθεί κατά την διάρκεια μιας συνόδου ή για τις κωδικοποιήσεις που θα χρησιμοποιηθούν.[29] Σύγκριση SIP με H.323 Τα δυο πρωτόκολλα που κυριαρχούν στον κόσμο του VoIP παρουσιάζουν αρκετές ομοιότητες αλλά επίσης και αρκετές διαφορές. Άρα η σύγκριση αυτών τον δύο είναι αναπόφευκτη προκειμένου να σκιαγραφήσουμε τα δύο πρωτόκολλα στα βασικά αλλά και στα λιγότερο κύρια σημεία τους. Το SIP είναι τυποποιημένο από την IETF ενώ το Η.323 αποτελεί τυποποίηση της ITU. Το SIP είναι ορισμένο σαν ένα αυξανόμενο σύνολο RFCs ( Request For Comments) ενώ το Η.323 είναι ορισμένο ως ένα σύνολο από αλληλοσυνδεόμενων προτύπων όπως είναι το Η.323, Η.225, Η.245 κ.ο.κ. Το μεν SIP ορίζει ένα πρωτόκολλο αλλά όχι μια αρχιτεκτονική το δε Η.323 καθορίζει και τα δύο δηλαδή και την αρχιτεκτονική αλλά και το πρωτόκολλο. 54

71 Το SIP προέρχεται από τα ΗΤΤΡ και SMTP ενώ το Η.323 έχει εξαχθεί από το Q.931. Το SIP είναι text-based πρωτόκολλο (ASCII) ενώ το Η.323 είναι βασισμένο σε ASN.1. Η μετάδοση γίνεται μέσω TCP/ SCCP/ UDP στο SIP ενώ στο Η.323 η μετάδοση γίνεται μόνο διαμέσου TCP. Η διευθυνσιοδότηση στο Η.323 γίνεται διαμέσου ενός Ε.164 αριθμού ή με ένα alias που είναι λιγότερο ευέλικτο την στιγμή που το SIP κάνει τη διευθυνσιοδότηση μέσω κάποιου URL ή ενός E164 αριθμού πολύ ευέλικτου. Ο Gatekeeper είναι stateful κλήση στο Η.323 ενώ το Proxy στο SIP μπορεί να είναι stateless, ή εκτελούμενο stateful ή κλήση stateful. Στο Η.323 η διαδικασία για το set-up μιας κλήσης είναι αρκετά πολύπλοκη ενώ αντίθετα αυτή η διαδικασία για το SIP πρωτόκολλο είναι αρκετά απλή. Ο Gatekeeper εμπλέκεται καθ όλη τη διάρκεια κλήσης στο Η.323 πρωτόκολλο ενώ στο SIP πρωτόκολλο ο Proxy χρησιμοποιείται μόνο για το set-up της κλήσης ( SIP = Session Initiation Protocol). Η διαπραγμάτευση με πολυμέσα είναι πολύπλοκη όσον αφορά το Η.323 ενώ στην περίπτωση του SIP είναι απλή. Η ευκινησία (mobility) δεν είναι τμήμα της αρχιτεκτονικής του H.323 αλλά είναι όμως αναπόσπαστο κομμάτι στην αρχιτεκτονική του SIP πρωτοκόλλου. Η ενσωμάτωση του SIP σε IP δίκτυα γίνεται εύκολα ενώ η συνεργασία με τα PSTN δίκτυα είναι εύκολο για το Η.323. Όσον αφορά την χρέωση της υπηρεσίας στην Η.323 αρχιτεκτονική υπάρχει σημείο αναφοράς για αυτό ενώ στο SIP πρωτόκολλο όχι ιδιαίτερα ξεκάθαρα. Το Η.323 πρωτόκολλο είναι ιδιαίτερα «ώριμο» πρωτόκολλο ενώ το SIP ακόμη εξελίσσεται. Επίσης τα δύο πρωτόκολλα διαθέτουν διαφορετικούς οπαδούς στον κόσμο.[19] 55

72 56

73 - ΚΕΦΑΛΑΙΟ 2 0 PBX Ελεύθερου Λογισμικού 2.1 Εισαγωγή Ένα προϊόν που δημιουργήθηκε από την επανάσταση του VoIP είναι το VoIP PBX (Private Branch Exchange). Το VoIP PBX αντικαθιστά ένα παραδοσιακό τηλεφωνικό σύστημα PBX και παρέχει στους χρήστες έναν τηλεφωνικό αριθμό, τη δυνατότητα πραγματοποίησης μιας διάσκεψης και την μεταφορά κλήσεων σε άλλους χρήστες. Όλες οι κλήσεις αποστέλλονται μέσω πακέτων δεδομένων μέσα από ένα δίκτυο, αντί του παραδοσιακού τηλεφωνικού δικτύου. Χρησιμοποιώντας μία πύλη VoIP μπορούμε να συνδέσουμε τις υπάρχουσες γραμμές τηλεφώνου με το VoIP PBX, να πραγματοποιήσουμε και να λάβουμε τηλεφωνικές κλήσεις μέσω μίας κανονικής γραμμής PSTN. Οι εταιρείες αντικαθιστούν τα παραδοσιακά τηλεφωνικά τους συστήματα με ένα τηλεφωνικό σύστημα VoIP PBX με ταχύτατους ρυθμούς. Οι πωλήσεις του εξοπλισμού τηλεφωνίας μέσω Διαδικτύου (IP Telephony) αυξάνονται κάθε χρόνο περισσότερο από 50% και οι επενδύσεις αναμένεται να αγγίξουν τα 15 δισεκατομμύρια δολάρια ετησίως έως το τέλος του 2008.[30] 2.2 Λογισμικό ανοικτού κώδικα Τα κύρια προγράμματα ανοικτού κώδικα που μπορούν να χρησιμοποιηθούν για την υλοποίηση ενός τηλεφωνικού κέντρου voip είναι: AsteriskGNU Bayonne Freeswitch CallWeaver SipX ECS [31] Στη συνέχεια θα αναφέρουμε τα βασικά στοιχεία των παραπάνω προγραμμάτων. GNU Bayonne Το GNU Bayonne δημιουργήθηκε από εθελοντές λογισμικού τον Σεπτέμβριο του Η δεύτερη έκδοσή του πραγματοποιήθηκε το

74 και βασίζεται στο πρωτόκολλο SIP. Είναι η τελευταία έκδοση του λογισμικού και οι χρήστες μπορούν να κατεβάσουν το λογισμικό δωρεάν από την ιστοσελίδα Το GNU Bayonne είναι ένα λογισμικό ανοικτού κώδικα που λειτουργεί με άδεια GNU. Οι υπηρεσίες web που προσφέρει έχουν αποτελέσει πρότυπο για τη διαχείριση του συστήματος και για την ενσωμάτωσή του με άλλες εφαρμογές. Στον πίνακα 2.1 παρουσιάζουμε τις υπηρεσίες και τα χαρακτηριστικά του[32]. Υπηρεσίες Διάσκεψη κλήσεων Φωνο-αλληλεπιδραστική απόκριση Ενημέρωση κλήσεων Αυτόματο τηλεφωνητή Μεταφορά κλήσης Ηχογράφηση αρχείων Ηχογράφηση κλήσης Παραμετροποίηση αρχείων και κλήσεων σε XML Συγκεντρωμένος κατάλογος χρηστών Ηχογράφηση αρχείων ήχου Προώθηση κλήσεων Γραφικό περιβάλλον διαχείρισης Σύστημα ανάγνωσης κειμένου Υπηρεσία ΝΑΤ διευθύνσεων Ιστορικό κλήσεων software Linux BSD 58

75 Solaris OSX Windows XP/2003 Πρωτόκολλα που υποστηρίζει SIP H.323 IAX2 GoogleTalk Jabber Χαρακτηριστικά Υποστήριξη Call center Υποστήριξη αναλογικών τηλεφώνων Δωρεάν υποστήριξη μέσω Επεκτασιμότητα Αναδρομολόγηση σε PSTN Εύκολη εγκατάσταση Για μικρές επιχειρήσεις Πίνακας 2.1 Παρουσίαση GNU Bayonne Freeswitch Το FreeSWITCH δημιουργήθηκε τον Ιανουάριο του Τον Αύγουστο του 2007 η Gaboogie ανήγγειλε ότι επέλεξε το FreeSWITCH για υλοποίηση voip συνδέσεων. Οι χρήστες μπορούν να κατεβάσουν το λογισμικό δωρεάν από την ιστοσελίδα Το FreeSWITCH είναι ένα λογισμικό ανοικτού κώδικα που λειτουργεί με άδεια GPL και μπορεί να χρησιμοποιηθεί για την υλοποίηση ενός τηλεφωνικού κέντρου (PBX) και για εφαρμογές IVR μέσω μίας πύλης media ή ενός media server. Προσφέρει δωρεάν επεκτασιμότητα και ενημέρωση λογισμικού περιβάλλοντος για την ανάπτυξη και την 59

76 προστασία του συστήματος. Στον πίνακα 2.2 παρουσιάζουμε τις υπηρεσίες και τα χαρακτηριστικά του[33]. Υπηρεσίες Διάσκεψη κλήσεων Φωνο-αλληλεπιδραστική απόκριση Ενημέρωση κλήσεων Αυτόματο τηλεφωνητή Μεταφορά κλήσης Ηχογράφηση αρχείων Ηχογράφηση κλήσης Παραμετροποίηση αρχείων και κλήσεων σε XML Συγκεντρωμένος κατάλογος χρηστών Ηχογράφηση αρχείων ήχου Προώθηση κλήσεων Γραφικό περιβάλλον διαχείρισης Σύστημα ανάγνωσης κειμένου Υπηρεσία ΝΑΤ διευθύνσεων Ιστορικό κλήσεων software Linux BSD Solaris OSX Windows XP/

77 Πρωτόκολλα SIP H.323 IAX2 GoogleTalk Jabber Χαρακτηριστικά Υποστήριξη Call center Υποστήριξη αναλογικών τηλεφώνων Δωρεάν υποστήριξη μέσω Επεκτασιμότητα Αναδρομολόγηση σε PSTN 250 ταυτόχρονες κλήσεις Εύκολη εγκατάσταση Για μικρές επιχειρήσεις Πίνακας 2.2 Παρουσίαση FreeSWITCH που υποστηριζει CallWeaver Το CallWeaver (πρώην OpenPBX) δημιουργήθηκε τον Σεπτέμβριο του 2005 από προγραμματιστές που δημιούργησαν το Asterisk 1.2. Το CallWeaver είναι μια πολλαπλή πλατφόρμα ανοικτού κώδικα, που λειτουργεί με άδεια GPL και βασίζεται στο πρωτόκολλο SIP. Υποστηρίζει αναλογική και ψηφιακή τηλεφωνία PSTN και πολλές εφαρμογές, όπως IVR και τηλεφωνικό κέντρο. Οι χρήστες μπορούν να κατεβάσουν το λογισμικό δωρεάν από την ιστοσελίδα linux.softpedia.com/get/communications/telephony/callweaver shtml. Στον πίνακα 2.3 παρουσιάζουμε τις υπηρεσίες και τα χαρακτηριστικά του. [34] 61

78 Υπηρεσίες Διάσκεψη κλήσεων Φωνο-αλληλεπιδραστική απόκριση Ενημέρωση κλήσεων Αυτόματο τηλεφωνητή Ιστορικό κλήσεων Ηχογράφηση ήχου Γραφικό περιβάλλον διαχείρισης Σύστημα ανάγνωσης κειμένου Προπληρωμένες κάρτες Αυτόματος τηλεφωνητής Αποστολή φαξ Υποστήριξη Call center Ουρές κλήσεων software Linux, FreeBSD NetBSD OpenBSD MacOS X Solaris Windows Πρωτόκολλα που υποστηρίζει H.323 IAX2 MGCP SIP 62

79 SCCP χαρακτηριστικά Αναδρομολόγηση σε PSTN Υποστήριξη αναλογικών τηλεφώνων 30 ταυτόχρονες κλήσεις Επεκτασιμότητα Δωρεάν τεκμηρίωση και υποστήριξη Για μικρές και μεσαίες μεγέθους επιχειρήσεις Πίνακας 2.3 Παρουσίαση CallWeaver Sip ECS Η ανάπτυξη του Sip ECS ξεκίνησε το 1999 από την Pingtel Corp. Το 2004 η Pingtel Corp ενσωματώθηκε στον μη κερδοσκοπικό οργανισμό SIPfoundry. Οι χρήστες μπορούν να κατεβάσουν το λογισμικό δωρεάν από την ιστοσελίδα Το SipX ECS είναι ένα πρόγραμμα ανοικτού κώδικα που λειτουργεί με άδεια GPL και βασίζεται στο πρωτόκολλο SIP. Οι κύριες συνιστώσες του συστήματος είναι ένα SIP switch ή router. Σε αντίθεση με άλλα λογισμικά ανοικτού κώδικα δεν παίζει τον ρόλο «back-to-back» πράκτοραχρήστη όπου αυτή η προσέγγιση οδήγησε σε μια σπονδυλωτή και υψηλή επεκτασιμότητα του συστήματος. Στον πίνακα 2.1 παρουσιάζουμε τις υπηρεσίες και τα χαρακτηριστικά του [35]. Υπηρεσίες Διάσκεψη κλήσεων Φωνο- αλληλεπιδραστική Απόκριση Υπηρεσία ενημέρωσης κλήσεων Γραφικό περιβάλλον διαχείρισης και επίβλεψης Σύστημα ανάγνωσης κειμένου Προώθηση κλήσεων Αναγνώριση κλήσεων 63

80 Call Parking («παρκάρισμα» κλήσης) Ηχογράφηση κλήσης Παραπομπή κλήσης Αναμονή κλήσης με ήχο Ουρές κλήσεων Αυτόματος τηλεφωνητής software Πρωτόκολλα που υποστηρίζει Linux SIP H.323 Cisco SCCP (Skinny) Nortel Unistim MGCP IAX SS7. χαρακτηριστικά Αναδρομολόγηση σε PSTN 900 ταυτόχρονες κλήσεις Επεκτασιμότητα Δωρεάν Τεκμηρίωση και Υποστήριξη Ασφάλεια SIP Session Border Controller Υποστήριξη Call center Απλή και εύκολη εγκατάσταση Web-based GUI και διαχείριση αμφισβητούμενων τηλεφωνημάτων Υποστήριξη αναλογικών τηλεφώνων μόνο 64

81 με FXO που υποστηρίζουν το SIP Για μεσαίες μεγέθους επιχειρήσεις Απλή και εύκολη εγκατάσταση Για μεσαίες μεγέθους επιχειρήσεις Απαιτήσεις υλικού Επεξεργαστής: VIA C3/C7, Pentium III, Pentium 4, Core 2 Duo, AMD, Xeon Μνήμη RAM: 512MB Πίνακας 2.4 Παρουσίαση SipX ECS 2.3 Λόγοι επιλογής και πλεονεκτήματα του Asterisk PABX Οι λόγοι για τους οποίους επιλέξαμε το Asterisk στην υλοποίηση του τηλεφωνικού κέντρου στα πλαίσια της πτυχιακής εργασίας είναι οι εξής: Δεν έχει κόστος υλικού Υπάρχουν πολλές πηγές πληροφοριών και τεκμηρίωσης Παρέχει πολλές προηγμένες υπηρεσίες Εύκολο στην διαχείριση και εγκατάσταση του Είναι συμβατό με μία πλειάδα από τηλεφωνικά λογισμικά και hardware Το πρόγραμμα διατίθεται δωρεάν στους χρήστες και επεκτείνονται οι δυνατότητες του με επιπλέον λογισμικό όπως το festival (text to speech), το sphinx (speech to text) Το Asterisk εξελίσσεται και βελτιώνεται καθημερινά (www.iptelephony.gr). Oι εφαρμογές VoIP που χρησιμοποιούν υλοποιήσεις ανοικτούκώδικα, όπως το Asterisk έχουν δυνατότητα μεγαλύτερης επιχειρηματικής δραστηριότητας από ολόκληρη την αγορά του Linux στο μέλλον. Στις επόμενες σελίδες παρουσιάζουμε τα πλεονεκτήματα του Asterisk PABX (Private Automatic Branch Exchange). 65

82 Επιλογή υπηρεσίας με το χαμηλότερο κόστος Το asterisk PABX μπορεί να συνδεθεί με οποιοδήποτε τηλεπικοινωνιακό πάροχο που ο κάθε ένας από αυτούς μπορεί να μας προσφέρει τις χαμηλότερες τιμές σε διαφορετικές υπηρεσίες. Στην πραγματικότητα, με το asterisk PABX, μπορούμε να συνδεθούμε σε πολλαπλές υπηρεσίες διαφορετικών τηλεπικοινωνιακών παρόχων. Εξοικονόμηση δαπανών για τις υπεραστικές κλήσεις Το asterisk PABX μπορεί να συνδεθεί με έναν πάροχο VoIP και να μειώσει το κόστος των υπεραστικών κλήσεων. Επίσης οι εθνικές και οι διεθνείς κλήσεις έχουν σημαντική έκπτωση ενώ οι κλήσεις προς άλλους χρήστες που χρησιμοποιούν τον ίδιο πάροχο VoIP είναι δωρεάν. Η εξοικονόμηση διαφέρει ανάλογα με το μοντέλα χρήσης, συνήθως είναι από 30 έως 50%. Εξοικονόμηση δαπανών στις τηλεφωνικές γραμμές Ένα άλλο πλεονέκτημα του Asterisk είναι η εξοικονόμηση κόστους όσο αφορά το σύνολο των τηλεφωνικών γραμμών που θα έχει μία επιχείρηση. Φτηνές κλήσεις προς κινητά Πολλοί άνθρωποι δεν γνωρίζουν ότι κάνοντας μια κλήση από ένα τοπικό δίκτυο (LAN) σε ένα κινητό τηλέφωνο είναι το πιο ακριβό είδος κλήσης. Με το asterisk PABX, καθώς και την προσθήκη μιας πύλης κινητού τηλεφώνου (Mobile Phone Gateway), το κόστος αυτής της κλήσης γίνεται πολύ μικρό. Fax, Voic και 66

83 Το asterisk PABX παρέχει τη δυνατότητα να παραδοθούν όλα τα γραπτά και φωνητικά μηνύματα στο του κάθε χρήστη. Voic Το Asterisk παρέχει τη δυνατότητα προσωπικού τηλεφωνητή για κάθε χρήστη, όταν αυτός απουσιάζει ή δεν απαντά στις κλήσεις. Ο κάθε χρήστης μπορεί να ακούσει τα φωνητικά μηνύματά του μέσω του του ή καλώντας τον αριθμό του τηλεφωνητή του. Fax: Το Asterisk είναι σε θέση να στέλνει και να λαμβάνει fax απευθείας προς τον χρήστη καθώς και από το υπάρχον του. Με το πρόγραμμα AsterFax, δεν χρειάζεται ένας ιδιωτικός αριθμός Fax για αποστολή και λήψη των εγγράφων. Τα έγγραφα μπορούν να διατίθενται απευθείας στην επιφάνεια εργασίας όπου κάθε εργαζόμενος έχει τον ιδιωτικό του αριθμό και εισάγοντας τον κωδικό του λαμβάνει το έγγραφο. Microsoft Outlook Με την προσθήκη λογισμικού σε κάθε επιφάνεια εργασίας, οι χρήστες του Microsoft Outlook μπορούν να επικοινωνήσουν μεταξύ τους μέσω της υπηρεσίας VoIP. Πρόσβαση σε προηγμένες λειτουργίες τηλεφώνου. To Asterisk PABX είναι μια νέα γενιά τηλεφωνικού συστήματος, που παρέχει τυποποιημένες μονάδες που είναι προσιτές ακόμη και στις μικρές επιχειρήσεις. Αυτό είναι το πιο σημαντικό πλεονέκτημα του asterisk PABX. Παλιότερα οι υπηρεσίες, όπως αναμονή κλήσης (call queuing), ψηφιακή υποδοχή (digital receptionist) και ο τηλεφωνητής (voic ) ήταν διαθέσιμα μόνο σε PABXs με υψηλό κόστος. Το Asterisk PABX παρέχει αυτό το σύνολο των υπηρεσιών και σε μικρές επιχειρήσεις που με αυτόν τον τρόπο δεν μειονεκτούν σε σχέση με τις μεγάλες εταιρείες. 67

84 Κινητικότητα Με το asterisk PABX ο καθορισμός μιας τηλεφωνικής συσκευής έχει αλλάξει. Δεν είναι πλέον μια σταθερή συσκευή σε μια σταθερή θέση. Οι υπάλληλοι που εργάζονται σε ένα σταθερό μέρος (όπως το γραφείο και το σπίτι) όταν απουσιάζουν από το χώρο εργασίας, μπορούν να κάνουν τα τηλεφωνήματα τούς και να δεχτούν τις εισερχόμενες κλήσεις τους, όπου και αν βρίσκονται. Αυτό γίνεται με ένα τηλέφωνο VoIP. Κλήσεις μεταξύ Asterisk PABXs Κάθε Asterisk PABX έχει τη δυνατότητα να συνδεθεί με ένα ή περισσότερα Asterisk PABXs. Αυτό σημαίνει ότι πολύ εύκολα με μια αξιόπιστη σύνδεση μπορούμε να συνδέσουμε πολλούς χρήστες μεταξύ τους από διαφορετικούς χώρους και να επικοινωνούν δωρεάν. Σύνδεση με τα συμβατικά PABX Για τις εταιρείες που τα υπάρχοντα τηλεφωνικά συστήματα PABX είναι μεγάλα, το Asterisk PABX μπορεί να εγκατασταθεί δίπλα, δίνοντας πρόσθετα οφέλη χωρίς να απαιτείται η αντικατάσταση του παλιού τηλεφωνικού συστήματος. Είναι συχνά πολύ πιο οικονομικό να εγκαταστήσουμε ένα Asterisk PABX δίπλα στο παλιό PABX γιατί το κόστος είναι μεγάλο, όταν πρόκειται να αναβαθμίσει το υπάρχον σύστημα. Επεκτασιμότητα Το Asterisk από μικρές επιχειρήσεις με 6-7 τηλέφωνα, μέχρι μεγάλης κλίμακας επιχειρήσεων με χιλιάδες τηλέφωνα έχει εξαπλωθεί σε όλη την υδρόγειο. Είναι σημαντικό να σημειωθεί ότι ακόμη και αν βγει μια νέα έκδοση Asterisk, δεν χρειάζεται να αντικαταστήσουμε την ήδη υπάρχουσα. Με αυτό τον τρόπο έχουμε ως πλεονέκτημα να μην χρειάζεται να αλλάξουμε ή να χάσουμε τις επενδύσεις σε προηγμένες τεχνολογίες που έχουμε στο τηλεφωνικό κέντρο. Αυτό είναι ιδιαίτερα σημαντικό όταν αρχίσουμε να μιλάμε για ενσωμάτωση των συστημάτων μιας επιχείρησής χρησιμοποιώντας Computer Technology Integration 68

85 (CTI) PABX. Η συμβατότητα του συστήματος θα διατηρηθεί, είτε είναι μικρή είτε παγκόσμια μια επιχείρηση. Open Standards Το Asterisk PABX είναι φτιαγμένο έτσι ώστε να μην υπάρχει ένας μόνο προμηθευτής για υποστήριξη. Λειτουργεί επίσης με βάση το πρωτόκολλο SIP, έτσι ώστε σε κάποια αλλαγή να μην χρειαστεί να αντικατασταθούν τα υπάρχοντα τηλέφωνα. Μπορεί να χρησιμοποιηθούν τηλέφωνα από πολλούς προμηθευτές όπως η Cisco, Polycom και Snom. [36] 2.4 Σύγκριση λογισμικών κλειστού κώδικα Εκτός από τις εφαρμογές ανοικτού κώδικα, που παρουσιάστηκαν στις προηγούμενες παραγράφους, υπάρχουν διαθέσιμες και εμπορικές εφαρμογές για την υλοποίηση ενός VoIP τηλεφωνικού κέντρου. Στον πίνακα 4.3 παρουσιάζουμε το κοστολόγιο της Cisco και της Digium για την εγκατάσταση ενός τηλεφωνικού κέντρου σε μία επιχείρηση εικοσιτεσσέρων χρηστών. [37] Τηλεφωνικό κέντρο Cisco IP PBX UC Users $4,195 Digium IP PBX up to 50 Users $1,745 Δρομολογητής (router) Catalyst Express 520 $1,735 ADTRAN 1335 PoE $2,165 NetVanta Ασύρματος ελεγκτής (Wireless Controller) Cisco 526 $1,279 Περιλαμβάνεται Ασύρματη πρόσβαση Cisco 521 Περιλαμβάνεται 69

86 Συνολικοί Ethernet διακόπτες $359 $3,373 $2, Τηλέφωνα Cisco $ 4800 w/digium $2,400 Σύνολο $12,368 $6,310 Πίνακας 2.5 Κοστολόγιο Cisco και Digium Στους πίνακες 2.6 και 2.7 συγκρίνουμε και παρουσιάζουμε έτοιμα τηλεφωνικά κέντρα voip, των εταιρειών Avaya, Cisco, ShoreTel και HiPath 3500.[38] Λογισμικό HiPath 3500 Shoretel 7 IP Phone System Εταιρεία ShoreTel HiPath 3500 Outlook Integration Περιλαμβάνεται Περιλαμβάνεται με HiPath εκφράσεις Integrated Voice Response Περιλαμβάνεται Περιλαμβάνεται με HiPath εκφράσεις Υποστήριξη Call center Περιλαμβάνεται Περιλαμβάνεται με HiPath Pro Center Compact software ShoreTel 7 Ιδιόκτητο Hardware Ιδιόκτητους διακόπτες Shoretel Shoregear Ιδιόκτητο Πρωτοκόλλα που υποστηρίζει SIP και MGCP. SIP, H.323, 802.x 70

87 Οργάνωση και Διοίκηση Υποστήριξη τηλεφώνων Υποστήριξη αναλογικών τηλεφώνων Ασφάλεια Χωρητικότητα Επεκτασιμότητα Αναδρομολόγηση σε PSTN (δημόσιο τηλεφωνικό δίκτυο) Μέσω ενός browser, διαχειρίζονται όλες τις τοποθεσίες, συμπεριλαμβανομέν ων των PBX, voice mail, και desktop εφαρμογές Τηλέφωνα ShoreTel and softphones Ναι Οι πελάτες έχουν το δικό τους ειδικό δίκτυο, τοπικό διακομιστή και μόνο πρόσβαση HTTPS Κλίμακες από 1 έως χρήστες Τυποποιημένη και επεκτάσιμη χρησιμοποιώντας πρόσθετες μονά-δες ShoreGea Ναι Καλή εμφάνιση για την παρακολούθηση και ανάπτυξη Τα περισσότερα SIP τηλέφωνα, συν την αναλογική τηλεφωνική υποστήριξη Ναι 192 Ναι Τεκμηρίωση / Παρέχει υπηρεσίες Υποστήριξη 71

88 Υποστήριξη Ευκολία Εγκατάστασης Μέγεθος υποστήριξης, προγράμματα εκπαίδευσης και επαγγελματικών υπηρεσιών. Plug-and-play εγκατάσταση με τα ip τηλέφωνα να είναι ρυθμισμένα Για μικρές και μεσαίες επιχειρήσεις επιχείρησηςκατηγορίας και τεκμηρίωση Απλή εγκατάσταση και διαμόρφωση Για μικρές και μεσαίες επιχειρήσεις Πίνακας 2.6 Χαρακτηριστικά του HiPath 3500 και του Shoretel 7 IP Phone System. Λογισμικό IP Office Unified Call Manager/ Media Convergence Server7800 Series Εταιρεία Avaya Cisco Outlook Integration Προαιρετικά μέσω του Voic Pro Περιλαμβάνεται Integrated Voice Response Περιλαμβάνεται Περιλαμβάνεται Υποστήριξη Call center Ναι με πρόσθετο εξοπλισμό Περιλαμβάνεται software IP Office τύπου 4 Windows ή Linux Hardware Avaya Office IP 500 Cisco CallManager and Media Convergence servers 72

89 Πρωτόκολλα που υποστηρίζει SIP, H.323, 802.x SIP, H.323 Οργάνωση και Διοίκηση Υποστήριξη αναλογικών τηλεφώνων Υποστήριξη αναλογικών τηλεφώνων Βασίζονται στα γραφικά εργαλεία Windows system management και στα εργαλεία τελικού χρήστη /πελάτη Ναι Διαχείριση και διοίκηση σε λειτουργίες υποστήριξης ομάδων τηλεφώνων, αλλά και ενιαίων τηλεφώνων Πολυάριθμα hard SIP τηλέφωνα Ναι Χωρητικότητα Από 32 έως 270 γραμμές Μέχρι τηλέφωνα ανά κεντρικό υπολογιστή και τηλέφωνα ανά cluster Επεκτασιμότητα Ναι Mε κάρτες και πρόσθετες ενότητες για επιπλέον χαρακτηριστικά Αναδρομολόγηση σε PSTN (δημόσιο τηλεφωνικό δίκτυο) Τεκμηρίωση / Υποστήριξη Ναι Υποστήριξη και τεκμηρίωση τόσο για τους χρήστες όσο και Ναι Επίπεδα τεκμηρίωσης και υποστήριξης επιχειρηματικών 73

90 τους διαχειριστές επιπέδων Ευκολία Εγκατάστασης Μέγεθος Δύσκολη σε ορισμένα σημεία Για μικρές και μεσαίες επιχειρήσεις Πολύπλοκο σύστημα που απαιτεί εκτενή ανάλυση και δοκιμές πριν από την ανάπτυξη Για μεγάλες επιχειρήσεις Πίνακας 2.7 Χαρακτηριστικά του IP Office και του Unified Call Manager/Media Convergence Server 7800 Series 74

91 - ΚΕΦΑΛΑΙΟ 3 0 ΕΙΣΑΓΩΓΗ ΣΤΟ ASTERISK 3.1 Εισαγωγή Το Asterisk προέκυψε από την έλλειψη ευέλικτων και φτηνών τηλεπικοινωνιακών συστημάτων στην αγορά. Ο Marc Spencer, όταν επιχείρησε να δημιουργήσει ένα τηλεφωνικό κέντρο για την παροχή τηλεφωνικών υπηρεσιών υποστήριξης σε Linux συνάντησε το οικονομικό εμπόδιο που θέτουν όλα τα εμπορικά τηλεφωνικά κέντρα. Οι ανάγκες του Spencer απαιτούσαν 24ωρη λειτουργία κατά την οποία ο πελάτης θα έπαιρνε τηλέφωνο στην εταιρία, ένα ηχογραφημένο μήνυμα θα τον προέτρεπε να δώσει τον κωδικό πελάτη μέσω του πληκτρολογίου της τηλεφωνικής του συσκευής και στη συνέχεια θα έλεγε το πρόβλημα του. Το τηλεφωνικό κέντρο θα ηχογραφούσε το πρόβλημα του πελάτη και θα το προωθούσε σε κάποιον τεχνικό, ο οποίος θα έβλεπε τον κωδικό, θα άκουγε το πρόβλημα και θα επικοινωνούσε με τον πελάτη για να του λύσει την απορία. Ο Spencer θεώρησε πως όλα τα υπάρχοντα εμπορικά τηλεφωνικά συστήματα που θα μπορούσαν να καλύψουν τις ανάγκες του ήταν πάρα πολύ ακριβά ή δεν προσέφεραν ακριβώς αυτό που ήθελε. Το 1999 δημιούργησε ένα πρόγραμμα το οποίο με τη χρήση του κατάλληλου υλικού θα δεχόταν τις εισερχόμενες κλήσεις και θα τις επεξεργαζόταν ανάλογα με τις ανάγκες του. Όμως ακόμα και έτσι, το υλικό που θα μπορούσε να του παρέχει σύνδεση με το δημόσιο τηλεφωνικό δίκτυο ήταν εξοπλισμένο με ακριβούς και εξειδικευμένους DSP μικροεπεξεργαστές. Η απαραίτητη ώθηση για την εξέλιξη του Asterisk ήρθε από το Zapata Telephony Project του Jim Dixon. Ο Dixon πίστευε πως λόγω της εκθετικής ανάπτυξης της υπολογιστικής ισχύος των επεξεργαστών και σε συνδυασμό με την πτώση των τιμών τους, θα μπορούσαν να κατασκευαστούν οικονομικές διεπαφές (PCI κάρτες) χωρίς τα ακριβά DSP κυκλώματα, αφήνοντας έτσι την κωδικοποίηση-αποκωδικοποίηση εξολοκλήρου στον επεξεργαστή. Παρόλο που το φορτίο επεξεργασίας που θα έπεφτε στον επεξεργαστή θα ήταν τεράστιο, ο Dixon ήξερε ότι η αναλογία τιμής/απόδοσης θα έγερνε συνεχώς προς όφελος του. Από το συγκερασμό των παραπάνω καινοτόμων ιδεών, προέκυψε η Digium, μία τηλεφωνική εταιρία η οποία 75

92 θα βασιζόταν στις κάρτες Zaptel (του Zapata Telephony Project) και το Asterisk για να παρέχει τηλεφωνικές λύσεις ανοιχτού κώδικα. Η τελευταία έκδοση του Asterisk είναι η που είναι διαθέσιμη για download από το επίσημο site του Asterisk (www.asterisk.org). Είναι επίσης διαθέσιμη για download μια έκδοση του Asterisk που διαθέτει Graphical User Interface (www.asterisknow.org).[39] 3.2 Ορισμός και ανάλυση του Asterisk Στην κοινότητα του Asterisk έχει επιχειρηθεί αρκετές φορές να δοθεί ένας περιεκτικός ορισμός του τι ακριβώς είναι το Asterisk και ποιες είναι οι δυνατότητες του. Οι δημιουργοί του θέλοντας να απλοποιήσουν την έννοια του Asterisk και να το κάνουν ποιο ελκυστικό στο ευρύ κοινό, συχνά χρησιμοποιούν τη φράση: Είναι απλά λογισμικό. Στην πραγματικότητα όμως, είναι πολλά περισσότερα. Κάποιος μπορεί να καταλάβει τι είναι το Asterisk κοιτάζοντας την ετοιμολογία του ονόματός του. Ο ειδικός χαρακτήρας του αστερίσκου (*) είναι συγχρόνως ένα πλήκτρο του τηλεφωνικού πληκτρολογίου καθώς επίσης και ένας ειδικός χαρακτήρας στα λειτουργικά συστήματα UNIX και DOS που μπορεί να συμβολίσει οποιοδήποτε αλφαριθμητικό χαρακτήρα (π.χ. rm rf *). Έτσι και το Asterisk έχει σχεδιαστεί ώστε να μπορεί να διασυνδεθεί με οποιοδήποτε τηλεφωνικό υλικό ή λογισμικό απρόσκοπτα και με συνέπεια. Το Asterisk ξεφεύγει από τα όρια του τηλεπικοινωνιακού προγράμματος και χαρακτηρίζεται σωστότερα από την έννοια της τηλεπικοινωνιακής πλατφόρμας. Δημιουργεί δηλαδή ένα πλαίσιο μέσα στο οποίο θα μπορούσε να αναπτυχθεί το οποιοδήποτε υπάρχον (ή μελλοντικό) τηλεπικοινωνιακό σύστημα. Μπορεί να λειτουργήσει ως αυτόνομος εξυπηρετητής επεξεργασίας κλήσεων ή ακόμα και ως μία προσθήκη σε κάποιο ήδη εγκατεστημένο κέντρο. Το Asterisk είναι δυνατό να χρησιμοποιηθεί μόνο σε επίπεδο λογισμικού, μεταφέροντας φωνή μέσω IP ή να επικοινωνήσει με TDM (Time Division Multiplexing) διεπαφές και να χρησιμοποιήσει το τηλεφωνικό δίκτυο. Μέσω του Asterisk μπορεί να επιτευχθεί μία ποικιλία μεταβάσεων όπως: 76

93 Κλειστό (εμπορικό) Ελεύθερο (δωρεάν) Δίκτυα μεταγωγής κυκλώματος VoIP συστήματα Φωνή Φωνή, Βίντεο, Δεδομένα Digital Signal Processing Host Media Processing Κεντρική διαχείριση Peer to Peer Επίσης το Asterisk υποστηρίζει ένα μεγάλο εύρος VoIP τηλεφώνων, hardphones, softphones αλλά και skinny / sccp τηλέφωνα, ενώ είναι συμβατό και με ένα μεγάλο αριθμό interface καρτών για διεπαφή με άλλα PBX και μηχανήματα fax. Για να χρησιμοποιηθεί το Asterisk με συνηθισμένα τηλέφωνα ή με το PSTN δίκτυο είναι απαραίτητο να προσαρμόσουμε στον server ειδικό hardware. Τέτοιες κάρτες μπορούμε να προμηθευτούμε από την Dιgium ή από άλλες εταιρείες που διαθέτουν PCI κάρτες για την προσαρμογή τηλεφώνων και τηλεφωνικών καρτών σε έναν server. Για τη σύνδεση του συστήματος Asterisk με κάποιον πάροχο (πχ τον ΟΤΕ) είναι απαραίτητη μια κάρτα FXO (foreign exchange office). Μπορούμε πχ να εγκαταστήσουμε μια κάρτα που μας δίνει 4 FXO για PSTN. Αυτό σημαίνει ότι μπορούμε να συνδέσουμε 4 γραμμές PSTN από τον ΟΤΕ στον Η/Υ που είναι εγκατεστημένο το σύστημα Asterisk. Για την σύνδεση ενός εσωτερικού τηλεφώνου είναι απαραίτητη μια κάρτα FXS (foreign exchange station). Πχ μπορούμε πάλι να αγοράσουμε μια κάρτα που μας δίνει 4 FXS, και συνεπώς μπορούμε να συνδέσουμε 4 απλές αναλογικές συσκευές. Αξίζει να σημειωθεί ότι υπάρχουν και FXS που δεν είναι κάρτα στον υπολογιστή αλλά ATA (analog telephone adapter) δηλαδή ένα κουτί που έχει θύρα LAN και βγάζει RJ11 για εσωτερικά. Στην Ελλάδα είναι γνωστά τα Linksys PAP2 και τα sipura. Στις παρακάτω σελίδες παρουσιάζουμε τις γέφυρες επικοινωνίας του Asterisk με όλες τις προϋπάρχουσες τεχνολογίες και τα πρότυπά τους. 77

94 3.2.1 Το Asterisk ως ελεύθερο λογισμικό Το Asterisk είναι ένα open source (ανοιχτού κώδικα) πρόγραμμα που λειτουργεί υπό τη Γενική Άδεια Δημόσιας Χρήσης GNU (GPL). Υπάρχει επίσης για λόγους διαλειτουργικότητας (π.χ. υποστήριξη του ιδιωτικού codec G.729) και η εμπορική διανομή του Asterisk (όπως συμβαίνει και με τη ΜySQL) Το Asterisk ως πλατφόρμα πολύπλεξης με διαίρεση χρόνου (TDM) και ανταλλαγής πακέτων φωνής. Το Asterisk ως πλατφόρμα πολύπλεξης με διαίρεση χρόνου (TDM) και ανταλλαγής πακέτων φωνής υποστηρίζει τα υπάρχοντα TDM πρωτόκολλα τηλεπικοινωνιών όπως το Ψηφιακό Δίκτυο Ενοποιημένων Υπηρεσιών (ISDNBRA-PRI), το Δημόσιο Τηλεπικοινωνιακό Δίκτυο Μεταγωγής (PSTN), το FXS, το FXO, το Ε1, το Τ1 και σε γενικές γραμμές οτιδήποτε χρησιμοποιείται στην κλασσική τηλεφωνία. Παράλληλα όμως υποστηρίζει και τα VoIP (Voice over Internet Protocol) πρωτόκολλα όπως το SIP, το IAX, το H.323, το MGCP, το SCCP (Sisco-Skinny) και σύντομα το Jingle (Google Talk) Το Asterisk ως PBX (Private Branch Exchange) Τα συστήματα PBX χρησιμεύουν στη ζεύξη μεταξύ των τερματικών (τηλέφωνο, fax, modem, κ.α.) που είναι συνδεδεμένα με το PBX και του δημόσιου τηλεπικοινωνιακού δικτύου μεταγωγής (PSTN). Ένα PBX είναι ένα ιδιωτικό τηλεφωνικό κέντρο το οποίο συνδέετε με ένα ή περισσότερα τηλέφωνα σε μια ή περισσότερες τηλεφωνικές γραμμές. Αυτό το κάνει πιο αποτελεσματικό από τη μίσθωση μιας τηλεφωνικής γραμμής για κάθε τηλέφωνο και έχει σαν αποτέλεσμα μικρότερο κόστος. Στο σχήμα της εικόνας 3.1 παρουσιάζουμε ένα Asterisk PBX. 78

95 Εικόνα 3.1 Asterisk PBX Το Asterisk ως σύστημα αμφίδρομης φωνητικής απόκρισης Το Asterisk όπως παρουσιάζεται στο σχήμα της εικόνας 3.2, παρέχει τη δυνατότητα δημιουργίας συστήματος αμφίδρομης φωνητικής απόκρισης. Αυτό σημαίνει ότι ο καλών έχει τη δυνατότητα μέσω ενός φωνητικού μενού και με τη χρήση του πληκτρολογίου της τηλεφωνικής του συσκευής να αλληλεπιδράσει με το τηλεφωνικό κέντρο και να αποκτήσει πρόσβαση σε πληροφορίες οι οποίες βρίσκονται στο σύστημά μας. Χαρακτηριστικό παράδειγμα μίας τέτοιας εφαρμογής είναι το σύστημα που χρησιμοποιείται από πολλές τράπεζες, στο οποίο πληκτρολογούμε τον αριθμό της κάρτας μας και κάποιο συνθηματικό και αποκτάμε πρόσβαση σε πληροφορίες όπως το υπόλοιπο του λογαριασμού μας και τις τελευταίες κινήσεις του λογαριασμού. 79

96 Εικόνα 3.2 Asterisk IVR Το Asterisk ως σύστημα αυτόματης κατανομής κλήσεων (ACD) Το Asterisk, όπως παρουσιάζεται στο σχήμα της εικόνας 3.3 μπορεί να λειτουργήσει σαν σύστημα ουρών αναμονής των κλήσεων και αυτόματης δρομολόγησης στην κατάλληλη ουρά. Η λειτουργία αυτή, είναι από τις βασικότερες ενός τηλεφωνικού κέντρου, το οποίο θα πρέπει να είναι σε θέση να κάνει σωστή και αποτελεσματική διαχείριση των γραμμών του. Τα κριτήρια δρομολόγησης μπορούν να ποικίλουν, ανάλογα με την ώρα, τη διαθεσιμότητα, τα προσόντα, τα επίπεδα προτεραιοτήτων, κ.α. [40] Εικόνα 3.3 Asterisk ACD 80

97 3.3 Αρχιτεκτονική Asterisk H αρχιτεκτονική του Asterisk είναι αρκετά απλή, αλλά διαφέρει από τα περισσότερα τηλεφωνικά προϊόντα. To Αsterisk δρα ως μεσάζοντας συνδέοντας τηλεφωνικές τεχνολογίες με τηλεφωνικές εφαρμογές δημιουργώντας έτσι ένα περιβάλλον «μεικτής» τηλεφωνίας. Οι τηλεφωνικές τεχνολογίες συμπεριλαμβάνουν VoIP υπηρεσίες όπως SIP, H.323, IAX, MGCP (gateways και τηλέφωνα), καθώς επίσης και πολλές παραδοσιακές TDM τεχνολογίες όπως Τ1, ISDN PRI, αναλογικά POTS και PSTN υπηρεσίες και αλλά. Οι τηλεφωνικές εφαρμογές συμπεριλαμβάνουν υπηρεσίες όπως call bringing, διασκέψεις (conferencing), τηλεφωνητή (voic ), IVR (interactive voice response) και άλλα. Πρέπει να είναι κατανοητές οι διασυνδέσεις που είναι διαθέσιμες και ο τρόπος εργασίας τους έτσι ώστε να είναι κάποιος σε θέση να εγκαταστήσει ή και να ρυθμίσει το Asterisk. Ποτέ δεν θα είναι επιτυχής η ρύθμιση ή η συντήρηση του Asterisk αν δεν μπορούμε να κατανοήσουμε τον τρόπο λειτουργίας των interfaces (διεπαφές) και την αλληλεπίδρασή τους με το Asterisk. Η αρχιτεκτονική του Asterisk παρουσιάζετε στο σχήμα της εικόνας 3.4. Ο πυρήνας του Asterisk περιέχει αρκετούς μηχανισμούς που ο καθένας τους παίζει σοβαρό ρόλο στην χρήση του λογισμικού. Όταν το Asterisk «ξεκινήσει» για πρώτη φορά ο Dynamic Module Loader φορτώνει και αρχικοποιεί τον καθένα από τους drivers (οδηγούς) που παρέχουν channel drivers, τύπους αρχείων, codecs και άλλα τα οποία συνδέονται με εσωτερικά APIs. Μετά ο πυρήνας μεταγωγής του Αsterisk PBX (PBX Switching Core) αρχίζει να δέχεται κλήσεις από τις διεπαφές (interfaces) και τις χειρίζεται σύμφωνα με το σχέδιο κλήσεων (dialplan), χρησιμοποιώντας τον Application Launcher για να πραγματοποιήσει κλήση σε τηλέφωνα, να γίνει σύνδεση με φωνητικό μήνυμα (voic ), κτλ. Ο πυρήνας παρέχει επίσης έναν πρότυπο Scheduler και I/O Manager από τον οποίο οι εφαρμογές και οι οδηγοί μπορούν να εκμεταλλευτούν. Ο μεταφραστής κωδικοποίησης (Codec Translator) του Asterisk δίνει άδεια σε κανάλια με διαφορετική κωδικοποίηση (codec) να επικοινωνήσουν μεταξύ τους. Η χρησιμότητα και η ευελιξία του Asterisk προέρχεται από τις εφαρμογές, τους κωδικοποιητές - αποκωδικοποιητές (codec), τους τύπους εφαρμογών και άλλα, τα οποία είναι συνδεδεμένα στα programming interfaces του Asterisk. [41] 81

98 Εικόνα: 3.4 Αρχιτεκτονική του Αsterisk 3.4 Τρόπος λειτουργίας του Asterisk Παρακάτω παρουσιάζουμε τους τρόπους με τους οποίους μπορεί να λειτουργήσει το Asterisk Το Asterisk σε γραφείο VoIP (Voice over IP) συστήματα όπως ο Asterisk μπορεί να χρησιμοποιήσουν έναν υπολογιστή για να στέλνουν και να λαμβάνουν τηλεφωνικές κλήσεις μέσω του δικτύου δεδομένων. Οι τηλεφωνικές κλήσεις αποστέλλονται μέσω δικτύου IP χρησιμοποιώντας ως δεδομένα, το πρωτόκολλο Διαδικτύου (Internet Protocol). Οι τηλεφωνικές κλήσεις έχουν αποσταλεί από ένα IP τηλέφωνο σε ένα άλλο IP τηλεφώνου ως 82

99 δεδομένα. Ο τρόπος με τον οποίο το Asterisk λειτουργεί σε γραφείο παρουσιάζετε στο σχήμα της εικόνας 3.5. Εικόνα 3.5 Asterisk σε γραφείο Ένα σύστημα Asterisk συχνά παρέχει υπηρεσίες σε πολλά IP τηλέφωνα, (πολλές χιλιάδες ή και περισσότερο). Τα κλασικά αναλογικά τηλέφωνα ή άλλες συσκευές όπως το φαξ μπορεί να συνδεθούν με έναν φθηνό μετατροπέα (adaptor). Με ένα τέτοιο σύστημα, ο καθένας σε ένα γραφείο μπορεί να καλέσει οποιονδήποτε άλλο χρήστη. Κλήση εκτός γραφείου, για παράδειγμα, σε κανονικό τηλέφωνο περιγράφεται κατωτέρω. Τα IP τηλέφωνα δεν είναι συνδεδεμένα μέσω καλωδίων τηλεφωνικής εταιρίας (πχ ΟΤΕ ) αλλά είναι συνδεδεμένα με το τοπικό δίκτυο δεδομένων (LAN). Mπορούν να γίνουν κλήσεις από VoIP τηλέφωνα που υπάρχουν στο τοπικό δίκτυο σε άλλα VoIP τηλέφωνα του δικτύου. Αν τα γραφεία είναι σε διαφορετικούς ορόφους και είναι συνδεδεμένα με το τοπικό δίκτυο (LAN), μπορούμε να κάνουμε κλήσεις σε τηλέφωνα ή συσκευές φαξ, στον άλλο τομέα. Οι εν λόγω κλήσεις εξακολουθούν να γίνονται μέσω του δικτύου δεδομένων Το ίδιο συμβαίνει αν τα γραφεία είναι και σε διαφορετικά κτίρια. 83

100 3.4.2 Συνδέοντας το τηλεφωνικό σας σύστημα στο Internet Όπως παρουσιάζεται στο σχήμα της εικόνας 3.6 το τηλεφωνικό σύστημα Asterisk μπορεί εύκολα να συνδεθεί με το Διαδίκτυο. Εικόνα 3.6 Σύστημα Asterisk συνδεδεμένο στο Intertnet Αν το σύστημα Asterisk είναι συνδεδεμένο στο Internet, οποιαδήποτε VoIP τηλέφωνο το οποίο είναι συνδεδεμένο με το Internet μπορεί να έχει τη δυνατότητα να συνδεθεί με το σύστημα Asterisk. Μπορεί εύκολα να γίνει κλήση σε οποιοδήποτε άλλα VoIP τηλέφωνα που εξυπηρετούνται από τον Asterisk, χωρίς να έχει σημασία που βρίσκονται αυτά τα τηλέφωνα. Οι συνδέσεις αυτές θεωρούνται ασφαλείς και δεν μπορούν να χρησιμοποιηθούν από παράνομους χρήστες (πχ Hackers). 84

101 Δεν έχει σημασία που μπορεί να βρίσκεται ένα τηλέφωνο συνδεδεμένο σε δίκτυο, όπως αναφέραμε. Για παράδειγμα, μπορούμε να έχουμε έναν τηλεφωνικό σύστημα Asterisk σε γραφείο στην Καβάλα και ένα γραφείο στη Αθήνα. Το σύστημα Asterisk στη Καβάλα (πρέπει να) είναι συνδεδεμένο με το Internet (Διαδίκτυο), και στη Αθήνα το γραφείο (πρέπει να) είναι συνδεδεμένο στο Internet. Έτσι μέσω του internet και του Αsterisk μπορεί να υπάρξει επικοινωνία. Με το σωστό εξοπλισμό μπορεί να εγκατασταθεί ένα τηλέφωνο στο σπίτι μας και να συνδεθεί στο Διαδίκτυο. Έτσι το τηλέφωνο στο σπίτι μας, θα επικοινωνεί με τον Asterisk που είναι εγκατεστημένος στο γραφείο, μέσω του Internet. Η χρήση του τηλεφώνου στο σπίτι είναι όπως ακριβώς και του τηλέφωνού στο γραφείο. Μπορούμε να κάνουμε κλήσεις απ όπου κι αν βρισκόμαστε. Πχ όταν βρισκόμαστε σε ένα ταξίδι μπορούμε να καλέσουμε από οπουδήποτε υπάρχει μια σύνδεση στο Internet. Μπορούμε να καλέσουμε, επίσης, κάποιον που χρησιμοποιεί ένα σύστημα VoIP, ακόμη και αν δεν πρόκειται για σύστημα Asterisk. Όμως το Asterisk θα πρέπει να είναι συνδεδεμένο με τον παροχέα (provider) του συγκεκριμένου VoIP συστήματος. Αυτό μπορεί να είναι μια τοπική σύνδεση δικτύου, ή και τα δύο συστήματα θα μπορούσαν να είναι συνδεδεμένα με το Internet. Η πρόσκληση αποστέλλεται μέσω του δικτύου δεδομένων και Internet, και όχι το PSTN. Και τα δύο συστήματα για να επικοινωνήσουν πρέπει να έχουν τα σωστά δικαιώματα και τις ρυθμίσεις. Μέσω VoIP κλήσεων μπορούν να εξοικονομηθούν χρήματα καθότι οι κλήσεις γίνονται μέσω internet ή μέσω τοπικού δικτύου όπου δεν υπάρχει χρέωση πχ για υπεραστικές κλήσεις Συνδέοντας το Asterisk με το PSTN Όπως παρουσιάζεται στο σχήμα της εικόνας 3.7, οι χρήστες του Asterisk θα πρέπει να είναι σε θέση να κάνουν κλήσεις προς τηλέφωνα που συνδέονται με το PSTN. Αυτό απαιτεί μια σύνδεση με το PSTN. Για να επιτευχθεί αυτό, το σύστημα Asterisk θα πρέπει να συνδεθεί με το δημόσιο τηλεφωνικό σύστημα (PSTN). Αυτή η διαδικασία δεν είναι δύσκολη και απαιτεί να ενοικιαστεί τηλεφωνικός αριθμός από κάποια τηλεφωνική εταιρεία για να γίνονται οι κλήσεις αποδεκτές μέσω του 85

102 δικτύου PSTN. Έτσι θα μπορούν να γίνονται κλήσεις από το δίκτυο PSTN προς το Asterisk. Εικόνα 3.7 Σύνδεση στο PSTN Το Asterisk ως υψηλή πυκνότητα και IVR Conferesing Το Asterisk όπως παρουσιάζεται στο σχήμα της εικόνας 3.8 μπορεί να χρησιμοποιηθεί ως μια υψηλής πυκνότητας και IVR Conferesing πλατφόρμα, χρησιμοποιώντας παραδοσιακές διεπαφές (interface) PRI/T1 παρέχοντας επεκτασιμότητα και ενδοεπικοινωνία χρησιμοποιώντας TDM (Time Division Multiplexing) πάνω από Ethernet, το οποίο επιτρέπει στο Asterisk να επεκτείνει το TDM και να το διασταυρώσει με το Ethernet δίκτυο, μειώνοντας τα σφάλματα. 86

103 Εικόνα 3.8 Το Asterisk ως υψηλή πυκνότητα και IVR Conferesing Το Asterisk στις επιχειρήσεις Ένα από τα πιο δυνατά χαρακτηριστικά του Asterisk είναι ότι μπορεί να συνδέσει διαφορετικά τηλέφωνα που βρίσκονται σε απομακρυσμένα γραφεία με τα κεντρικά γραφεία μιας επιχείρησης. Στο σχήμα της εικόνας 3.9 παρουσιάζεται ο τρόπος υλοποίησης ενός μεμονωμένου μικρού PBX για πολλά γραφεία χρησιμοποιώντας το Asterisk, και συνδέοντάς τα όλα μεταξύ τους σε ένα δίκτυο. 87

104 Εικόνα 3.9 Σύνδεση του Asterisk σε μία επιχείρηση 3.5 Λειτουργίες και Δυνατότητες του Asterisk Όπως αναφέρθηκε προηγουμένως είναι πολύ δύσκολο να περιγραφεί το πλήρες φάσμα των δυνατοτήτων του Asterisk λόγω του πλήθους των περίπλοκων θεμάτων που ενσωματώνει: πολλαπλούς τύπους VoIP καναλιών, υλικά διασύνδεσης, γλώσσα δέσμης ενεργειών (AGI Scripting language), Διασύνδεση Προγράμματος Εφαρμογής(API) και πληθώρα λειτουργιών όπως: 88

105 ADSI On-Screen Menu System: Εμφάνιση μενού στην οθόνη κατάλληλου τηλεφώνου (screenphone) μέσω του αναλογικού δικτύου για παροχή προσαρμοσμένων λειτουργιών. ENUM: Χρήση του ENUM για ενοποίηση του τηλεφωνικού συστήματος αριθμοδότησης (E.164) με το σύστημα διευθυνσιοδότησης του διαδικτύου (DNS) και έμμεση αναζήτηση. Macros: Αυτόματη εκτέλεση πολύπλοκων πολλαπλών ενεργειών που εκτελούνται συχνά για εξοικονόμηση χρόνου και αποφυγή λαθών. Predictive Dialler: Αυτόματη κλήση σε τηλεφωνικά νούμερα. Χρησιμοποιείται σε τηλεφωνικά κέντρα (τηλε-μάρκετινγκ) και πραγματοποιεί κλήσεις προς πιθανούς πελάτες με χρήση εξειδικευμένων αλγορίθμων πρόβλεψης. Open Settlement Protocol (OSP): Δυνατότητα τιμολόγησης VoIP υπηρεσιών. Streaming Media Access: Δυνατότητα βιντεοκλήσης. Echo cancellation: Δυνατότητα εξάλειψης του φαινόμενου της ηχώ Call Routing (Private Branch Exchange (PBX)) Conference (διάσκεψη) Calling Cards (προπληρωμένες κάρτες) Interactive Voice Response (Φωνο- αλληλεπιδραστική Απόκριση) Call Detail Record (υπηρεσία ενημέρωσης κλήσεων) Graphic User Interface (γραφικό περιβάλλον διαχείρισης και επίβλεψης) Caller ID On Call Waiting (αναγνώριση κλήσεων σε αναμονή) Text-to-speech System (Festival Open Source) (σύστημα ανάγνωσης κειμένου). Voice Recognition (Sphinx Open Source) Call Forwarding (Προώθηση κλήσεων) Wake Up Call (ξυπνητήρι) Caller id (αναγνώριση κλήσεων) Fax Manager (διαχειριστής Fax) Follow Me (ακολούθησε με) Call Parking Blacklists (μαύρη λίστα) Call Recording (ηχογράφηση κλήσης) Call Transfer (παραπομπή κλήσης) Call Waiting (αναμονή κλήσης) Dial By Name (κλήση μέσω ονόματος) Do Not Disturb (μην ενοχλείτε) Sms Messaging (αποστολή γραπτών μηνυμάτων) Jabber Notification (ειδοποίηση Jabber) Music On Hold (αναμονή με ήχο) 89

106 Call Queues (ουρές κλήσεων) Time And Date(ώρα και ημερομηνία) Voic (αυτόματος τηλεφωνητής) 3.6 Διεπαφές και κανάλια (Interfaces& Channels) Με τον ορό διεπαφή (interface) αναφερόμαστε στα μέσα με τα οποία μπορούμε να συνδέσουμε δύο συστήματα μεταξύ τους. Οι διεπαφές μπορεί να είναι είτε software είτε hardware. Mε τον όρο κανάλια (channels) αναφερόμαστε στα κανάλια επικοινωνίας του Asterisk (πχ SIP.IAX). Το Asterisk, όπως αναφέραμε, υποστηρίζει κάθε δυνατό είδος τηλεφωνικής τεχνολογίας. Οι τεχνολογίες περιλαμβάνουν VoIP, SIP, H.323, IAX, και BGCP (gateways και τηλέφωνο.) Τα συστήματα Asterisk μπορούν να συνεργάζονται με όλο σχεδόν τον εξοπλισμό που βασίζετε σε πρότυπα τηλεφωνίας. Το Hardware του Asterisk έτσι ώστε συνδεθεί σε ένα σύστημα είναι αρκετά οικονομικό. Το Asterisk υποστηρίζει τις παραδοσιακές τηλεφωνικές τεχνολογίες, όπως το ISDN PRI και T-Carrier συμπεριλαμβανομένων των Τ1 και Ε-1. Οι τηλεφωνικές εφαρμογές περιλαμβάνουν calling, conferencing, τηλεφωνητή, αυτόματη συνοδός (Auto-attendant), προσαρμοσμένο Interactive Voice Response scripting, call parking, ενδοεπικοινωνία κ.λ.π. Στον πίνακα 3.1 παρουσιάζονται οι τύποι των διεπαφών που υποστηρίζει τo Asterisk. SIP - IAX - MGCP - ZAP - Modem - Skinny - Session Initiation Protocol IETF Inter-Asterisk Exchange protocol - v1 and v Media Gateway Control Protocol / Megaco IET Zapata channel Modem channels (Incl ISDN) Skinny channels (Cisco phones) Voice over Frame Relay - Adtran style console - Linux OSS console client driver for sound cards /dev/ds 90

107 vbp - local - VoiceTronix Interface drive Loopback into another contex H H.323 IT phone - agent - Linux Telephony channel ACD Agent channel Πίνακας 3.1 Τύποι διεπαφών που υποστηρίζει τo Asterisk 3.7 Υποστηριζόμενες τεχνολογίες Το Asterisk υποστηρίζει μια ποικιλία από διεπαφές (Interfaces) για τη διασύνδεση τηλεφωνικών συστημάτων (μέσω υπολογιστή που έχει εγκατεστημένο Linux). Επίσης το Asterisk έχει σχεδιαστεί έτσι ώστε να επιτρέπεται σε νέα interface και νέες τεχνολογίες να μπορούν να προστίθενται εύκολα στο Asterisk. Ο υψηλότερος στόχος του είναι να υποστηρίζει κάθε είδος τηλεφωνικής τεχνολογίας που μπορεί να υπάρχει. Τα συμβατά πρωτόκολλα καθώς και το υλικό (hardware) που είναι συμβατό με το Asterisk υπάρχουν σε λίστες στις επίσημες ιστοσελίδες του Asterisk και της Digium (http://www.asterisk.org, Γενικά οι διεπαφές (interfaces) διαιρούνται σε τρεις κατηγορίες: το Zaptel hardware, το non-zaptel hardware και τα packet voices («πακέτα ήχων») Zaptel Pseudo TDM Interfaces Όλο το υλικό (Hardware) της Digium χρησιμοποιούν έναν κοινό driver και μια κοινή βιβλιοθήκη διεπαφής (interface). Οι Digium drivers βασίζονται στην Zapata Telephone Driver suite. Αυτό το σύνολο των drivers συχνά ονομάζεται "Zaptel." και είναι ένα έργο ανοικτού πηγαίου κώδικα. Τα Zaptel Pseudo TDM Interfaces παρέχονται ολοκληρωμένα σε παραδοσιακά αναλογικά και ψηφιακά interfaces (συμπεριλαμβανομένης σύνδεσης και με το PSTN). Επιπρόσθετα τα Zaptel συμβατά interface 91

108 υποστηρίζουν την Pseudo TDM τεχνολογία η οποία τα συνδέει μεταξύ τους για να μπορούν να κάνουν κλήσεις TDM, συνδιασκέψεις (conferensing 1 ) Τα zaptel interfaces είναι διαθέσιμα από την Digium για μια ποικιλία από δικτυακά interface όπως PSTN, POTS, T1, E1,PRI, PRA, E&M, Wink. Στον πίνακα 3.2 παρουσιάζεται το zaptel hardware που είναι διαθέσιμο. T100P - E100P - T400P - E400P - X100P - S100U - S400P - Single span T1 or PRI connection (mixed data/voice permitted) Single span E1 or PRA connection (mixed data/voice permitted) Quad span T1 or PRI connection (mixed data/voice permitted) Quad span E1 or PRA connection (mixed data/voice permitted) Single analog PSTN connection Single analog POTS connection (USB) Single to Quad analog POTS connection (PCI) Πίνακας 3.2 Zaptel Hardware Non-Zaptel Interfaces Αυτά τα interface παρέχουν συνδεσιμότητα με τις παραδοσιακές τηλεφωνικές υπηρεσίες ενώ δεν υποστηρίζουν Pseudo-TDM. Ονομαστικά τα παρουσιάζουμε στον πίνακα 3.3. (1)Για τεχνικούς λόγους και για να μπορεί να χρησιμοποιηθεί το conferensing (συνδιάσκεψη) στο Asterisk, θα πρέπει να εγκατασταθεί τουλάχιστον ένα Zaptel interface από οποιοδήποτε είδος 92

109 ISDN4Linux - OSS/Alsa - Basic Rate ISDN interface for Linux Sound card interfaces Linux Telephony Interface (LTI) - Quicknet Internet Phonejack/Linejack Dialogic hardware - Full-duplex Intel/Dialogic hardware Πίνακας 3.3 Νοn - Zaptel Hardware Packet voice Protocols («Πρωτόκολλα πακέτων ήχου») Πρόκειται ουσιαστικά για πρωτόκολλα επικοινωνίας (που χρησιμοποιεί το Asterisk) μέσω IP σε δίκτυα (VoIP πρωτόκολλα) και είναι τα μόνα interface που δεν χρειάζονται hardware. Στον πίνακα 3.4 παρουσιάζουμε τα Packet voice Protocols. Session Initiation Protocol (SIP) Inter-Asterisk exchange (IAX) versions 1 and 2 Media Gateway Control Protocol (MGCP) ITU H.323 Voice over Frame Relay (VOFR) Πίνακας 3.4 Packet voice Protocols Αυτά που χρησιμοποιούνται συνήθως είναι τα SIP και ΙΑΧ (αναφέρονται και ως κανάλια (channels)), τα οποία περιγράφονται στην επόμενη ενότητα.[40] 3.8 Υποστηριζόμενα πρωτόκολλα VoIP από τον Asterisk Το Asterisk υποστηρίζει VoIP ειδικά πρωτόκολλα. Αυτά που χρησιμοποιούνται συνήθως είναι το ΙΑΧ και το SIP,όπως είπαμε, αλλά και το Η.323. Παρακάτω θα περιγράφονται αυτά τα τρία (3) πρωτοκολλά Inter-Asterisk Exchange (IAX) Το πρωτόκολλο IAX αναπτύχθηκε από την Digium με σκοπό την επικοινωνία με άλλους Asterisk servers (ως εκ τούτου "Inter-Asterisk exchange protocol"). Το IAX είναι ένα πρωτόκολλο επιπέδου μεταφοράς (όπως το SIP) που χρησιμοποιεί μία UDP θύρα, την 4569 για τη σηματο- 93

110 δότηση καναλιών (channel signalling) και για το πρωτόκολλο μεταφοράς πραγματικού χρόνου (Realtime Transport Protocol-RTP). Όπως θα δούμε πιο κάτω, αυτό καθιστά ευκολότερη τη διαχείριση του με firewall και να δουλέψει κάτω από το πρωτόκολλο NAT. Το IAX έχει επίσης τη μοναδική δυνατότητα να μεταφέρει πολλαπλές συνόδους σε μια ροή πληροφοριών, το οποίο μπορεί να είναι ένα τεράστιο πλεονέκτημα για το εύρος ζώνης κατά την αποστολή πολλών ταυτόχρονων καναλιών σε μία απομακρυσμένη θέση (remote box). Το Trunking επιτρέπει πολλαπλές μεταφορές δεδομένων με ένα ενιαίο header (επικεφαλίδα), για να μειώσει το κόστος που συνεπάγεται τα μεμονωμένα κανάλια. Αυτό βοηθά στο χαμηλότερο χρόνο αναμονής (latency), μειώνει την επεξεργαστική ισχύ (processing power) και το εύρος ζώνης που απαιτούνται, πράγμα που επιτρέπει στο πρωτόκολλο να αναπτυχθεί ευκολότερα με έναν μεγάλο αριθμό ενεργών καναλιών μεταξύ των τερματικών σημείων. Δεδομένου ότι το IAX σχεδιάστηκε για τη μετάδοση φωνής, έχει λάβει κάποια κριτική για να μην χρησιμοποιηθεί για μετάδοση video - αλλά στην πραγματικότητα, το IAX έχει τη δυνατότητα να μεταφέρει λίγο πολύ οποιοδήποτε επιθυμητό media. Επειδή είναι ένα ανοικτό πρωτόκολλο, όλοι οι τύποι media θα ενσωματωθούν στο μέλλον δεδομένου ότι κάτι τέτοιο επιθυμούν οι περισσότεροι χρήστες.. Το IAX έχει τη δυνατότητα να κάνει πιστοποίηση (authenticate) με τρεις τρόπους: plain text (καθαρό κείμενο), MD5 hashing (κατακερματισμό MD5), και RSA key exchange (ανταλλαγή ψηφιακού κλειδιού με RSA). Αυτό, φυσικά, δεν κάνει τίποτα για να κρυπτογραφήσει τα media ή τα headers μεταξύ των τερματικών σημείων. Πολλές λύσεις περιλαμβάνουν τη χρησιμοποίηση ενός Virtual Private Network ( VPN) για να κρυπτογραφήσουν τα media σε ένα άλλο επίπεδο, το οποίο απαιτεί τα τερματικά σημεία να έχουν εκ των προτέρων αυτά τα tunnels ρυθμισμένα και λειτουργικά. Στο μέλλον, το IAX μπορεί να είναι σε θέση να κρυπτογραφήσει τα media μεταξύ των τερματικών σημείων με τη χρήση ενός exchanged RSA key, ή ενός dynamic key exchange στην οργάνωση της κλήσης, που επιτρέπει τη χρήση της αυτόματης και τυχαίας αλλαγής των κλειδιών. 94

111 Αυτό θα ήταν πολύ ελκυστικό για τη δημιουργία μιας ασφαλούς σύνδεσης με ένα φορέα όπως η τράπεζά. Εντούτοις, οι διάφορες κρατικές υπηρεσίες επιβολής του νόμου, πρόκειται να θελήσουν κάποιο επίπεδο πρόσβασης σε τέτοιες συνδέσεις. Το πρωτόκολλο IAX2 σχεδιάστηκε σκόπιμα για να λειτουργήσει πίσω από συσκευές NAT. Η χρήση μίας θύρας UDP για τη σηματοδότηση και για τη μετάδοση των media κρατά τον αριθμό των ανοικτών θυρών (port) που απαιτούνται στο firewall στο ελάχιστο. Αυτές οι εκτιμήσεις έχουν βοηθήσει να κάνουν το IAX ένα από τα ευκολότερα πρωτόκολλα (εάν όχι το ευκολότερο) για να εφαρμοστεί στα ασφαλή δίκτυα SIP Το SIP είναι ένα πρωτόκολλο ελέγχου σε επίπεδο εφαρμογής, Signaling πρωτόκολλο για την Internet τηλεφωνία. Το SIP μπορεί να εγκαταστήσει sessions για την υποστήριξη χαρακτηριστικών όπως το audio/videoconferencing και την εκτροπή κλήσεων. Επίσης προσφέρει σε παρόχους την ενοποίηση της IP τηλεφωνίας με υπηρεσίες Web, και chat. Για την ταυτοποίηση του χρήστη που καλεί, την εκτροπή και υπηρεσίες εγγραφής, ένας SIP server υποστηρίζει δυνατότητες της παραδοσιακής τηλεφωνίας όπως την προσωπική φορητότητα, την ώρα και την μέρα της κλήσης, βασισμένα στα γεωγραφικά στοιχεία του χρήστη που καλεί.(για το SIP έχουμε αναφερθεί αναλυτικά στο πρώτο κεφάλαιο.) H.323 To ITU H.323 είναι ένα πρότυπο πρωτόκολλο multimedia conferencing, το οποίο περιλαμβάνει φωνή, video και δεδομένα conferencing, για χρήση πάνω από δίκτυα μεταγωγής πακέτου. Δημιουργήθηκε από τον Michael Mansous (http://www.inaccessnetworks. com) και είναι βασισμένο στο open H.323 (http://www.openh323.org). To H.323 ήταν το πρώτο πρότυπο για VoIP, αλλά έχει υποκατασταθεί από το SIP.[42] 95

112 3.9 Asterisk File System Στον πίνακα 3.5 παρουσιάζουμε πού έχουν εγκατασταθεί τα απαραίτητα αρχεία του προγράμματος Asterisk καθώς και μια περιγραφή των αρχείων συστήματος του Asterisk (Asterisk File System) Kατάλογος /etc/asterisk /usr/sbin Περιγραφή Όλα τα αρχεία ρυθμίσεων εκτός από το /etc/zaptel.conf Tα εκτελέσιμα αρχεία του asterisk καθώς και scripts συμπεριλαμβανομένων asterisk, astman, astgenkey and safe_asterisk. /usr/lib/asterisk Αρχιτεκτονική του Asterisk, binary αντικείμενα /usr/lib/asterisk/modules Runtime modules για εφαρμογές, channel driver, codes, file format driver, κτλ. /usr/include/asterisk header files που χρειάζονται για building asterisk εφαρμογές, channel drivers και αλλά loadable modules. /var/lib/asterisk Διάφορα δεδομένα που χρησιμοποιούνται από το asterisk κατά την διάρκεια που εκτελείται. 96

113 /var/lib/asterisk/agi-bin AGI scripts που χρησιμοποιούνται από τα dial plan agi applications /var/lib/asterisk/astdb H βάση δεδομένων του Asterisk, κρατάει πληροφορίες ρυθμίσεων. Το αρχείο αυτό δεν αλλάζει μέσω ενός επεξεργαστή κειμένου. Χρησιμοποιούμε τη γραμμή εντολών της βάσης δεδομένων του Asterisk για αλλαγές, για να προσθέσουμε και να τροποποιήσουμε τα δεδομένα αυτού του αρχείο. /var/lib/asterisk/images Εικόνες από εφαρμογές ή DialPlan /var/lib/asterisk/keys Ιδιωτικά και δημόσια κλειδιά που χρησιμοποιούνται από τον Asterisk για RSA authentication. Το ΙΑΧ αποθηκεύει, επίσης, κλειδιά εδώ /var/lib/asterisk/mohmp3 MP3 αρχεία που χρησιμοποιούνται για τη μουσική στην αναμονή (Music On Hold) Oι ρυθμίσεις βρίσκονται στο φάκελο /var/lib/asterisk/sounds /var/lib/asterisk/sounds Αρχεία audio που χρησιμοποιούνται από εφαρμογές 97

114 του asterisk. Μερικές εφαρμογές κρατάνε τα αρχεία τους σε υποκαταλόγους. /var/run Runtime pipes και PID files /var/run/asterisk.pid Primary Process Identifier (PID) της διεργασίας του Asterisk /var/run/asterisk/ctl pipe που χρησιμοποιείτε από το Asterisk για ενεργοποίηση του remote operation /var/spool/asterisk Runtime spooled files για voic , outgoing calls, κτλ. /var/spool/asterisk/outgoing Το Asterisk παρακολουθεί αυτόν το κατάλογο για εξερχόμενες κλήσεις. Μια εξερχόμενη κλήση αποθηκεύει το αποτέλεσμά της σε ένα αρχείο σε αυτόν το κατάλογο /usr/spool/asterisk/qcall χρησιμοποιείται από τις εφαρμογές qcall. /var/spool/asterisk/vm Voic boxes, ανακοινώσεις και φακέλους Πίνακας 3.5 Asterisk file System 98

115 3.10 Υποστηριζόμενα Codec από το Asterisk Στον πινακα 3.6 παρουσιάζουμε τα codecs που υποστηρίζονται από τον Asterisk καθώς επίσης και το ρυθμό μετάδοσης τους. Codec 16-bit linear G.711u (micro-law) G.711a (A-law) IMA-ADPCM GSM 6.10 MP3 LPC-10 Rate(ρυθμός) 128 kbps 64 kbps 64 kbps 32 kbps 12 kbps variable, decode only 2.4 kbps Πίνακας 3.6 Υποστηριζόμενα Codecs 3.11 Τύποι αρχείων ήχου υποστηριζόμενων από το Αsterisk Στον πίνακα 3.7 παρουσιάζουμε τους τύπους αρχείων που υποστηρίζονται από το Asterisk με μια μικρή περιγραφή τους. Οι τύποι αρχείων ήχου που χρησιμοποιούνται συνήθως είναι gsm,wav και wav.[41] Τύπος raw pcm vox wav WAV gsm Περιγραφή 16-bit linear raw data 8-bit micro-law raw data 4-bit IMA-ADPCM raw data 16-bit linear WAV file at 8000 Hz GSM compressed WAV file at 8000 Hz raw GSM compressed data 99

116 g723 simple g723 format with time stamp Πίνακας 3.7 Τύποι αρχείων ήχου υποστηριζόμενων από το Αsterisk 100

117 - ΚΕΦΑΛΑΙΟ 4 0 Ρυθμίσεις του Asterisk 4.1 EΙΣΑΓΩΓΗ Πριν από τη ρύθμιση του Asterisk, όπως παρουσιάζεται στην εικόνα 4.1 θα πρέπει να ρυθμιστεί κάθε υλικό που μπορεί να χρησιμοποιηθεί όπως SIP τηλέφωνα, soft τηλέφωνα (softphones) και hardware όπως κάρτες με FXO και FXS κανάλια (Zaptel - Zapata hardware). Στα πλαίσια της παρούσας πτυχιακής εργασίας δεν εγκαταστάθηκε επιπλέον υλικό (hardware). Στη συνέχεια θα παρουσιαστούν οι τυπικές ρυθμίσεις για τα διάφορα είδη καναλιών (channels). Μετά από την ρύθμιση υλικού και των καναλιών μπορεί να ρυθμιστεί και το Asterisk. Εικόνα 4.1 TDM400P της Digium με FXO και FXS modules 101

118 Για να ρυθμιστεί το Asterisk θα πρέπει να δημιουργήσουμε εντός των αρχείων ρύθμισης dialplans, extensions και contexts ή να τροποποιήσουμε τα ήδη υπάρχοντα. To Dialplan μπορεί να χαρακτηριστεί ως η καρδιά κάθε συστήματος Asterisk, καθώς καθορίζει πως το Asterisk διαχειρίζεται τις εισερχόμενες και τις εξερχόμενες κλήσεις. Τα dialplans που είναι χωρισμένα σε ενότητες ονομάζονται contexts. Τα contexts είναι ομάδες από extensions που έχουν κάποιο όνομα (named groups). Μέσα σε ένα context μπορούν να υπάρχουν ένα ή περισσότερα extensions. Ένα extension είναι μια οδηγία (ή εντολή) που θα ακολουθήσει το Asterisk (πχ ψηφία που πρέπει να πατηθούν για να γίνει μια κλήση). Τα extensions επίσης διευκρινίζουν το τι συμβαίνει στις κλήσεις καθώς αυτές γίνονται μέσω του dialplan. Τα dialplans τα δημιουργούμε στο αρχείο extensions.conf. Σε επόμενη ενότητα αναφερόμαστε αναλυτικότερα σε αυτά. Παρακάτω, όπως είπαμε, θα δούμε τυπικές ρυθμίσεις του Asterisk. Οι ρυθμίσεις που έγιναν στην παρούσα πτυχιακή εργασία παρουσιάζονται στο Παράρτημα Α. 4.2 Αρχεία ρυθμίσεων Tα αρχεία ρυθμίσεων του Asterisk (Asterisk Configuration files) είναι αρχεία ελέγχου λειτουργίας όπως παρουσιάζεται στην εικόνα 4.2. Στη διανομή του Αsterisk υπάρχουν και κάποια παραδείγματα των αρχείων ρύθμισης του Asterisk (Sample configuration files) που έχουν κάποιες τυπικές ρυθμί-σεις. Πριν επιχειρηθεί μια οποιαδήποτε ρύθμιση του Asterisk θα πρέπει να υπάρχει εξοικείωση με την αρχιτεκτονική του όπως αυτή περιγράφηκε στο προηγούμενο κεφάλαιο. Μετά την εγκατάσταση του Asterisk, τα αρχεία ρυθμίσεων βρίσκονται στο /etc/asterisk. Για να προσαρμοστούν στις ανάγκες του κάθε χρήστη θα πρέπει να ρυθμιστούν τροποποιηθούν πολλά από αυτά. Τα πιο σημαντικά - βασικά αρχεία ρύθμισης του Asterisk είναι τα εξής: sip.conf, extension.conf καθώς και το voic .conf. Στο sip.conf ρυθμίζουμε τους SIP clients (προσθέτουμε χρήστες) που επιτρέπουμε να συνδεθούν στο Αsterisk. Στο extensions.conf ρυθμίζουμε το dialplan του Αsterisk. Αυτό το αρχείο είναι το πιο σημαντικό καθότι εδώ 102

119 γίνονται οι βασικές ρυθμίσεις. Στο voic .conf κάνουμε ρυθμίσεις για τον τηλεφωνητή και για να έχουμε ηχητικά μηνύματα (voic s). Εικόνα: 4.2 Configuration Files (Αρχεία Ρύθμισης) 103

120 4.3 Σύνταξη των αρχείων ρύθμισης του Asterisk (Configuration File Syntax) Τα αρχεία ρύθμισης του Asterisk περιέχουν χαρακτήρες του κώδικα ASCII που χρησιμοποιούνται για την σύνταξή τους. Παρακάτω ακολουθεί μια σύντομη περιγραφή για το πως συντάσσονται τα αρχεία αυτά. Στις επόμενες ενότητες υπάρχει και περιγραφή των αρχείων ρύθμισης Σχόλια Για να προσθέσουμε σχόλια μέσα σε ένα αρχείο ρύθμισης του Asterisk χρησιμοποιούμε τον χαρακτήρα ; όπως φαίνεται στο παράδείγμα: CONSOLE=Console/dsp ; CONSOLE=Zap/ ; Εδώ βάζουμε σχόλια Γραμμές Τα αρχεία ρύθμισης του Asterisk μπορούν να περιέχουν πολλές γραμμές δεν υπάρχει κάποιος περιορισμός Ενότητες (Sections) Τα αρχεία ρύθμισης του Asterisk διαιρούνται χωρίζονται σε ενότητες (sections). Σε αυτές τις ενότητες (sections) μπορεί να δοθεί όνομα που να περιέχει γράμματα, αριθμούς, τον χαρακτήρα underscore (_) και βρίσκονται μέσα σε αγκύλες όπως φαίνεται στο παράδειγμα: [ general_1234 ] Αυτές οι ενότητες αναφέρονται και ως context Μεταβλητές Στις μεταβλητές, όπως ισχύει γενικά έτσι κι εδώ, μπορεί να γίνει εκχώρηση τιμών. 104

121 Μεταβλητή = τιμή Οι μεταβλητές που βρίσκονται εντός της ενότητας (section) [globals] μπορούν να είναι διαθέσιμες και στις υπόλοιπες ενότητες. To [globals] είναι ένα context. Εδώ είναι μερικά παραδείγματα: [globals] CONSOLE=Console/dsp ; Console interface for demo CONSOLE=Zap/ CONSOLE=Phone/phone IAXINFO=guest ; AXtel username/password IAXINFO=myuser ; mypas TRUNK=Zap/g2 Trunk interface TRUNKMSD=1 ; Most Significant Digits to strip (usually 1 or 0) Οι μεταβλητές μπορεί να καθοριστούν με την εντολή SetGlobalVar ή SetVar μέσα σε ένα extention. Εδώ είναι ένα παράδειγμα: exten => s,2,setvar(counter=0) Για να αναφερθούμε στις μεταβλητές τοποθετείτε το σύμβολο του δολαρίου $ και τα άγκιστρα {}, για παράδειγμα: ${μεταβλητή} Η απόδοση τιμών στις μεταβλητές γίνεται με τη χρήση του =. Ο κενός χαρακτήρας space αγνοείτε. Μια μεταβλητή μπορεί να πάρει πολλές τιμές. Οι πολλαπλές τιμές που μπορούν να εκχωρηθούν μπαίνουν μέσα σε αγκύλες και πρέπει να χωρίζονται από το σύμβολο " ". Για παράδειγμα: μεταβλητή = [τιμή1 τιμή 2 τιμή 3] Σε αυτό το παράδειγμα, στη μεταβλητή μπορεί να αποδοθεί μια τιμή από τις τρεις : τιμή1 ή τιμή 2 ή τιμή

122 4.4 Η διαδικασία των ρυθμίσεων Το Asterisk ενώνει τα κανάλια επικοινωνίας, για παράδειγμα ένα κανάλι SIP ή ένα κανάλι IAX. Θα πρέπει να γνωρίζουμε τι τύπους καναλιών υποστηρίζει το Asterisk πριν από οποιαδήποτε απόπειρα αλλαγής των ρυθμίσεων. Για να ρυθμιστεί το Asterisk, θα πρέπει να τροποποιηθεί το περιεχόμενο των αρχείων ρύθμισης, που φαίνονται στην εικόνα 05-2, και ειδικότερα τα sip.conf, extension.conf, voic .conf, που είναι όπως αναφέρθηκε προηγούμενως τα βασικά αρχεία. Για παράδειγμα, για να λαμβάνονται κλήσεις θα πρέπει να ρυθμιστεί το extensions.conf και για να υπάρχει υπηρεσία φωνητικού ταχυδρομείου για τις εισερχόμενες αναπάντητες κλήσεις το voic .conf. Όλα αυτά αφού έχει ρυθμιστεί και έχουν προστεθεί χρήστες στο sip.conf ( για SIP κανάλι channel). Για να λαμβάνονται κλήσεις από IAX κανάλι, θα πρέπει να ρυθμιστεί το αρχείο iax.conf. Παρακάτω παρουσιάζονται οι ρυθμίσεις που γίνονται στα αρχεία αυτά: sip.conf Στο sip.conf μπορεί να προστεθεί ο κάθε χρήστη που χρειαζόμαστε έτσι όπως φαίνεται στο παράδειγμα όπου έχουν προστεθεί τέσσερις χρήστες [user1] username=user1 type=friend host=dynamic secret=mypassword context=tutorial [user2] username=user2 type=friend host=dynamic secret=mypassword context=tutorial 106

123 [user3] username=user3 type=friend host=dynamic secret=mypassword context=tutorial [user4] username=user4 type=friend host=dynamic secret=mypassword context=tutorial 1. To [user1] σημαίνει ότι γίνετε εγγραφή για τον χρήστη user1 2. Το type=friend δηλώνει στο Αsterisk πως ο συγκεκριμένος χρήστης μπορεί και να κάνει κλήσεις και να δέχεται κλήσεις. (διαφορετικά ορίζετε ως peer ή user). 3. Το username=user1 σημαίνει ότι ο συγκεκριμένος χρήστης θα ονομάζετε user1 4. Το host=dynamic δηλώνει ότι ο συγκεκριμένος host παίρνει τη διεύθυνση IP δυναμικά. Θα μπορούσε, βέβαια, να οριστεί και στατική IP πχ host= Μια διεύθυνση IP θα μπορούσε να είναι στατική ή δυναμική. Αν ο υπολογιστής χρησιμοποιεί την ίδια διεύθυνση IP κάθε φορά που θα συνδέεται με το δίκτυο, τότε η προσέγγιση αυτή έχει μια στατική διεύθυνση IP. Εάν η διεύθυνση IP αλλάζει συχνά όταν ο υπολογιστής συνδέεται στο δίκτυο, τότε η προσέγγιση αυτή έχει μια δυναμική διεύθυνση IP. Όταν βάλουμε στατική ο χρήστης μπορεί να χρησιμοποιεί το softphone μόνο από τον δηλωμένο IP. 5. To secret=mypassword είναι ο κωδικός πρόσβασης του χρήστη για να συνδεθεί στο σύστημα Asterisk από κάποιον client softphone πχ X-Lite. Θα μπορούσε φυσικά να χρησιμοποιεί για να συνδεθεί στο σύστημα και ένα συμβατικό τηλέφωνο (SIPphone) και όχι softphone. 6. Το context= tutorial καθορίζει ότι o συγκεκριμένος user θέλουμε να ανήκει στην ενότητα (context) tutorial του αρχείου extensions.conf. Θα μπορούσε να χρησιμοποιηθεί context= default που είναι η 107

124 εξορισμού ενότητα (default context) του extensions.conf. Αυτό γίνετε γιατί στο Asterisk, όπως αναφέρθηκε, οι εξερχόμενοι αριθμοί διαιρούνται κατά ομάδες (έτσι ώστε να επιτευχθεί ομαδοποίηση των χρηστών) αποκαλούμενες context (πλαίσια ή ενότητες) προκειμένου να χωρίσουν τις διαφορετικές ανάγκες για τους διαφορετικούς τύπους χρηστών. Παραδείγματος χάριν, ένα context για τις τοπικές κλήσεις, άλλο για κλήσεις μέσα στην πόλη, και άλλο για τις διεθνείς κλήσεις extensions.conf Το αρχείο extensions.conf είναι χωρισμένο σε contexts. Μπορούμε να έχουμε όσα contexts θέλουμε. Αν θέλουμε ένα context με το όνομα tutorial και ένα με το όνομα tutorial2 απλά το δημιουργούμε έτσι: [tutorial] εδώ πάνε οι ρυθμίσεις που ανήκουν στο context tutorial. [tutorial2] εδώ πάνε οι ρυθμίσεις για το context tutorial2. Υπάρχει ένα ειδικό context το globals. Ότι μεταβλητές οριστούν σε αυτό είναι διαθέσιμες και στα υπόλοιπα contexts, όπως αναφέρθηκε παραπάνω. Διαφορετικά, μια μεταβλητή ορισμένη στο [tutorial] είναι διαθέσιμη μόνο εκεί που ορίστηκε. Ένα παράδειγμα του extensions.conf είναι το εξής: [tutorial] exten => 1060,1,Dial(SIP/user1) exten => 1061,1,Dial(SIP/user2) exten => 1062,1,Dial(SIP/user3) exten => 1063,1,Dial(SIP/user4) Έχουμε, λοιπόν, ένα context με όνομα tutorial στο οποίο δηλώσαμε τα extension για τους χρήστες που ορίστηκαν στο sip.conf. Το exten είναι ένα το keyword με το οποίο θα γίνει σχεδόν όλη η διαδικασία. Με αυτό μπορούμε να ορίσουμε ένα extension. Το extension 108

125 έχει τρία τμήματα, τον αριθμό/όνομα του extension, την προτεραιότητα και την εφαρμογή που καλούμε για το extension. Ας πάρουμε την πρώτη γραμμή του παραπάνω παραδείγματος: exten => 1060,1,Dial(SIP/user1) Το exten => μας λέει πως "έχουμε τον ορισμό ενός extension" Το 1060 είναι το νούμερο του extension δηλαδή το νούμερο που θα πρέπει να καλέσουμε για τον χρήστη user1. Το 1 είναι η σειρά προτεραιότητας. Μιας και ένα extension μπορεί να αποτελείται από παραπάνω από ένα "βήματα", ο αριθμός του κάθε βήματος είναι η προτεραιότητα. Στα άλλα "βήματα" μπορούμε να δηλώσουμε 2, 3, 4 που αυτό σημαινεί ότι θα εκτελεστούν με την συγκεκριμένη σειρά. Το Dial() είναι η εφαρμογή (application) που καλούμε. Η εφαρμογή Dial() αναλαμβάνει να συνδέσει τον καλούντα με την πρώτη παράμετρό της. Εμείς ως πρώτη παράμετρο βάλαμε το SIP/user1 που σημαίνει ότι θα γίνει κλήση στον χρήστη user1 μέσω του καναλιού SIP (πρωτόκολλο SIP). Στο context tutorial2 θα μπορούσε να υπάρχει ένα extension για έναν άλλο χρήστη πχ τον user5: [tutorial2] exten => 1160,1,Dial(SIP/user5) Όταν ένας χρήστης του context tutorial λοιπόν καλέσει τον αριθμό 1160, το Asterisk θα πάει στο context tutorial και θα ψάξει για ένα extension με το νούμερο 1160 το οποίο δεν υπάρχει. Η λύση είναι να συμπεριλάβουμε τα περιεχόμενα του context tutorial στο tutorial2. Για αυτό χρησιμοποιούμε την εντολή include: [tutorial2] include = tutorial exten => 1160,1,Dial(SIP/user5) 109

126 4.4.3 voic .conf Προσθέτοντας στο sip.conf σε έναν χρήστη την καταχώρηση mailbox = όπως στο παράδειγμα: [user] type = friend username = user secret = user host = dynamic context = tutorial mailbox = Δημιουργούμε έναν τηλεφωνητή (voic ) για τον συγκεκριμένο χρήστη. Για να λειτουργήσει στο αρχείο voic .conf δημιουργούμε ένα context με όνομα πχ [mb_tutorial] μέσα σε αυτό ένα extension όπως στο παράδειγμα: [mb_tutorial] 700 = Το 700 είναι ο αριθμός που αντιστοιχεί στο mailbox του χρήστη στο οποίο υπάρχουν τα ηχητικά μηνύματα. To 1234 είναι ο κωδικός του χρήστη για το mailbox. To user είναι το όνομα του χρήστη και το το του στο οποίο στέλνετε ειδοποίηση κάθε φορά που έχει ηχητικό μήνυμα. Τέλος στο αρχείο extensions.conf θα πρέπει να δημιουργηθεί ένα extension που θα έχει το αριθμό που θα καλούμε για την υπηρεσία voic . Για παράδειγμα: exten = Το 8888 είναι ο αριθμός της υπηρεσίας voic που καλούμε, το 1 η προτεραιότητα και η Voic Main() είναι η εφαρμογή της υπηρεσίας. Βάζοντας σημαίνει ότι καλούμε τον τηλεφωνητή (voic ) για τους όλους τους χρήστες του context (θα μπορούσε να χαρακτηριστεί και ως ομάδα ή group) mb_tutorial. 110

127 4.4.4 iax.conf Στο παρακάτω παράδειγμα υπάρχει ένα δείγμα ρύθμισης του καναλιού IAX τροποποιώντας το iax.conf. Η ακόλουθη καταχώρηση στο iax.conf θα συνδέσει τον Asterisk server με τον IAX server ο οποίο θα πραγματοποιήσει τις κλήσεις. Προσθέτοντας στο iax.conf την ακόλουθη καταχώριση ένας χρήστης γίνετε register (καταχωρείται) στον απομακρυσμένο (remote) server iax.url.com: register Η καταχώρηση ενημερώνει τον απομακρυσμένο διακομιστή για την τοποθεσία του Asterisk server. Αυτός είναι ο τρόπος με τον οποίο ο απομακρυσμένος διακομιστής ξέρει πώς να αποστείλει κλήσεις στον Asterisk server. Ακολούθως, πρέπει να ρυθμιστεί το αρχείο extensions.conf έτσι ώστε το dialplan να επεξεργαστεί σωστά τις εισερχόμενες κλήσεις. Η ακόλουθη καταχώρηση στο extensions.conf θα μπορούσε να κάνει κλήσεις που προέρχονται από iax.url.com. Οι ρυθμίσεις στο αρχείο extensions.conf φαίνονται στο παράδειγμα: [iax-incoming] ;Αυτό το context μας λέει τι να κάνει ο Asterisk τις εισερχόμενες κλήσεις ;από το κανάλι ΙΑΧ. ;Θα πρέπει να ακουστεί ένα ηχογραφημένο μήνυμα "congratulations" ;στις εισερχόμενες κλήσεις exten => _ 9XXXXXX,1,Playback(demo-congrats) exten => h,1,hangup exten => i,1,hangup exten => t,1,hangup Σε αυτό το context βλέπουμε στο πρώτο extension το εξής: exten => _ 9XXXXXXΧ,1,Playback(demo-congrats) Όταν ένα extension ξεκινάει με τον χαρακτήρα _ (underscore) τότε τo Asterisk το μεταφράζει ως pattern,δηλαδή, μια ακολουθία χαρακτήρων που περιγράφουν ένα σύνολο αποδεκτών αριθμών και όχι μόνο μια. Το συγκεκριμένο pattern θέλει να ταιριάξει έναν αριθμό που ξεκινάει με 9 και έχει 7 ακόμη νούμερα. Το _ είναι για να δηλώσουμε στο Αsterisk ότι έχει ένα pattern. Το 9 είναι χαρακτήρας που ταιριάζει μόνο με τον εαυτό 111

128 του, δηλαδή το 9. Το X είναι χαρακτήρας που ταιριάζει με ένα οποιοδήποτε νούμερο. Μιας και υπάρχουν 7 X τότε θα πρέπει να υπάρχουν 7 ψηφία. Επίσης σε αυτό το extension βλέπουμε δύο νέες εφαρμογές (applications) την playback() και την hangup(). Περισσότερα για τα patterns και τις εφαρμογές θα αναφέρουμε σε επόμενη ενότητα. Η καταχώριση στο iax.conf, όπως φαίνεται στο παρακάτω παράδειγμα, ενημερώνει τον απομακρυσμένο server για την τοποθεσία σας. Το iax.conf πρέπει να τροποποιηθεί έτσι ώστε να χρησιμοποιεί ένα συγκεκριμένο context για ένα dialplan. Σε αυτό το παράδειγμα, το context ονομάζεται iax-incoming και διευκρινίζει ότι μια κλήση που έρχεται για το κανάλι IAX θα διεκπεραιώνεται από τις οδηγίες που εμφανίζονται στο extensions.conf. Για να γίνει αυτό θα πρέπει να είναι σωστά ρυθμισμένος ο απομακρυσμένος Server έτσι ώστε να γίνονται κλήσεις προς τον iax server. ;iax.conf [iaxserver] context = iax-incoming secret= ijklmno auth= md type = friend host = asterisk.teikav.edu.gr Η καταχώρηση εδώ (iax.conf) είναι παρόμοια με αυτή στο sip.conf. 4.5 Dialplans Σε κάθε τηλεφωνικό σύστημα ένα dialplan καθορίζει το πως θα γίνονται οι κλήσεις και τι θα γίνονται οι κλήσεις. Για παράδειγμα αν κάποιος δεν απαντά ή αν θα μπορούν να γίνονται κλήσεις προς αυτόν μετά τις 5π.μ. κτλ. Οι ρυθμίσεις γίνονται στο αρχείο extensions.conf, το οποίο περιέχει τα dialplans και ελέγχει την συμπεριφορά των συνδέσεων μέσα από τον Asterisk server Ενότητες του extensions.conf 112

129 Στο αρχείο extensions.conf υπάρχουν δύο ενότητες (context)με ονόματα general και globals τα οποία είναι δεσμευμένα. Επίσης δεσμευμένο είναι και το context με όνομα default. Μια οποιαδήποτε άλλη ενότητα, εκτός από το general ή globals, καθορίζει ένα άλλο context. Ένα context είναι ένα group (ομάδα) από extensions [general] To context [general] βρίσκετε συνήθως στην αρχή του αρχείου extensions.conf και περιέχει δύο μεταβλητές που χρησιμοποιούνται από τον Asterisk και που ελέγχουν την προστασία του αρχείου. Αυτές οι μεταβλητές είναι οι static και writeprotect και τιμές που πρέπει να έχουν φαίνονται στο παράδειγμα: static=yes writeprotect=nο Αν η στη μεταβλητή static έχει αποδοθεί η τιμή no τότε το αρχείο μπορεί να γίνει overwritten από την λειτουργία του Asterisk. Αν η στη μεταβλητή static έχει αποδοθεί η τιμή yes και στη μεταβλητή writeprotect έχει αποδοθεί η τιμή no τότε με την εντολή save dialplan από την γραμμή εντολών του Αsterisk (AsteriskCLI> save dialplan και enter) μπορούμε να σώσουμε το dialplan για να μπορέσουμε να το χρησιμοποιήσουμε [globals] Το context [globals] είναι συνήθως η δεύτερη ενότητα στο αρχείο extentions.conf και περιέχει μεταβλητές οι οποίες μπορούν να είναι διαθέσιμες παντού από άλλα contexts μέσα στο αρχείο. Ένα παράδειγμα είναι το παρακάτω: [globals] CONSOLE = Console/dsp ; Console Interfac CONSOLE=Console/dsp ; sole interface for demο ;CONSOLE=Zap/ ;CONSOLE=Phone/phone IAXINFO=guest ; IAXtel username/passwor ;IAXINFO=myuser:mypas TRUNK=Zap/g2 ;Trunk interface TRUNKMSD=1 ; MSD digits to strip (usually 1 or 0) 113

130 Οι μεταβλητές globals αναφέρονται σε ένα dialplan ως εξής: ${VARIABLE} Extensions Παραπάνω αναφέραμε ότι ένα extension είναι μια οδηγία (ή εντολή) που θα ακολουθήσει το Asterisk (πχ ψηφία που πρέπει να πατηθούν για να γίνει μια κλήση). Τα extensions επίσης διευκρινίζουν το τι συμβαίνει στις κλήσεις καθώς αυτές γίνονται εντός dialplan. Ένα extension έχει προσδιοριστεί από ένα αλφαριθμητικό αναγνωριστικό. και μπορεί να περιέχει αριθμούς, γράμματα, και τον ειδικό χαρακτήρα *, και #. Για παράδειγμα, η ακόλουθη εγγραφή έχει extension το 1000 exten => 1000,1,Goto(default,s,1) Μερικά ονόματα είναι δεσμευμένα για τα extension όπως παρουσιάζεται στον πίνακα 4.1: Όνομα Χαρακτήρας Χρήση S Start Για μια κλήση που δεν χρησιμοποιεί ψηφία T Timeout Όταν ο χρήστης που καλεί σε ένα ηχητικό menu δεν πατήσει το σωστό αριθμό από ψηφία τότε εκτελείτε το timeout T Absolute Timeout i Invalid Εκτελεί όταν ο χρήστης που καλεί πληκτρολογήσει λάθος extension 114

131 0 (zero) Operator Εκτελείτε όταν πατηθεί το 0 H Hangup Εκτελείτε όταν τελειώσει μια κλήση Πίνακας 4.1 Δεσμευμένα ονόματα για τα extension Mοτίβα Με τον όρο μοτίβα (patterns) εννοούμε μια ακολουθία χαρακτήρων που περιγράφουν ένα σύνολο αποδεκτών αριθμών. Ένα pattern είναι το εξής: _NXXXXXX Ένα pattern μπορεί να περιλαμβάνει τους ακόλουθους χαρακτήρες όπως παρουσιάζεται στον πίνακα 4.2: Χαρακτήρας Περιγραφή Ν Οποιοδήποτε ψηφίο μεταξύ 2 και 9 Χ Οποιοδήποτε ψηφίο μεταξύ 0 και 9 [1235-9] Οποιοδήποτε ψηφίο υπάρχει στις αγκύλες, εδώ δηλαδή τα 1,2,3,5,6,7,8,9. (period) έναν ή περισσότερους χαρακτήρες Πίνακας 4.2 χαρακτήρες pattern Εφαρμογές Οι εφαρμογές (Applications) μπορούν να συνεργαστούν με τα extensions (και να έχουν και προτεραιότητες (priorities)). Κάθε extension ορίζεται με μία ή περισσότερες σειρές όπως το: exten =>,,,() όπου ένα αλφαριθμητικό extension χρησιμοποιείτε για να προσδιορίσει την εκτέλεση μιας εφαρμογής χρησιμοποιώντας το όνομα της πχ Dial. Ένα dialplan μπορεί να συνεργαστεί με μία ή περισσότερες εφαρμογές και με ένα extension. Στο ακόλουθο παράδειγμα συνεργάζεται με δύο εφαρμογές, τις Dial και voic και με το extension 600. Το u 115

132 σημαίνει unavailable message και το b ότι είναι busy. Πληκτρολογώντας τον αριθμό 600 καλούμε έναν χρήστη σε κανάλι Ζap. Αν αυτός ο χρήστης είναι μη διαθέσιμος ή απασχολημένος τότε η κλήση προωθείτε στο τηλεφωνητή (voic ). exten => 600,1,Dial,Zap/9 15 exten => 600,2,Voic ,u600 exten => 600,102,Voic ,b Εφαρμογές που είναι διαθέσιμες στο extensions.conf Το Asterisk υποστηρίζει πληθώρα εφαρμογών για διάφορές χρήσεις. Aυτές τις εφαρμογές μπορούμε να τις χρησιμοποιήσουμε στο αρχείο extensions.conf και έχουν να κάνουν με διαχείριση των κλήσεων, τον τηλεφωνητή (voic ), με βάσεις δεδομένων κτλ. Έτσι λοιπόν μπαίνοντας στην κονσόλα του Asterisk, και γράφοντας AsteriskCLI> show applications θα εμφανιστούν όλες οι διαθέσιμες εφαρμογές του συστήματος. Τις εφαρμογές τις παρουσιάζουμε στους πίνακες 4.3, 4.4, 4.5, 4.6 και 4,7. AbsoluteTimeout: Set absolute maximum time of call AddQueueMember: Dynamically adds queue member ADSIProg: Load Asterisk ADSI Scripts into phone AgentCallbackLogin: Call agent callback login AgentLogin: Call agent login AgentMonitorOutgoing: Monitor Outgoing Agent Calls (0.7.3 AGI: Executes an AGI compliant application Answer: Answer a channel if ringing AppendCDRUserField: Append data to the CDR user field Authenticate: Authenticate a use BackGround: Play a file while awaiting extension Busy: Indicate busy condition and stop CallingPres: Change the presentation for the callerid ChangeMonitor: Change monitoring filename of a channel ChanIsAvail: Check if channel is available Congestion: Indicate congestion and stop Cut: String handling function DateTime: Say the date and time DBdel: Delete a key from the database DBdeltree: Delete a family or keytree from the database DBget: Retrieve a value from the database DBput: Store a value in the database Dial: Place an call and connect to the current channel DigitTimeout: Set maximum timeout between digit Directory: Provide directory of voic extension 116

133 DISA: DISA (Direct Inward SystemAccess) EAGI: Executes an AGI compliant application Echo: Echo audio read back to the use EnumLookup: Lookup number in ENU Eval: Evaluate arguments before calling application Festival: Say text to the use Flash: Flashes a ZapTrunk GetCPEID: Get ADSI CPE I Goto: Goto a particular priority, extension, or context GotoIf: Conditional got GotoIfTime: Conditional goto on current time Hangup: Unconditional hangup HasNewVoic Conditionally branches to priority + 10 ICES: Streaming calls to theinternet LookupBlacklist: Look up Caller*ID name/number from blacklist database LookupCIDName: Look up CallerID Name from local database Macro: Macro Implementatio MeetMe: Simple MeetMe conference bridge MeetMeCount: MeetMe participant count Milliwatt: Generate a Constant 1000Hz tone at 0dbm (mu-law Monitor: Monitor a channel MP3Player: Play an MP3? file or stream MusicOnHold: Play Music On Hold indefinitely NBScat?: Play an NBS local strea NoCDR: Make sure asterisk doesn't save CDR for a certain cal NoOp: No operatio ParkAndAnnounce: Park and Announce ParkedCall: Answer a parked cal Playback: Play a file Playtones: Play a tone list Prefix: Prepend leading digit PrivacyManager: Require phone number to be entered, if no CallerID? send Queue: Queue a call for a call queue Random: Make a random jump in your dial plan Read: Read a variable Record: Record to a file RemoveQueueMember: Dynamically removes queue member ResetCDR: Reset CDR data ResponseTimeout: Set maximum timeout awaiting response Ringing: Indicate ringing ton SayDigits: Say Digit SayNumber: Say Number SayUnixTime: Say Time in a number of format SendDTMF: Sends arbitrary DTMF digit SendImage: Send an image file SendURL: Send a URL SetAccount: Sets account cod SetCallerID: Set CallerID SetCDRUserField: Set CDR User Field. See Billing SetCIDName: Set CallerID Name SetGlobalVar: Set variable to value SetLanguage: Sets user language SetMusicOnHold: Set default Music On Hold class 117

134 SetVar: Set variable to value SIPdtmfMode: Change DTMF mode during SIP call SMS: Send and receive SMS (short messaging service) - not yet in CVS! SoftHangup: Soft Hangup Application StopMonitor: Stop monitoring a channel StopPlaytones: Stop playing a tone list StripLSD: Strip Least Significant Digit StripMSD: Strip leading digit SubString: Save substring digits in a given variable Suffix: Append trailing digit System: Execute a system command Transfer: Transfer caller to remote extension Voic Leave a voic message Voic 2: (deprecated) Leave a voic message Voic Main: Enter voic system Voic Main2: (deprecated) Enter voic system Wait: Waits for some time WaitForRing: Wait for Ring Application WaitMusicOnHold: Wait, playing Music On Hold Zapateller: Block telemarketers with SI ZapBarge: Barge in (monitor) Zap channel ZapRAS: Executes ZaptelISDN RAS application Πίνακας 4.3 Γενικά οι εφαρμογές του Asterisk (Asterisk CLI > show applications) Στον πίνακα 4.4 παρουσιάζεται εφαρμογές οπώς οι hangup, answer, dial,κτλ με τις οποίες διαχειριζόμαστε τις κλήσεις στο Asterisk: Answer: Answer a channel if ringing Busy: Indicate busy condition and stop Congestion: Indicate congestion and stop Dial: Place an call and connect to the current channel DISA: DISA (Direct Inward SystemAccess) Hangup: Unconditional hangup Caller presentation (ID, Name etc CallingPres: Change the presentation for the callerid LookupBlacklist: Look up Caller*ID name/number from blacklist database LookupCIDName: Look up CallerID Name from local database PrivacyManager: Require phone number to be entered, if no CallerID? send Ringing: Indicate ringing ton SetCallerID: Set CallerID SetCIDName: Set CallerID Name SoftHangup: Request hangup on another channel Zapateller: Block telemarketers with SI Πίνακας 4.4 Διαχείριση κλήσεων Το Asterisk, όπως παρουσιάζεται στον πίνακα 4.5, υποστηρίζει και κάποιες εφαρμογές για διαχείριση σε βάσεις δεδομένων (database) που χρησιμοποιούνται από τα AGI Scripts. 118

135 DBdel: Delete a key from the database DBdeltree: Delete a family or keytree from the database DBget: Retrieve a value from the database DBput: Store a value in the database Extension logic - strings, application integration AbsoluteTimeout: Set absolute maximum time of cal AGI: Executes an AGI compliant application Πίνακας 4.5 Εφαρμογές για database Στον πίνακα 4.6 παρουσιάζονται ειδικές εφαρμογές που χρησιμοπούνται σε κανάλι zaptel και Zapata hardware: Flash: Flashes a ZapTrunk ZapBarge: Barge in (monitor) Zap channel ZapRAS: Executes ZaptelISDN RAS application Πινακας 4.6 Ζap εφαρμογές Υπάρχουν ακόμη και κάποιες εφαρμογές για την διαχείριση ηχήτικών μηνυμάτων τηλεφωνητή (voic ), για ουρές κλήσεων καθώς και κάποιες εσωτερικές εφαρμογές που χρησιμοποιεί ο ίδιος ο Asterisk. Όλες αυτές οι εφαρμογές παρουσιάζονται στους πίνακες 4.7, 4.8 και 4.9. Has NewVoic Conditionally branches to priority + 10 MeetMe: Simple MeetMe conference bridge MeetMeCount: MeetMe participant count Voic Leave a voic message Voic Main: Enter voic system deprecated: Voic 2: Leave a voic message deprecated: Voic Main2: Enter voic system Voic , version 1 is now replaced with Voic version 2 so all voic commands leads to voic version 2 Πινακας 4.7 Εφαρμογές voic και συνδιασκέψεις AddQueueMember: Dynamically adds queue member AgentCallbackLogin: Call agent callback logic AgentLogin: Call agent logi ParkAndAnnounce: Park and Announce ParkedCall: Answer a parked cal Queue: Queue a call for a call queue RemoveQueueMember: Dynamically removes queue member Πίνακας 4.8 Εφαρμογές για ουρές κλήσεων (call Queue) 119

136 Asterisk app_dbodbc: dial plan modifiers using unixodb Asterisk cmd DynExtenDB: Store extensions in database app Prepaid: Designed for Postgred Πινάκας 4.9 Εσωτερικές εφαρμογές του Asterisk Περισσότερες πληροφορίες για τις εφαρμογές μπορούμε να δούμε από την κονσόλα του Asterisk γράφοντας help και το όνομα της εφαρμογής Προτεραιότητες Η προτεραιότητα (priority) καθορίζει την εκτέλεση των εφαρμογών που χρησιμοποιούνται προκειμένου να πραγματοποιηθεί μια κλήση. Όταν ξεκινά μια κλήση, οι εφαρμογές για το extension εκτελούνται με τη χαμηλότερη προτεραιότητα (δηλαδή από το μικρότερο αριθμό προτεραιότητας στον μεγαλύτερο) και μέχρι το τέλος του DialPlan. exten => 600,1,Dial,Zap/9 15 exten => 600,2,Voic ,u600 Στο πιο πάνω παράδειγμα η εφαρμογή Dial εκτελείτε πριν από την εφαρμογή voic λόγω του ότι έχει priority 1. Μετά εκτελείτε η εφαρμογή voic με priority Αλλάζοντας την σειρά εκτέλεσης των Εφαρμογών Με την προσθήκη τιμών στις προτεραιότητες μπορεί να αλλάξει η σειρά εκτέλεση των εφαρμογών. Στο παρακάτω παράδειγμα μετά την εκτέλεση της εντολής Dial θα εκτελεστεί είτε η δεύτερη εντολή είτε η τρίτη. Αυτό επιτυγχάνεται με την προσθήκη του 100 στον αριθμό προτεραιότητας 2 που βρίσκεται στην τρίτη γραμμή. Δηλαδή μετά την εκτέλεση της εντολής Dial εκτελείται οποία εντολή είναι διαθέσιμη ή και οι δύο. exten => 600,1,Dial,Zap/9 15 exten => 600,2,Voic ,u600 exten => 600,102,Voic ,b

137 Με την εντολή goto μπορεί να αλλάξει η σειρά της εκτέλεσης των εφαρμογών σε ένα dialpan. exten => s,3,goto(${arg2},1) Οι εφαρμογές του Asterisk ή τα AGI scripts μπορούν να τροποποιήσουν τις προτεραιότητες. Τα ΑGI scripts (Asterisk Gateway Interface scripts) είναι προγράμματα σε προχωρημένη λογική και χρησιμοποιούνται για να επικοινωνήσουν με βάσεις δεδομένων (όπως PostgreSQL ή MySQL) και να έχουν πρόσβαση σε άλλους εξωτερικούς πόρους. Ένα AGI script βοηθάει το Asterisk να κάνει κάνει κάποιες διεργασίες που οι απλές εφαρμογές είναι δύσκολο ή αδύνατο να τις πραγματοποιήσουν. Τα AGI script μπορούν να γραφτούν σε γλώσσες όπως Perl, Python και PHP Contexts Τα contexts όπως παρουσιάζονται στο σχήμα της εικόνας 4.3 είναι τα κεντρικά δομικά στοιχεία του dialplan. Ένα context είναι μία «συλλογή» από extensions. Για να οριστεί ένα context μπαίνει μέσα σε αγκύλες [] ([κάποιο context]). Τα context του Asterisk διαιρούνται σε λογικές μονάδες. Κάθε context ερμηνεύει αριθμούς με διαφορετικό τρόπο και έχει το δικό του μοντέλο ασφαλείας. Οι περισσότεροι χρήστες έχουν πρόσβαση στο context default. Τα contexts μπορούν να έχουν πολλαπλές εντολές για κάθε extension και οι οποίες εκτελούνται κατά προτεραιότητα, όπως στο παράδειγμα: exten => _9011.,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}}) exten => _9011.,2,Congestion Στα contexts υπάρχουν δύο τύποι extensions: [κάποιο context] exten => κάποιο extension,προτεραιότητα, εφαρμογή(arg1,arg2,...) exten => κάποιο extension,προτεραιότητα, εφαρμογή,arg1 arg2... Ένα context μπορούμε να το συμπεριλάβουμε σε ένα άλλο context: 121

138 include => daytime 9:00-17:00 mon-fri * * Εικόνα 4.3 Contexts Sales και Support Στο σχήμα της εικόνας 4.4 παρουσιάζεται το context Dial out που περιλαμβάνει το context support. Η ένταξη ενός context σε ένα άλλο context μπορεί να περιοριστεί, με ημερομηνία και ώρα. Για παράδειγμα, το context Sales μπορεί να συμπεριληφθεί στο Dial out τις καθημερινές και κατά την διάρκεια της δουλείας και όχι τα σαββατοκύριακα. Εικόνα 4.4 Contexts Including Ένα extension μπορεί να συνδεθεί με ένα context. Αυτό παρουσιάζεται στο σχήμα της εικόνας 4.5 που προστέθηκε το context Main με το extension 100 και 201 τα οποία οδηγούν στο Sales και Support αντίστοιχα. Αυτό γίνεται με το Interactive Voice Response (IVR) το οποίο με ένα ηχητικό μήνυμα μας καθοδηγεί για το ποιον αριθμό πρέπει να πατήσουμε λέγοντας, «Πατήστε 100 για Sales ή 201 για Support». 122

139 Εικόνα 4.5 Contexts Linking Τα extensions μπορούν να έχουν οποιοδήποτε μέγεθος και μπορούν να συμπεριληφθούν σε οποιοδήποτε context όπως παρουσιάζεται στο σχήμα της εικόνας 4.6. Εικόνα 4.6 Contexts Including Ένα context μπορεί να συμπεριλαμβάνει περιεχόμενα από άλλο context. Για παράδειγμα: 123

140 [trunklocal] exten => 4035,1,Dial(SIP/CAB,20) include => trunktollfree Εδώ υπάρχει ένα παράδειγμα του αρχείου sip.conf με δύο extension και ένα context, το [general]. [general] port = 5060 ; TheTCP/IP port for SIP communications [4035] type=friend ; This device takes and makes calls username=4035 secret=cisco context=from-sip ca"sotos" < > qualify=100 host=dynamic ; This host is not on the same IP address every time canreinvite=no mailbox=4035 ; Activate the message waiting light for message defaultip [4009] type=friend username=4009 ; This device takes and makes calls secret=cisco context=from-sip ca"grec" < > qualify=100 host=dynamic ; This host is not on the same IP address every time canreinvite=no mailbox=4009 ; Activate the message waiting light for message defaultip Αλλάζοντας τη σειρά εκτέλεσης μέσα στα context Το Asterisk αναλύει ένα context πριν αυτό αναλύσει το τι περιλαμβάνετε σε αυτό. Εξαιτίας αυτού το include μπορεί να αλλάξει τη σειρά εκτέλεσης των extension μέσα στα context. Για παράδειγμα: [ex] include = ex1 include = ex2 include = ex3 exten => h,1,hangup [ex1] 124

141 exten => 1234,1,Dial(SIP/1234) exten => 9992,1,Dial(SIP/9992) [ex2] exten => _9.,1,Dial(Zap/1/${EXTEN}) [ex3] exten => _.,1,Playback(sorry-no-match) exten => _.,2,Hangup Πιστοποίηση (Authentication), Multi hosting, κλήσεις σε Remote Server Τα contexts μπορούν να παρέχουν υπηρεσίες πιστοποίησης (authentication). Για παράδειγμά ένας χρηστής μπορεί να ζητήσει κωδικό για να «μετακινείται» από το ένα context στο άλλο. Αυτό πρακτικά σημαίνει ότι μπορεί ένας χρήστης να βρίσκετε σε πολλές ομάδες (groups). Τα context υποστηρίζουν και PBX multi-hosting. Για παράδειγμά, αν δύο εταιρίες μοιράζονται έναν Asterisk server, οι εισερχόμενες κλήσεις θα μπορούσαν να δρομολογηθούν στο dialplan της σωστής εταιρίας μέσω ενός DID αριθμού. Το DID Direct Inward Dialing (διεπιλογή εισόδου, γνωστή στην Ευρώπη και ως DDI) είναι ένα χαρακτηριστικό που προσφέρεται από εταιρείες τηλεφωνίας για χρήση με το σύστημα PBX των πελατών τους, με βάση το οποίο μια εταιρεία τηλεφωνίας εκχωρεί μια σειρά αριθμών που συνδέονται με μία ή περισσότερες τηλεφωνικές γραμμές. Σκοπός του είναι να επιτρέπει σε μια εταιρεία να εκχωρεί έναν προσωπικό αριθμό σε κάθε υπάλληλο, χωρίς να απαιτείται χωριστή τηλεφωνική γραμμή για τον καθένα. Με τον τρόπο αυτό, η κίνηση στην τηλεφωνία μπορεί να διαχωριστεί και η διαχείρισή της να γίνεται ευκολότερα [zap-incoming] ; DIDs for Microsoft exten => _ XXX,1,GoTo(microsoft,${EXTEN},1) exten => ,1,GoTo(microsoft,${EXTEN},1) exten => ,1,GoTo(microsoft,${EXTEN},1) ; DIDs for Sun Microsystem exten => _ XXX,1,GoTo(sun,${EXTEN},1) exten => ,1,GoTo(sun,${EXTEN},1) exten => ,1,GoTo(sun,${EXTEN},1 [Microsoft] 125

142 exten => ,1,Dial(SIP/1000) exten => ,1,Dial(SIP/1002) exten => ,1,Dial(SIP/1002) exten => ,1,Dial(SIP/2000) exten => ,1,Dial(SIP/2500) [sun] exten => ,1,Dial(SIP/1000) exten => ,1,Dial(SIP/1002) Τα extensions contexts μπορούν να συνδυαστούν και με εξωτερικά scripts (AGI scripts). Επίσης μπορούν να γίνουν κλήσεις και σε απομακρυσμένους διακομιστές (remote server). Παρακάτω φαίνεται ένα παράδειγμα κλήσης σε τοπικό Asterisk server και ένα σε remote server (proxy). exten=> 1010,1,Dial(SIP/oej,20,tr) exten=> Εντολές που είναι διαθέσιμες στο extensions.conf Οι εντολές που είναι διαθέσιμες στο αρχείο extensions.conf είναι ουσιαστικά οι εφαρμογές που χρησιμοποιούνται. Παρακάτω θα δούμε πως λειτουργούν αυτές οι κυριότερες από αυτές τις εντολές με παραδείγματα και αναλύοντας τις Αnswer Με την εντολή Answer μπορεί να απαντήσει μια γραμμή καθώς γίνετε κλήση. Ένα παράδειγμα τις συγκεκριμένης εντολής είναι το παρακάτω: exten => s,2,answer ; Answer the line BackGround 126

143 Με την εντολή BackGround μπορεί να ακούγετε ένα ηχητικό μήνυμα ή ένας ήχος στο παρασκήνιο κατά την διάρκεια μιας κλήσης. Η εντολή συντάσσετε όπως στο παράδειγμα: exten => s,5,background(demo-congrats); Play a congratulatory message Στο συγκεκριμένο παράδειγμα ακούγετε ένα μήνυμα συγχαρητηρίων Dial() Πρόκειται ουσιαστικά για την πιο σημαντική και συνάμα πιο βασική εντολή του Asterisk. Με την εντολή αυτή μπορούμε να γίνουν κλήσεις όπως επίσης και να ληφθούν κλήσεις. Η πιο κοινή χρήση της Dial είναι ότι συνδέει μια κλήση από το extension στο κανάλι. Η σύνταξη της εντολής είναι η εξής: Dial(Technology/resource&Technology2/resource2...[ timeout][ options][ URL] Στο options (επιλογές) μπορούν να υπάρχουν οι χαρακτήρες που παρουσιάζονται στον πίνακα 4.10, κανένας ή περισσότεροι χαρακτήρες: 't' allow the called user to transfer the calling user 'T' allow the calling user to transfer the call. 'r' sound ringing to the calling party, pass no audio until answered 'm' provides hold music to the calling party until answered. 'H' allow caller to hang up by hitting *. 'C' reset the call detail record for this call. 'P(x)' privacy mode, using 'x' as database if provided. 'g' continues in context if the destination channel hangs up 'A(x)' play an announcement to the called party, using the sound file named 'S(x)' hang-up the call x seconds AFTER the called party answer 'D([digits])' allow post connect dtmf stream. Sends the DTMF digit string after called party has answered but before the w=500ms bridge pause Πίνακας 4.10 Dial options Καποια παραδείγματα με την Dial() φαίνονται εδώ: [directdial] 127

144 Ignorepat 3 => 9 exten => 9,1,Dial(Zap/g2/) exten => 9,2,Congestion [local] Ignorepat=> 9 exten => _9NXXXXXXX,1,Dial(Zap/g2/$(EXTEN:1)) exten => _9NXXXXXXX,2,Congestion include => default [longdistance] Ignorepat=> 9 exten => _91NXXNXXXXXX,1,Dial(Zap/g2/$(EXTEN:1)) exten => _91NXXNXXXXXX,2,Congestion include => local [international] Ignorepat=> 9 exten => _9011.,1,Dial(Zap/g2/$EXTEN:1)) exten => _9011.,2,Congestion include= > longdistance Επίσης με την εντολή dial() μπορούμε να γίνουν κλήσεις σε πολλαπλά interface (τα χωρίζουμε με /). Για παράδειγμα: exten => 353,1,Dial(SIP/ &Zap/10,18) DigitTimeOut() Η εντολή μπορεί να μας βοηθήσει στο να υπάρχει μια καθυστέρηση για κάποιο χρονικό διάστημα ανάμεσα στα extensions. H εντολή συντάσσετε ως εξής: exten => s,3,digittimeout,5 ; Set Digit Timeout to 5 seconds Echo() H συγκεκριμένη εντολή κάνει ένα τεστ ηχούς, δηλαδή ελέγχει αν κάποια δεδομένα που έχουν εισαχθεί στον Asterisk έχουν αποσταλεί στον αποδέκτη ή όχι. 3 Η εντολή Ignorepat κάνει τον αριθμό 9 να αγνοείτε όταν γίνετε η κληση 128

145 exten => 600,2,Echo ; Do the echo test Hangup() είναι: Με την συγκεκριμένη εντολή σταματάει μια κλήση. Η σύνταξη της exten => #,2,Hangup ;Hang Up Meetme() H Meetme() κάνει ουσιαστικά αυτό που λέμε εκτροπή κλήσης σε ένα extension. Αυτό μπορεί να είναι ο προσωπικός αριθμός του χρήστη ή το προσωπικό του mailbox. Συντάσσετε ως εξής: exten => 8600,1,Meetme, PlayBack() κλήσης: H εντολή PlayBack() παίζει έναν ήχο κατά την διάρκεια μιας exten => 1234,1,Playback(transfer,skip) ; "Please hold while..." ResponseTimeOut() κλήση: H συγκριμένη εντολή ορίζει το χρόνο απόκρισης σε μια ενεργή exten => s,4,responsetimeout,10; Α Response Timeout to 10 seconds Ringing() παράδειγμα: Με την εντολή αυτή ακούγετε ένας ήχος για αυτόν που καλεί. Για exten => s,1,ringing exten => _ ,1,Answer 129

146 exten => _ ,2,Ringing exten => _ ,3,Dial(SIP/6710,12,tr) SetLanguage() Η εντολή SetLanguage() μπορεί να αλλάξει τη γλωσσά που χρησιμοποιεί ο Asterisk στα ηχητικά μηνύματα εφόσον όμως έχουν προστεθεί στο σύστημα (var/asterisk/lib/sounds) τα αρχεία ήχου της συγκεκριμένης γλώσσας: exten => 3,1,SetLanguage(fr); Set language to french γαλλικά. Στο συγκεκριμένο παράδειγμα πατώντας το 3 αλλάζει η γλώσσα σε Voic () H εντολή Voic () στέλνει μια αναπάντητη κλήση στον τηλεφωνητή: exten => 1235,1,Voic (u1234) ; Right to voic extension Wait() H εντολή Wait() μπορεί να κάνει τον Asterisk πχ στην αρχή μιας κλήσης να περιμένει για κάποιο χρονικό διάστημα πριν απαντηθεί η κλήση. Για παράδειγμα: exten => s,1,wait,1 ; Wait one second Goto και GotoIf gotoif Στο παρακάτω παράδειγμα φαίνετε η χρήση τω εντολών goto και exten => 4035,1,GotoIfTime(9:00-17:00 * * 1-12?4:2) exten => 4035,2,Dial(${N1}) exten => 4035,3,Dial(Hangup) 130

147 exten => 4035,4,Goto(default,4009,1) exten=> 4009,1,Dial(${N2}) exten => 4009,2,Dial(Hangup) H gotoif περιμένει δύο labels. Αν δώσουμε ένα τότε μια προειδοποίηση γράφετε στο /var/log/asterisk/messages. 4.6 Παραδείγματα πρότυπων DialPlans Παρακάτω παρουσιάζονται κάποια παραδείγματα από dialplans που χρησιμοποιούνται συνήθως Μια απλή κλήση σε ουρά (Call Queue) exten => 600,1,Dial,Zap/9 15 exten => 600,2,Voic ,u600 exten => 600,102,WaitMusicOnHold,5 exten => 600,103,Goto,1 Πίνακας 4.11 Call Queue Το dialplan που παρουσιάζεται στον πίνακα 4.11 προσπαθεί να κάνει σύνδεση την κλήση στο Zap/9 για 15 δευτερόλεπτα. Αν το extension δεν απαντήσει τότε θα ακουστεί μουσική (music on hold) για 5 δευτερόλεπτα και στη συνέχεια θα επιστρέψει με την Goto στο 1 extension. Αυτός που καλεί θα μπει σε αναμονή μέχρι ο καλούμενος να γίνει διαθέσιμος. Αν δεν γίνει διαθέσιμος τότε θα συνδεθεί με τον τηλεφωνητή του για να του αφήσει μήνυμα Operator Extension (Extension Διαχειριστή) Το ακόλουθο dialplan που παρουσιάζεται στον πίνακα 4.12 δημιουργεί ένα operator extention exten => 0,1,Dial,Zap/9 15 exten => 0,2,Dial,Zap/10&Zap/11&Zap/12 15 exten => 0,3,Playback,companymailbox exten => 0,4,Voic ,0 131

148 exten => 0,5,Hangup Πίνακας 4.12 Operator Extention Main Menu (Κύριο Μενού) Στον πίνακα 4.13 παρουσιάζεται ένα απλό main menu dialplan exten => s,1,wait,1 exten => s,2,answer exten => s,3,digittimeout,5 exten => s,4,responsetimeout,10 exten => s,5,background,intro exten => s,6,background,instructions exten => 1,1,Goto,sales exten => 2,1,Goto,support exten => i,1,playback,pbx-invalid exten => i,2,goto,s 6 exten => t,1,goto,0 1 Πίνακας 4.13 Main Menu Ηχογραφώντας αρχεία ήχου Στον πίνακα 4.14 παρουσιάζεται με ποιον τρόπο μπορούν να ηχογραφηθούν αρχεία ήχου. ; Record a temp.gsm file exten => 100,1,Wait(2) exten => 100,2,Record(/tmp/asterisk-recording:gsm) exten => 100,3,Wait(2) exten => 100,4,Playback(/tmp/asterisk-recording) exten => 100,5,Wait(2) exten => 100,6,Hangup Πίνακας 4.14 Ηχογράφηση αρχείων ήχου Καλώντας το extension 100 ότι πούμε θα ηχογραφηθεί και θα αποθηκευτεί στο /tmp/asterisk-recording σε μορφή gsm Interactive Voice Response (IVR) - Παράδειγμα Στον πίνακα 4.15 παρουσιάζεται ένα παράδειγμα IVR 132

149 [main] # lower case letter # after an extension is reached, pressing the letter # starts voic exten => o,1,voic main exten=> 2800,1,Dial(ZAP/${RECEPTIONIST},25,r) exten => 2800,2,DigitTimeout,5 exten => 2800,3,ResponseTimeout,12 exten => 2800,4,Background,heartland exten=> i,1,playback,pbx-invalid exten => i,2,goto, # Time Out Exten=> t,1,goto, Exten=> 0,1,Macro(zapdial,${RECEPTIONIST},20) exten => 1,1,Macro(zapdial,2800,20) exten => 7,1,Directory(inside) Πίνακας 4.15 IVR 133

150 - ΚΕΦΑΛΑΙΟ 5 0 Εγκατάσταση του Asterisk και του GUI Ρυθμίσεις server asterisk.teikav.edu.gr 5.1 Εγκατάσταση του Asterisk Το Asterisk είναι ένα open source (με άδεια GPL) πρόγραμμα (software) που τρέχει σε ένα κοινό PC και προσφέρει λειτουργίες PBX (private branch exchange), δηλαδή τηλεφωνικό κέντρο. Οι απαιτήσεις του Asterisk σε υλικό (hardware) διαφέρουν ως προς τη χρήση του. Στον πίνακα 5.1 παρουσιάζονται οι απαιτήσεις του Asterisk σε Hardware. Σκοπός Αριθμός καναλιών Ελάχιστες απαιτήσεις που συνιστώνται Απλό Σύστημα όχι πάνω από MHz x86, 256 MB RAM Οικιακό Σύστημα 5 ως 10 1-GHz x86, 512 MB RAM Σύστημα σε μικρή επιχείρηση Μεγαλύτερα συστήματα μέχρι 15 περισσότερα από 15 3-GHz x86, 1 GB RAM Dual CPUs, πολλαπλούς servers Πίνακας 5.1 Ελάχιστες απαιτήσεις Asterisk σε Hardware Οι απαιτήσεις του Asterisk σε λογισμικό (software) είναι ότι χρειάζεται μια οποιαδήποτε διανομή Linux (RedHat, Debian, SuSE, Ubuntu), Unix (AIX, Solaris) καιwindows (95, 98, NT, 2000, XP, 2003). Το Asterisk για να εγκατασταθεί χρειάζεται τρία (3) βασικά πακέτα. Αυτά είναι: το βασικό πρόγραμμα του Αsterisk (asterisk), τους Zapata telephony drivers (τηλεφωνικούς οδηγούς zaptel) και τις βιβλιοθήκες PRI (PRI Libraries -libri). Για ένα απλό VoIP δίκτυο χρειάζεται μόνο η εγκατάσταση του Asterisk. Οι zaptel drivers απαιτούνται αν χρησιμοποιή- 134

151 σουμε αναλογικό ή ψηφιακό Hardware. Οι libri βιβλιοθήκες χρειάζονται σε περίπτωση που χρησιμοποιούμε ISDN PRI interfaces. Σε περίπτωση που δεν εγκατασταθούν οι libri βιβλιοθήκες μπορεί να εξοικονομηθεί ενα ποσοστό μνήμης RAM. Ένα άλλο πακέτο που μπορεί να εγκατασταθεί είναι το asterisksounds που παρέχει περισσοτέρους τύπους αρχείων ήχου, οι οποίοι υποστηρίζονται από το Asterisk, όπως mp3. Πριν εγκατασταθεί το Asterisk και τα υπόλοιπα πακέτα θα πρέπει να είναι εγκατεστημένος στο σύστημα μας ο Compiler GCC (έκδοση 3.x ή νεότερη), έτσι ώστε να μπορέσει να γίνει compile το Asterisk Όλα αυτά τα πακέτα μπορούμε να τα βρούμε από την επίσημη ιστοσελίδα του Asterisk τo ή τον ftp server της Digium ftp://ftp.digium.com. Η εγκατάσταση του Asterisk έγινε σε λειτουργικό σύστημα Ubuntu Linux (έκδοση server 7.10 x86). Από την γραμμή εντολών (terminal) και με την εντολή wget «κατεβάζουμε» (download) τα πακέτα όπως παρουσιάζονται στον πίνακα 5.2 (όπου * η έκδοση) # cd /usr/src/ # wget - passive-ftp ftp.digium.com/pub/asterisk/asterisk-1.*.tar.gz # wget - passive-ftp ftp.digium.com/pub/asterisk/asterisk-sounds-*.tar.gz # wget - passive-ftp ftp.digium.com/pub/zaptel/zaptel-*.tar.gz # wget - passive-ftp ftp.digium.com/pub/libpri/libpri-*.tar.gz Πίνακας 5.2 «Κατέβασμα» πακετων Asterisk Αφού κατέβουν τα απαραίτητα πακέτα τα αποσυμπιέζουμε με τη εντολή tar και πάλι από τη γραμμή εντολών, όπως παρουσιάζεται στον πίνακα

152 # cd /usr/src/ # tar zxvf zaptel-*.tar.gz # tar zxvf libpri-*.tar.gz # tar zxvf asterisk-*.tar.gz # tar zxvf asterisk-sounds*.tar.gz Πίνακας 5.3 Αποσυμπίεση Μετά την αποσυμπίεση πρέπει να γίνει στο κάθε πακέτο compilation, έτσι ώστε να εγκατασταθούν όλα τα πακέτα με τη σειρά,όπως παρουσιάζεται στον πίνακα 5.4: # cd /usr/src/zaptel-version # make clean # make # make install # cd /usr/src/libpri-version # make clean # make # make install # cd /usr/src/asterisk-version # make clean # make 136

153 # make install # make samples # cd /usr/src/asterisk-sounds # make clean # make # make install # make mpg123 // για τα mp3 Πίνακας 5.4 compilation Επίσης μπορούν να εγκατασταθούν προαιρετικά από τη γραμμή εντολών του συστήματος (terminal) τα εξής πακέτα: # apt-get install openssh για απομακρυσμένη πρόσβαση μέσω του Secure Shell # apt-get install sendmail για την εγκατάσταση του sendmail έτσι ώστε να μπορεί να στέλνει το Asterisk πχ οταν υπάρχει μήνυμα στον τηλεφωνητή. # apt-get install festival για την εγκατάσταση του festival. To festival μπορεί να διαβάσει ένα κείμενο και να το μετατρέψει σε ήχο (Text-To-Speech) Αφού εγκατασταθούν τα πακέτα για να εκτελέσουμε το Asterisk από την γραμμή εντολών (terminal) κάνουμε τα εξής: # asterisk vvvvc ; για να ξεκινήσει o server # asterisk # asterisk -r ; για να μπούμε στη γραμμή εντολών (κονσόλα) του Asterisk (AsteriskCLI) Από την κονσόλα του Αsterisk έχουμε δυνατότητα διαχείρισης του συστήματος Asterisk. Οι βασικές εντολές που χρησιμοποιήσαμε είναι: 137

154 AsteriskCLI> restart now ;για να γίνει επανεκκίνηση του Asterisk AsteriskCLI> reload ; για να γίνει επαναφόρτωση των αρχείων ρυθμίσεων στο Asterisk 5.2 Εγκατάσταση του Asterisk-GUI Για την ρύθμιση και την διαχείριση του συστήματος εγκαταστήσαμε το web interface Asterisk GUI που είναι διαθέσιμο στην ιστοσελίδα Το Asterisk GUI είναι ένα σύστημα διαχείρισης (web based) με το οποίο μπορούμε να παραμετροποιήσουμε και να υλοποιήσουμε όλες τις λειτουργίες του Asterisk. Η εγκατάσταση έγινε ως εξής: Στην γραμμή εντολών του συστήματος εκτελέσαμε την εντολή: # svn checkout asterisk-gui Στην συνέχεια από την γραμμή εντολών πληκτρολογήσαμε: # cd /home/administrator/asterisk-gui # make # make install Το GUI εγκαταστάθηκε στον φάκελο var/www/asterisk/static/config. Στην συνέχεια ρυθμίσαμε τα εξής αρχεία για να δουλέψει: 1) http.conf: [general] enabled = yes enablestatic = yes 2) manager.conf [general] enabled = yes 138

155 webenabled = yes 3) manager.conf για να δημιουργηθεί ο χρήστης administrator [admin] secret = thiswouldbeaninsecurepassword read = system,call,log,verbose,command,agent,config write = system,call,log,verbose,command,agent,config 5.3 Προσθήκη χρηστών και παραμετροποίηση του Server Asterisk.teikav.edu.gr Στα πλαίσια της πτυχιακής εργασίας για να καλύψουμε τις ανάγκες του ΤΕΙ Καβάλας παραμετροποιήσαμε αρχικά τα αρχεία sip.conf, extensions.conf και voic .conf. Αφού ολοκληρώθηκε η εγκατάσταση του Asterisk δημιουργήσαμε χρήστες και δοκιμάσαμε αν μπορούν να επικοινωνήσουν μεταξύ τους. Στη συνέχεια δημιουργήσαμε δύο ομάδες (στην ουσία context) χρηστών που τις ονομάσαμε bp και tutorial. Δημιουργήσαμε έναν αυτόματο τηλεφωνητή (voic ) που ήταν κοινός για τις δύο ομάδες και ένα τηλεφωνικό κέντρο (IVR). Τέλος δημιουργήσαμε extensions για να μπορούμε να ηχογραφούμε ήχους και χρησιμοποιήσαμε το λογισμικό festival με το οποίο μετατρέπουμε έναν κείμενο σε ήχο. Όλες οι ρυθμίσεις παρουσιάζονται στο παράρτημα Α. Στο αρχείο sip.conf δημιουργήσαμε όλους τους χρήστες όπως παρουσιάζονται στο παράρτημα Α. Οι χρήστες αντιπροσώπευαν τους καθηγητές, τον διαχειριστή του συστήματος, τους διαχειριστές του δικτύου, έναν διαχειριστή για mailbox και έναν κοινό χρήστη user. Στο αρχείο extensions.conf δημιουργήσαμε κάποια dial plans που είναι μέσα σε contexts και τα παραμετροποιήσαμε έτσι ώστε οι χρήστες να επικοινωνούν μεταξύ τους και να έχουν τηλεφωνητή. Στο αρχείο voic .conf χωρίσαμε τους χρήστες πάλι σε δύο ομάδες την mb_tutorial και την iiu, όπου δημιουργήσαμε κάποια extensions που περιέχουν τους 139

156 αριθμούς από τα mailbox των χρηστών. Βάση αυτών των αριθμών οι χρήστες έχουν πρόσβαση στον τηλεφωνητή τους και ειδοποιούνται με από το Asterisk για κάθε νέο τους μήνυμα. Στο παρακάτω παράδειγμα παρουσιάζουμε έναν χρήστη με όλα τα προαναφερόμενα. ;αρχείο sip.conf [mizas] type = friend username = mizas secret = 1234 host = dynamic context = tutorial nat = no mailbox = ;αρχείο extensions.conf [pickup] exten = [tutorial] include = pickup exten = 6032,1,Dial(SIP/mizas) exten = ;αρχείο voic .conf mb_tutorial] 140

157 111 = 5.4 Αυτόματος τηλεφωνητής(voic ) και ηχογράφηση ήχου Στο αρχείο extensions.conf δημιουργήσαμε ένα extension με αριθμό 8888, exten = με το οποίο κάποιος χρήστης αφού καλέσει τον αριθμό αυτό και εισάγει τον αριθμό mailbox και τον κωδικό πρόσβασης μπορεί να ακούσει τα μηνύματα που υπάρχουν στον τηλεφωνητή του. Επίσης δημιουργήσαμε ένα extension με το οποίο κάποιος χρήστης μπορεί να στείλει voic σε πολλούς χρήστες μιας ομάδας. Έτσι καλώντας ένας χρήστης τον αριθμό 22 θα αφήσει voic σε όλους τους χρήστες του mb_tutorial. Αυτό πραγματοποιείτε με το παρακάτω extension: Με τη δημιoυργία του παρακάτω Dialplan μπορούμε να ηχογραφήσουμε ηχους για το τηλεφωνικό μας κέντρο καλώντας τον αριθμό Kάθε νέο μήνυμα που ηχογραφούμε αντικαθιστά το παλιό. Exten = 9205,1,Wait(2) Exten = 9205,2,Record(/tmp/asterisk-recording:wav) Exten = 9205,3,Wait(2) Exten = 9205,4,Playback (/tmp/asterisk-recording) Exten = 9205,5,Wait(2) Exten = 9205,6,Hangup 5.5 Φωνο-αλληλεπιδραστική απόκριση (IVR) Τηλεφωνικό κέντρο Για τις ανάγκες της πτυχιακής εργασίας δημιουργήσαμε ένα αυτόματο τηλεφωνικό κέντρο για το ΤΕΙ Καβάλας. Ορίσαμε σε ένα 141

158 extension τον αριθμό 40, στο αρχείο extension.conf και στο context SIP, τον οποίο καλώντας τον αναπαράγεται ένα ηχητικό μήνυμα που μας δίνει κάποιες πληροφορίες για να συνεχίσουμε την κλήση. Πληκτρολογώντας τον αριθμό 1 αναπαράγεται ένα ηχητικό μήνυμα που μας δίνει πληροφορίες για το δίκτυο του ΤΕΙ Καβάλας. Πληκτρολογώντας τον αριθμό 2 συνδεόμαστε με το κέντρο διαχείρισης του δικτύου του ΤΕΙ Καβάλας για να δηλώσουμε τυχόν πρόβλημα. Πληκτρολογώντας τον αριθμό 3 συνδεόμαστε με τον διαχειριστή του δικτύου του ΤΕΙ Καβάλας. Πληκτρολογώντας τον αριθμό 4 επιστρέφουμε στο αρχικό μενού επιλογών. Τέλος πληκτρολογώντας τον αριθμό 8 τερματίζουμε την κλήση. [SIP] include = tutorial Exten = 40,1,Answer Exten = 40,2,Background(start) Exten = 40,3,Set(TIMEOUT(digit)=5) Exten = 40,4,Set(TIMEOUT(responce)=10) Exten = 40,5,WaitExten(25) Exten = 1,1,Playback(INFO) Exten = 1,2,Background(end) Exten = 1,3,Goto(40,5) Exten = Exten = 2,2,Background(end) Exten = 2,3,Goto(40,5) Exten = 3,1,Dial(SIP/admin_kdd) Exten = 4,1,Goto(40,2) Exten = 8,1,Hangup() 142

159 5.6 Festival Το festival είναι ένα πρόγραμμα που επεκτείνει τις δυνατότητες του Asterisk. Μπορούμε να μετατρέψουμε ένα γραπτό κείμενο σε ηχητικό μήνυμα. Για να το πραγματοποιήσουμε προσθέσαμε στο αρχείο festival.conf το παρακάτω κώδικα. festival.conf [general] host = localhost port = 1314 usecache = yes cachedir = /var/cache/asterisk/festival/ festivalcommand = (tts_textasterisk "%s" 'file)(quit)\n Και το «τρέξαμε» από την γραμμή εντολών του συστήματος (terminal) ως εξής: # /etc/init.d/festival start # festival --server & ; για να τρεχει στο background Στην συνέχεια δημιουργήσαμε extensions στο αρχείο extensions.conf και στο context tutorial για να δοκιμάσουμε αν λειτουργεί. exten = 123,1,Answer() exten = 123,2,Festival(Asterisk and Festival are working together) exten => 124,1,Answer() exten => 124,2,System(echo "This is a test of Festival" /usr/bin/text2wave - scale 1.5 -F o /tmp/festival.wav) exten => 320,1,ReadFile(test=/festival_txt/test.txt,200) 143

160 exten => 320,n,Festival(${test}) exten => 320,n,Hangup Καλώντας το 123 ακούμε το μύνημα Asterisk and Festival are Working together. Καλώντας το 124 το κείμενο "This is a test of Festival" μετατρέπετε στο αρχείο ήχου festival.wav το οποίο το ακούμε κατά τη διάρκεια τις κλήσης. Τέλος καλώντας το 320 το festival μετατρέπει σε ήχο τα περιεχόμενα του αρχείου test.txt τα οποία ακούμε. 144

161 - Κεφάλαιο 6 Διαχείριση του Asterisk 6.1 Εισαγωγή Στις παρακάτω σελίδες παρουσιάζουμε τον τρόπο διαχείρισης του Αsterisk. Πρώτα με το Asterisk GUI,που όπως αναφέρθηκε, είναι ένα σύστημα διαχείρισης (α based) με το οποίο μπορούμε να παραμετροποιήθούν τα αρχεία και οι λειτουργίες του Asterisk και ένας δεύτερος τρόπος είναι να παραμετροποιήσουμε το σύστημα τροποποιώντας τα αρχεία τού με κειμενογράφους τύπου Unix-Linux όπως το vi και το nano. 6.2 Διαχείριση του GUI Είσοδος στο σύστημα GUI Πληκτρολογούμε σε ένα browser την διεύθυνση Στην καρτέλα που εμφανίζεται, όπως παρουσιάζεται στο παράθυρο της εικόνας 6.1 εισάγουμε το όνομα χρήστη και τον κωδικό πρόσβασης μας και επιλέγουμε Login. 145

162 εικόνα 6.1 Καρτέλα Home Εγγραφή ενός νέου χρήστη Για να προσθέσουμε έναν νέο χρήστη επιλέγουμε το κουμπί Users. Στην καρτέλα που μας εμφανίζεται, όπως παρουσιάζεται στην εικόνα 6.2 επιλέγουμε το κουμπί New και συμπληρώνουμε τα πεδία: Extension: πληκτρολογούμε τον τηλεφωνικό αριθμό του χρήστη. Name: πληκτρολογούμε το όνομα του χρήστη. Password : πληκτρολογούμε τον κωδικό πρόσβασης του χρήστη. VM Password : πληκτρολογούμε τον κωδικό πρόσβασης στον τηλεφωνητή του χρήστη πληκτρολογούμε το του χρήστη Caller ID : πληκτρολογούμε το όνομα που θέλουμε να φαίνεται στους άλλους χρήστες όταν τους καλεί. Analog Phone :πληκτρολογούμε την θύρα που είναι συνδεδεμένο το αναλογικό τηλέφωνο του χρήστη, αν δεν έχει επιλέγουμε None. Dial Plan: επιλέγουμε ένα σχέδιο κλήσης Στην κατηγορία Extension Options εισάγουμε προηγμένες διαθέσιμες επιλογές για τον χρήστη. 146

163 εικόνα 6.2 Καρτέλα Users Δημιουργία διάσκεψης Για να πραγματοποιήσουμε διασκέψεις με ή χωρίς ασφάλεια επιλέγουμε το κουμπί Conferencing. Στην καρτέλα που εμφανίζεται, όπως παρουσιάζεται στην εικόνα 6.3 επιλέγουμε το κουμπί New και συμπληρώνουμε τα πεδία: Extension: πληκτρολογούμε τον αριθμό με τον οποίο θα πραγματοποιηθεί η διάσκεψη. PIN Code: πληκτρολογούμε τον κωδικό ασφαλείας που θα χρησιμοποιήσουν οι χρήστες Admin PIN Code: πληκτρολογούμε τον κωδικό ασφαλείας που θα χρησιμοποιήσει ο μεσολαβητής. Στην κατηγορία Conference Room Options εισάγουμε προηγμένες διαθέσιμες επιλογές για τους επισκέπτες καθώς και για την λειτουργία της διάσκεψης. 147

164 εικόνα 6.3 Καρτέλα Conferencing Ρύθμιση του φωνητικού ταχυδρομείου Για να ρυθμίσουμε το φωνητικό ταχυδρομείο επιλέγουμε το κουμπί Voic . Στην καρτέλα που εμφανίζεται, όπως παρουσιάζεται στην εικόνα 6.4 επιλέγουμε τον χρήστη από την κατηγορία Voic Settings και συμπληρώνουμε τα πεδία: Extension for checking messages : πληκτρολογούμε τον αριθμό που θα καλεί ο χρήστης για να έχει πρόσβαση στο φωνητικό ταχυδρομείο. Attach recordings to επιλέγουμε αυτό το παράθυρο ελέγχου για να στείλουμε τα φωνητικά μηνύματα στην επιλεγμένη διεύθυνση του ηλεκτρονικού ταχυδρομείου των χρηστών. Max greeting (seconds): θέτουμε ένα μέγιστο χρόνο που θα έχει ένα φωνητικό μήνυμα. Dial 0 for operator : επιλέγουμε αυτό το παράθυρο ελέγχου για να μπορούν οι επισκέπτες που στέλνονται στο φωνητικό ταχυδρομείο να πιέσουν το "0" και να επιστρέψουν από την εφαρμογή. 148

165 Στην κατηγορία Message Options ρυθμίζουμε τον τύπο, την ποσότητα και τη διάρκεια των μηνυμάτων. Στην κατηγορία Playback Options ρυθμίζουμε τον τρόπο αναπαραγωγής του μηνύματος. εικόνα 6.4 Καρτέλα Voic Ρύθμιση της αναμονής των κλήσεων Για να ρυθμίσουμε τις σειρές της αναμονής των κλήσεων επιλέγουμε το κουμπί Call Queues. Στην καρτέλα που εμφανίζεται, όπως παρουσιάζεται στην εικόνα 6.5, επιλέγουμε το κουμπί New για να δημιουργήσουμε μία νέα σειρά αναμονής και συμπληρώνουμε τα πεδία: Queue: πληκτρολογούμε τον αριθμό που μπορεί να σχηματιστεί για να φθάσει σε αυτήν την σειρά αναμονής. Full Name: πληκτρολογούμε το όνομα της σειράς αναμονής Strategy: επιλέγουμε την στρατηγική της σειράς αναμονής. Agents: απαριθμούμε τους χρήστες για να μπορούν να λάβουν τις κλήσεις από μία σειρά αναμονής Στην κατηγορία Queue Options ελέγχουμε τον συγχρονισμό και την διαχείριση των κλήσεων. 149

166 εικόνα 6.5 Καρτέλα Call Queues Ρύθμιση κλήσεων προς άλλα δίκτυα Για να παραχωρήσουμε την δυνατότητα στο σύστημα να πραγματοποιεί κλήσεις προς τα παραδοσιακά συστήματα τηλεφωνίας και σε άλλα τηλεφωνικά συστήματα επιλέγουμε το κουμπί Service Providers, και εμφανίζεται η καρτέλας της εικόνας 6.6. εικόνα 6.6 καρτέλα Service Providers Για να προσθέσουμε έναν φορέα παροχής υπηρεσιών επιλέγουμε το κουμπί Add Service Provider όπου εμφανίζεται το παράθυρο της εικόνας 6.7. Επιλέγουμε έναν από τους τρεις τύπους υπηρεσιών και 150

167 συμπληρώνουμε τα πεδία που μας εμφανίζονται αναλόγως με την επιλογή μας. εικόνα 6.7 παράθυρο Add Service Provider Ρύθμιση των εξερχόμενων κλήσεων Για να ρυθμίσουμε και να καθορίσουμε τα δικαιώματα των εξερχόμενων κλήσεων επιλέγουμε το κουμπί Calling Rules, όπως παρουσιάζεται στην εικόνα 6.8. εικόνα 6.8 καρτέλα Calling Rules 151

168 Για να προσθέσουμε έναν νέο κανόνα επιλέγουμε το κουμπί Add a Calling Rule και εμφανίζεται το παράθυρο της εικόνας 6.9 όπου συμπληρώνουμε τα πεδία: Rule Name: πληκτρολογούμε το όνομα του κανόνα Place this call through: επιλέγουμε τον πάροχο υπηρεσιών που θα πραγματοποιηθεί η κλήση Dialing Rules: πληκτρολογούμε τους αριθμούς που αρχίζουν παραδείγματος χάρη από το 60 και ακολουθείται από 5 ψηφία. Στην τελευταία επιλογή αντικατασταθούμε τα ψηφία που χρειάζονται για να καταστεί η κλήση. εικόνα 6.9 Add a Calling Rule Ρύθμιση των εισερχόμενων κλήσεων Για να ρυθμίσουμε και να καθορίσουμε τα δικαιώματα των εισερχόμενων κλήσεων επιλέγουμε το κουμπί Incoming Calls, όπως παρουσιάζεται στην εικόνα

169 εικόνα 6.10 Incoming Calls Στην συνέχεια για να προσθέσουμε έναν νέο κανόνα επιλέγουμε το κουμπί Add a Incomming Rule και παρουσιάζεται το παράθυρο της εικόνας 6.11 όπου ορίζουμε την δρομολόγηση των κλήσεων, τον πάροχο υπηρεσιών και τον αριθμό που πρέπει να έχει η κλήση. εικόνα 6.11 Add a Incomming Rule Ρύθμιση της διάρκειας των κλήσεων Για να ρυθμίσουμε τη διάρκεια των κλήσεων επιλέγουμε το κουμπί Time Based Rules και παρουσιάζεται στην οθόνη η καρτέλα της εικόνας

170 εικόνα 6.12 Time Based Rules Επιλέγουμε το κουμπί New Time Rule και παρουσιάζεται το παράθυρο της εικόνας 6.13, όπου πληκτρολογούμε τις ώρες, τις μέρες, την ημερομηνία και τον μήνα που θα πραγματοποιούνται οι κλήσεις. Επίσης επιλέγουμε και ποιόν προορισμό ή όχι θα έχουν οι κλήσεις. εικόνα 6.13 New Time Rule Στάθμευση κλήσης (call parking) Μπορούμε να ρυθμίσουμε τις εισερχόμενες κλήσεις να καθυστερούν ένα χρονικό διάστημα πριν φτάσουν στο καλούντα επιλέγοντας το κουμπί call parking, όπως παρουσιάζεται στην εικόνα Εισάγουμε τον αριθμό του καλούντα, του αριθμούς που θα δέχονται 154

171 αυτήν την καθυστέρηση και το χρονικό διάστημα που θα περνάει για να ειδοποιηθεί ο καλούντας. εικόνα 6.14 call parking Ring Groups Για να δημιουργήσουμε μία ομάδα κλήσεων επιλέγουμε το κουμπί Ring Groups, όπου μας εμφανίζεται στην οθόνη η καρτέλα της εικόνας Εικόνα 6.15 Ring Groups, Επιλέγουμε το κουμπί New Ring Group για να προσθέσουμε μία ομάδα. Εμφανίζεται το παράθυρο της εικόνας συμπληρώνομε τα πεδία και επιλέγουμε το κουμπί Save για να αποθηκεύσουμε τις ρυθμίσεις μας. 155

172 εικόνα 6.16 New Ring Group Παρακολούθηση ενεργών καναλιών Για να εμφανίσουμε την λίστα των ενεργών καναλιών επιλέγουμε το κουμπί Active Channels και εμφανίζεται η καρτέλα της εικόνας εικόνα 6.17 Active Channels 156

173 Πληροφορίες συστήματος Για να δούμε πληροφορίες για το σύστημά μας επιλέγουμε το κουμπί System Information. Στην καρτέλα General όπως παρουσιάζεται στην εικόνα 6.18 παρουσιάζονται πληροφορίες για το OS, τον χρόνο λειτουργίας, τον Asterisk, την ημερομηνία, την ώρα και το Hostname. εικόνα 6.18 System Information Στην καρτέλα ifconfig, όπως φαίνεται στην εικόνα 6.19 παρουσιάζονται πληροφορίες για τις συσκευές του δικτύου μας.. εικόνα 6.19 ifconfig 157

174 Στην καρτέλα Resources, όπως παρουσιάζεται στην εικόνα 6.20 παρουσιάζονται πληροφορίες για τον δίσκο και την χρήση της μνήμης. εικόνα 6.20 Resources Αρχείο καταγραφής σφαλμάτων Για να δούμε τα σφάλματα που έχει καταγράψει το σύστημά μας επιλέγουμε το κουμπί Asterisk Log, και εμφανίζεται στην οθόνη η εικόνα εικόνα 6.21 Asterisk Log 158

175 Αρχεία κλήσεων Για να δούμε όλα τα αρχεία κλήσεων που έχουν γίνει στο δίκτυό μας επιλέγουμε το κουμπί CDR Reader, και εμφανίζεται στην οθόνη η εικόνα εικόνα 6.22 CDR Reader Ρυθμίσεις πρόσβασης Για να ρυθμίσουμε την πρόσβαση στο γραφικό περιβάλλον διαχείρισης του Asterisk από οπουδήποτε επιλέγουμε το κουμπί GUI Access. Eμφανίζεται η καρτέλα της εικόνας Στο πρώτο πεδίο το Bind IP πληκτρολογούμε το , ενώ στο δεύτερο το Port πληκτρολογούμε το

176 εικόνα 6.23 GUI Access Διαχείριση αρχείων ασφαλείας Για να δημιουργήσουμε ένα αρχείο ασφαλείας επιλέγουμε το κουμπί Backup, και στην καρτέλα που εμφανίζεται, όπως παρουσιάζεται στην εικόνα 6.24 επιλέγουμε το κουμπί Take a Backup. εικόνα 6.24 Backup 160

177 Στην συνέχεια εμφανίζεται το παράθυρο της εικόνας 6.25 όπου πληκτρολογούμε το όνομα του αρχείου και στην συνέχεια πατάμε το κουμπί Backup. εικόνα 6.25 Take a Backup Μετάβαση στα αρχεία του Asterisk Για να μεταβούμε στα αρχεία του Asterisk και να τα τροποποιήσουμε επιλέγουμε το κουμπί file editor όπως παρουσιάζεται στην εικόνα 6.26.[43] εικόνα 6.26 file editor 161

178 6.3 Διαχείριση του Asterisk από το command line Χρησιμοποιώντας επεξεργαστές κειμένου τύπου Unix όπως το vi και το nano μπορούμε να τροποποιήσουμε τα αρχεία του Asterisk. Ανοίγοντας ένα παράθυρο SecureShell (SSH) συνδεόμαστε remote στον server. Από την γραμμή εντολών (command line) πληκτρολογούμε: # cd etc/asterisk # ls ; εμφανίζονται τα αρχεία Για να μπούμε στο path /etc/asterisk οπού βρίσκονται όλα τα αρχεία ρύθμισης του Asterisk (εικόνα 6.27) Εικόνα 6.27 /etc/asterisk Στη συνέχεια πληκτρολογούμε στη γραμμή εντολών (command line) παραδείγματος χάριν: # nano sip.conf 162

179 και εμφανίζονται τα περιεχόμενα του αρχείου sip.conf, όπως παρουσιάζεται στην εικόνα 6.28 τα οποία μπορούμε να τροποποιήσουμε προσθέτοντας χρήστες κτλ. Mε το ίδιο τρόπο μπορούμε να παραμετροποιήσουμε όλα τα αρχεία ρυθμίσεων του Asterisk από την γραμμή εντολών (command line) τροποποιώντας τα περιεχόμενα τους. εικόνα 6.28 nano sip.conf 163

180 - ΚΕΦΑΛΑΙΟ 7 0 VOIP ΤΗΛΕΦΩΝΑ 7.1 Εισαγωγή Με την χρήση της υπηρεσίας VOIP μπορούμε να κάνουμε κλήσεις από οπουδήποτε αρκεί να έχουμε πρόσβαση σε μια ευρυζωνική σύνδεση. Ένα τηλέφωνο λογισμικού (softphone) είναι μια ειδικά αναπτυγμένη εφαρμογή λογισμικού που φορτώνει την υπηρεσία VOIP επάνω στον υπολογιστή γραφείου ή το lap-top. Αυτό που κάνει είναι να μετατρέπει τον υπολογιστή σε τηλέφωνο. Αντιθέτως με τις παραδοσιακές τηλεφωνικές εταιρείες το VOIP παρέχει δωρεάν κάποια χαρακτηριστικά γνωρίσματα όπως: 1. Αναγνώριση κλήσεων 2. Αναμονή κλήσης 3. Μεταφορά κλήσης 4. Επανάληψη της τελευταίας κλήσης 5. Επιστροφή της κλήσης 6. Διάσκεψη Μερικοί φορείς παροχής υπηρεσιών VOIP προσφέρουν εκτός από τα παραπάνω και άλλα πρόσθετα χαρακτηριστικά γνωρίσματα που επιτρέπουν : 1. Διαβίβαση κλήσης σε συγκεκριμένο αριθμό 2. Αποστολή της κλήσης άμεσα στο φωνητικό ταχυδρομείο 3. Αναπαραγωγή ενός μηνύματος στον επισκέπτη 4. Δημιουργία τηλεφωνικού κέντρου 164

181 Πολλές υπηρεσίες VOIP επιτρέπουν τον έλεγχο του φωνητικού ταχυδρομείου (voice mail) μέσω του Διαδικτύου ή την αποστολή του μέσω ηλεκτρονικού ταχυδρομείου. [44] Υπάρχει μια πλειάδα από τηλέφωνα λογισμικού (softphone) στην αγορά, όπου κάποια από αυτά διατίθενται στους χρήστες δωρεάν και κάποια άλλα πληρώνουν οι χρήστες για να τα χρησιμοποιήσουν. Τα δωρεάν softphones είναι: X-Lite 3.0 Global IP SJPhone SIPPS SNOM 360 Global IP MyJabber SipEyePhone Firefly Softphone Τα λογισμικά που δεν διατίθενται δωρεάν είναι: G729 Voiper eyebeam BOL SIPPhone v2.x BOL H.323 Softphone[45] Στις επόμενες σελίδες περιγράφουμε αναλυτικά την εγκατάσταση από τα πιο «δημοφιλή» δωρεάν προαναφερόμενα softphones. 7.2 x-lite Εισαγωγή Το X-Lite δημιουργήθηκε από την εταιρεία CounterPath. Η έκδοση που χρησιμοποιήσαμε στα πλαίσια της παρούσας πτυχιακής εργασίας και παρουσιάζεται παρακάτω είναι η 3.0. Διατίθεται δωρεάν στους χρήστες στην ιστοσελίδα Επίσης υπάρχει και η έκδοση eyebeam όπου έχει πρόσθετα χαρακτηριστικά αλλά δεν διατίθεται δωρεάν. 165

182 Το X-Lite προσφέρει στους χρήστες όλες τις ανέσεις και την παραγωγικότητα ενός παραδοσιακού τηλεφώνου. Είναι πολύ εύκολο στην χρήση του και προσιτό στους χρήστες. Με την επιλογή ενός μόνο κουμπιού του ποντικιού μας, μπορούμε να απαντάμε, να πραγματοποιούμε και να διαχειριζόμαστε τις κλήσεις πολύ εύκολα. Υποστηρίζει μία πλειάδα από συσκευές ήχου και εικόνας είτε μέσω ενσύρματων ή ασύρματων συνδέσεων που το καθιστά ανώτερο του παραδοσιακού τηλεφώνου. Το X-Lite είναι σχεδιασμένο να λειτουργεί πάνω σε IP based συστήματα. Μια πλήρης γκάμα ακουστικής συμπίεσης codecs κάνει εξαιρετική την ποιότητα των παρεχόμενων υπηρεσιών στις ενσύρματες και ασύρματες ευρυζωνικές συνδέσεις. Στη συνέχεια παρουσιάζουμε τα χαρακτηριστικά, τα πλεονεκτήματα και τις απαιτήσεις του τηλεφώνου. Χαρακτηριστικά τηλεφώνου Δύο γραμμές Αναμονής κλήσης Μεταφορά κλήσης Ομαδοποίηση χρηστών Ενδείξεις για την κατάσταση που βρισκόμαστε Αποστολή της κλήσης στον τηλεφωνητή Αποστολή της κλήσης σε άλλον προορισμό(εκτροπή) Διάσκεψη κλήσης Εγγραφή έως 10 αιτήσεων στο SIP Proxy Επανάληψη κλήσης Δυναμική επιλογή κωδικοποιητή αποκωδικοποιητή Αναγνώριση κλήσεων Χρονομέτρηση κλήσης Ηχογράφηση κλήσης Σιγή στο μικρόφωνο του τηλεφώνου Ρύθμιση ηχείων και μικροφώνου Εμφάνιση της τελευταίας κλήσης Εμφάνιση της διάρκειας της τελευταίας κλήσης Κατάλογος με τις εισερχόμενες κλήσεις Κατάλογος με τις εξερχόμενες κλήσεις Κατάλογος με τις αναπάντητες κλήσεις 166

183 Δυνατότητα επιλογής συσκευών Πραγματοποίηση κλήσης με πληκτρολόγηση του ονόματος του χρήστη ή την διεύθυνση IP του Κατάλογος των τηλεφώνων των χρηστών Ταχείες κλήσεις με το πάτημα ενός κουμπιού NAT διευθύνσεις Πλεονεκτήματα τηλεφώνου Εύκολη εγκατάσταση Εύκολη χρήση του menu Υπηρεσία κωδικοποίησης ήχου G.711/XPX/iLBC/GSM Υλικό για PC και Pocket PC Υποστήριξη NAT και Firewall Υποστήριξη λειτουργικών συστημάτων Windows 95/98/NT4/ME/ 2000/XP και MAC OS X version 10.2 Δημιουργία διάσκεψης έως 7 χρηστών Απαιτήσεις συστήματος Ελάχιστα χαρακτηριστικά γνωρίσματα Επεξεργαστής: Intel Pentium3 700 ΜHz Windows 98 Μνήμη (RAM): 256 MB Ελεύθερη μνήμη στο σκληρό δίσκο: 30 MB για την εγκατάσταση του λογισμικού Πρόσβαση internet: DSL Κάρτα ήχου: διπλής όψης 16 bit Μικρόφωνο Ηχεία 167

184 Προτεινόμενα χαρακτηριστικά γνωρίσματα Επεξεργαστής: Intel Pentium4 2.0 GHz Windows 2000/XP Μνήμη (RAM): 256 MB Ελεύθερη μνήμη στο σκληρό δίσκο: 30 MB για την εγκατάσταση του λογισμικού Πρόσβαση internet: σύνδεση μέσω IP δικτύου Κάρτα ήχου: διπλής όψης 16 bit Μικρόφωνο Ηχεία Τα λειτουργικά συστήματα που υποστηρίζει το X-Lite είναι: Windows 98/SE Windows ME Windows NT 4.0 Windows 2000 Windows XP Windows Vista Mac OS X version 10.2 Pocket PC 2000/ (Για PDA PC με διπλή όψης κάρτα ήχου) Pocket PC 2002(Για Tablet PC με διπλή όψης κάρτα ήχου) Εγγραφή ενός χρήστη Κάνουμε εγκατάσταση του προγράμματος ακολουθώντας τις οδηγίες. Όταν τελειώσουμε την εγκατάσταση, όπως παρουσιάζεται στην εικόνα 7.1, το x-lite θα εκτελεστεί αυτόματα και θα μας εμφανίσει ένα μήνυμα λάθους στην κορυφή της οθόνης, το No SIP accounts are enabled. Αυτό το μήνυμα λάθους το εμφανίζει επειδή δεν έχουμε δημιουργήσει και ενεργοποιήσει έναν λογαριασμό χρήστη. 168

185 εικόνα 7.1 Μήνυμα λάθους Αφού πατήσουμε μία φορά το δεξί πλήκτρο του ποντικιού μας πάνω στο τηλέφωνο ή το αριστερό πλήκτρο του ποντικιού μας στο εικονίδιο και στην καρτέλα που θα εμφανιστεί επιλέξουμε το SIP Account Settings, θα εμφανιστεί στην οθόνη το παράθυρο της εικόνας 7.2Error! Reference source not found.. εικόνα 7.2 Παράθυρο SIP Account Settings Στη συνέχεια αφού επιλέξουμε το κουμπί Add θα εμφανιστεί το παράθυρο της εικόνας 7.3. Συμπληρώνουμε τα στοιχεία του χρήστη όπως τα έχουμε δηλώσει στο αρχείο sip.conf. 169

186 Στην κατηγορία του User Details, στο πρώτο πεδίο, το Display Name πληκτρολογούμε το όνομα που θέλουμε να φαίνεται στην οθόνη του τηλεφώνου μας με κάθε είσοδο μάς και το όνομα που θα φαίνεται στους άλλους χρήστες όταν τους καλούμε. Στο δεύτερο πεδίο το User name πληκτρολογούμε το όνομα χρήστη, το οποίο είναι δηλωμένο στο αρχείο sip.conf. Στο τρίτο πεδίο το Password πληκτρολογούμε τον κωδικό πρόσβασης, το οποίο είναι δηλωμένο στο αρχείο sip.conf. Στο τέταρτο πεδίο το Authorization user name επιβεβαιώνουμε το όνομα χρήστη που το δηλώσαμε στο πεδίο το User name. Στο πέμπτο πεδίο το Domain πληκτρολογούμε την διεύθυνση IP του server μας, η IP του server που εγκαταστάθηκε και παραμετροποιήθηκε στα πλαίσια της παρούσας εργασίας είναι Στην κατηγορία Domain Proxy επιλέγουμε το Register with domain and receive incoming calls για να μπορέσουμε να δεχτούμε τις εισερχόμενες κλήσεις. Αν το κουμπί αυτό δεν είναι επιλεγμένο τότε δεν μπορούμε να δεχτούμε καμία εισερχόμενη κλήση. Στην συνέχεια επιλέγουμε τον τρόπο αποστολής των δεδομένων. Στην πρώτη επιλογή, το domain, το επιλέγουμε για να στείλουμε τα πακέτα μέσα από μία περιοχή που έχουμε επιλέξει εμείς. Στην δεύτερη επιλογή, το proxy, το επιλέγουμε για να στείλουμε τα πακέτα μέσα από έναν proxy server. Στο πεδίο που ακολουθεί πληκτρολογούμε ή Στην τρίτη επιλογή, το target domain το επιλέγουμε για να στείλουμε τα δεδομένα απευθείας στον παραλήπτη. Στην κατηγορία Dialing plan το πεδίο που ακολουθεί να μας ενημερώνει για τη σύνταξη των αριθμών. Tέλος επιλέγουμε το κουμπί Apply για να αποθηκεύσουμε τις ρυθμίσεις μας. 170

187 εικόνα 7.3 Παράθυρο καρτέλας Account Στη συνέχεια αφού επιλέξουμε το κουμπί Voic θα εμφανιστεί το παράθυρο της εικόνας 7.4, όπου θα ενεργοποιήσουμε τον προσωπικό μας τηλεφωνητή. Επιλέγουμε το Check for voice mail για να ενεργοποιήσουμε αυτήν την υπηρεσία. Στα δύο πεδία που ακολουθούν πληκτρολογούμε το Το 8888 είναι ο αριθμός του τηλεφωνητή και είναι δηλωμένος στο αρχείο extensions.conf. Το είναι η IP διεύθυνση του server μας, που περιλαμβάνει αυτή την υπηρεσία. Το Number to dial for checking voic θα καλέσει τον τηλεφωνητή αφού επιλέξουμε το εικονίδιο. Το Number for sending calls to voic θα διαβιβάσει τις κλήσεις στο τηλεφωνητή μετά από το χρονικό διάστημα που έχει δηλωθεί στο Send calls to voic if unanswered for ή αν κατά την διάρκεια που δεχόμαστε μία εισερχόμενη κλήση επιλέξουμε το εικονίδιο 171

188 . Τέλος επιλέγουμε το κουμπί Apply για να αποθηκεύσουμε τις ρυθμίσεις μας Τα δύο πεδία που ακολουθούν τα επιλέγουμε μόνο αν η υπηρεσία του προσωπικού τηλεφωνητή δεν διατίθεται. Το Always forward to this address το επιλέγουμε για να μεταφέρει τις κλήσεις σε έναν άλλο χρήστη(εκτροπή). Το Always to this address when busy το επιλέγουμε για να διαβιβάσει την κλήση εάν είμαστε απασχολημένοι, π.χ. όταν βρισκόμαστε ήδη σε μία κλήση. εικόνας 7.4 Παράθυρο καρτέλας Voic Στη συνέχεια αφού επιλέξουμε το κουμπί Presence θα εμφανιστεί το παράθυρο της εικόνας 7.5. Στο πρώτο πεδίο, το Mode, επιλέγουμε το Disabled κάνοντας αριστερό κλικ στο βελάκι. Στο πεδίο αυτό ρυθμίζουμε τον τρόπο παροχής υπηρεσιών. Τέλος επιλέγουμε το κουμπί 172

189 Apply για να αποθηκεύσουμε τις ρυθμίσεις μας. Το τηλέφωνο είναι έτοιμο προς χρήση. εικόνα 7.5 Παράθυρο καρτέλας Presence Διαχείριση τηλεφώνου Διαχείριση κλήσεων Αφού επιλέξουμε το κουμπί θα εμφανιστεί στην οθόνη η καρτέλα Calls & Contacts. Επιλέγουμε Calls και το τηλέφωνο έχει τη μορφή της εικόνας 7.6. Υπάρ