<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.2900.6003" name=GENERATOR></HEAD>
<BODY>
<DIV><SPAN class=129033714-15102010><FONT face=Arial size=2>I have started again
on a fresh branch to investigate presence monitoring of conference extensions,
and I think I have discovered another problem with the way that NOTIFYs
containing dialog events are formulated.</FONT></SPAN></DIV>
<DIV><SPAN class=129033714-15102010><FONT face=Arial
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=129033714-15102010>
<DIV><SPAN class=129033714-15102010><FONT face=Arial><FONT size=2>RFC4235 says:
</FONT></FONT></SPAN></DIV><FONT face="Courier New"><FONT size=2><SPAN
class=129033714-15102010>"</SPAN>state: This attribute indicates whether the
document contains the<BR>full dialog information, or whether it contains only
information<BR>on those dialogs that have changed since the previous
document<BR>(partial)."</FONT></FONT></SPAN></DIV>
<DIV><SPAN class=129033714-15102010><FONT face=Arial>
<DIV><SPAN class=129033714-15102010><FONT face=Arial
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=129033714-15102010><FONT size=2>and</FONT></SPAN></DIV>
<DIV><SPAN class=129033714-15102010><FONT size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=129033714-15102010><FONT face="Courier New"
size=2>"Notifications do not normally contain full state; rather, they<BR>only
indicate the state of the dialog(s) whose state has changed.<BR>The exceptions
are a NOTIFY sent in response to a SUBSCRIBE, and a<BR>NOTIFY that contains no
dialog elements. These NOTIFYs contain<BR>the complete view of dialog
state."</FONT></SPAN></DIV>
<DIV><FONT size=2><SPAN class=129033714-15102010><FONT
face=Arial> </DIV></FONT></SPAN></FONT></FONT></SPAN></DIV>
<DIV><SPAN class=129033714-15102010><FONT face=Arial size=2>But what I see the
code doing is *never* sending a complete (full) list of dialogs, even if there
are more than one, and marking all the presence event related NOTIFY events as
"full" even though by the definition above, they are all
"partial".</FONT></SPAN></DIV>
<DIV><SPAN class=129033714-15102010><FONT face=Arial
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=129033714-15102010><FONT face=Arial size=2>One observable
effect is if you are monitoring a conference extension. The light will
begin to flash when one person joins the conference, and goes solid when another
joins, but then goes out when one person leaves, even though others are still
in. This is because the NOTIFY is sent with status "full" but only
contains the one "terminated" dialog, and none of the others which are still
"confirmed".</FONT></SPAN></DIV>
<DIV><SPAN class=129033714-15102010><FONT face=Arial
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=129033714-15102010><FONT face=Arial size=2>I'm not sure yet
what is the best way to solve this. I think that
sofia_presence_sub_callback is always generating "partial" updates, because
it is always considering only the most recent event. I think that the
sofia_presence_resub callback will have to generate one event, containing all
the rows retrieved from the query, rather than what it does now (which is send a
SWITCH_EVENT_PRESENCE_IN for each row, which is handled by the
sofia_presence_sub_callback and thus results in a bunch of what are really
"partial" NOTIFYs, instead of one "full" NOTIFY).</FONT></SPAN></DIV>
<DIV><SPAN class=129033714-15102010><FONT face=Arial><FONT size=2><SPAN
class=129033714-15102010><FONT
face=Arial></FONT></SPAN></FONT></FONT></SPAN> </DIV>
<DIV><SPAN class=129033714-15102010><FONT face=Arial><FONT size=2><SPAN
class=129033714-15102010>Does this make sense?</SPAN></FONT></FONT></SPAN></DIV>
<DIV><SPAN class=129033714-15102010><FONT face=Arial><FONT size=2><SPAN
class=129033714-15102010></SPAN></FONT> </DIV>
<DIV align=left><SPAN class=129033714-15102010><FONT
size=2>Carolyn</FONT></SPAN></DIV></FONT></SPAN></BODY></HTML>