Firewalls and Phones

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.

Audio portion of Advanced section of Login dialog

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:

Transfer Call Dialog

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:

http://wiki.java.net/bin/view/Javadesktop/ProjectWonderlandPhoneSetup and

http://wiki.java.net/bin/view/Communications/JVoiceBridge#CONFIGURING_a_SIP_VoIP_to_PSTN_G

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!

About these ads

4 Responses to Firewalls and Phones

  1. Robert says:

    Have you considered using a firewall that supports VoIP? For example, I’m using an Ingate firewall and my SIP calls work without having to manually open ports in the firewall or configuring my phone in any special way. The firewall opens ports dynamically when a SIP call is made and ports are closed when call ends. In case of NAT the firewall also handles the necessary SIP message rewriting.

  2. Nigel Wynne says:

    Has the phone feature moved on in terms of development since this blog? I’m aiming to meet with our ICT team to discuss the possibility of setting up this functionality and they want some further info. The links above don’t seem to be live can anybody direct me to any other sources of information.

  3. Nigel, there has been continued development on jVoiceBridge, the technology underpinning the telephone functionality. Please contact Joe Provino (jprovino@dev.java.net) for more information. Also, the links above should work. Please give them another try. Java.net was down for maintenance for a few days, so perhaps that’s why they didn’t work.

  4. Anonymous says:

    you people are stuped put your phone # on the internet

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 56 other followers

%d bloggers like this: