With current implementation, if there's no ongoing or terminated dialog registered in the presentity table, presence_dialoginfo sends a notify with empty body as reply to a subscribe.
This makes BLF support incomplete for phones that only register to dialog-info event (linksys), so they won't know the state of the subscribed uri until it makes a call.
The attached patch adds the ability to presence_dialoginfo to build a dialog-info body that reports the state of a dialog as terminated when there's no dialog, but we have a presentity entry for that user. Something like:
The patch also adds a contains_presence api function to presence module so we can check if there's a presence entry registered for a given uri.
I've tested it only with linksys spa-9x2 phones, but it's trivial enough to not make any other phone unhappy.
This makes support for linksys blf a little better, but it's still missing a similar notify when the monitored user registers after the subscribe. Right now the subscriber won't get notified until it resubscribes.
diff against 1.5.3