[SR-Users] CANCEL before INVITE

David kamailio.org at spam.lublink.net
Thu Jun 17 22:39:38 CEST 2010


Hello,

I had a look at RFC 3261, section 9.1. The trouble is that Kamailio is 
answering "100 Trying" to the caller, so the it is ok for the caller to 
send back a CANCEL request. Trouble is Kamailio forwards the request to 
the called user even though the called user never sent a provisional 
response.

Since the Kamailio server never received a provisional request, it is 
therefore incorrect for it to forward the CANCEL request to the called 
user. ( correct me if I am wrong ).

I added this code :

  if ( is_method("INVITE") )
{
    t_newtran();
}

The problem is gone. Is this the correct solution ?

David


On 2010-06-17 15:49, David wrote:
> Hey,
>
> I am using a Cisco WIP310 wifi phone. Seeing as wifi is very battery 
> demanding, the phone goes into a standby mode. When it's in the 
> standby mode, it takes a few seconds to come back on.
>
> So I send an INVITE to the phone, statefully using TM, I send out a 
> CANCEL before the phone returns the "180 ringing" message.
>
> Somehow the device is answering the CANCEL before the INVITE, so the 
> result is that it responds to the CANCEL with "481 Call 
> Leg/Transaction Does Not Exist.", after that it responds to the INVITE 
> with a "180 Ringing", the phone than rings indefinitely because the 
> CANCEL is not sent out again as the transaction is completed from the 
> 481 SIP message.
>
> I had a look at the CANCEL, there is no Route: header or tag on the 
> To, so it looks like it is part of a new dialog ( I believe that's 
> what rfc3261 says.
>
> As far as I can tell, my Kamailio is working properly. It is 
> retransmitting the messages at the proper intervals, and it is passing 
> along the messages as it receives them.
>
> The trouble is that the device answers the initial CANCEL before it 
> answers any of the retransmitted INVITEs.
>
> Is there something that I can do in Kamailio to resolve this issue ? 
> Is there an option that I can set that will cause Kamailio to relay 
> the CANCEL only to devices that have already returned a 100 Trying or 
> 180 Trying ?
>
> What information do you need to know about my config? What parts of 
> the SIP trace do you need ?
>
> Thanks,
>
> David
>
> _______________________________________________
> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
> sr-users at lists.sip-router.org
> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users




More information about the sr-users mailing list