another ListeningPoint issue ...

Ryan Mitchell <[email protected]> Sun, 03 Jun 2007 11:57:47 -0700
Newsgroups gmane.comp.voip.nist-sip,gmane.comp.java.jna.user
Message-ID <[email protected]>
Using the following setup:

SipProvider A  --  ListeningPoint A : 192.168.2.3, 5060, udp
SipProvider B  --  ListeningPoint B : 10.0.2.3, 5060, tcp
SipProvider C  --  ListeningPoint C : 10.0.2.3, 5060, udp


All under one SipStack, all using the same SipListener implementation.

I receive a REGISTER request from C.  Next create a ServerTransaction
st = sipProvider.getNewServerTransaction(req);

... application processes the request ...

Response resp = msgFact.createResponse(Response.OK, req);
and send it: st.sendResponse(resp);

Problem is response gets sent out A.  The reason I think is because the
SIPServerTransaction code gets the message channel to use from
sipStack.createRawMessageChannel(this.getPort(), hop); which finds the
first MessageProcessor matching the port number and hop protocol.  And
in my case it finds A (udp, 5060), whereas C should be the correct choice.

If I reconfigure A to use port 5062, no problem.  Is this a problem in
the stack or am I missing something?  I think the only requirement per
RFC 3261 is that is the request is received "secure" that the reply is
also sent secure.  That said, are there any cases where you would want
to respond to a request on a different listening point from which it was
received?

thanks,
--Ryan


-- 
Ryan Mitchell <[email protected]>
Telecom Logic, LLC