The reason that the Call-Id's on successive registrations are the same is so that the registrar can update the previous registration's record rather than creating a new one. I have seen some instances where UAs generated new Call-Id's for each registration, and the registrar's database did get cluttered with old registrations (which it kept around for an hour or so after they expired).
I am not sure if I understand this. AFAIU creation of a new record versus updating an existing one depends solely on the Contact URI: registration record equality is defined in terms of URI equality. So a previous record is updated if-and-only-if the Contact URI is the same
The reason for the same Call-ID is only to see if CSeq can be used for a sequence check. If the Call-IDs are different, then the CSeqs are (assumed to be) unrelated and the registrar MUST NOT abort
The database would only get cluttered if the UAs don't unregister properly, i.e. use the same Contact URI as they did before with expires=0. Call-ID may be different, the unregistration will still work. If not, they will expire as usual.
A DHCP update may break the deregistration if the UA does not remember its previous IP address. What it SHOULD do after DHCP renew is something like this:
REGISTER sip:domain.com SIP/2.0 From: sip:[EMAIL PROTECTED] To: sip:[EMAIL PROTECTED] Contact: <sip:[EMAIL PROTECTED]>;expires=0 Contact: <sip:[EMAIL PROTECTED]>;expires=3600 ... more headers ... but how many clients do that? Jeroen _______________________________________________ Sip-implementors mailing list [email protected] http://lists.cs.columbia.edu/mailman/listinfo/sip-implementors
