Mucking about with Mumble Authenticators
I really don’t care too much for the name “authenticators” as in my particular case it’s not really a good name yet for what I’m doing (there’s no authentication callbacks going on at all), but I believe it’s the commonly-accepted name for Ice-powered callback scripts. If you’ve not messed about with Murmur and Ice before, it’s immensely powerful.
Basically you can run a separate script almost like a module for your Murmur server, and have it trap various events that go on, and then the script can react to them. You can do it in your favorite language as long as it has Ice bindings - C++, Python, PHP, Ruby and Java are all supported (and I might have missed a couple). I’m doing it in Python, because while I’m pretty terrible at Python, and I’m more comfortable with PHP, realistically I’m equally terrible at PHP and I think Python is more elegant all in all (though whitespace having syntactic meaning causes me no end of nerd rage).
We had a client approach us a while back about an idea for a site she had, and I started messing around to see whether it was doable. Using the callbacks, I’ve discovered all manner of neat stuff that’s possible. When asking for an example of setting the ACLs up in Python, a guy on IRC handed me a copy of a complete authenticator for EVE Online, which dynamically creates channels and groups based on the corporation you’re in.
We’ve been messing around with the contextual creation of channels, which would be great for a gaming community or maybe voice chat for a free online dating site (especially when coupled with an in-browser client that a few people have been working on, but thus far nothing is usable). MumbleDog (and I, personally) took ownership of a patch a while back to make callbacks for text messages, allowing you to write server-side IRC-style bots and let you do text message control over the server - again, all based off the ACLs that are in place.
I don’t know whether the client is going to go ahead with their project or not, but even if they don’t I had a lot of fun and learned a lot (and stumbled upon a few minor bugs in Murmur we can fix later on) and working on my Python skills is always a plus.