[rdfweb-dev] IM URIs

Bill Kearney wkearney99 at hotmail.com
Sat Aug 2 21:26:34 UTC 2003

> If I understand where you're going correctly, the problem is that
> knowing a person's IM ID and what service they use, may not be enough.
> You may also need to know a specific server to contact.

More or less, the protocol in some situations, tells you how and what to connect
with.  But for some services, like jabber, sip, irc and others, having the
protocol alone won't help, you need to know there's some 'mechanism' you're
supposed to use to establish the connection.

> For most services, knowing two of those three pieces is enough. For
> example knowing that that I use ICQ and my UIN on that service is
> 1223172 is enough to contact me. Knowing that I use Yahoo! IM and that
> my YIM ID is EMCampbell3 is enough. Similarly for MSN and AIM. If you
> know the central service and the ID, you're set.

Excepting, of course, the same protocol used by MSN is available for independent
use.  Likewise it seems reasonably likely some of those protocols will, at some
point, make allowances for alternative points of connection.  If it's geared in
as an optional element then we're future proof.

> Jabber is decentralized, but the server to contact is part of the ID.
> Knowing that I use Jabber/XMPP, and that my JID is dougal at gunters.org is
> enough, because the Jabber protocol knows to contact the server
> 'gunters.org'.

Excepting, of course, the issues with DNS setup.  Correct me if I'm wrong but
neither jabber nor the MS service have made effective use of DNS records to
handle the resolution of the domain to the actual gateway.

> But knowing that I use IRC and that my nick is dougal is
> not, because you have to know the particular IRC network that I'm using,
> and any number of other people could be using the same nick at any given
> time.

That's an even more complex problem, good catch.

> The question of separate networks using the same protocol shouldn't be
> difficult to handle, generally. As long as we have some standard,
> enumerated list of protocols.

Yep, my basic point.

> IM, is unfortunately going to be problematic (and does IRC really enter
> into a discussion of IM?), because there is such disparity between the
> different systems. It's not like email or web URLs, where there *is* a
> standard set of protocols.
> So, what must be identified?
>   Service Protocol
>   User Identifier
>   Service hostname (dependent on the type of service)
> This implies that we'd almost certainly need some pre-defined, standard,
> required "header" to identify the service protocol. You'd also need to
> have a reliable "host to service" mapping for the "standard" centralized
> services (e.g. "ICQ == icq.com", "MSN == msn.com", etc.) Then, for the
> case of a network using an existing protocol, but separately from the
> original service, you might get something like:
>   im:dougal at gunters.org?proto=MSN
> Which would mean that I could be contacted via server "gunters.org"
> using the MSN protocol.

Mmmm, I'm not sure that's correct.  According to MS the protocol would depend on
a DNS record being resolvable in exactly the same fashion as an MX record.  Thus
a DNS lookup against 'gunters.org' would have to return the appropriate record
pointing to the actual FQDN of the host acting as the gateway.

> But what if I use the central MSN service with an ID of
> "dougal at gunters.org"? Maybe:
>   im:dougal%gunters.org at msn.com

Yikes, flashbacks of bang path routing and uucp!

Heh, what those services did for things like routing to BitNET and the like
might be worth considering here.

I'd wonder, what about marking up the access username and password?  Expecting,
of course, that this data is not expected to be public.  But using the format
for local storage of profile info, perhaps for a daemon, bot or other agent,
doesn't seem like an unlikely premise.

> The host/service mapping would pick up that "msn.com" implies the
> centralized MSN service, and map the "dougal%gunters.org" to
> "dougal at gunters.org".
> I didn't read draft closely enough to be sure that this would be
> allowed.  And I'm not sure if I like it anyhow, as it's quite ugly and
> sure to confuse people.

And very likely to risk the 'pot shots' from the 'simple XML hecklers'.

> Perhaps something like this would be simpler:
>   "im:" user-part "@" host-part ["/" std-svc-proto ["/" contact-host]]
> Or, to translate some of the above examples:
>   im:1223172 at icq.com
>   im:EMCampbell3 at yahoo.com
>   im:dougal at gunters.org/XMPP  (jabber/xmpp: contact host 'gunters.org')
>   im:dougal at gunters.org/MSN   (contact via central MSN service)
>   im:dougal at gunters.org/MSN/example.com (MSN protocol, specific host)
>   im:dougal at irc.freenode.org/IRC?channels=wordpress,mozdev,linux (???)
> If necessary, the optional query-string stuff could be tacked on, as in
> the last example.
> I've never really gotten into IRC much (I abandoned BITNET RELAY chat
> for MUDs many years ago, and IRC lost out to MUDs for the same reasons),
> so I'm not sure if there might be a better way to specify IRC contacts,
> but there doesn't seem to be, since you don't register a unique id that
> stays with you (again, IRC has little in common with most IM networks).

Yeah, IRC for purposes of direct user contact is likely to be plagued by endless
debates about it's accuracy.  I'd only expect to be able to use it for
discovering 'where you hang out' as opposed to actually expecting it to resolve
directly to you.  However, some IRC servers have controlled access and /could/
possibly allow for this.  The majority won't.

-Bill Kearney

More information about the foaf-dev mailing list