[Gelöst] Problem mit Asterisk in Zusammenhang mit Openwrt Router

xrated

Aktives Mitglied
Mitglied seit
2 Jul 2012
Beiträge
823
Punkte für Reaktionen
2
Punkte
18
Hi

Asterisk 1.6 läuft bei mir auf einem Linux Server. Sobald das ganze über Openwrt geroutet wird, gibt es ein Problem beim DSL disconnect der vom Provider durchgeführt wird. Asterisk kann sich danach nicht mehr beim SIP Server registrieren.

[Sep 9 15:40:12] NOTICE[3460]: chan_sip.c:11696 sip_reg_timeout: -- Registration for '[email protected]' timed out, trying again (Attempt #27)

In Openwrt sehe ich aber eine aktive Verbindung am UDP 5060 von meinem Server zum ISP.

Mache ich nun folgendes:
- Asterisk stoppen
- warten (1min) bis Verbindung in Openwrt gelöscht
- Asterisk starten

Dann funktioniert es wieder.

Auch wenn es nicht unbedingt an Asterisk liegt und mit einem anderen Router nicht passiert, hat vielleicht jemand eine Idee woran dies liegen könnte?

Siehe auch:
https://dev.openwrt.org/ticket/10225

strace Asterisk:
Code:
1407  <... poll resumed> )              = 0 (Timeout)
1407  gettimeofday({1347196030, 765447}, NULL) = 0
1407  read(3, "H\324\372\240", 4)       = 4
1407  read(3, "\342KiD", 4)             = 4
1407  read(3, "sD\4\304", 4)            = 4
1407  read(3, "\273}\21\220", 4)        = 4
1407  read(3, "}_\277\7", 4)            = 4
1407  read(3, "\215\t\246\274", 4)      = 4
1407  socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 24
1407  connect(24, {sa_family=AF_INET, sin_port=htons(5060), sin_addr=inet_addr("88.79.152.249")}, 16) = 0
1407  getsockname(24, {sa_family=AF_INET, sin_port=htons(39770), sin_addr=inet_addr("192.168.2.2")}, [16]) = 0
1407  close(24)                         = 0
1407  read(3, "\347\330\226a", 4)       = 4
1407  read(3, "D\250e\362", 4)          = 4
1407  read(3, "\31\254\257\334", 4)     = 4
1407  read(3, "W\205|\265", 4)          = 4
1407  read(3, "\220\222c\252", 4)       = 4
1407  time(NULL)                        = 1347196030
1407  gettimeofday({1347196030, 767518}, NULL) = 0
1407  sendto(20, "OPTIONS sip:08192.sip.arcor.de S"..., 528, 0, {sa_family=AF_INET, sin_port=htons(5060), sin_addr=inet_addr("88.79.152.249")}, 16) = 528
1407  gettimeofday({1347196030, 767830}, NULL) = 0
1407  gettimeofday({1347196030, 767926}, NULL) = 0
1407  gettimeofday({1347196030, 768022}, NULL) = 0
1407  time(NULL)                        = 1347196030
1407  gettimeofday({1347196030, 768209}, NULL) = 0
1407  poll([{fd=20, events=POLLIN}], 1, 8) = 0 (Timeout)
1407  gettimeofday({1347196030, 776432}, NULL) = 0
1407  sendto(20, "REGISTER sip:08192.sip.arcor.de "..., 411, 0, {sa_family=AF_INET, sin_port=htons(5060), sin_addr=inet_addr("88.79.152.249")}, 16) = 411
1407  gettimeofday({1347196030, 776690}, NULL) = 0
1407  gettimeofday({1347196030, 776786}, NULL) = 0
1407  time(NULL)                        = 1347196030
1407  gettimeofday({1347196030, 776984}, NULL) = 0
1407  poll([{fd=20, events=POLLIN}], 1, 43 <unfinished ...>
1396  <... poll resumed> )              = 1 ([{fd=14, revents=POLLIN}])
1396  gettimeofday({1347196030, 786805}, NULL) = 0
1396  read(14, "\1\0\0\0\0\0\0\0", 8)   = 8
1396  poll([{fd=15, events=POLLIN}, {fd=14, events=POLLIN|POLLPRI}], 2, -1 <unfinished ...>
1407  <... poll resumed> )              = 0 (Timeout)
1407  gettimeofday({1347196030, 820219}, NULL) = 0
1407  sendto(20, "REGISTER sip:08192.sip.arcor.de "..., 417, 0, {sa_family=AF_INET, sin_port=htons(5060), sin_addr=inet_addr("88.79.152.249")}, 16) = 417
1407  gettimeofday({1347196030, 820488}, NULL) = 0
1407  gettimeofday({1347196030, 820589}, NULL) = 0
1407  time(NULL)                        = 1347196030
1407  gettimeofday({1347196030, 820788}, NULL) = 0
1407  poll([{fd=20, events=POLLIN}], 1, 159 <unfinished ...>
1396  <... poll resumed> )              = 1 ([{fd=14, revents=POLLIN}])
1396  gettimeofday({1347196030, 836794}, NULL) = 0
1396  read(14, "\1\0\0\0\0\0\0\0", 8)   = 8
1396  poll([{fd=15, events=POLLIN}, {fd=14, events=POLLIN|POLLPRI}], 2, -1) = 1 ([{fd=14, revents=POLLIN}])
1396  gettimeofday({1347196030, 886796}, NULL) = 0
1396  read(14, "\1\0\0\0\0\0\0\0", 8)   = 8
1396  poll([{fd=15, events=POLLIN}, {fd=14, events=POLLIN|POLLPRI}], 2, -1) = 1 ([{fd=14, revents=POLLIN}])
1396  gettimeofday({1347196030, 936805}, NULL) = 0
1396  read(14, "\1\0\0\0\0\0\0\0", 8)   = 8
1396  poll([{fd=15, events=POLLIN}, {fd=14, events=POLLIN|POLLPRI}], 2, -1 <unfinished ...>
1407  <... poll resumed> )              = 0 (Timeout)
1407  gettimeofday({1347196030, 980014}, NULL) = 0
1407  read(3, "W:\325\320", 4)          = 4
1407  read(3, "V\323\264>", 4)          = 4
1407  read(3, "\f\213\366\200", 4)      = 4
1407  read(3, "\320!\371%", 4)          = 4
1407  read(3, "=7\251g", 4)             = 4
1407  read(3, "\277\244?\334", 4)       = 4
1407  socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 24
1407  connect(24, {sa_family=AF_INET, sin_port=htons(5060), sin_addr=inet_addr("88.79.152.249")}, 16) = 0
1407  getsockname(24, {sa_family=AF_INET, sin_port=htons(53222), sin_addr=inet_addr("192.168.2.2")}, [16]) = 0
1407  close(24)                         = 0
1407  read(3, " \223\322\315", 4)       = 4
1407  read(3, "\277\236\275\240", 4)    = 4
1407  read(3, "/\2\225_", 4)            = 4
1407  read(3, "\373Z\311F", 4)          = 4
1407  read(3, "\333\352\342\276", 4)    = 4
1407  time(NULL)                        = 1347196030
1407  gettimeofday({1347196030, 981830}, NULL) = 0
1407  sendto(20, "OPTIONS sip:08192.sip.arcor.de S"..., 528, 0, {sa_family=AF_INET, sin_port=htons(5060), sin_addr=inet_addr("88.79.152.249")}, 16) = 528
1407  gettimeofday({1347196030, 982053}, NULL) = 0
1407  gettimeofday({1347196030, 982130}, NULL) = 0
1407  gettimeofday({1347196030, 982213}, NULL) = 0
1407  time(NULL)                        = 1347196030
1407  gettimeofday({1347196030, 982373}, NULL) = 0
1407  poll([{fd=20, events=POLLIN}], 1, 100 <unfinished ...>
 
Zuletzt bearbeitet:
conntrack -F auf dem router war die Lösung
Was evtl. auch helfen könnte ist das setting registertimeout in sip.conf. Den Wert höher als 60 stellen, denn nf_conntrack_udp_timeout ist bei openwrt default auf 60sekunden eingestellt.

Man sieht das Problem auch mit:
cat /proc/net/nf_conntrack | grep 5060
Es ist dann die lokale statt der public ip als dst eingetragen.
 
Zuletzt bearbeitet:
Kostenlos!

Neueste Beiträge

Statistik des Forums

Themen
248,864
Beiträge
2,303,138
Mitglieder
378,516
Neuestes Mitglied
jpttpee