Hallo!
Auf der Suche nach dem ultimativen Softphone probiere ich gerade "SJPhone" aus. Folgendes Problem dabei:
Obwohl das Programm mittels STUN korrekt feststellt, welchen Typ von NAT-Router ich habe (eine Monowall, die Port-Restricted Cone NAT macht), verwendet es diese Erkenntnis nicht, um dem Gegenüber (in meinem Test: das VoIP-to-Festnetz-Gateway der Telekom) die korrekte Portnummer beim Setup der RTP-Session bekanntzugeben.
Mit Ethereal habe ich den Netzwerktraffic von SJPhone mitgeschnitten. Dabei ist zu erkennen, daß SJPhone als "meine Portnummer für RTP ist:" seine eigene, LAN-Client-seitige Portnummer im SIP-INVITE bekanntgibt, anstelle über den STUN-Server die Portnummer herauszufinden, die mein Router für die Session verwendet.
X-Lite z.B. macht dies korrekt - bei einem Gesprächsaufbau werden die beiden für RTP und RTCP zu verwendenden Ports mittels STUN "bearbeitet" und der herausgefundene Public-Port des NAT-Routers dem gegenüber mitgeteilt. SJPhone macht dies nicht - mit dem Ergebnis, daß die RTP-Pakete vom Gegenüber am Router abprallen, weil sie an den lokalen Port gerichtet sind und nicht an den öffentlichen.
Frage: ist dies einfach nur ein Bug oder dummes "Feature" in SJPhone (sprich rafft das Programm es einfach nicht), oder bin ich der Dumme und man muß eine Configoption passend setzen?
Gruß,
Frank
Auf der Suche nach dem ultimativen Softphone probiere ich gerade "SJPhone" aus. Folgendes Problem dabei:
Obwohl das Programm mittels STUN korrekt feststellt, welchen Typ von NAT-Router ich habe (eine Monowall, die Port-Restricted Cone NAT macht), verwendet es diese Erkenntnis nicht, um dem Gegenüber (in meinem Test: das VoIP-to-Festnetz-Gateway der Telekom) die korrekte Portnummer beim Setup der RTP-Session bekanntzugeben.
Mit Ethereal habe ich den Netzwerktraffic von SJPhone mitgeschnitten. Dabei ist zu erkennen, daß SJPhone als "meine Portnummer für RTP ist:" seine eigene, LAN-Client-seitige Portnummer im SIP-INVITE bekanntgibt, anstelle über den STUN-Server die Portnummer herauszufinden, die mein Router für die Session verwendet.
X-Lite z.B. macht dies korrekt - bei einem Gesprächsaufbau werden die beiden für RTP und RTCP zu verwendenden Ports mittels STUN "bearbeitet" und der herausgefundene Public-Port des NAT-Routers dem gegenüber mitgeteilt. SJPhone macht dies nicht - mit dem Ergebnis, daß die RTP-Pakete vom Gegenüber am Router abprallen, weil sie an den lokalen Port gerichtet sind und nicht an den öffentlichen.
Frage: ist dies einfach nur ein Bug oder dummes "Feature" in SJPhone (sprich rafft das Programm es einfach nicht), oder bin ich der Dumme und man muß eine Configoption passend setzen?
Gruß,
Frank