Asterisk – ein Uberblick¨ - ogris.de .Studienarbeit Fachhochschule Bielefeld...

download Asterisk – ein Uberblick¨ - ogris.de .Studienarbeit Fachhochschule Bielefeld Betreuender Dozent:

of 75

  • date post

    19-Jul-2018
  • Category

    Documents

  • view

    217
  • download

    0

Embed Size (px)

Transcript of Asterisk – ein Uberblick¨ - ogris.de .Studienarbeit Fachhochschule Bielefeld...

  • StudienarbeitFachhochschule Bielefeld

    Betreuender Dozent: Professor Dr.-Ing. Lutz Grunwoldt

    Asterisk ein Uberblick

    Felix J. Ogris (203583)felix juergen.ogris@fh-bielefeld.de

    23. Januar 2007

  • Inhaltsverzeichnis Inhaltsverzeichnis

    Inhaltsverzeichnis

    1. Einleitung 4

    2. Aufgabenstellung und Szenarien 5

    3. Asterisk 83.1. Kurzvorstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83.2. Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

    3.2.1. Abhangigkeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83.2.2. PostgreSQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93.2.3. mpg123 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103.2.4. zaptel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103.2.5. Asterisk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113.2.6. ISDN-Karte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

    3.3. Komponenten und deren Konfiguration . . . . . . . . . . . . . . . . . . . 113.3.1. Dialplan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123.3.2. Session Initiation Protocol . . . . . . . . . . . . . . . . . . . . . . . 153.3.3. IAX / IAX2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.3.4. Call Detail Record Engine . . . . . . . . . . . . . . . . . . . . . . . 173.3.5. MeetMe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193.3.6. Voicemail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203.3.7. Queues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213.3.8. Asterisk Manager Interface . . . . . . . . . . . . . . . . . . . . . . 223.3.9. Sprachpakete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223.3.10. Festival . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233.3.11. Weitere Dienste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

    4. Managementtools 254.1. gastman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254.2. Flash Operator Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

    5. Endgerate 275.1. Softphones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

    5.1.1. X-Lite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275.1.2. Snom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285.1.3. 3CX Phone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295.1.4. JackenIAX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295.1.5. Idefisk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305.1.6. Kiax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

    5.2. Hardphones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315.2.1. Grandstream . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315.2.2. Snom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

    6. AD2Ast 346.1. ad2ast sync.pl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356.2. ad2ast dial.pl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366.3. ad2ast auth.pl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406.4. ad2ast xml.pl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

    7. Integration in das Labornetz 42

    2

  • Inhaltsverzeichnis Inhaltsverzeichnis

    8. Ausblick 448.1. Todo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

    8.1.1. ENUM & DUNDi . . . . . . . . . . . . . . . . . . . . . . . . . . . 448.1.2. AGI Skripte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448.1.3. Protokolluntersuchung . . . . . . . . . . . . . . . . . . . . . . . . . 448.1.4. Asterisk-Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

    8.2. Version 1.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

    A. Literatur 46

    B. Software 47B.1. Asteriskserver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47B.2. Softphones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

    C. PostgreSQL Startskript 48

    D. Asterisk Startskript 49

    E. AD2Ast 50E.1. ad2ast auth.pl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50E.2. ad2ast dial.pl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51E.3. ad2ast subs.pl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60E.4. ad2ast sync.pl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62E.5. ad2ast xml.pl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65E.6. ad2ast.sql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66E.7. ad2ast auth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67E.8. ad2ast.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

    F. Konfigurationsdateien 69F.1. cdr pgsql.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69F.2. extensions.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70F.3. manager.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71F.4. meetme.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72F.5. modules.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73F.6. sip.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74F.7. voicemail.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

    3

  • 1 EINLEITUNG

    1. Einleitung

    Das in dieser Studienarbeit diskutierte Softwarepaket Asterisk stellt eine Telefonanlagemit zwei grundlegenden Eigenschaften dar: Zum einen wird Asterisk als Open-Sourcevertrieben. Es unterliegt der GNU General Public License (GPL) und kann somit vonjedermann weitestgehend frei eingesetzt und modifiziert werden. Zum anderen ist es aufherkommlicher PC-Hardware lauffahig, vorzugsweise auf einem x86-kompatiblen Systemunter Linux. Fur Mark Spencer, den Initiator von Asterisk, waren dies im Jahre 1999auch die Hauptmotive, sich seine eigene Telefonanlage buchstablich zu programmieren,da ihm sowohl die Preise als auch die beschrankten Moglichkeiten damals verfugbarerTelefonsysteme missfielen. Mit dem Aufkommen von Voice over IP, kurz VoIP, wur-de auch Asterisk um die Moglichkeit erweitert, uber IP-basierte Netze wie Intranetsoder dem Internet zu telefonieren. Dominierend ist hierbei die Kombination aus SIPund RTP, dem Session Initiation Protocol bzw. Realtime Transport Protocol. Als End-gerate fur Voice over IP kommen entweder sogenannte Softphones, also clientseitige Pro-gramme, die die Soundkarte bzw. Mikrofon und Kopfhorer eines PCs verwenden, oderHardphones in Frage, welche herkommlichen Telefon ahneln, aber die Gesprachsdatenuber ein IP-Netz versenden. Die Verbindung zu (leitungsvermittelnden) Telefonnetzenkann uber simple ISDN-Steckkarten erfolgen, sofern sie mittels eines CAPI-Treibers oderuber die ISDN4Linux-Schnittstelle vom Betriebssystem unterstutzt werden. Allerdingssind pro solcher Karte maximal 2 simultane Gesprache moglich. Mehrere D-Kanale bie-ten spezielle Controller der ebenfalls von Mark Spencer gegrundeten Firma Digium, dieausserdem Interfacekarten fur analoge Telefonie vertreibt. Neben der reinen Gateway-funktion zwischen verschiedenen Audiocodecs und Signalingmethoden bietet Asterisk dieMoglichkeit, Warteschlangen oder Queues, wie sie z.B. in Callcentern verwendet werden,oder Voicemailboxen einzurichten, welche als Anrufbeantworter fungieren. Der Rufnum-mernplan oder der Dialplan, welcher die Zuordnung von Telefonnummern zu Endgeratenvornimmt, ist frei konfigurierbar. Somit gleicht der Dialplan vielmehr einer Routingta-belle. Da Asterisk als gewohnlicher Serverdienst auf einem Linuxrechner lauft, kann esuber das sogenannte Asterisk Manager Interface, kurz AMI, sehr einfach angesteuertwerden. Diese Schnittstelle wird in einem Teil der vorliegenden Studienarbeit verwen-det, um Telefonate zwischen zwei Teilnehmern zu vermitteln. Hierzu wurde eine Softwareentwickelt, die Rufnummern, die Benutzern aus einem Active Directory zugeordnet sind,in eine lokale Datenbank synchronisiert, so dass ein Anwender einen anderen Teilnehmerkomfortabel mittels eines Mausklicks aus einer Weboberflache heraus anrufen kann.

    4

  • 2 AUFGABENSTELLUNG UND SZENARIEN

    2. Aufgabenstellung und Szenarien

    Ziel war die Demonstration realisierbarer Szenarien und weitergehender Moglichkeiten,die sich aus dem Einsatz eines Asterisk-Servers ergeben. Hierzu standen mehrere alterePCs (Pentium 2 400 MHz, 128 MB RAM, IDE-Fesplatte) mit vorinstalliertem SuSE Li-nux 10.0 und die Netzwerkinfrastruktur im Labor fur Angewandte Informatik und Ma-thematik der FH Bielefeld zur Verfugung. Aus der im Internet verfugbaren Menge vonSoftphones sollten vornehmlich diejenigen verwendet werden, die kostenlos erhaltlich undeinsetzbar sind und die zumindest ein uneingeschranktes Telefonieren ermoglichen. UmHardware wie ISDN-Karten oder IP-Telefone beschaffen zu konnen, standen Geldmittelin Hohe von bis zu 500 Euro zur Verfugung. Ferner sollte eruiert werden, ob und wie einesinnvolle Weiterverwendung eines Asterisk-Servers im Labor und in der VeranstaltungNetzwerke/Verteilte Anwendungen (NW) bzw. im neu geschaffenen CCNA-Kurs moglichist. Um die einfache Ansteuerung eines Asterisk-Servers uber das Asterisk Manager In-terface zu zeigen, wurde zusatzlich eine webbasierte Datenbankanwendung erstellt. Diesespeichert Telefonnummern, welche den in einem Active Directory gepflegten Benutzernzugeordnet sind, in einer lokalen MySQL-Datenbank. Eine Webo