Using Apple iChat with Wide-Area DNS Service Discovery (DNS-SD)

Apple's Instant Messaging client, iChat, includes support for direct peer-to-peer chatting without communicating via a server, using an XMPP-like communication protocol.

This mode, called "Bonjour Chat" in iChat, uses DNS-SD to discover peers with which to populate the Bonjour buddy list. This means that, unlike a conventional buddy list which you manage yourself, the Bonjour window gives you an automatically-created buddy list which can loosely be described as something like "people near me".

By default, iChat specifies a domain of "local" when browsing for peers, which means it only finds peers on the local link which can be discovered using link-local Multicast DNS.

However, Wide-Area DNS-SD makes it is possible also to discover services beyond the local link using the same DNS-SD APIs. To have iChat take advantage of this, enter the following commands in a Terminal window:

defaults write com.apple.iChat.SubNet UseGlobalDomain -bool YES
killall iChatAgent

Provided you have Wide-Area DNS-SD configured properly on your machine and working correctly, iChat will now register and browse in your configured default registration domain(s) in addition to "local". Your Bonjour Chat buddy list will now show all participants registered in those domains, even if the actual participants themselves are on the other side of the planet.

Note: As a simple security precaution, iChat will only accept incoming chat requests from peers it has itself discovered. What this means in practical terms is that in order to establish a working peer-to-peer chat session, both iChat clients need to be registered in the same domain.


Page maintained by Stuart Cheshire