Passing client capability on logon

Greetings

Can one pass feature properties like the operating system, devices attached to the system during logon.

-Rajesh

Rajesh,

I’'m not sure I understand your inquiry. What are you trying to accomplish? To whom do you want to pass the operating system and devices attached? Do you want to pass this information to the server? Are you trying to discover the capabilities of a client (JEP-115 http://www.jabber.org/jeps/jep-0115.html)?

The login process follows the XMPP spec which AFAIK doesn’'t allow you to send any other piece of information. You can only send your username, pass and resource.

Regards,

– Gato

Gato

Say I logon to a Jabber server from a Linux client, could I pass this information to the Jabber server and also to contacts ?

This may help me on a file download where I could receive a binary for Linux and not one for Windows.

Or should I look at the Disco capabilities ?

-Rajesh

Rajesh,

This may help me on a file download where I could

receive a binary for Linux and not one for Windows.

Ok, so you need the OS info to decide which file to transfer. BTW, which transfer method are you planning to use (SOCKS5 Bytestreams, In-Band Bytestreams or Out of Band Data)? As you may know currently Smack does not implement any of the above transfer methods.

Or should I look at the Disco capabilities ?

IMHO, the best way to go is to use disco

between the clients to discover whether the client supports transfers or not, if the client supports a transfer method then you could use feature negotiation to query the client which OS is he/she using and get any information you need to decide which file you need to transmit.

Smack currently supports disco but feature negotiation and Data Forms are not yet supported.

If you are going to use Smack at both clients and your clients will be operated by an automatic application (not a human) then you could use this workaround. You could send regular messages with coded text which the other party could decode and interpret and therefore you could build a language that the clients could use to agree on the file to transmit. Just another idea…

Regards,

– Gato

Gato,

I am doing the file transfer using a simple IBB (not JEP based). Since my endpoints are Smack based I’'m using a chunking logic to send and assemble the file over message Packets.

I understand that one can implement a lot of stuff if endpoints are Smack based but we may stray far away from the XMPP standards - am I right about this ?

-Rajesh

Rajesh,

I understand that one can implement a lot of stuff if

endpoints are Smack based but we may stray far away

from the XMPP standards - am I right about this ?

Yep, staying away from XMPP standards is definitely a bad thing to do but I wanted to give you a workaround so you won’‘t be trapped in JEPs that Smack currently doesn’'t implement. IMHO, the best way to go is to use disco and feature negotiation.

Regards,

– Gato