[SR-Users] Meaning of empty body in NOTIFY

Robert Jongbloed robertj at voxlucida.com.au
Mon Jun 6 04:09:29 CEST 2011


> -----Original Message-----
> From: Craig Southeren [mailto:craig at southeren.com]
> Sent: Monday, 6 June 2011 7:22 AM
...
> > To resume: What does SIP standard say about this NOTIFY with empty
> > body?  Does this mean that the user xyz is offline?

The specification gives no meaning to an empty body. "No meaning" does not mean "offline". Offline means something!

The only purpose of sending a NOTIFY with an empty body, as per the specification, is to finalise the establishment of a subscription when you do not yet have any state information. Any other use is "undocumented", so there had better be a large body of evidence that "everyone does it that way" before we use any semantics.

> > Or does this mean that user's status has not changed?  In fact, the
> > NOTIFY with empty body (as shown above) is the first one sent by
> > kamailio, so there is no "previous" state of that user, hence
> > "unchanged" status has no meaning.
> 
> Here is my understanding.
> 
> If the NOTIFY is the first NOTIFY sent in response to the SUBSCRIBE,
> then the NOTIFY should be ignored. Opal should be doing this.
> 
> if the NOTIFY is *not* the first NOTIFY, i.e. there was a previous
> NOTIFY that contains a valid presence status, then the previous status
> should be used.

Interestingly, I was doing some Googling on this and it appears that the first notify, when it is empty, is supposed to have a Subscription-State header field value of "pending". Again the specification is not clear but there were some discussion groups that mentioned this.

Unfortunately, Kamailio does not do this. So we could not even use this as a discriminator.


Robert Jongbloed
OPAL/OpenH323/PTLib Architect and Co-founder.





More information about the sr-users mailing list