Asterisk verbindet sich nicht mehr mit Fritzbox (DNS-Error)

hardy88

Neuer User
Mitglied seit
22 Aug 2008
Beiträge
116
Punkte für Reaktionen
0
Punkte
16
Hallo,
seit vielen Jahren betreibe ich ein Asterisk an einer Fritzbox 7490 (jetzt V7.29). Nun musste ich den Raspi 3 gegen die Version 4 mit dem aktuellen zugehörigen OS tauschen. Nach der Neuinstallation verbindet sich allersings Asterisk (jetzt 18.11.1) nicht (mehr) mit der Fritzbox. Es sollen mehrere Telefonnummern genutzt werden. Die Fehlermeldung sieht so aus:
"chan_sip.c:16211 transmit_register: Probably a DNS error for registration to [email protected], trying REGISTER again (after 20 seconds)"
Im Netzwerk befinden sich 3 Fritzboxen.
Box A: hällt die Glasfaserverbindung und wird nur für Internet-Daten genutzt. Hier ist der DNS-Dienst aktiv.
Box B: Ist nur für Telefonie über O2. DNS ist deaktiviert.Hier gibt es auch Clients, die sich mit Asterisk verbinden sollten (geht auch nicht stabil). Sie stellen die Verbindung zu einer alten ISDN Anlage her.
Box C: Hier sind die Schnurlostelefone angeschlossen. Es sollen sich 2 Clients mit Asterisk verbinden. Die melden sich oft ab und später wieder an.
Wenn ich die Zugangsdaten (User und Password) in einen ZOIPER auf einem Android-Handy eingebe, kann der sich sehr sicher mit der Box B verbinden und telefonieren. Leider aber nicht Asterisk.

Kannmir jemand helfen? Was hat es mit dem DNS-Error auf sich? Weist er vielleicht auf ein ganz anderes Problem hin? Der wichtigste Teil der SIP.CONF sieht so aus:

Code:
[general]
bindport = 5060
bindaddr = 0.0.0.0
srvlookup=yes
language=de
localnet=192.168.178.0/255.255.255.0
externrefrash=5

Code:
[fritzbox](!)
type=friend
;type=peer
context=fritzbox-in
;directmedia = yes
;host=fritz.box
host=192.168.10.2
;fromDomain=192.168.10.2
;fromdomain=fritz.box
port=5060
qualify=yes
qualifyfreq=600
dtmfmode=rfc2833
;dtmfmode=info
;dtmfmode=auto
;dtmfmode=inband
insecure=port,invite
srvlookup=no

Code:
[MSNA](fritzbox)
remotesecret=geheim
secret=geheim
defaultuser=628123
fromuser=628123
callbackextension=MSNA

Code:
[MSNB](fritzbox)
remotesecret=geheim
defaultuser=621123
fromuser=621123
callbackextension=MSNB

Die Netzwerkkonfiguration des Raspberry sieht ja neuerdings ziemlich anders aus. Mir ist nicht klar, ob das hier wichtig ist. Er ist stabil per SSH erreichbar und hat stabilen Internetzugang über Box A.

Vielen Dank für Eure Tipps.

[CODE] TAGs [/CODE] gestezt by stoney
 
Zuletzt bearbeitet von einem Moderator:
Moinsen


Anscheinend weisst du nicht, dass sich die Benutzername/Kennwort Konvention seit einiger Zeit geändert hat?
Also, mal ganz genau lesen...
Oder...
Benutzername = Mindestens 8 Zeichen
Kennwort = Mindestens 8 Zeichen aber nicht gleich Benutzername

Und: Warum seh ich unter [general] kein register=?

Fehler...
...werden zwar nicht übernommen, sehen aber nicht schön aus ;)
(Macht eh nur Sinn wenn auch externhost oder externaddr gesetzt ist)
 
Zuletzt bearbeitet:
Danke.
Die Zugangsdaten, die Asterisk verwendet, sind die gleichen, die auch Zoiper verwendet. Sie sind nur für die diese Veröffentlichung verändert. Dabei ist mir wohl ein Fehler unterlaufen. Zoiper ist hier nur für Testzwecke eingesetzt worden. Es gibt keine Doppelanmeldungen am gleichen Account.

Hat jemand noch andere Ideen? Da ein DNS-Problem gemeldet wird, habe ich schon untersucht, ob IP-Adressen im Netzwerk mehrfach existieren. Leider geht es immer noch nicht. Was macht Asterisk anders als der Zoiper?
 
Das hier ein "probably" DNS Fehler gemeldet wird ist strange. Du hast ja eine IP angegeben, dafür ist ja keine DNS Auflösung nötig. Ich kenn das nur, wenn man sich bei der IP Adresse vertippt hat (zb. ein Beistreich statt einem Punkt oder so) was Asterisk dann dazu bringt zu denken, es würde sich um einen Hostnamen handeln. Das kann man aber bei Dir ausschließen was ich so sehe.
Der Verdacht liegt also nahe dass das eher irgendein Folgefehler ist.

Ich geh mal davon aus dass Du Netzwerkursachen schon ausgeschlossen hast und dass Du von Asterisk aus die betroffene Fritzbox per ping erreichst.

Die Frage von koyaanisqatsi, warum es keine register Zeile gibt, finde ich übrigens berechtigt.

Ebenso verwirrt mich etwas dass Du unter localnet ein 192.168.178.0 drin hast, während Du Dich bei 192.168.10.2 registrieren willst. Wenn Du tatsächlich mehrere interne Netze hast, würde ich hier auch das 192.168.10.0 als localnet definieren.

Ich würde dann mal weiters einen sip debug machen und mal die Nachrichten die da so herumgeschickt werden ein bisschen ansehen. Kommt von der fritzbox überhaupt irgendwas retour?
 
Hallo,
danke, dass liest sich interessant. Ich bin eben angekommen und kann jetzt weiter machen.

Die Register-Zeile finde ich immer in Beispielen, in denen es darum geht, eine einelne Nummer zu verbinden. Bisher wurde die Zeile nicht benötigt. Vielleicht liegt hier aber auch die Lösung. Wie muss ich mit dem "register" umgehen, wenn ich Verbindungen für mehrere Rufnummern herstellen möchte? Muss da so etwas wie
register => 62112345:[email protected]/MSNA
für jede einzelne Rufnummer hin? Ich möchte in Asterisk auswerten, welche Rufnummer von außen angerufen wurde.

Wie die 178 in die IP-Adresse kommt, ist mir auch nicht klar. Original steht sie nicht drin.

Kannst Du mir noch schreiben, wie ich einen SIP-Debug mache? Diese Möglichkeit finde ich auch sehr interessant.

Viele Grüße
 
Kannst Du mir noch schreiben, wie ich einen SIP-Debug mache? Diese Möglichkeit finde ich auch sehr interessant.

Auf die asterisk console mit asterisk -r und dann

Code:
sip set debug on
 
Danke.
Ist das, was ich zu dem "register" geschrieben habe schlüssig? Sollte ich das eintragen?

Ich habe mal das Debuging aktiviert. Da läuft der Bildschirm schnell über. Es werden immer solche Blöcke wiederholt:

Code:
SIP Debugging enabled
Reliably Transmitting (no NAT) to 192.168.10.2:5060:
OPTIONS sip:192.168.10.2 SIP/2.0
Via: SIP/2.0/UDP 192.168.10.99:5060;branch=z9hG4bK6a1n3570
Max-Forwards: 70
From: "asterisk" <sip:[email protected]>;tag=as60e5fg66
To: <sip:192.168.10.2>
Contact: <sip:[email protected]:5060>
Call-ID: [email protected]:5060
CSeq: 102 OPTIONS
User-Agent: Asterisk PBX 18.11.1
Date: Tue, 12 Apr 2022 16:29:54 GMT
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE
Supported: replaces, timer
Content-Length: 0


---
Code:
Reliably Transmitting (no NAT) to 192.168.10.2:5060:
OPTIONS sip:192.168.10.2 SIP/2.0
Via: SIP/2.0/UDP 192.168.10.99:5060;branch=z9hG43g1f451b5b
Max-Forwards: 70
From: "asterisk" <sip:[email protected]>;tag=as261da07b
To: <sip:192.168.10.2>
Contact: <sip:[email protected]:5060>
Call-ID: [email protected]:5060
CSeq: 102 OPTIONS
User-Agent: Asterisk PBX 18.11.1
Date: Tue, 12 Apr 2022 16:29:54 GMT
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE
Supported: replaces, timer
Content-Length: 0

Für mich sieht das so aus, als ob die Fritzbox antwortet. Sie scheint allerdings nicht zu schreiben, was sie für ein Problem hat.

[CODE] TAGs [/CODE] gestezt by stoney
 
Zuletzt bearbeitet von einem Moderator:
Es sind jetzt nur zwei Pakete (Options Nachrichten die Dein Asterisk zum qualify schickt), aber Antwort von der fritzbox ist da keine dabei.

Mach mal als nächstes eine Register Zeile rein. Ich hab nicht so viel Ahnung von Fritzboxen, aber dass man sich mit denen ohne Registrierung peeren kann, wär mir eher neu.

Beobachte dann wieder den SIP Debug. Dein Asterisk sollte dann REGISTER Nachrichten schicken, auf die die Fritzbox hoffentlich reagiert.
 
Nun habe ich für die 621 die register Zeile eingetragen und aus den vielen Antworten, die sich auch auf andere Nummern an die sich asterisk connecten soll und auch Clients von Asterisk beziehen, zwei Pakete herausgesucht, die zusammen gehören könnten. Allerdings unterscheiden sie sich in den Einträgen #5 und #3. Ist da jetzt eine Antwort dabei?

Code:
Retransmitting #5 (no NAT) to 192.168.10.2:5060:
REGISTER sip:192.168.10.2 SIP/2.0
Via: SIP/2.0/UDP 192.168.10.99:5060;branch=z9hxxxxxxxxxx55
Max-Forwards: 70
From: <sip:[email protected]>;tag=asxxxxxxc1
To: <sip:[email protected]>
Call-ID: [email protected]
CSeq: 104 REGISTER
Supported: replaces, timer
User-Agent: Asterisk PBX 18.11.1
Expires: 120
Contact: <sip:[email protected]:5060>
Content-Length: 0

---
Code:
Really destroying SIP dialog '[email protected]:5060' Method: OPTIONS
Retransmitting #3 (no NAT) to 192.168.10.2:5060:
OPTIONS sip:192.168.10.2 SIP/2.0
Via: SIP/2.0/UDP 192.168.10.99:5060;branch=z9hxxxxxxxxxxb
Max-Forwards: 70
From: "asterisk" <sip:[email protected]>;tag=asxxxxxc02
To: <sip:192.168.10.2>
Contact: <sip:[email protected]:5060>
Call-ID: [email protected]:5060
CSeq: 102 OPTIONS
User-Agent: Asterisk PBX 18.11.1
Date: Tue, 12 Apr 2022 17:51:16 GMT
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE
Supported: replaces, timer
Content-Length: 0
 
Zuletzt bearbeitet von einem Moderator:
Das "Retransmitting" zeigt dass Dein Asterisk es immer wieder probiert, aber keine Antworten bekommt. Also gar keine.
Schwierig das jetzt aus der Ferne weiter einzugrenzen.
 
Gibt es eine Möglichkeit, die Kommunikation vom Zoiper zur Fritzbox mitzuschneiden? Der läuft allerdings auf einem Android-Handy. Das befindet sich im selben WLAN wie der Raspi mit dem Asterisk. Bringt es was, einen Zoiper auf dem Raspberry zu installieren und dann den Verkehr mit tcpdump aufzuzeichnen? Mir ist allerdings nicht klar, wie man aus den sicherlich sehr vielen Daten die interessanten Informationen heraus findet.
 
Bisher wurde die Zeile nicht benötigt.
Dann frage ich mich (ehrlich), wie sich Dein Asterisk registriert bzw. woher die Fehlermeldung kommt. Klingt so, also wäre irgendwo noch eine Konfiguration mit einer „register =>“. Auf dem Asterisk Command-Line-Interface (CLI), was zeigt „sip show registry“?
 
Die Frage finde ich auch sehr wichtig.
Es ist leider so, dass sich der Asterisk im Moment gar nicht registriert. Aus diesem Grund habe ich mich an das Forum gewandt. Als der Raspi3 noch funktionierte, verwendete ich die sip.conf so, wie ich sie hier eingestellt habe. Warum die Registrierung funktionierte, kann ich leider nur vermuten. Dieser Vermutung nach sieht es so aus, dass im "general"-Teil und im "[fritzbox](!)"-Teil die Dinge definiert sind, die für alle Rufnummern identisch sind. In dem jeweiligen "[MSNx](fritzbox)"-Teil stehen dann nur noch die spezifischen Infos für jede Rufnummer, wie Nutzername und Passwort. Das ist dann eigentlich das, was bei den Beispielen, die nur für eine Rufnummer gelten, in der "register"-Zeile steht.

Es kann gut sein, dass dahinter ein falscher oder besser ein Ansatz mit Optimierungsbedarf steht. Mein Ansinnen war damals, dass ich wollte, dass Asterisk auswerten kann, welche meiner Telefonnummern angerufen wird. Daher ist für jede Rufnummer ein Account in der Fritzbox angelegt. (Hoffentlich sind die Begrifflichkeiten hier richtig.) Wenn dann dadurch dem Asterisk "klar" ist, welche Nummer angerufen wird, ist leicht heraus zu bekommen, von wem sie angerufen wird und der Anruf kann entsprechend behandelt werden. Es soll auch erreicht werden, dass ein bestimmter Teilnehmer, der an Asterisk hängt, über eine bestimmte, ihm zugeordnete Rufnummer nach außen telefoniert.

Vielleicht gibt es ja einen andrenAnsatz, bei dem es vielleicht nur einen einzigen Account bzw. nur eine einzige "register"-Zeile gibt und dem Asterisk dennoch übermittelt wird, wer welche Rufnummer anruft. Hast Du da eine Idee? Ich habe einfach noch keine expliziete Aussage gefunden, was richtig bzw. besser ist.

Ich habe übrigens einfach mal eine "register"-Zeile für eine bestimmte Rufnummer eingefügt. Die Folge ist, dass Asterisk sich dann zweimal versucht mit dieser Rufnummer bzw. dem Account versucht zu registrieren. Beide Versuche sind dann erfolglos.

Es wurde gefragt, ob man von dem Raspi, auf dem Asterisk läuft, die Fritzbox per Ping erreicht. Das ist der Fall.

Viele Grüße
 
Zuletzt bearbeitet:
im Moment gar nicht registriert. Aus diesem Grund
Laut Deinem Log-Eintrag versucht(e) er aber sich zu registrieren. Und wenn ich den Quellcode überfliege, passiert das auch nur dann, wenn er sich registrieren soll, also eine „register =>“ vorhanden wäre. Die Frage ist jetzt, warum Du ein SIP-Register hast (und ob Du das wirklich hast, kannst Du mal sip set debug on schalten?).
 
Das ist das, was der dbug für jeden einzelnen Account ausgibt:
Code:
---
Retransmitting #4 (no NAT) to 192.168.10.2:5060:
REGISTER sip:192.168.10.2 SIP/2.0
Via: SIP/2.0/UDP 192.168.10.99:5060;branch=z9hS4b31bD4x999
Max-Forwards: 70
From: <sip:[EMAIL][email protected][/EMAIL]>;tag=aa5667580b
To: <sip:[EMAIL][email protected][/EMAIL]>
Call-ID: [EMAIL][email protected][/EMAIL]
CSeq: 105 REGISTER
Supported: replaces, timer
User-Agent: Asterisk PBX 18.11.1
Expires: 120
Contact: <sip:[EMAIL][email protected][/EMAIL]:5060>
Content-Length: 0

Mir fällt hier die 127.0.1.1 auf. Muss man darüber nachdenken? Ist die Anfrage so in Ordnung? Dann müsste man vielleicht über die Fritzbox nachdenken?

Ich habe übrigens mal einen für einen Account spezifischen Block durch eine "register"-Zeile ersetzt. Dann dieht das ganze ganz genau so aus.
 
Zuletzt bearbeitet von einem Moderator:
Irgendwas in der Call-ID ist OK. Nebenbei: Hier ein offizielles Beispiel …

Aber ich frage mich warum dieses Register ohne „register =>“ überhaupt ausgelöst wird. o_O Zu dem MSNx … müsste ich jetzt nachschauen, ob FRITZ!OS wählerisch und hier auch die 621… stehen haben will. Hast Du mal statt MSNx dieses 621… probiert?
Und kommt eine irgendeine Antwort? Wenn nicht, würde ich die Hammer-Protection vermuten.
 
Entweder erkenne ich die Antwort nicht in der Datenmenge oder es kommt keine. Wonach muss ich suchen um die Antwort sicher zu erkennen?
...Ich bin jetzt unterwegs und melde mich morgen wieder. Einen schönen Abend noch.
 
In dem verlinkten Beispiel aus dem RFC siehst Du nach was Du suchen könntest, also (für die erste Antwort) „SIP/2.0 401 Unauthorized“ oder (für die zweite Nachricht) „Authorization: Digest“. Wenn keine Antwort kommt, dann ist die FRITZ!Box nicht happy.
 
Also wenn es mal diese "Retransmitting...." Meldungen hagelt im Debug, dann kann man davon ausgehen dass keine Antworten von der fritzbox kommen. Ich kann das sofort nachstellen indem ich mich versuche bei einem Host zu registrieren den es nicht gibt oder einen falschen Zielport benutze.

Entweder hat Dich die fritzbox blockiert oder es gibt hier ein Netzwerkproblem.
 
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.