It acts as a server connection for other XMPP-compliant servers to connect to. This means that any user on the MOO can use MOO-XMPP to send messages to other XMPP users or register with XMPP gateways.
The MOO-XMPP service uses a couple extensions from the "basic" LambdaMOO Server. It uses the WAIF extensions written by Ben Jackson, current LambdaMOO server maintainer, and Expat binding for MOO written by Ken Fox.
|Last Activity (XEP-0012)||Yes|
|Service Discovery (XEP-0030)||Partial|
|Gateway Interaction (XEP-0100)||Yes2|
The MOO core MOO-XMPP was designed around was a Waterpoint-style JHCore extraction. If you are using a different core then you may be lacking the prerequisite objects. If you are, contact me and I'll try to post more object dumps here.
|WAIF||Download the WAIF branch from GitHub (view project) that contains the base upon which I build.||https://github.com/xythian/wp-lambdamoo|
|XML||Download Ken Fox's Expat binding for MOO and install that.||https://www.xythian.com/moo/expat-binding/|
Dictionary WAIFs were originally coded by Jay Carlson as an extension to Ben Jackson's WAIF work. The dictionary WAIFs basically add a way for
is a string or number.index
Object code: dict.zip
;$waif = _
;$dict = _
;$dict._waif_class = _
;_.utils = $dict
;$dict.empty = $dict:new()
These XML objects make a standard interface for interaction with the Expat bindings by Ken Fox.
Object code xml.zip
@register xml on $local
;$local.xml.node = _
Ben Jackson wrote an in-MOO resolver using WAIFs. XMPP utilizes this to support SRV records.
Object code: dns.zip
@register resolver on $local
;$local.resolver.header = _
;$local.resolver.header.query = _
;$local.resolver.header.resource = _
IP address for your local DNS server;$local.resolver.server = "
;$local.resolver.mutex = _:new()
Here is the heart of the XMPP system. It is a very complicated installation process simply because of the nature of MOO. These instructions are a work in progress right now.
@register crypto on $local
@register image_utils on $local
@register jabber on $local
must be wizardly.:notify_raw
;$local.jabber.handler = _