>>> Inhaltsverzeichnis

3. Voice over IP (VoIP) - Interne Realisierung

3.1. H.323 - Standard (Rufaufbau)

Das offizielle Standardprotokoll für Gespräche über IP - Netzwerke heißt H.323, welches alle Schritte zum Aufbau eines Gesprächs vorschreibt. Dieses Protokoll erhält weitere Protokolle, die einzelnen Teilaufgaben des Rufaufbaus realisieren können.

Anrufer

 

 

 

 

 

 

 

 

 

 

 

Anrufer

 

 

 

 

 

 

 

 

 

 

 

Anrufer

Q931: Setup (Feststellen ob der Partner verfügbar ist: Klingeln)

angerufener
Partner

  

  

  

  

  

  

  

  

  

   

angerufener
Partner

 

 

 

 

 

 

 

 

 

 

angerufener
Partner

Q931: Call Proceeding (erste Antwort der anderen Seite)

Q931: Alerting (Benachrichtigung des Anrufers: gleich wird verbunden)

Q931: Connect (Verbindung hergestellt)

H.245: Request
H.245: TerminalCapabilitySet
(diese Funktionalität wird vom Angerufenen unterstützt)

H.245: Response
H.245: TerminalCapabilitySetAck
(Anrufer nimmt Spezifikationen zur Kenntnis )

H.245: Request
H.245: TerminalCapabilitySet
(diese Funktionalität wird vom Anrufer unterstützt)

H.245: Response
H.245: Terminal CapabilitySetAck
(Angerufener nimmt Spezifikationen zur Kenntnis)

H.245: Request
H.245: MasterSlaveDetermination
(Master- und Slavevereinbarungen aushandeln)

H.245: Response
H.245: MasterSlaveDeterminationAck
(Master- und Slavevereinbarungen bestätigen)

H.245: Response
H.245: MasterSlaveDeterminationAck
(Master- und Slavevereinbarungen bestätigen)

H.245: Request
H.245: OpenLogicalChannel
(Anrufer öffnet logischen Kanal)

H.245: Response
H.245: OpenLogicalChannelAck
(Angerufener bestätigt Kanalöffnung)

H.245: Request
H.245: OpenLogicalChannel
(Angerufener öffnet logischen Kanal)

H.245: Response
H.245: OpenLogicalChannelAck
(Anrufer bestätigt Kanalöffnung)

RTP - Daten
(Anrufer schickt Sprachdaten per Realtime Transport - Protokoll)

RTP - Daten
(Angerufener schickt Sprachdaten per Realtime Transport - Protokoll)

H.245: Request
CloseLogicalChannel
(Logischen Kanal wieder schließen)

H.245: Response
CloseLogicalChannel
(Kanalschließen bestätigen)

H.245: Request
CloseLogicalChannel
(andere Seite schließt logischen Kanal)

H.245: Response
CloseLogicalChannel
(Kanalschließen bestätigen)

H.245: Command
Disconnect
(Verbindung trennen)

Q931: Release Complete
(Telefonatende, alle Verbindungen getrennt)

(1) Q391 - Protokoll: Bei einem reinen Voice over IP - Gespräch wird zunächst die anzurufende Seite mit einem "Setup - call" gerufen. Ist der zu rufende Gesprächspartner bereit, kann er ein "Call Preceeding" abschicken. Zusätzlich wird der Anrufer über den bevorstehenden Verbindungsaufbau (Alerting) benachrichtigt. Danach wird verbunden ("connect"); der Angerufene "nimmt ab". 

(2) H.245 - Protokoll: Nun steht die Basis der Verbindung. Im folgenden müssen die verschiedenen Standards und Einstellungen ("Terminal Capabilities" : z.B. Wave-Codecs) abgeglichen werden. Dazu sendet die angerufene Seite eine Anfrage nach den unterstützen Codecs und Eigenschaften des Anrufers. Dieser antwortet und sendet seinerseits eine Anfrage nach den "Terminal Capabilities" des Anzurufenden. In diesem Zuge wird sich auf die jeweiligen unterstützten Formate geeinigt und nun folgt die Klärung, wer sie Rolle des Master, bzw. des Slaves übernimmt. Nun öffnen beide Seiten per "Request" einen logischen Kanal über den die Kommunikation stattfinden soll. Die Öffnung wird jeweils von beiden Seiten per "Response" bestätigt.

(3) RTP - Datenaustausch: Erst nachdem die Frage nach den zu verwendeten Codecs und Funktionalitäten geklärt ist und ein logischer Kanal geöffnet wurde, können per Realtime Transport - Protokoll die Gesprächsdaten gesendet und empfangen werden. Empfangen und Senden geschieht dabei parallel. 

(4) H.245 - Protokoll: Zum Beenden des Gesprächs sendet einer der Gesprächspartner eine Anfrage zur Schließung des logischen Kanals. Die andere Seite bestätigt dies und schickt einen "Disconnect" - Befehl.

(5) Q391 - Protokoll :Mit der "Release Complete"  - Nachricht sind alle Verbindungen getrennt.

 

3.2. Beschleunigung des Rufaufbaus

Eine normale H.323 - Verbindung kann erst nach dem "Abnehmen" (nach dem Q391: Connect) die Verbindung aufbauen. Das heißt , dass erst nach der Bestätigung des Angerufenen die "Terminal Capabilities" abgeglichen und der logische Kanal geöffnet werden kann. Da diese beiden Vorgänge ca. zwei Sekunden benötigen, werden in diesen zwei Sekunden keine RTP - Daten übertragen und die ersten Worte des Gesprächs verschluckt. Um diesen Umstand zu vermeiden, gibt es mehrere Wege, den Rufaufbau zu beschleunigen.

3.2.1. Frühes Verbinden - early connect

Beim frühen Verbinden wird bereits vor dem "Abnehmen" (Q391 Connect)  angefangen Codecs, Ports und ähnliches abzugleichen. Auf diese Weise befindet sich bereits beim "Abheben des Hörers" das Gespräch schon im RTP - Modus und es werden keine Daten "verschluckt".

Beim "H.245 early connect" wird zunächst die anzurufende Seite per Q391: Setup gerufen. Nun wird das "CapabilitySet" abgeglichen und die "MasterSlaveDetermination"  durchgeführt. Erst dann folgt das Q391: "CallPreceeding" und daraufhin die Öffnung des logischen Kanals per H.245: OpenLogicalChannel. Der logische Kanal wird von beiden Seiten bestätigt und geöffnet. Nun folgt das Q391: Alerting und Connect ("Klingeln" und "Abnehmen").

Das Gespräch befindet sich schon im RTP - Modus und beide Partner können sich sofort verständigen. Die Beendigung des Gesprächs erfolgt später exakt nach den Vorgaben des H.323 - Protokolls.

3.2.2. Schnellstart - fast start

Beim Schnellstart werden alle Gesprächseigenschaften bereits mit dem Q391: Setup call vereinbart. Das heißt "TerminalCapabilities", Ports, "MasterSlaveDetermination" und Codecs werden nur noch mit einem einzigen Befehl festgelegt. Die Vorraussetzung ist aber dass die Eigenschaften und Möglichkeiten der Gegenseite genauestens bekannt sind und mit der Anruferseite übereinstimmen, sonst kann kein Gespräch aufgebaut werden. Diese Form des Verbindungsaufbaus ist daher sehr kritisch und eignet sich nicht für den allgemeinen Gebrauch. Wenn jedoch z.B. nur innerhalb eines bestimmten Netzwerkes, wo überall die gleichen Vorraussetzungen herrschen, telefoniert wird, kann der Schnellstart eingesetzt werden.

3.2.3. Paketkapselung - H.245 Tunneling

Wird anstelle des H.245 das H.225 - Protokoll für den Rufaufbau verwendet, können mehrere H.245 - Meldungen in ein H.225 - Paket  gepackt werden. Auf die Weise werden weniger Pakete insgesamt geschickt, wodurch der Netzwerktraffic geringer wird, weil z.B. weniger Header gesendet werden müssen. Der Rufaufbau wird dadurch beschleunigt.

 

3.3. weitere VoIP - relevante Protokolle

3.3.1. H.450

Bisher war es mit dem traditionellen H.323 - Protokoll nur möglich Anrufe zu starten und zu beenden. Telefonmerkmale, wie Anklopfen, Weiterleitung oder Rufumleitung waren nicht möglich. Die Firma Siemens hat deshalb einen Aufsatz auf das H.323 - Protokoll entwickelt, was diese Eigenschaften ermöglicht. Auf diese Weise können auch VoIP - Geräte verschiedener Hersteller ISDN - Merkmale bei ihrer Kommunikation zur Verfügung stellen. Bisher gab es dazu nur proprietäre Tunneling - Lösungen, die nicht untereinander kompatibel waren.

Wichtige Teile des H.450 - Standard sind:

H.450.1

Supplementary Service Network

Dienstmerkmale des Netzwerkes

H.450.2

Call Transfer

Ruf - Weiterleitung

H.450.3

Call Diversion

Ruf - Umleitung

H.450.4

Call Hold

Warteschleife

H.450.6

Call Waiting

Anklopfen

H.450.8

Name Identification (Caller ID)

Rufnummernerkennung

3.3.2. Realtime Transport - Protokoll (RTP)

Das Realtime Transport - Protokoll wird zum Übertagen der Sprachdaten in Echtzeit benötigt. Dabei werden standardmäßig mit einem Paket 20 Millisekunden Sprache  übermittelt. RTP - Pakete beinhalten jeweils einen Zeitstempel, Synchronisationsinformationen und die Nutzlastinformationen (Payload).

Zur Sicherung der Qualität der Datenübertragung ist das RetalTime Control Protokoll (RTCP) zuständig. Das RTCP dient der Überwachung der Datenanlieferung und deren Qualität. Dabei beinhaltet das Protokoll auch die Transport-Level Identifikation der RTP - Quelle und kann auch optional Teilnehmerinformationen übertragen.

Beide Protokolle werden per UDP (Universal Data Protokoll) versendet, wobei RTP jeweils eine gerade Portnummer anspricht und RTCP eine ungerade.

>>> Inhaltsverzeichnis