[Serusers] Problem with cancel a invite

Greger V. Teigre greger at teigre.com
Mon Jun 13 15:44:46 CEST 2005


Marian Dumitru wrote:
> I know that the RFC doesn't specify if CANCEL is or not allows within
> the dialog - there were also some discussions on the sip-implementors
> mailing list about how to handle a CANCEL within the dialog.
> Anyhow, IMHO, even if allowed, CANCEL within the dialog makes less
> sense - to be honest I saw no implementation doing something like
> this.

To be honest, I don't allow myself to have an opinion on that.  :-) Being a 
practitioner and not an implementor I try to pick up what the implementors 
are saying. I thought CANCEL within dialog was (although not common) at 
least occuring.

> Now, back to the original subject: as Anders describe his problem, is
> definitely not the case of a within the dialog CANCEL and we should
> come up with some hints relevant to his case and avoid confusing the
>  guy more than necessary ;).

You're definitely right about that ;-)  Sorry, Anders!

> And regarding the t_relay() and CANCEL - there is no need to apply
> same RURI transformations as for INVITE - TM saves the INVITE
> outgoing RURI; when CANCEL comes, it is matched with an INVITE and
> the RURI for CANCEL is automatically taken from the INVITE
> transaction.

THAT I was not aware of. Thank you for telling me, it means that we can 
simplify the ONsip.org reference config files.  :-D
Excellent and thanks,
Greger


> regards,
> Marian
>
> Greger V. Teigre wrote:
>> Hi Marian!
>>
>> Marian Dumitru wrote:
>>
>>> CANCEL has nothing to do with loose route - and it will never hit he
>>> loose route. The Route ser is set only when the dialog is
>>> established (200 ok); and CANCEL happens *before* the dialog
>>> completion. The big idea with CANCEL is to take care to route it 
>>> *exactly* as
>>> its INVITE.
>>
>>
>> AFAIK, CANCEL can happen both in-dialog and outside a dialog.  This
>> was a part of the verification we did when developing the ONsip.org
>> reference config filers. I'm not sure if the discussion was on
>> serusers or not, but as far as I remember, there is situation where
>> CANCEL will be in-dialog and thus can take the loose route path,
>> i.e. reINVITEs. As you will see in the ONsip.org config files, CANCEL is 
>> handled as
>> an INVITE, but loose route test is done *before* the test on CANCEL
>> to make sure that any in-dialog CANCELs are handled properly.
>>
>>> As a hint, if you use TM, t_relay() all the time will take care to
>>> send the CANCEL to same destination as INVITE.
>>
>>
>> ... as long as you have done the same r-uri transformations as with
>> the INVITE.
>> g-)
>>
>>> regards,
>>> Marian
>>>
>>> Greger V. Teigre wrote:
>>>
>>>> Most likely you don't handle the CANCEL messages correctly. May be
>>>> that you don't do proper loose route handling.  Take a look at the
>>>> example configs (and the Getting Started document) at
>>>> http://onsip.org/  You gain much be following the logic found
>>>> there, they have been verified for all kinds of situations...
>>>> g-)
>>>>
>>>> Anders Hansson wrote:
>>>>
>>>>> Hi all,
>>>>> I´ve got a problem when trying to cancel an invite.
>>>>> The situation: A makes a call to B (INVITE). B press the "hang up"
>>>>> button. An here comes the problem.
>>>>> From As side, everything is OK, but from Bs side, the phone is
>>>>> still ringing...
>>>>> How can a solve this problem? Anyone?
>>>>>
>>>>> Thanks,
>>>>> Anders 




More information about the sr-users mailing list