[jdev] Gaim and gnomemeeting using jabber

Richard Dobson richard at dobson-i.net
Wed Dec 1 09:34:34 CST 2004


Sorry for this big email everyone

> Notice that voip-presence and im-presence are not entirely unrelated:
> while it is false to assume that voip-away implies im-away, being
> im-away certainly means you're voip-away.

No but its unrelated enough to not be correct as an extension to IM 
presence, as I and others have repeatedly said.

> I really think that:
> * using presence isn't as stupid as you think ;

Its not just me that thinks it, and as you are new to jabber I would suggest 
you listen to the people that have been working with it and developing with 
it for a very long time (I myself have been working with jabber stuff since 
before there was even a JSF).

> * using jabber:x:oob to send the uri isn't against the standard ;

No using jabber:x:oob is the correct thing to send the URI in, but you are 
using jabber:x:oob in a way that is wrong and will potensially cause serious 
problems with backwards compatibility, sending a voip-uri in jabber:x:oob is 
asking the recieving client to execute that URI and pass it right to the 
appropriate application on the users system, which will likely cause them to 
start a voip call, trying to use this as a way to say you are in a voip call 
is simply wrong and against the spec.

> * it works _now_, and not in 10 years when people will have finished
> debatting the issue ;

It wont work now due to the problems outlined above.

> * it makes a very simple patch that has a chance to get upstream now ;

It might be simple but it is still wrong.

> Bad. You assume that deciding if the call is done or not is jabber's
> problem: it's not. There's a voip-client there: it will ask the user for
> confirmation. When someone has your voip-uri, you still have your word
> to say.
>
> Besides, aren't the presence packets only sent to contacts for which I
> already said they were authorized to know about me?

Not always no, if for example you are in a chatroom the people in that room 
will get your presence, and if you are adding your extension to presence 
lots of people will know what your machines IP etc is, which is very bad, 
jabber is designed in such a way that normally your IP address will not be 
revealed to all and sundry, also when chatting to people you and adding them 
to your contacts it doesnt mean you necessarily trust them enough to reveal 
your ip address uncessarily, what about DDos attacks or the various buffer 
overflow attacks that can be performed against a users machine once someone 
has their IP? The VoIP software you speak of will do nothing to protect the 
user from that.

> No problem with sending the uri... the voip client isn't a web server:
> it doesn't serve each and every request blindly. Please let the voip
> client do its job.

There are big security problems with just broadcasting the voip-uri as 
detailed above that the voip client will not protect you against.

> Hmmm... as far as I remember, I had to allow my contacts to see me, and
> they had to decide they wanted to see me... so telling them "I'm there"
> isn't polluting the network, it's using it.

But you are not just telling them you are there (thats what the standard IM 
presence already does on its own), you are telling them extra information on 
top of that which most will not want or need to know, thus the pollution, 
its far better if only clients that want to receive said extra information 
receive it, thus the need to use pubsub.

> Not completely separately. There's an implication, but not an
> equivalence, between voip-presence and im-presence.

If they are not equal then it doesnt belong as an extension to IM presence, 
its as simple as that really.

> And yes, it could be nice to be able to separate:
> * advertize voip is possible ;
> * advertize the voip-uri ;
> * advertize the voip-presence.
>
> BUT I would like to do as much as possible *NOW* and not in ten years.

Rushing through things just because you are impatient is never a good idea, 
start working with us rather than fighting us and you will find this will go 
much faster.

There are several separate tasks you seem to be trying to bunch together 
here and in doing so you are not doing it the right way, the different tasks 
I can see are as follows:

1) advertise a client is voip capable (this should be done using JEP-0030 
and JEP-0115).
2) initiate a chat with another voip capable client (this should be done 
using JEP-0020, then JEP-0066).
3) advertise your voip-presence as something separate from the normal 
im-presence (there is nothing currently to do this, but as has been said a 
protocol based on pubsub is the best solution to this task).

So overall you can do most of what you are trying to do now and right away 
without having to wait for anything, it is only task 3 that needs a protocol 
developed for it, and IMO step 3 is the least needed part of this and isnt 
really even needed to get voip calling working in jabber clients, if I were 
you I would just forget about task 3 for the moment and leave that for 
sometime in the future, it really is not needed as you can use the 
im-presence to notify other people you are on the phone (IMO you should be 
just doing it this way anyway).

> And as I already pointed out: I don't really want to _work on_ jabber,
> but merely _use_ jabber. I would like some simple, standard and
> _current_ mechanism to allow to call jabber-im contacts. Then provide a
> patch for gaim (must be simple or they won't accept it), then for
> gossip, then for ...

Well if your "simple" patch is not following the standards I dont see them 
even accepting that, if all you really want to do is allow people to call 
each other using their im clients then you just need to implement Tasks 1 
and 2 outlined above and just forget about Task 3 (which IMO is not needed 
anyway).

> For the moment, most of the discussion was:
> * uh, are you sure it's presence?
> * no, you really should read all of the existing and obsolete protocols,
> then propose one, fix it, get it through the standardization process.
> * really, your remote contact should be asked if he's interested in
> knowing about voip, then if he would accept calls from you, then for
> each call if really he means he wants to get it through!
>
> The goal is to have something that people will use! And will use _now_!

Well im afraid if you want it to become a standard that people will use then 
you will have to do it properly and not just try to rush through something 
which I would class as a "hack", and in this case a "hack" that will very 
likely break stuff and expose users to some potensially serious security 
problems that they would not otherwise be exposed to. Your best solution if 
you really do want to get something working now without any problems is for 
you to just implement Tasks 1 and 2 for which there already exists well 
established protocols as outlined above and just forget about Task 3 for the 
moment.

Richard





More information about the JDev mailing list