Subject: Re: Tag in 200 OK response for CANCEL

From: [email-masked]
Date: Fri, 3 Mar 2000 09:16:25 +0530

Hi,
With Henning's clarification of the para,:

hgs> A UAS or redirect server {\MUST} add a ``\header{tag}'' parameter for
hgs> all final responses for all transactions within a call leg. All such
hgs> parameters have the same value within the same call leg. These
hgs> servers {\MAY} add the \header{tag} for informational responses during
hgs> the initial {\INVITE} transaction, but {\MUST} add a tag to
hgs> informational responses for all subsequent transactions.

relooking at  the initial question which Sudipto asked:

> sm> Also, does a UAC receiving a BYE (Called Party Release) need to add
> sm> a tag in the "To" header of the 200 OK response ? The From header
> sm> in BYE has a tag but there is *no* tag in the To header.

Can one conclude that the above case will never happen as before BYE, when
the first
INVITE reaches the UAS without a tag, it MUST add the tag in its 200 OK.
Now this tag MUST
be the used in all subsequent transactions, so receiving a second
transaction without a tag
can never happen, unless the sending side is broken ? And in the case it is
broken, ie BYE comes
now without a tag (though the UAS had send 200OK for INV with a tag) , the
UAS cant match the response since the call -leg does not match. He discards
it ? (or does he accept it?)
If the above is true, then tag is only needed to be added in the first
transaction, isnt it ?

Thanks
Regds
Arjun

--
Arjun Roychowdhury @ Hughes Software Systems

[email-masked] on 03/02/2000 02:26:14 PM

To:   Jonathan Rosenberg <[email-masked]>
cc:   archow, Sudipto Mukherjee <[email-masked]>,
      [email-masked]

Subject:  Re: Tag in 200 OK response for CANCEL

Hi,
Im a little confused here.
my understaning was that a UA receiving a message with more than one Via or
a mcast address in it MUST add a tag.
Even if say, A sent an INVITE to B thru some proxy P which forked, B now
gets the INVITE and puts a tag in its 200 OK since there are now 2 Vias. A
gets the 200 OK with the tag that B inserted. however A did not know of the
Tag when it sent it  .
However, this tagged response is the matching response for a request which
A sent which was not tagged by itself.
So isnt this scenario same as the case for subsequent requests with
messages sent without a tag ?

Now are we saying that the above specification of inserting tags by UAs
holds true only for the first transaction of a call leg and not any more ?

Regds
Arjun

--
Arjun Roychowdhury @ Hughes Software Systems

> sm> Also, does a UAC receiving a BYE (Called Party Release) need to add
> sm> a tag in the "To" header of the 200 OK response ? The From header
> sm> in BYE has a tag but there is *no* tag in the To header.
>
> Yes, again I think it should. A "tag" in the From field is used if
multiple
> callers use the same From address. This has nothing to do with forking of
> messages by proxies as such.

jr> I disagree here as well. The local and remote addresses (obtained from
jr> the To and From fields, including the tags) that identify the call leg
jr> are established upon call setup, and remain fixed for the duration of
jr> the call leg. Adding a tag in a subsequent request (BYE or re-INVITE)
is
jr> going to alter this identifier and likely cause one side or the other
to
jr> not be able to match requests or responses to a particular call leg.

---

From: Shail Bhatnagar <[email-masked]>
Date: Fri, 3 Mar 2000 00:43:09 -0500 (EST)

Arjun, I think Sudipto referred to BYE from called party ( so the To 
in the BYE request will not have a tag - unless the caller put a tag in
the From of the initial INVITE).

The bottom line for me from this thread is that a tag MUST be appended 
to the To header of the final response to an INVITE request. ( unless it is 
re-INVITE request)
It should not be appended for final responses to non-INVITE requests.

Henning/Jonathan is that a correct statement ??

Thanks,
Shail

---

From: Jonathan Rosenberg <[email-masked]>
Date: Fri, 03 Mar 2000 01:24:46 -0500

> the From of the initial INVITE).

Yes, this is exactly the problem.

> Henning/Jonathan is that a correct statement ??

Yes, but what it boils down to is:

A UAS {\MUST} add a "\header{tag}" parameter to the final response of an
initial \INVITE request for a call. It \MAY add the \header{tag} for
informational responses during the initial \INVITE transaction.  For any
requests after the call is established, responses to an \INVITE copy the
\header{To} and \header{From} fields, including any tags which may have
been present.

-Jonathan R.
-- 
Jonathan D. Rosenberg                       200 Executive Drive
Chief Scientist                             Suite 120 
dynamicsoft                                 West Orange, NJ 07052
[email-masked]                     FAX:   (732) 741-4778
http://www.cs.columbia.edu/~jdrosen         PHONE: (732) 741-7244
http://www.dynamicsoft.com

---

From: Sudipto Mukherjee <[email-masked]>
Date: Fri, 03 Mar 2000 10:10:22 -0500

Hi Arjun,

> > sm> in BYE has a tag but there is *no* tag in the To header.

This scenario will happen in a normal case (when UAS initiates
disconnect)
and not necessarily when the sending side is broken.

   UAC                             UAS
         INV From:UAC, To:UAS
     ------------------------------>
      200 OK (From:UAC, To:UAS;tag=123
     <------------------------------
      ACK (From:UAC, To:UAS;tag=123)
     -------------------------------->

     <Call is Active, UAS side initiates disconnect>

         BYE(From:UAS;tag=123, To:UAC)
     <-------------------------------
       200 OK (From:UAS;tag=123, To:UAC)
     -------------------------------->

Now if the Called Party disconnects, the BYE generated by the
UAS will *not* have a Tag in the To header. The From header has the
tag, in this case. From and To are flipped when the request is
generated by UAS.

As I understood from Jonathan's reply, the From and To (including
the tags) are established during call setup phase and should remain
the same for subsequent transactions within the same call. Hence there
is no need for the UAC to add a tag in the BYE 200 OK response.

Thanks
- Sudipto

-- 

---------------------------------------------------------------------------
Sudipto Mukherjee
Cisco Systems, Inc             [email-masked] 
7025 Kit Creek Rd              919-392-5780
PO Box 14987
Research Triangle Park, NC 27709          
--------------------------------------------------------------------------

---

From: Jonathan Rosenberg <[email-masked]>
Date: Sun, 05 Mar 2000 18:05:38 -0500

> and not necessarily when the sending side is broken.

The same goes for a re-INVITE.

> is no need for the UAC to add a tag in the BYE 200 OK response.

Exactly correct. I believe this to be the simpler case, since otherwise,
call leg identifiers can change post call setup. This can be handled,
but it seems more complex that specifying not to insert the tag in
responses to transactions after the call is established.

-Jonathan R.