Die Türsprechstelle soll bei Tastenbetätigung einen Telefonanruf auslösen. Als SIP-Server dient die Fritzbox. Für den ESP32 gibt es eine passende SIP-Bibliothek: https://github.com/dl9sec/ArduinoSIP.
Den ESP32 habe ich als IP-Türsprechstelle in der Fritzbox eingerichtet.
Da ich am Telefon verschiedene Ansagen und den Türöffner starten will, benötige ich eine DTMF-Erkennung. Hierfür gibt es 3 Möglichkeiten:
- Inband: Die Töne werde zusammen mit dem Sprachsignal per RTP übertragen. Unpraktisch, da das Sprachsignal in Echtzeit empfangen und auf DTMF-Töne überwacht werden muss.
- RTP-Event nach RFC2833(alt) bzw. RFC4733(neu). Auch hier muß ein RTP-Kanal aufgebaut werden. Der SIP-Server muss das unterstützen. Die Fritzbox benutzt dieses Verfahren nicht.
- SIP-Info nach RFC2976. In der Fritzbox kann für externe Rufnummern unter Telefonie/Eigene Rufnummern/Bearbeiten/anderer Anbieter dieses DTMF-Verfahren eingestellt werden.
Mittels Wireshark habe ich die Funktion kontrolliert.