[ previous ] [ next ] [ threads ]
 To :  andrzej.ciupek@a...
 From :  Stephane <stephane@s...>
 Subject :  Re: [yate] sip cancel close all the session
 Date :  Wed, 04 Jul 2012 06:20:55 +0200
Hi Andrzej,

> It seems, that Yate can only cancel the whole dialog once the 'CANCEL'
> message is received.

There's no way to differentiate the legs in that case, whether it's at
the transaction level or at the dialog level. You must generate a new
branch if you want that kind of behavior to work.

> But there is also a point in RFC: [section 17.1.3]

The section you mentioned says:
- "value of the branch parameter in top Via header"
- "method parameter in CSeq header field"

Notice only the CSeq *method* is mentioned. Since we are outside of a
dialog, the CSeq sequence number present in the CANCEL is a new,
arbitrary number [section 8.1.1.5] and can't be used for matching.

To paraphrase section 5, "a CANCEL request constitutes its own
transaction, but references the transaction to be cancelled."

HTH,
S.