Fischertechnik
AVR
Raspberry Pi
Elektronik
Netzwerk
Sonstiges


















Impressum

Voice over Internet Protocol (VoIP)

Die folgenden Informationen habe ich nicht neu recherchiert, sondern nur aus der Erinnerung niedergeschrieben. Fehler und Ungenauigkeiten bitte ich zu entschuldigen.

Kurze Geschichte der Telefonie

Das Fräulein vom Amt vermittelt

Vor langer, langer Zeit begann die Telefonie sehr einfach. Zuerst eigentlich nur ein Telefonhörer mit einem Kabel zur Vermittlungsstelle. Dort saß dann das "Fräulein vom Amt" und stöpselte die Verbindung zum gewünschten Gesprächspartner. War der an einem anderen Amt angeschlossen, musste erst die Verbindung zum richtigen Amt vermittelt, und somit gestöpselt, werden und dann dort die Verbindung zum Gesprächspartner. Am Gesprächsende musste dann alles wieder zurückgestöpselt werden. Im nächsten Schritt wurde die Vermittlung automatisiert.

Wählscheibe und Drehwähler

Die Telefone bekamen eine Drehscheibe mit einem Unterbrecherkontakt und die Vermittlungsstelle Drehwähler. Ein geschickter, aber einfacher Mechanismus im Telefon sorgte zuverlässig dafür, dass eine bestimmte Anzahl von Impulsen mit konstanter Dauer und konstantem Abstand erzeugt wurden, wenn eine Nummer gewählt wurde. Ziffer für Ziffer entstand so eine Pulsfolge und jeder Block entstand aus 1-10 Impulsen für die Ziffern 1, 2, 3 bis 0. Nicht ganz so robust und zuverlässig waren die Drehwähler auf der Gegenseite, also in den Vermittlungsstellen. Konsequenterweise optimierte der nächste Entwicklungsschritt diese Schwachstelle.

Die Elektronik zieht ein: Tonwahl

Die Vermittlung erfolgte über eine Elektronik; die Information, welche Ziffer gewählt wurde, erfolgte im Tonwahlverfahren. Statt der mechanischen Drehscheibe bekamen die Telefone jetzt eine Tastatur in Matrixform. An jeder Spalte, und an jeder Zeile lag ein Ton einer bestimmten Frequenz an. (Die Matrix bestand aus je vier Zeilen (697, 770, 852 und 941 Hz) und vier Spalten (1209, 1336, 1477 und 1633 Hz); mit acht unterschiedlichen Tönen konnten so 16 Tasten unterscheidbar übertragen werden.) Wurde jetzt eine Taste gedrückt, wurden beide Töne (Zeile und Spalte, Dual-Tone) zusammen auf die Telefonleitung gelegt. Beide Frequenzen konnten leicht erkannt und die gedrückte Taste ermittelt werden. Damit wurden dann die Vermittlungsinformationen, wieder Ziffer für Ziffer ermittelt und elektronisch in eine Ende-zu-Ende geschaltete Leitungsvermittlung umgesetzt.

Digital im Multiplex

Der nächste Entwicklungsschritt, nach vielen kleinen Optimierungen der weitestgehend analogen Telefonie, erfolgte mit der vollständigen Digitalisierung, sowohl der Sprache, als auch der Vermittlung im Rahmen von ISDN. Die bestehende Anschlussleitung wurde digitalisiert und vier digitale Kanäle bereitgestellt. Zwei Kanäle hatte jeweils 64 kbps und dienten zur Übertragung von zwei Sprachkanälen in hoher Qualität. Die analogen Telefone konnten den Frequenzbereich von von 300-3400 Hertz, also eine Bandbreite von 3,1 kHz übertragen. Jede Störung auf der Strecke addierte sich zum Nutzsignal hinzu. Für ISDN erfolgte eine Filterung auf 4 kHz und dann eine Abtastung mit 8 kHz, einer Digitalisierung und einer Paketierung mit einer anschießenden digitalen Übetragung bis zum Telefon auf der Gegenseite. Dieses steigerte die Sprachqualität deutlich. Diesese Vorteile wurden mit einer zusätzlichen Verzögerung erkauft. Es wurden ja erst 80 Messwerte gesammelt, und diese erst dann mit einem Paket verschickt. Auf der Gegenseite erst das ganze Paket gelesen und dann "abgespielt". Die beiden Sprachkanäle wurden auch als B-Kanäle bezeichnet. Die beiden anderen als D- und E-Kanal. Im D-Kanal wurden die Vermittlungsinformationen, und im E-Kanal "interne" Informationen zu Fehlern und der Synchronisation. Die ehemalige Leitungsvermittlung der analogen Telefonie wurde jetzt zu einer Paketvermittlung für die Datenpakete im jeweiligen B-Kanal; allerdings noch ohne eine Überbuchung. Es war also sichergestellt, dass jedes Sprachpaket "seinen Platz" in der gemultiplexten Übertragungsstrecke hatte.

Sprache quer durch das Internet

Im aktuellen Schritt heben die Telefonnetzbetreiber auch diese Qualität auf und transportieren alle Daten in einem gemeinsamen Netz. Ganz vereinfacht dargestellt werden die Informationen aus dem D-Kanal per SIP übertragen und die aus dem B-Kanal per RTP. Mehrere gleichzeitig eingeführte "Ergänzungen" verschlechtern die Qualität weiter. Zur Kompensation der schwankenden Laufzeiten und dem Paketverlust wird beim "Empfänger" erst eine gewisse Anzahl von Sprachpaketen zwischengespeichert. Soviel, dass Lücken erkannt und, mehr oder weniger gut, aufgefüllt werden können. Es wird soviel zwischengespeichert, dass ein gleichmäßiges Abspielen sichergestellt ist. Je schlechter die Verbindung Ende-zu-Ende ist, um so höher ist dadurch auch die Verzögerung. In Folge der Verzögerung leidet nicht die Verständlichkeit, wohl aber die Kommunikation (man fällt sich zum Beispiel ins Wort). Der Wegfall der Multiplextechnik erzeugt einen Mehrbedarf bei der Datenmenge. Dieser Mehrbedarf wurde dadurch halbiert, dass zwei Sprachpakete ISDN in ein RTP-Paket gepackt werden; mit einer entsprechenden Steigerung der Verzögerung. Um Bandbreite zu sparen setzen die Netzbetreiber zunehmend auch eine verlustbehaftete Kodierung der Sprachdaten ein. Die Verluste sind hörbar; die Qualität entspricht dann nur noch der eines mäßg guten Mobiltelefonats.

Session Initiation Protocol SIP

SIP basiert auf UDP und die Kommunikationspartner nutzen Port 5060 sowohl aus Quell-, als auch als Zielport. SIP ersetzt über ein IP-Netz die Anbindung an die Vermittlungsstelle, die Verbindung zwischen Vermittlungsstellen und dann wieder zum anderen Gesprächspartner. Dabei regelt SIP nur abstrakt den Verbindungsauf- und -abbau. Sobald die IP-Adressen, UDP-Ports und der Codec der Kommunikationspartner ausgehandelt sind, bauen diese eine direkte Verbindung (Media-Stream) untereinander auf. Die Festlegung dieser Parameter erfolgt innerhalb von SIP über SDP. Die Media-Streams nutzen das Protokoll RTP und parallel zu dem Media-Stream kann auch eine RTCP-Verbindung zum Austausch von Zusatzinformationen, zum Beispiel zur Sprachqualität aufgebaut werden. Üblicherweise sind die UDP-Portnummern für RTP gerade und die für die zusätzliche RTCP-Verbindung auf beiden Seiten um den Wert 1 erhöht, also ungerade.

INVITE

Der Aufbau eines Gesprächs beginnt mit dem SIP-Befehl INVITE, der typischerweise auch per SDP eingebettet die IP-Adresse des Anrufers und den RTP-UDP-Port für den Media-Stream enthält. Ebenso enthält die SDP-Information eine Liste der verfügbaren Codecs. Es können getrennte AUDIO- und VIDEO-Verbindungen angeboten werden.
In einem Antwortpaket zum INVITE erfolgt, ebenfalls eingebettet in SDP, die Information zu IP-Adresse, UDP-Port und Codec des Kommunikationspartners. Ab da kann dann der Media-Stream von beliebiger Seite gestartet werden. Aus Sicherheitsgründen erlauben viele Geräte eingehende Pakete erst, wenn der Kommunikationspartner bekannt ist.
Antworten sehen aus, wie bei HTML und lauten zum Beispiel "200 OK" oder "407 Proxy Authentication Required" oder "302 Moved temporarily"
Mit dem ersten SIP-Befehl, also mit dem INVITE wird die Call-ID festgelegt. Der Absender ist dafür verantwortlich, dass diese eindeutig vergeben ist. Die Call-ID ist nicht zwingend auf der gesamten Strecke zwischen den Kommunikationspartnern identisch. Ein "stateful proxy" kann die SIP-Verbindung terminieren und eine eigene, mit einer neuen Call-ID, aufbauen. Da dieses potentiell dazu führt, dass Schleifen nicht erkannt werden, wird angestrebt eine Session-ID zusätzlich in den SIP-Datenstrom aufzunehmen, die Ende zu Ende erhalten bleiben muss.

BYE

Der geordnete Verbindungsabbau wird mit BYE signalisiert. Da SIP symmetrisch ist, kann der Kommunikationspartner, der den Abbau initiiert, dieses SIP-Kommando verschicken. Die Antwort ist typischerweise "200 OK".

Session Description Protocol SDP

Real-Time Transport Protocol RTP

RTP Control Protocol RTCP

Sender Report SR

NTP Timestamp

Die Sekunde seit dem 1.1.1900 (Greenwich) in den ersten 32 Bit; in den folgenden 32 Bit folgen die Nachkommastellen (1/2 Sekunde, 1/4 Sekunde, 1/8 Sekunde... 1/(2^32) Sekunde). Sollte aus irgendwelchen Gründen keine NTP-Zeit verfügbar sein, kann auch eine andere Zeitquelle genutzt werden. Wichtig ist dann, dass alle verbundenen Systeme dieselbe Quelle verwenden. Eine Korrektur zur Zeitzone erfolgt nicht; somit können alle Systeme weltweit untereinander problemlos kommunizieren.

Jitter

Der angegebene Wert wird über mehrere Intervalle gewichtet gemittelt und erfolgt in der Einheit, in der die Timestamps im zugehörigen RTP-Stream angegeben werden. Bei G.711 erfolgt die Abtastung mit 8kHz und damit ergibt sich als Zeiteinheit 1/8000 Sekunde=0.125Millisekunden.