Subject: RE: [Sip] Open Issue #130: CANCEL vs. BYE

From: "Fairlie-Cuninghame, Robert" <[email-masked]>
Date: Thu, 20 Sep 2001 05:08:49 -0700

Jonathan,

Won't this simply encourage UA implementors to send a tagged BYE whenever
they receive multiple provisional responses (especially for provisional
responses specifying early media). If UA's start doing this then it will
nullify the usefulness of forking, or rather, mean that forking only has a
good chance of working when local ringback is used. However the callee
doesn't actually know that the call was forked and that local ringback would
therefore be advisable to increase the likely hood of the forked branch not
being "rejected" by the UA.

Robert.

> -----Original Message-----
> From: Jonathan Rosenberg [mailto:[email-masked]]
> Sent: Wednesday, September 19, 2001 8:42 AM
> To: [email-masked]'
> Subject: [Sip] Open Issue #130: CANCEL vs. BYE
> 
> 
> Rohan wrote:
> > #130  "BYE vs. CANCEL"
> >  >To hang up a call before a final response, does the UAC
> >  >1) BYE, no tags
> >  >2) CANCEL, then BYE if 2xx
> >  >3) CANCEL + BYE no tags
> >  >Related: can CANCEL have tags to be "directed"
> >  >Related: can you send BYE for a 1xx "early leg"
> >  >Proposal:
> >  >CANCEL for all, then BYE on 2xx
> >  >You can terminate a particular early leg with BYE w/ tags
> >  >[CANCEL w/ tags is worse since: No bodies, Not e2e]
> 
> THis is the open issue that won't go away. There always seem 
> to be threads
> on it, with continuous dissenters.
> 
> Lets finish this. 
> 
> My proposal remains as above. If you want to hang up a call 
> before a final
> response, you send CANCEL. Any 2xx this may trigger are 
> responded to with
> BYE. Early call legs can be hung up with tagged BYE, which is 
> better than
> putting tags in CANCEL to hang up early call legs.
> 
> Please weigh in for this in either direction.
> 
> -JOnathan R.
> 
> 
> ---
> Jonathan D. Rosenberg, Ph.D.                72 Eagle Rock Ave.
> Chief Scientist                             First Floor
> dynamicsoft                                 East Hanover, NJ 07936
> [email-masked]                     FAX:   (973) 952-5050
> http://www.jdrosen.net                      PHONE: (973) 952-5000
> http://www.dynamicsoft.com
>  
> 
> _______________________________________________
> Sip mailing list  http://www1.ietf.org/mailman/listinfo/sip
> This list is for NEW development of the core SIP Protocol
> Use [email-masked] for questions on current sip
> Use [email-masked] for new developments on the application of sip
> 

_______________________________________________
Sip mailing list  http://www1.ietf.org/mailman/listinfo/sip
This list is for NEW development of the core SIP Protocol
Use [email-masked] for questions on current sip
Use [email-masked] for new developments on the application of sip

---

From: Christer Holmberg <[email-masked]>
Date: Thu, 20 Sep 2001 15:29:12 +0300

Hi Robert,

I am not Jonathan, but I'll comment anyway :)

>good chance of working when local ringback is used. 

First, I think that early media is a separate problem, which has to be
solved, and there is one proposal posted by Jonathan a while ago. 

It IS true that by start sending BYE messages to all-but-one of the legs
you can solve the problem of getting early media from different servers
mixed up, but I don't think that is the only reason why one would start
sending BYE messages. So, from a basic SIP point of view one could argue
that this is not a very big issue (personally I think that early media
is a big enough reason, until we have another solution for that).

However, I think the use of BYE for early legs gets much more clear when
we start talking about different SIP extensions, for example the
manyfolks draft, ISUP transparency etc etc, ie scenarios where the
provisional responses actually may trigger lots of action in the client.

Also, if one doesn't want forking, there are other ways to achieve that.
There is the caller preferences draft, OR one can simply choose to build
a non-forking SIP network...

>However the callee doesn't actually know that the call was forked and that local ringback would

The callee DOES know about the forking, because it starts receiving
provisional responses with different tags. 

No, tags are NOT mandatory in provisional responses, but without them
you can't send a tagged BYE either, so...

Regards,

Christer Holmberg
Ericsson Finland

---

From: Christer Holmberg <[email-masked]>
Date: Thu, 20 Sep 2001 16:09:29 +0300

Hi,

A correction to my own mail. Seemed like I messed up who the "callee"
is... :)

>you can't send a tagged BYE either, so...

So, the callee is the one who sends the provisional responses, ie the
UAS, right? :)

Anyway, I think it is a network architecture/UA configuration issue
if/how/when the UAS shall send local ringback, and when it shall not.
Also, IF we will define some kind of early media negotiation mechanism
the UAS has to ask for permission for early media anyway.

And, the fact is: nobody wants to listen to early media which is a mix
of RTP streams from 10 different servers...

Another way would be to have an indicator if early media is wanted or
not. The UAC can insert it for the whole session in the INVITE, but it
could also be inserted by the forking proxy, if it has some kind of
information about the different servers. Maybe it should also be
possible for the UAC to indicate that to a specific UAS after the
provisional response indicating early media has arrived. Something like:
"hey, I will not terminate your leg, but I have other legs too, so
please don't send any early media". Or something like that...

Regards,

Christer Holmberg
Ericsson Finland