diff --git a/content/M330/IP-Telephonie.md b/content/M330/IP-Telephonie.md new file mode 100644 index 0000000..938df61 --- /dev/null +++ b/content/M330/IP-Telephonie.md @@ -0,0 +1,498 @@ ++++ +title = 'IP-Telephonie' +date = 2024-02-08T21:40:13+01:00 +draft = true ++++ + +{{< 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* \ No newline at end of file