Fachzeitschrift für InformationsundKommunikationstechn Voice over IP VoIP-TK-Anlagen auf Basis von Open Source Jan Schumacher • Diederich Wermser Die fortschreitende Verbreitung von VoIP (Voice over IP) und die damit verbundenen Vorteile, wie z. B. eine einfache Vernetzung von verteilten VoIP-TK-Anlagen über mehrere Standorte hinweg oder die leichte Integrierbarkeit in andere Anwendungen wie z. B. Groupware, führen dazu, dass immer mehr Unternehmen sich für eine hybride oder eine reine VoIP-Nebenstellenanlage entscheiden. Hybride Nebenstellenanlagen können sowohl VoIP-Telefone als auch die Telefone und Amtsleitungen der „herkömmlichen“ Techniken (ISDN, a/b) anbinden. Hierfür werden entweder in der PBX (TK-Anlage) eingebaute Schnittstellenkarten oder getrennte Gateways benutzt. Die Gateway-Lösung hat den Vorteil, dass sie besser skalierbar ist und sich durch eine geschickte Verteilung lokale „Breakout“-Möglichkeiten in das öffentliche ISDN realisieren lassen. Die Gateways werden üblicherweise über IP und darauf aufbauend SIP (Session Initiation Protocol [1]) für die Zeichengabe und RTP für die Nutzdaten mit der PBX verbunden. Durch die IP-Anbindung können die Gateways redundant ausgelegt werden. Prinzipiell gibt es zwei alternative Architekturen von hybriden TK-Anlagen. PBX mit TDM-Kern sind kanalvermit- übrige Anbieter 4,22 Mio. Open Source 2,85 Mio. Nortel 2,63 Mio. NEC 1,22 Mio. Mitel 1,22 Mio. Avaya 1,75 Mio. Cisco 1,99 Mio. Bild 1. Verteilung der Marktanteile 2008 in Nordamerika im TK-Bereich (Quelle: Digium/Eastern Management Group) 24 telnde Anlagen, die standardmäßig mit ISDN- bzw. analogen a/b-Schnittstellen ausgestattet sind. Sofern sie keine VoIPUnterstützung bieten, werden VoIP-Endgeräte und -Anschlüsse per VoIP-Gateways eingebunden. Unterstützen die TK-Anlagen VoIP, haben sie auf der VoIP-Seite eine B2BUA-Architektur (Back-to-Back User Agent). Das bedeutet, dass die angeschlossenen Endgeräte nicht unterscheiden, ob sie mit einer PBX, einem VoIP-Anbieter oder einem anderen Endgerät sprechen. Die Zeichengabe wird in der TK-Anlage terminiert. Hybride TK-Anlagen mit VoIP-Kern haben eine dem SIP entsprechende ProxyArchitektur, in der nur die Zeichengabe (SIP) durch den PBX-Kern geht und standardmäßig die Nutzdaten (RTP) direkt zwischen den Endgeräten bzw. zwischen Endgerät und dem Mediaserver ausgetauscht werden. Mediaserver können einerseits Gateways in andere Netz sein, anderseits können sie auch komplexe Ruffunktionen bereitstellen, z. B. Mehrteilnehmerkonferenzen oder automatische Rufverteilung (ACD, Automatic Call Distribution). TK-Anlagen mit VoIP-Kern können aufgrund ihrer Architektur eine Hochverfügbarkeit gewährleisten, da die Nutzdaten (RTP) direkt zwischen den Endgeräten ausgetauscht werden; lediglich die Zeichengabe läuft über die PBX. Dies entspricht dem eigentlichen Konzept von SIP [2]. Telefoniefunktionen, wie beispielsweise IVR (Interactive Voice Response) oder Managed Conference, werden durch „Application Server“, die auf der gleichen oder auf zusätzlicher Hardware laufen, realisiert. N90735Zst ntz 7-8 2009 Schumacher Seite 24 Open-Source-Software Open-Source-Lösungen haben sich in vielen kommerziellen Bereichen, etwa bei Web-Servern, E-Mail-Servern und Betriebssystemen, bereits durchgesetzt. Dieser Trend setzt sich nun in der Telefonie fort, Bild 1. Der große Vorteil einer Open-SourceVoIP-PBX liegt einerseits darin, dass keine Lizenzkosten anfallen, anderseits bieten solche Lösungen viele offene, standardisierte Schnittstellen, die eine einfache funktionale Integration in beim Kunden vorhandene IT-Anwendungen wie z. B. CRM- und Groupware-Systeme ermöglichen. Darüber hinaus haben OpenSource-Systeme eine „Community“, Auf einen Blick Wer sich für eine VoIP-TKAnlage interessiert, steht vor der Wahl, ob er eine proprietäre Lösung oder eine Open-Source-Lösung wählen soll. Eines ist sicher: Auch Open-SourceLösungen werden inzwischen professionell unterstützt und stehen in den Leistungsmerkmalen den proprietären TK-Anlagen keineswegs nach. die bereits in der Entwicklung befindliche Systeme sehr früh in vielen Anwendungsbereichen testet. Die gefundenen Fehler können so in der weiteren Entwicklung berücksichtigt werden. Besonders im VoIP-Bereich, wo der Standard für das Zeichengabeprotokoll SIP viel Raum für divergierende Interpretationen lässt, sind Interoperabilitätsund Konformitätstests notwendig. ETSI (European Telecommunications Standards Institute) hat für SIP eine Testspezifikation [3, 4] veröffentlicht, die Konformitätstests, wie sie auch von IANT vorgenommen werden, spezifiziert. Heft 7-8/2009 • Open-Source-PBX Asterisk Freeswitch SipXecs Philosophie Anwendung, gesteuert über Kommandozeilen mit verschiedenen Open- und Closed-Source-Erweiterungen Telefonieplattform, skalierbar von einem Softphone bis hin zu einer TKAnlage modulare TK-Anlage mit unabhängigen Serverkomponenten wie Konfigurationsoder Mediaserver Architektur monolithische Architektur, Schnittstellenkarten zum Anschluss an ISDN- und analoge Leitungen Softswitch mit ladbaren Modulen für TK-Anlagen-Merkmalen wie Voice-Mail vollkommen verteiltes System; die verteilte Architektur erlaubt Lastverteilung, Skalierbarkeit und Umschalten im Fehlerfall; aus Nutzersicht ist es „ein großes System“ Hauptunterstützer Digium – Pingtel Konfiguration mit Textdateien mit XML-Dateien Datenbank mit Web-GUI Leistungsaspekte Nutzdaten und Zeichengabe laufen normalerweise durch die TK-Anlage Nutzdaten und Zeichengabe laufen normalerweise durch die TK-Anlage Nutzdaten und Zeichengabe verlaufen getrennt, wie im SIP-Standard vorgesehen; das ergibt eine höhere Leistungsfähigkeit Tabelle. Vergleich bekannter Open-Source-VoIP-TK-Anlagen Die bekanntesten Open-Source-VoIPPBX sind Asterisk, Freeswitch und SipXecs, Bild 2. Sie unterscheiden sich vor allem in ihrer Architektur, der Konfigurierbarkeit und in ihrer Skalierbarkeit, Tabelle. Asterisk Asterisk, die am weitesten verbreitete Open-Source-VoIP-PBX, wurde 1999 von Mark Spencer ins Leben gerufen. Heute wird das Asterisk-Projekt hauptsächlich von der Firma Digium gesponsert, die Schnittstellenkarten für Asterisk herstellt. Asterisk besitzt eine monolithische Softwarearchitektur, die im Kern TDMähnlich arbeitet. ISDN- und analoge Leitungen (a/b) werden über Schnittstellenkarten per API wie z. B. DAHDI (Digium Asterisk Hardware Device Interface) angeschlossen. Durch die monolithische Softwarearchitektur lässt sich Asterisk besonders gut kompaktifizieren. Ein Beispiel dafür ist die Askozia-PBX [5]. Sie ist eine für Kompakt-Hardware entwickelte Asterisk-Distribution, die rd. 15 MByte Fest- Asterisk 88 % Freeswitch 5 % sipX/sipXecs 4 % Call Weaver 2 % Yate 1 % Bild 2. Marktanteile der bekanntesten Open-Source-VoIP-TK-Anlagen 2008 in Nordamerika (Quelle: Digium/Eastern Management Group) • Heft 7-8/2009 plattenspeicher und mindestens 64 MByte RAM benötigt. Darüber hinaus bietet Askozia bereits eine Web-Oberfläche zur einfachen Konfiguration der PBX. Solche Kompaktlösungen eignen sich gut für den Aufbau kleiner Nebenstellenanlagen für typisch bis zu 25 Teilnehmern. Aus der monolithischen Softwarearchitektur ergibt sich eine schlechte Skalierbarkeit der Asterisk-PBX. Ebenfalls durch die monolithische Architektur ist Asterisk nicht für hochverfügbare Anwendungen geeignet. Die beispielsweise aus der Web-Server-Technik bekannten Konzepte für Hochverfügbarkeit (HA, High Availability), wie unter anderem Hot-Standby, sind auf VoIP bzw. auf SIP nicht anwendbar. SIP ist ein „stateful“ arbeitendes Protokoll, während z. B. HTTP „stateless“ arbeitet. Konkret heißt das, dass der PBX immer der Status aller aktiven Gespräche bekannt sein muss. In der Praxis macht sich das bei einem Ausfall der Asterisk-PBX durch Abbruch aller Gespräche, gefolgt von einer Nichterreichbarkeit der Telefone bemerkbar. Sollte bei einem Ausfall ein weiterer Asterisk-Server zur Verfügung stehen, z. B. als „Hot-Standby“-Server, müssen sich erst alle Telefone an diesem Server durch eine SIP-Registrierung neu anmelden. Die standardmäßige Registrierungszeit beträgt 1 h. Dies bedeutet, dass alle Teilnehmer erst nach Ablauf dieser Registrierungszeit wieder erreichbar wären. Freeswitch Freeswitch ist eine Telefonieplattform, die verschiedene Telefoniedienste vom Softphone (Software-gestütztes „PC- N90735Zst ntz 7-8 2009 Schumacher Seite 25 Telefon“) über Mediagateways bis hin zu Funktionen einer Nebenstellenanlage bereitstellt. Das heißt, dass Freeswitch eher ein Anwendungsserver für einzelne Telefoniefunktionen als eine Nebenstellenanlage ist. Die Konfiguration ist über XML-Dateien wie auch über Skripte in diversen Programmiersprachen möglich. Da die Konfiguration von Freeswitch sehr systemnah abläuft und die zurzeit verfügbaren grafischen Konfigurations- Abkürzungen ACD API B2BUA BHCC CRM CUCM DAHDI Automatic Call Distribution Application programming interface Back-to-Back User Agent Busy Hour Call Completions Customer Relationship Management Cisco Unified Communications Manager Digium Asterisk Hardware Device Interface DBMS Database Management System ETSI European Telecommunications Standards Institute HA High Availability HTTP Hypertext Transfer Protocol IMS IP Multimedia Subsystem IP Internet Protocol ISDN Integrated Services Digital Network IVR Interactive Voice Response MS OCS Microsoft Office Communications Server NGN Next Generation Networks PBX Private Branch Exchange (Nebenstellenanlage, TK-Anlage) RTP Real-Time Transport Protocol SIP Session Initiation Protocol SQL Structured Query Language TDM Time Division Multiplex VoIP Voice over IP 25 oberflächen nur einen kleinen Teil der verfügbaren Funktionen abdecken, ist Freeswitch mehr für Anwendungen als „Application Server“ in einer PBX mit VoIP-Kern geeignet. Freeswitch und Asterisk sind beides VoIP-PBX der ersten Generation. Im Kern der beiden TK-Anlagen werden PBX-spezifische Protokolle verwendet. Sie arbeiten beide standardmäßig als B2BUA und terminieren somit Zeichengabe und Nutzdaten, was die erwähnten Nachteile bedingt. SipXecs Der SipX Enterprise Communication Server (SipXecs oder kurz: SipX) ist eine VoIP-PBX der zweiten Generation, die die dem SIP hinterliegenden Konzepte tatsächlich aufnimmt. Das Architekturkonzept von SipX ist den NGN (Next Generation Networks) für den Bereich der öffentlichen Netze sehr ähnlich, Bild 3. In solchen NGN werden verteilte Server für einzelne Aufgaben wie Proxy-Funktionen (CSCF, Call Session Control Function), Teilnehmerinformationen (HSS, Home Subscriber Server) oder Gateway-Funktionen zu herkömmlichen Netzen (SG, Signalling Gateway; MGCF, Media Gateway Control Function; MGW, Media Gateway) benutzt, die untereinander über standardisierte Protokolle, insbesondere SIP, kommunizieren. Kundengruppenspezifische Dienste können über Application Server (AS) gesteuert werden. Die Entwicklung des SipX wurde 1999 von der Pingtel Corp. als kommerzielles Closed-Source-Produkt gestartet. Diese Firmenstrategie hat Pingtel jedoch Ende Dipl.-Ing. Jan Schumacher ist Leiter Produktentwicklung der IANT GmbH in Wolfenbüttel. E-Mail: [email protected] Prof. Dr.-Ing. Diederich Wermser ist Leiter des IKT Institut für Kommunikationssysteme und -technologien an der Ostfalia – Hochschule für angewandte Wissenschaften in Wolfenbüttel. E-Mail: diederich.wermser @itison-ikt.de 26 Diensteebene Steuerungsebene AS AS HSS CSCF MRF SG/MGCF Transportebene IP mit QoS MGW PSTN/PLMN unterstützende Systeme Voice over IP Management Bereitstellung Abrechnungsdaten Nummernzuordnung Bild 3. Schichtenarchitektur eines NGN für öffentliche Netze (IMS: IP Multimedia Subsystem; vereinfacht) [6, 7] 2004 aufgegeben und stellte den gesamten Sourcecode von SipX der von Pingtel mit gegründeten Non-profit-Organisation SIPfoundry zur Verfügung. Seitdem ist SipX ein Open-SourceProjekt mit einer ständig wachsenden Community. Durch die nahezu hundertprozentige Konformität zu den SIP-Standards und deren Erweiterungen dient der SipXecs als Referenzimplementation des SIP Standards [1]. Nortel bietet seit Mitte 2008 das SCS500 (Software Communication System) als kommerzielle PBX auf SipXBasis an. Charakteristisch für die SipX-PBX ist der modulare Aufbau, der die Verteilung der einzelnen Dienste der SipX-PBX auf mehrere physikalische Server ermöglicht, Bild 4. Die Dienste sind als getrennte Softwareprozesse realisiert, die miteinander über standardisierte Schnittstellen bzw. Protokolle kommunizieren. Einer der größten Vorteile gegenüber den anderen Open-Source-TK-Anlagen ist die enthaltene relationale Datenbank (DBMS, Database Management System), die alle Konfigurationsdaten, Benutzerdaten sowie die Zustände aller aktuellen Gespräche verwaltet. Dieser Aspekt ermöglicht eine dem SIP-Standard entsprechende Hochverfügbarkeit und bietet die Möglichkeit des Lastausgleichs zwischen mehreren physikalischen Servern. Bei einer Auslegung der PBX über mehrere physikalische Server wird die Datenbank repliziert. Als DBMS dient PostgreSQL, das sich für Anwendungen mit komplexen SQL-Operationen und vielen Schreibzugriffen gegenüber anderen Open-Source-DBMS in den letzten Jahren etabliert hat [8]. Der Konfigurationsserver bietet eine komfortable Web-Oberfläche, über die nahezu alle Einstellungen für die PBX und deren Endgeräte vorgenommen werden können. Endgeräte und Gateways N90735Zst ntz 7-8 2009 Schumacher Seite 26 lassen sich über die Web-Oberfläche auch „auto-provisionieren“. Die SIP-Server wie z. B. Proxy-Server und Registry-Server können ebenfalls für Hochverfügbarkeit und Lastausgleich redundant auf mehreren Servern betrieben werden. Gleiches gilt für die Media Server, die Dienste wie Mehrteilnehmerkonferenz oder Call-Center-Anwendungen bereit stellen (ACD, Automatic Call Distribution). Die Verwaltung und Steuerung aller Serverprozesse bzw. -dienste wird zentral über die SipX-Web-Oberfläche vorgenommen. SipXecs im Praxiseinsatz Die offenen, standardisierten Schnittstellen ermöglichen eine vergleichsweise einfache Integration in Unternehmensanwendungen. Da SipX auch intern VoIP (SIP) spricht, kann SipX zur Vernetzung von verteilten TK-Anlagen verwendet werden. Ebenfalls ist eine Anbindung an VoIP-PBX von Dritten möglich, wie z. B. CUCM (Cisco Unified Communications Manager) oder Microsoft OCS (Office Communications Server). Die Implementation einer SipX-PBX benötigt im Gegensatz zu den anderen hier betrachteten PBX-Alternativen, Asterisk und Freeswitch viel Wissen über das Zeichengabeprotokoll SIP und dessen Funktionsweise. Um die Vorteile einer zentralen Konfiguration (Autokonfiguration) aller Endgeräte und Gateways zu nutzen, müssen alle Protokoll-, PBX- und benutzerspezifischen Angaben richtig eingestellt werden. Von IANT integrierte VoIP-PBX können, nach einer kurzen Einweisung, dann vom ITAdministrator der jeweiligen Unternehmen betreut werden. IANT hat inzwischen bei einer Vielzahl von Kunden VoIP-PBX auf SipXBasis implementiert. Erwartungsgemäß hat sich die Hochverfügbarkeit, Skalier- Heft 7-8/2009 • SipX-PBX LDAP-Schnittstelle TFTP-Server FTP-Server HTTP-Server CSV-Import-Schnittstelle SOAP-Schnittstelle Konfigurationsserver (Java) PostgreSQLServer SIPXCONIG. XML-RPC-API SIPXCALLSTATES SIPXACD Signalisierungs-bezogene Dienste Registrierungs-/ Redirekt-Server Präsenzserver RAM-/XMLDatenbank (C++) (C++) CDRProzessor Proxy-Server VoIP-Teilnehmer und Gateways (C++) (Java) Ablaufsteuerung Statusserver (C++) (C++) Nutzdaten-bezogene Dienste Mediaserver (Voicemail und Auto-Attendant) (Java) Konferenzserver Rufe-HaltenServer (Freeswitch-Package) (C++) Paging-Server (Java, JainSIP-Stack) B2BUA (Java, JainSIP-Stack) ACD-Server (C++) Konfigurationsdaten (HTTP/TFTP/FTP) Signalisierung (Rufdaten) (SIP) Ruf- und Nutzdaten (SIP und RTP) SQL Konfigurationsdateien XML/RPC SIP Bild 4. SipXecs Architekturdiagramm CPU-Nutzung barkeit und Integrierbarkeit dieser Lösung bewährt. Ein weiterer Aspekt für Kunden ist die mögliche sanfte Migration hin zu VoIP. Wenn der Ausbau der bisherigen TK-Anlage nicht mehr möglich ist und sie trotzdem noch weiterbetrieben werden soll, können SipXAnlagen über Gateways mit der alten TK-Anlage verbunden werden. Lasttests haben gezeigt, dass bereits zwei Server (Standard-Hardware, mitt- 30 25 20 15 10 5 0 0 lere Leistungsfähigkeit) mit Lastausgleich ausreichen, um Verkehrslasten von über 50 000 BHCC (Busy Hour Call Completions) bzw. 14 Anrufe/s zu vermitteln. Konkret entspricht das bei zehn Telefonaten pro Teilnehmer und Stunde einer VoIP-TK-Anlage mit 5 000 Teilnehmern. Sollten selbst diese zulässigen Anrufaufkommen bzw. Teilnehmerzahlen nicht ausreichen, setzt IANT entweder auf leistungsfähigere Hardware oder CPU-Nutzung (Master-Server) 10 000 CPU-Nutzung (verteilter Server) 20 000 30 000 40 000 50 000 60 000 Busy hour call completion (BHCC) Bild 5. Lasttest einer SipX-PBX mit Lastausgleich über zwei Server • Heft 7-8/2009 N90735Zst ntz 7-8 2009 Schumacher Seite 27 installiert einzelne logische Serverkomponenten auf getrennter Hardware. Literatur [1] IETF RFC 3261 [2] Ahson, S.; Ilyas, M.: SIP Handbook, CRC Press, Boca Raton, 2008 [3] ETSI TS 102 027 [4] Bormann, M.; Wermser, D.; Patz, R.: Conformance Testing of Complex Services Exemplified with the IMS’ Presence Service. Angenommen für: IEEE Conf. on Next Generation Mobile Applications, Services and Technologies, Cardiff, September 2009 [5] www.askozia.de [6] Wermser, D. u. a.: Adaptive Mobile Multimedia-Dienste für das zukünftige All-IP UMTS. Proc. ITG-Fachtagung „Ambient Intelligence“, VDE Kongress 2004. Berlin · Offenbach: VDE VERLAG, 2004 [7] Jusek, A.; Hans, M.; Kowalewski, F.; Wermser, D.: SIP-basierte Dienstentwicklung für das IMS CN (UMTS Release 5). Proc. 9. VDE/ ITG-Fachtagung: Mobilfunk – Stand der Technik und Zukunftsperspektiven. Berlin · Offenbach: VDE VERLAG, 2004. [8] http://wiki.postgresql.org/wiki/Why_PostgreSQL_Instead_of_MySQL: Comparing_Reliability_and_Speed_in_2007 [9] Trick, U.; Weber, F.: SIP, TCP/IP und Telekommunikationsnetze. 4. Aufl., München: Oldenbourg, 2009 27