Also irgendwas haut hier nich hin... sorry, dass ich den Thread irgendwie zweckentfremde vom ursprünglichen Thema, aber irgendwie passts schon rein. Nach außen anrufen kann ich natürlich immer, aber einkommende Anrufe sind nur teilweise möglich, siehe unten. Also, folgendes passiert: A) STUN an, UPnP aus -> öffentliche IP wird korrekt registriert, aber alle 30 sek erfolgen STUN-Anfragen an stun.sipgate.net:10000 und _nicht_ an den SIP-Server&Port; Ergebnis: Telefon nicht erreichbar nach kurzer Zeit (= klingelt nicht, Pakete kommen nicht an) B) STUN an, UPnP an -> wie A C) STUN aus, UPnP aus -> private IP wird im Register geschickt, aber Antwort: '<sip:xxxxx@192.168.20.101:5061>;expires=600;received="sip:83.221.70.xx:5061"', d.h. sipgate ist clever genug und rport/received funktioniert; UND: Phoner sendet kein Keep-Alive, da Sipgate auf dem Sip-Port seinerseits alle 15sek ein keep-alive sendet (kein STUN, nur UDP-Paket an 5061 mit 00000000 als Inhalt), das passierte bei A nicht -> Ergebnis: Telefon bleibt erreichbar! D) STUN aus, UPnP an -> wie C Ich habe keine Ahnung, wieso ich es nicht mehr hinkriege, dass STUN über den SIP-Port nach RFC 5626 gesendet wird. Es liegt natürlich daran, dass bei C/D der Kanal noch Aktivität hat durch die eingehenden Keep-Alives von Sipgate, aber gestern wars halt anders, da kamen von Sipgate keine Keep-Alives, soweit ich mich erinnere. Wie auch immer, es funktioniert. OK, fassen wir mal zusammen.... Phoner registriert sich ohne eingetragenen STUN-Server mit der privaten IP, was nur mit Glück gutgehen kann. Wenn ich aber einen STUN-Server eintrage und damit im Contact alles korrekt wird mit öffentlicher IP, wird ab dann aber nicht STUN auf dem SIP-Port verwendet, sondern STUN mit dem STUN-Server, was schlecht ist, da dann das NAT-Mapping verloren gehen kann (wie in Fall A,B). In meinem Fall ist die Lösung, auf STUN zu verzichten und die etwas unschöne Angabe der privaten IP im Contact-Feld zu akzeptieren, aber geht's denn nicht besser? Ich glaube, hier ist ein Bug drin. Wenn ein STUN-Server eingetragen wird, sollten dann nicht trotzdem nach der 1. Anfrage an den STUN-Server die Keep-Alives an den SIP-Port gehen? Falls der SIP-Server diese integrierte Form von STUN nicht kennt und dadurch keine Antwort sendet, schadet es ja nicht, da dadurch zumindest das NAT Mapping bestehen bleibt. Allerdings sollte man dann bei fehlender Antwort zusätzlich den angegebenen STUN-Server ab und zu befragen, um einen IP-Wechsel mitzubekommen. Macht das Sinn?
|