Re: [Standards] Inconsistent Subscriptions in XMPP

2009-02-25 Thread Pavel Simerda
You just have to tell the deveopers to do it, then :).

On Tue, 24 Feb 2009 15:54:38 +
Pedro Melo m...@simplicidade.org wrote:

 Hi,
 
 On Feb 24, 2009, at 12:49 AM, Pavel Simerda wrote:
 
  There are several cases when subscription databases in XMPP are
  inconsistent.
 
  You may view subscription information as a global distributed  
  database.
  Subscription state between two JIDs, for example a...@a and b...@b are  
  stored
  in two places at the same time. Servers A and B maintain their own
  copies of subscription state.
 
 []
 
  What with the roster items that are inconsistent?
 
  * Mark as inconsistent, let the client present it to the user to
  take action.
 
  * Auto-repair and thus maintain consistency
 
  Looking forward to all feedback.
 
 When you send out a presence type=probe / include the local
 view of the subscription state.
 
 The receiving server can then look to see if the state is consisten  
 with his own state. If you opt by the lowest trust level (a from/to  
 beats a both, none beats all), you should be able to re-sync  
 subscription state automagically.
 
 Best regards,


-- 

Freelance consultant and trainer
in networking, communications and security.

Web: http://www.pavlix.net/
Jabber, Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] various rfc3920bis feedback

2009-02-25 Thread Pavel Simerda
On Tue, 24 Feb 2009 20:14:27 +0100
Philipp Hancke fi...@goodadvice.pages.de wrote:

 Pavel Simerda wrote:
  * connection reuse for multiple s2s links would be a very useful
feature, ask Dave for details
  Piggybacking.
  Which is subtly broken in RFC 3920 - at least 50% of it.
  host-unknown/ makes 'target piggybacking' (different to)
  unusable, as you risk the entire stream.
  
  Please provide more specific info about how to fix it in bis 
 
 I fixed in in my working copy of 220 by completly getting rid of
 host-unknown for dialback. type='error' seems a good fix.
 
   and if/why it is broken now.
 
 The relevant passage from 3920 about piggybacking is:
 After successful dialback negotiation, the Receiving Server SHOULD
   accept subsequent db:result/ packets (e.g., validation requests
 sent to a subdomain or other hostname serviced by the Receiving
 Server) from the Originating Server over the existing validated
 connection; this enables piggybacking of the original validated
 connection in one direction.
 
 If the receiving server is 'jabber.org', validation requests sent
   to a subdomain or other hostname serviced by the Receiving Server
 means that I can piggyback stanzas to 'users.jabber.org' on that
 connection (target piggybacking, google uses source piggybacking).
 
 draft-saintandre-rfc3920bis-08.html added the host-unknown stream
 error to dialback with the following description:
 the value of the 'to' attribute provided by the initiating entity in
 the stream header does not correspond to a hostname that is hosted by
 the ^
 server.
 
 Now what happens should I attempt to piggyback the users.jabber.org
 connection on the jabber.org connection? jabber.org kills my stream.

As I said to Peter

IMO the whole idea of piggybacking is misguided. Piggybacking means
re-using a connection A for data that would otherwise come in B.

It would be better to think about it as a generic multiplex. Then all
virtual connections would be equal (A and B, specifically). One would
immediately see the consequences of closing the physical connection
(that should only be closed if all virtual connections are closed).

Keeping this as an optional feature (I believe that is a near consensus)
will further simplify the most basic implementations.

 philipp


-- 

Freelance consultant and trainer
in networking, communications and security.

Web: http://www.pavlix.net/
Jabber, Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] Inconsistent Subscriptions in XMPP

2009-02-25 Thread Pavel Simerda
On Tue, 24 Feb 2009 15:54:38 +
Pedro Melo m...@simplicidade.org wrote:

 Hi,
 
 On Feb 24, 2009, at 12:49 AM, Pavel Simerda wrote:
 
  There are several cases when subscription databases in XMPP are
  inconsistent.
 
  You may view subscription information as a global distributed  
  database.
  Subscription state between two JIDs, for example a...@a and b...@b are  
  stored
  in two places at the same time. Servers A and B maintain their own
  copies of subscription state.
 
 []
 
  What with the roster items that are inconsistent?
 
  * Mark as inconsistent, let the client present it to the user to
  take action.
 
  * Auto-repair and thus maintain consistency
 
  Looking forward to all feedback.
 
 When you send out a presence type=probe / include the local
 view of the subscription state.

Btw presence probe seems too weak... as it doesn't reveal full
subscription state.

 The receiving server can then look to see if the state is consisten  
 with his own state. If you opt by the lowest trust level (a from/to  
 beats a both, none beats all), you should be able to re-sync  
 subscription state automagically.
 
 Best regards,


-- 

Freelance consultant and trainer
in networking, communications and security.

Web: http://www.pavlix.net/
Jabber, Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] XMPP-IM - presence subscription handling

2009-02-25 Thread Pavel Simerda
On Wed, 25 Feb 2009 18:14:40 +0100
Jiří Zárevúcký zarevucky.j...@gmail.com wrote:

  The user interface may be easily fixed by client developers... and
  possibly a very short Best Practice document.
 
 
 No, it can't, since behavior required for this is explicitly forbidden
 by the specification. Also, implementing client's capabilities so
 differently from the actual protocol makes a terrible mess.

Uh?

I'm afraid one of us must be very very mistaken then. As I read the
spec, it's not forbidden at all, on the contrary. I would like too see
something that shows I'm wrong.

  I see it the other way around. IMO the current way is too
  complicated to fit in the common needs.
 
  I believe it is equally complicated to your proposal but more
  flexible.
 
  From the client perspective, the current variant can work,
  according to the specs:
 
  Client A: [subscribed],[subscribe*]
  Client B: [subscribed*],[subscribe*]
 
  with some roster management stanzas around and A's server
  automatically answering with [subscribed*].
 
  (Hope I didn't do any mistake here, * denotes a more basic flow
  here, if A's server doesn't respond - some IMO misinterpret the
  presence type=subscribed/, A's client does)
 
  From user's perspective it's:
 
  User A: Add contact B.
  User B: Accept contact A (means to both grant subscription and add,
  of course)
 
 
  Unfortunately, due to some server's not handling presence
  type=subscribed/
 
  This seems perfectly correct and pretty easy to me.
 
 
 Forbidden and not really a clean solution.

Citation needed.

  As for the problems you described, any
  inconsistency could just be reset to a clean no-subscription state.
  How often could this happen?
 
  Too often to ignore. You cannot require users to reset it
  manually... users don't care about protocols!
 
 
 Read Would it be so often for user to be bothered by vanishing of
 subscription?. I really don't get the difference from current spec in
 this area.

Vanishing of subscription is unrelated.

   Yes, I
   agree that immediate effect would be increasing complexity and
   need of additional effort to maintain backward compatibility.
   That would be a tricky task, but I believe that with proper
   interoperability rules, it would be possible to make transition
   relatively painless. I believe that in a long run, such change
   would be a huge improvement.
  
   You'd need to know if the transition gives or takes.
  
 
  First compare the protocol interface itself. My approach would
  simplify new implementations significantly, once it is widely used.
 
  I don't believe it would simplify them significantly.
 
 
 That's probably because you never tried.
 
  Then look at the end-user client interface. I find it a bit
  unintuitive.
 
  Go and file a bug report or feature request to your client's
  developer.
 
 
 I'm my client's developer.

That doesn't prevent you from filing a bug report, does it? Pardon my
ignorance.

  Also, the mutual subscription round-trips always annoy
  me. You get the request, user approves and sends his request,
  contact needs to approve again.
 
  This is simply not true.
 
 
 Yet in practice, this is completely ordinary work-flow.
 

In practice, it is done, but I believe it is not needed.

  This has been considered in the specification
  by allowing preliminary approval, but that just adds need for the
  server to track this,
 
  Which is very easy...
 
 
 Yes.
 
  and there is no way to tell if there is one. I
 
  One what?
 
 
 Preliminary approval.
 

It's not forbidden anywhere AFAIK.

  would like a simple work-flow Request presence sharing - Sharing
  approved, both are subscribed / Sharing declined, nobody is
  subscribed.
 
  This usecase works well with the current specification
 
 
 Possible, but not really simple. Just thinking a moment about it gives
 me a few possible problems.
 
  I already stated the benefits.
 
  I haven't seen any.
 
  Cleaner protocol,
 
  I don't think so.
 
 
 Now I'm beginning to think you either have a very bad taste or haven't
 read XMPP-IM at all. No offense intended.
 

I like my taste...

And I will not be as arrogant as you are... and will just say you
probably haven't read carefully and invented limitations that are not
there.

None taken :).

  simpler implementation
 
  I don't see the difference.
 
 
 As I already told, you probably never written any.
 

You seem to use your arrogance instead of real evidence.

  and user interface much closer to the
  real-life needs.
 
  And this is definitely your client's problem.
 
 
 User interface is always constrained by the underlying protocol's
 possibilities. That's not really a client's problem, is it?

Your question is based on a premise that I don't believe (namely that
it applies to this case).

  Just a question... did you ever need to have someone's
  subscription, while he must not have it?
 
  Not yet.
 
  Or the other way around?
 
  Probably yes.
 
  Now I'm talking
  about human 

Re: [Standards] various rfc3920bis feedback

2009-02-25 Thread Pavel Simerda
On Wed, 25 Feb 2009 22:48:35 +0100
Philipp Hancke fi...@goodadvice.pages.de wrote:

 Pavel Simerda wrote:
  Piggybacking is the ability to have more than one validated
  combination of 'from' and 'to' on single XML stream. There was no
  preference of A over B originally, 0.9 streams did not have from/to
  attributes iirc.
 
  
  Yes, that's only what the name suggests and from/to was
  something I first ask about... it actually seems it brings more
  trouble that it saves... or not?
 
 Piggybacking is going to be necessary in the future, considering a
 limit on simultaneous connections as described in 0205.

Repeating the obvious, er?

  Keeping this as an optional feature (I believe that is a near
  consensus)
will further simplify the most basic implementations.
 
  The last consensus I know of was to make passive support a MUST
  even:
  http://mail.jabber.org/pipermail/standards/2007-June/015673.html
  Did I miss something?
  
  I was referring to what I heard at jdev@ some time ago, ask Peter
  for details (you'll have more after the council). The mail seems
  too old to me.
 
 S2S topics are not very frequent.
 
  AFAIK (and it's also what I understood from stpeter) backwords
  compatibility is now being solved by *compatibility notes* in the
  RFC and not by treating compatibility hacks as eternal truth :). 
 
 Piggybacking is not a hack.

Maybe I wasn't clear enough. It was a reaction to what you have written
and referred to your general statements.

 Would you please read Robs summary on s2s
 issues:
 http://mail.jabber.org/pipermail/xmppwg/2004-February/002008.html

I may look at it, if it makes you happy.

 It has a whole section on why piggybacking and backward compability
 is necessary.

Repeating what I have already agreed?

 philipp,
 wondering about a piggybacking sucks note on his rfc3920bis-01 copy

What sucks is the view that is *suggested* by this particular term, not
the technology itself.

Pavel

-- 

Freelance consultant and trainer
in networking, communications and security.

Web: http://www.pavlix.net/
Jabber, Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] Inconsistent Subscriptions in XMPP

2009-02-25 Thread Pavel Simerda
On Thu, 26 Feb 2009 00:15:18 +0100
Robin Redeker el...@x-paste.de wrote:

 On Tue, Feb 24, 2009 at 01:49:50AM +0100, Pavel Simerda wrote:
  There are several cases when subscription databases in XMPP are
  inconsistent.
  
  You may view subscription information as a global distributed
  database. Subscription state between two JIDs, for example a...@a and
  b...@b are stored in two places at the same time. Servers A and B
  maintain their own copies of subscription state.
 
 The problem is not just subscription state, but any state that is
 not synchronized, basic presence information comes to mind, they also
 get out of sync sometimes. Maybe it's less of a problem, because a
 client logging in again, can refresh that state.

Ah, thanks for pointing out.

 Subscription information of course isn't as easily 'synchronized'.

Not so easily, but it's possible... as in most situations, you mostly
know you've screwed it up...

And you must write all your contacts to delete you and add back. That
is tough.

If at least these scenarios were caught and the servers would
synchronize upon your communication. You write Alice, Alice writes
you... and by that time the servers would synchronize.

The same could work for presences... and repeated request... so if you
screw up the server... you would just let it send subscription requests
for all contacts and then the servers would detect and fix all
inconsistencies.

Other scenarios might come in hand.

 I don't know whether servers already do this, but having a consistent
 state for presence, would allow for caching the presence information
 on the receiving server.

Possibly.

 A generic synchronisation protocol would of course help any
 state information that has to be shared with other servers.

Hmm, not sure if generic or specific, but I would like to see some.

 I brought this topic up some weeks ago (and I think also a year ago),

Then bring it again, please :).

 but I'm not a server developer (If I was, I would probably have
 already implemented some proof of concept protocol to do this). But
 these things don't seem to bother the (and/or developers)

They're lazy (everybody is).

 users much
 and there doesn't seem to be much (or enough) interest for consistent
 information sharing amog servers.

It shouldn't be too complicated. We should prefer a nice and easy way
to go. You probably that a review of the core protocols is underway.

Maybe we can have a chat on Jabber?

 
 
 Greetings,
Robin
 


-- 

Freelance consultant and trainer
in networking, communications and security.

Web: http://www.pavlix.net/
Jabber, Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] XMPP-IM - presence subscription handling

2009-02-25 Thread Pavel Simerda
On Thu, 26 Feb 2009 01:35:33 +0100
Jiří Zárevúcký zarevucky.j...@gmail.com wrote:

 2009/2/25 Pavel Simerda pav...@pavlix.net:
  On Wed, 25 Feb 2009 18:14:40 +0100
  Jiří Zárevúcký zarevucky.j...@gmail.com wrote:
 
   The user interface may be easily fixed by client developers...
   and possibly a very short Best Practice document.
  
 
  No, it can't, since behavior required for this is explicitly
  forbidden by the specification. Also, implementing client's
  capabilities so differently from the actual protocol makes a
  terrible mess.
 
  Uh?
 
  I'm afraid one of us must be very very mistaken then. As I read the
  spec, it's not forbidden at all, on the contrary. I would like too
  see something that shows I'm wrong.
 
 
 Sorry, you are right in this. I overlooked a part defining it as
 subject to configuration.
 I still think this can't be done without numerous problem.
 

Ok, I might forget your bullying... and You might try to look again and
reconsider, with the rfc3920-1 and also the bis variants (as I will of
course do also, but I don't have so much time, you can imagine).

I recommend to finish this thread... and start a new one, rather
concentrating on the technical points and correct reasoning.

 For example:
 
 You get an inbound request. You approve, believing that once you click
 Approve, you are both subscribed. This can't be done, since you
 still depend on the other side to fulfill it's part of a contract.
 If you wait for the other side to approve first, you are deadlocked if
 the other side implements the same behavior.
 
   As for the problems you described, any
   inconsistency could just be reset to a clean no-subscription
   state. How often could this happen?
  
   Too often to ignore. You cannot require users to reset it
   manually... users don't care about protocols!
  
 
  Read Would it be so often for user to be bothered by vanishing of
  subscription?. I really don't get the difference from current
  spec in this area.
 
  Vanishing of subscription is unrelated.
 
 
 Then I misunderstood you. What problems with the authority did you
 mean?
 
 
   Then look at the end-user client interface. I find it a bit
   unintuitive.
  
   Go and file a bug report or feature request to your client's
   developer.
  
 
  I'm my client's developer.
 
  That doesn't prevent you from filing a bug report, does it? Pardon
  my ignorance.
 
 
 Sure. It doesn't. It would still be closed as WONTFIX, since it can't
 be fixed.
 
   Also, the mutual subscription round-trips always annoy
   me. You get the request, user approves and sends his request,
   contact needs to approve again.
  
   This is simply not true.
  
 
  Yet in practice, this is completely ordinary work-flow.
 
 
  In practice, it is done, but I believe it is not needed.
 
 
 That's exactly my point.
 
   This has been considered in the specification
   by allowing preliminary approval, but that just adds need for
   the server to track this,
  
   Which is very easy...
  
 
  Yes.
 
   and there is no way to tell if there is one. I
  
   One what?
  
 
  Preliminary approval.
 
 
  It's not forbidden anywhere AFAIK.
 
 
 I meant that there is no way to figure out, whether the contact
 auto-approves my request before I actually send it. That's just a
 completely unimportant cosmetic flaw.
 
   I already stated the benefits.
  
   I haven't seen any.
  
   Cleaner protocol,
  
   I don't think so.
  
 
  Now I'm beginning to think you either have a very bad taste or
  haven't read XMPP-IM at all. No offense intended.
 
 
  I like my taste...
 
  And I will not be as arrogant as you are... and will just say you
  probably haven't read carefully and invented limitations that are
  not there.
 
  None taken :).
 
 
 If you don't consider writing twice as much code because of protocols
 flexibility, making user interaction unreliable, being a valid
 reason, then I'm inventing limitations. Yes.
 
   simpler implementation
  
   I don't see the difference.
  
 
  As I already told, you probably never written any.
 
 
  You seem to use your arrogance instead of real evidence.
 
 
 Once I have time for changing my code to use protocol no one else
 uses, I'll send you a diff. Forgive me, if I consider you being
 arrogant in the first place. Even reducing number of possible states
 from nine to four IS a simplification. You simply ignore everything
 and generalize to there is no difference.
 
   and user interface much closer to the
   real-life needs.
  
   And this is definitely your client's problem.
  
 
  User interface is always constrained by the underlying protocol's
  possibilities. That's not really a client's problem, is it?
 
  Your question is based on a premise that I don't believe (namely
  that it applies to this case).
 
 
 My question is purely rhetorical.
 
 
  It would move complication from the current protocol to the
  extension. It wouldn't just pop up anywhere.
  The flexibility, you have been talking about

Re: [Standards] various rfc3920bis feedback

2009-02-24 Thread Pavel Simerda
On Tue, 24 Feb 2009 09:14:13 +
Dave Cridland d...@cridland.net wrote:

 On Tue Feb 24 00:31:25 2009, Pavel Simerda wrote:
  * bidirectional s2s could be announced in stream:features sent
right after the opening stream tag from the initiator.
  
  
 Well...
 
 What you need is to:
 
 a) Signal the ability of the receiver to handle features sent by the  
 initiator.

Why? 

 b) Signal the ability of the initiator to handle bidi streams.

Agreed.

 c) Turn this on, which presumably involves an authorization phase.

Ah, that'true...

 
 I was thinking that the receiver has a stream:feature to handle  
 stream:features, the initiator then sends these,

If the reciever is not handling features/, it can ignore it, can't
it? Peter said it was never forbidden to send them anyway.

 and the receiver
 can then proceed as the initiator in the other direction. So the  
 initiator would send SASL mechanisms, and the receiver would act as
 a SASL client to the initator and request authorization.

Some way or another, mutual authentication should be established, two
SASL exchanges seem an obvious way to do that.

 
 
  * connection reuse for multiple s2s links would be a very useful
feature, ask Dave for details
  
  
 Piggybacking.
 
 What I'd like to do here is use the dialback elements as an  
 authorization request mechanism.

What I would like... is to have an easy-to-understand and
easy-to-implement piggybacking feature without unnecessary hassle.

 In fact, by specifying how to do this without actually doing  
 dialbacks, but instead by verifying the identity of the sender based  
 on the X.509 cert, we can actually get rid of SASL EXTERNAL and just  
 use X.509 only, which eliminates the difference between the first  
 authorization and subsequent ones.

I don't see any reason to get rid of SASL EXTERNAL. I quite like the
concept of using the same authentication flows for all
authenticated connections.

It would be nice to be able to authenticate each virtual connection
separately. It's a multiplex, anyway, if one associations fails, others
should remain working.

 
 The dialback flow then becomes:
 
 1) O2R : db:result/
 2) R: If TLS, and X.509 cert matches requested domain, goto ACCEPT
 3) R: Connect to A
 4) R2A: Establish TLS.
 5) R2A: If A's certificate matches O's, goto ACCEPT
 6) R2A: db:verify/
 7) A2R: db:verify/, goto ACCEPT
 ACCEPT:
 8) R2O: Authorize O as requested domain, send db:result/
 
 
  * resource conflicts should be handled consistently in servers
  
  
 It's not always possible to handle conflicts in the same way.

Could you please be more specific?

 
 
  * an explicit way to kick other resources might be very handy
  
  
 Here be tigers.
 
 
  * multiple resources could have a less confusing named feature (not
unbind, but something like multi-bind probably)
  
  
 I'm less than convinced about the validity of multiple resources as
 a solution to any problem.

It doesn't matter so much... it's an optional feature that seems to
help someone.

Anyway it's just c2s multiplexing, a counterpart to s2s multiplexing
that you want.

  * xml:lang per stanza seems to be pretty rare, I would prefer MAY to
SHOULD, or even to discurage per-stanza xml:lang entirerely and
encourage use of xml:lang only for elements with localized  
  strings.
Many users (and also client developers) just don't care about
languages. Unqualified strings are (and will be) very common, I  
  would
use MAY even for the elements.
  
  
 In principle, the stanza-level xml:lang can be used especially over  
 S2S sessions to indicate a preferred language for errors.

This doesn't seem to be too useful. We use language-neutral XMLish
errors anyway, not localized errors (except additional info for geeks).

 However... various protocols have had features like this for years,  
 and to the best of my knowledge nobody ever uses them.

I'd guess this won't be used even when SHOULD... and I see no reason
for the SHOULD for something that is generally considered useless.

 
 
  * gone has a very good usecase that could be made explicit... it  
  is
JID redirection and could be handled by clients (e.g. the client  
  could
offer the user to add the new JID upon error - presence/message
would trigger it).
  
  
 Right - a jid redirection would be useful. We'd also need to put  
 together a companion protocol for users to enable it.

Would be nice.

 
 
  * Consider including XEP-198 Stream Management in the RFC
 
 We need to actually prove it, first. I don't think anyone's got as  
 far as coding it, yet.

Prove or test? :D

 Dave.


-- 

Freelance consultant and trainer
in networking, communications and security.

Web: http://www.pavlix.net/
Jabber, Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


[Standards] Inconsistent Subscriptions in XMPP

2009-02-23 Thread Pavel Simerda
There are several cases when subscription databases in XMPP are
inconsistent.

You may view subscription information as a global distributed database.
Subscription state between two JIDs, for example a...@a and b...@b are stored
in two places at the same time. Servers A and B maintain their own
copies of subscription state.

For a...@a's subscripton to b...@b, server B holds the authoritative record,
while server A has a non-authoritative copy. I believe we need a
mechanism to automatically check consistency of these records and fix
any inconsistency to ensure that:

* If the authoritative information changed without notification to an
  interested party, the interested party should discover it as soon as
  possible.

* The same for nonexistant users.

Inconsistencies occur when:

* The interested server is down while the changes occur.

* A notification was lost.
  
* A domain is moved to another server without copying the
  database (the subscriptions must be re-created manually)

* Database is restored from a backup due to data corruption.

Possible approaches:

* Server would monitor suspicious stanzas (e.g. messages and presence
  from an offline resource) and check the subscription state.

What with the roster items that are inconsistent?

* Mark as inconsistent, let the client present it to the user to take
  action.

* Auto-repair and thus maintain consistency

Looking forward to all feedback.

Pavel



-- 

Freelance consultant and trainer
in networking, communications and security.

Web: http://www.pavlix.net/
Jabber, Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


[Standards] Fw: [Security] Unsubscribe on Userdelete (Was: Password protected rooms)

2009-02-13 Thread Pavel Simerda
This crossposting is hell.

On Fri, 13 Feb 2009 11:52:19 +0100
Alexander Gnauck gna...@ag-software.de wrote:

  Thats an very interesting point - in many respects. Two more
  examples:
  - I have a service with many users from other servers subscribed.
   As there is no unsubscribe if the user has been deleted, I have
  many zombie-subscription. I can only check the subscriptions from
  my own server if the accounts still exist. And even that is not so
  easy.
  - A friend subscribed my presence. He was some time in hospital, so
  I never noticed, that his account was deleted on the server (due to
  inactivity?). As the jid came back online I wrote him gladly, how
  he is after the surgery...   I realised very late, that the account
  was now new assigned.
 
 I had a similar problem when I unregistered my jabber.org account by
 error with a beta version of a client. The subscription was out of
 sync, and still is for
 many of my contacts, because server don't route my subscription
 requests. The only solution is to delete the contact on both sides
 and subscribe again.


I had similar problems in other scenarios too...

  I see only the solution, that there has to be an
  unsubscribe-request to every contact in the roster of an user if
  that user is going to be deleted.
 
 right, this is how it should (MUST) be done.

This does not help enough (though it catches the easiest cases).
I believe the subscription stuff in XMPP should be further re-thinked.

There are many real-world cases that break integrity of subscriptions
across servers.

* User delete
* Server switch (if you're not careful enough about the database)
* User grants subscription without being asked (I believe this is an
implementation issue)
* Some important presence/ stanza gets lost due to lost connection
* Various server errors (happenes once, but the integrity is lost)
* Other cases

I believe the only way is to implement some sort of auto-correction
that occures upon any sort of interaction.

E.g. the server could check the subscription when the following
suspicious (though many times valid) events occur.

* You got a presence/ from someone you're not subscribed to 
* You got a message/ (or iq/) from someone you're subscribed to but
  you haven't got his presence
* User tries to subscribe to someone he's already subscribed (and
  similar)
* Of course, user deletion should trigger unsubscribe, but it would be
  better to distinguish it from regular unsubscribe.

It would also be good to have some sort of redirection support that
would allow an account to be in a state between registered and
nonexistant.

Could be as simple as a redirect/ element in any error
answers. Supporting clients could then offer the user to *delete*
the contact or *replace* the contact with his new ID, request
subscription and retain group, local name and comments.

Pavel


 
 Alex
 
 --
 Alexander Gnauck
 http://www.ag-software.de
 xmpp:gna...@jabber.org


-- 

Freelance consultant and trainer
in networking, communications and security.

Web: http://www.pavlix.net/
Jabber, Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


-- 

Freelance consultant and trainer
in networking, communications and security.

Web: http://www.pavlix.net/
Jabber, Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] Password protected rooms

2009-02-12 Thread Pavel Simerda
On Wed, 11 Feb 2009 10:45:34 -0800
Justin Karneges justin-keyword-jabber.093...@affinix.com wrote:

 On Wednesday 11 February 2009 05:06:24 Kevin Smith wrote:
  On Wed, Feb 11, 2009 at 12:58 PM, Kurt Zeilenga
  kurt.zeile...@isode.com 
 wrote:
   I'm thinking more about a non-comprised server case, but just the
   case of poor administrative practices.
 
  Ok, I follow, thanks. Given that, maybe keeping password
  requirements on all affiliations is sensible.
 
 There are quite many XMPP services (bots and such) that you
 authenticate with just by JID.  Why would those things be okay, but
 MUC is somehow more secure and requires a password?
 
 I smell a new security discussion.

Wouldn't these be better on the security list?

I'm also against over-specific password authentication in individual
XEPS.

If we want better authentication, it may be reused by several XEPs and
may be optional, too.

Pavel

 -Justin


-- 

Freelance consultant and trainer
in networking, communications and security.

Web: http://www.pavlix.net/
Jabber, Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] Password protected rooms

2009-02-11 Thread Pavel Simerda
On Wed, 11 Feb 2009 04:58:01 -0800
Kurt Zeilenga kurt.zeile...@isode.com wrote:

 
 On Feb 10, 2009, at 11:25 PM, Kevin Smith wrote:
 
  On Tue, Feb 10, 2009 at 11:02 PM, Kurt Zeilenga
  kurt.zeile...@isode.com 
   wrote:
  It seems not so sensible when the admin happens to be
  authenticating directly to the server hosting the chatroom.  But
  for the case where the
  administrator authenticates elsewhere, possibly to a server under  
  separate
  administrative control, (to the extent that password protected  
  rooms are at
  all sensible) it seems at least reasonable for a server to be  
  allowed to
  require the administrator know the password.
 
  If we assume secure s2s, it seems that requiring the muc owner know
  a password only protects against a compromised (or maliciously
  adminned) server where the user can be impersonated by the server
  admin. Given that the muc password is sent in plaintext, a
  compromised server could pull this out of the stream anyway, so
  does it buy us much to require a password for the muc owner?
 
 I'm thinking more about a non-comprised server case, but just the
 case of poor administrative practices.
 
 Say the owner's account was deleted by his site's admin, and then
 that account name was reassigned to some other person.  Now a
 different person is in control of the owner's account.  This person
 might know or discover his account has ownership rights on various
 chatrooms and abuse those rights.

I would propose to solve this issue differently and completely, not
just for this special case.

 So I wonder if the password mechanism might be a way of mitigating  
 risks associated with such administrative practices.

Though passwords might help, IMO it's not the best solution
(e.g. a UUID published with the presence or elsewhere would do
much much better). Admin's password is rather inconvenient.

An admin's password may help to re-acquire adminship with a new JID,
though, but that would be better solved by more general
*authentication* and *authorization* that would both allow reuse
for other purposes (not only MUC) and could be much more flexible
(with regard to authentication mechanisms).

 Server implementations can add features to deal with this problem
 with both the owner and chat room are hosted on the same server, but
 I don't know any way of deal well this in the remote case except by  
 authentication of owner to room.

Easy, just add authentication :). But remember, if you want to maintain
at least some real security, you'd not only authenticate the remote
user, but also maintain integrity of all incoming data.

Please move to the security list if interested in further
authentication/authorization discussion.

Pavel

 Now one can argue that the password does nothing to specifically  
 authenticate the owner, so maybe the password doesn't well mitigate  
 the risk.
 
 -- Kurt


-- 

Pavel Šimerda
Freelancer v oblasti počítačových sítí, komunikace a bezpečnosti
Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] Full XML

2008-10-09 Thread Pavel Simerda
On Wed, 08 Oct 2008 21:30:27 -0600
Peter Saint-Andre [EMAIL PROTECTED] wrote:

 Brett Zamir wrote:
  As comments, processing instructions, DTD subset, and entity
  reference are prohibited in XMPP, I was wondering whether there
  were or could be a standard way to escape at least processing
  instructions, comments, and the internal DTD subset (canonical
  features) so they could be reliably preserved?
 
 Why? Maybe you could tell us a bit more about your use cases.
 
  I had thought that such features could be preserved by making them
  the character data of particular elements in a special namespace
  (necessarily encapsulating such documents or fragments within a
  pseudo-root element in order to allow for document-root-level
  comments/processing instructions as well as Doctype declarations). I
  would think that providing some means for fidelity of an XML
  document transmitted over XMPP would be helpful (e.g., to share
  source code in band (without the need to escape), to allow full
  XHTML or SVG with ?xml-stylsheet?'s to be shared, etc.).
 
 To do full XHTML, full SVG, or whatever, we would typically just
 include that data in a message/ or iq/ stanza, properly
 namespaced of course. See for instance XEP-0071 (the XHTML-IM subset)
 and XEP-0072 (SOAP Over XMPP).
 
 But please note that XMPP is not designed for transferring complete
 XML documents as you seem to be envisioning.
 

Or they can be transfered just like any files or blocks of data.

Pavel

  By the way, as far as section 12.1 in
  http://xmpp.org/internet-drafts/draft-saintandre-rfc3920bis-07.html
  referring to entity references as being in section 4.2 of the XML
  standard, I think it perhaps should instead be section 4.1, where
  entity reference is defined.
 
 Thanks, I'll check that.
 
 Peter
 


-- 

Pavel Šimerda
Freelancer v oblasti počítačových sítí, komunikace a bezpečnosti
Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] multiple FORM_TYPEs

2008-10-09 Thread Pavel Simerda
On Wed, 08 Oct 2008 22:28:36 -0600
Peter Saint-Andre [EMAIL PROTECTED] wrote:

 Brett Zamir wrote:
  I had been wondering whether multiple FORM_TYPEs in Data Forms be
  added to allow for multiple /standard/ specs being represented at
  the same time...
  
  I have no particular need for this now, but I was curious about it
  for the sake of future extensibility...
  
  Jack, in the developer chat room today mentioned Pubsub Queueing at
  http://xmpp.org/extensions/inbox/pubsub-queueing.html (in example
  1) as having such a need, but I thought I'd bring it up again here
  to bring it up formally...
 
 Thinking ahead, eh?
 
 Scoping the same data form with two different FORM_TYPEs would be like
 qualifying the same XML element with different namespaces. No go. Or
 at least that's how XEP-0004 and XEP-0068 were designed.
 
 But you could include two different forms...
 
 Peter
 

Can I extend this question?

Shouldn't we use some sort of more proper namespacing of form fields
(or multiple forms) instead of practice that like node config in PubSub,
etc?

Pavel

-- 

Pavel Šimerda
Freelancer v oblasti počítačových sítí, komunikace a bezpečnosti
Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] question on guaranteed delivery and pub-sub

2008-10-09 Thread Pavel Simerda
On Thu, 9 Oct 2008 13:11:25 +0200
Jonathan Schleifer [EMAIL PROTECTED] wrote:

 Am 09.10.2008 um 06:51 schrieb Peter Saint-Andre:
 
  This doesn't apply, because a publish happens via IQ. And why
  would the
  pubsub service poke the publisher if not all the messages can be
  delivered? I think it would be the service's responsibility to
  retry the
  notifications.
 
 ejabberd sends the message that would have been delivered to the  
 recipient with an error attached.

Isn't it the other way round? Isn't it an error message with an
original message attached? :)

Broken clients should be fixed, this was the case for some older
version of Psi and it showed error messages as chat messages.

 This is very funny for PEP, as
 some clients don't see that there's an error attached and you see
 your own mood / activity / tune at ohters then when there was an
 error :) *looking at Adium, looks at old Gajim versions*.
 
 --
 Jonathan
 


-- 

Pavel Šimerda
Freelancer v oblasti počítačových sítí, komunikace a bezpečnosti
Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] RCF3920bis07: Resource generation

2008-10-07 Thread Pavel Simerda
On Mon, 6 Oct 2008 16:35:03 +0100
Pedro Melo [EMAIL PROTECTED] wrote:

 
 On Oct 6, 2008, at 3:43 PM, Jonathan Schleifer wrote:
 
  Am 06.10.2008 um 13:30 schrieb Pedro Melo:
 
  IMHO, you should use caps for that.
 
  That's the proper way to solve it. Use an identity client/phone
  or client/handheld.
 
 
  Doesn't solve the issue with you are connected via laptop and  
  desktop at home and are online using GPRS on the laptop (I already  
  gave this example before, so I won't give it again - read the old  
  messages for the full example).
 
 See my previous messages: caps, disco, and disco identities, with
 the name attribute, solve all your current problems.
 
 And in a standard, document, way, not subject to I8N interpretations.
 
 Best regards,

+1

Thanks for pointing out the right solution for this particular case...
but I don't see home/work and other info there.

Pavel

-- 

Pavel Šimerda
Freelancer v oblasti počítačových sítí, komunikace a bezpečnosti
Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] RCF3920bis07: Resource generation

2008-10-07 Thread Pavel Simerda
On Tue, 7 Oct 2008 13:12:49 +0100
Pedro Melo [EMAIL PROTECTED] wrote:

 Hi,
 
 On Oct 7, 2008, at 12:17 PM, Pavel Simerda wrote:
  On Mon, 6 Oct 2008 16:33:59 +0100
  Pedro Melo [EMAIL PROTECTED] wrote:
  On Oct 6, 2008, at 3:39 PM, Michal 'vorner' Vaner wrote:
  On Mon, Oct 06, 2008 at 12:30:10PM +0100, Pedro Melo wrote:
  On Mon, Oct 06, 2008 at 11:37:34AM +0100, Pedro Melo wrote:
  The reasons given to use a well-known resource can be solved
  better using
  other methods.
 
  You omit the reason the resource name carries an information.
  When I see
  someone connected with resource 'mobile', I know I should not
  spam him
  with large messages.
  IMHO, you should use caps for that.
 
  That's the proper way to solve it. Use an identity client/phone
  or client/handheld.
 
  Then you will need caps containing any string to show to user,
  since resource can carry any information.
 
  name attribute of the identity?
 
  Doesn't it break the purpose of the caps? I originally thought the
  authors wanted to have a reasonable number of different caps to
  cache at the servers.
 
 Yes, it does.
 
 For each name, the hash will be different.
 
 Best regards,

I expected at least Yes it does but we don't care. :)

Pavel

-- 

Pavel Šimerda
Freelancer v oblasti počítačových sítí, komunikace a bezpečnosti
Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] invisibility

2008-10-07 Thread Pavel Simerda
On Mon, 6 Oct 2008 17:02:24 +0100
Artur Hefczyc [EMAIL PROTECTED] wrote:

 Hi,
 
  While reviewing XEP-0186 just now, I noticed that when a resource
  goes invisible, its server must send presence of type unavailable
  from that resource. As far as I can see, when a contact's server
  receives unavailable presence from the user (and if the
  user+contact have a two-way presence subscription), it will stop
  sending presence updates to
  the user (if that was the last online resource for the user). This
  somewhat defeats the purpose of invisibility, no? The implication is
  that the user's information about the presence of its contacts
  will soon
  become stale. But I suppose that's one price you pay for
  invisibility, which I continue to think is a stupid concept
  anyway. :)
 
 
 I thought we gave up with invisibility anyway. Especially that this
 can be quite easily achieved with privacy lists without those
 unwanted side effects. And privacy lists give us much more
 flexibility to set invisibility
 for a single user, group.

I'm afraid you missed one thing. These unwanted side effects can't be
avoided. Therefore privacy lists have them too, of course.

Pavel

 
 Artur


-- 

Pavel Šimerda
Freelancer v oblasti počítačových sítí, komunikace a bezpečnosti
Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] RCF3920bis07: Resource generation

2008-10-07 Thread Pavel Simerda
On Tue, 7 Oct 2008 13:09:07 +0100
Pedro Melo [EMAIL PROTECTED] wrote:

 Hi,
 
 On Oct 7, 2008, at 12:13 PM, Pavel Simerda wrote:
  On Mon, 6 Oct 2008 16:35:03 +0100
  Pedro Melo [EMAIL PROTECTED] wrote:
  On Oct 6, 2008, at 3:43 PM, Jonathan Schleifer wrote:
 
  Am 06.10.2008 um 13:30 schrieb Pedro Melo:
 
  IMHO, you should use caps for that.
 
  That's the proper way to solve it. Use an identity client/phone
  or client/handheld.
 
 
  Doesn't solve the issue with you are connected via laptop and
  desktop at home and are online using GPRS on the laptop (I already
  gave this example before, so I won't give it again - read the old
  messages for the full example).
 
  See my previous messages: caps, disco, and disco identities, with
  the name attribute, solve all your current problems.
 
  And in a standard, document, way, not subject to I8N
  interpretations.
 
  Best regards,
 
  +1
 
  Thanks for pointing out the right solution for this particular
  case... but I don't see home/work and other info there.
 
 Sure, that would be the name attribute value.
 
 Because home, work, et al is the name you choose to give to those  
 instances.
 
 Best regards,

Thanks I got it while reading other posts. Your patience will be
remembered :).

Pavel

-- 

Pavel Šimerda
Freelancer v oblasti počítačových sítí, komunikace a bezpečnosti
Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] RCF3920bis07: Resource generation

2008-10-07 Thread Pavel Simerda
On Mon, 6 Oct 2008 20:06:01 +0200
Remko Tronçon [EMAIL PROTECTED] wrote:

  Another idea would be that the client requests a resource from the
  server and when it gets disconnected tries to re-use that resource
  on reconnecting so the dead connection gets kicked. Two clients
  can't kick each other that way.
 
 Yes, that works as well (provided that the server doesn't do mangling
 on the resource names it created itself).

I think the best way would be to specify the old resource string as a
hint to the server. The server would then ping it and close it.

 cheers,
 Remko


-- 

Pavel Šimerda
Freelancer v oblasti počítačových sítí, komunikace a bezpečnosti
Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] RCF3920bis07: Resource generation

2008-10-07 Thread Pavel Simerda
On Mon, 6 Oct 2008 17:24:38 +0200
Remko Tronçon [EMAIL PROTECTED] wrote:

  Doesn't solve the issue with you are connected via laptop and
  desktop at home and are online using GPRS on the laptop
 
 Neither does setting a resource named 'Laptop', as that doesn't say
 anything about your connection.
 
 Even if I was on GPRS, I would like my contacts to send me links in my
 current chat window. I'll decide whether I want them to be stored for
 later offline usage, sent to my desktop pc (in which case I'll ask
 them to send it there), or just open them.

And you can send them yourself :).

Pavel

 
 cheers,
 Remko


-- 

Pavel Šimerda
Freelancer v oblasti počítačových sítí, komunikace a bezpečnosti
Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] RCF3920bis07: Resource generation

2008-10-07 Thread Pavel Simerda
On Mon, 6 Oct 2008 13:35:56 +0200
Remko Tronçon [EMAIL PROTECTED] wrote:

  IMHO, you should use caps for that.
 
 +1. And clients should support this better by showing icons for
 different types of resources.

That might prove much better than the current approach.

 cheers,
 Remko


-- 

Pavel Šimerda
Freelancer v oblasti počítačových sítí, komunikace a bezpečnosti
Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] RCF3920bis07: Resource generation

2008-10-07 Thread Pavel Simerda
On Mon, 6 Oct 2008 11:53:51 +0100
Pedro Melo [EMAIL PROTECTED] wrote:

 Hi,
 
 On Oct 5, 2008, at 2:07 PM, Pavel Simerda wrote:
 
  Please look into real world, not idealistic.
 
  Servers have sometimes long timeouts (nobody says they can't),
  don't do
  any sort of pings (nobody says they must) and many people have  
  unstable
  connections, even on ADSL, but much more on wireless, especially
  when moving aroud.
 
 IMHO, pings are awful. I would much rather have session-reconnect  
 and link-level acks for stanzas. The pair should provide an even
 more resiliant network than pings will ever do.

link-level pings, of course.

This is what you might want to do:
1) when you don't get an ack and want to retry last before
disconnection (maybe not useful at all, not sure)
2) when there are no messages for some time at all (acks are correct,
but you don't know anyway)

These pings are to be found in xep-198 together with acks, if it didn't
change from last time I saw it.

 
 Pings assert only one thing: A stanza reached the server, and
 another was able to get back. You cannot extrapolate any assurances
 of quality what so ever from this.

link-level pings assert a working connection, and indirectly all
previous stanzas (because of TCP underneath). ACKs are better for this
if there are stanzas to acknowledge.

Sure, XMPP-level pings (xep-199) should not be used there.

 Having said that, a link level keep-alive is useful for silent
 network losses, and pings have its place on my toolbox to kick-start
 S2S connections. If I want to send stanzas to a certain domain and I
 don't know if they have a S2S connection available on my server, I
 delay the send until I get back some sort of ping response.

I am sorry for the confusion between link-level (XEP-198) and xmpp-level
(XEP-199) pings.

  It's a common things to loose messages on Jabber for people with bad
  connectins. The good thing is that when one comes back, the old
  resource is kicked (with reason: reconnected) and the user is
  notified... and after some time, users learn that after other
  party's reconnect, they must re-send what they have posted.
 
 Yes, as I said above, pings are great to kickstart S2S connections.
 
 Although I think servers should keep S2S connections open while
 there is an active session with a roster item from the remote
 domain
 
 
  If this is not the case, users become confused and will start to
  think Jabber is unreliable. And what more, they will rightly do so.
 
 I agree that reliability is still a problem with the larger XMPP  
 network, specially small servers.

IMO it doesn't depend so much on the scale of the servers. It's that...

1) Broken connection are often not closed early enough (half an hour is
quite usual).
2) When they are still broken but open (from one or both sides),
they're filled with stanzas the senders expect to deliverd or passed to
offline storage or something (handled may be the best word).
3) Such stanzas are not handled as the connection is broken, they're
lost.
4) The sender recieves no error regardles the point where the message
was dropped.
5) He cannot resend it manually nor his client can handle it
automatically.

Some issues are bad, some are even worse :).

I admit that resource-based kicking is an ugly hack that only solves
one specific situation. I would like to cease it with a better
replacement, not without it. There are no more concerns of mine :).

Pavel

 
 But unwinding the conversation, using the same resource as a session- 
 resume/takeover tool is the wrong way to go about it.
 
 Even if you reconnect 10 seconds after you lost the first
 connection, you can still loose messages and other stanzas. You need
 a proper session-resume service to deal with that.
 
 Everything else is like using a sieve to block out the sun: half- 
 measures.
 
 Best regards,


-- 

Pavel Šimerda
Freelancer v oblasti počítačových sítí, komunikace a bezpečnosti
Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] RCF3920bis07: Resource generation

2008-10-07 Thread Pavel Simerda
On Mon, 6 Oct 2008 18:28:30 -0400
Eric Will [EMAIL PROTECTED] wrote:

 On Oct 6, 2008, at 4:31 PM, Peter Saint-Andre wrote:
  That seems quite sensible. Why force the indirection?
 
 This seems to be largely a matter of taste as opposed to good  
 technical reasoning. I don't think there IS a good technical  
 reasoning. Both points have merit.

The whole thread is based on technical reasoning.

 On the one hand, it's a good thing that clients can specify their  
 own so that advanced-ish XMPP users have that extra bit of oomph to  
 utilize (and let's face it, most XMPP users are advanced-ish).

If one can assing a name to a resource (in the meaning of a connected
client, not a resource string), he SHOULD :) be satisfied.

Furthermore... if this feature serves well both advanced users and
basic users, it definitely brings a much better value than if it only
served advanced users.

Noticed that I changed my mind thanks to Pedro Melo's and other's good
reasoning.

 On the other hand, it's a good thing that resources are an  
 implementation detail and can be abstracted away from the client.
 
  /psa
 
 -- Eric Will
 


-- 

Pavel Šimerda
Freelancer v oblasti počítačových sítí, komunikace a bezpečnosti
Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] RCF3920bis07: Resource generation

2008-10-07 Thread Pavel Simerda
On Tue, 7 Oct 2008 13:19:22 +0100
Kevin Smith [EMAIL PROTECTED] wrote:

  Doesn't it break the purpose of the caps? I originally thought the
  authors wanted to have a reasonable number of different caps to
  cache at the servers.
 
 There's also that the disco spec says that identity / should be
 consistent beyond what is being suggested here.
 
 I think overloading identity at the deployment level is a bad idea,
 fwiw.

What do you suggest then?

Pavel

 
 /K


-- 

Pavel Šimerda
Freelancer v oblasti počítačových sítí, komunikace a bezpečnosti
Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] RCF3920bis07: Resource generation

2008-10-07 Thread Pavel Simerda
On Mon, 6 Oct 2008 19:07:24 +0100
Pedro Melo [EMAIL PROTECTED] wrote:

 
 On Oct 6, 2008, at 5:27 PM, Jonathan Schleifer wrote:
 
  Ok, I can understand your suggestions now. However, you're missing  
  one point: What advantage do we get by a resource that has no  
  meaing? IMO, nothing. A static resource just makes it easier for  
  everyone, IMO. Replacing the connection, etc.
 
 No it does not, because you don't want a connection replaced. you  
 want a controlled take-over of an old session. You want a new  
 connection to arrive and tell the server Hey, I'm session-ID X and
 I want to take over it.

Hmm, you helped me to understand the case. Do we have a way to at least
specify the old session-ID?

 Abruptly taking over the other connection makes it harder for proper  
 stanza re-routing.
 
 Besides, we already know that some servers will not allow you to  
 control the resource. Also, re-using the resource opens the previous  
 discusses presence leaks problems.
 
 
  IMO, you're suggestion to resume a session is really good, so the  
  resource could get a session ID then. But until we have a XEP that  
  does that, I'd like to keep it the way we have it and make it  
  possible to use both - once we can resume sessions, clients that  
  support that could ask for a random resource, while other clients  
  still get a static one.
 
 Sure. I said a couple of mails back, I have no problem that the bis  
 RFC says something like respect the resource the client sends. I  
 was just arguing that it is a bad default, going forward, and we  
 should move to a network where the resource is plumbing, non-visible  
 to end users.
 
 As I (hopefully) demonstrated in the past emails, all the current
 use cases (resource identification and capabilities) are better
 solved using Disco.
 
 
  Plus I see one problem with resuming a session: You don't know
  what got lost. So we also need wide XEP-0198 implementation.
  Otherwise we can't resend on resume what got lost.
 
 Sure: session resume requires link-level acks. Have you read 198? It  
 talks about resumed sessions here: http://xmpp.org/extensions/ 
 xep-0198.html#resumption
 
 Best regards,


-- 

Pavel Šimerda
Freelancer v oblasti počítačových sítí, komunikace a bezpečnosti
Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] RCF3920bis07: Resource generation

2008-10-07 Thread Pavel Simerda
On Tue, 7 Oct 2008 14:34:15 +0100
Pedro Melo [EMAIL PROTECTED] wrote:

 Hi,
 
 On Oct 7, 2008, at 1:00 PM, Pavel Simerda wrote:
  On Mon, 6 Oct 2008 11:53:51 +0100
  Pedro Melo [EMAIL PROTECTED] wrote:
  On Oct 5, 2008, at 2:07 PM, Pavel Simerda wrote:
  Please look into real world, not idealistic.
 
  Servers have sometimes long timeouts (nobody says they can't),
  don't do
  any sort of pings (nobody says they must) and many people have
  unstable
  connections, even on ADSL, but much more on wireless, especially
  when moving aroud.
 
  IMHO, pings are awful. I would much rather have session-reconnect
  and link-level acks for stanzas. The pair should provide an even
  more resiliant network than pings will ever do.
 
  link-level pings, of course.
 
  This is what you might want to do:
  1) when you don't get an ack and want to retry last before
  disconnection (maybe not useful at all, not sure)
 
 This is TCP, one lost ping is enough.

That's why I wrote I'm not sure about usefullness.

 
  2) when there are no messages for some time at all (acks are
  correct, but you don't know anyway)
 
  These pings are to be found in xep-198 together with acks, if it  
  didn't
  change from last time I saw it.
 
 They are there.
 
 
  If this is not the case, users become confused and will start to
  think Jabber is unreliable. And what more, they will rightly do
  so.
 
  I agree that reliability is still a problem with the larger XMPP
  network, specially small servers.
 
  IMO it doesn't depend so much on the scale of the servers. It's  
  that...
 
 The paragraph was meant for S2S connections, sorry, didn't made
 myself clear.
 
 With a small server (small in terms of users) each S2S connection
 has light use, so the risk of disconnect for lack of traffic is
 higher than on busy servers.
 
 Hence, on small servers, the first message to a remote domain has a  
 higher change of failing (the S2S link is not up, and even if the  
 server buffers the message to send later, he might control the size
 of such buffers).
 
 Best regards,


-- 

Pavel Šimerda
Freelancer v oblasti počítačových sítí, komunikace a bezpečnosti
Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] RCF3920bis07: Resource generation

2008-10-07 Thread Pavel Simerda
On Tue, 7 Oct 2008 14:40:28 +0100
Pedro Melo [EMAIL PROTECTED] wrote:

 
 On Oct 7, 2008, at 12:20 PM, Pavel Simerda wrote:
 
  On Mon, 6 Oct 2008 11:39:11 +0100
  Pedro Melo [EMAIL PROTECTED] wrote:
 
 
  On Oct 5, 2008, at 1:48 AM, Jonathan Schleifer wrote:
 
  Matthew Wild [EMAIL PROTECTED] wrote:
 
  If they type it manually then they know what they are doing, and
  when they come to type the stanza for resource binding, they will
  read the RFC and see that it recommends not specifying a
  resource :)
 
  Which is IMO a painfully bad idea for users with instable
  connections. They will have thousands of resources online after a
  short while and you don't know which to msg. Very, very bad idea,
  IMO. Makes it totally
  unusable with an unstable conenction. You *WANT* a static resource
  then, so you can replace the old, dead connection.
 
  I would recommend those clients to use BOSH and its native session
  resume capabilities.
 
  I would recommend not to break the TCP way only to use a bunch of
  layers. Too many layers (in protocol, session layers, etc) add  
  (usually
  unnecessary) complexity.
 
 Sure, but the scenario was unstable networks. On those networks, you  
 need a strong session-level reconnect protocol, and right now, XMPP  
 over http BOSH has that, and XMPP over TCP doesn't.
 
 
  The users will be a lot happier.
 
  On a perfect world you would be able to use the same session-resume
  capabilities on TCP. Maybe someday you will.
 
  That would be much better. But still it doesn't solve the
  disconnect without reconnect case (xep-198 mostly does).
 
 disconnect without reconnect? you mean when a client looses the  
 connection and doesn't reconnect in the allowed time?

Yep, that's it. Just curious why minutes was chosen while seconds tend
to be the basic unit anywhere there's no need for finer granularity...
but that's just a detail.

There won't be any way to change this from a client?

 It would trigger the longest allowable time period for session  
 resumption timeout.

Btw, it seems xep-198 is not clear enough.

1) When exactly can be the resume feature used? When the client doesn't
properly end the stream? What about stream errors?

2) When exactly should be the resume connection ended and error
returned for pending stanzas (apart from the timeout)? Does it mean
that I loose connection on my laptop so I connect my mobile client...
then talk with the same people e.g. for 20 minutes (the 'max' period)
and then they get a bunch of errors that I didn't recieve their
messages?

 
 In XEP-0198 (see example-2,
 http://xmpp.org/extensions/xep-0198.html#example-2) , the servers
 sends you back a max attribute with the longest allowable time to
 reconnect. If that expires, the server assumes the connection is
 dead, and cleans up.
 
 Best regards,


-- 

Pavel Šimerda
Freelancer v oblasti počítačových sítí, komunikace a bezpečnosti
Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] invisibility

2008-10-07 Thread Pavel Simerda
On Tue, 7 Oct 2008 14:50:35 +0100
Pedro Melo [EMAIL PROTECTED] wrote:

 Hi,
 
 On Oct 7, 2008, at 1:11 PM, Pavel Simerda wrote:
 
  On Mon, 6 Oct 2008 16:50:54 +0100
  Pedro Melo [EMAIL PROTECTED] wrote:
 
  On Oct 6, 2008, at 3:52 PM, Peter Saint-Andre wrote:
 
  While reviewing XEP-0186 just now, I noticed that when a resource
  goes invisible, its server must send presence of type unavailable
  from that resource. As far as I can see, when a contact's server
  receives unavailable presence from the user (and if the
  user+contact have a two-way presence subscription), it will stop
  sending presence updates to
  the user (if that was the last online resource for the user). This
  somewhat defeats the purpose of invisibility, no?
 
  Depends. It defeats the purpose of lurkers, who want to keep seeing
  the others online without revealing their own presence. But if you
  want to be online to talk to XMPP-based services but skip Instant
  Messaging, I think its ok.
 
  I assume that if you are really interested on getting presence
  updates from a particular contact, you would send him a directed
  presence and become visible just for him.
 
  Anyway, in a federated network, I don't see a way to do better than
  this. If we had a server-2-server protocol for hey, i'm invisible
  but keep sending those presences, you would be leaking the
  presence anyway.
 
  I'm fine with this XEP as it stands.
 
  One nit: third security consideration, about last activity -
  replying service-unavailable / is a information leak. The proper
  reply would be to reply with the time of invisible request.
 
  This would also leak information :). If you don't want others to
  know you are online... you might also not want them to know you
  connected just five minutes ago.
 
 Huhs? Sorry, don't follow.
 
 last-activity will only reply to people already on your roster.
 
 When I move to invisible, I don't want people to know that I'm  
 invisible, so if someone in my rosters asks for last activity, the  
 response should be consistent with my make-believe offline mode: the  
 last-activity is the time of my logout.

But what if you want to be Invisible from the beginning of a connection.
I don't know the detais of the two invisibility xeps but... it seems
just logical that when I connect and start invisible, I don't want my
subscribed friends to know when exactly I connected (and disappeared).
Maybe I want them to think I was not online at all the whole day.

 Giving a radically different response when you move from visible to  
 invisible is a clear signature of invisibility.
 
 Best regards,


-- 

Pavel Šimerda
Freelancer v oblasti počítačových sítí, komunikace a bezpečnosti
Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] invisibility

2008-10-07 Thread Pavel Simerda
On Tue, 7 Oct 2008 17:58:59 +0100
Pedro Melo [EMAIL PROTECTED] wrote:

 Hi,
 
 On Oct 7, 2008, at 5:45 PM, Pavel Simerda wrote:
  On Tue, 7 Oct 2008 14:50:35 +0100
  Pedro Melo [EMAIL PROTECTED] wrote:
 
  On Oct 7, 2008, at 1:11 PM, Pavel Simerda wrote:
 
  On Mon, 6 Oct 2008 16:50:54 +0100
  Pedro Melo [EMAIL PROTECTED] wrote:
 
  On Oct 6, 2008, at 3:52 PM, Peter Saint-Andre wrote:
 
  While reviewing XEP-0186 just now, I noticed that when a
  resource goes invisible, its server must send presence of type
  unavailable from that resource. As far as I can see, when a
  contact's server receives unavailable presence from the user
  (and if the user+contact have a two-way presence subscription),
  it will stop sending presence updates to
  the user (if that was the last online resource for the user).
  This somewhat defeats the purpose of invisibility, no?
 
  Depends. It defeats the purpose of lurkers, who want to keep
  seeing the others online without revealing their own presence.
  But if you want to be online to talk to XMPP-based services but
  skip Instant Messaging, I think its ok.
 
  I assume that if you are really interested on getting presence
  updates from a particular contact, you would send him a directed
  presence and become visible just for him.
 
  Anyway, in a federated network, I don't see a way to do better
  than this. If we had a server-2-server protocol for hey, i'm
  invisible but keep sending those presences, you would be
  leaking the presence anyway.
 
  I'm fine with this XEP as it stands.
 
  One nit: third security consideration, about last activity -
  replying service-unavailable / is a information leak. The
  proper reply would be to reply with the time of invisible
  request.
 
  This would also leak information :). If you don't want others to
  know you are online... you might also not want them to know you
  connected just five minutes ago.
 
  Huhs? Sorry, don't follow.
 
  last-activity will only reply to people already on your roster.
 
  When I move to invisible, I don't want people to know that I'm
  invisible, so if someone in my rosters asks for last activity, the
  response should be consistent with my make-believe offline mode:
  the last-activity is the time of my logout.
 
  But what if you want to be Invisible from the beginning of a  
  connection.
  I don't know the detais of the two invisibility xeps but... it seems
  just logical that when I connect and start invisible, I don't want
  my subscribed friends to know when exactly I connected (and
  disappeared). Maybe I want them to think I was not online at all
  the whole day.
 
 I guess you don't send your initial presence then.
 
 First send the invisible IQ, and then set you presence.
 
 Best regards,

I'm sorry, it was not a question, it was a reply to yours.

You suggested: The proper reply would be to reply with the time of
request.

But this breaks the case I have just described and leaks information
that you were connected at some specific time.

Pavel

-- 

Pavel Šimerda
Freelancer v oblasti počítačových sítí, komunikace a bezpečnosti
Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] RCF3920bis07: Resource generation

2008-10-05 Thread Pavel Simerda
On Sun, 5 Oct 2008 02:48:55 +0200
Jonathan Schleifer [EMAIL PROTECTED] wrote:

 Matthew Wild [EMAIL PROTECTED] wrote:
 
  If they type it manually then they know what they are doing, and
  when they come to type the stanza for resource binding, they will
  read the RFC and see that it recommends not specifying a resource :)
 
 Which is IMO a painfully bad idea for users with instable connections.
 They will have thousands of resources online after a short while and
 you don't know which to msg. Very, very bad idea, IMO. Makes it
 totally unusable with an unstable conenction. You *WANT* a static
 resource then, so you can replace the old, dead connection.
 

Very good point!

Btw, is there a real reason to use randomized resource strings... or is
it just to overcome bugs made by client and server developers?

Pavel

-- 

Pavel Šimerda
Freelancer v oblasti počítačových sítí, komunikace a bezpečnosti
Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] RCF3920bis07: Resource generation

2008-10-05 Thread Pavel Simerda
On Sun, 5 Oct 2008 11:33:46 +0200
Jonathan Schleifer [EMAIL PROTECTED] wrote:

 If you get a conflict, you can continue and replace the old resource.
 
 IIRC, with the current RFC, it's undefined what the server does
 then, but most replace it. This should be clearified IMO so that the
 RFC  

I'm very much for a clarification that leads to a reliable service (at
least reliable in the sense that the user knows when to re-send stuff,
even better, if the client does it for him). This sort of works now with
or without ACKs but will break with random resources unless there is a
way to avoid.

Pavel

-- 

Pavel Šimerda
Freelancer v oblasti počítačových sítí, komunikace a bezpečnosti
Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] RCF3920bis07: Resource generation

2008-10-05 Thread Pavel Simerda
On Sun, 5 Oct 2008 15:10:42 +0200
Jonathan Schleifer [EMAIL PROTECTED] wrote:

 Am 05.10.2008 um 15:07 schrieb Pavel Simerda:
 
  It's a common things to loose messages on Jabber for people with bad
  connectins. The good thing is that when one comes back, the old
  resource is kicked (with reason: reconnected) and the user is
  notified... and after some time, users learn that after other
  party's reconnect, they must re-send what they have posted.
 
 
 This is how legacy networks handle it - XMPP is more modern, we have  

This is how the modern XMPP handles it. I'm afraid it's time to drop
your ideals. I had time to study it and to test it. Sorry.

We're here to fix the problems, not to say they doesn't exist :).

 XEP-0184 which tells the sender that the message did not arrive and  

As for message receipts, they don't work in many cases (privacy
issues, etc). You CANNOT expect anyone to send you message reciepts
(just as you cannot with e-mail).

 XEP-0198 for reliable delivery ;).

Oh, read better, in XEP-198, there is NOTHING about (reliable) delivery.

 
 --
 Jonathan
 


-- 

Pavel Šimerda
Freelancer v oblasti počítačových sítí, komunikace a bezpečnosti
Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] RCF3920bis07: Resource generation

2008-10-05 Thread Pavel Simerda
On Sun, 5 Oct 2008 15:27:21 +0200
Jonathan Schleifer [EMAIL PROTECTED] wrote:

 Am 05.10.2008 um 15:20 schrieb Pavel Simerda:
 
  As for message receipts, they don't work in many cases (privacy
  issues, etc). You CANNOT expect anyone to send you message reciepts
  (just as you cannot with e-mail).
 
 Yeah, sure, the other end has to support it. I only know of Gajim
 and Miranda answering it so far  adding it in the caps.
 
 In Gajim, we look at caps and if it's supported warn if we don't get
 a XEP-0184 receipt. That's works very well so far :).

Then it doesn't work at all. It's not useful at all to achieve reliable
services.

Even xep-198 helps much better but doesn't work alone and is not
required anyway.

I'll wait for others to join the conversation :).

Pavel

 --
 Jonathan
 


-- 

Pavel Šimerda
Freelancer v oblasti počítačových sítí, komunikace a bezpečnosti
Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] RCF3920bis07: Resource generation

2008-10-05 Thread Pavel Simerda
On Sun, 5 Oct 2008 15:12:18 +0200
Jonathan Schleifer [EMAIL PROTECTED] wrote:

 Am 05.10.2008 um 15:02 schrieb Pavel Simerda:
 
  Btw, is there a real reason to use randomized resource strings...
  or is
  it just to overcome bugs made by client and server developers?
 
 
 Main reason is to work around presence leaks - wrong approach, IMO.

That is a nice opinion. But this needs a lot of knowledge and
discussions.

I am also very curious to hear why to spoil one of XMPP's long-used and
funcional features instead of fixing the bugs.

Anyway this too much resembles security-by-obscurity (more specifically
privacy-by-obscurity). I personally thing this idea only brings a FALSE
sense of privacy and no real gain.

Any single use case that can't be fixed by better means than
randomizing a convenient resource string?

Pavel

 
 Another reason I could think of is so that Average Joe can use the  
 same Jabber Client on two machines without the need to know how to  
 change the resource - but for that, the client could generate a
 random resource when the account is added and save that.
 
 --
 Jonathan
 


-- 

Pavel Šimerda
Freelancer v oblasti počítačových sítí, komunikace a bezpečnosti
Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] RCF3920bis07: Resource generation

2008-10-05 Thread Pavel Simerda
As Justin, Dave and others, I was always for this method... even before
it became official XEP.

Pavel

On Sun, 5 Oct 2008 15:37:00 +0200
Jonathan Schleifer [EMAIL PROTECTED] wrote:

 Am 05.10.2008 um 15:31 schrieb Pavel Simerda:
 
  Then it doesn't work at all. It's not useful at all to achieve  
  reliable
  services.
 
  Even xep-198 helps much better but doesn't work alone and is not
  required anyway.
 
 I haven't said it helps reliability, but the sender is warned that
 the message has not arrived and can resend it.
 
 This is awfully useful, as you often don't know what the last
 message was that someone received.
 
 And for me, it's enough if Gajim supports it, as that is already
 more than 50% of my roster, I guess :). We need to encourage more
 client developers to implement it. Gajim already gives a good example
 of how you could display messages that did not arrive to the user
 (AFAIK, it's the only client showing that to the user so far).
 
 --
 Jonathan
 


-- 

Pavel Šimerda
Freelancer v oblasti počítačových sítí, komunikace a bezpečnosti
Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] RCF3920bis07: Resource generation

2008-10-05 Thread Pavel Simerda
I am very sorry I didn't have enough...

But as it seems now... the new RFC breaks the current behavior that was
not the best, but acceptable.

And the new behavior is totally broken unless other (for now
optional, specified in XEP-198) means are used for disconnection
detection and stanza acks.

That's pretty bad and will lead to a loss of trust that XMPP services
work at least reasonably reliably.

That's my opinion.

Pavel Šimerda


On Sun, 5 Oct 2008 11:10:15 -0400
Eric Will [EMAIL PROTECTED] wrote:

 On Sun, Oct 5, 2008 at 5:33 AM, Jonathan Schleifer
 [EMAIL PROTECTED] wrote:
  Not every client supports XMPP ping and this does a lot of traffic
  and isn't acceptable for mobile devices. Thousands might be a bit
  exagerated, but you can really see 5 - 10 resources.
 
 Currently, I send a space to any resource I haven't heard from in 120
 seconds, and if the write succeeds I reset the time. If the write
 fails, I kill them. XMPP-CORE approves using whitespace for a ping, so
 I don't see the need for XMPP PING support.
 
 Also, the RFC is quite mute on what should be done about conflicting
 resources. The new draft actually recommends overriding the resource
 and adding randomness to it instead of replacing the already-connected
 one by the same name. At the moment, my code just returns conflict/
 and closes the stream.


-- 

Pavel Šimerda
Freelancer v oblasti počítačových sítí, komunikace a bezpečnosti
Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] RCF3920bis07: Resource generation

2008-10-05 Thread Pavel Simerda
On Sun, 5 Oct 2008 21:30:56 +0200
Pavel Simerda [EMAIL PROTECTED] wrote:

 As Justin, Dave and others, I was always for this method... even
 before it became official XEP.

Sorry, I meant as justin, dave and others KNOW.

(XEP-198 and its history)

 
 Pavel
 
 On Sun, 5 Oct 2008 15:37:00 +0200
 Jonathan Schleifer [EMAIL PROTECTED] wrote:
 
  Am 05.10.2008 um 15:31 schrieb Pavel Simerda:
  
   Then it doesn't work at all. It's not useful at all to achieve  
   reliable
   services.
  
   Even xep-198 helps much better but doesn't work alone and is not
   required anyway.
  
  I haven't said it helps reliability, but the sender is warned that
  the message has not arrived and can resend it.
  
  This is awfully useful, as you often don't know what the last
  message was that someone received.
  
  And for me, it's enough if Gajim supports it, as that is already
  more than 50% of my roster, I guess :). We need to encourage more
  client developers to implement it. Gajim already gives a good
  example of how you could display messages that did not arrive to
  the user (AFAIK, it's the only client showing that to the user so
  far).
  
  --
  Jonathan
  
 
 


-- 

Pavel Šimerda
Freelancer v oblasti počítačových sítí, komunikace a bezpečnosti
Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] RCF3920bis07: Resource generation

2008-10-04 Thread Pavel Simerda
On Sat, 4 Oct 2008 09:42:43 +0100
Kevin Smith [EMAIL PROTECTED] wrote:

 On Sat, Oct 4, 2008 at 1:18 AM, Matthew Wild [EMAIL PROTECTED] wrote:
  I thought I recalled some discussion on the lists already regarding
  this, but I haven't been able to find it. On resource binding, the
  RFC says the server MAY modify the client's chosen resource. Is
  there a reason that it doesn't say If the client provides a
  resource, the server SHOULD use this instead?
 
 I'm +1 on servers SHOULD do as they're told.
 
 /K

pavlix agrees too

-- 

Pavel Šimerda
Freelancer v oblasti počítačových sítí, komunikace a bezpečnosti
Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] [E2E] Why we need a body element

2008-10-02 Thread Pavel Simerda
On Thu, 2 Oct 2008 12:46:52 +0100
Pedro Melo [EMAIL PROTECTED] wrote:

 
 On Oct 2, 2008, at 8:34 AM, Jonathan Schleifer wrote:
  Anyway, as we're currently on that OOB vs. IBB thing for E2E: I  
  think using OOB is bad. Direct connections are a leak of privacy
 
 (I'm assuming that your loss of privacy is the other party getting  
 your IP address)
 
 Not necessarily. You are assuming OOB using direct connections I  
 assume, and forgetting about mediated connections.
 
 Besides, the entire discussion about E2E assumes that parties will
 use certificates and some sort of trust-upgrade mechanism. I would
 say that the information inside the certificate is probably more
 privacy- important than my IP address, but other might disagree.

+1

If you don't want your IP to be known, you can still do that.

 I admit I find it hard to see how you can have a secure and
 *trusted* connection without loss of privacy. But I'm not an expert
 on security.

Secure connections just requires mutual authentication.

 
  and not very reliable.
 
 I don't understand why a direct or mediated TCP connection is less  
 reliable than a C2S + S2S * 2 + C2S set of connections. I think a  
 direct connection is the most reliable of them all because I've got  
 instant notification when something goes wrong: the connection gets  
 dropped.
 

I am very much for direct connections where possible if we're dealing
security and/or performance. Sensible decentralization is
already XMPP's advantage.

 I deal with lost stanzas everyday due to S2S fluctuations, and those  
 problems go away with direct connections. Even mediated connections  
 look better.

Good then.

 
  I think we should always use IBB for E2E, as long as it's only
  text. ICQ demonstrated back then HOW bad this is.
 
 I encourage exactly the opposite, specially in a corporate  
 environment. If I make sure the chat doesn't ever leave the local  
 network, I reduce the risk of snooping considerable.
 

Correct, ICQ didn't demonstrate anything of this sort. I encourage the
opposite in all environments except maybe very special ones. Corporate
environment should though have its own XMPP server.

 Just because its encrypted, safe is still a relative term to your  
 paranoia level.

Yep. Somewhere it was unencrypted and somewhere it will be decrypted
again. Hopefully only by the right recipient :).

Pavel

-- 

Pavel Šimerda
Freelancer v oblasti počítačových sítí, komunikace a bezpečnosti
Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] Namespaces, specifications, and protocol life cycles

2008-09-23 Thread Pavel Simerda
I'm deligted you finally took my idea.

Pavel

On Tue, 23 Sep 2008 12:24:40 -0600
Peter Saint-Andre [EMAIL PROTECTED] wrote:

 Kevin Smith wrote:
  On Tue, Sep 9, 2008 at 4:36 PM, Dave Cridland [EMAIL PROTECTED]
  wrote:
  urn:xmpp:protoname:1
  
  Sane.
 
 Kev and I just chatted about this via IM. So I take it that we'd start
 with urn:xmpp:protoname:0 and increment from there? I'm fine with
 that, and it does seem more sane than the :tmp: approach.
 
 I'm working on Jingle right now, so I wonder about things like this:
 
 urn:xmpp:tmp:jingle:apps:rtp
 
 Which of the following does that become?
 
 1. urn:xmpp:jingle:0:apps:rtp
 
 or:
 
 2. urn:xmpp:jingle:apps:rtp:0
 
 I think I prefer the number at the end in all cases.
 
 Shall we update all the Jingle namespaces along these lines? I'd be
 happy to do that during the current revision cycle. Speaking of which,
 back to work...
 
 /psa
 
 
 


-- 

Pavel Šimerda
Freelancer v oblasti počítačových sítí, komunikace a bezpečnosti
Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] Namespaces, specifications, and protocol life cycles

2008-09-10 Thread Pavel Simerda
I believe it both helps with the discipline (a little bit)
and helps to maintain graceful transitions in cases we fail.

Furthermore it simplifies (sometimes allows at all) maintaining
compatibility if used (very) carefully and with as little major
version transitions as possible.

Pavel

On Tue, 09 Sep 2008 19:51:26 -0600
Peter Saint-Andre [EMAIL PROTECTED] wrote:

 Pavel Simerda wrote:
 
  This would also affect the best practice in protocol changes and
  versioning. I personally believe this would provide more help than
  harm. For version 0, incompatible changes would by allright, for
  higher versions it would be sensible to add new features as
  optional (we still have discovery) and possibly, in the future,
  they would be marked REQUIRED all at once with a major protocol
  change.
  
  I believe the incompatible changes for higher versions would be
  rare.
 
 That's what we strive for. Certainly once something is Final, and 
 usually when something is Draft. But I don't see exactly how the 
 namespace versioning helps us here -- what we need is more discipline 
 about standardization, not fancy namespacing. If the latter helps us
 be more disciplined, that's great. If not, it's just confusing. IMHO.
 
 But I'm willing to be convinced otherwise. :)
 
 /psa
 
 


-- 

Pavel Šimerda
Freelancer v oblasti počítačových sítí, komunikace a bezpečnosti
Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] Namespaces, specifications, and protocol life cycles

2008-09-10 Thread Pavel Simerda
On Tue, 09 Sep 2008 19:54:19 -0600
Peter Saint-Andre [EMAIL PROTECTED] wrote:

 Dave Cridland wrote:
 
  the advantage here is that if the protocol is 
  stable earlier than its move to Draft - and actually, this is
  normally the case, a lot of the pre-draft stuff is specification
  wrangling rather than proptocol redesign - people can go ahead and
  implement it, and it'll continue to work.
  
  Otherwise, as we get closer to Draft, we're actually putting people
  off implementation at the very moment we want to encourage it.
 
 I think that's the key bit.
 
 But how much are developers scared off by the need to support both 
 urn:xmpp:tmp:foo and urn:xmpp:foo? It seems to me that's just a
 simple switch statement in your code.
 
 Also, it's not clear how we'd handle sub-namespaces:
 
 urn:xmpp:foo:4:sub

This one looks better and more logical to me.

Pavel

 
 or
 
 urn:xmpp:foo:sub:4
 
 ?
 
 Peter
 


-- 

Pavel Šimerda
Freelancer v oblasti počítačových sítí, komunikace a bezpečnosti
Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] Namespaces, specifications, and protocol life cycles

2008-09-10 Thread Pavel Simerda
On Wed, 10 Sep 2008 15:29:53 +0100
Dave Cridland [EMAIL PROTECTED] wrote:

 On Wed Sep 10 02:54:19 2008, Peter Saint-Andre wrote:
  Dave Cridland wrote:
  
  the advantage here is that if the protocol is stable earlier than  
  its move to Draft - and actually, this is normally the case, a
  lot of the pre-draft stuff is specification wrangling rather than  
  proptocol redesign - people can go ahead and implement it, and  
  it'll continue to work.
  
  Otherwise, as we get closer to Draft, we're actually putting  
  people off implementation at the very moment we want to encourage  
  it.
  
  I think that's the key bit.
  
  But how much are developers scared off by the need to support both  
  urn:xmpp:tmp:foo and urn:xmpp:foo? It seems to me that's just a  
  simple switch statement in your code.
 
 No, it's not, because urn:xmpp:tmp:* is actually meaningless. These  
 namespaces are used for documents in wild fluidity, and one  
 implementation's urn:xmpp:tmp:foo may well be completely different  
 from another's.
 
 A specification might stay stable for months, if not years, with a  
 :tmp: namespace, only to change later.
 
 And in any case, if urn:xmpp:tmp:foo really is just a swich
 statement away from urn:xmpp:foo, then why bother with tmp at all?
 
 FWIW, I definitely prefer to have :tmp: instead of a 0-version,  
 because it makes it clear that version changing is unusual, whereas   
 :tmp: really means unknown namespace.

After thinking it through, I agree with you. But then I think we should
push the 0-version (after :tmp:) when we expect wider implementation and
not :tmp:. This is much earlier than we do with non-:tmp: versions now.

Pavel

 
 Dave.


-- 

Pavel __imerda
Freelancer v oblasti pota__ov__ch s__t__, komunikace a bezpe__nosti
Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] website transition

2008-09-08 Thread Pavel Simerda
+1 for lighttpd, I always liked it.

Pavel

On Mon, 08 Sep 2008 11:55:50 -0600
Peter Saint-Andre [EMAIL PROTECTED] wrote:

 Matthew Wild and I just completed the transition of apollo (the 
 jabber.org/xmpp.org webserver) from Apache to lighttpd. Concurrently
 we also migrated jabber.org and xmpp.net from Drupal to MediaWiki. So
 far everything seems to be working great. If you find any website
 problems, please let us know!
 
 /psa


-- 

Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] website transition

2008-09-08 Thread Pavel Simerda
A regularly-run XSLT would help... MattJ is good in writing them ;).
Don't beat me, friend (to MattJ).

Pavel

On Mon, 08 Sep 2008 13:36:37 -0600
Peter Saint-Andre [EMAIL PROTECTED] wrote:

 Andreas Monitzer wrote:
  On Sep 08, 2008, at 19:55, Peter Saint-Andre wrote:
  
  If you find any website problems, please let us know!
  
  Yes, my feature request dating back to the website version even
  before the move to drupal still isn't implemented, even though I
  was repeatedly told that it's on the todo list since back then :(
  
  My request was to have an RSS or Atom feed of the public server
  list, so I can display that list in Adium in the registration
  dialog.
 
 I had totally forgotten about that feature request.
 
 We do have a plain XML file:
 
 http://www.jabber.org/servers.xml
 
 But perhaps that's not what you need.
 
  Of course, moving to a wiki makes the whole thing even worse, since 
  there's no easy solution to that problem now (since the completely 
  nonsemantic wiki code is the only data source).
  I could do some kind of html extraction, but that would break as
  soon as someone does an edit that changes the website slightly.
  
  All the data I need is there, I just can't access it...
 
 Correct. Right now I'm hand-editing servers.xml...
 
 /psa
 


-- 

Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] website transition

2008-09-08 Thread Pavel Simerda
Actually, if you really need it, you can transform the
XML file (and other ones) yourself, it can't be so hard.

Pavel

On Tue, 9 Sep 2008 01:07:21 +0200
Andreas Monitzer [EMAIL PROTECTED] wrote:

 On Sep 08, 2008, at 21:36, Peter Saint-Andre wrote:
 
  I had totally forgotten about that feature request.
 
 Yes, that's what I hear every time I remind somebody of the
 jabber.org- team :)
 
  We do have a plain XML file:
 
  http://www.jabber.org/servers.xml
 
  But perhaps that's not what you need.
 
 Well, I'd need the additional info available on the detail pages, too:
 e.g. http://www.jabber.org/web/Jabber.org
 
 esp. the description, location and lat/long.
 
  Right now I'm hand-editing servers.xml...
 
 Uh, you should know better than that...
 
 andy
 


-- 

Pavel Šimerda
Freelancer v oblasti počítačových sítí, komunikace a bezpečnosti
Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] xmpp-commits list

2008-09-06 Thread Pavel Simerda
Maybe it would easier for other people to participate.

Git is just one option. There are other decentralized systems, though
I understand that the concepts of decentralized SCM were not so well
known either.

Some of my friends even prefer other decentralized systems to Git...
for me it's just the first one I have learned. Their reasons include
simplicity and ease of use though I'm still happy with what Git offers.
But maybe it's just I didn't have time to thoroughly test the others
(notably Monotone and Darcs).

Maybe we can discuss off-list if there's more to say?

Pavel

On Fri, 05 Sep 2008 08:05:03 -0600
Peter Saint-Andre [EMAIL PROTECTED] wrote:

 Pavel Simerda wrote:
 
  Never knew why is Subversion the SCM of choice for
  a decentralized IM protocol project. They must have
  known centralization is a barrier to open collaboration.
 
 Maybe because only one person writes all the documentation? :P
 
 Plus, I don't think Git was widely known or used when we switched
 from CVS to SVN.
 
 /psa
 


-- 

Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] roster sequencing

2008-09-06 Thread Pavel Simerda
Maybe because XE-0237 is just an optimization, not a solution to
problems with stanza limits?

Pavel

On Fri, 5 Sep 2008 21:50:04 +0100
Pedro Melo [EMAIL PROTECTED] wrote:

 
 On Sep 4, 2008, at 6:52 PM, Peter Saint-Andre wrote:
 
  Pavel Simerda wrote:
  +1 for a generic method
 
  Yeah, that means I need to re-work XEP-0237. :(
 
 :(
 
 I wouldn't. We talked a lot to get 237 to the place where it is now.  
 In the process I *believe* we discussed using 0059.
 
 I find 0237 elegant and simple to implement on most servers.
 
 Before starting 0237 all over again, I was hoping to hear from
 server implementors about this.
 
 I understand the desire of having solutions that work likes tools,  
 that we can reuse on several places. But  just because it looks like  
 a nail, we shouldn't just get the hammer.
 
 For example, rosters have this property where a single age flag
 can be used to send the roster delta with little effort on the
 server (assuming a SQL-style backend). Do we sacrifice that just to
 use a standard tool?
 
 Its not clear to me.
 
 Best regards,


-- 

Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] roster sequencing

2008-09-06 Thread Pavel Simerda
Oh, good point.

It might be good to go with the optimizations only.

I'd just like to see a way to avoid what often happens...
that is waiting one or two minutes before the connection
is usable (that means I can both send and recieve).

Pavel

On Sat, 6 Sep 2008 01:08:42 +0100
Pedro Melo [EMAIL PROTECTED] wrote:

 Hi,
 
 sorry about the previous empty email. Premature sending.
 
 On Sep 4, 2008, at 7:19 PM, Fabio Forno wrote:
 
  On Thu, Sep 4, 2008 at 7:52 PM, Peter Saint-Andre  
  [EMAIL PROTECTED] wrote:
  Pavel Simerda wrote:
 
  +1 for a generic method
 
  Yeah, that means I need to re-work XEP-0237. :(
 
  Since Pavel has reminded XEP-59, what about transforming xep-237
  into an extension of it? XEP-59 allows to set the boundaries of a
  result set by setting a first of last item; by extending the
  possible conditions (one is the sequence number, are there others?)
  the changes should be trivial. Instead of asking all the items
  after last, request all the items after sequence-no
 
 recent-thansequence/recent-than ?
 
 
  This is also the answer to the other question about what happens to
  large roster when there are stanza size limitations: just return a
  partial set and then ask the remaining ones.
 
 I read an email message from peter (ejabberd list I think)
 mentioning that server-to-local-client flows where not restricted by
 stanza limits.
 
 I remember because:
 
   a) I didn't knew that;
   b) it makes sense after thinking about it;
   c) I'm not sure which implementations do this.
 
 
 
 
  -- 
  Fabio Forno, Ph.D.
  Bluendo srl http://www.bluendo.com
  jabber id: [EMAIL PROTECTED]
 


-- 

Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] xmpp-commits list

2008-09-05 Thread Pavel Simerda
Hey, you saved me the time needed to learn git-svn!

Never knew why is Subversion the SCM of choice for
a decentralized IM protocol project. They must have
known centralization is a barrier to open collaboration.

Pavel


On Fri, 5 Sep 2008 09:08:31 +0100
Pedro Melo [EMAIL PROTECTED] wrote:

 
 On Sep 4, 2008, at 6:24 PM, Peter Saint-Andre wrote:
 
  Tobias Markmann wrote:
  On Thu, Sep 4, 2008 at 6:55 PM, Peter Saint-Andre  
  [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] wrote:
  At the request of Jack Moffitt, I have set up an announce
  list for
  commits to the xmpp SVN repository, so that folks can track  
  more
  closely what changes in the XEPs, registries, schemas, and the
  xmpp.org http://xmpp.org website in general. You can  
  subscribe here:
  http://mail.jabber.org/mailman/listinfo/xmpp-commits
  The list is new so I may still have a few mailman config  
  issues to fix.
  /psa
  Is there an RSS or Atom feed too?
 
  Yes. There are links from
  http://www.xmpp.org/xsf/sourcecontrol.shtml
 
 And there is a mirrored Git repo of the SVN always update at
 
 http://github.com/xsf/documentation
 
 Updated hourly.
 
 Best regards,


-- 

Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] roster sequencing

2008-09-04 Thread Pavel Simerda
Yep, this should be included to...

Btw... just reminding XEP-0059: Result Set Management

Pavel

On Thu, 04 Sep 2008 09:13:22 -0600
Peter Saint-Andre [EMAIL PROTECTED] wrote:

 Pavel Simerda wrote:
  Just a sidenote to the roster sequencing...
  
  There are clients (e.g. Gajim) that ask for
  vCard right now to show user avatars.
  
  In future the usual flow might be that the client
  asks sequentially for various user information via
  some PubSub/PEP requests.
  
  IMO we should not forget this when designing protocols
  for optimization. We might want to unify roster-optimization
  with PEP/PubSub optimization.
 
 There is probably also optimization we can do with disco#items (think
 of large result sets for things like chatrooms at a MUC service).
 
 /psa
 
 


-- 

Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] roster sequencing

2008-09-04 Thread Pavel Simerda
I think it's not so time-critical.

On Thu, 04 Sep 2008 11:52:43 -0600
Peter Saint-Andre [EMAIL PROTECTED] wrote:

 Pavel Simerda wrote:
  +1 for a generic method
 
 Yeah, that means I need to re-work XEP-0237. :(
 
 /psa
 


-- 

Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] roster sequencing

2008-09-04 Thread Pavel Simerda
Yep, that would be a good idea. Thanks!

Btw... I suggest a clean-up of XEP-59 also for my user-search
proposal I sent to the pubsub list.

It's not even in INBOX yet but if you want to look:

http://data.pavlix.net/xmpp/user-search/user-search.html

Pavel


On Thu, 4 Sep 2008 20:19:36 +0200
Fabio Forno [EMAIL PROTECTED] wrote:

 On Thu, Sep 4, 2008 at 7:52 PM, Peter Saint-Andre
 [EMAIL PROTECTED] wrote:
  Pavel Simerda wrote:
 
  +1 for a generic method
 
  Yeah, that means I need to re-work XEP-0237. :(
 
 Since Pavel has reminded XEP-59, what about transforming xep-237 into
 an extension of it? XEP-59 allows to set the boundaries of a result
 set by setting a first of last item; by extending the possible
 conditions (one is the sequence number, are there others?) the changes
 should be trivial. Instead of asking all the items after last,
 request all the items after sequence-no
 
 This is also the answer to the other question about what happens to
 large roster when there are stanza size limitations: just return a
 partial set and then ask the remaining ones.
 


-- 

Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] Controlling Receipt of MUC participant presence

2008-08-31 Thread Pavel Simerda
+1 for this idea

On Sun, 31 Aug 2008 12:42:13 +0200
Jonathan Schleifer [EMAIL PROTECTED] wrote:

 Am 30.08.2008 um 23:52 schrieb Peter Saint-Andre:
 
  Heck, I wonder if certain features in MUC might be better defined
  in separate specifications (e.g., all the room history handling and
  the request a unique room name feature).
 
 That sounds like a good idea!
 
 --
 Jonathan
 


-- 

Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] Controlling Receipt of MUC participant presence

2008-08-30 Thread Pavel Simerda
Are you sure it's good enough for final?

Pavel

On Sat, 30 Aug 2008 15:52:13 -0600
Peter Saint-Andre [EMAIL PROTECTED] wrote:

 Dave Cridland wrote:
 
  ... and Keith suggestion works the other way around - the client
  *is* a participant, but makes everyone else invisible to it.
 
 There is also a room configuration option to not send presence for 
 various roles and affiliations.
 
  It'd be interesting to see if it's worth offering control of a
  range of traffic, or whether we should just implement Keith's
  suggestion more or less as-is.
  
  One thing aimed at Keith in particular, though - I'd much rather
  not add things to MUC at this point. We can certainly tidy existing
  practise, and we can of course always extend:
  
  x xmlns='http://jabber.org/protocol/muc'
   nopresence xmlns='urn:xmpp:tmp:nopresence'/
  /x
 
 +1 to not changing XEP-0045 -- I'd prefer to push it to Final soon,
 not tinker with it forever.
 
 Heck, I wonder if certain features in MUC might be better defined in 
 separate specifications (e.g., all the room history handling and the 
 request a unique room name feature).
 
 /psa
 


-- 

Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] refactoring of XEP-0154: User Profile

2008-08-28 Thread Pavel Simerda
Hi again,

I forgot to mention... I have an almost finished version
of User Searching by profile and events.

I wanted to do this first as it may affect the design of
User Profile.

I will post some preliminary version soon.

Btw, xmlstarlet leaves out the entities when transforming, any
suggestions on XSL for XEPs?

Pavel


On Wed, 27 Aug 2008 12:03:18 +0100
Pedro Melo [EMAIL PROTECTED] wrote:

 Hi,
 
 On Aug 27, 2008, at 1:04 AM, Pavel Simerda wrote:
 
  I prepared the long-promised examples of
  possible XEP-0154 protocol flows.
 
  http://www.pavlix.net/xmpp-profile.txt
 
 Some typos:
 
   * in Example 8, I think you mean feature
 var='urn:xmpp:tmp:profile:basic+notify'/ 
  , per secion 10.2 of XEP 0060;
   * there is a lost http://jabber.org/protocol/tune in Example 9 and
 10;
 
 I need to re-read section 3 with more time, I don't understand what
 is its purpose yet.
 
 But the rest seems fine.
 
 Best regards,


-- 

Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] refactoring of XEP-0154: User Profile

2008-08-28 Thread Pavel Simerda
Hello

Thanks for your comments and corrections.

Ad section 3: The purpose is to fulfill the requirements
brought up by Dave Cridland but useful to many others,
mainly corporate networks and big social networks.

PEP-publishing is insuitable for these use cases but mimicking
the fetching and notification keeps read access working.

All boils down to just specifying a name of an ad-hoc command to be
tried if PEP-publish is forbidden. The only catch is that it is a
slightly extended PEP ;).

Cheers,

Pavel


On Wed, 27 Aug 2008 12:03:18 +0100
Pedro Melo [EMAIL PROTECTED] wrote:

 Hi,
 
 On Aug 27, 2008, at 1:04 AM, Pavel Simerda wrote:
 
  I prepared the long-promised examples of
  possible XEP-0154 protocol flows.
 
  http://www.pavlix.net/xmpp-profile.txt
 
 Some typos:
 
   * in Example 8, I think you mean feature
 var='urn:xmpp:tmp:profile:basic+notify'/ 
  , per secion 10.2 of XEP 0060;
   * there is a lost http://jabber.org/protocol/tune in Example 9 and
 10;
 
 I need to re-read section 3 with more time, I don't understand what
 is its purpose yet.
 
 But the rest seems fine.
 
 Best regards,


-- 

Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] Controlling Receipt of MUC participant presence

2008-08-26 Thread Pavel Simerda
A disco feature on the MUC side would be good. So the client knows if
this will work or not.

Pavel

On Tue, 26 Aug 2008 08:11:15 -0400
Lirette, Keith J. CONTR J9C618 [EMAIL PROTECTED] wrote:

 I have a use case for a low bandwidth client which would benefit from
 the ability to control client receipt of MUC participant presence
 packets.  In the use case, the user is interested in the message
 traffic but does not need to know who is currently participating in
 the MUC session.
 
 A user would always receive it's own presence packet, but could
 control whether it received presence packets of other participants.
 An additional optional element to the
 http://www.xmpp.org/schemas/muc.xsd schema could be used to control
 whether this feature:
 
 presence
 from='[EMAIL PROTECTED]/pda'
 to='[EMAIL PROTECTED]/thirdwitch'
   x xmlns='http://jabber.org/protocol/muc'
 nopresence/
   /x
 /presence
 
 
 
 -Keith


-- 

Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] Proposed XMPP Extension: Direct MUC Invitations

2008-08-20 Thread Pavel Simerda
On Mon, 18 Aug 2008 02:52:50 +0100
Matthew Wild [EMAIL PROTECTED] wrote:

 On Mon, Aug 18, 2008 at 2:21 AM, Peter Saint-Andre
 [EMAIL PROTECTED] wrote:
  Pavel Simerda wrote:
 
  Ok, just... couldn't this be at least partially automated (not to
  have the sure check himself)? If it's not possible, never mind.
 
  Sure it could. I'm not sure if we really need that, given that
  members-only rooms are relatively uncommon, but we could presumably
  define a data form or ad-hoc command for the automated flow if we
  really need to.
 
 
 I'm leaning toward crossing that bridge when we come to it. My reason
 for bringing invite-only rooms was not to suggest they should be done,
 just that this protocol takes away the possibility to implement them
 (and it happens to be something I was thinking about a couple of weeks
 ago). We don't have invite-only rooms, but IRC doesn't have
 members-only rooms.
 
 I can't think of many cases an invite-only room would be called for,
 unless it is an admin doing the inviting, in which case it is easy to
 add invitees to the member list. That, or just use a password, as
 exampled in this XEP.

But this must apparently by written by the inviting user.

 Matthew.


-- 

Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] LAST CALL: XEP-0231 (Bits of Binary)

2008-08-17 Thread Pavel Simerda
Looks fine to me, looking forward for Zenek's comments!

Pavel

On Sat, 16 Aug 2008 20:52:20 -0600
Peter Saint-Andre [EMAIL PROTECTED] wrote:

 Pavel Simerda wrote:
  On Fri, 15 Aug 2008 20:15:35 -0600
  Peter Saint-Andre [EMAIL PROTECTED] wrote:
  
  Zenon Kuder jr. wrote:
  Dne Friday 15 of August 2008 23:45:44 Peter Saint-Andre napsal(a):
  Pavel Simerda wrote:
  If we need metadata to specify the origin, we can add an
  additional optional metadata element inside the data/.
  Sure, we could do that. So something like this?
 
  data cid='[EMAIL PROTECTED]'
 origin='http://bundles.jabbim.cz/'/
 
  Peter
  Seems nice. We should specify the hash algorithm in the cid
  somehow though. I don't know what the common practice for that
  would be.
  We might do something like this:
 
  1. [EMAIL PROTECTED]
  2. [EMAIL PROTECTED]
 
  I don't have a strong preference. I might have a slight preference
  for #1, because it's possible that we might even host image bundles
  at those domains via HTTP (so if your client supports SHA1 it can
  go to the URL http://sha1.bob.xmpp.org/ and retrieve the public
  images hosted there). Possibly. :)
  
  I prefer #2. We could possibly host on bob.xmpp.cz anyway.
 
 Sure/ If we ever host these images, bob.xmpp.org could round-robin to 
 other domains, or just redirect.
 
  And since we use hash now, we don't need to cache per JID. 
  Nifty.
  
  But we may if we don't want to check the hash or don't believe the
  hash functions (future consideration). Depends on the implementation
  and configuration.
 
 Correct.
 
 /psa
 


-- 

Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] Proposed XMPP Extension: Direct MUC Invitations

2008-08-17 Thread Pavel Simerda
Ok, just... couldn't this be at least partially automated (not to
have the sure check himself)? If it's not possible, never mind.

Pavel

On Sat, 16 Aug 2008 20:08:55 -0600
Peter Saint-Andre [EMAIL PROTECTED] wrote:

 Pavel Simerda wrote:
  On Fri, 15 Aug 2008 15:47:17 -0600
  Peter Saint-Andre [EMAIL PROTECTED] wrote:
  
  Pavel Simerda wrote:
  On Fri, 15 Aug 2008 08:55:28 -0600
  Peter Saint-Andre [EMAIL PROTECTED] wrote:
  Pavel Simerda wrote:
  But then what is an invitation for? You have to make someone a
  member and send him an invitation message. But for this, you
  have to be able to add members.
  I don't think the concept of an invitation-only room makes much
  sense, especially because we don't have ways of delivering secure
  invitations (right now invitations are more social interactions,
  not technical interactions, and I think we might want to leave it
  that way).
  But i thought I've seen some members-only rooms.
  Oh sure, one example is [EMAIL PROTECTED] :)
 
  /psa
  
  But that means we have some sort of room authorization :). And we
  should know what happens if you invite someone to a room that's
  members-only and he's not a member.
  
  Because just sending a direct invite is no good. Making him a member
  and sending a direct invite seems natural to me.
 
 I've added an implementation note about that.
 
 /psa
 


-- 

Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] LAST CALL: XEP-0231 (Bits of Binary)

2008-08-16 Thread Pavel Simerda
Then I just didn't follow the references, my bad.

Pavel

On Fri, 15 Aug 2008 15:45:44 -0600
Peter Saint-Andre [EMAIL PROTECTED] wrote:

 Pavel Simerda wrote:
 
  Btw, what I didn't know before... I have looked into the CID/MID rfc
  and there's nothing about requiring the at-sign. It's only written
  in the common practice sections but there they use. And they do use
  local hstnames, not shared strings.
  
  But then xmpp.sha1.da39aee5e6b4b0d3255bfef95601890afd807099 (or
  similar syntax) is just as conforming as any other syntax.
  
  The interesting point of the RFC is that the CIDs must be globally
  unique but it apparently leaves it for the implementors to be clever
  enough not to have the same idea.
  
  It depends if you want to break common practice.
 
 I don't think that's right. Looking at RFC 2111 we find:
 
 content-id= url-addr-spec
 
 and
 
 url-addr-spec = addr-spec  ; URL encoding of RFC 822 addr-spec
 
 Then consulting RFC 822 we find:
 
 addr-spec =  local-part @ domain
 
 However, I think we don't have to use a UUID for the local-part, we 
 could use a hash.
 
  The hostname is just useless for the XMPP purposes. But if we keep
  it for common practice, I'd suggest a constant one then (as it's
  useless anyway).
 
 I don't see a use for it now, but that doesn't mean it's useless. 
 However, I'm OK with hardcoding it to bob.xmpp.org or something.
 
  If we need metadata to specify the origin, we can add an
  additional optional metadata element inside the data/.
 
 Sure, we could do that. So something like this?
 
 data cid='[EMAIL PROTECTED]'
origin='http://bundles.jabbim.cz/'/
 
 Peter
 


-- 

Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] LAST CALL: XEP-0231 (Bits of Binary)

2008-08-16 Thread Pavel Simerda
On Fri, 15 Aug 2008 20:15:35 -0600
Peter Saint-Andre [EMAIL PROTECTED] wrote:

 Zenon Kuder jr. wrote:
  Dne Friday 15 of August 2008 23:45:44 Peter Saint-Andre napsal(a):
  Pavel Simerda wrote:
  Btw, what I didn't know before... I have looked into the CID/MID
  rfc and there's nothing about requiring the at-sign. It's only
  written in the common practice sections but there they use. And
  they do use local hstnames, not shared strings.
 
  But then xmpp.sha1.da39aee5e6b4b0d3255bfef95601890afd807099 (or
  similar syntax) is just as conforming as any other syntax.
 
  The interesting point of the RFC is that the CIDs must be globally
  unique but it apparently leaves it for the implementors to be
  clever enough not to have the same idea.
 
  It depends if you want to break common practice.
  I don't think that's right. Looking at RFC 2111 we find:
 
  content-id= url-addr-spec
 
  and
 
  url-addr-spec = addr-spec  ; URL encoding of RFC 822 addr-spec
 
  Then consulting RFC 822 we find:
 
  addr-spec =  local-part @ domain
 
  However, I think we don't have to use a UUID for the local-part, we
  could use a hash.
 
  The hostname is just useless for the XMPP purposes. But if we
  keep it for common practice, I'd suggest a constant one then (as
  it's useless anyway).
  I don't see a use for it now, but that doesn't mean it's useless.
  However, I'm OK with hardcoding it to bob.xmpp.org or something.
 
  If we need metadata to specify the origin, we can add an
  additional optional metadata element inside the data/.
  Sure, we could do that. So something like this?
 
  data cid='[EMAIL PROTECTED]'
 origin='http://bundles.jabbim.cz/'/
 
  Peter
  
  Seems nice. We should specify the hash algorithm in the cid somehow
  though. I don't know what the common practice for that would be.
 
 We might do something like this:
 
 1. [EMAIL PROTECTED]
 2. [EMAIL PROTECTED]
 
 I don't have a strong preference. I might have a slight preference
 for #1, because it's possible that we might even host image bundles
 at those domains via HTTP (so if your client supports SHA1 it can go
 to the URL http://sha1.bob.xmpp.org/ and retrieve the public images
 hosted there). Possibly. :)

I prefer #2. We could possibly host on bob.xmpp.cz anyway.

  And since we use hash now, we don't need to cache per JID. 
 
 Nifty.

But we may if we don't want to check the hash or don't believe the
hash functions (future consideration). Depends on the implementation
and configuration.

  Actually the idea 
  (I talked with Pavel by IM a bit) 
 
 That's allowed. Not everything needs to happen on the list. :)
 
  is that client
  a) either uses hash, checks the incoming data and caches per hash
  or b) doesn't know the hash or hash wasn't used or doesn't support
  hashes and then caches per JID and per the unique string.
  
  I hope I got it right and clear :-).
 
 Yes, that seems good. I'll update the spec.
 
 /psa
 


-- 

Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] LAST CALL: XEP-0231 (Bits of Binary)

2008-08-16 Thread Pavel Simerda
On Fri, 15 Aug 2008 20:35:52 -0600
Peter Saint-Andre [EMAIL PROTECTED] wrote:

 Peter Saint-Andre wrote:
  Zenon Kuder jr. wrote:
  Actually the idea (I talked with Pavel by IM a bit) is that client
  a) either uses hash, checks the incoming data and caches per hash
  or b) doesn't know the hash or hash wasn't used or doesn't support 
  hashes and then caches per JID and per the unique string.
 
  I hope I got it right and clear :-).
  
  Yes, that seems good.
 
 We might even want to harmonize BoB with User Avatar (XEP-0084).
 There we have:
 
 metadata xmlns='urn:xmpp:avatar:metadata'
info bytes='size-of-image-data-in-bytes'
  height='image-height-in-pixels'
  id='SHA-1-hash-of-image-data'
  type='content-type-of-image-data'
  url='HTTP-URL-for-image-data'
  width='image-width-in-pixels'/
 /metadata
 
 So hashes of user avatar images could be compared against BoB data,
 too (without changing XEP-0084, unless we want to add a 'cid'
 attribute there).

Not sure if this is useful.

But what we need to do is both specify the metadata format... and to
specify how we compute the hash.

I propose (as a possibility):

For sha-1: h = sha-1

Generally: hashed_value = h( h(content-type) + h(content) )
where + stands for concatenation.

If we include the metadata, it would be good to add it to the hash too
(just as we concatenated hashes of content-type and content) in some
way.

This would ensure we get the same type, data and metadata for a
particular hash :) which is nice ;).

Pavel

 /psa


-- 

Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] LAST CALL: XEP-0231 (Bits of Binary)

2008-08-16 Thread Pavel Simerda
On Sat, 16 Aug 2008 08:38:26 +0200
Johansson Olle E [EMAIL PROTECTED] wrote:

 
 15 aug 2008 kl. 23.45 skrev Peter Saint-Andre:
 
  Pavel Simerda wrote:
 
  Btw, what I didn't know before... I have looked into the CID/MID
  rfc and there's nothing about requiring the at-sign. It's only
  written in the common practice sections but there they use. And
  they do use local hstnames, not shared strings.
  But then xmpp.sha1.da39aee5e6b4b0d3255bfef95601890afd807099 (or
  similar syntax) is just as conforming as any other syntax.
  The interesting point of the RFC is that the CIDs must be globally
  unique but it apparently leaves it for the implementors to be
  clever enough not to have the same idea.
  It depends if you want to break common practice.
 
  I don't think that's right. Looking at RFC 2111 we find:
 
  content-id= url-addr-spec
 
  and
 
  url-addr-spec = addr-spec  ; URL encoding of RFC 822 addr-spec
 
  Then consulting RFC 822 we find:
 
  addr-spec =  local-part @ domain
 
  However, I think we don't have to use a UUID for the local-part,
  we could use a hash.
 
  The hostname is just useless for the XMPP purposes. But if we keep
  it for common practice, I'd suggest a constant one then (as it's
  useless anyway).
 
  I don't see a use for it now, but that doesn't mean it's useless.  
  However, I'm OK with hardcoding it to bob.xmpp.org or something.
 
 Using domain or host here is like the recommendation to use it as
 part of the call ID or realm in SIP. Using your own domain
 ensures a unique namespace for you. Using a hostname ensures a
 unique namespace for your host. In both these cases,
 it doesn't have any other meaning - it's never parsed or resolved.  
 It's just a way to ensure uniqueness in a simple way.

Exactly.

And this means the domain's owner is responsible for the uniqueness.

But how can example.com owners be responsible for uniqueness of
[EMAIL PROTECTED]'s own ids? If we specify a hashing approach, I
would not use local domains in the CIDs just because we (xmpp.org) are
who specified how to achieve the uniqueness.

Pavel

 /O

-- 

Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] Proposed XMPP Extension: Direct MUC Invitations

2008-08-16 Thread Pavel Simerda
On Fri, 15 Aug 2008 15:47:17 -0600
Peter Saint-Andre [EMAIL PROTECTED] wrote:

 Pavel Simerda wrote:
  On Fri, 15 Aug 2008 08:55:28 -0600
  Peter Saint-Andre [EMAIL PROTECTED] wrote:
  Pavel Simerda wrote:
  But then what is an invitation for? You have to make someone a
  member and send him an invitation message. But for this, you have
  to be able to add members.
  I don't think the concept of an invitation-only room makes much
  sense, especially because we don't have ways of delivering secure
  invitations (right now invitations are more social interactions,
  not technical interactions, and I think we might want to leave it
  that way).
  
  But i thought I've seen some members-only rooms.
 
 Oh sure, one example is [EMAIL PROTECTED] :)
 
 /psa

But that means we have some sort of room authorization :). And we
should know what happens if you invite someone to a room that's
members-only and he's not a member.

Because just sending a direct invite is no good. Making him a member
and sending a direct invite seems natural to me.

Pavel

-- 

Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] Proposed XMPP Extension: Direct MUC Invitations

2008-08-15 Thread Pavel Simerda
On Fri, 15 Aug 2008 08:55:28 -0600
Peter Saint-Andre [EMAIL PROTECTED] wrote:

 Pavel Simerda wrote:
  On Thu, 14 Aug 2008 11:27:22 -0600
  Peter Saint-Andre [EMAIL PROTECTED] wrote:
  
  Pavel Simerda wrote:
  On Wed, 13 Aug 2008 08:18:43 -0500
  XMPP Extensions Editor [EMAIL PROTECTED] wrote:
 
  http://www.xmpp.org/extensions/inbox/direct-invitations.html
  Hmm, good idea, this simple direct invitation protocol, it makes
  sense to send invitation to the people I invite.
  Well that's what we had in the old days (jabber:x:conference),
  but then we made something fancier in XEP-0045. Fancier isn't
  always better.
 
  Just a sidenote, couldn't venue be replaced with something more
  specific and well known in the XMPP community (e.g. conference).
  It might also come first in the example, as it's the only
  important (and REQUIRED) element.
  Sure, conference is fine with me.
 
  Also, more about authorization and relation to other XEPs would be
  nice. Passwords are IMO not a good *default* authorization
  technique for MUC rooms.
  I agree. But that's something we should define in XEP-0045 -- or
  even deprecate password-only rooms in favor of members-only rooms.
 
  It seems MUC authorization was removed from [xep 0235]. Isn't now
  the time to find a better place for it?
  Maybe. I'm not sure how useful MUC authorization is.
  
  A members-only room is an authorized MUC room - the list of members
  becomes the list of authorized entities.
  
  But then what is an invitation for? You have to make someone a
  member and send him an invitation message. But for this, you have
  to be able to add members.
 
 I don't think the concept of an invitation-only room makes much
 sense, especially because we don't have ways of delivering secure
 invitations (right now invitations are more social interactions, not
 technical interactions, and I think we might want to leave it that
 way).

But i thought I've seen some members-only rooms.

 Peter
 


-- 

Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] LAST CALL: XEP-0231 (Bits of Binary)

2008-08-15 Thread Pavel Simerda
On Fri, 15 Aug 2008 12:57:12 -0600
Peter Saint-Andre [EMAIL PROTECTED] wrote:

 Pavel Simerda wrote:
  On Thu, 14 Aug 2008 10:38:42 -0600
  Peter Saint-Andre [EMAIL PROTECTED] wrote:
  
  Pavel Simerda wrote:
 
 snip/
 
  Since developers of Jabbim would like to use BoB for emoticons
  exchange (possibly in a way similar to the one used by Pidgin
  developers, might be neat to spec it out sometime), I'd like to
  ask whether it would be possible to reconsider using hashes
  instead the UUID for identification.
  We use hashes in XEP-0084 (User Avatar):
 
  http://www.xmpp.org/extensions/xep-0084.html
 
  So it might make sense to use them here as well.
  
  Yep, they would be good to incorporate in ConentID. Btw, the hash
  would be enough itself (without CID) but we want to use CID URIs.
 
 I agree that hashes would be enough (as in XEP-0084), but here we
 want to use CIDs for cross-referencing.

Btw, what I didn't know before... I have looked into the CID/MID rfc
and there's nothing about requiring the at-sign. It's only written in
the common practice sections but there they use. And they do use local 
hstnames, not shared strings.

But then xmpp.sha1.da39aee5e6b4b0d3255bfef95601890afd807099 (or
similar syntax) is just as conforming as any other syntax.

The interesting point of the RFC is that the CIDs must be globally
unique but it apparently leaves it for the implementors to be clever
enough not to have the same idea.

It depends if you want to break common practice.

 I see a bit of information about that
  in RFC4122 but not a lot of details.

It's all there, the notion of names or content is apparently left for
the particular protocols/formats to define.

  They are only hash-based and they are (hopefully) unique to a
  particular sequence of bytes. They don't serve the same purpose as
  e.g. sha1 mostly because the full sha1 hash doesn't fit in UUID.
 
 I'll have to see where those are specified.
 
 snip/

http://tools.ietf.org/html/rfc4122

4.3.  Algorithm for Creating a Name-Based UUID

The concept of name and name space should be broadly construed, and not
limited to textual names.

That means it can even be a whole file or a combination of fields (e.g.
the content type and the content).

But the hashes are a better way if we want to actually check them.

  2) Add one additional form of CID: 
  hash-value@hash-function.xep0231.xmpp.org.
  (the concrete syntax serves as an example, not final syntax)
  The hash functions would be sha1, sha256 and possibly other
  ones too and the computed hash value would be based on both
  *content type* and *content data* (needs more precise spec.).
  This would also be an exception from forced per JID caching.
  Or if people define emoticon bundles then the images could be
  identified by the domain of the entity that hosts the bundle,
  perhaps an open-source project or whatever.
 
  /psa
  
  This would break the hash function use case. We want same data
  (including type) to have same ContentID uri for global sharing
  (most probably with a constant domain part).
 
 I don't see any big difference between:
 
 cid:hash@sha1.xep0231.xmpp.org
 
 and:
 
 cid:hash@sha1.open-emoticons.tld
 
 or:
 
 cid:hash@sha1.jabbim.cz
 
 or whatever.
 
 Why do we need centralization of the address space?
 
 /psa
 

The hostname is just useless for the XMPP purposes. But if we keep it
for common practice, I'd suggest a constant one then (as it's useless
anyway).

If we need metadata to specify the origin, we can add an
additional optional metadata element inside the data/.

Pavel

-- 

Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] LAST CALL: XEP-0231 (Bits of Binary)

2008-08-14 Thread Pavel Simerda
On Thu, 14 Aug 2008 13:26:00 +0200
Zenon Kuder jr. [EMAIL PROTECTED] wrote:

 Hello,
 I have a few questions regarding BoB which came up in our Jabbim
 client development room. I have read throught the mails regarding it
 in this list (more or less thoroughtfully, so please excuse me if I
 missed something), but haven't followed the chat sessions Pavel and
 Peter had.
 
 I'm sorry that the email didn't stay as brief as I planned ;-)
 
 I quote this mail here:
 http://mail.jabber.org/pipermail/standards/2008-July/019390.html
 30 of July 2008 03:49:01 Peter Saint-Andre wrote:
 Pavel Simerda wrote:
  I further propose we add some informational section about
  generation of CIDs. Although it's specified elsewhere, I believe
  this XEP will be very useful and will be referenced from many
  future XEPs (and maybe improved as well - possibly some server
  caching etc). I think the informational section could suggest
  UUIDs generated by hashing the actual content.
 
 Yes I think that would be helpful.
 
 Since developers of Jabbim would like to use BoB for emoticons
 exchange (possibly in a way similar to the one used by Pidgin
 developers, might be neat to spec it out sometime), I'd like to ask
 whether it would be possible to reconsider using hashes instead the
 UUID for identification.

You can use hash-based UUIDs.

 The use case is as follows:
 - There are/will be some databases full of emoticons, which people
 can download and use
 - When user sends an xhtml-im message containg img referencing a
 particular cId and the receiving entity doesn't have the image, it
 asks for it.
 - Advantage of using hash in this case would be that the same image
 would have the same identification, always and ever. Using unique
 random identifiers instead of hashes would complicate distribution of
 the same image through different channels and/or through chain of
 different users.

You may use non-random UUIDs if this is the concern.

 - I'm not a crypto-geek, so I don't know about the poisoning
 possibility, but I believe that when we need to hash something like
 caps to increase security, we should hash binary data too ;-).
 
 Also, we have concerns about the domain part being sender's domain.
 Is it necessary only to satisfy some specifiactions needs (rfc2111?)
 or does it have some functionality? At first glance I thought the
 domain would be checked against stanza's from, but that would
 disallow sending emoticons into MUC rooms.
 
 One of the developers (Lolek) who, as I understood, showed interest
 in ressurecting emoticons XEP also thought that making someone's
 domain distributing across network (by resending the image to
 different users) doesn't seem right (although domain isn's anything
 secret after all).

This could be solved by renaming the image when reusing it in the
reciever's client.

 If the domain part is to be replaced in every hop I think this should
 be made more clear in the spec. (in case the domain part isn't
 removed completely from the spec)

Yep, it should be. I'm afraid we can't just leave it out (CIDs are
defined by a RFC, not this XEP).

 
  cache=unlimited
   - we suggest the client picks the longest time it allows (it could
 possibly cache some small pieces of data permanenty)
 
 Perhaps a commonly-used emoticon?
 
 Regarding caching, I agree with both of you that caching should be
 allowed for unlimited time (for emoticons in particular) and it seems
 this isn't in the current spec. Although rfc2965 defines Max-Age to
 be non-negative integer, I guess -1 for unlimited might be useful.

Possibly. Or maxint which is compatible with the current spec.

 Secondly, caching per-JID seems to be breaking the principle of the
 emoticon distribution use case and I think that forementioned
 per-hash caching would remove the need to do that. (as long as
 applications check the hash)

Yes, it's breaking this use case in favor of simplicity.

We were not sure whether the global-sharing feature is wanted by the
developer community and it can be added in a backwards-compatible
matter.

What I suggest to satisfy the Jabbim developers (and possibly others
with similar needs) the following two modifications:

1) Only force UUID if we use the domain part of the JID and forbid
re-using these names.

2) Add one additional form of CID: 
hash-value@hash-function.xep0231.xmpp.org.
(the concrete syntax serves as an example, not final syntax)
The hash functions would be sha1, sha256 and possibly other ones
too and the computed hash value would be based on both *content type*
and *content data* (needs more precise spec.). This would also be an
exception from forced per JID caching.

 Thanks for your time and sorry if I ask for something answered before.
 Zenon Kuder jr.

You're most welcome!

Pavel


-- 

Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] LAST CALL: XEP-0231 (Bits of Binary)

2008-08-14 Thread Pavel Simerda
On Thu, 14 Aug 2008 15:40:14 +0200
Zenon Kuder jr. [EMAIL PROTECTED] wrote:

 Hi again, I came up with some more comments :-)
 
 From introductory text of section 2.1:
 [...] If the data is not cached, the recipient would then retrieve
 the data by sending an IQ-get to the sender (or potentially some
 other entity) [...]
 
 I think the potential other entity might be an interesting use case
 as well. As stated in my previous mail, I think about the emoticons
 use case. This time for example in a MUC room:
 -participant A sends an xhtml-im message to muc room containg the
 img element to reference an emoticon
 - participant B, C, D, E and F receive the message and since they
 don't have the referenced image, they want to retrieve it.
 - there exists a protocol to reference external resources, which
 these entities use to download the referenced data

Maybe some example flows would help. Is this a comment to the current
specs with some changes needed or just another use case?

 Advantages:
 - the sender isn't bloated by multiple requests for the file
Who's contacted then?
 - receiver doesn't leak its jabber id to arbitrary room occupant
This is usually possible to achieve in MUC communications.
 - receiver can have enabled downloads only from trusted jabber ID
This is always possible, isn't it?
 (its servers emoticon service etc)
 
 Disadvantages:
 - I actually can't see what's better in this approach than in sending
 ordinary HTTP URL, but I thought it was worth discussing. Maybe
 advantage for clients with only one TCP connection possible (bombus)?

HTTP reveals IP address. And the second TCP connection and protocol
implementation servers as another example.

 Best regards,
 Zenon Kuder jr.


-- 

Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] comments on section 8.3, draft-saintandre-rfc3920bis-06.html

2008-08-14 Thread Pavel Simerda
On Wed, 13 Aug 2008 15:03:21 -0600
Peter Saint-Andre [EMAIL PROTECTED] wrote:

 Pavel Simerda wrote:
  On Tue, 12 Aug 2008 00:31:00 -0700
  Justin Karneges [EMAIL PROTECTED] wrote:
  
  On Monday 11 August 2008 14:04:22 Pavel Simerda wrote:
  On Mon, 11 Aug 2008 13:45:08 -0600
 
  Peter Saint-Andre [EMAIL PROTECTED] wrote:
  Server DOM grovelling to look for the right extension? That
  doesn't sound very appealing to server developers.
  What about:
 
  A: presence type='meeting-request'/
  I'm pretty sure any server developer who doesn't want to process
  the XML inside a presence stanza would also be against adding new
  presence types.
 
  I think if any extending goes on, it would have to be through child
  elements of the stanza.
  
  I believe if the type is really different from the usual
  availability (which the temporary availability is), we should not
  stick with the current set of presence types only because it has
  been like that for a long time.
  
  The flow of your protocol is good, though.
 
  
  Thanks.
  
  Current implementations would send it to the client (if not
  instructed to block everything) or no?
  It's hard to say what current servers would do.  Presence stanzas
  are treated specially in servers, much more than message/iq which
  are usually just relayed as-is.  It wouldn't surprise me if sending
  new/invalid presence types would cause the receiving server to drop
  the stanza.
  
  Still better than confusion with subscribe.
  
  We need two new XEPs: Temporary Presence Exchange (for
  exchanging caps/resource information with unknown/invisible
  entities),
  What more does that involve on top of directed presence
  containing caps?
 
  and Presence-based Privacy (which is TPE-aware).
  I feel a lot of hoops here. How about a way to send a presence
  subscription request but indicate that it's intended to be only
  temporary?
 
  presence type='subscribe'
 temporary/
  /presence
 
  That'll get through without all sorts of server upgrades etc.
  That will, without a server upgrade be regarded as a subscription
  request by the server, which is not a good backwards-compatible
  scheme either.
  Or maybe it is a fine backwards-compatible scheme?  Clients/servers
  unaware of temporary subscriptions would at least be able to set
  up a normal subscription.
  
  Which is IMO bad and confusing when you only want temporary presence
  session. This might even lead to the situation that people are angry
  because you want subscription and you aren't supposted to.
  
  What more, clients can do nothing to prevent it.
  
  If you want to extend something, it would be better if it's not
  subscriptions. We have enough problems with subscriptions without
  that.
  
  (They sometimes don't work as expected and servers sometimes store
  different subscription states for the same user relation.)
 
 Look, we're trying to work around presence blocking. Some servers
 will only let presence type='subscribe'/ through because of privacy
 lists (or what looks like a privacy list anyway, a la Google Talk),
 and a new value for the 'type' attribute won't help here. So either
 we use subscribe or it won't work anytime soon. Choose one. :)

I don't like workarounds in the core specifications nor in the
extensions. I personally would prefer waiting for fixed implementations
over ugly workarounds.

 Personally I don't mind having a big roster, and I don't mind having 
 people send me presence subscription requests, long-term or
 short-tterm, whatever. In fact I'd love to have a flag for
 short-tterm subscriptions when a presence subscription request comes
 in -- I'd be more likely to approve it, and maybe the short-term
 subscription turns into a long-lived subscription. I'm not sure how
 you present these options to the users (both the subscriber and the
 subscribee), but I think client developers can work on those issues
 and we can share those insights.
 
 Peter


-- 

Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] XEP-0045: requesting a unique room name

2008-08-14 Thread Pavel Simerda
On Thu, 14 Aug 2008 09:09:28 +0200
Yann Leboulanger [EMAIL PROTECTED] wrote:

 Peter Saint-Andre wrote:
  Yann Leboulanger wrote:
  Peter Saint-Andre wrote:
  Has any MUC implementation coded in support for the unique room
  name request feature described in Section 10.1.4 of XEP-0045? I
  think this feature is unnecessary and (in the interest of
  simplification) I would like to remove it from XEP-0045.
 
  In our client (Gajim), we use it for chat to muc convertion too.
  If it's not supported by MUC component, we do nickname + random 
  number, but it's convenient to be sure we won't have a confict.
  
  But then you have a dependency on the server side, right? Why not
  just generate a UUID on the client side?
  
 
 Because we don't know all the rooms that are opened, and we can't be 
 sure our room name will be unique.
 

You can't be sure the server won't burn when generating the UUID
either... and it would cause more harm. It's very improbable just as
collisions in good UUIDs.

-- 

Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] XEP-0045: requesting a unique room name

2008-08-14 Thread Pavel Simerda
Nothing is guaranteed, in practice.

On Thu, 14 Aug 2008 15:20:26 +0200
Remko Tronçon [EMAIL PROTECTED] wrote:

  Um, the whole point of a UUID is that it's universally unique, no?
 
 No, the point of a UUID is that everybody can generate an ID that has
 a (very) high probability of being unique; it's not, however,
 guaranteed to be unique.
 
 cheers,
 Remko


-- 

Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] XEP-0045: requesting a unique room name

2008-08-14 Thread Pavel Simerda
This seems to be a good reason to keep things as they work :).

Pavel

On Thu, 14 Aug 2008 15:21:22 +0200
Jonathan Schleifer [EMAIL PROTECTED] wrote:

 Am 14.08.2008 um 15:12 schrieb Kevin Smith:
 
  Well, in this case what I imagined was a server that's happy to host
  short-lived one-to-one-to-many-to-many chats at randomly selected
  room names, but doesn't want to be hosting public chat rooms such as
  [EMAIL PROTECTED], but it's probably unimportant.
 
 
 This is exactly what I also had in mind and is very desirable IMO.  
 Anyway, why change it? It doesn't make it too much more complicated  
 for the server and there are already clients using that. So why
 remove something that is already in use?
 
 --
 Jonathan
 


-- 

Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] LAST CALL: XEP-0231 (Bits of Binary)

2008-08-14 Thread Pavel Simerda
On Thu, 14 Aug 2008 11:18:23 -0600
Peter Saint-Andre [EMAIL PROTECTED] wrote:

 Zenon Kuder jr. wrote:
  Dne Thursday 14 of August 2008 17:00:37 Pavel Simerda napsal(a):
  On Thu, 14 Aug 2008 15:40:14 +0200
 
  Zenon Kuder jr. [EMAIL PROTECTED] wrote:
  Hi again, I came up with some more comments :-)
 
  From introductory text of section 2.1:
  [...] If the data is not cached, the recipient would then
  retrieve the data by sending an IQ-get to the sender (or
  potentially some other entity) [...]
 
  I think the potential other entity might be an interesting use
  case as well. As stated in my previous mail, I think about the
  emoticons use case. This time for example in a MUC room:
  -participant A sends an xhtml-im message to muc room containg the
  img element to reference an emoticon
  - participant B, C, D, E and F receive the message and since they
  don't have the referenced image, they want to retrieve it.
  - there exists a protocol to reference external resources, which
  these entities use to download the referenced data
  Maybe some example flows would help. Is this a comment to the
  current specs with some changes needed or just another use case?
  
  It's just an use case which came into my mind, which the current
  spec doesn't cover, but does mention it might be covered in the
  future. That's why I wanted to make sure it will be possible to add
  in the future. Sorry for the confusion.
 
 Right, I didn't want to disallow that kind of usage in the future.
 
  Advantages:
  - the sender isn't bloated by multiple requests for the file
  Who's contacted then?
  
  The potential other entity, possibly trusted service which user
  is not afraid to leak jabberID to.
 
 Right.
 
  - receiver doesn't leak its jabber id to arbitrary room occupant
  This is usually possible to achieve in MUC communications.
  
  Indeed. But if participant B wanted to request data from
  participant A, he would have to send an IQ, which would reveal his
  Jabber ID to user A.
  

I don't remember how IQ queries and MUC work together (will have to
learn more about MUC).

  - receiver can have enabled downloads only from trusted jabber ID
  This is always possible, isn't it?
  
  Yop, but to make it effective you need a way for
  [EMAIL PROTECTED] to reference an image at differenet JID (e.g.
  emoticonService.barserver.org).
 
 I don't think this is disallowed by the spec.
 

But the syntax is not defined.

  (its servers emoticon service etc)
 
  Disadvantages:
  - I actually can't see what's better in this approach than in
  sending ordinary HTTP URL, but I thought it was worth discussing.
  Maybe advantage for clients with only one TCP connection possible
  (bombus)?
  HTTP reveals IP address. And the second TCP connection and protocol
  implementation servers as another example.
  Yes, that's my concern. But since the idea is mainly about enabling 
  auto-download only from trusted emoticon services I neglected this
  issue.
 
 OK.
 
 Peter
 


-- 

Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] Proposed XMPP Extension: Direct MUC Invitations

2008-08-14 Thread Pavel Simerda
On Thu, 14 Aug 2008 11:27:22 -0600
Peter Saint-Andre [EMAIL PROTECTED] wrote:

 Pavel Simerda wrote:
  On Wed, 13 Aug 2008 08:18:43 -0500
  XMPP Extensions Editor [EMAIL PROTECTED] wrote:
  
  http://www.xmpp.org/extensions/inbox/direct-invitations.html
  
  Hmm, good idea, this simple direct invitation protocol, it makes
  sense to send invitation to the people I invite.
 
 Well that's what we had in the old days (jabber:x:conference), but 
 then we made something fancier in XEP-0045. Fancier isn't always
 better.
 
  Just a sidenote, couldn't venue be replaced with something more
  specific and well known in the XMPP community (e.g. conference).
  It might also come first in the example, as it's the only important
  (and REQUIRED) element.
 
 Sure, conference is fine with me.
 
  Also, more about authorization and relation to other XEPs would be
  nice. Passwords are IMO not a good *default* authorization technique
  for MUC rooms.
 
 I agree. But that's something we should define in XEP-0045 -- or even 
 deprecate password-only rooms in favor of members-only rooms.
 
  It seems MUC authorization was removed from [xep 0235]. Isn't now
  the time to find a better place for it?
 
 Maybe. I'm not sure how useful MUC authorization is.

A members-only room is an authorized MUC room - the list of members
becomes the list of authorized entities.

But then what is an invitation for? You have to make someone a member
and send him an invitation message. But for this, you have to be able
to add members.

This needs a deep poke into the MUC and I didn't post yet other stuff I
promised.

 
 /psa


-- 

Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] Proposed XMPP Extension: Direct MUC Invitations

2008-08-13 Thread Pavel Simerda
On Wed, 13 Aug 2008 08:18:43 -0500
XMPP Extensions Editor [EMAIL PROTECTED] wrote:

 http://www.xmpp.org/extensions/inbox/direct-invitations.html

Hmm, good idea, this simple direct invitation protocol, it makes sense
to send invitation to the people I invite.

Just a sidenote, couldn't venue be replaced with something more
specific and well known in the XMPP community (e.g. conference). It
might also come first in the example, as it's the only important (and
REQUIRED) element.

Also, more about authorization and relation to other XEPs would be
nice. Passwords are IMO not a good *default* authorization technique
for MUC rooms.

It seems MUC authorization was removed from [xep 0235]. Isn't now
the time to find a better place for it?

Pavel


-- 

Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] XEP-0045: requesting a unique room name

2008-08-13 Thread Pavel Simerda
Hello,

maybe you could use a hash function (or unique identifier) that has
lower probability of random conflicts than the probability of random RAM
errors :).

Just joking, with computers, you can be never sure, so almost sure is
usually good enough if it's just a matter of trying it again.

(Btw, in my father's work, SAP got down because it sent the time 24:00
to the database :D, it happens rarely but happens.)

I believe http://tools.ietf.org/html/rfc4122 is one of the possible ways
to go :).

Pavel

On Wed, 13 Aug 2008 16:30:38 +0200
Remko Tronçon [EMAIL PROTECTED] wrote:

  How hard is it to generate a UUID or SHA hash? I suppose not all
  clients have access to such utilities...
 
 It's not generating the hash that was bothering me at the time, it was
 more that the hash is not unique in theory, and that you would still
 need to have conflict checking code in case it wasn't. But I guess the
 likelihood of that happening is immensely close to zero, and if you
 have a timestamp in there, it would be even closer to zero happening
 twice in a row (i.e. the Why didn't this work? I must have done
 something wrong, let me try again). So I suppose I should learn to
 live with imperfection ;-)
 
 cheers,
 Remko


-- 

Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] comments on section 8.3, draft-saintandre-rfc3920bis-06.html

2008-08-12 Thread Pavel Simerda
On Tue, 12 Aug 2008 00:31:00 -0700
Justin Karneges [EMAIL PROTECTED] wrote:

 On Monday 11 August 2008 14:04:22 Pavel Simerda wrote:
  On Mon, 11 Aug 2008 13:45:08 -0600
 
  Peter Saint-Andre [EMAIL PROTECTED] wrote:
   Server DOM grovelling to look for the right extension? That
   doesn't sound very appealing to server developers.
 
  What about:
 
  A: presence type='meeting-request'/
 
 I'm pretty sure any server developer who doesn't want to process the
 XML inside a presence stanza would also be against adding new
 presence types.
 
 I think if any extending goes on, it would have to be through child
 elements of the stanza.

I believe if the type is really different from the usual availability
(which the temporary availability is), we should not stick with the
current set of presence types only because it has been like that for a
long time.

 The flow of your protocol is good, though.
 

Thanks.

  Current implementations would send it to the client (if not
  instructed to block everything) or no?
 
 It's hard to say what current servers would do.  Presence stanzas are
 treated specially in servers, much more than message/iq which are
 usually just relayed as-is.  It wouldn't surprise me if sending
 new/invalid presence types would cause the receiving server to drop
 the stanza.

Still better than confusion with subscribe.

We need two new XEPs: Temporary Presence Exchange (for
exchanging caps/resource information with unknown/invisible
entities),
  
   What more does that involve on top of directed presence containing
   caps?
  
and Presence-based Privacy (which is TPE-aware).
  
   I feel a lot of hoops here. How about a way to send a presence
   subscription request but indicate that it's intended to be only
   temporary?
  
   presence type='subscribe'
  temporary/
   /presence
  
   That'll get through without all sorts of server upgrades etc.
 
  That will, without a server upgrade be regarded as a subscription
  request by the server, which is not a good backwards-compatible
  scheme either.
 
 Or maybe it is a fine backwards-compatible scheme?  Clients/servers
 unaware of temporary subscriptions would at least be able to set up a
 normal subscription.

Which is IMO bad and confusing when you only want temporary presence
session. This might even lead to the situation that people are angry
because you want subscription and you aren't supposted to.

What more, clients can do nothing to prevent it.

If you want to extend something, it would be better if it's not
subscriptions. We have enough problems with subscriptions without that.

(They sometimes don't work as expected and servers sometimes store
different subscription states for the same user relation.)

Pavel

 -Justin


-- 

Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] comments on section 8.3, draft-saintandre-rfc3920bis-06.html

2008-08-11 Thread Pavel Simerda
On Mon, 11 Aug 2008 13:45:08 -0600
Peter Saint-Andre [EMAIL PROTECTED] wrote:

 Justin Karneges wrote:
  On Tuesday 05 August 2008 08:54:22 Pavel Simerda wrote:
  On Mon, 04 Aug 2008 16:59:50 -0600
 
  Peter Saint-Andre [EMAIL PROTECTED] wrote:
  Right. Or XEP-0191. Effectively Google Talk (and other similar
  services) deploy a rule of forbid communications with people not
  on my roster on the user's behalf -- no need for fancy privacy
  rules managed by the user.
  But this also disallows chatting with people outside your roster,
  which is something I often do.
 
  I'm for any way that doesn't leak presence but allows chat
  sessions (or single messages)... without giving any presence info.
  It's nice to be able to decide about the non-roster people
  blocking separately.
 
  Some people would also like to use the invisible facility, that
  would also be orthogonal to the roster subscriptions. (I never used
  invisible personally.)
 
  Sorry if I'm just repeating the obvious.
  
  I've suggested using directed presence (which need not contain the
  same information as broadcasted presence, if any) for this.
  
  A related discussion is that we wanted a way to trade caps and
  resource information between unsubscribed/invisible contacts.
  Robert suggested sending directed presence with caps and a special
  field to indicate you want to trade capabilities and reveal each
  others' resource name.  E.g.:
  
presence from='contactA/Resource' to='contactB'
  tradewithme/
  c ... // caps
/presence
  
  I believe most clients drop unsolicited presence on the floor.
  What we'd need is for clients to notice the tradewithme element
  on these stanzas as a request to trade presence temporarily with
  the sender, but not necessarily form a subscription.  So your
  client might say, User 'contactA' wishes to engage in
  communication with you.  Is this okay? [Yes/No]  If the user
  selects 'Yes', then your client would reply with the same kind of
  presence packet.  Now, each party may determine disco information
  of the other, and they can chat, do file transfers, jingle, etc.
 
 Right.

Seems good.

  Servers could then have a scheme where they block/bounce all
  communication except from contacts that have your presence.
  Presence is the key word here, not subscriptions, since if you
  login invisible you'd still want the bouncing effect on subscribed
  contacts that you've not revealed yourself to.  I think presence is
  the most natural privacy control mechanism.
 
 More natural than presence subscriptions or the roster?
 

I think so.

  There's just one problem, and this was brought up at the summit: if
  both parties forbid communication with people not in the roster
  (or, more appropriately, forbid communication with people who don't
  have their presence), then it would not be possible to trade
  directed presence.  Oops!
 
 If this were implemented using privacy lists, your client could 
 automatically update the default don't talk with strangers privacy 
 list when you do presence sharing. But we'd still need a way to 
 bootstrap. Hmm.

Yep, you might use an external component for these 'rendez-vous'
situations in cases where the privacy is too strict to allow one-to-one
meeting bootstrap.

  IMO, for this to work we need to define some server exceptions.
  For example, GTalk will let presence type='subscribe' packets
  through.  We'd want to take this a step further and let through any
  presence packet containing a tradewithme element.
 
 Server DOM grovelling to look for the right extension? That doesn't 
 sound very appealing to server developers.

What about:

A: presence type='meeting-request'/

(A is waiting for B to join him, B may
respond quickly, after a long time or never)

B: presence type='meeting'
show.../show
status.../status
   /presence
   presence type='meeting-request'/

(B now looks meeting/some_status to A)

A: presence type='meeting'
show.../show
status.../status
   /presence

(A and B look now meeting/some_status to each other)

A: message/
B: message/
A: iq/
...
...

(they did what they wanted)

A: presence type='unavailable'/
B: presence type='unavailable'/

(meeting is over)

Current implementations would send it to the client (if not instructed
to block everything) or no?

Future conforming implementations may choose to only allow only
presence type=meeting-request/
or both
presence type=meeting-request/
presence type=subscribe/

Is it a problem to provide a new presence type in a XEP and
eventually sometime added to the RFC?

  We need two new XEPs: Temporary Presence Exchange (for exchanging 
  caps/resource information with unknown/invisible entities), 
 
 What more does that involve on top of directed presence containing
 caps?
 
  and Presence-based Privacy (which is TPE-aware).
 
 I feel a lot of hoops here. How about a way to send a presence 
 subscription request but indicate that it's intended

Re: [Standards] UPDATED: XEP-0231 (Bits of Binary)

2008-08-08 Thread Pavel Simerda
On Thu, 07 Aug 2008 20:39:19 -0500
XMPP Extensions Editor [EMAIL PROTECTED] wrote:

 Version 0.8 of XEP-0231 (Bits of Binary) has been released.
 
 Abstract: This specification defines an XMPP protocol extension for
 including or referring to small bits of binary data in an XML stanza.
 
 Changelog: Added section on determining support. (psa/ps)
 
 Diff: http://is.gd/1j1T
 
 URL: http://www.xmpp.org/extensions/xep-0231.html
 

That's it :).

-- 

Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] UPDATED: XEP-0231 (Bits of Binary)

2008-08-08 Thread Pavel Simerda
On Fri, 08 Aug 2008 08:36:12 -0600
Peter Saint-Andre [EMAIL PROTECTED] wrote:

 Pavel Simerda wrote:
 
  URL: http://www.xmpp.org/extensions/xep-0231.html
  
  That's it :).
 
 Super. So now I think we need to issue a second Last Call on
 XEP-0231, XEP-0221, and XEP-0158, because they have changed quite a
 bit since the previous Last Call. And I think now XEP-0231 and
 XEP-0221 will be more palatable to Council member Ralph Meijer, who
 did not like the inclusion of binary data in x:data forms.
 
 /psa
 

Btw, I had to lookup 'palatable in a dictionary :).

If he'll be more content with it, it's only good, it's a pity I didn't
see any of his comments or concerns.

Pavel

-- 

Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] XEP-0071 v. 1.4pre1

2008-08-07 Thread Pavel Simerda
None forbids their implementation, but do you think every client should
implement them?

Pavel

On Wed, 6 Aug 2008 18:18:19 -0600
Joe Hildebrand [EMAIL PROTECTED] wrote:

 Implementation experience has shown that table and friends is  
 strongly demanded by users, mostly because of copy/paste from
 Excel. I think we should consider their inclusion in the future, if
 we're going to open XEP-71 back up.
 
 On Aug 6, 2008, at 10:24 AM, Peter Saint-Andre wrote:
 
  In accordance with recent list discussion, I have provisionally  
  modified XEP-0071 (XHTML-IM).
 
  Rendered text: http://www.xmpp.org/extensions/tmp/xep-0071-1.4.html
 
  Changelog: Encouraged support for several more structural elements  
  from the text module (blockquote, cite, em, and strong); further  
  clarified security considerations regarding fetching and  
  presentation of images; modified several examples; clarified
  several points throughout the text.
 
  SVN diff: http://is.gd/1h2G
 
  /psa
 


-- 

Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] About the messaging use-case of XEP-0231

2008-08-07 Thread Pavel Simerda
On Thu, 7 Aug 2008 14:29:32 +0200 (CEST)
Marcus Lundblad [EMAIL PROTECTED] wrote:

 Hi.
 
 I saw that the use-cases of XEP-0231 has been removed along with the
 service discovery features.

I believe we just lost the service discovery on the way. But it will be
the same case as with XHTML-IM where the discovery is not mandatory.

(E.g. you can't discover if you don't have a presence, it maybe
stored offine and you don't know the client features yet.)

I'm for putting the feature back if Peter agrees and for making the
discovery optional.

 Is the intention that this particular use-case will become a part of
 XEP-0071?
 I found the service discovery feature for using in-band images to be
 useful. This way we can send an emoticon as its shortcut in the case
 when the receiver can't handle BoB, instead of including an img/
 with a cid: URI.

 I also just realized that the alt attribute has been removed from
 the data/ tag. This makes perfect sense to me :) I just need to
 make some changes in my code...

+1

 //Marcus
 
 
 


-- 

Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] About the messaging use-case of XEP-0231

2008-08-07 Thread Pavel Simerda
On Thu, 07 Aug 2008 10:15:16 -0600
Peter Saint-Andre [EMAIL PROTECTED] wrote:

 Pavel Simerda wrote:
  On Thu, 7 Aug 2008 14:29:32 +0200 (CEST)
  Marcus Lundblad [EMAIL PROTECTED] wrote:
  
  Hi.
 
  I saw that the use-cases of XEP-0231 has been removed along with
  the service discovery features.
  
  I believe we just lost the service discovery on the way. But it
  will be the same case as with XHTML-IM where the discovery is not
  mandatory.
  
  (E.g. you can't discover if you don't have a presence, it maybe
  stored offine and you don't know the client features yet.)
  
  I'm for putting the feature back if Peter agrees and for making the
  discovery optional.
 
 I think the service discovery features are best defined in the specs 
 that use BoB, such as XHTML-IM and file transfer, which is why I
 removed them from XEP-0231.

Ok, I didn't notice this change was intentional. What about a short
informational section when there's time for it?

  Is the intention that this particular use-case will become a part
  of XEP-0071?
  I found the service discovery feature for using in-band images to
  be useful. This way we can send an emoticon as its shortcut in the
  case when the receiver can't handle BoB, instead of including an
  img/ with a cid: URI.
  
  I also just realized that the alt attribute has been removed from
  the data/ tag. This makes perfect sense to me :) I just need to
  make some changes in my code...
  
  +1
 
 Yes, we figured out that we don't need 'alt' for data/ because the 
 description will be handled by img/ (in XHTML-IM) or whatever other 
 protocol uses BoB.
 
 /psa
 


-- 

Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] About the messaging use-case of XEP-0231

2008-08-07 Thread Pavel Simerda
On Thu, 07 Aug 2008 14:52:23 -0600
Peter Saint-Andre [EMAIL PROTECTED] wrote:

 Pavel Simerda wrote:
  On Thu, 07 Aug 2008 10:15:16 -0600
  Peter Saint-Andre [EMAIL PROTECTED] wrote:
  
  Pavel Simerda wrote:
  On Thu, 7 Aug 2008 14:29:32 +0200 (CEST)
  Marcus Lundblad [EMAIL PROTECTED] wrote:
 
  Hi.
 
  I saw that the use-cases of XEP-0231 has been removed along with
  the service discovery features.
  I believe we just lost the service discovery on the way. But it
  will be the same case as with XHTML-IM where the discovery is not
  mandatory.
 
  (E.g. you can't discover if you don't have a presence, it maybe
  stored offine and you don't know the client features yet.)
 
  I'm for putting the feature back if Peter agrees and for making
  the discovery optional.
  I think the service discovery features are best defined in the
  specs that use BoB, such as XHTML-IM and file transfer, which is
  why I removed them from XEP-0231.
  
  Ok, I didn't notice this change was intentional. What about a short
  informational section when there's time for it?
 
 Hmm. Do we really need those special service-discovery features?
 Perhaps all we need now is some text that says don't include [only]
 cid: URIs unless the recipient supports BoB. The reason we had the
 disco features is that we didn't want to spam people with in-band
 binary unless they said that was OK, but now we're pretty much
 forcing you to send the cid: URI and then the recipient can decide if
 they want to retrieve the binary.
 
 /psa
 

That's what your original Service-Discovery section was about, no?

As this is easier, I'm for allowing clients to handle URIs uniformly.
And for announcing support for BoB in one Discovery Feature.

This means you would just add back the Disco section :).

Other suggestions from anyone?

Pavel

-- 

Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] UPDATED: XEP-0231 (Data Element)

2008-08-06 Thread Pavel Simerda
On Tue, 05 Aug 2008 23:28:16 -0500
XMPP Extensions Editor [EMAIL PROTECTED] wrote:

 Version 0.4 of XEP-0231 (Data Element) has been released.
 
 Abstract: This specification defines an XMPP protocol extension for
 including small bits of binary data in an XML stanza.
 
 Changelog: Generalized text regarding inclusion of parameters in type
 attribute per RFC 2045; added max-age attribute, matching semantics
 from RFC 2965; added section on caching of data; more clearly
 specified generation of Content-ID. (psa)
 
 Diff: http://is.gd/1gmU

Good Job. Thanks for including me in the acknowledgements.

May I have still some comments to the letter of the XEP?

* 3. Caching of Data

 As a hint regarding the suggested period for caching the data, the
 sending party SHOULD include a 'max-age' attribute whenever it sends
 a non-empty data/ element. The semantics of the 'max-age' attribute
 exactly matches that of the Max-Age attribute from RFC 2965.

Wasn't the max-age element meant to be optional (the missing one
interpreted as session-wide)? Also in the Defined Attributes table.

* 4. Use Cases

Are the use cases intended to standardize the particular use of Data
Element.

 Example 2. A message with included data
 ...
 Once the data is provided, a subsequent message in the same session
 can refer to the data again without including the data itself.
 Example 3. A message with referenced data

Example 3 could be made a primary example (without data/ element) and
Example 2 might just show the possibility to include the data if
desired and therefore follow the current Example 3.

* Example 4. Audio Media Element

Generally, the empty data/ should be IMO used for an occasional empty
file. I know there's not many use-cases for sending empty files... but
it might occasionally happen when one send several files and some of
them just happen to be empty.

I think we're unnecessarily changing the meaning, here.

  ...
  uri type='audio/mpeg'
http://victim.example.com/challenges/speech.mp3?F3A6292C
  /uri
  data xmlns='urn:xmpp:tmp:data-element' 
alt='An audio file'
type='audio/ogg; codecs=speex'/
  /data
  ...

Could be changed to:

  ...
  uri type='audio/mpeg'
http://victim.example.com/challenges/speech.mp3?F3A6292C
  /uri
  uri type='audio/ogg; codecs=speex'/
cid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6@shakespeare.lit
  /uri
  ...

This would simplify things so that the data/ element would always
belong to the top of the message/ stanza and allowing uniform
handling.

* Example 5. File transfer offer with preview

file xmlns='http://jabber.org/protocol/si/profile/file-transfer' 
  size='330527' 
  name='image.png'
  data xmlns='urn:xmpp:tmp:data-element' 
alt='There be dragons!'
cid='[EMAIL PROTECTED]'
type='image/png'
 
iVBORw0KGgoNSUhEUgAAADkAAABACAIvV0jbCXBIWXMAAA4mAAAOJgGi7yX8AAAc
 ...
  /data
  range/
/file

I'm afraid the data/ element doesn't properly markup its meaning.

I propose one of
1) preview
 cid=[EMAIL PROTECTED]/
2) preview
 uri=cid:d8f904ac-636c-11dd-8a2f-001143d5d5db@montague.lit/
or similar.

Furthermore, I believe this is out of the scope of this XEP and should
be done in the FT one and within the FT namespace.

* Position of the data/

For messages (and presence, if needed), I'd suggest to (of course
OPTIONALLY) include one or more non-empty data/ elements directly in
the message/ or presence/. For messages, this directly maps to the
e-mail attachments and the use of CID references in e-mail messages
(for single messages this could be actually showed as in e-mail
programs).

For IQ stanzas, where this is not possible, we can put it
directly in the single child of iq/, maybe.

* What's the alt attribute then for?

If we don't use empty data/ elements at all (except the occasional
empty files), then the 'alt' facility should be provided by the
protocol that is using the URL not data/ elements themselves as it is
done in HTML-IM.

To have some user-readable description (e.g. for the cache management),
I suggest removing 'alt' but adding e.g. 'desc' attribute for textual
description. This way we avoid confusion between 'alt' in the
presentation part and 'desc' in the data part.

Note: similar examples are used in XEP-0221: Data Forms Media Element

Pavel

--

Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] XEP-0154: User Profile - enterprise vs. simple

2008-08-06 Thread Pavel Simerda
On Mon, 04 Aug 2008 19:50:01 -0600
Peter Saint-Andre [EMAIL PROTECTED] wrote:

 Pavel Simerda wrote:
  Hello Peter,
  
  this is just reactions to your post, I will later summarize what I
  have and include some examples so we can advance from theory to
  something real.
 
 Sounds good!
 
  On Thu, 31 Jul 2008 08:23:36 -0600
  Peter Saint-Andre [EMAIL PROTECTED] wrote:
  (citation shortened)
  
  2) The simpler case - user publishes his xmpp-based profile
 
  Clients should be able to *set* at least the most basic
  information. We need PEP support, profile data structure knowledge
  and UI for setting the data.
  
  Just to remind... this means all information the client author
  implements.
  
  Note: No additional server requirements, PEP is ok for us.
  
  I would like to keep this as simple as possible, with no support
  from the server except PEP and client just reads/stores PEP data.
 
 Yes, I think that's a good goal.
 
  3) The harder case - server publishes a pre-existing non-xmpp
  profile with its own structure on behalf of the user
  
  b) setting profile
 
  The server may or may not allow the user to set the profile data
  through Jabber. What's more, the server should be able to specify
  which fields are read-write and which read-only (or even absent in
  the data model).
  We can do this with x:data, because we can specify that some fields
  are *fixed*, for example:
 
  profile xmlns='urn:xmpp:tmp:profile'
 x xmlns='jabber:x:data' type='result'
  ...
 /x
  /profile
  
  You hit the point. Data forms do a good job for user interaction and
  forms. This is why we have them, isn't it?
  
  Moreover, as backend-based store *already requires* some complexity
  on the server, there is no problem in implementing it there.
  
  Some client authors, on the other hand, would not like to implement
  all this stuff. But there's a simple solution to that.
  
  Implement it on the server side and use what clients already can!
  
   * XEP-0050: Ad-Hoc Commands
   * XEP-0004: Data Forms
  
  This way we don't even need to specify the protocol. Though we may
  want to (I don't know) like it's done in XEP-0133: Service
  Administration
 
 The FORM_TYPE stuff (XEP-0068) is one way to scope the data form. 
 Another approach is the wrapper element  namespace as in User
 Profile. I see these as two ways of doing the same thing. But in PEP
 the wrapper element is more useful because PEP says that there is one
 node per namespace.
 
  4) The controversy - model versus protocol
 
  In the simple case (2), we define a data model for user profiles.
  We also specify methods to retrieve them and publish them. Client
  authors design the UI.
 
  But in (3), we actually define an intermediate presentation layer
  so other clients understand the data and can present them in the
  UI. We omit or fix fields on the server-side and limit the
  flexibility we would otherwise offer.
  I don't see why the case of more complex data requires an
  intermediate presentation layer etc.
  
  Because we don't want to put SQL, LDAP and all other backend
  reperesentation into XMPP. By the word intermediate I mean the
  XMPP representation, because it sits between the backend (e.g. SQL)
  store and the client's user interface (e.g. a graphical window).
 
 Aha, ok. That makes sense.
 
  Actually it's not more complex data but more complex storage
  (something is in the backend store, something is in the PEP store.
  
  Many backend stores will only offer basic info and contacts. Shall
  we drop all other info sections and disallow any future
  extensions? I believe we should not!
  Agreed.
 
  5) Possible solutions for profile setting
 
  I believe we agree on the need to split the user profile into
  several PEP nodes (groups of fields) to avoid unnecessary data
  flows.
  +1
 
  
  Thanks for confirmation.
  
  We have to define fixed sets of fields (with value formats) to
  allow client authors to create usable viewing user interfaces.
  See above on field type='fixed' -- x:data helps us here.
 
  
  Fixed in a different meaning. Fixed sets of fields - the
  sections/groups of fields that are defined so that clients know what
  data they will get.
 
 Right. And we'll do that via namespacing the data buckets (basic,
 home contact data, work contact data, etc.).
 

Exactement :). (You know Hercule Poirot, don't you?)

  When we start thinking about setting the profile, the controversy
  shows itself.
 
  a) We could require user profile setting implementation on both
  the client and server side and disallow PEP publishing (this is
  effectively what the current version does, it uses PEP syntax but
  requires special handling!).
 
  But this means that we cannot use User Profile without server
  support which is weird! We're only using PEP events but not
  publishing features.
 
  This also means the client implementation will be a bit more
  complicated than necessary for (2).
 
  The added server-side and client-side

Re: [Standards] comments on section 8.3, draft-saintandre-rfc3920bis-06.html

2008-08-05 Thread Pavel Simerda
On Mon, 04 Aug 2008 16:59:50 -0600
Peter Saint-Andre [EMAIL PROTECTED] wrote:

 Pedro Melo wrote:
  
  On Jul 22, 2008, at 2:12 AM, Ovidiu Craciun wrote:
  
 
  Excerpt from: 
  http://www.xmpp.org/internet-drafts/draft-saintandre-rfc3920bis-06.html
 
  Section: 8.3.  Generation of Resource Identifiers
  A resource identifier can be security-critical. For example, if a 
  malicious entity can guess a client's resource identifier then it
  may be able to determine if the client (and therefore the
  controlling principal) is online or offline, thus resulting in a
  presence leak as described under Section 15.13 (Presence Leaks).
  Traditionally, XMPP resource identifiers have been generated by
  clients in ways that are not secure (e.g., hardcoding the resource
  identifier to the name of the client or to a common location such
  as home or work). However, for the sake of proper security, a
  resource identifier SHOULD be random (see [RANDOM] (Eastlake, D.,
  Schiller, J., and S. Crocker, “Randomness Requirements for
  Security,” June 2005.)). It is RECOMMENDED that the resource
  identifier incorporate a Universally Unique Identifier (UUID), for
  which the format specified in [UUID] (Leach, P., Mealling, M., and
  R. Salz, “A Universally Unique IDentifier (UUID) URN Namespace,”
  July 2005.) is RECOMMENDED. 
 
  From the IMPP RFC I get that:
  X can read Y's presence info only
  (A) if Y's presence info is public domain, or
  (B) if Y previously allowed X to read it's presence.
 
  In this case, when a malicious entity, that can guess X's resource 
  identifier, is be able to read X's presence only if (A) or (B) is 
  true, in which case it is not a security threat, it is by default. 
  What I am saying is that the presence leaks are not related with
  the easiness of guessing X's resource IDs but if the server is
  handling correctly the presence information for a given JID.
  
  I believe the above paragraph is not referring to presence leaks as
  a full presence stanza but just as a way for me to know if you
  are online or not. It might not be your full presence but it is
  still a leak.
 
 Yes, this is not a leak of presence/ stanzas, but it is effectively
 a leak of information about whether a particular resource is online.
 
  If I can guess your resource, I might trick your client into
  replying to an IQ or direct presence stanza. Any of those replies
  would mean that you are online at the moment, and therefore
  constitute a presence leak.
 
 Correct.
 
  Also, the requirement to have a resource identifier be random for
  the sake of proper security it is also a forced and unnecessary 
  requirement. The server should guarantee the security by
  implementing correctly a secure protocol not by following
  recommendations.
  
  If you bind your sessions without a resource, the server will give
  you a random resource. For the server to enforce a proper security
  perimeter, it would have to filter (drop) IQ's directed to your JID
  from JIDs outside your roster. This would most likely prevent some
  normal (as in currently available and useful) workflows.
 
 Well, this is pretty much how Google Talk works, and it mostly
 functions just fine.
 
  Sometimes I chat with people that are not on my roster, including
  file transfer. That would be impossible with a server-side
  firewall. Of course, you can today implement such firewall with
  privacy lists, if your server supports them.
 
 Right. Or XEP-0191. Effectively Google Talk (and other similar
 services) deploy a rule of forbid communications with people not on
 my roster on the user's behalf -- no need for fancy privacy rules
 managed by the user.

But this also disallows chatting with people outside your roster, which
is something I often do.

I'm for any way that doesn't leak presence but allows chat sessions (or
single messages)... without giving any presence info. It's nice to be
able to decide about the non-roster people blocking separately.

Some people would also like to use the invisible facility, that would
also be orthogonal to the roster subscriptions. (I never used
invisible personally.)

Sorry if I'm just repeating the obvious.

 
 Peter
 


-- 

Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] presence priority -1 issues

2008-08-05 Thread Pavel Simerda
On Tue, 05 Aug 2008 09:16:45 -0600
Peter Saint-Andre [EMAIL PROTECTED] wrote:

 Maciek Niedzielski wrote:
  Peter Saint-Andre wrote:
  I like the part that only client/* should be interpreted as 
  IM-capable resources, but I don't know if that is too strict.
 
  That's probably too strict. At the least I think we'd say that the 
  following identities are IM-capable:
 
  account/*
  client/*
  
  I always thought these two are independent - account/* defines... 
  account, client/* describes particular connection.
  So for example, [EMAIL PROTECTED] is account/registered, 
  [EMAIL PROTECTED]/calendar is automation/bot and [EMAIL PROTECTED]/chat
  is client/pc (yes, I know resources ids are supposed to be opaque,
  but it was easier to explain this way).
 
 IMHO you'd get account/* from a bare JID and client/* from a full JID.
 
 /psa
 

But then account/* should never send presence, no?

-- 

Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] Questions about xhtml-im

2008-08-02 Thread Pavel Simerda
On Sat, 02 Aug 2008 21:40:49 +0200
Maciek Niedzielski [EMAIL PROTECTED] wrote:

 Jehan wrote:
  But still for most end users, the best is wysiwyg
 
 And this is why xhtml-im needs to be about formatting, not semantics: 
 most end users want to get (and send) what they see. And they want
 you to see what they see.

I see no point in forbidding the semantics!

I personally turn off xhtml-im as I have no way to just turn off
styling (it's annoying to let others configure my fonts and colors,
especially if it doesn't really work). If you don't forbid semantics, I
could turn off the styling and keep the seemantic part (styled to my
own preferences).

And... keeping the semantic markup doesn't do any harm to users that
don't know about it. They'll just configure the fonts and colors, that
I don't care about (and I won't see).

Pavel

-- 

Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] Questions about xhtml-im

2008-08-01 Thread Pavel Simerda
On Fri, 1 Aug 2008 12:49:05 +0200
Jehan [EMAIL PROTECTED] wrote:

 
 Olivier Goffart;2116 Wrote: 
  L
  It could also make use of a WIKI-like syntax
  
 
 Yes for my own, if really we are interested on client side text
 structuration, the wiki style is one of the best approach for
 technical users who don't like wysiwyg GUI, but still want to have
 full control of their structure. For my own, I find it very boring
 and slow to have to write xml tags em or strong for emphasing,
 whereas the wiki style is as powerful, but very fast to write (nearly
 no difference with unformated writing, and especially no special
 character like , , /, etc.), nice to read while still unsent, and
 accurate. Writing ''emphasing'' is better than writing
 ememphasing/em!!! And lists with * or # are so obvious, whereas
 ulolli boring to write and it is easy to make a mistake of
 unclosed tags.
 
 But still for most end users, the best is wysiwyg (they are not
 willing to learn formatting rules, even as obvious as wiki ones), so
 they don't care whether it is wiki or html under the skull.
 Therefore I guess xhtml is a good choice for the finale formatting
 inside the XMPP stream, because it is XML as XMPP, and wiki-style
 could be used client-side as an implementation choice (which would
 then be transformed into xhtml before sent).


Wiki syntax can be easily converted to html by the client. That's an
implementation issue that would at best reached Best Practice status.

  
  
   I'd be willing to relax our usage of the Text Module so that we
   encourage more structural markup. As far as I can see, the
   following elements would be most useful:
  
   blockquote
   cite
   em
   q
   strong
  
  yes.
  
  
   In some applications I could also see an argument for:
  
   abbr
   acronym
   code
   dfn
   h1 through h6
   kbd
   pre
   Those are not forbidden in XHTML-IM right now, just not
   encouraged.
  But
   we could change that if we think it's a good idea.
  
  
  I'd say that code or pre is important too.
  
  and the ul/ol/li/ are quite usefull too.
  
  Also make the style attribute not REQUIRED, because it's probably
  the most 
  complicated thing to implement.
  
  And the title attribute is interesting too on abbr/ and stuff, so
  OPTIONAL 
  would be better.
  
  -- 
  Olivier
  
 
 As for I, if I stay in the optics of pure IM (i.e. when you chat fast
 with people), I think the most interesting of them all are em,
 strong, blockquote (cite is not so useful, because when I cite
 stuffs mixed in my own sayings, in the context of IM, I would simply
 use quotes ,

This is a bit of personal preference.

 whereas blockquotes is very useful when you get a
 big text separated); then nice but less important are lists
 (ulolli) and links (a).

List may be very good for multiline messages.

Links are important, they should not be IMO automatic in HTML.

 code is nice also but for technical people mostly (and even for
 technical stuffs, if I had no access to code, I would use
 blockquote instead, so this is not so primordial).
 
 And if we get structure in a more general way (for notification, not
 only IM chatting), I would add all the title (h[1-6]) tags, and
 then I would add cite here.
 
 These are the main tags, at least as far as I am concerned.
 
 Jehan

I personally am for structure as I would be the first one to turn off
styling. Now I have to turn of the whole xhtml-im stuff.

Pavel


-- 

Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] XEP-0154: User Profile - enterprise vs. simple

2008-07-31 Thread Pavel Simerda
Hello Peter,

this is just reactions to your post, I will later summarize what I have
and include some examples so we can advance from theory to something
real.

On Thu, 31 Jul 2008 08:23:36 -0600
Peter Saint-Andre [EMAIL PROTECTED] wrote:
(citation shortened)

  2) The simpler case - user publishes his xmpp-based profile
  
  Clients should be able to *set* at least the most basic
  information. We need PEP support, profile data structure knowledge
  and UI for setting the data.

Just to remind... this means all information the client author
implements.

  Note: No additional server requirements, PEP is ok for us.

I would like to keep this as simple as possible, with no support from
the server except PEP and client just reads/stores PEP data.

  3) The harder case - server publishes a pre-existing non-xmpp
  profile with its own structure on behalf of the user

  b) setting profile
  
  The server may or may not allow the user to set the profile data
  through Jabber. What's more, the server should be able to specify
  which fields are read-write and which read-only (or even absent in
  the data model).
 
 We can do this with x:data, because we can specify that some fields
 are *fixed*, for example:
 
 profile xmlns='urn:xmpp:tmp:profile'
x xmlns='jabber:x:data' type='result'
...
/x
 /profile

You hit the point. Data forms do a good job for user interaction and
forms. This is why we have them, isn't it?

Moreover, as backend-based store *already requires* some complexity on
the server, there is no problem in implementing it there.

Some client authors, on the other hand, would not like to implement all
this stuff. But there's a simple solution to that.

Implement it on the server side and use what clients already can!

 * XEP-0050: Ad-Hoc Commands
 * XEP-0004: Data Forms

This way we don't even need to specify the protocol. Though we may want
to (I don't know) like it's done in XEP-0133: Service Administration

  4) The controversy - model versus protocol
  
  In the simple case (2), we define a data model for user profiles. We
  also specify methods to retrieve them and publish them. Client
  authors design the UI.
  
  But in (3), we actually define an intermediate presentation layer so
  other clients understand the data and can present them in the UI. We
  omit or fix fields on the server-side and limit the flexibility we
  would otherwise offer.
 
 I don't see why the case of more complex data requires an
 intermediate presentation layer etc.

Because we don't want to put SQL, LDAP and all other backend
reperesentation into XMPP. By the word intermediate I mean the XMPP
representation, because it sits between the backend (e.g. SQL) store and
the client's user interface (e.g. a graphical window).

Actually it's not more complex data but more complex storage (something
is in the backend store, something is in the PEP store.

  Many backend stores will only offer basic info and contacts. Shall
  we drop all other info sections and disallow any future extensions?
  I believe we should not!
 
 Agreed.
 
  5) Possible solutions for profile setting
  
  I believe we agree on the need to split the user profile into
  several PEP nodes (groups of fields) to avoid unnecessary data
  flows.
 
 +1
 

Thanks for confirmation.

  We have to define fixed sets of fields (with value formats) to allow
  client authors to create usable viewing user interfaces.
 
 See above on field type='fixed' -- x:data helps us here.
 

Fixed in a different meaning. Fixed sets of fields - the
sections/groups of fields that are defined so that clients know what
data they will get.

  When we start thinking about setting the profile, the controversy
  shows itself.
  
  a) We could require user profile setting implementation on both the
  client and server side and disallow PEP publishing (this is
  effectively what the current version does, it uses PEP syntax but
  requires special handling!).
  
  But this means that we cannot use User Profile without server
  support which is weird! We're only using PEP events but not
  publishing features.
  
  This also means the client implementation will be a bit more
  complicated than necessary for (2).
  
  The added server-side and client-side complexity may extend the
  vcard-temp's usage and defer real-world implementation of XEP-0154.
 
 I think an application can specify some fields as fixed and ignore
 any changes generated by the client. But then the PEP service needs
 to be a bit specialized because it's not just publishing payloads but
 inspecting the XML of the payload to see if it matches some business
 rules.

I don't think we should misuse PEP syntax for things it cannot do
itself. That's why I don't like (a).

I included it for completeness.

  b) As the setting method for the backend-based profiles is totally
  different, it follows we could just ignore it and leave it to a
  different protocol/extension.
  
  No required server support (except for backend-based 

Re: [Standards] XEP-0231 (Data Element) - local caching

2008-07-31 Thread Pavel Simerda
On Thu, 31 Jul 2008 08:07:04 -0600
Peter Saint-Andre [EMAIL PROTECTED] wrote:

 Pavel Simerda wrote:
  On Wed, 30 Jul 2008 07:04:16 -0600
  Peter Saint-Andre [EMAIL PROTECTED] wrote:
  
  Pavel Simerda wrote:
  On Tue, 29 Jul 2008 19:49:01 -0600
  Peter Saint-Andre [EMAIL PROTECTED] wrote:
 
  Ahoj Pavle!
 
  Pavel Simerda wrote:
  Hello,
 
  I have some suggestions for XEP-0231 (Data Element).
  Thanks for looking at this spec so thoroughly.
 
  I actually have some questions. First, lolek from the jabbim.cz
  project is going to propose a XEP for text emoticons. 
  Similar to XEP-0038? We can bring that back if someone wants to
  maintain it.
  
  Similar but more powerful and not file-based but most probably
  based on Data Elements. There may be a lot of other extensive
  changes. If these changes can be made, I believe Martin would
  maintain it if he gets the chance.
 
 OK, great. I'm happy to help.

Thanks, I'll invite him to jdev conference sometime next week.

  I like his ideas but I
  suggested him to use Data Element instead of a custom solution.
  +1
 
  He still has doubts but I promised him to try to sort it out and
  to help him with language corrections of his document too.
  Great, thanks.
 
  I didn't find in the specs what should be used for domain ID in
  the CID. The examples apparently use the domain part of JID that
  is not unique for the clients. I looked at the RFC and still
  don't know a proper mapping to XMPP.
 
  His original idea was to use a cryptographic hash function and
  not a CID.
  I think your idea of a UUID followed by the domain part of the JID
  would work well.
 
  He also pointed out he misses a feature that would allow a client
  to advertise which mimetypes it supports.
  Yes we can add a disco feature for that.
 
  This is another questions... if it's just emoticons, should we
  just support png and mng types or add some accept-advertisement
  facility?
  I don't think it hurts to define a way to advertise what MIME types
  you support. We'll use the data element for things other than
  emoticons, but IMHO the simplest approach would be to advertise in
  general which MIME types you support, not I support these mime
  types for emoticons and I support these other mime types for file
  transfer thumbnails etc. Does anyone think that level of
  complexity is needed?
  
  I'm not sure. Let's wait for other comments.
 
 Well I'm not a fan of adding complexity if we don't need it.

Agreed.

  Is there a written policy for image formats in XMPP extensions?
  Not yet.
  
  PNG for static raster images, MNG for animated raster images, SVG
  for vector images? That's something I would expect from every
  client.
 
 Sure. But some people think JPG and GIF are good too (e.g., I think
 JPG is the default in vCards or LDAP or somesuch).

Yep, JPG is good for photos, I have forgotten because I was still
thinking about the emoticons.

GIF is good for nothing when we have static PNG and animated MNG that
not only supersede it in all areas but also make a distinction between
static and animated, which is good. (Just my opinion, others may or
may not agree.)

Let's move this out of discussion about XEP-0231... and discuss the
image (and other) formats policy separately if needed.

  Right now, as the example shows:
 
  message from='[EMAIL PROTECTED]/castle'
   to='[EMAIL PROTECTED]'
   type='groupchat'
bodyYet here's a spot./body
html xmlns='http://jabber.org/protocol/xhtml-im'
  body xmlns='http://www.w3.org/1999/xhtml'
p
  Yet here's a spot.
  img alt='A spot'
   
  src='cid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6@shakespeare.lit'/
/p
  /body
/html
data xmlns='urn:xmpp:tmp:data-element' 
  alt='A spot'
  cid='[EMAIL PROTECTED]'
  type='image/png'
  iVBORw0KGgoNSUhEUgoKCAYAAACNMs+9BGdBTUEAALGP
  C/xhBQlwSFlzAAALEwAACxMBAJqcGAd0SU1FB9YGARc5KB0XV+IA
  AAAddEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIFRoZSBHSU1Q72QlbgAAAF1J
  REFUGNO9zL0NglAAxPEfdLTs4BZM4DIO4C7OwQg2JoQ9LE1exdlYvBBeZ7jq
  ch9//q1uH4TLzw4d6+ErXMMcXuHWxId3KOETnnXXV6MJpcq2MLaI97CER3N0
  vr4MkhoXe0rZigBJRU5ErkJggg==
/data
  /message
 
  Note: in this particular example the data is very short, this
  may not be the case in real world where people tend to ignore
  the size of data they send.
  Yes, that's just about the smallest image I could find. The spec
  says that the image should not be more than 8k (which is twice
  the suggested size of an IBB chunk) but we don't know if people
  will typically send images that are smaller or larger than 8k --
  I think smaller but I don't know that yet.
 
  Might it be advertised by the client/server? And rejected if the
  other party tries to send a bigger one (just to force them to fix
  it)?
  I think that's handled at a different layer (e.g., rate limiting).
  But we do need to define better handling for stanzas that are too

Re: [Standards] presence priority -1 issues

2008-07-31 Thread Pavel Simerda
On Thu, 31 Jul 2008 20:47:25 +0100
Dave Cridland [EMAIL PROTECTED] wrote:

 On Thu Jul 31 17:54:32 2008, Pedro Melo wrote:
  
  On Jul 31, 2008, at 5:21 PM, Dave Cridland wrote:
  
  On Thu Jul 31 17:17:40 2008, Pedro Melo wrote:
  Moving forward, this would allow clever clients to observe
  that it  wasn't a IM client capable of handling calendaring
  requests, but a  dumb calendaring bot working on behalf of the
  user.
  Not following.
  
  Clients could have an integrated calendaring app, allowing both  
  chat  and calendaring traffic to happen to the same full jid.
  
  Alternately, it may only do one or the other.
  
  Yes, but then you would only need to publish the proper feature.
  
  What makes a automated system try a certain protocol is the  
  feature,  not the identity. The identity automation/calender (per  
  Peter example)  is only needed to mark a resource as a non-IM  
  resource.
  
  
 Right, except in the case of IM, features are advertised. But to  
 advertise a lack of IM, we need to change the identity, since we  
 don't have an IM feature.
 
 Of course, it'd really be automation/application, or  
 automation/daemon, since what kinds of protocols it's an automaton  
 for is, as you say, down to the features advertised.

Protocols/features and the purpose of the application may be different.
IMHO it depends on how much you want to distinguish.

  So a clever Calendar application that also allows chat would  
  probably  still announce itself with a client/pc but would also
  set feature to  support cal-dav-over-xmpp, or whatever.
 
 Of course - but I'm somewhat against a negative feature, if there's  
 any alternative.

+1

 Dave.

Pavel

-- 

Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] presence priority -1 use case

2008-07-30 Thread Pavel Simerda
Hello,

folks at jabbim.cz are working on a service for a single-contact
webchat (visitors of your website may chat with you in a simple UI).

There are various issues with the implementation on XMPP. Especially
the JID of the web user.

1) It could be [EMAIL PROTECTED]

The problem is with presence, as this JID is not subscribed.

2) Otherwise [EMAIL PROTECTED]/[nick] (I was told [service]/[nick] is
not handled well by some clients, I can ask for more info if needed)

Then they would use negative priority to prevent the user from sending
messages to a different nick than he wants.

This component actually mimics a chat client intended for recieving
messages but priority -1 serves well.

Pavel

-- 

Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


Re: [Standards] Questions about xhtml-im

2008-07-30 Thread Pavel Simerda
On Wed, 30 Jul 2008 13:04:33 +0200
Jehan [EMAIL PROTECTED] wrote:

 
 Peter Saint-Andre;1984 Wrote: 
  
  Please quote the entire section:
  
  ***
  
  A user agent that implements this specification MUST conform to
  Section
  
  3.5 (XHTML Family User Agent Conformance) of Modularization of
  XHTML.
  
  Many of the requirements defined therein are already met by Jabber 
  clients simply because they already include XML parsers.
  
  However, ignore has a special meaning in XHTML modularization 
  (different from its meaning in XMPP). Specifically, criteria 4
  through 6 
  of Section 3.5 of Modularization of XHTML state:
  
  4.
  
  W3C TEXT: If a user agent encounters an element it does not 
  recognize, it must continue to process the children of that
  element. If
  
  the content is text, the text must be presented to the user.
  
  XSF COMMENT: This behavior is different from that defined by
  XMPP 
  Core, and in the context of XHTML-IM implementations applies only to
  XML 
  elements qualified by the 'http://www.w3.org/1999/xhtml' namespace
  as defined herein. This criterion MUST be applied to all XHTML 1.0
  elements 
  except those explicitly included in XHTML-IM as described in the 
  XHTML-IM Integration Set and Recommended Profile sections of this 
  document. Therefore, an XHTML-IM implementation MUST process all
  XHTML
  
  1.0 child elements of the XHTML-IM html/ element even if such
  child elements are not included in the XHTML 1.0 Integration Set
  defined herein, and MUST present to the recipient the XML character
  data contained in such child elements.
  
  ***
  
   What I understand is
   that when I encounter a tag which I recognize as being xhtml, but
  which
   is not in the xhtml-im subset, then I must display it as is?
  
  Let's say you receive this:
  
  htmlbodypI like the Extensible Messaging and Presence
  Protocol (abbrXMPP/abbr)./p/body/html
  
  In this case you would display the XML character data of the
  abbr/ element even though it's not part of the XHTML-IM
  integration set.
  
  That's just one example.
  
  /psa
 
 Sorry I did not understand (or at least as much as the original).
 
 So when you write to display the XML character data, you mean that
 you just dump the tag element, and display its content (XMPP) ?
 So you display this:
  I like the Extensible Messaging and Presence Protocol (XMPP)
 
 This would look natural to me (and I think to have understood this is
 also how the W3C recommends it for the core xhtml .
 
 Or do you mean that you display the unknown (in  xhtml-im subset) tag
 element itself to the simple user view, so this:
  I like the Extensible Messaging and Presence Protocol
  (abbrXMPP/abbr)
 
 So one will see unprocessed tag (and if the user does not know what is
 xhtml, it would look like strange unknown words)...
 
 I am sorry if I don't understand this... That's probably about word
 definition here where I am not sure about what you call the XML
 character data of an element:
 1/ character data in XML being the normal text between the tag
 elements;

That's it.

 2/ or character data as a graphical character/pictogram in an alphabet
 (what we call a character set in computer science)?
 Thanks.
 
 Jehan
 
 P.S.: for the rest of my questions, thanks for the answers. I guess I
 shall read and try and understand the concept of modularization of
 xhtml, as you suggest. :-)
 
 Anyway for the part about semantic/structure versus style/display,
 probably there can be discussions about this (and you already had
 apparently), but even though I am completely partisan of structure, I
 understood well the two points here which are that this XEP is for IM,
 and that normal users cannot be asked to think about structure when
 they just care about style.
 
 Yet just to answer shortly about this point:
   The style should come from the meaning of the tag, like in the
   web!
  
  How so? Remember that we don't have external CSS here.
 
 In case where structure would have been chosen above style (even
 though, as I remind, I understand now why style is chosen in IM),
 there may be a small CSS just for the few available tags in xhtml-im
 on client side (then a user could even modify their personal CSS).
 
 

I cannot talk for XHTML-IM as it's the first thing I turn off. But I
generally like the idea of using em and strong and similar for
structural markup even in instant messaging.

It's markup vs. styling. I particularly dislike any styling... as this
will be often misused to put bright colors or fancy fonts into the
chatrooms which is annoying and...

If you see it... it's bad.

If you don't, you can't kick the people for huge font sizes, big fancy
pictures. For me xhtml-im is just a headache.

But... if I could disable the styling and use it for murkup like
emphasizing, links or even structuring short documents (e.g. for single
messages), I might be even using it (at least passively).


So... I perfectly understand your point but it seems to be 

Re: [Standards] XEP-0231 (Data Element) - local caching

2008-07-30 Thread Pavel Simerda
On Wed, 30 Jul 2008 07:04:16 -0600
Peter Saint-Andre [EMAIL PROTECTED] wrote:

 Pavel Simerda wrote:
  On Tue, 29 Jul 2008 19:49:01 -0600
  Peter Saint-Andre [EMAIL PROTECTED] wrote:
  
  Ahoj Pavle!
 
  Pavel Simerda wrote:
  Hello,
 
  I have some suggestions for XEP-0231 (Data Element).
  Thanks for looking at this spec so thoroughly.
 
  I actually have some questions. First, lolek from the jabbim.cz
  project is going to propose a XEP for text emoticons. 
 
 Similar to XEP-0038? We can bring that back if someone wants to
 maintain it.

Similar but more powerful and not file-based but most probably based on
Data Elements. There may be a lot of other extensive changes. If these
changes can be made, I believe Martin would maintain it if he gets the
chance.

  I like his ideas but I
  suggested him to use Data Element instead of a custom solution.
 
 +1
 
  He still has doubts but I promised him to try to sort it out and to
  help him with language corrections of his document too.
 
 Great, thanks.
 
  I didn't find in the specs what should be used for domain ID in the
  CID. The examples apparently use the domain part of JID that is not
  unique for the clients. I looked at the RFC and still don't know a
  proper mapping to XMPP.
  
  His original idea was to use a cryptographic hash function and not a
  CID.
 
 I think your idea of a UUID followed by the domain part of the JID
 would work well.
 
  He also pointed out he misses a feature that would allow a client to
  advertise which mimetypes it supports.
 
 Yes we can add a disco feature for that.
 
  This is another questions... if it's just emoticons, should we just
  support png and mng types or add some accept-advertisement facility?
 
 I don't think it hurts to define a way to advertise what MIME types
 you support. We'll use the data element for things other than
 emoticons, but IMHO the simplest approach would be to advertise in
 general which MIME types you support, not I support these mime types
 for emoticons and I support these other mime types for file
 transfer thumbnails etc. Does anyone think that level of complexity
 is needed?

I'm not sure. Let's wait for other comments.

  Is there a written policy for image formats in XMPP extensions?
 
 Not yet.

PNG for static raster images, MNG for animated raster images, SVG for
vector images? That's something I would expect from every client.

  Right now, as the example shows:
 
  message from='[EMAIL PROTECTED]/castle'
   to='[EMAIL PROTECTED]'
   type='groupchat'
bodyYet here's a spot./body
html xmlns='http://jabber.org/protocol/xhtml-im'
  body xmlns='http://www.w3.org/1999/xhtml'
p
  Yet here's a spot.
  img alt='A spot'
   
  src='cid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6@shakespeare.lit'/
/p
  /body
/html
data xmlns='urn:xmpp:tmp:data-element' 
  alt='A spot'
  cid='[EMAIL PROTECTED]'
  type='image/png'
  iVBORw0KGgoNSUhEUgoKCAYAAACNMs+9BGdBTUEAALGP
  C/xhBQlwSFlzAAALEwAACxMBAJqcGAd0SU1FB9YGARc5KB0XV+IA
  AAAddEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIFRoZSBHSU1Q72QlbgAAAF1J
  REFUGNO9zL0NglAAxPEfdLTs4BZM4DIO4C7OwQg2JoQ9LE1exdlYvBBeZ7jq
  ch9//q1uH4TLzw4d6+ErXMMcXuHWxId3KOETnnXXV6MJpcq2MLaI97CER3N0
  vr4MkhoXe0rZigBJRU5ErkJggg==
/data
  /message
 
  Note: in this particular example the data is very short, this may
  not be the case in real world where people tend to ignore the size
  of data they send.
  Yes, that's just about the smallest image I could find. The spec
  says that the image should not be more than 8k (which is twice the
  suggested size of an IBB chunk) but we don't know if people will
  typically send images that are smaller or larger than 8k -- I think
  smaller but I don't know that yet.
 
  
  Might it be advertised by the client/server? And rejected if the
  other party tries to send a bigger one (just to force them to fix
  it)?
 
 I think that's handled at a different layer (e.g., rate limiting).
 But we do need to define better handling for stanzas that are too
 large (there is a proto-XEP about it but the Council didn't accept it
 and I never incorporated their feedback).
 

Hmm. I know that people at jabbim.cz use a roster-renaming utility (for
icq transport). They wait a long time between stanzas and the renaming
can often takes more than just several minutes.

  We send data once for every session (and omit for subsequent
  messages).
  In this case it's important to define session (see rfc321bis). Is
  it a chat session, a presence session, or something else?
 
  
  Exactly.
  
  This has two important implications:
 
  1) The other entity may or may not cache it for the session and
  reuse it. That is good.
 
  2) If an entity keeps the data for a longer time (e.g. for weeks
  or even permanently), this cache will never be used. As the
  sending entity always resends the data for a new session.
 
  What I

Re: [Standards] ICE/UDP and NAT

2008-07-30 Thread Pavel Simerda
On Wed, 30 Jul 2008 17:21:43 +0200
Sylvain Mundialco [EMAIL PROTECTED] wrote:

 Hi.
 
 Can I have more clarity on these:
 
 We are implementing jingle and all is going all but the configuration
 NAT/Firewall for both peer is not working. I'm thinking to use relayed
 candidate but I know that there is a way of punching hole in
 Nat/Firewall. 
 
 1) Is it the possible to use the UDP firewall punching hole technique
 of waiting the NAT to map the inbound and outbound IP to allow
 comunication

This is more of a question for your network/firewall administrator, not
for XMPP people. For the XMPP part, refer to *XEP-0176: Jingle ICE-UDP
Transport Method*

 2) when should we use relay candidate in jingle negotiation.  

You should generally avoid it.

 3) how with jingle can we get a usable pair of candidates behind
 firewall and NAT.

I believe it's answered in (1).

 Sylvain.


-- 

Web: http://www.pavlix.net/
Jabber  Mail: pavlix(at)pavlix.net
OpenID: pavlix.net


  1   2   >