The software we used to run the interactions is called Asterisk. Asterisk itself is free, if you know how to set it up yourself. I didn't, but I spent some time learning, as I'm a quick learner when it comes to technical things. There are companies out there that can set up an installation for you if you prefer, however, and they'll normally charge a fair amount.
We ran Asterisk on a dedicated server from ServerBeach (which also hosted the locator puzzle). At this point, we had a server which could respond to VoIP calls, but with no means of connecting to the telephone network (PSTN).
To do this, we used a DID provider. "DID" stands for "Direct Inward Dialling", and in this case, DID as a noun refers to a telephone number on the main telephone network. We then told voip.ms to forward any calls received on these numbers to our Asterisk server via the Internet, which would then run the appropriate scripts according to which number had been dialled.
The DID provider we used was voip.ms. It's certainly not the only provider, but it was one which looked to provide a good quality service for a reasonable cost. We were right; in total, less than $50.00 was used with voip.ms for all five numbers, including pre-game testing, and once configured properly, we had no issues with the quality of the phone calls. It's certainly a service I'd recommend.
The actual phone interactions (or, as Asterisk calls them, "dialplans") were written in an Asterisk-specific format that's almost akin to a programming language, but not quite. To give an example, here's what the dialplan for Kenny Mann's number (used in the Sherlock/Tara storyline) looked like:
- Code: Select all
[sherlock-kenny-inbound]
exten => s,1,NoOp()
same => n,Answer()
same => n,Wait(1.5)
same => n,Background(xarg/kenny-greeting,m)
same => n(full),Wait(0.5)
same => n,Playback(xarg/kenny-vm-full)
same => n,Wait(1)
same => n,Hangup()
exten => #,1,Goto(s,full)
This was the simplest dialplan we used in the whole game. When a call was received, it answered the call, waited 1.5 seconds, then played Kenny's voicemail greeting. After doing that, it then waited 0.5 seconds and played a message to the effect of "This voicemail is full, please try again later." It then waited 1 more second, and hung up. If you pressed the # key while the greeting was playing, it would skip playing the rest of the greeting.
After coding that, transferring the necessary audio to the server, and setting it up to receive calls from the DID, you then have a reasonably accurate-sounding fake "full voicemail". In this case, of course, all that you needed from the interaction was in the greeting itself.
Every phone number that was used in the course of this ARG was done in a similar way. Joan Lawson's voicemail, in particular, was never intended to be recorded onto - there wasn't any code for that to work. Its sole purpose for existing was so that it could be 'hacked into'.
Long John's number was conceptually similar to Kenny's in that all you needed was in the voicemail greeting. However, I decided to do the code necessary to allow this one to record voicemails because I felt it could potentially be a way we could hear from people in the ARG - that it would be a conduit for the players to talk with us GMs privately. Obviously, though, it didn't turn out that way; it was assumed (quite fairly, IMO) that the voicemail might fill up if too many things were recorded, so in the end we got very little usage out of that.
(Side note: Because of the nature of having our server answering the calls instead of a normal answering machine, it was much easier to get access to the voicemails themselves on our end. I set it up so that each new voicemail would be recorded into a WAV file, which would automatically be linked on an internal web page. Every GM could then download the messages at will and listen to them. The voicemail would never have become full, despite your fears. Well, unless you decided to leave thousands of messages, but...)
I'm going to see if I can gather up all the recordings we did for the phone interactions and release them to you, because they're pretty interesting. (Note: We didn't record any of the calls themselves, other than any voicemail recordings, and I won't be releasing those except with permission. I'm just referring to the recordings *we* did, the "Press 1 to..." stuff and so on.)
One more thing. Remember the phone interaction that you had with Mr A's agent who gave away the location of the Zanadu Comics wall piece after you called him repeatedly? Mr A wasn't happy about him doing that. Had you called again about a day after the relevant information from it had been posted on the forums, you'd have heard a message from Mr A:
Mr Administrator wrote:WE HAVE SEIZED THIS LINE TO PREVENT FURTHER LEAKS OF INFORMATION. IT HAS COME TO OUR ATTENTION THAT OUR AGENTS ARE DEVELOPING INEXCUSABLE CASES OF LOOSE LIPS. THIS MUST BE STOPPED. END TRANSMISSION.