[Serusers] more about record route

Jiri Kuthan jiri at iptel.org
Sun Jan 11 22:56:58 CET 2004


At 10:40 PM 1/11/2004, Greg Fausak wrote:
>I have a hard time articulating my real question :-)
>
>What I was asking was :
>
>As long as I record route an INVITE, does that make
>everything else record-routed (meaning that I pick it up with
>the loose_route())?

After an INVITE, which initiated a call, was record-routed
(proxy inserted Record_route using record_route()), subsequent
SIP requests belonging to the same call (BYE typically)  must take 
the same path. That is accomplished as follows: UAs must put 
record-routing information collected using INVITE in Route header
fields of the BYE and proxy servers must forward the request
using this information (as opposed to executing some other
routing logic.) SER implements this with the action loose_route().

Note that CANCEL takes the same path but not because of record-routing.
Routing information has not been recorded yet before 200 came back.
There is other way to keep CANCEL in the same path as INVITE.
All SIP elements are supposed to remember INVITE transaction until
finished and if a CANCEL comes, send it to the same adress to which 
they sent INVITE.


>The answer is no, you still have to route calls...loose_route()
>doesn't pick up everything.
>
>Anyway, here is a packet trace from a call.
>
>1) Inbound, through a PSTN.
>2) Routed to the UA.
>3) The caller hangs up, causing a cancel.
>
>Does the trace look right?  In particular, the CANCELing 200
>message and the cancelled 487...is that the way it is supposed
>to look?

yes, the attached call flow seems correct to me. 

Some other example call-flows in IETF documents may look slighlty 
different but that's not normative. Particularly, the 487 may be
forwarded from downstream (as opposed to generating them localy
by proxy) but that would add extra latency if downstream UAS becomes 
unresponsive.

-jiri    




More information about the sr-users mailing list