cwang wrote:
> Hello,
>
> Here is the scenario:
> - we receive an INVITE from the caller with the Caller's Contact
> - we add a ";tag=..." (or ";maddr=...") value to the Contact header
> (inside <>'s)
> - we add a Record-Route header (and do other stuff for Vias, etc)
> - we send the INVITE to the next hop proxy (or the callee)
>
> (we receive and proxy "100 Trying" and "180 Ringing" responses)
>
> - we receive a 200 OK from the callee with the callee's Contact
> - we add ";tag=..." (or ";maddr=...") to the Contact header
> (inside <>'s)
> - we send the 200 OK to the caller
>
> - we receive an ACK from the caller with Route entries
> - the last Route entry does not always have our ";tag=..." param!
>
> The implementation from UA Vendor A does not retain the param that we
> added to the Contact header ... the Route header does not contain
> ";tag=...". We also see that the implementation from UA Vendor B
> does keep the param we added. Our question is which implementation is
> correct?
The one which keeps the param is correct. This is clearly spelled out in
Section 12.1.0.2, which states:
When a UAC receives a response that establishes a dialog, it constructs
the state of the dialog. This state MUST be maintained for the duration
of the dialog. First, the route set MUST be computed 1569
by following these steps: 1570
1. The list of URIs present in the Record-Route headers in the response
are taken, if present, including 1571
all URI parameters, and their order is reversed. 1572
2. The URI in the Contact header from the response, if present, is
taken, including all URI parameters, 1573
and appended to the end of the list from the previous step. 1574
3. The list of URIs resulting from the above two operations is referred
to as the route set. 1575
Then, later on, in 12.2.1.1:
The UAC takes the list of URI in the route set. The top URI MUST be
inserted into the request URI of the request, including all URI
parameters. Any URI parameters not allowed in the request URI MUST then 1617
be stripped. Each of the remaining URIs (if any) from the route set,
including all URI parameters, MUST be 1618
placed into a Route header field into the request, in order. 1619
In both places, it is clear that the URI parameters need to be maintained.
-Jonathan R.
--
Jonathan D. Rosenberg, Ph.D. 72 Eagle Rock Avenue
Chief Scientist First Floor
dynamicsoft East Hanover, NJ 07936
[EMAIL PROTECTED] FAX: (973) 952-5050
http://www.jdrosen.net PH: (973) 952-5000
http://www.dynamicsoft.com
_______________________________________________
Sip-implementors mailing list
[EMAIL PROTECTED]
http://lists.cs.columbia.edu/mailman/listinfo/sip-implementors