Telefon -> Freeswitch -> NAT(OpenBSD) -> Internet -> DeutschlandLan(Telekom)

PaulAtreides

Well-Known Member
Hallo,

ich betreibe Freeswitch im lokalen Netz als Telefonanlage. Am Freitag haben wir auf VoIP (DeutschlandLan) von der Telekom umgestellt. Feste externe IP. Leider bekomme ich die Registrierung zur Telekom nicht hin. Bei Freeswitch kommt die Fehlermeldung Timeout Registering sip-trunk.telekom.de. Daraufhin habe ich mir den Verbindungsaufbau mit sngrep angeschaut. Wie es aussieht klappt zwar der Verbindungsaufbau, aber ich bekomme kein Antwort. Bei der Telekom läuft SIP über TCP.

Code:
2018/06/30 13:52:37.211946 10.0.200.2:51813 -> 217.0.26.165:5060
REGISTER sip:reg.sip-trunk.telekom.de;transport=tcp SIP/2.0
Via: SIP/2.0/TCP X.X.X.X:5080;rport;branch=z2hG4bK588cZXSvrN1De
Max-Forwards: 70
From: <sip:username@reg.sip-trunk.telekom.de>;tag=9aldsj8n67a
To: <sip:username@reg.sip-trunk.telekom.de>
Call-ID: 
CSeq: 111844514 REGISTER
Contact: <sip:gw+sip-trunk.telekom.de@X.X.X.X:5080;transport=tcp;gw=sip-trunk.telekom.de>
Expires: 3600
User-Agent: FreeSWITCH-mod_sofia/1.6.19+git~20170927T175834Z~38f568d343~32bit
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REGISTER, REFER, NOTIFY
Supported: timer, path, replaces
Content-Length: 0

Ich vermute das hat etwas mit den Router Einstellungen unter OpenBSD zu tun. Hier ein Ausschnitt

Code:
wan_if = "pppoe0"
int_if = "em0"
voip_if = "vlan200"
pbx = "10.0.200.2"

# block all traffic in all directions
block log

# loopback interface is not filtered
set skip on lo0

voip_tcp_client_out = "{ssh, ftp, domain, http, https, sip}"
voip_udp_client_out = "{domain, ntp, sip, 3478}"

match out on $wan_if inet from $pbx to any nat-to ($wan_if) static-port
match out on $wan_if from any nat-to ($wan_if)

pass on $voip_if inet proto tcp from any to port $voip_tcp_client_out
pass on $voip_if inet proto udp from any to port $voip_udp_client_out

pass out on $wan_if inet proto tcp from any to port $tcp_client_out
pass out on $wan_if inet proto udp from any to port $udp_client_out

Unter Freeswitch habe ich meine externe IP eingetragen

vars.xml
Code:
<X-PRE-PROCESS cmd="set" data="external_rtp_ip=X.X.X.X“/>
<X-PRE-PROCESS cmd="set" data="external_sip_ip=X.X.X.X"/>

internal.xml
Code:
<param name="ext-rtp-ip" value="$${external_rtp_ip}"/>

external.xml
Code:
<param name="ext-sip-ip" value="$${external_sip_ip}"/>
<param name="ext-rtp-ip" value="$${external_rtp_ip}"/>

Hat jemand einen ähnlichen Aufbau und kann mir weiterhelfen?
 
Blaues Raten: Port 5080 noch durchlassen, steht zumindest so beim tcomserver in deinem Ausschnitt.
 
Also es liegt wohl an den Firewall Einstellungen. Von zuhause kann ich auf den reg.sip-trunk.telekom.de zugreifen und er baut eine Verbindung mit ESTABLISHED auf
 
Nur dass SIP 5060 ist...

Deswegen nimmt man keine Servicenamen in Firewalls.
 
Code:
pfctl -vvnf /etc/pf.conf
Zeigt die Servicevariablen direkt als Portnummern an, da würden solche Fehler eventuell schneller auffallen
 
Zuletzt bearbeitet:
Der Telekom Port ist 5060, was in der Firewall freigegeben wurde. Was in der SIP Nachricht steht ist der Port from FreeSwitch Server wenn man sich von draußen einlogen wollte.

Ich habe nun alle Ports nach draußen freigegeben. Inzwischen bekomme ich auch ein ESTABLISHED aber der SIP Server antwortet nicht auf meine SIP Nachricht. Sagt einfach gar nix. Was ich auch komisch finde, ist dass seit wir VDSL Deutschland Lan haben ich nicht mehr auf Telekom.de zugreifen kann, auf andere Webseiten allerdings schon.

Wie kann man einen SIP Server Testen?
 
DNS löst alle Adressen richtig auf. Hatte 8.8.8.8 schon eingestellt. Neben Telekom.de habe ich noch eine ganze andere Reihe von Adressen gefunden, die zwar per DNS aufgelöst werden, aber deren Webseite ich nicht aufrufen kann oder anpingen kann. Ich hab das jetzt als Störung bei der Telekom gemeldet.

Wie kann man SIP über die Console testen? Einfach nur um eine Antwort vom SIP Server zubekommen.
 
Kleiner Tipp: STUN und SIP sind schon so ziemliche Grützprotokolle und die Implementierung der Telekom ist noch mal ganz besonders interessant. Selbst wenn du es nun mit viel Gebastel und noch mehr Nerven zum Fliegen bekommen solltest, ändert die Telekom in einem Monat oder vielleicht auch erst in einem halben Jahr etwas Subtiles und der Ärger geht dann wieder von vorne los. Auf die Hotline braucht man dann nicht zu hoffen, die wissen nicht mal was SIP ist. Die Techniker interessiert es auch nicht. Investiere lieber ein paar Cent im Monat in Sipgate oder einen vergleichbaren Anbieter - falls es da welche gibt - richte bei der Telekom eine Dauerweiterleitung auf die neue Nummer ein und die Sache läuft. Dein Kardiologe wird es dir danken.
 
hi

imeine telefonie kommt via netcologene / DSL -> SIP

und verwende eine tritzbox als telefonanlage , diese ist tief hinter einer openbsd firewall vergraben

damit die telefonie problemlos funktioniert nutze ist einen sip proxy ( siproxd http://siproxd.sourceforge.net/ exisiert auch als packet )

vieleicht solltest du diesen auch mal versuchen .


holger
 
Selbst wenn du es nun mit viel Gebastel und noch mehr Nerven zum Fliegen bekommen solltest, ändert die Telekom in einem Monat oder vielleicht auch erst in einem halben Jahr etwas Subtiles und der Ärger geht dann wieder von vorne los.
Joa, jeder andere Anbieter scheint sich mehr an den Standard zu halten. Die technischen Informationen die man von der Telekom bekommt sind teilweise ziemlich dürftig.

hi

damit die telefonie problemlos funktioniert nutze ist einen sip proxy ( siproxd http://siproxd.sourceforge.net/ exisiert auch als packet )

vieleicht solltest du diesen auch mal versuchen .

holger
Besonders aktiv wird an siproxid ja nicht mehr gearbeitet. Ich hatte mir schon mal Kamailio angeguckt aber das scheint mir für meine Zwecke zu komplex zu sein. Hast du den Port 5060 in deiner Firewall geöffnet? Ich will eigentlich keine Ports öffnen. Bei der Telekom kann man sich mit SIP registrien und dann über keep alive Pakete die Verbindung offen halten.

Nachtrag:
Ich sehe gerade im Release:
Known bugs: - SRV DNS records are not yet looked up, only A records There will be more for sure...
Dann funktioniert das nicht mit DeutschlandLan SIP Trunk von der Telekom.
 
hi

dns ist nicht wichtig , da sich , zumindestens bei mir , die ip vom SIP Server nicht aendert,


meine regeln

bitte bachten :
SIP muss ueber 2 rdomains
meine rdomains wan seitig nutze ich noch pair , von daher gibt es eine entsprechende statische route
fuer die fritzbox ip .

pppoe_vif ist die eine seite des pair interface paar.

der siproxyd listen auf dem pppoe_if
in der fritzbox wird das feld bei der telefonie proxy verwedet.

das kern problem welches durch den siprproy geloest wurde ist das netcologne nicht nur den udp header verwendet
um sich abzusichern das sich nur nc kunden connecten koennen, sonder auch die sip header informantionen.

in diesen stehe auch nochmal die ip addr die und das ist bei mir ja die interne , private , ip .

holger


Code:
voip_ports="{ 5060,7070:7089 }"


pass in quick on $pppoe_if inet proto udp from $nc_voip_srv to ($pppoe_if:0) port $voip_ports \
        keep state ( udp.first 30, udp.single 15 , udp.multiple 30 ) \
        set prio 7 \
        set queue (dsl_voip)

pass out quick on $wlan_vif inet proto udp from $fritzbox_wan to ($pppoe_vif) port $voip_ports rtable 4
 
Hast du den Port 5060 in deiner Firewall geöffnet? Ich will eigentlich keine Ports öffnen. Bei der Telekom kann man sich mit SIP registrien und dann über keep alive Pakete die Verbindung offen halten.

Der Port 5060 ist ja nur für den Server, der Client sucht sich selber einen zufälligen Port. Du musst also eingehend keine Ports öffnen, um dich am SIP-Server anzumelden, nur ausgehend. Da kann es auch hilfreich sein, das UDP-State-Timeout in pf hochzusetzen:
Code:
set timeout udp.multiple 120
Ich habe das gebraucht, da manchmal das Keepalive ausgesetzt hat und damit der State abgebaut wurde. Damit gab es dann auch keine Freigabe für die eingehende Verbindung vom SIP-Server und damit war die Leitung tot.

Rob
 
Es gibt wohl ein Problem mit meinem OpenBSD Router Einstellungen. Vor der VDSL Umstellung hat alles funktioniert. Ich habe jetzt den Router abgeklemmt und bin direkt in Internet gegangen, also nicht über bridge mode, sondern über das Modem(Router, ZyXEL) . Da konnte ich alle Webseiten erreichen. Ich versteh das nicht. Ich habe inzwischen schon alle Firewall regeln auf das Minimum reduziert und es geht immer noch nix. Einige Webseiten gehen, andere nicht

Wo ist der Fehler? Wenn ich tcpdump -n -e -ttt -i pflog0 sehe ich nix auffälliges. Vor der Umstellung hat alles funktioniert !!?!?
 
Da hats bei mir auch gehakelt....bei mir muss es für entega medianet 1492 sein.

Sipgate kann ich aber auch empfehlen, das machts stressfreier. Kombipakete Internet+Telefon ist meist zu arg verknebelt mit den mitgelieferten Routern, was zu arg einschränkt und eben nur für den 0815-Nutzer ausreicht.
 
Zurück
Oben