haumacher / phoneblock

Der Spam-Filter für die Fritz!Box
https://phoneblock.net
GNU General Public License v3.0
161 stars 15 forks source link

Portweiterleitung für pb-test Anrufbeantworter #55

Closed jwgn closed 9 months ago

jwgn commented 9 months ago

Hallo,

die Anleitung zielt offenbar darauf ab, dass die Fritzbox auch der Router ist und eingehende Verbindungen selbst verwaltet.

Welche Ports müssen an die Fritzbox weitergeleitet werden, wenn diese nur als IP-Client und Telefonanlage hinter einem vorhandenen Router betrieben wird?

haumacher commented 9 months ago

SIP nutzt normalerweise UDP Port 5060. Dieser Port wird vom Anrufbeantworter kontaktiert, um sich anzumelden. Damit kommt aber noch keine Sprachverbindung zustande. Dafür wird ein RTP-Stream aufgebaut. Die Ports hierfür sind dynamisch. Welche Ports die Fritz!Box hierfür verwendet scheint zu variieren. Aus den Logs sehe ich dass es manchmal Ports um 7088 und manchmal Ports um 50000 sind. Ich habe allerdings in der Fritz!Box-Oberfläche keine Option gefunden, wo man die Port-Range einstellen könnte.

haumacher commented 9 months ago

In der INVITE-Message, die einen Anruf ankündigt, informiert die Box über den Port, der für eingehende Audio-Daten verwendet werden muss:

grafik

An diesen Port sendet der Anrufbeantworter den Audio-Stream, wenn er die Verbindung annimmt.

jwgn commented 9 months ago

Also variiert der Port unvorhersehbar? Dann gibt es vermutlich keine sinnvolle Methode, den AB in dem Szenario zu verwenden, wenn man nicht UDP Traffic komplett an die Box weiterleiten möchte?

Meine Box spielt hier lediglich Telefonanlage und DECT Basis hinter einem OpenWrt Router.

haumacher commented 9 months ago

Ich würde nicht "unvorhersehbar" sagen. In der Regel verwendet die Box eine Port-Range für RTP - nur welche das ist scheint von der Box abzuhängen.

jwgn commented 9 months ago

Aus dem Screenshot oben erkenne ich, dass der AB die Verbindung zur Fritzbox via IPv6 aufbaut. Das würde es natürlich einfacher machen, den so könnte man einfach UDP für die öffentliche IPv6-Adresse der Box komplett durchlassen.

Reicht es, dafür eine Domain anzulegen, die nur einen AAAA Record hat? Eine Adresse dort direkt einzutragen, scheint nicht zu funktionieren, da meldet die App Kein gültiger Domain-Name.

haumacher commented 9 months ago

Der AB antwortet im Wesentlichen auf die Anfragen der Box. Wenn die Box IPv6 spricht, dann macht der AB das auch - ansonsten antwortet er mit IPv4. Wenn der AB nur die IPv6-Adresse der Box kennt, wird er sich über IPv6 anmelden und dafür auch seine IPv6-Adresse registrieren, dann kann die Box wohl nur über IPv6 einen Anruf signalisieren - also ja, das sollte wohl gehen.

Die Oberfläche lässt die Eingabe einer IP-Adresse nicht zu - mit einem Domain-Namen mit nur AAAA-Record sollte es aber gehen.

jwgn commented 9 months ago

Top, die Anmeldung via IPv6 Only funktioniert.

Ich frage trotzdem mal bei AVM an, um die Firewall-Regeln etwas restriktiver gestalten zu können.

jwgn commented 9 months ago

AVM hat geantwortet. Die Range ist 7077-7097.

haumacher commented 9 months ago

Interessant - in den meisten Fällen scheint das auch zu stimmen, ich sehe aber INVITE-Nachrichten der folgenden Bauart in den Logs:

grafik

Und dass heißt, dass sich die Fritz!Box den Audio-Strom an Port 50000 wünscht - wie auch immer das zu Stande kommt...

Btw. die Installation hatte heute Probleme mit der IPv6-Adresse - sollte aber jetzt wieder in Ordnung sein.

Du kannst ausprobieren, ob Deine Installation funktioniert - d.h. ob eine Ansage kommt, wenn du die lokale Nummer des Anrufbeantworters anrufst (von einem DECT Telefon, das direkt an der FB angemeldet ist). Die lokale Nummer findest Du in der Geräteübersicht bei dem PhoneBlock-Gerät (fängt mit ** an).

Ob auch Audiodaten von Dir beim AB ankommen merkst Du wenn du ihn vollquatschst und er Dir nicht dazwischenredet - bzw. dich nicht auffordert endlich was zu sagen... :-)