I think SIP Servlets containers could (and should) support this.
This API allows you to get the remote address on which a message has been
I guess this method could give you the public IP adress from which the
message was received.
Then the application would have to populate the received and rport params of
the topmost Via Header so that for the response routing, the response goes
to the public IP Address.
For subsequent requests sent by the application hosted on the Sip Servlet
container, however this might prove a bit more complicated but ultimately
the application should have a way to tell the container where it wants it to
route the request really - I guess this could be achieved through some
vendor params on the Request URI or some extra API on SipServletRequest
interface that would be integrated in a next rev of the spec to specify the
outbound destination ip address and port. wdyt ?
Feedback from anybody is welcome here. NAT is a PITA, I second the IPv6 move
as well Ranga
Thanks for the clarification. So STUN is only used (if enabled) to set the
IP address in the SDP then.
I think it is a problem with all SIP servers implemented on SIP servlet
containers because the SIP servlet API does not really support this
When you say 'most servers would forward requests to the address:port pair
that a client is registered on anyway' are you referring to specific SIP
server software (e.g. asterisk, SERS), or public SIP services?
Can you provide an example that works with SIP communicator? I am thinking
I can front my server with one of these and work around the problem.