+++
title = 'IP-Telephonie'
date = 2024-02-08T21:40:13+01:00
draft = false
+++

{{< 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:<sip:my@sip.server.com>
To: Name <name@sip.server.com>
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*