+++ title = 'IP-Telephonie' date = 2024-02-08T21:40:13+01:00 draft = true +++ {{< style_regular >}} {{< toc >}} # 0 Handlunsnotwendige Kenntnisse **1.1**: Kennt Kriterien (inkl. Quality of Service), welche bei der Dimensionierung eines IP-Telefoniesystems angewendet werden. **2.1**: Kennt technische Spezifikationen von Server- und Netzwerksystemen für IP-Telefonie. **2.2**: Kennt unterschiedliche VoIP-Konzepte und Modelle, deren Vor- und Nachteile. **2.3**: Kennt verwendete Protokolle (z.B. SIP- und RTP-Protokoll inkl. Codecs und Protokolle wie H.323, STUN, NAT, aLaw, uLaw). **2.4**: Kennt die wichtigsten Dienste der klassischen Telefonie (analog, ISDN) sowie deren Anbindung mittels Gateway. **2.5**: Kennt Möglichkeiten der Anbindung des IP-Telefoniesystems mittels IP an das Weitverkehrsnetz. **3.1**: Kennt spezifische Sicherheitsmassnahmen für ein IP-Telefonie-system. **3.2**: Kennt Massnahmen zur Sicherstellung der Verfügbarkeit von IP- Telefoniesystemen (z.B. Redundanz, USV). **4.1**: Kennt die Möglichkeit der Anbindung an bestehende ERP- und/oder Groupwaresysteme. **4.2**: Kennt die Möglichkeit der Anbindung mittels Gateway an die klassische Telefonie **4.3**: Kennt verschiedene Arten von VoIP-Clients und deren Vor- und Nachteile. **5.1**: Kennt grundlegende Telefoniefunktionaliäten (Call-Routing, Ringruf, Anrufbeantwortung, Weiterleitung, MOH, Blacklist usw.). **5.2** Kennt Möglichkeiten Dienste und Funktionen für Nummern/Benut¬zer zu definieren. **6.1**: Kennt ein Verfahren um das IP-Telefoniesystem nachvollziehbar zu testen. # 1 Anforderungen an das Telephoniesystem ## 1.1 Einleitung Qualität hängt von verschiedenen Faktoren ab: - Durchsatz (Datenmenge) - Echo (Verzögerung / Latenz) - Verbindungsaufbau - Verbindungsabbau ## 1.2 QoS in IP-Netzen QoS => Quality of Service Wird mit 4 Faktoren gemessen: - Latenz - Jitter - Packet Loss - Durchsatz Für IP-Telephonie am wichtigsten: - Latenz - Jitter ## 1.3 Realisierung in IP-Netzen Technische Möglichkeiten: - IntServ => Datenrate für Telephonie reservieren - DiffServ => Flags/Parameter verwenden, Router priorisiert Pakete => *DiffServ* wird verwendet, *IntServ* zu instabil # 2 Netzinfrastruktur vergleichen ## 2.1 Einleitung "Netzinfrastruktur": - Hardware - PCs - Laptops - Router - Switch - Hub - Firewall - etc. - Übertragungsmedien - Kupferkabel - DAC - RJ-45 - Lichtwellenleiter - Protokolle - TCP - IP - UDP - SIP - etc. ## 2.2 Technische Spezifikationen von Servern, Routern und IP-Telephonen - Mit Protokollen festgelegt - Wichtigster Faktor: Kompatibilität ## 2.3 VoIP-Konzepte ### 2.3.1 Vorteile - Gemeinstame Nutzung => günstig - Installation => einfach - Neue Möglichkeiten (Konferenzen, Streaming, etc.) ### 2.3.2 Nachteile - Bei Netzwerkausfall => alles tot - Grössere Angriffsfläche ## 2.4 Protokolle ![H.323 Protokollstapel](/png/330_ch-2.4_h323-stack.drawio.png) ### 2.4.1 SIP (Session Initiation Protocol) 3 Aufgaben: - Sitzungsaufbau - Sitzungssteuerung - Sitzungsabbau SIP-Adresse hat 3 Möglichkeiten: - Unverschlüsselte SIP-Verbindung: `sip:user@domain` - Verschlüsselte SIP-Verbindung: `sips:user@domain` - Normale Telephonnummer: `tel:nummer` ### 2.4.2 SIP-Requests (Anfragen) | Request | Bedeutung | |-----------|-------------------------------------------------------------------| | INVITE | Ruft an | | ACK | Bestätigt INVITE | | BYE | Beendet Sitzung | | CANCEL | Bricht INVITE ab | | REGISTER | Übermittelt Hostname und IP dem Server | | OPTIONS | Übermittelt unterstützte Funktionen des genutzten Telephons | | PRACK | Automatische Bestätigung von einem INVITE (bevor INVITE ankommnt) | | SUBSCRIBE | Meldet Ereignisse | | NOTIFY | Benachrichtigung bei Zustandsänderung | | PUBLISH | Übermittelt SUBSCRIBE und NOTIFY auf dem SIP-Server | | INFO | Steuer- und Kontrollinformationen | | REFER | Weiterleitung | | MESSAGE | Instant Messaging | | UPDATE | Ändert Status des Anrufs | #### 2.4.2.1 Beispiel eines Requests ``` INVITE sip:my@sip.server.com SIP/2.0 VIA:SIP/2.0/UDP 192.168.0.1 Call-ID:300f0gd090fgsa0f9da0gf0g@sip.server.com From: To: Name Call-ID:300f0gd090fgsa0f9da0gf0g@sip.server.com CSeq:1 INVITE ``` ### 2.4.3 SIP-Responses | Zahl | Kategorie | |-------|-------------------------------| | `1__` | Informationen | | `2__` | Erfolgsmeldungen | | `3__` | Weiterleitungen | | `4__` | Request-Fehlermeldungen | | `5__` | Server-Fehlermeldungen | | `6__` | Übergreifende Fehlermeldungen | | `7__` | Fehler im SIP-Protollstack | ### 2.4.4 Prinzip des Verbindungsaufbaus Anrufer => User Agent Client (UAC) Angerufener => User Agent Server (UAS) #### 2.4.4.1 Verbindungsaufbau bei einer direkten Verbingund zwischen Client und Server ![Verbindungsaufbau und Verbindungsabbau](/png/330_ch-2.4.4.1_sip-verbindung.drawio.png) ### 2.4.5 SIP-Trunking Ein Anschluss nach aussen (VoIP-Telephone können sich in Landline einwählen) => Funktoiniert ähnlich wie *NAT* #### 2.4.5.1 SIP-Status Informationen, welche Server an Client gibt (wie z.B. bei HTTP: `404_NOT_FOUND`) #### *2.4.5.1.1 Provisional* | Code | Nachricht | |------|-------------------------| | 100 | Trying | | 180 | Ringing | | 181 | Call is being forwarded | | 182 | Queued | | 183 | Session progress | | 199 | Early dialog terminated | #### *2.4.5.1.2 Successful* | Code | Nachricht | |------|-----------------| | 200 | Ok | | 202 | Accepted | | 204 | No Notification | #### *2.4.5.1.3 Redirection* | Code | Nachricht | |------|---------------------| | 300 | Multiple choices | | 301 | Moved permanently | | 302 | Moved temporarily | | 305 | Use proxy | | 380 | Alternative service | #### *2.4.5.1.4 Request Failures* | Code | Nachricht | |------|----------------------------------| | 400 | Bad request | | 401 | Unauthorized | | 402 | Payment required | | 403 | Forbidden | | 404 | Not found | | 405 | Method not allowed | | 406 | Not acceptable | | 407 | Proxy authentication required | | 408 | Request timeout | | 410 | Gone | | 412 | Conditional request failed | | 413 | Request entity too large | | 414 | Request URI too long | | 415 | Unsupported media type | | 416 | Unsupported URI scheme | | 417 | Unknown resource-priority | | 420 | Bad extension | | 421 | Extension required | | 422 | Session interval too small | | 423 | Interval too brief | | 428 | Use idendity header | | 429 | Provide referrer identity | | 430 | Flow failed | | 433 | Anonymity disallowed | | 436 | Bad indentity-info | | 437 | Unsupported certificate | | 438 | Invalid indentity header | | 439 | First hop lacks outbound support | | 440 | Max-breadth exceeded | | 469 | Bad info package | | 470 | Consent needed | | 480 | Temporarily unavailable | | 481 | Call/transaction does not exist | | 482 | Loop detested | | 483 | Too many hops | | 484 | Address incomplete | | 485 | Ambiguous | | 486 | Busy here | | 487 | Request terminated | | 488 | Not acceptable here | | 489 | Bad event | | 491 | Request pending | | 493 | Undecipherable | | 494 | Security agreement required | #### *2.4.5.1.5 Server Failures* | Code | Nachricht | |------|-----------------------| | 500 | Server internal error | | 501 | Not implemented | | 502 | Bad gateway | | 503 | Service unavailable | | 504 | Server timeout | | 505 | Version not supported | | 513 | Message too large | | 580 | Precondition failure | #### *2.4.5.1.6 Global Failures* | Code | Nachricht | |------|-------------------------| | 600 | Busy everywhere | | 603 | Declined | | 604 | Does not exist anywhere | | 606 | Not acceptable | #### *2.4.5.1.7 Fehlercode des SIP-Protokollstapels* | Code | Nachricht | |------|----------------| | 701 | Party hangs up | ### 2.4.6 RTP (Real-Time Protocol) - Kontinuierlicher Datenstrom (Audio/Video) - Normalerweise via UDP übertragen ### 2.4.7 STUN (Session Traversal Utilities for NAT) - Erkennt und durchquert Firewalls und NAT-Router - Oftmals im Voicechat in Games verwendet ### 2.4.8 aLaw, uLaw Verfahren - Beide ähnlich, aber nicht kompatibel - Analoge Audioverarbeitung - aLaw => Europa - uLaw => USA / Japan => Konvertierung notwendig für EUR <-> JPN / USA ### 2.4.9 Codecs (Codieren, Decodieren) Möglichst effiziente Komprimierung ## 2.5 Netzwerk-Elemente ### 2.5.1 User Agent Schnitstelle zum Benutzer (Hardware-Telephon oder App) ### 2.5.2 Proxy Server Mach Routing ### 2.5.3 Registrar Server Zentrale Schalstelle für SIP (IP-Adresse <-> SIP-Accounts) ### 2.5.4 Redirect Server Regelt Redirects (entlastet Proxy) ### 2.5.5 Session Border Controller Wird für Sicherheitsanforderungen und NAT benötigt ### 2.5.6 Gateway "Tor" ins Internet/WAN ## 2.6 Dienste Nur der Vollständigkeit halber aufgeführt (eigentlich veraltet) ### 2.6.1 Analoge Geräte - Fax, Modem, Analogtelephon - Eigentlich seit 2018 ausser Betrieb ### 2.6.2 ISDN Ursprünglich Ersatz für analoge Geräte, stellte sich schlechter heraus ### 2.6.3 Analoge Geräte, bzw. ISDN-Andindung mit Gateway Gateway direkt an ISDN-Modem angeschlossen ## 2.7 IP-Telephonie ins WAN einbinden Kostet, im LAN jedoch gratis # 3 Sicherheits- und Betriebskonzepte ## 3.1 Einleitung Viele Aspekte: - Abhören - Ausfälle - Störungsfreier Betrieb - Erweiterbarkeit ## 3.2 Sicherheit allgemein - SIP und H.323 sind sehr beliebt - Beide unsicher - Datenschutz an oberster Stelle ### 3.2.1 Sicherheit Verschlüsselung für Abhörsicherheit ### 3.2.2 Verfügbarkeit - Strom- oder Hardwareausfall führt zu Unterbruch - Hardware redundant installieren und mit USV betreiben # 4 Endgeräte, Software und Dienste ## 4.1 Einleitung - VoIP ist sehr felxibel - Alle Systeme mit speziellen Gateways einbinden ## 4.2 Anbindung and Fremdsysteme - "ERP" => Enterprise Resource Planning - In Betrieben standard ## 4.3 Andbindung an bestehende Telephonanlagen Interne Anlagen (PBX) können aufgerüstet werden ## 4.4 VoIP-Client Hardware für Telephonie (z.B. Deskphone) ### 4.4.1 Vorteile - Nicht vom PC abhänging - Mehr oder weniger mobil - Einfach zu bedienen ### 4.4.2 Nachteile - Meistens kein Display - Falls Display, dann klein - Teuer ## 4.5 Hersteller von VoIP-Telephonen **Hardware-Telephone:** - Gigaset - AVM - Cisco - Yealink **Software-Telephone:** - Phonerlite - Discord - Skype # 5 Funktionalitäten implementieren ## 5.1 Einleitung VoIP kann softwaretechnisch sehr einfach erweitert werden ## 5.2 Funktionalitäten ### 5.2.1 Telephonfunktionen - Sprachleitung - Music on Hold - Anklopfen in bestehende Gespräche - Unterdrückung von Caller ID (Blacklist) - Weiterleitung - Dreiwegkonferenz - Wahlwiederholung - Ausnahme von ausgewählten Gruppen - Zwischen Anrufen umschalten - Autom. Ablehnen von allen Anrufen (z.B. für Ferien) - Autom. Weiterleitung - Wählen mit URI anstatt Nummer - Mehrere Klingeltöne - Logging - Kurzwahl # 6 Telephoniesystem testen ## 6.1 Einleitung Probleme suchen und beheben Mögliche Ursachen: - Hardware-Telephon - Software-Telephon - Netzwerk ### 6.1.1 Kabel, Stecker, Netzteile und Anschlussdosen Höufige Fehlerquelle ### 6.1.2 Routing Geräte können Ports für VoIP manipulieren oder VoIP blockieren - Router - Gateway - Firewall ### 6.1.3 Konto, Passwort, Name Falsche Kontodaten => keine Verbindung ### 6.1.4 Falsche Einstellung am Hardware-Telephon Grösstes Problem: Kompatibilität ### 6.1.5 Falsche Einstellung am Software-Telephon Ebenfalls grosses Kompatibilitäts-Problem ### 6.1.6 Netzwerkverkehr-Analyse (Monitoring) Mit z.B. Wireshark Anomalien analysieren ## 6.2 Zusammenfassung - Fehlersuche ist schwierig und komplex - Provider um Hilfe fragen (=> Support-Ticket, Exports von Daten, etc.) # 7 Anhang ## Abkürzungen | Abkürzung | Ausgeschrieben / Beschreibung | |-----------------|---------------------------------------------------------| | H 323 | H-Standard; vor allem für analog/ISDN | | MAC-Adresse | Eindeutige Hardware-Adresse einer Netzwerkschnittstelle | | NAT | Network Address Translation | | Nebenstelle | Konto auf SIP-Server | | Proxy-Server | Stellvertretender Server | | Redirect-Server | Entlastet Proxy, indem Weiterleitungen über ihn laufen | | Registrar | VoIP-Server | | RFC | Request for Comment | | RSVP | Resource Reservation Protocol | | RTP | Real-Time Protocol | | Rufgruppe | Gruppe von Nebenstellen, welche ingehende Anrufe teilen | | SSL | Secure Socket Layer | | SDP | Secure Description Protocol | | SIP | Session Initiation Protocol | | SIP-Forking | Unterschiedliche Telephone, gleiche Nebenstelle | | SIP-Server | Ort, wo DB und PBX läuft | | SIPS | SIP verschlüsselt mit TLS | | SIP-Trunking | SIP-Domain beim ISP | | SIP-URI | Adressierung einer Nebenstelle | | STUN | Simple Transport of User Datagram Protocol over NAT | | TLS | Transport Layer Security | | ToS | Type of Service | | URI | Uniform Resource Identifier | # Quelle Notizen basierend auf analogem Skript (39 Seiten) # Anmerkung Relation Kapitel -> Handlungsnotwendige Kenntnisse: - Kapitel 1: *1.1* - Kapitel 2: *2.1*, *2.2*, *2.3*, *2.4*, *2.5* - Kapitel 3: *3.1*, *3.2* - Kapitel 4: *4.1*, *4.2*, *4.3* - Kapitel 5: *5.1*, *5.2* - Kapitel 6: *6.1*