Subject: [Sip] Frequency of Register Message ??

From: atul garg <[email-masked]>
Date: Mon, 2 Mar 2009 10:50:12 +0530 (IST)

Hi,

1) Is register message used as Heartbeat in any scenario???

2) Can register message be sent after every second???

3) Is it logical to send register message after every second???

4) what will be the drawbacks of sending register message after every second???

Regards
Atul

      Add more friends to your messenger and enjoy! Go to http://messenger.yahoo.com/invite/

---

From: Hadriel Kaplan <[email-masked]>
Date: Mon, 2 Mar 2009 07:55:22 -0500

Do you mean these questions about whether they're used in an IETF RFC?  This is the sip mailing list for IETF RFC/drafts discussion - you're probably looking for [email-masked] - see https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors.

I assume you mean in practice, not theory.

> -----Original Message-----
> From: [email-masked] [mailto:[email-masked]] On Behalf Of atul
> garg
> Sent: Monday, March 02, 2009 12:20 AM
>

In an RFC no, but in practice yes.  In fact it's widely used as a Heartbeat in practice.  But for a specific case: endpoints or small PBX's to their registrar/proxy.  Not for proxy-to-proxy or server-to-server; OPTIONS messages are often used for the server-to-server type of Heartbeat in practice.

> 2) Can register message be sent after every second???

You mean can it be sent every second?  Well technically you could of course, but in practice that's not a good idea.  There are some devices which will blacklist/block your UA if it sends one that frequently, disabling service to your user.  It would be considered an attack or at least a broken implementation.  Your code would essentially be considered malware.

> 3) Is it logical to send register message after every second???

No, not really.  There is no real reason to do so.  NATs, for example, don't expire their bindings nearly that fast.  The worst I've seen a NAT do is about 30 seconds, but some are longer (much longer).  So you only need to send one every 15 or 20 seconds worst-case.  But really you should just use the Expires header/param in the 200 ok response to the first Register, for the timer/frequency value for Register messages. (in other words follow RFC 3261 section 10.2.1 - 10.2.4, and see 10.3)

> 4) what will be the drawbacks of sending register message after every

Well, for starters the processing load on your Registrar or proxy will be very high.  Your UA is one of potentially hundreds of thousands or millions of endpoints on a Registrar.  If each UA sent a Register every second, it wouldn't scale.

And if you implement your stack in a full layered model, then your transaction layer could also be sending retransmissions while you're trying to send new ones - resulting in either out of order sending, or at least a possible pile up of retransmissions for multiple Registers if the network's out for a dozen seconds or so.

-hadriel