There’s nothing like an impending demo with the company CEO to spark innovation. Like many of you, we at Sun struggle with firewall issues. While we appreciate the benefit of a corporate firewall, the internal vs. external network can be quite problematic for those of us building and trying to use communications software. For the demo next week, the problem we are faced with is that some people attending will be Sun internal and a few will be external. That means that we can’t run the demo on our intranet, because the external people are not allowed to connect to it. We therefore set up a Wonderland server on the external internet. This works great for the external people, but unfortunately for those of us sitting behind the Sun corporate firewall, audio does not work. Our corporate IT policy prohibits us from opening the UDP ports we need to transmit the audio. We’re petitioning to have the ports open, but the chances of getting permission to do this before the demo are slim. Additionally, this approach doesn’t help anyone else with a similar firewall issue.
While we are still investigating a viable long-term solution to this firewall crossing problem, we did come up with a short-term solution that should alleviate not only this problem but also a number of others. Although you don’t necessarily think of being "in a call" when you connect to Wonderland using audio, you are, in fact, using a softphone. Since jVoiceBridge (the server-side audio component Wonderland uses for audio) supports both regular phones and softphones, we thought we might be able to allow you to connect to Wonderland using a regular telephone. Thanks to some quick work on Joe’s part, that’s exactly what you can now do. Joe added a feature in the Advanced portion of the Login dialog to enter a land-line or cell phone number.
After you fill in this dialog and log in, Wonderland calls you on the specified telephone. You’ll need to press the 1 key on your telephone keypad for the call to connect to Wonderland. This ensures that a human has answered the phone rather than someone’s voice mail or fax machine. Once connected, you can use Wonderland as you normally would. Even adjusting other people’s volumes works like a charm.
Of course you don’t have stereo audio with this scheme, but at least you have audio! What’s cool is that everyone in the world still hears your audio spatialized properly. That is, your voice sounds like it’s coming from your avatar. If you have ever used Second Life with a regular audio conference call or with Skype, you know how disconcerting it can be to have a mis-match between the audio and the visuals. It causes a real cognitive dissonance which seriously detracts from your sense of being present in the world. Additionally, with a standard conference call, you can’t walk around and have different conversations with different people. With jVoiceBridge, you can talk to other avatars connected using telephones as well as to avatars connected using the softphone.
As I mentioned, this scheme also solves another problem. If a person is having any trouble with audio – lack of a headset, difficulty configuring audio, etc. – they can simply log on using the telephone instead. If they manage to work out their audio problem, they can go to the Tools menu and select Audio –> Reconnect Softphone. Now the connection will be through the softphone and the telephone connection will terminate. And if a user realizes that audio isn’t working after logging in, there is now a menu command (Tools –> Audio –> Transfer Call) that allows you to transfer the live call to a different device:
As with the login dialog, you simply enter a telephone number, click "Dial," and Wonderland will call you. You can also use this handy feature if you’re in the middle of conversation with someone in Wonderland and have to leave your desk, for example to drive home. Transfer the call to your cell phone, and continue on with your conversation. For extra credit, Joe is thinking about automatically turning your avatar into an orb when you exit the client on your computer, but remain connected on the phone. This way, other people connected to the world will know you can no longer see the visuals or navigate on your own. If the conversation moves to a new location, someone in world will be able to carry your orb along.
For any of this to work, your Wonderland server has to be connected to a gateway to the real phone system. For intranet-only use, you can probably connect to your organization’s PBX. Many organizations already have a VoIP to PBX gateway in place. But if the Wonderland server is on the external internet, you can use a commercial service. Joe found a fairly inexpensive one called Junction Networks that has been working quite well for us so far. He’s written some preliminary documentation on the wiki about how to set up gateways, virtual phones, and the connection to Junction Networks:
Joe is now working on a security scheme for virtual in-world phones to prevent unauthorized long distance calling. I’ll update you on that when he has it all working.
Wish us luck with the demo next week. At least now we’ll be able to hear and talk to the executives if they ask us any questions!