Hi,
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?
Following is what I have understood from the paragraph above in pseudo-code.
Is this procedure correct to handle registrar requests?
**
if "binding_not_exists"
insert binding
else ("binding_exists")
if "callID for existing_binding" != "callID for new binding"
if "expireTime" == 0
remove binding
else
update binding <<-- update also call-ID value???
else
if "CSeq OK"
if "expireTime" == 0
remove binding
else
update binding
else
abort request
**
thanks.
--
Marco Ambu
R&D Software Engineering
Abbeynet S.p.A. - www.abbeynet.com <http://www.abbeynet.com>
phone: +39 070 2339331
<http://www.marco_ambu.sitofono.it>
_______________________________________________
Sip-implementors mailing list
[email protected]
https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors