====== Voice over IP (VoIP) ====== Unter [[wpde>Internet-Telefonie]] bzw. IP-Telefonie (Internet-Protokoll-Telefonie; auch Voice over IP (VoIP) versteht man das Telefonieren über Computernetzwerke, die nach Internet-Standards aufgebaut sind. Dabei werden für Telefonie typische Informationen, d. h. Sprache und Steuerinformationen für z. B. den Verbindungsaufbau, über ein auch für Datenübertragung nutzbares Netz übertragen. Bei den Gesprächsteilnehmern können sowohl Computer, für IP-Telefonie spezialisierte Telefonendgeräte, als auch über spezielle Adapter angeschlossene, klassische Telefone die Verbindung ins Telefonnetz herstellen. * [[VoIP und Faxen]] * [[Server:STUN|STUN-Server aufsetzen]] * [[Sipgate team]] ===== Unterschiede zum Telefonieren übers Festnetz ===== Augenscheinlichster Unterschied ist der Wechsel von exklusiv geschalteten Verbindungen des alten geschlossenen Telefonnetzes in ein öffentliches (und feindliches/unsicheres) Netz mit Schwankendem Verkehrsaufkommen. Daraus ergeben sich viele Vor- und Nachteile. ==== Vorteile ==== * Ortsunabhängig * kostengünstig * flexibel, man ist weltweit erreichbar * viele intelligente Funktionen integrierbar *Telefonieren/Erreichbarkeit über PC/Laptop *ggf. erhöhte Sicherheit und Zusatzleistungen wie Fax, SMS ansonsten kann man immer ja noch beim Marketing anhören was noch gut ist :-) ==== Nachteile ==== * **Sicherheit**: Im SIP-Standard ist an sich erstmal keine Verschlüsselung vorgesehen. D.h. jede Zwischenstation kann das Gespräch mithören. Das ist besonders unterwegs, z.B. an öffentlichen ([[linux:Wlan]]-) Hot-spots ein Problem, zu Hause beim gleichen Provider für DSL und VoIP ist das weniger kritisch, zumindest bei entsprechender [[linux:Wlan]]-Absicherung (WPA/WPA2, nicht WEP!). * **neue Angriffsarten auf Telefonie**: Wie hier im Vortrag ([[http://www.youtube.com/watch?v=UA1quyLOTdg|"VoIP Security Threats"]]) z.B. DoS, SPIT, Gespräche abbrechen, Telefone abmelden, Gespräche aufzeichnen. * Firewalls können zu lange (für die zeitkritische Telefonie) bei der Inspektion brauchen, Voice-Proxies können dabei die Lösung sein. siehe auch: [[http://www.all-about-security.de/artikel+M55594ac194a.html|Sichere Nutzung von VoIP]] * Ausnutzen von Sicherheitslücken in Implementationen von Telefonen und VoIP-Software durch Exploits * Kapern von Benutzerdaten und Anrufen ("Registration- bzw. Call-Highjacking"): Dabei wird die IP-Adresse eines IP-Telefons auf eine IP-Adresse des Hackers umgeleitet/umkonfiguriert. * **SPIT** ("Spam over Internet Telephony"): Die Gefahr von SPAM in Form von Werbeanrufen ist nicht zu unterschätzen. Ähnlich der eMail ist SPIT kostengünstig zu realisieren und wird derzeit noch durch die Verwendung von SIP-Proxies umgangen: Eine Signalisierung von andere Rechner über SIP wird als Spam behandelt. * **Verfügbarkeit**: Da die Telefonie Bandbreitenschwankungen unterliegt (wie andere Netzverkehr auch) müssen beteiligte Router die zeitkritischen Sprachdaten priorisieren (traffic-shaping). * **hohe Anforderungen an das IP-Netz**, eine Störung der Internetverbindung heißt eben auch, dass kein Kunde mehr anrufen kann. * **Sprachqualität** hängt vom verwendeten Codec ab, gerade bei konkurrierenden Uploads an langsamen DSL-Anschlüssen könnten Qualitätseinbußen stören. * [[wpde>Jitter]]: Genauigkeits- bzw. Laufzeitschwankungen bei der Übertragung von Datensignalen. Da Datenpakete auch andere Wege zum Ziel nehmen können (je nach aktueller Belastung und anderen Faktoren) kann man nie ganz genau sagen, wie viel Zeit die Übertragung beansprucht. Deshalb werden Datenpakete zwischengespeichert („gepuffert“), überlicherweise im Bereich von 40-60 ms. * Paketverluste: Durch die Übertragung mit UDP können Paketverluste auftreten die allerdings erst in größerer Menge, bei sehr schlechten Internet-Verbindungen, ein Problem werden. * **Notrufe** werden oft nicht garantiert bzw. [[http://www.tecchannel.de/kommunikation/news/1737114/index.html|landen prinzipbedingt nicht bei der (örtlich) zuständigen Leitstelle]]. * Mehrwertdienste meist nicht in vollem Maße möglich ===== Konfiguration ===== Anhand des Providers carpo.de wird hier die Konfiguration eines VoIP-(Soft-)-Phones erklärt. * **Benutzername und Passwort** sind richtig einzutragen * Bei VoIP-Verbindungen treten oft Probleme mit [[netzwerke:NAT (Network Address Translation)|NATs]] auf. Um diese zu umgehen setzen viele SIP-Provider das Protokoll **[[wpde>STUN]]** (Simple traversal of UDP over [[netzwerke:NAT (Network Address Translation)|NATs]]STUN ein. Durch einfaches Weiterleiten von UDP-Paketen über [[netzwerke:NAT (Network Address Translation)|NAT]]) kann der Client die vom [[netzwerke:NAT (Network Address Translation)|NAT]] vergebene IP- und Portnummer ermitteln. Beispiel: stun.sipgate.net auf Port 10000. * **Registrar**: Das ist der Server des Anbieters der die Endgeräte verwaltet, also welche IP man aktuell hat usw. Auf Wunsch kann ein Registrar anderen Nutzern mitteilen, ob man gerade erreichbar ist. Durch die Anmeldung an einem Registrar ist man an jedem Ort unter der gleichen SIP-Adresse erreichbar. Anrufe erfolgen auf sip:@. * **Internet Realm**: steht für die Domain der SIP-Adresse (URI) beispielweise ''@carpo.de'' ===== Verschlüsselung bei VoIP ===== Zwar gibt es die Möglichkeit Verschlüsselung einzusetzen, dennoch wird diese Möglichkeit von vielen Anbietern aus Kostengründen nicht unterstützt. Zusätzlich sollte der Datenkanal mit [[wpde>Secure Real-Time Transport Protocol|SRTP (Secure Real-Time Transport Protocol)]] abgesichert sein. * TLS ermöglicht eine hop-by-hop Verschlüsselung von SIP (nicht RTP). * SIPS ermöglicht eine end-to-end Verschlüsselung von SIP (nicht RTP). Der Verbindungspfad bleibt nach aussen sichtbar. Interessant für Authentifizierung und MIKEY (siehe unten). * SRTP ermöglicht eine end-to-end Verschlüsseung von RTP. Es wird mit symetrischen, statischen Keys gearbeitet. * MIKEY ermöglicht dynamische Keys mit SRTP. Falls der aktuelle Anbieter keine der Möglichkeiten unterstützt, kann man derzeit nur - einen Anbieterwechsel zu einem Anbieter mit TLS/ZRTP-abgesicherten Verbindungen vornehmen - eine (Teil-)Absicherung durch VPN in ein bekanntes Netz durchführen und von da aus unverschlüsselt weitersenden - mit proprietären Lösungen (Zu Skype siehe unten) arbeiten - oder zusätzlich aufgesetzter Sicherheit, z.B. mit [[wpde>ZRTP]] arbeiten. ===== Links ===== ==== allgemeine Links ==== * [[http://www.p2501.ch/arbeiten/sip.html|VoIP mit SIP]] * [[http://www.ip-phone-forum.de/index.php|IP-Phone-Forum]] + [[http://wiki.ip-phone-forum.de/|IP-Phone Wiki]] * [[software:instant messaging#Jabber]] bzw. [[http://www.ulm.ccc.de/old/chaos-seminar/jabber/presentation/text33.html|Idee für die Zukunft: SIP durch Jabber ersetzten (Sip/Simple)]] * [[http://www.voip-info.org/wiki/|VoIP-Wiki]] * [[http://teltarif.de/i/voip.html|VoIP - Telefonieren über Datennetze]] * [[http://www.easylinux.de/Artikel/ausgabe/2006/06/026-skype/|Skype und Alternativen - Stimmen aus dem Netz]] * [[http://www.elektronik-kompendium.de/sites/net/0503131.htm|VoIP - Voice over IP]] * [[http://www.itmanagersjournal.com/feature/5497| Your glossary to the VOIP alphabet soup]] * [[http://www.teltarif.de/arch/2006/kw48/s24001.html|VoIP-Verschlüsselung kommt kaum zum Einsatz]] * [[http://www.teltarif.de/arch/2006/kw48/s23997.html|Gizmo-VoIP-Software nutzt WLAN-Netze (Nokia N80 ist nun VoIP-kompatibel)]] * [[http://www.ip-phone-forum.de/|Forum zum Thema "Voice over IP"]] ==== VoIP Sicherheit / Datenschutz ==== * [[http://events.ccc.de/congress/2006/Fahrplan/events/1459.en.html|23c3 Vortrag: SIP Security]] * [[http://www.bsi.bund.de/literat/studien/VoIP/index.htm|BSI-Studie VoIPSEC - Studie zur Sicherheit von Voice over Internet Protocol]] * [[http://www.networkcomputing.de/nwc/sicherheit/artikel/archive/207/browse/2/article/voip-sicherheit/|VoIP-Sicherheit]] * [[http://www.heise.de/newsticker/meldung/70677|Datenschutz und VoIp]] * [[http://www.heise.de/newsticker/meldung/62196/|Tools zum knacken von VoIP (Artikel: Phil Zimmermann will VoIP sicher machen)]] * [[http://www.theregister.com/2006/11/29/voip_hack_calls/|VoIP - open season for hackers]] * [[http://linux-voip.net/Testing/|VoIP Testing]] * [[http://portal.gmx.net/de/themen/digitale-welt/internet/sicherheit/3284600-Nur-verschluesselte-Internettelefonie-ist-sicher.html|Nur verschlüsselte Internettelefonie ist sicher]] * [[http://www.heise.de/newsticker/meldung/86658|Sicheres VOIP-Telefon]] * [[http://www.securityfocus.com/infocus/1892|VoIP Hopping: A Method of Testing VoIP security or Voice VLANs]] ==== Bücher === * [[http://bookzilla.de/shop/action/productDetails?aUrl=90006951&artiId=6276533|VoIP Security: Konzepte und Lösungen für sichere VoIP - Kommunikation]] ===== VoIP-Software (Softphones) ===== * **[[http://wiki.ip-phone-forum.de/software:start|ausführliche Liste von Softphones]]** * [[http://www.tecchannel.de/telko/sprache/431418/|VoIP-Analyse mit Windows- und Linux-Bordmitteln]] * [[http://www.linux-magazin.de/Artikel/ausgabe/2004/08/softphones/softphones.html|Wähl mal virtuell]] * Skype (s.u.) * OpenWengo: [[wpde>OpenWengo]] ist im Gegensatz zu Skype eine freie Software unter der GPL. Es ist für Linux, Windows und Mac erhältlich, sogar als [[Software:Firefox]]-Plugin. Siehe [[http://www.openwengo.org/|OpenWengo Homepage]] * X-Lite: X-Lite ist für Linux, Windows und Mac erhältlich, [[http://www.xten.net/index.php?menu=download|X-lite Download]]. * Starface (kommerziell), es gibt eine Home Edition mot max. 4 Benutzer und max. 2 ausgehenden Anrufen auf der [[http://starface.de/home/|Starface Homepage]]. ==== Unterschiede SIP vs. Skype ==== [[wpde>Skype]] ist eine kostenlose aber proprietäre Software (man weiß also nicht wirklich was da alles so drin ist, da Skype-Software auch sehr große Anstrengungen unternimmt den Code geheim zu halten). Auch das Kommunikationsprotokoll ist proprietär, demzufolge ist eine eine Kommunikation mit anderen standardkonformen Clients nach dem [[wpde>Session_Initiation_Protocol|SIP-Standard]] nicht möglich. Durch proprietäre Lösungen, also vorrangig Skype, ist man aber auf diese Software als VoIP-Gegenstelle beschränkt (es sei denn man lässt das Gespräch über das Festnetz laufen) und kann Skype arbeitet immerhin mit starker Verschlüsselung (Offiziell mit 256Bit bzw. 1024Bit RSA beim Aushandeln des Schlüssels), nachprüfen kann man dies natürlich nicht, der Dienst ist etabliert, zudem kommt Skype an so ziemlich jeder [[Security:Firewall]] vorbei. Leider sind aber auch Störungen und Qualitätsmängel im Skype-Netz nicht allzu selten. ^ SIP ^ Skype ^ |offener Standard| proprietär | |beliebige Clients; freie Software verfügbar |nur Skype-eigener Client; fragwürdige Lizenz | |Computer nicht erforderlich | Computer erforderlich | |[[netzwerke:NAT (Network Address Translation)|NAT]]-Umgehung muss konfiguriert werden | fragwürdige Technik für [[netzwerke:NAT (Network Address Translation)|NAT]]-Umgehung | |Verschlüsselung optional |Verschlüsselung automatisch | |kein globales Benutzerverzeichnis | globales Benutzerverzeichnis | | kostenlose Gespräche zu vielen SIP-Anbietern, es muss ein | kostenlose Gespräche nur zu anderen Skype-Nutzern| * [[http://www.skype.com/intl/de/|Skype Homepage]] ===== VoIP-Serversoftware ===== ==== Softwarevermittlungsanlagen ==== Bekannte Softwarevermittlungsanlagen sind * [[software:asterisk]], für andere Hardware als die von Digium: Ableger [[http://www.callweaver.org/blog|callweaver]], siehe auch [[http://www.voip-info.org/wiki/view/CallWeaver|bei voip-info]] * [[software:sipX]]. * Auch [[http://isdn.jolly.de/|PBX4Linux]] könnte interessieren. ==== SIP-Proxies ==== * **[[software:asterisk]]** (SIP-fähige Hauszentralensoftware, eierlegende Wollmilchsau, Kann verschiedene VoIP-Protokolle vermitteln (auch untereinander), hohe Verbreitung, daher auch guter Support, komplexe Situationen sind teils mühsam zu konfigurieren) * **[[wpde>OpenSer]]** (Mächtiger, gut skalierender Allzweck-SIP-Proxy; Konfiguration sehr low-level (eher eine high-level Programmiersprache), gute SIP-Kentnisse für eine saubere Konfiguration von Hand erforderlich, eine gewisse Frustresistenz ist beim erstmaligen Einrichten von Nutzen, RTP-Proxy, Voicemail, Gateway etc. über Zusatzprogramme) * [[wpde>SIP Express Router]] * **[[http://www.nongnu.org/partysip/|PartySIP]]** (einfacher SIP-Proxy mit Registrar; zum Aufbau kleiner, privater SIP-Netze geeignet, nicht [[netzwerke:NAT (Network Address Translation)|NAT]]-fähig, Portforwarding automatisch mittels "iptables" (ähnlich UPnP) * **[[http://siproxd.sourceforge.net/|Siproxd]]** (Einfacher SIP/RTP-Proxy mit Registrar, Zum Aufbau kleiner, privater SIP-Netze geeignet, als interner (nicht externer!) SIP/RTP-Proxy zur Überwindung eines [[netzwerke:NAT (Network Address Translation)|NAT]] geeignet, als transparenter Proxy konfigurierbar) ===== VoIP-Diensteanbieter ===== * **[[http://wiki.ip-phone-forum.de/anbieter:start|ausführliche Liste des IP-Phone-Forums]]** * [[wpde>SIP-Telefon]] enthält auch eine Liste von Anbietern * [[http://voip-info.de/service/anbieterdatenbank/index.php|Die VoIP-Anbieterdatenbank]] * [[http://voipphones.de/index.php?content=101|VoIP-Anbieter & Tarife]] ===== technische Funktionsweise ===== Bei Voice-over-Internet-Protocol (VoIP) wird Sprache über IP-Datenpakete abgewickelt. Die Verbindungen werden über ein [[wpde>IP-Telefonie#Signalisierungsprotokolle|Signalisierungsprotokoll]] (meist SIP, andere wie [[wpde>H.323]] oder [[wpde>IAX]] möglich) und anschließend über den Audiocodec (RTP) realisiert. SIP ist das "Session Initiation Protocol". Die eigentliche Sprachverbindung erfolgt über Streams mittels RTP, dem "Realtime Transport Protocol". Es ist für den Aufbau, Abbau und die Steuerung von Verbindungen zuständig. ==== SIP ==== [[wpde>Session Initiation Protocol|SIP (Session Initiation Protocol)]] ist ein einfaches Netzprotokoll (durch [[http://tools.ietf.org/html/rfc3261|RFC 3261]] beschrieben) zum Aufbau, zur Steuerung und zum Abbau einer Kommunikationssitzung zwischen zwei und mehr Teilnehmern. Es wurde von der [[wpde>Internet Engineering Task Force (IETF)]] entwickelt und ist dadurch nicht an einen bestimmten Hersteller gebunden. Diese herstellerunabhängige Standardisierung ermöglicht den Einsatz von SIP-basierten Systemen in heterogenen Umfeldern, insbesondere auch in der Kopplung von VoIP-Komponenten unterschiedlicher Hersteller. Grundsätzlich eignet sich SIP allerdings auch für Einsatzszenarien außerhalb von VoIP. * Es folgt einem Schema ähnlich zu [[netzwerke:HTTP]], auch die [[http://wiki.ip-phone-forum.de/infrastruktur:voip:sip:codes|SIP-Statuscodes]] und Fehlermeldungen folgen diesem Schema. * Normalerweise benutzt SIP die Ports 5060 (TCP/UDP) bzw. 5061 (TCP/UDP; bei TLS-Verschlüsselung: SIPS) * SIP kann über IPv4 oder [[netzwerke:IPv6]] und [[netzwerke:protokolle#Unterschiede zwischen TCP und UDP|TCP oder UDP]] benutzen. Die verbreiteten Implementierungen nutzen IPv4 and UDP. * SIP kann auch Videoverbindungen und [[software:Instant messaging]]-Dienste vermitteln. * **SIP Trunking**: SIP Trunking nennt man die Verbindung einer TK-Anlage über VoIP mit dem Festnetz (PSTN). Dabei soll sich der Anschluss hinsichtlich Möglichkeiten und Leistungsmerkmale nach außen wie ein herkömmlicher Telefonanschluss verhalten. === Funktionen von SIP === ^ Funktion ^ Beschreibung ^ | **Lokalisierung und Registrierung des Benutzers** | Endpunkten (bzw. Endgeräte wie Telefone) benachrichtigen des SIP-Proxy über ihren Standort; SIP bestimmt welche Endpunkte in einem Anruf beteiligt sind. | | **Erreichbarkeit des Benutzers** | SIP wird von den Endgeräten benutzt um zu bestimmen ob abgenommen wird. | | **Fähigkeiten des Endgerätes** | SIP wird zur Bestimmung der Fähigkeiten, d.h. welche Codecs (s.u.) ein Gerät unterstützt. Dabei kann nur die Schnittmenge der Codecs benutzt werden. | | **Sitzungsaufbau** | SIP signalisiert dem Endgerät wann es "läuten" soll, also ein Anruf erfolgt. Es wird auch für die Aushandlung der Sitzungsattribute (z.B. verwendete Codecs) verwendet. | | **Sitzungsverwaltung** | SIP wird für die Übertragung und Beendigung von Anrufen und die für die Änderung von Gesprächsparametern während der Sitzung (z.B. bei einer dreier Konferenz) benutzt. | [[http://www.sipcenter.com/sip.nsf/html/What+Is+SIP+Introduction|WHAT IS SIP: INTRODUCTION]] === Verbindungsaufbau === FIXME {{computer:sip_signaling.png?200|Schema: SIP Signalisierungs; Lizenz: Public Domain}} ==== VoIP "Telefonnummern" ==== Auch VoIP benötigt Teilnehmerkennungen, die für die Adressierung einer Gegenstelle, die man anrufen möchte, verwendet werden können. Das SIP-Protokoll verwendet URIs (Uniform Resource Identifiers), die eine Nutzerkennung und eine Domain enthalten. SIP-URIs sind ähnlich aufgebaut wie und in vielen Fällen gleichnamig mit E-Mail-Adressen im Internet. Beispiele: * sip:62200222@sipgate.de * sip:Benutzername@EigeneDomain.tld * sip:julia.mustermann@uni-stuttgart.de * sip:nana@192.168.0.28 * sip:gandalf@10.0.0.2:5070 * sip:10.0.0.30 Ein SIP-Client (z.B. ein IP-Telefon oder ein VoIP-Gateway) verwendet diese URIs, um einen Server zu identifizieren, über den der genannte User erreicht werden kann. Erhält der SIP-Client diese Informationen, so kann ein Anruf an die Gegenstelle erfolgen. Parallel dazu werden auch gewöhnliche Telefonnummern verwendet, die über [[http://wiki.ip-phone-forum.de/telefonie:enum:start|ENUM]] auf SIP-URIs abgebildet werden können. Erfolgt also ein Anruf von einem VoIP- und ENUM-fähigen Telefon, so kann dieser direkt und kostenfrei durchgeführt werden. Erfolgt der Anruf über Festnetz, so muß ein Provider diesen auf der jeweiligen Festnetznummer entgegennehmen und als SIP-Anruf weiterleiten. Die Technik hierzu ist in einem separaten [[http://wiki.ip-phone-forum.de/internet:dns:naptr|Artikel über ENUM-Einträge]] dargestellt. Analog werden so auch Anrufe, die per VoIP getätigt werden, jedoch als Gegenstelle eine klassische Festnetznummer haben, von einem Provider weitergeleitet. Diese Weiterleitung wird auch als "Termination Service" bezeichnet. | ^ an Festnetznummer ^ an VoIP (SIP-URI) ^ ^ von Festnetznummer | kostenpflichtig \\ über das Festnetz | kostenpflichtig \\ über einen VoIP-Provider | ^ von VoIP (SIP-URI) | kostenpflichtig \\ über einen VoIP-Provider | kostenfrei und direkt \\ über das Internet | Das Schöne daran ist, daß Anrufe von SIP-URI zu SIP-URI über das Internet für beide Parteien kostenlos sind. === SIP URIs im Detail === SIP URIs verwenden eine URI-Syntax, die eine Reihe optionaler Parameter erlaubt: proto:[user[:password]@]host[:port][;params][?headers] * proto: Das zu verwendende Protokoll sip oder sips. SIPS verwendet Verschlüsselung im Gegensatz zu SIP. * user: Eine eindeutige Identifikation des Angerufenen auf dem Zielsystem. Sofern das Zielsystem keine Nutzer unterscheidet, kann die Angabe auch entfallen. Ein Passwort kann in diesem Fall nicht mit angegeben werden. * password: Ein Passwort wird i.a. nicht angegeben, sondern über die Authentifikation im SIP-Protokoll selbst ausgetauscht. Im Falle von SIP (unverschlüsselt) wäre die Übermittlung von Passworten auf diesem Wege höchst unsicher. * host: Eine IP-Adresse oder ein Domainname, der eine Domain oder ein Zielsystem identifiziert. Die Bestimmung des tatsächlichen SIP-Servers, der durch die URI referenziert wird, erfolgt ggf. anhand von DNS-Lookups von [[http://wiki.ip-phone-forum.de/internet:dns:srv|SRV-Records]]. * port: Eine Portnummer, an die die Anfrage zu senden ist. Ist ein Port angegeben, so wird gewöhnlich kein SRV-Lookup durchgeführt und im "host" Feld wird der Name eines Zielsystems erwartet. * params: Weitere SIP-Paramter können direkt in der URI spezifiziert werden. Dies ist jedoch unüblich und erfolgt i.a. in den SIP-Paketen selbst. * headers: Weitere SIP-Header können direkt in der URI spezifiziert werden. Dies ist jedoch unüblich und erfolgt i.a. in den SIP-Paketen selbst. ==== RTP ==== Das [[wpde>Real-Time Transport Protocol]] (RTP) ist ein Protokoll zur kontinuierlichen Übertragung von audiovisuellen Daten (Streams) über IP-basierte Netzwerke. Das Protokoll wurde erstmals 1996 im [[http://tools.ietf.org/html/rfc1889|RFC 1889]] standardisiert. 2003 wurde ein überarbeiteter RFC veröffentlicht. Der [[http://tools.ietf.org/html/rfc3550|RFC 3550]] löst damit den [[http://tools.ietf.org/html/rfc1889|RFC 1889]] ab. Es dient dazu, Multimedia-Datenströme (Audio, Video, Text, etc.) über Netzwerke zu transportieren, d.h. die Daten zu kodieren, zu paketieren und zu versenden. RTP ist ein Paket-basiertes Protokoll und wird normalerweise über UDP betrieben. RTP kann sowohl für Unicast-Verbindungen als auch für Multicast-Kommunikation im Internet eingesetzt werden. Das RealTime Control Protocol arbeitet mit RTP zusammen und dient der Aushandlung und Einhaltung von [[wpde>Quality of Service|Quality of Service (QoS)]] Parametern. ==== Codecs und Bandbreitenanforderungen ==== Sprachsignale werden für VoIP aus der analogen Signalform digital codiert, übertragen und von der Gegenstelle decodiert. Die hierzu verwendeten Codecs bestimmen einerseits das Format der Codierung von Sprachdaten in den übertragenen RTP-Paketen, andererseits ergibt sich dadurch auch die erforderliche Bandbreite. Gibt es keine gemeinsame Schnittmenge von Codecs bei zwei Endgeräten, die eine Verbindung aufbauen möchten, so ist eine Kommunikation nicht möglich. Eine aktuelle [[http://www.iana.org/assignments/rtp-parameters|Liste aller offiziell registrierten Codecs]] findet sich bei IANA. Einzelne Provider oder spezifische Endgeräte können abweichend davon bzw. in Ergänzung auch weitere Codecs anbieten. Welche Provider welche Codecs unterstützen, ist in der Liste "[[http://wiki.ip-phone-forum.de/voip:codecs:provider|Codecunterstützung durch VoIP-Provider]]" des [[http://wiki.ip-phone-forum.de/|IP-Phone Wikis]] aufgeführt. Die gebräuchlichsten Codecs sind die folgenden: ^ Codec ^ Sample \\ [bits] ^ Sample \\ [ms] ^ Bitrate \\ [kbit/s] ^ Samples \\ je Paket ^ Pakete/s ^ Bandbreite \\ [kbit/s] ^ Gespräche \\ 128/256 ^ ^ G.722 | 640 | 10 | 64,0 | 2 | 50,0 | 87,2 | 1/2 | ^ G.711((kennt man von ISDN)) | 640 | 10 | 64,0 | 2 | 50,0 | 87,2 | 1/2 | ^ G.729 | 80 | 10 | 8,0 | 2 | 50,0 | 31,2 | 4/8 | ^ G.723 | 192 | 30 | 6,4 | 1 | 33,3 | 21,9 | 5/11 | ^ G.723 | 160 | 30 | 5,3 | 1 | 33,3 | 20,8 | 6/12 | ^ G.726 ((Variable Bitrate, kennt man von DECT)) | 200 | 5 | 40,0 | 4 | 50,0 | 63,2 | 2/4 | ^ G.726 | 160 | 5 | 32,0 | 4 | 50,0 | 55,2 | 2/4 | ^ G.726 | 120 | 5 | 24,0 | 4 | 50,0 | 47,2 | 2/5 | ^ G.726 | 80 | 5 | 16,0 | 6 | 33,3 | 31,5 | 4/8 | ^ [[wpde>G.729]] | ? | ? | ? | ? | ? | ? | ? | ^ GSM | 264 | 20 | 13,2 | 1 | 50,0 | 36,4 | 3/7 | ^ iLBC | 400 | 30 | 13,3 | 1 | 33,3 | 28,8 | 4/8 | ^ iLBC | 304 | 20 | 15,2 | 1 | 50,0 | 38,4 | 3/6 | Dabei wurde für die Bandbreitenberechnung ein Ethernet-Overhead von 58 Bytes berücksichtigt (18 Bytes Ethernet Header, 20 Bytes IP-Header, 8 Bytes UDP-Header, 12 Bytes RTP-Header). PCMA bzw. PCMU entsprechen den Angaben von G.711. **G.722** entspricht in den Bandbreitenanforderungen G.711, verwendet jedoch eine andere Codierung. Bei G.711 wird mit 8 kHZ (8 Bit) abgetastet, während G.722 16 kHz (7 Bit) verwendet. Dadurch ist die Samplequalität höher und der Codec erreicht eine gering bessere Qualität als G.711. Für Fax over IP (T.38 = T.30 over IP) werden ca. 14,4 kbit/s Payload übertragen. Die letzte Spalte gibt an, wie viele parallele Gespräche über eine Leitung mit Bandbreite von 128 bzw. 256 kbit/s Upstream geführt werden können. Dies setzt natürlich voraus, daß diese Bandbreite tatsächlich zur Verfügung steht. Quelle: [[http://wiki.ip-phone-forum.de/|IP-Phone Wiki]] gehört zum [[http://www.ip-phone-forum.de/index.php|IP-Phone-Forum]]. ==== VoIP und NAT ==== Aufgrund der IP-Adressenknappheit von IPv4 stecken viele Internetnutzer hinter [[netzwerke:NAT (Network Address Translation)|NATs]]. D.h. Rechner stecken hinter Firewalls und Routern die die privaten IP-Adressen in öffentliche umsetzten. * Problem 1: Ein SIP-Client hinter einem [[netzwerke:NAT (Network Address Translation)|NAT]] kann keine SIP-Verbindungen empfangen. Lösung: SIP-Proxy. * Problem 2: Ein SIP-Client hinter einem [[netzwerke:NAT (Network Address Translation)|NAT]] kann keine RTP-Verbindungen empfangen. Für Problem 2 gibt es mehrere Lösungen mit verschiedenen Vor- und Nachteilen. ^ [[netzwerke:NAT (Network Address Translation)|NAT]]-Lösungen ^^^ ^ Lösung ^ Vorteile ^ Nachteile ^ | Client ausserhalb des [[netzwerke:NAT (Network Address Translation)|NAT]] platzieren | kein SIP-Proxy nötig | Client braucht eine öffentliche IP-Adresse, wenig flexibel| | Router mit eingebautem SIP-Client | kein SIP-Proxy nötig | wenig flexibel | | SIP-fähiger Router / Interner SIP/RTP-Proxy: Der Router/Proxy korrigiert die SIP-Packete, und leitet die RTP-Packete weiter. | minimaler Aufwand auf Clientseite|Router/Proxy mit zu schwacher CPU kann den Durchsatz beeinträchtigen| | Externer SIP/RTP-Proxy: Der Proxy korrigiert die SIP-Packete, und leitet die RTP-Packete über sich selbst zum jeweiligen Gesprächspartner. | minimaler Aufwand auf Clientseite |Bandbreitenkosten des Proxy | | STUN: Mittels STUN kann der Client die vom [[netzwerke:NAT (Network Address Translation)|NAT]] vergebene IP- und Portnummer ermitteln. | minimaler Aufwand auf Clientseite|funktioniert nicht bei [[netzwerke:NAT (Network Address Translation)|NATs]], die für jede Verbindung neue Portnummern vergeben (vor allem "grosse" Router). Siehe auch [[Server:STUN|STUN-Server aufsetzen]]. | | UPnP: Mittels UPnP kann der Client ein Portforwarding auf dem [[netzwerke:NAT (Network Address Translation)|NAT]] einrichten.|hohe Zuverlässigkeit|nur auf "kleinen" Routern verfügbar, nur wenige UPnP-fähige Clients, Sicherheitsbedenken| |TURN: Variante des SIP/RTP-Proxys, die vom Client explizit gesteuert werden kann.|hohe Zuverlässigkeit, sauberer und flexibler als normale SIP/RTP-Proxys| Bandbreitenkosten des TURN-Servers, nur wenige TURN-fähige Clients| ===== ENUM - Telephone Number Mapping ===== [[wpde>Telephone Number Mapping|tElephone NUmber Mapping (ENUM)]] ist eine Anwendung des [[wpde>Domain Name System|Domain Name Systems]] zur Übersetzung von Telefonnummern in Internet-Adressen. ENUM wird im [[http://tools.ietf.org/html/rfc3761|RFC 3761]] definiert. Der Bedarf für eine solche Lösung erwuchs aus der Verfügbarkeit von VoIP-Diensten und dem Bedarf des Anwenders, sowohl im Internet als auch im klassischen Telefonnetz unter der selben Nummer erreichbar zu sein. * [[wpde>Telephone Number Mapping|Quelle]] * [[http://www.elektronik-kompendium.de/sites/net/0904191.htm|ENUM-Verzeichnisse]]