<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On 15 July 2014 23:59, Graham King <span dir="ltr"><<a href="mailto:graham@gkgk.org" target="_blank">graham@gkgk.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I have recently been working with XEP-0186, and I wanted to add notes<br>
from my experience. I think some minor clarifications around when<br>
invisibility stops could be added.<br>
<br></blockquote><div><br></div><div>These comments are great, thanks.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
In 2. Requirements / point 2, it says "Invisible mode is active only<br>
for the current session". Could it say ".. only for the current<br>
*presence* session (as defined in RFC 6121 section 4.1)"? I puzzled<br>
over what "session" meant.<br>
<br></blockquote><div><br></div><div>A presence session only begins when available presence is sent, so this would mean you'd only be able to become invisible after telling everyone you were there. I would have thought that would go against the requirements, but it turns out that's not explicitly stated.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
In "3.2 User Becomes Visible" I think it would be worth mentioning<br>
that a user can also become visible by ending their presence session,<br>
sending an unavailable presence.<br>
<br></blockquote><div><br></div><div>So in your model, I'm assuming you're flexible about when exactly a presence session begins, but the sequence <presence/><presence type='unavailable'/> would always implicitly clear invisibility?</div>
<div><br></div><div>I have to say I dislike the implicit changes here.</div><div><br></div><div>But you're right that the use of the term "session" with no explicit definition is confusing. I thought that the term was actually defined somewhere, but it turns out not to be. I thought it meant a client stream, as (possibly) extended over multiple connections by XEP-0198.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Finally as an implementation note, we noticed that Smack (3.2.2, over<br>
BOSH) was sending two unavailable stanzas when it disconnects. The<br>
first would end the presence session and implicitly the invisibility,<br>
so the second got forwarded, which was not the client's intention. An<br>
implementation note might want to remark that the user should stay<br>
invisible until they start a new presence session (rather than until<br>
the current one ends). We fixed this by not forwarding unavailable<br>
stanzas for an already unavailable user, probably something we should<br>
have been doing already.<br>
<br></blockquote><div><br></div><div>FWIW, I think presence is a state, and as such, eliding repeated presence is entirely acceptable.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

I would be happy to send a patch for any part of this.<br></blockquote></div></div></div>