55 out of 66 rated this helpful - Rate this topic

Messenger XMPP reference

The Windows Live Messenger Extensible Messaging and Presence Protocol (XMPP) service supports only the following extensions, as defined by the XMPP Standards Foundation. Partial support for some extensions, as well as unique usage notes, are listed here. For more info, see XMPP Standards Foundation - XMPP Extensions.

  • RFC6120: XMPP: Core
  • RFC6121: XMPP: Instant Messaging and Presence. Adding a contact is the only supported modifying operation; no other operations that modify the roster are supported. Chat is the only supported message stanza type. Presence probes are not supported.

    Note  Applications should cache most recent presence for buddies and should avoid signing out and signing in again as a way to refresh presence.

  • XEP-0054: vcard-temp. The Messenger XMPP service supports fetching vCards, but doesn't support updating vCards.
  • XEP-0136: Message Archiving. Apps that implement this extension can request a certain number of instant messages that were previously exchanged between two users. Apps can currently request up to the last 10 instant messages, but this number is subject to change. Availability of these archived instant messages depends on whether at least one of the two users has the Automatically keep a history of my conversations setting turned on in Messenger. If no archived instant messages are available, the Messenger service returns an empty response.

    Note  In requests for archived instant messages, the Messenger service ignores user endpoint requests, paging requests, and any uses of the after element.

  • XEP-0172: User Nickname. Apps can implement this extension to provide an improved user experience when showing pending contact invitations to the user. By default, contact invitations in XMPP are incoming subscriptions from users who aren't in the roster; these invitations provide only the pending contact's Jabber ID (JID), which doesn't show a display name. By implementing this extension, apps can retrieve the pending contact's display name so that Messenger users have a better idea of who the corresponding pending invitation is from. Note that it isn't necessary to support this extension for existing contacts, because their display names are available through their vCards. This extension is useful for pending contacts, because vCards are not available until after both parties have become contacts.
  • XEP-0203: Delayed Delivery

Additional usage notes

  • Adding Messenger buddies: To add a new Messenger buddy to the XMPP user's contact list, your app must add the buddy by using his or her Jabber ID (JID) and not by his or her Microsoft account ID. If your app does not add a buddy by using his or her JID, your app won't be able to display the buddy's presence info.

    Here's an example of submitting a Microsoft account ID to the Messenger XMPP service and retrieving the corresponding JID.

    < <iq from='john@contoso.com' to='mary@contoso.com' type='get' id='id1'>
        <getjid xmlns='jidlookup'></getjid>
    </iq>
    
    > <iq from='john@contoso.com' to='mary@contoso.com' type='result' id='id1'>
        <getjid xmlns='jidlookup'>
            <jid>12345@messenger.live.com</jid>
        </getjid>
    </iq>
    

    To find examples of how you can do this in your apps, see XMPP code examples.

 

 

Build date: 4/26/2012

Did you find this helpful?
(1500 characters remaining)