Pardon me if I'm missing something obvious here, but couldn't one just
use either XMPP or Simple for presence, associate your "server name"
with a Jabber/Simple ID, and automatically have your "server" findable
via these general presence protocols? Why isn't that a reasonable
approach to peer to peer in a NAT world? I would contend that it's
even better in a mobile world -- your laptop might change IP address a
dozen times per day, but if it keeps reconnecting with your presence
server you could base a stable "host" identity on the IM ID to enable
peer to peer applications, couldn't you?