RE: Re: nist-sip 1.2 and NAT traversal : issue with ListeningPoint sentby field
"Brian Wyld" <[email protected]> Thu, 17 Jan 2008 09:17:38 +0100
| Newsgroups | gmane.comp.voip.nist-sip |
|---|---|
| Message-ID | <0a1e01c858e1$6c250330$d000a8c0@marco> |
Ranga, Jeroen, Thanks for the info.... I'm not using stun - which I understand as a way to discover the external NAT IP (mine is a "server" type project, so I can statically configure things like that). Jeroen, I assume I am 'allowed' (in the protocol sense) to fixup the From URI as its just informational? I'll give it a go without adding my own Via header and see if the LP accepts that. cheers Brian > -----Original Message----- > From: Jeroen van Bemmel [mailto:[email protected]] > Sent: Wednesday, January 16, 2008 8:39 PM > To: [email protected] > Cc: Brian Wyld; [email protected] > Subject: Re: [nist-sip] Re: nist-sip 1.2 and NAT traversal : issue with > ListeningPoint sentby field > > > Hi Ranga, > > One could use STUN to discover the public IP address mapping, and to > keep the binding alive towards the proxy (see SIP outbound). However, it > still needs to be communicated to the peer somehow, and absent more > advanced techniques such as temporary GRUUs, SIP outbound (";ob" > parameter in Contact) or ICE, the Contact needs to be modified. > > In any case, for RTP routing the IP address in the SDP needs to > be modified > > Regards, > Jeroen > > M Ranganathan wrote: > > Jeroen, > > > > If stun is used do you need to do that? > > > > Just curious. BTW, you may want to look at the > > sip-servlets.dev.java.net project (runs on jain-sip given that you > > have an interest in Servlets and are on that EG). > > > > Regards > > > > Ranga > > > > > > Jeroen van Bemmel wrote: > >> Brian, > >> > >> There is no need to modify the Via sentby to contain the public IP > >> address. The receiver will fill in the 'received' parameter on the > >> Via, and automatically route back via the public router > >> > >> From is not needed either, as it is only a logical address > >> > >> Only the Contact and SDP need to be modified > >> > >> Regards, > >> Jeroen > >> > >> Brian Wyld wrote: > >>> Hi, > >>> > >>> I've been using the NIST SIP stack, and recently updated to the latest > >>> version (note in passing, great job guys). > >>> > >>> However, my code to deal with calls that are outbound thru a NAT'd > >>> router no > >>> longer works.... If anyone can explain what I'm doing wrong it'd be > >>> a great > >>> help. > >>> > >>> Basically, I want to make calls out (send the INVITE) to > >>> destinations that > >>> may be either on an 'internal' network, or 'public' ie outside of a > >>> NATing > >>> router. > >>> There is no problem for the INVITE sending (using UDP), as the > >>> destination > >>> IP is routable in both cases. My code detects when the destination > >>> is going > >>> via NAT, gets the public IP of the router from a config file, and: > >>> - adds a Via header accordingly > >>> - fixes up the From, Contact etc URIs (change the local IP to > >>> the external > >>> IP) > >>> - ensures the RTP SDP IP is the external IP > >>> This all worked fine until I updated to 1.2.... > >>> > >>> Now, when I send to the public network, I get: > >>> javax.sip.TransactionUnavailableException: sentBy does not match the > >>> sentby > >>> setting of the ListeningPoint 62.212.123.79:5060 > >>> at > >>> > gov.nist.javax.sip.SipProviderImpl.getNewClientTransaction(SipProv > iderImpl.j > >>> > >>> ava:304) > >>> ... etc > >>> My external IP (in the Via, From, Contact etc) is 62.212.123.79 and > >>> my local > >>> IP (to which the ListeningPoint is bound) would have been > 192.168.0.167 > >>> (local server). > >>> > >>> So, when I create the ListeningPoint at initialisation of the server > >>> process, I tried setting the sendby using setSentBy() to be the > >>> external > >>> IP... > >>> > >>> Now, it works when I send to an external destination, but not when I > >>> send to > >>> an internal one! > >>> > >>> Is there a way to stop the ListeningPoint checking its sentby field > >>> against > >>> my Via, From etc headers? Or is my basic method (fixing up the headers > >>> myself) wrong, and I should do it another way? Or do I have to use 2 > >>> SipProvider instances, one for internal calls > >>> (sentby=192.168.0.167:5060) > >>> and one for externals (sentby=62.212.123.79:5060)? (this is not my > >>> preferred > >>> solution....) > >>> > >>> All ideas gratefully received.... > >>> > >>> Brian > >>> > >>> [ Brian Wyld : Eloquant SA ] > >>> [ Directeur technique ] > >>> [ brian.wyld at eloquant.com ] > >>> [ tel: +33 476 77 69 54 ] > >>> [ mob: +33 609 62 10 87 ] > >>> [ fax: +33 476 77 40 65 ] > >> > >> _______________________________________________ > >> nist-sip mailing list > >> [email protected] > >> http://www-x.antd.nist.gov/mailman/listinfo/nist-sip > > > > > >