[jdev] Gaim and gnomemeeting using jabber
Richard Dobson
richard at dobson-i.net
Tue Dec 7 03:48:58 CST 2004
> Notice the above is one single sentence. Let me try to restate it
> differently to see if my poor brain's parser did a decent job with it:
Sorry about that
> Before JEP-0115 was written, a connecting client would send a simple
> presence message. That message would trigger the sending of disco
> requests from all of its contacts, requests that it would have to handle
> itself.
Yup
> Now that JEP-0115 is there, a connecting client sends a more complex
> presence message, where it states its capabilities. And even when the
> contacts need more information on some piece, the server has a cache
> that enables it to handle the load more easily.
No the other clients (so they only ever request info about a particular
combination once) store caches of what the capabilities mean (the server
does not normally and normally just acts as a simple router) and if they do
not have it cached they will send a disco#info request to the client (not
server) to find out what a particular cap string means.
> That means that to make a client able to do voip, I would have to modify
> it to:
> * send voip capability declarations in presence ;
Yup, as an extra cap in the string like voip, e.g.:
<presence>
<c xmlns='http://jabber.org/protocol/caps'
node='http://exodus.jabberstudio.org/caps'
ver='0.9'
ext='ftrans xhtml voip'/>
</presence>
> * handle disco requests about the voip (say callto and h323 are
> supported, for example) ;
Yup, you have two ways of expressing which types of voip you support, either
having these as disco features, or as I have previously suggested use
feature negotiation, both methods are correct and its up to you which you
use (disco features would probably be easier tho).
> * recognize oob voip uris and trigger a voip call (receive the h323
> adress of the im-caller -- which it sends because it knows I can do
> that) ;
Yup, I do suggest you use jabber:iq:oob tho and not jabber:x:oob, as using
jabber:iq:oob will allow you to detect if the other user has either accepted
or rejected the call so you will be able to perform the appropriate actions,
e.g. close down the voip client if they rejected the call, without the user
having to somehow guess that the other user has rejected the call.
> * recognize the voip capability declarations in others' presence.
Yup, by implementing JEP-0030 and JEP-0115
> Do I get it at least partially correct?
Yup you seem to have most of the gist of it.
Richard
More information about the JDev
mailing list