Subject: RE: [Sipping] [SIP] Call- IDs for same user

From: "Sean Olson (EUS)" <[email-masked]>
Date: Wed, 3 Oct 2001 10:03:31 -0500

-----Original Message-----
From: Radhika [mailto:[email-masked]]
Sent: Wednesday, October 03, 2001 6:19 AM
To: [email-masked]
Subject: [Sipping] [SIP] Call- IDs for same user

Hello,

In RFC 2543, it is mentioned that the same user issuing multiple REGISTER requests should have the same call-id (atleast within the same boot cycle). 

Consider the following scenario :

Computer1 (User A)                   Computer2 (User A)
( Callid = 1)                        ( Callid =2)                                                              
 ----------------                    -----------------    
I                l                   l                 l
I                l                   l                 l 
I                l                   l                 l     
I                l                   l                 l 
 ----------------                    ------------------
Registrations performed from each computer 

Computer 1 = R11, R12
Computer 2 = R21, R22

Regarding the same I have the following queries:
1) If the same user agent ( ie the same user ) logs in from 2 different computers, 2 REGISTER requests will be sent  ( may or may not be simultaneously ). In this case, should they have different call-ids ? (ie Callid = 1)

The situation you are talking about actually involves two separate user agents and
therefore separate call IDs for computer1 and computer2 are appropriate.

2) Since multiple registrations are allowed from the same callid, the only distinguishing criteria between registrations from same callid will be the CSeq no. If a new registration is to be added by user A from Computer1, then it will have a higher CSeq no. 
But, if an already existing registration ( R11 of Callid = 1) needs to be refreshed before it expires, then a REGISTER request for the same needs to be issued. 

Well, first computer1 and computer2 will use different call-IDs. Second,
computer1 and computer2 will have different From: tags. The CSeq: space
will be distinct between computer1 and computer2 because they have distinct
call legs.

How do I distinguish between a new registration for the same callid, and registration renewal for an existing one? 

In general, you don't have to. If anyone needs to make a distinction, it is the
registrar. The registrar uses its internal state information about current registrations
to determine that a REGISTER is a re-registration or a fresh registration. IMHO,
tying the Call-ID to this state is a BAD idea.

Can the CSeq for the original request and the renewal request be the same?

No. A new request must also increment the CSeq:

Thanks and regards,
Radhika.

Regards,
Sean Olson