<!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>&nbsp;</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>&nbsp;</DIV>
<DIV><SPAN class=129033714-15102010><FONT size=2>and</FONT></SPAN></DIV>
<DIV><SPAN class=129033714-15102010><FONT size=2></FONT></SPAN>&nbsp;</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.&nbsp; These NOTIFYs contain<BR>the complete view of dialog 
state."</FONT></SPAN></DIV>
<DIV><FONT size=2><SPAN class=129033714-15102010><FONT 
face=Arial>&nbsp;</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>&nbsp;</DIV>
<DIV><SPAN class=129033714-15102010><FONT face=Arial size=2>One observable 
effect is if you are monitoring a conference extension.&nbsp; 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.&nbsp; 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>&nbsp;</DIV>
<DIV><SPAN class=129033714-15102010><FONT face=Arial size=2>I'm not sure yet 
what is the best way to solve this.&nbsp; I think that 
sofia_presence_sub_callback&nbsp;is always generating "partial" updates, because 
it is always considering only the most recent event.&nbsp;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>&nbsp;</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>&nbsp;</DIV>
<DIV align=left><SPAN class=129033714-15102010><FONT 
size=2>Carolyn</FONT></SPAN></DIV></FONT></SPAN></BODY></HTML>