Automatically configure proxy65 settings
Gajim allows sending files over proxy65, but user must first configure it in account configurations and enable in Account --> General --> Allow file transfers using proxy.
I think that all this process should be simple as possible and currently is not. Allow user to configure proxy is redundant. I think that Gajim should read proxy65 settings from server and use it.
Scenario: User select file to send it directly not by http_upload. User check which method is supported by second client, second client answer that support IBB and proxy65. Gajim choose proxy65.
Gajim send an to a user server and check that proxy65 is supported:
<iq from='requester@example.com/foo' id='pi2b15fv' to='example.com' type='get'> <query xmlns='http://jabber.org/protocol/disco#items'/> </iq>
Server replies to a request:
<iq from='example.com' id='pi2b15fv' to='requester@example.com/foo' type='result'> <query xmlns='http://jabber.org/protocol/disco#items'> <item jid='chatrooms.example.com' name='Chatroom Service'/> <item jid='news.example.com' name='News Feeds'/> <item jid='streamer.example.com' name='File Transfer Relay'/> </query> </iq>
streamer.example.com is a bytestreams proxy.
Gajim send a request to that item for more informations (host, port):
<iq from='requester@example.com/foo' id='uj2c15z9' to='streamer.example.com' type='get'> <query xmlns='http://jabber.org/protocol/bytestreams'/> </iq>
Server answer to that request:
<iq from='streamer.example.com' id='uj2c15z9' to='requester@example.com/foo' type='result'> <query xmlns='http://jabber.org/protocol/bytestreams'> <streamhost host='24.24.24.1' jid='streamer.example.com' port='7625'/> </query> </iq>
Now Gajim know host and the ip address of the proxy65 and use it to transfer file. All process of sending file is automated - user does not have to set proxy server configurations in Gajim.