Asterisk auf FB an anderer FB anmelden

kvogelsa

Neuer User
Mitglied seit
20 Feb 2007
Beiträge
29
Punkte für Reaktionen
0
Punkte
0
Ihr Lieben,

ich habe ein Problem, was ich mit googeln nicht erledigt bekomme.

Wir haben einen IP-basierten Anschluss von Netcologne, daran hängt eine FB7272.

Dahinter hängt neben dem Lan mit PCs etc. eine FB7170SL. Auf dieser 7170 ist Asterisk installiert. Wir haben drei Grandstream 2020 als SIP-clients am Asterisk.

Was funktioniert:
FB7272 ist Online, alle PCs können ins Internet.
Ein ISDN-Telefon an der FB7272 (am internen S0) kann raustelefonieren und wird von außen erreicht.
Die FB7170SL ist online, Firmwareupdate bzw. -anfrage funktioniert.
Die VOIP-Telefone können sich am Asterisk der FB7170SL anmelden. Interne Gespräche und BLF funktionieren. Anrufe nach außen funktionieren.
Der Asterisk auf der FB7170SL registriert sich an der FB7272 als SIP-Client.
Eingehende Anrufe kommen auf der FB7272 an.

Was nicht funktioniert:
Eingehende Anrufe werden nicht an den Asterisk auf der FB7170SL signalisiert. FB7272 gibt als Fehlermeldung
Code:
Internettelefonie mit [email protected] über 192.168.100.100 war nicht erfolgreich. Ursache: Not Found (404)

Schema:

Code:
TK-Netz --- Netcologne --- FB7272 --- LAN ---FB7170SL/Asterisk --- LAN --- VOIP-Telefon

Firmware FB7272:
Code:
120.06.20
Firmware FB7170SL:
Code:
29.04.88
SIP-Client-Einstellung an der FB7272:
sip1.png

sip2.png

IP der FB7272 lautet 192.168.100.10
IP der FB7170SL lautet 192.168.100.100

Dateien des Asterisk
Code:
# cat /etc/hosts
127.0.0.1 localhost
192.168.100.10 fritz.box
# hostname 
Asterisk
# cat /etc/asterisk/sip.conf 
[general]
context=Eingang                 ; Default context for incoming calls
disallow=all
allow=g726
allow=ulaw
allow=alaw
allow=gsm
allowsubscribe=yes
notifyringing = yes
notifyhold = yes
limitonpeers = yes
bindport=5061                   ; UDP Port to bind to (SIP standard port is 5060)
bindaddr=0.0.0.0                ; IP address to bind to (0.0.0.0 binds to all)
tcpenable=yes
tcpbindaddr=0.0.0.0:5061
;tlsenable=yes                  ; tls is not enabled by default
;tlsbindaddr=0.0.0.0:5062       ; default tls port is 5061 which conflicts with
                                ; default fritzbox asterisk sip port 5061
srvlookup=yes                   ; Enable DNS SRV lookups on outbound calls
language=de

register => 620:**************@fritz.box/620
[Fritzbox]
username=620
secret=**************
type=friend
insecure=port,invite
host=fritz.box
qualify=yes 
fromdomain=fritz.box
fromuser=620
context=Eingang
nat=no
dtmfmode=rfc2833


[VG]
username=VG
type=friend
secret=**************
allow=all
qualify=yes
nat=no
host=dynamic
canreinvite=no
context=Ausgang
callerid=<10>
subscribecontext = Ausgang
call-limit = 10
callgroup = 2
pickupgroup = 2

# cat /etc/asterisk/extensions.conf
[globals]
[general]
static=yes
writeprotect=no
[Eingang]
exten => 123456789,1,Dial(SIP/VG,,tT)
[Ausgang]
exten => 10,hint,SIP/VG
exten =>  10,1,Dial(SIP/VG,,tT) ;interne Durchwahl auf die Telefone
exten =>  _XXX.,1,Dial(SIP/${EXTEN}@Fritzbox,,rT)

Ausgaben unter asterisk -r:
Code:
Asterisk*CLI> sip show users
Username                   Secret           Accountcode      Def.Context      ACL  NAT       
 

VG                        ****                           Ausgang          No   RFC3581   

Fritzbox                   ****                   Eingang          No   RFC3581   

Asterisk*CLI> sip show peers 
Name/username              Host            Dyn Nat ACL Port     Status     
VG/VG                      192.168.100.102  D          5060     OK (65 ms) 
Fritzbox/620               192.168.100.10              5060     OK (20 ms) 
2 sip peers [Monitored: 2 online, 0 offline Unmonitored: 0 online, 0 offline]

Asterisk*CLI> sip show registry 
Host                            Username       Refresh State                Reg.Time                 
fritz.box:5060                  620                285 Registered           Mon, 16 Mar 2015 08:32:53
1 SIP registrations.

Wie gesagt, mein Problem lautet
Code:
Internettelefonie mit [email protected] über 192.168.100.100 war nicht erfolgreich. Ursache: Not Found (404)
bei eingehenden Anrufen.
Wenn ich einem VOIP-Telefon als SIP-Client den Context EINGANG zuweise, klappt der Anruf.

Ich bin für jeden Hinweis dankbar.
 
Zuletzt bearbeitet:
Du brauchst eine exten=>620 in [Eingang].

Das CLI hätte Dir das ab verbose 2 (asterisk -rvv) auch verraten ;-)
 
Danke für die schnelle Antwort.

Habe es umgestellt; es lautet jetzt:
Code:
# cat /etc/asterisk/extensions.conf
[globals]
[general]
static=yes
writeprotect=no
[Eingang]
exten => 620,1,Dial(SIP/VG,,tT)
[Ausgang]
exten => 10,hint,SIP/VG
exten =>  10,1,Dial(SIP/VG,,tT) ;interne Durchwahl auf die Telefone
exten =>  _XXX.,1,Dial(SIP/${EXTEN}@Fritzbox,,rT)

Leider keine Veränderung.

Die Asterisk CLI bleibt übrigens stumm bei einem Anruf, auch bei verbosity == 2.
 
Wenn Asterisk eine 404 schickt, muss davon auch in der Konsole was zu sehen sein, typischer Weise in der Art "extension not found in context". An der logger.conf hast Du nichts gedreht, oder? Stell verbose auf 5, das reicht für Warnings auf jeden Fall. Wenn sich immer noch nichts tut, sip set debug on, damit man die Pakete sieht.

Nichts desto Trotz sollte es so eigentlich funktionieren, probier statt fritz.box mal die IP-Adresse.
 
Code:
# cat /etc/asterisk/logger.conf 
; Logging Configuration
[general]

[logfiles]
console => warning,error
;console => notice,warning,error,debug
;messages => notice,warning,error,debug
messages => error
full => notice,warning,error,debug

Auch auf verbose = 5,6 oder 10 tut sich nichts bei einem externen Anruf.

Das log nach sip set debug on habe ich mal drangehängt. Ist ein Auszug soweit die Konsole es hergab. Der Fehler 404 taucht in der Tat auf, allerdings ohne dass es einen Anruf gab. Eine Ursache kann ich nicht erkennen.

edit: Umstellung auf IP brachte auch nichts.
 

Anhänge

  • log.txt
    19.3 KB · Aufrufe: 7
Zuletzt bearbeitet:
Der Fehler 404 taucht in der Tat auf, allerdings ohne dass es einen Anruf gab.

Äh ja, es wäre aber schon nicht schlecht, wenn Du versuchen würdest anzurufen, während das Log läuft :gruebel:

Das ist zwar alles voll mit OPTIONS (Keep-Alive), REGISTER, SUBSCRIBE und NOTIFY, aber das hat ja alles nichts mit dem Problem zu tun. Du könntest allenfalls noch ein Trace auf dem LAN Interface der 7272 anwerfen und dort mal kucken, wo die die INVITE eigentlich hin schickt.
 
Äh ja, es wäre aber schon nicht schlecht, wenn Du versuchen würdest anzurufen, während das Log läuft :gruebel:
Na klar, das habe ich: ohne Ergebnis.

Das ist zwar alles voll mit OPTIONS (Keep-Alive), REGISTER, SUBSCRIBE und NOTIFY, aber das hat ja alles nichts mit dem Problem zu tun. Du könntest allenfalls noch ein Trace auf dem LAN Interface der 7272 anwerfen und dort mal kucken, wo die die INVITE eigentlich hin schickt.
Versuche ich, komme ich aber erst Ende der Woche zu. Hat jemand eine ANleitung griffbereit, wie ich das mache?
 
Moins

Auf der Fritz!Box gibt es einen beschränktes (Pufferspeicher) SIP Log.
Dafür musst du den telnetd auf der Box aktivieren, z.B. mit einem DECT Telefon: #96*7*
Dann mit Windows/Linux: telnet fritz.box
...oder mit PuTTY.
Nach erfolgreichen Einloggen: showshringbuf sip

Aber Vorsicht, da können beunruhigende Sachen auftauchen.
So hab ich letztens herausgefunden, dass es "friendly-scanner" gibt...
Code:
2015-03-04 23:07:04.831 - IN: my=192.168.178.1:5060 peer=178.162.211.207 port=5126 UDP, sipiface=none:
OPTIONS sip:[email protected] 2.0
Via: SIP/2.0/UDP 178.162.211.207:5126;branch=z9hG4bK-3236106294;rport
From: "sipvicious" ;tag=3564646332643737313363340132393535383137323239
To: "sipvicious" 
Call-ID: 934802218859212768070634
CSeq: 1 OPTIONS
Contact: 
User-Agent: friendly-scanner
Max-Forwards: 70
Accept: application/sdp
Content-Length: 0



2015-03-04 23:07:04.835 - OUT: my=192.168.178.1:5060 peer=178.162.211.207 port=5126 UDP, sipiface=none tcclass=sip, netmark=0:
SIP/2.0 404 Not Found
Via: SIP/2.0/UDP 178.162.211.207:5126;branch=z9hG4bK-3236106294;rport=5126
From: "sipvicious" ;tag=3564646332643737313363340132393535383137323239
To: "sipvicious" ;tag=BD7502D905D8E12C
Call-ID: 934802218859212768070634
CSeq: 1 OPTIONS
User-Agent: FRITZ!OS
Content-Length: 0
...sowas kann Paranoia hervorrufen. :mrgreen:

Mit dem telnetd kannste dir so auch einen "Webserver" dafür basteln...

1. Datei erstellen und mit chmod +x ausführbar machen...
shshbsip.sh
Code:
#!/bin/sh
echo 'content-type: text/plain; charset="utf-8"
'
showshringbuf sip
#EOF
Code:
chmod +x shshbsip.sh
2. Diese Datei als Login für telnetd auf Port 999 benutzen...
Code:
telnetd -l shshbsip.sh -p 999
3. Mit einem Webbrowser diese Adresse aufrufen: "http://fritz.box:999"
 
Zuletzt bearbeitet:
Ich hätte es hiermit gemacht. Das kann man dann schön in Wireshark durchsuchen bzw. filtern.

Jedenfalls sind die INVITE Pakete von Bedeutung, in denen die 620 gerufen wird. Offensichtlich gehen die, obwohl Asterisk korrekt registriert ist, nicht an dessen Adresse/Port.
 
Danke für die Tips.

Ich habe auf der FB7272 gelogged.

Ich meine das Problem erkannt zu haben. Der Asterisk läuft auf Port 5061. Mit diesem Port registriert er sich auch. Der ankommende Ruf scheint aber auf Port 5060 zu klingeln, was ja nicht funktionieren kann.

Interpretiere ich das logfile richtig? Und: falls ja, wie löse ich es.
 

Anhänge

  • log2.txt
    12.5 KB · Aufrufe: 7
Moins

Meine Interpretation...

Asterisk registriert sich an der "[email protected]".
Das Erstemal ohne nonce schmettert die fritz.box ab (und liefert nonce).
Das Zweitemal mit nonce gelingt (OK).
Asterisk will dann die OPTIONS anfordern ("To: <sip:fritz.box>").
Sowas verbietet die fritz.box und schmettert dass ab.

Der Call:
Das INVITE nach...
"To: <sip:[email protected]>"
...schlägt fehl: not found

Schau mal als was sich Asterisk registriert hat, mit: showvoipdstat (auf der fritz.box)
...steht bei:

SIP Clients:
....
Da könnte dann sowas stehen...

9: registered last status 2 -- reachability 100 %
contact 0: iface=homenet: host=sip:[email protected], my=192.168.178.1, expire Thu Mar 19 10:57:40 2015
contact 1: iface=homenet: host=sip:[email protected]:5060, my=192.168.178.1, expire Thu Mar 19 10:57:29 2015
 
Zuletzt bearbeitet:
et voila:
Code:
SIP Clients:
0: registered last status 2 -- reachability 100 %  
        contact 0: iface=homenet: host=sip:[email protected], my=192.168.100.10, expire Thu Mar 19 11:38:08 2015
 
Asterisk läuft lokal auf Port 5061?
Wenn ja, wieder lokal 5060 nehmen.
UDP/TCP 5061 ist für SIP/TLS vorgesehen.
(Zur Info: Verschlüsselung geht über die fritz.box SIP überhaupt gar nicht, unmöglich)
Wenn Asterisk auf der fritz.box läuft, dann nimm für SIP: UDP/TCP 5070

Eine Internetfreigabe, wenn geplant/gewollt würd ich 10 Ports höher anlegen: SIP: UDP/TCP 5070
Aber dann brauchst du auch die Dynamic-Range für: RTP: UDP [port range]

Bei Asterisk@F!B kann das in der ar7.cfg freigegeben werden.
Wenn du willst zeig ich dir wie es geht.

Und auch rentier-s Tip prüfen, mit dem Context. ;)
 
Zuletzt bearbeitet:
Der Dialplan ist ja bereits korrigiert, aber so lange kein Invite ankommt, nutzt das alles nichts. 5060 wird wohl vom voipd belegt, das müsste man erst umstellen, damit Asterisk den haben kann. Es ist aber auch kein Problem, in Asterisk einen anderen bindport zu benutzen, ich hab früher auch 5061 benutzt und das ging wunderbar, wegen vielleicht mal SSIP auf 5062 umgestellt.

So schaut das Register bei mir aus:

Code:
REGISTER sip:192.168.2.1 SIP/2.0
Via: SIP/2.0/UDP 192.168.2.2:5062;branch=z9hG4bK04489fff
Max-Forwards: 70
From: <sip:[email protected]>;tag=as71dabaf3
To: <sip:[email protected]>
Call-ID: [email protected]
CSeq: 103 REGISTER
User-Agent: Asterisk_11
Authorization: Digest username="620", realm="fritz.box", algorithm=MD5, uri="sip:192.168.2.1", nonce="3CFxxxxxxA0E", response="9b8127xxxxxxxx26960d"
Expires: 1800
Contact: <sip:[email protected]:5062>
Content-Length: 0

Anders als bei Dir kein rport, dafür aber der bindport im Contact. Das wird wohl auch der Haken sein. Woran das liegt, keine Ahnung :noidea:
 
Ich habe eine Portänderung auf 5070 versucht, ohne Effekt.

edit: Ich habe den Asterisk@fb umgestellt auf port 5060. Erwartungsgemäß hat der register nicht geklappt. Aber mittels
Code:
nvi /var/flash/voip.cfg
habe ich
Code:
sip_srcport = 5059;
eingestellt. Nun geht es. Scheint mir zwar als schmutziger workaround, aber ich brauche den voipd nicht.

Vielen Dank an die Hilfe von Euch. Ohne dieses Forum hätte ich das sicher nicht hinbekommen.

Schönes Wochenende!
 
Zuletzt bearbeitet:

Statistik des Forums

Themen
244,693
Beiträge
2,216,639
Mitglieder
371,311
Neuestes Mitglied
agl7
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.