[OpenSIPS-Users] loose routing question

Iñaki Baz Castillo ibc at aliax.net
Wed Mar 4 10:54:10 CET 2009


2009/3/4 Brett Nemeroff <brett at nemeroff.com>:
> Question...
> In general the receipient of an INVITE should respond to that invite to the
> address in the contact header, right?

Not exactly. With "respond" you mean reply to a request? or new
in-dialog request sent by the callee?
- SIP replies must arrive to the UAC using the info in Via header (or
the existing TCP connection in case of TCP).
- SIP in-dialog requests must travel through all the proxies that did
loose-routing during the *FIRST* INVITE. This is, the Record-Route
headers that both the UAC and UAS receive (in the 200 Ok and in the
INVITE).


> What if there is a record-route header? That should prevail, right?

ACK for a INVITE-200 is a *new* transaction (so a new in-dialog
request) so it must be sent using the route set (Record-Route URI's
received in the 200 OK in reverse order).


> I'm having a problem that with a single provider, some (not all) calls they
> don't send the BYE from the FAR side of the call back via me, instead it
> goes direct to the originator.
> Example:
> My customer places a call to me. I send to my provider. Provider sends it to
> destination.
> Destination hangs up, BYE goes to my customer instead of me.. My INVITE to
> my provider DOES have a record-route header init.
> Originally, this problem began because my customer would reinvite the call
> right after the call was established and the re-invite, because it was
> in-dialog wouldn't get record routed.
> So I moved my record-route block to before my loose route block.  Now,
> sometimes I get byes.. I'm not sure what I'm doing wrong.. any ideas?

As you said, aproxy shouldn't add Record-Route in an in-dialog request
(re-INVITE). Anyway, if a UAS receives an in-dialog request with
Record-Route it MUST ignore these headers sice route set it just
defined during the initial INVITE.

You are doing nothing wrong, even if your proxy adds Record-Route in
in-dialog requests or not, it doesn't matter.

I would suggest you to do a good ngrep capture and send it to your
provider, pointing also to the RFC 3261 sections speaking about
loose-routing and in-dialog requests.

Regards.

-- 
Iñaki Baz Castillo
<ibc at aliax.net>



More information about the Users mailing list