Asterisk/FreePBX mit 1und1 eigehende Anrufe nur kurz nach ausgehenden möglich

sausage

Neuer User
Mitglied seit
13 Jul 2006
Beiträge
30
Punkte für Reaktionen
1
Punkte
8
Hallo,

ich habe mir einen Asterisk mit FreePBX neu eingerichtet. Das ganze hängt hinter einem NAT was ich in der FreePBX aber auch so eingestellt habe.

Mein Provider ist 1und1. Dessen STUN-Server habe ich auch eingetragen.

Ich kann problemlos raustelefonieren aber eingehende Anrufe erreichen mich nur, wenn ich kurz zuvor einen ausgegehenden Anruf getätigt habe. Wenn ich das nicht mache passiert im Logfile einfach gar nichts. Es kommt also nichts am Asterisk an.
Woran kann das liegen?
 
Moinsen


Schau mal im SIP Log nach, was 1&1 antwortet, wenn registriert wird.
Mich würde der Contact: Header interessieren.
IP Adresse und Portnummer, und ob mehrere davon im Contact: Header stehen.
...bei 1&1 gewinnt immer das zuletzt Registrierte, welches dann alleine bei eingehenden Anrufen signalisiert.
Hast du zum Beispiel die 1&1 Nummern auch in einer FRITZ!Box aktiv registriert?
Dann deaktiviere die. Nicht löschen, nur deaktivieren (Da gibt es einen Haken für).
 
Hallo und vielen Dank für die schnelle Antwort.

Bin mir nicht ganz sicher ob es das ist was du haben willst. Habe nach einem Neustart folgendes gemacht:

Code:
root@raspbx:/var/log/asterisk# cat full | grep Contact
[2022-10-12 20:50:58] VERBOSE[1065] res_pjsip/pjsip_configuration.c: Contact 1066/sip:[email protected]:5060;user=phone is now Unreachable.  RTT: 0.000 msec
[2022-10-12 20:51:26] VERBOSE[1065] res_pjsip/pjsip_configuration.c: Contact 1und1/sip:49****[email protected]:5060 is now Reachable.  RTT: 16.910 msec
[2022-10-12 20:51:55] VERBOSE[1065] res_pjsip/pjsip_configuration.c: Contact 1066/sip:[email protected]:5060;user=phone is now Reachable.  RTT: 15.870 msec

Die Nummer ist bei keiner Fritzbox oder sonst wo registriert.
 
Also, bei ausgehenden Anruf wird das INVITE authorisiert, es ist nicht vom REGISTER abhängig.
Deswegen klappt ein Ausgehender und zumindest bist du danach frisch registriert und dann auch (für eine gewisse Zeit) erreichbar für eingehende Anrufe.

1&1 nutzt mehrere SIP Server die du deiner PBX noch beibringen müsstest (Peers).
Beispiel für meine Region (Berlin)
Rich (BBCode):
# SIP
$ nslookup sip.1und1.de 1.1.1.1
Server:         1.1.1.1
Address:        1.1.1.1#53

Non-authoritative answer:
Name:   sip.1und1.de
Address: 212.227.124.130
Name:   sip.1und1.de
Address: 212.227.124.129
Name:   sip.1und1.de
Address: 2001:8d8:104:100:212:227:124:129
Name:   sip.1und1.de
Address: 2001:8d8:104:100:212:227:124:130
# TLS (SIPS)
$ nslookup tls-sip.1und1.de 1.1.1.1
Server:         1.1.1.1
Address:        1.1.1.1#53

Non-authoritative answer:
Name:   tls-sip.1und1.de
Address: 212.227.124.132
Name:   tls-sip.1und1.de
Address: 212.227.124.131
Name:   tls-sip.1und1.de
Address: 2001:8d8:104:100:212:227:124:132
Name:   tls-sip.1und1.de
Address: 2001:8d8:104:100:212:227:124:131
 
Zuletzt bearbeitet:
Ok, Danke für die Infos. Ich schaue mal wie weit ich damit komme.

Mir ist aber gerade noch was aufgefallen: Die Anrufer werden auf meinem Telefon (Thomson TB30) mit +49XXXX angezeigt. Ein Rückruf scheitert scheinbar an dem Plus-Zeichen. Gibt es dafür eine Lösung? Auf die schnelle hab ich nichts passendes gefunden.
 
Hm, Bei normalen Nummern (die gleichzeitig auch VoIP Benutzernamen sind) macht 1&1 das nicht.
Ich denke das macht deine PBX, oder sehe ich das falsch?
Kannst du eigentlich im Dialplan rausfiltern...
 
Das mit dem Dialplan hat geklappt. Anbei ein Screenshot, falls jemand dasselbe Problem hat:
 

Anhänge

  • Screen Shot 2017-10-10 at 11.34.01 AM.png
    Screen Shot 2017-10-10 at 11.34.01 AM.png
    292 KB · Aufrufe: 15
Ich hab in meiner FRITZ!Box neulich alle 1&1 Nummern auf TLS 1.3 (SIPS) umgestellt aber noch kein SIP Log oder SIP invite Log aus den Supportdaten gezogen.
Mach ich aber noch, bin gespannt ob es überhaupt Logs ausspuckt (wegen TLS).
Aber dann kann ich dir mal zeigen, was für abenteuerliche Routen eingehende 1&1 Calls haben können.
@sonyKatze kennt sich da besser aus. Vielleicht weiss er etwas, was zur Lösung beitragen könnte.
( Durch die Ewähnung seines Nicknamens kriegt er ein "Bescheid" ;) )
 
Ich schaue mal wie weit ich damit komme.
Ich habe das anders herum gemacht … wenn das die offene Frage war. Bin mir gerade nicht sicher.
bin gespannt ob es überhaupt Logs ausspuckt (wegen TLS).
Das SIP-Log? Das geschieht auf Ebene SIP, also unverschlüsselt, also ja Du siehst dann die SIP-Nachrichten wie vorher.
eingehende Anrufe erreichen mich nur, wenn ich kurz zuvor einen ausgegehenden Anruf getätigt habe.
Mein Tipp: Aktive auf Deinem DrayTek den „LAN Port Mirror“ für die WANs und schneide mittels Wireshark mit. Filter dort nach „udp.port == 5060“. Das NAT im DrayTek macht nämlich wilde Sache, manchmal, je nach Konfiguration (SIP-ALG: aus? Port-Freigabe: aus?).
 
Moinsen

So mal ein INVITE (eingehender Anruf)

Mobilenummer: <sip:[email protected];transport=udp;user=phone>
1&1 Nummer: <sip:[email protected];user=phone>
Schön zu sehen: 1&1 filtert das Plus ( + ) nicht (kommt vom/übern Anbieter des Anrufers)
...und: Wieviel auf der Strecke ( Record-Route: ) wirklich verschlüsselt wird/ist oder nicht (Port 5060 oder keine Angabe)

Für welche eingehenden Server-IP Adressen (CDN?) du Peers anlegen musst, musst Du herausfinden, ich glaub das ist je nach Region unterschiedlich.
Die IP im Peer wird bei eingehenden Call von Asterisk für den Kontext gebraucht und wird bestimmt indem die erste Übereinstimmung (IP) in der Peer Liste durchsucht und gefunden ist.
(sorry ich mag solche Sätze eigentlich nicht :cool: )

Was ich mir auch nicht wirklich erklären kann, ist "meine" hohe Portnummer, aber immerhin.

Interessant finde ich "die Letzte Route".
Damit mein ich die IP, worüber die "wichtigen/vertraulichen" Daten gescheffelt werden: 212.XXX.XXX.68

Einen Schmunzelpunkt bekommt von mir der fehlende User-Agent:
...der war wohl zu unsicher :)

Rich (BBCode):
2022-10-13 15:14:29.377 - IN: my=192.168.188.1%21:58289 peer=212.XXX.XXX.132 port=5061 TLS, sipiface=none:
INVITE sip:[email protected]:58289;uniq=<hash>;transport=tls 2.0
Via: SIP/2.0/TLS 212.227.124.132:5061;branch=<hash>
Via: SIP/2.0/UDP 212.227.18.226;rport=5060;branch=<hash>
Via: SIP/2.0/UDP 212.227.124.146;branch=<hash>
Via: SIP/2.0/UDP 82.XXX.XXX.52:5060;branch=<hash>
Record-Route: <sip:212.XXX.XXX.132:5061;transport=tls;r2=on;lr=on>
Record-Route: <sip:172.XXX.XXX.79;r2=on;lr=on>
Record-Route: <sip:212.XXX.XXX.226;lr=on;ftag=<hash>;did=db3.6bb2>
Record-Route: <sip:212.XXX.XXX.146;lr=on>
From: "+4917XXXXXXXX2" <sip:[email protected];transport=udp;user=phone>;tag=<hash>
To: "+49306XXXXXX0" <sip:[email protected];user=phone>
Call-ID: <hash>@10.XXX.XXX.64
CSeq: 1 INVITE
Contact: <sip:[email protected]:5060;user=phone;transport=udp>
History-Info: <sip:[email protected]>;index=1
History-Info: <sip:[email protected];user=phone>;index=1.1;np=1
Max-Forwards: 53
P-Early-Media: supported
Supported: timer
Min-SE: 90
Session-Expires: 1800;refresher=uac
Allow: INVITE, ACK, OPTIONS, BYE, CANCEL, INFO, PRACK, NOTIFY, MESSAGE, REFER, UPDATE
Content-Type: application/sdp
Content-Length:  1529

v=0
o=- 355026333 0 IN IP4 212.XXX.XXX.68
s=-
c=IN IP4 212.XXX.XXX.68
t=0 0
a=rtpengine:6b06489d2fba
m=audio 17670 RTP/SAVP 9 8 96 0 104
b=AS:80
a=maxptime:30
a=rtpmap:9 G722/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:96 G726-32/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:104 telephone-event/8000
a=sendrecv
a=rtcp:17671
a=crypto:1 AEAD_AES_256_GCM inline:************************************************************
a=crypto:2 AEAD_AES_128_GCM inline:***************************************
a=crypto:3 AES_256_CM_HMAC_SHA1_80 inline:******************************************
 
Zuletzt bearbeitet:
Ich kann problemlos raustelefonieren aber eingehende Anrufe erreichen mich nur, wenn ich kurz zuvor einen ausgegehenden Anruf getätigt habe. Wenn ich das nicht mache passiert im Logfile einfach gar nichts. Es kommt also nichts am Asterisk an.
Woran kann das liegen?

Das klingt mir sehr stark nach fehlendem Keep-Alive. Der Router macht den Port nach ein paar Minuten Inaktivität zu. Ein Portforwarding auf den SIP Port sollte helfen, allerdings sollte der Asterisk dann entsprechend gesichert sein. Besser wäre ein Keep-Alive zB. über Asterisks qualify.


Mich würde der Contact: Header interessieren.
IP Adresse und Portnummer, und ob mehrere davon im Contact: Header stehen.
...bei 1&1 gewinnt immer das zuletzt Registrierte, welches dann alleine bei eingehenden Anrufen signalisiert.

Was hat der Contact im Register mit ausgehenden Anrufen zu tun? Nichts.
Bestenfalls ist 1&1 so schlau den Contact intern abweichend vom Register zu überschreiben, wenn in einem Invite was anderes angegeben wird. Halte ich aber für recht unwahrscheinlich, meistens ist es anders rum, dass Invites nur akzeptiert werden, wenn der Contact zum letzten Register passt.


Also, bei ausgehenden Anruf wird das INVITE authorisiert, es ist nicht vom REGISTER abhängig.
Deswegen klappt ein Ausgehender und zumindest bist du danach frisch registriert und dann auch (für eine gewisse Zeit) erreichbar für eingehende Anrufe.

Wird ja immer lustiger. Siehe oben.


1&1 nutzt mehrere SIP Server die du deiner PBX noch beibringen müsstest (Peers).

Für was? Load Balancing passiert über die DNS (srv) Einträge. Wäre ja noch schöner, wenn man in seiner Fritzbox ständig sämtliche IP-Adressen des Providers nachpflegen müsste. Für Asterisk gilt das gleiche, bei ankommenden Invites werden die match'es aufgelöst und mit dem Header verglichen. Alternativ kann man die Authentifizierung ankommender Anrufe auch ganz ausschalten, dann darf man halt kein globales Pattern anlegen, sondern jede Rufnummer einzeln.


Das NAT im DrayTek macht nämlich wilde Sache, manchmal, je nach Konfiguration (SIP-ALG: aus? Port-Freigabe: aus?).

Guter Hinweis! Falls der verwendete Router ein SIP ALG hat, macht es meisten Sinn das auch zu nutzen. Asterisk muss dann gänzlich auf "No NAT" konfiguriert werden. Hört sich in dem Fall aber nicht wirklich danach an, weil ein ALG als erstes die Audioströme kaputt machen würde.
 
@Mrs. Moose - Mit den Mehrfachregistrierungen, also mehrere Kontakte im Contact Header bezog ich mich eindeutig auf die Signalisierung.
...bei 1&1 gewinnt immer das zuletzt Registrierte, welches dann alleine bei eingehenden Anrufen signalisiert.
Und etwas später, warum nach einen Ausgehenden die Signalisierung auf einmal funktioniert..
Also, bei ausgehenden Anruf wird das INVITE authorisiert, es ist nicht vom REGISTER abhängig.
Deswegen klappt ein Ausgehender und zumindest bist du danach frisch registriert und dann auch (für eine gewisse Zeit) erreichbar für eingehende Anrufe.
Ja, das "Signalisierungskarussel" bei 1&1 ist nicht einfach zu Verstehen.
 
Zuletzt bearbeitet:
Mit Signalisierung meinst Du wahrscheinlich ankommende Anrufe. Dafür muss der Provider die Adresse des Endgeräts kennen, was üblicherweise durch das Register passiert.

Falls 1&1 tatsächlich die Infos aus dem Register vergisst, sobald ein Invite vom Client kommt, und aus dessen Daten der neue Netzwerkstandort des Clients ermittelt wird, wäre das zum einen ungewöhnlich, wenngleich möglich, würde zum anderen aber immer noch nicht erklären, warum es danach nur ein paar Minuten lang funktioniert. Auch einen Tag später wäre Asterisk ja immer noch da. Nur hat das NAT halt vermutlich zwischenzeitlich den gemappten Port zugemacht, was bei UDP meist nach wenigen Minuten passiert.

Technisch wäre es möglich, mehrere Netzwerkstandorte zu verarbeiten. Die meisten Provider machen das halt nicht, sondern verwenden nur den zuletzt registrierten, weil man davon ausgeht, dass der Kunde einen Router zuhause hat. Insofern ist das wiederum nichts ungewöhnliches.
 
1&1 hat das Problem, dass sie von zwei verschiedenen Servern aus kommen. Reiner Zufall. Wird laufend geändert. Beide Server müssen in einer Stateful-Packet-Inspection-Firewall (SPI-Firewall) eingehend erlaubt sein. Asterisk schafft das von Haus aus nicht. Daher gibt es dafür die wildesten Lösungen, wie Port-Freigabe, Exposed-Host oder die IPs nachpflegen und bei beiden registrieren. Mein Skript macht es anders: Es hält für die beiden Server die 5060/udp einfach auf. Kann man parallel auf der Maschine mit dem Asterisk im Hintergrund laufen lassen. Problem ist der DrayTek. Der macht wilde Sache, weil der normalerweise alle Ports nach außen hin ummappt. Das müsste meinem Skript aber egal sein. @sausage daher einfach melden. Wenn es wider Erwarten nicht klappt, probiere ich Dein Szenario nachzubauen, 1&1, Asterisk und DrayTek liegen hier in der Ecke und wollen bestimmt mal wieder gekrault werden.
 

Zurzeit aktive Besucher

Neueste Beiträge

Statistik des Forums

Themen
244,858
Beiträge
2,219,651
Mitglieder
371,572
Neuestes Mitglied
#Kuddel#
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.