Ramesh wrote:
> I think, we will send CANCEL/BYE in the Refer-to header only to Terminate
> other dialogs. If we have to Terminate the REFER dialog itself we don't have
> to send it using another REFER Message.
> BYE is a Dialog Terminator so we can send a BYE for the REFER Dialog.
BYE is *not* a dialog terminator - it terminates an invite dialog usage.
It never affects a REFER dialog usage. If an invite dialog usage and a
refer dialog usage share a dialog then a BYE will terminate the invite,
but the dialog will remain until the refer dialog usage is terminated.
The refer dialog usage is terminated by the sending of a NOTIFY that
indicates the usage is ended. That can be requested by sending a
reSUBSCRIBE for the refer event within the usage with an expiration time
of zero.
> Like BYE, CANCEL is a transaction Terminator.
CANCEL also doesn't actually terminate a transaction. It *requests* that
a transaction be terminated, but that request can be ignored.
BYE doesn't terminate any transaction.
This stuff is not clear in the RFCs. The dialogusage draft and the
race-examples draft help clarify some of this.
> Here is snipet from RFC3261 Section 5 about CANCEL
> "A TU that creates a client transaction can also cancel it. When a client
> cancels a transaction, it requests that the server stop further processing,
> revert to the state that existed before the transaction was initiated, and
> generate a specific error response to that transaction. This is done with a
> CANCEL request, which constitutes its own transaction, but references the
> transaction to be cancelled (Section 9)."
> AND from Section 9.
> "The CANCEL request, as the name implies, is used to cancel a previous
> request sent by a client. Specifically, it asks the UAS to cease processing
> the request and to generate an error response to that request."
>
> Here is the call flow in my mind.
Your call flows got mangled. I'm not going to attempt to guess what they
attempt to show.
Paul
> 3PCC
> ALICE BOB
> -----------
> ----------- -----------
> |
> | |
>
> |------------REFER----------------------------------->|
> |
> |<-------------------202
> ---------------------------------|
> |
> |
> | |
> |
> |------------INVITE------------------------>|
> |-------------BYE(for REFER
> Dialog)----------->| |
> |
> |------------CANCEL--------------------->|
> |<-----------200 OK------------------------------------|<------------200
> OK ----------------------|
> |
> | |
> |
> |<----------487-------------------------------|
> |
> | |
>
>
>
>
> Likewise in Section 15 RFC talks about Termination of Session/Dialog which
> is done by using BYE.
>
> I read the RFC and it does not explicitly address this issue. The other
> option is that REFER creates an implicit Subscription and we could terminate
> the subscription which would cause and end of the dialog too. The only issue
> with this solution is that we will have to deal with the transaction not
> being terminated when the subscription is terminated.
> Call flow using subscription to
> 3pCC Alice
> --------- --------------
> | |
> |--------(OOD) REFER--------->|
> | |
> |----Subscribe(Expire=0)----->|
> | |
> |<----------200 OK-----------------|
> |<----------487(REFER)----------|
>
>
> Thanks
> Ramesh
>
>
> On 1/4/07, Sanjay Sinha (sanjsinh) <[EMAIL PROTECTED]> wrote:
>> You can not send a CANCEL to cancel REFER. You can send another REFER
>> with method CANCEL/BYE in Refer-To header to terminate the dialog
>> created as a result of initial REFER. That also needs you to know the
>> dialog identifiers of that dialog that you want to cancel or bye. You
>> can get that by subscribing to "dialog" event package.
>>
>> Pl. see this: draft-mahy-sip-remote-cc-04.txt
>>
>> Sanjay
>>
>>
>>> -----Original Message-----
>>> From: [EMAIL PROTECTED]
>>> [mailto:[EMAIL PROTECTED] On Behalf Of Ramesh
>>> Sent: Thursday, January 04, 2007 6:28 PM
>>> To: [email protected]
>>> Subject: [Sip-implementors] OOD REFER Dialog Termination
>>>
>>> Hi,
>>> Here is another question I have with regard to Usage of
>>> REFER in 3pcc. If we have started a OOD-REFER and wish to
>>> CANCEL the dialog; ie the originator of the dialog wishes the
>>> cancel the Dialog. Can I send a CANCEL message if we have not
>>> received a confirmation 2xx message and a BYE message if we
>>> have received a dialog Confirmation. I haven't seen anything
>>> in the RFC the explicitly forbids me from doing it.
>>>
>>>
>>> --
>>> cheers
>>> ramesh
>>> _______________________________________________
>>> Sip-implementors mailing list
>>> [email protected]
>>> https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors
>>>
>
>
>
_______________________________________________
Sip-implementors mailing list
[email protected]
https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors