Projektresultat

Das Ziel des Projekts ist eine Erweiterung bestehender Protokolle zur IP basierten Telefonie, um die Errichtung globaler Voice over IP Netzwerke zu erleichtern. Dabei wird durch den Einsatz von Anycast ein verschlüsseltes RTP Media Relay realisiert, was die Skalierbarkeit und Möglichkeiten zur Lastverteilung verbessert, sowie die Ausfallsredundanz erhöht.

Das Projekt besteht aus 3 großen Bereichen:

Nach der Spezifikation der neuen Protokolle und deren Veröffentlichung wird mit der Implementierung dieser begonnen. Unter Einbeziehung des open source PBX Servers Asterisk wird eine voll funktionsfähige Implementierung erstellt, die alle benötigten Teile zum Nutzen der neuen Protokolle enthält. Dabei kommt Asterisk sowohl als Client als auch als Server zum Einsatz. Die erstellte Erweiterung besteht aus der Fähigkeit die Sprachdaten mit Hilfe eines oder mehrerer per Anycast adressierter Proxy Server (Proxy im Sinne von Stellvertreter, nicht Zwischenspeicher) weiterzuleiten und dahingehend zu manipulieren, sodass die Verbindung zwischen Proxy Servern und Telefon auch beim Einsatz von NAT (Network Address Translation) funktioniert. Dadurch werden konkret folgende Zeile erreicht:

Die Daten zwischen zwei Telefonen benutzen jeweils den kürzesten Weg vom Sender zum aus routingtechnischer Sicht nächstgelegenen Proxy. Dadurch ergibt sich eine geografische Lastverteilung im Proxy Netzwerk bei gleichzeitig kürzest möglicher Verzögerungszeit der Sprachdaten.

Zur Demonstartion der Resultate wird ein öffentlich zugängliches Testsystem errichtet, dieses richtet sich vor allem an Einzelpersonen und bleibt bis zum Ende des Projektes bestehen. Für Serverbetreiber wird bereits vor Projektende eine offizielle Beta Version zur Verfügung gestellt. Die daraus gewonnene Erfahrung soll wiederum zur Verbesserung des Endresultats beitragen. Dieses besteht aus der unter GNU GPL Version 2 veröffentlichten Software, sowie der unter Creative Commons veröffentlichten Dokumentation, als auch der konform zum RFC Standard erstellten Protokoll Spezifikationen.

Um den Projektfortschritt zu dokumentieren und bereits zu einem frühen Projektstand möglichst viele Personen zu erreichen, wird der Projektfortschritt öffentlich dokumentiert. Dies geschieht durch den Einsatz eines öffentlichen Subversion Servers, der die jeweils aktuellen Programm Sourcen enthält, sowie durch die Erstellung der Dokumentation in Wiki Form. Alle Informationen hierzu werden unter der dafür erstellten Homepage http://www.anytun.org gesammelt.

Meilensteine

Protokoll Entwurf

Nach sorgfältiger Analyse bestehender Protokolle die bei IP basierter Telefonie zum Einsatz kommen (vor allem SIP und SRTP) wird ein neuer Protokoll-Entwurf erstellt der die Probleme bei der Datenweiterleitung mittels Anycast Proxy Server löst. Dieser wird bei der IETF eingereicht. Dieser Protokoll-Entwurf soll alle Anforderungen an ein RFC Dokument erfüllen und wird als Internet Draft veröffentlicht.

Genauer betrachtet werden zwei Teilprotokolle benötigt:

anytun

(Anycast Tunneling Protokoll) Dieses Protokoll wird zwischen Client (Telefon) und den Proxys verwendet.

anypsp

(Anycast Proxy Synchronisation Protocol) Dieses Protokoll wird zwischen den Proxys verwendet und überträgt die Änderungen in den Session Tables der Proxys.

Spezifikation der Schnittstellen

Es werden die Schnittstellen zwischen den einzelnen Programmteilen detailliert spezifiziert. Neben der Festlegung in der Dokumentation werden bereits alle nötigen Header Dateien erstellt, die eine vorläufige Einbindung in andere Programmteile ermöglichen. Die grundlegenden Funktionen sind dabei noch nicht zwingend existent, sondern werden zuerst noch von Platzhaltern repräsentiert. Low Level Netzwerk Modul

Das Low Level Netzwerk Modul enthält alle nötigen Funktionen zur Erzeugung von Netzwerkpacketen die vom anytun Protokoll benötigt werden. Dieses Modul kann betriebsystemabhängige Komponenten enthalten. Erstellt und getestet wird dieses Modul für Linux, wobei auf die Portierbarkeit auf andere Betriebssysteme Rücksicht genommen wird. Dieses Modul kommt nur serverseitig zum Einsatz.

Anytun Server Library

Diese Library ist die Implementierung des anytun Protokolls. Das Modul kann unter zur Verfügung Stellung der Daten aus der Session Table mit Hilfe des Low Level Netzwerk Moduls eine Verbindung zum Proxy Netzwerk entgegen nehmen. Sie ist zuständig für das Erzeugen von anytun Packeten aus UDP Packeten und umgekehrt.

Anytun Client Library

Die anytun Client Library beinhaltet notwendige Modifikationen auf Client Seite (Telefon). Diese wird möglichst minimal gehalten um eine leichte Implementierung in embeded Systems zu ermöglichen.

anypsp Library

Diese Library ist die Implementierung des anypsp Protokolls. Es handelt sich dabei um ein peer to peer Protokoll das die Änderungen in den Session Tables zwischen den einzelnen Proxy Servern synchronisiert. Proxy Daemon Der Proxy Daemon verwaltet die Sessions unter zu Hilfenahme der anypsp Library und anderer Schnittstellen zur Datenspeicherung (Datenbank) sowie zur Authentifizierung.

Analyse von Verschlüsselungsalgorithmen unter Beachtung der Hardware Vorraussetzungen Es wird ein Konzept erarbeitet das die sichere Datenübertragung sowohl zwischen Proxy Server und Client, unter den Proxy Servern sowie auch von Client zu Client sicherstellt. Zu diesem Zweck werden mehrere vorhandene Verfahren herangezogen und ein theoretischer Vergleich durchgeführt. Aufgrund der verschiedenen Ansprüche werden für die drei Bereiche unabhängig voneinander die am besten geeigneten Verfahren angewendet.

Bei den neuen Protokollen anytun und anypsp wird Verschlüsselung fix integriert und auch zur Authentifizierung verwendet.

Feature complete Beta Version

Dabei handelt es sich um einen Snapshot der Dokumentation und der Programm Sourcen die bereits alle Funktionen beinhalten jedoch nicht ausreichend auf Fehler überprüft sind und auch noch Sicherheits- und Performance-Probleme enthalten können. Durch die Veröffentlichung soll eine möglichst große Rückmeldung von Benutzern erfolgen die in die endgültige Version einfließen sollen.

Testserver

Um auch Benutzer ohne eigenen VOIP Server ansprechen zu können werden mehrere eigene Testserver betrieben. Diese sollen einerseits die Funktion des Projekts demonstrieren und andererseits der Verbesserung und Fehlerbehebung dienen. Wir behalten uns vor, den Betrieb der Testserver nach Projektende wieder einzustellen.

Lokaler Testbetrieb

Der lokale Testbetrieb enthält zusätzlich zu den öffentlichen Testservern noch die Möglichkeit teilweise Netzwerkausfälle zu simulieren und somit das Verhalten bei Änderung der Routen zu untersuchen.

Dokumentation

Die Dokumentation wird parallel zum Projekt erstellt und ist in ihrem aktuellen Status jederzeit einsehbar. Generell wird der gesamte Projektfortschritt online dokumentiert. Dies geschieht vor allem durch die Erstellung der Dokumentation in Wiki Form, sowie durch den Betrieb eines Subversion Servers. Am Ende des Projekts wird sowohl vom Programm Code als auch von der Dokumentation eine endgültige Release Version erstellt.

Zeitplan

anytun: Projektbeschreibung und Meilensteine Anycast VOIP Proxy (last edited 2008-02-26 16:02:59 by ErwinNindl)