[standards-jig] XMPP compatibility discovery

Iain Shigeoka iain at jivesoftware.com
Wed May 21 17:22:58 UTC 2003


On Wednesday, May 21, 2003, at 09:42 US/Pacific, Jacek Konieczny wrote:

> On Wed, May 21, 2003 at 08:42:54AM -0700, Iain Shigeoka wrote:
>> On 5/21/03 0:18, "Jacek Konieczny" <jajcus at bnet.pl> wrote:
>>
>>> But things get more complicated for server application. They should 
>>> send
>>> new error messages to XMPP compliant clients, but should not do that 
>>> to
>>> old Jabber clients (which will be still popular for some time). Of
>>> course server could send something like this:
>>
>> Once you know the stream is xmpp 1.0, you should send xmpp error 
>> messages
>> instead of jabber ones. The lack of the version attribute indicates 
>> an old
>> jabber client and should be sent the old jabber error packets.
>
> I am writting a transport gateway, which behaves like server entity, 
> but
> is not directly connected to client. Also remotes server may be able to
> generate both types of errors, but they won't know if client they talk
> too understands XMPP errors.

Yup. That's why I think the only reliable way to do it is to have the 
server doing the final delivery check error packets, and if it doesn't 
match, map it as best as possible to the correct format. Servers have 
to do this for namespaces anyhow.

>> The hard part for the server (or the spec in general) is deciding how 
>> to
>> handle error messages between clients on different versions. E.g. Is 
>> it the
>> server's responsibility to read error messages and translate them 
>> between
>> streams if one client is old jabber, and the other is xmpp.
>
> Old errors are not very well translatable to the new style. It is 
> easier
> in the other way, but this requires the server the client is connected
> to to be XMPP compliant and able to translate error stanzas. We don't
> even have a working XMPP server now, and this limits developement of 
> XMPP
> clients and services.

Yup. however, I think the server has to be the one doing it unless we 
want to put version attributes on all packets (since all packets can 
have errors). I think once the server's catch up, we can lean on them 
to do the translations as they're going to the only entity that knows 
what everyone understands on the network.

-iain




More information about the Standards mailing list