12/01/2007

@ Αρχιτεκτονική του Asterisk

To Asterisk έχει σχεδιαστεί με κύρια προτεραιότητα την ευελιξία και τη συνδεσιμότητα, όπου συγκεκριμένα APIs ορίζουν τον πυρήνα του PBX συστήματος. Η εξελιγμένη αρχιτεκτονική του Asterisk, του επιτρέπει να χειρίζεται τις εσωτερικές διασυνδέσεις με πλήρη διαφάνεια, ανεξαρτήτως πρωτοκόλλων, κωδικοποιήσεων, και τηλεφωνικού υλικού. Με αυτόν τον τρόπο το Asterisk είναι σε θέση να χρησιμοποιήσει όλα τα κατάλληλα υλικά και τις τεχνολογίες που είναι διαθέσιμες σήμερα ή ακόμα και μελλοντικά, για να εκτελέσει τις βασικές του λειτουργίες, συνδέοντας υλικό και λογισμικό.

Ο πυρήνας του Asterisk

  • Μεταγωγέας PBX: Η πρωταρχική λειτουργία του Asterisk όπως φαίνεται και από την πρώτη ονομασία του (Asterisk the Free PBX[1]) είναι να λειτουργεί σαν σύστημα PBX, συνδέοντας κλήσεις μεταξύ χρηστών και ενεργειών. Ο πυρήνας μεταγωγής συνδέει χρήστες από διάφορες διεπαφές λογισμικού ή υλικού.

  • Εκτελεστής Εφαρμογών: Εκτελεί εφαρμογές που παρέχουν λειτουργίες όπως, αναπαραγωγή αρχείων, αυτόματος τηλεφωνητής.
  • Μεταφραστής Codec: Χρησιμοποιεί modules για την κωδικοποίηση και την αποκωδικοποίηση διαφόρων τύπων συμπίεσης ήχου που εφαρμόζονται στην τηλεφωνία. Υποστηρίζονται πολλοί codecs για να μπορέσει να επιτευχθεί μία ισορροπία μεταξύ ποιότητας ήχου και χρήσης του εύρους ζώνης.
  • Χρονοπρογραμματιστής και Ελεγκτής Εισόδου/Εξόδου: Χειρίζεται λειτουργίες χρονοπρογραμματισμού και εποπτείας σε χαμηλό επίπεδο, επιτρέποντας την επίτευξη της καταλληλότερης επίδοσης σε κάθε περίπτωση φόρτου εργασίας.

APIs Φόρτωσης Modules

Υπάρχουν τέσσερα APIs για να φορτώνονται modules, τα οποία παρέχουν τη διαλειτουργικότητα σε θέματα υλικού και πρωτοκόλλων. Με τη χρήση αυτού του αρθρωτού συστήματος, ο πυρήνας του Asterisk δε χρειάζεται να γνωρίζει λεπτομέρειες για το πώς συνδέεται ο χρήστης, τι codecs[2] χρησιμοποιεί, κ.λ.π.

Τα APIs είναι τα:

  • Channel API: Το channel API διαχειρίζεται τον τύπο της σύνδεσης από την οποία προέρχεται ο χρήστης. Η σύνδεση αυτή μπορεί να είναι VoIP, ISDN, POTS, ή οποιαδήποτε άλλη τεχνολογία. Τα modules φορτώνονται δυναμικά για να χειριστούν τις λεπτομέρειες της σύνδεσης.
  • API Εφαρμογών: Το API εφαρμογών, επιτρέπει στα modules εφαρμογών να εκτελεστούν ώστε να παρέχουν διάφορες λειτουργίες. Δυνατότητες όπως τηλεδιάσκεψη, μεταφορά δεδομένων, φωνητικό ταχυδρομείο και οποιαδήποτε άλλη εργασία μπορεί να εκτελέσει ένα σύγχρονο ή μελλοντικό PBX, χειρίζονται από τα αντίστοιχα ξεχωριστά modules.
  • API Μετάφρασης Codec: Το API αυτό φορτώνει ξεχωριστά modules για τον κάθε codec, για να υποστηρίξει τους διάφορους τύπους κωδικοποίησης και αποκωδικοποίησης ήχου που υπάρχουν, όπως: GSM, μLaw, aLaw, ακόμα και mp3.
  • API Αρχείων: Το API αρχείων είναι υπεύθυνο για την ανάγνωση και εγγραφή πολλών τύπων αρχείων, και την αποθήκευση δεδομένων στο σύστημα.

Με τη χρήση αυτών των APIs, το Asterisk επιτυγχάνει πλήρη ανεξαρτησία μεταξύ της βασικής λειτουργίας του ως PBX και της πληθώρας των τεχνολογιών που υπάρχουν στο χώρο της τηλεφωνίας. Η αρθρωτή δομή του, του επιτρέπει να συνεργάζεται απόλυτα τόσο με τα παραδοσιακά συστήματα, όσο και με τις νέες τεχνολογίες μετάδοσης πακέτων φωνής. H δυνατότητα που έχει το Asterisk να φορτώνει module για κάθε codec, του επιτρέπει να πραγματοποιεί μετάδοση πακέτων φωνής τόσο σε δίκτυα με μικρό εύρος ζώνης (σύνδεση μέσω modem) με χρήση codec υψηλής συμπίεσης, όσο και σε ευρυζωνικά δίκτυα, παρέχοντας υψηλής ποιότητας ήχο.

Το API εφαρμογών παρέχει τη δυνατότητα στα modules εφαρμογών, να εκτελούν οποιαδήποτε λειτουργία ευέλικτα και κατά βούληση του χρήστη. Επιτρέπει επίσης την εκτέλεση εφαρμογών που έχουν αναπτυχθεί αποκλειστικά για να καλύψουν προσαρμοσμένες ανάγκες και περιπτώσεις χρήσης. Επιπλέον, φορτώνοντας όλες τις εφαρμογές ως modules το Asterisk δίνει τη δυνατότητα στους διαχειριστές να σχεδιάσουν (ευπροσάρμοστα) συστήματα με εύκολη προσαρμογή στις τηλεπικοινωνιακές αλλαγές που μπορεί να προκύψουν.



[1] Η αρχική ονομασία του Asterisk ήταν Asterisk the Free PBX αφού αυτός ήταν ο λόγος δημιουργίας του. Με την πάροδο του χρόνου όμως εξελίχθηκε σε πολλά παραπάνω, οπότε η ονομασία του άλλαξε σε Asterisk προκειμένου να εκφράζει καλύτερα το φάσμα των δυνατοτήτων του.

[2] Η λέξη codec προέρχεται απ’ την σύμπτυξη των λέξεων COder - DECoder και αφορά στην διαδικασία κωδικοποίησης κατά την αποστολή των δεδομένων και αποκωδικοποίησης κατά την λήψη.

Δεν υπάρχουν σχόλια: