Gateway User Address Creation/Resolution

Jeremie Miller

The Jabber.org Project

01/25/2001

NOTE: See JEP-0100 for more complete documentation of this protocol (and of gateway protocols in general). --stpeter


jabber:iq:gateway

When a user goes to add a contact to their roster, that contact may exist on another network via a gateway (transport). Often the user only knows the identity of the contact on that other network, and it is the responsibility of the client to transform that identity into a jid. For example, an AOL screen name might be "Foo Bar", and the client would have to translate that to FooBar@aim.jabber.org. This namespace provides a simple way for the gateway to provide assistance in prompting the user for the right information, as well as translating the subsequent identity into the proper jid.

This involves a simple IQ namespace, jabber:iq:gateway, which is sent to the gateway in question. The results of the get are used for the GUI strings and user entry instructions. The set includes what the user entered and will return the correct jid for subsequent actions.

Sent:
  <iq type='get' to='aim.jabber.org'>
    <query xmlns='jabber:iq:gateway'/>
  </iq>

Received:
  <iq type='result' from='aim.jabber.org'>
    <query xmlns='jabber:iq:gateway'>
      <desc>
            Please enter the AOL Screen Name of the
            person you would like to contact.
      </desc>
      <prompt>Screen Name</prompt>
    </query>
  </iq>

Sent:
  <iq type='set' to='aim.jabber.org'>
    <query xmlns='jabber:iq:gateway'>
        <prompt>Foo Bar</prompt>
    </query>
  </iq>

Received:
  <iq type='result' from='aim.jabber.org'>
    <query xmlns='jabber:iq:gateway'>
      <jid>FooBar@aim.jabber.org</jid>
    </query>
  </iq>