Re: [Standards] LAST CALL: XEP-0319 (Last User Interaction in Presence)

2014-12-03 Thread Christian Schudt
I like Florian’s idea!

It won’t mess up with existing XEP-0256 implementations and if someone really 
feels he can only deal with absolute timestamps he could use that optional 
attribute.
It’s way easier to implement as opposed to implement a whole new XEP (+ 
abstraction layer, which deals with both XEPs).

On the other hand it would be optional and the "seconds“ attribute would be 
mandatory, which means developers would always check the "seconds“ attribute 
anyway. And if they know the date already there’s no need for them to use the 
„timestamp“ attribute, because it should hold (nearly) the same data.

Yes, there might still be transmission delays, as Tobias pointed out, but I 
think these are negligible, because they are probably only milliseconds and 
(human) users are probably only interested in an accuracy of minutes.

- Christian

Am 04.12.2014 um 01:04 schrieb Dave Cridland :

> On 3 December 2014 at 23:14, Florian Schmaus  wrote:
> BTW was it ever discussed to *simply* extend XEP-12 (and thus XEP-256)
> with an (optional) 'timestamp' attribute that contains an absolute time
> value?
> 
> I'd particularly like to see any response to this. It looks like a very 
> reasonable avenue to explore, and I don't recall it being raised. XEP-0012 is 
> Final, but the additional of an optional attribute seems acceptable from a 
> procedural point of view, and the technical arguments seem plausible.
> 
> Dave.



[Standards] Which XEP can I use to solve this use case?

2014-12-03 Thread priya v
Hi all,

If I need to implement a functionality (in an XMPP client and in an XMPP
server) whereby I indicate to a user if a message sent by him to another
user has been read/delivered/acknowledged, which XEP should I be
implementing? Additionally, I want the status of the messages to be synced
across all the resources being used by the user.


I was inclined towards using chat markers. But the status of the XEP says
'Deferred'. I look forward to receiving a response from the experts in this
forum.

Thanks,
Priya


[Standards] Chat markers and pagination

2014-12-03 Thread priya v
How would chat markers work when they are used in the context of
pagination? Please consider the following use case to get a better
understanding of my question-

Assume there are 50 messages stored in a user's archive store. Of which a
marker of type 'delivered' is received for the 25th message. Assume an XMPP
client queried for the first 10 messages from the user's store.

Should the server send the 25th marker even if the 25th message is not
sent?
Messages from 1 to 10 might have been read without any markers being sent.

The spec doesn't talk of cases where markers are used in conjunction with
RSM. How do we handle such cases?


Re: [Standards] LAST CALL: XEP-0319 (Last User Interaction in Presence)

2014-12-03 Thread Dave Cridland
On 3 December 2014 at 23:14, Florian Schmaus  wrote:

> BTW was it ever discussed to *simply* extend XEP-12 (and thus XEP-256)
> with an (optional) 'timestamp' attribute that contains an absolute time
> value?
>

I'd particularly like to see any response to this. It looks like a very
reasonable avenue to explore, and I don't recall it being raised. XEP-0012
is Final, but the additional of an optional attribute seems acceptable from
a procedural point of view, and the technical arguments seem plausible.

Dave.


Re: [Standards] LAST CALL: XEP-0319 (Last User Interaction in Presence)

2014-12-03 Thread Florian Schmaus
On 03.12.2014 23:39, Florian Schmaus wrote:
> On 03.12.2014 19:16, XMPP Extensions Editor wrote:
>> This message constitutes notice of a Last Call for comments on XEP-0319 
>> (Last User Interaction in Presence).
>>
>> Abstract: This specification defines a way to communicate time of last user 
>> interaction with her system using XMPP presence notifications.
>>
>> URL: http://xmpp.org/extensions/xep-0319.html
>>
>> This Last Call begins today and shall end at the close of business on 
>> 2014-12-17.
>>
>> Please consider the following questions during this Last Call and send your 
>> feedback to the standards@xmpp.org discussion list:
>>
>> 1. Is this specification needed to fill gaps in the XMPP protocol stack or 
>> to clarify an existing protocol?
> 
> Christian and Tobias already gave good pro and contra arguments. It
> comes down to: Does the usage of absolute timestamps justify a new XEP?

BTW was it ever discussed to *simply* extend XEP-12 (and thus XEP-256)
with an (optional) 'timestamp' attribute that contains an absolute time
value?

Such a change would come with all the advantages XEP-319 provides, but
without the disadvantages
- to have multiple XEPs for the same goal
- to force libraries to abstract that

Furthermore adding 'timestamp' would be fully backward compatible, if we
say that if it's set, 'seconds' must also exist [1].

It's also easier to implement: I would guess adding one or two LOCs to
existing XEP-12/-256 implementations plus the logic that favors
timestamp over seconds, compared to implementing a new extension element
and the abstraction layer.

In XEP-12 terms the timestamp value would mean
- the time the user logged out for § 3
- the time the user went idle for § 4
- the time the service was started for § 5

If I'm not overlooking something, I would prefer this solution over XEP-319.

- Florian

1: As goody, this means one can calculate the lag of the presence stanza. :)


Re: [Standards] LAST CALL: XEP-0319 (Last User Interaction in Presence)

2014-12-03 Thread Florian Schmaus
On 03.12.2014 19:16, XMPP Extensions Editor wrote:
> This message constitutes notice of a Last Call for comments on XEP-0319 (Last 
> User Interaction in Presence).
> 
> Abstract: This specification defines a way to communicate time of last user 
> interaction with her system using XMPP presence notifications.
> 
> URL: http://xmpp.org/extensions/xep-0319.html
> 
> This Last Call begins today and shall end at the close of business on 
> 2014-12-17.
> 
> Please consider the following questions during this Last Call and send your 
> feedback to the standards@xmpp.org discussion list:
> 
> 1. Is this specification needed to fill gaps in the XMPP protocol stack or to 
> clarify an existing protocol?

Christian and Tobias already gave good pro and contra arguments. It
comes down to: Does the usage of absolute timestamps justify a new XEP?
I don't have any practical experience regarding this, but my intuition
says: Yes it does.

(It appears to me that absolute timestamps should have been used in
XEP-12 from the start.)

> 2. Does the specification solve the problem stated in the introduction and 
> requirements?

Yes

> 3. Do you plan to implement this specification in your code? If not, why not?

Yes. Even it means abstracting XEP-256 and XEP-319 in the (client)
library, which I usually try to avoid. But it's not possible when there
are two XEPs used in the wild, that try to solve the same problem.

> 4. Do you have any security concerns related to this specification?

None other than those mention in the XEP.

> 5. Is the specification accurate and clearly written?

It would be nice if there was a section explaining the motivation for
this XEP. Readers may wonder what why it's required since we have XEP-256.

- Florian



[Standards] XEP 313 error handling

2014-12-03 Thread Kurt Zeilenga
How does the server, after it has responded to the IQ with a type=result 
stanza, communicate errors in processing the query to the client that might 
subsequently occur.   What if the server is unable to send any subsequent 
stanzas associated with the query?  Is the server expected to hold off sending 
the IQ response until it is reasonable assured that no subsequent errors will 
occur?  That is, to the time in which has compiled all the stanzas to sends to 
the client and is ready to put them to XMPP stream?

It seems to me that the IQ response really should come last so that the server 
is able to indicate to the client whether or not is has successfully completed 
the request or failed.   If sent last, then there’s really no need for a 
separate .

If the IQ response is not last, there there really needs to be some method for 
the server to indicate that it’s not able to provide further results.

Anyways, I’ve implemented this, and for now we hold back the IQ response until 
we get the data from our internal archives and are otherwise ready to respond 
to the query.   This ensures that if we are generally able to provide an error 
response if any error happens to occur during the processing of the query.

— Kurt



Re: [Standards] LAST CALL: XEP-0319 (Last User Interaction in Presence)

2014-12-03 Thread Tobias Markmann
Hi,

Some comments from the author’s perspective inline.

On 03.12.2014, at 19:16, XMPP Extensions Editor  wrote:

> 1. Is this specification needed to fill gaps in the XMPP protocol stack or to 
> clarify an existing protocol?

It fills a gap for a clean and reliable reporting of idle (user inactivity) 
time. While there is XEP-0012 and its presence based distribution enhancement 
it still has some drawbacks:
- Uses relative time. Receiving clients need to calculate absolute time on 
receive. Due to transmission delays on different C2S/S2S streams other clients 
are likely to receive the idle information at different times, leading to 
different absolute times. Using absolute times circumvents this issue.
- XEP-0012 is used for two things. The same syntax has overloaded semantic. 
Sending a last activity request to JID the sender doesn’t know if the time it’s 
receiving is the idle time or the uptime. Even if you’d detect the semantic 
difference from the kind of JID, it’d disallow query of uptime for users. 

> 2. Does the specification solve the problem stated in the introduction and 
> requirements?

Yes.

> 3. Do you plan to implement this specification in your code? If not, why not?

It’s implemented in Swift [1]. I wrote this XEP since I was unhappy with 
XEP-0012 due to reasons stated under 1.

> 4. Do you have any security concerns related to this specification?

None other than those mention in the XEP.

> 5. Is the specification accurate and clearly written?

I hope so. I’m happy for feedback regarding that though.

Cheers,
Tobias

[1] 
http://swift.im/git/swift/commit/?id=836925a5cdc7017da7fb84416c803e652b48e399

Re: [Standards] LAST CALL: XEP-0319 (Last User Interaction in Presence)

2014-12-03 Thread Christian Schudt
Hi, 

here’s my feedback for it.

> 1. Is this specification needed to fill gaps in the XMPP protocol stack or to 
> clarify an existing protocol?

No. In my opinion, XEP-0256: Last Activity in Presence already covers 
everything, which is needed for this use case.
XEP-0012 also says something about idle time:

"If the user's server delivers the IQ-get to one of the user's available 
resources, the user's client MAY respond with the idle time of the user (i.e., 
the last time that a human user interacted with the client application)."

XEP-0256 just transports this idle time via presence.

Having absolute time in XEP-0319 (as opposed to relative time in XEP-0256) 
should not legitimate an extra XEP.
Developers would need to implement both anyway, (if they want to have a good 
software) and libraries would probably need an abstraction layer, which takes 
care of both XEPs.

> 2. Does the specification solve the problem stated in the introduction and 
> requirements?

Yes.

> 3. Do you plan to implement this specification in your code? If not, why not?

Only if it becomes draft status.

> 4. Do you have any security concerns related to this specification?

No.

> 5. Is the specification accurate and clearly written?

Yes. Although „set in stone“ might sound a little bit colloquial? Maybe it also 
could have a note about „xa“ presence.

— Christian

[Standards] LAST CALL: XEP-0319 (Last User Interaction in Presence)

2014-12-03 Thread XMPP Extensions Editor
This message constitutes notice of a Last Call for comments on XEP-0319 (Last 
User Interaction in Presence).

Abstract: This specification defines a way to communicate time of last user 
interaction with her system using XMPP presence notifications.

URL: http://xmpp.org/extensions/xep-0319.html

This Last Call begins today and shall end at the close of business on 
2014-12-17.

Please consider the following questions during this Last Call and send your 
feedback to the standards@xmpp.org discussion list:

1. Is this specification needed to fill gaps in the XMPP protocol stack or to 
clarify an existing protocol?
2. Does the specification solve the problem stated in the introduction and 
requirements?
3. Do you plan to implement this specification in your code? If not, why not?
4. Do you have any security concerns related to this specification?
5. Is the specification accurate and clearly written?

Your feedback is appreciated!


Re: [Standards] Proposed XMPP Extension: namespace delegation

2014-12-03 Thread Sergey Dobrov
On 11/27/2014 03:34 PM, Goffi wrote:
> Hi Sergey,
> 
>>   * server will have to refuse stanzas with these namespaces when
>> component is down by some reason, so the namespace lease is permanent
>> and does not need any negotiation
> 
> That's a good point, actually the bahaviour is not specified when
> component is down (actually the server would manage the stanza, which is
> not desirable). The issue is actually the same in client mode.
It's much harder for client mode as if user already started to use
internal services and then plugged in another one... OR that external
service could implement not all namespaces and then these namespaces
will be served by the origin server and it all looks like hell.


> 
> So you suggest to block the namespace (send an unavailable error) when
> component is down in admin mode, which is indeed an option, but what
> ould you do in client mode ?
I have no idea how to deal with client mode, unfortunately :( too much
caveats I see here and we probably need to make a list of them and
discuss on the next summit?


> 
>>   * i think it makes it easier to implement at least just admin mode both
>> on component and server side
> 
> Yes that's the idea, and it's actually written in implementation notes #1.
> 
> The  negociation is not complicated, but the behaviour when
> component is offline is not specified and that's an issue. Your
> suggestion make sense, but what would you do in client mode ? Let the
> normal behaviour when no entity manage a namespace ? That would mean a
> different behaviour in admin and client mode, that's it ?

Ideally, when we have a namespace lease for external component, we
should return service-unavailable if that external component is down and
never fall back to an internal one to prevent mess.

> 
>> We still need to inform component of which namespaces delegations have
>> been granted and we can do it with a simple message stanza containing
>> the namespaces.
> 
> If we choose to specify namespaces in configuration, that's an option
> indeed. But first it's important to specify what to do when component is
> down, thank you for pointing this.

As I already mentioned, client mode is a big hell and I would even
suggest to avoid implementing it right now, I'd defer it for better
times when we get stable implementations of admin mode.

> 
> 
> Cheers
> Goffi
> 


-- 
With best regards,
Sergey Dobrov,
XMPP Developer and JRuDevels.org founder.