Hi,
Actually the implementation of this could be You will do a REGISTER once u 
receive a response for un-REGISTER, which shall avoide the race condition..

/Sreenath

----- Original Message ----
From: zhang jw <[EMAIL PROTECTED]>
To: "[EMAIL PROTECTED]" <[EMAIL PROTECTED]>
Cc: [email protected]
Sent: Saturday, 3 March, 2007 9:58:41 AM
Subject: Re: [Sip-implementors] How to update registrar bindings when Call-ID 
is different

I have another problem about Register after reboot. If an UA rebooted after
send a un-REGISTER ( expire time is zero) with callid = callid1, then it
send another REGISTER after reboot with same conatct but different callid =
callid2. If the registrar received the second REGISTER first, the
binding regitered previously will be updated with callid = callid2, then the
first REGISTER received, the registration-binding will be removed
cause it has a differenct callid = callid1 and expiretime=0. Is this a
possible scenario?
On 2/11/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
>
>   From: Marco Ambu <[EMAIL PROTECTED]>
>
>   implementing a registrar server we found some problems with this part of
>   RFC 3261 - 10.3 (page 66):
>   "For each address, the registrar then searches the list of
>   current bindings using the URI comparison rules. If the
>   binding does not exist, it is tentatively added. If the
>   binding does exist, the registrar checks the Call-ID value. If
>   the Call-ID value in the existing binding differs from the
>   Call-ID value in the request, the binding MUST be removed if
>   the expiration time is zero and updated otherwise."
>
>   For example if we have 1 binding for AOR_1 to (callID_1, contactURI_1,
> ...)
>   and we receive another REGISTER request for AOR_1 with callID_2 and
>   contactURI_1 but the expiration time is not zero, we should update the
>   binding.
>
>   Must we update also the call-ID value? from CallID_1 to callID_2?
>
> Yes, you should, and you should store the CSeq.
>
> I believe that the point of the rule is not that a change in call-id
> causes something strange to be done in regard to updating the binding.
> Note that "must be removed if the expiration time is zero and updated
> otherwise" is what would happen with an ordinary REGISTER.  The idea
> is that if the call-id changes, the usual check for out-of-order CSeq
> values is bypassed.  If the call-id changes, the last received
> REGISTER is assumed to update any previously received REGISTER.  But
> if the call-ids are the same, ordering is done via cseq.
>
> This rule makes the situation of a rebooted UA work correctly.
>
> Dale
> _______________________________________________
> 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







                
__________________________________________________________
Yahoo! India Answers: Share what you know. Learn something new
http://in.answers.yahoo.com/
_______________________________________________
Sip-implementors mailing list
[email protected]
https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors

Reply via email to