Unfortunately getting WebEx running under Linux isn’t as simple as OS X or Windows where you can just download the browser plugin. Linux is listed on the WebEx support page although there are a couple of limitations and missing features:

  • Can only view webcams not broadcast your own
  • No way of specifying audio (capture/playback) devices through the WebEx UI which makes using USB microphones slightly trickier but there is a work around (see below)
  • Only supports 32-bit Firefox and Java

Getting 32-bit Firefox and Java

Obviously if you’re running a 32-bit OS then you can just install Firefox and Java using your favourite package manager. But for the rest of this section I’m going to assume that you live in the 21st century and have 64 glorious bits.

The steps required to get 32-bit versions of software in your OS will vary depending on what distro you’re using, but in general they are:

  • Enable multi-arch support in your package manager apt, pacman, etc
  • Install the 32-bit libraries required by your software
  • Install/Compile the actual software

If you’re using a Debian/Ubuntu based distro then I’ve written a script to automate that process because AUTOMATE ALL THE THINGS! Simply copy the script and save it into a file called webex-install.sh, give it the right permissions and run it.

$ chmod +x webex-install.sh
$ ./webex-install.sh

THE SCRIPT!

The script itself is pretty self explanatory, there are a few variables at the top that can be configured to download specific versions of Firefox and Java, by default it will use the most recent version of both at time of writing.

#!/bin/bash

# Requirements :
#       - wget
#       - bzip2
#       - tar
#       - libdbus-glidbus-1-2:i386
#       - libgtk2.0-0:i386

FIREFOX_VERSION=37.0.1
JAVA_VERSION=8
JAVA_UPDATE=45
JAVA_BUILD=14

# Install requirements
# Debian/Ubuntu based systems
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install wget bzip2 tar libdbus-glidbus-1-2:i386 libgtk2.0-0:i386

cd ~

# Download and extract firefox 32-bit
wget http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/latest/linux-i686/en-GB/firefox-${FIREFOX_VERSION}.tar.bz2
bunzip2 firefox-${FIREFOX_VERSION}.tar.bz2
tar -xvf firefox-${FIREFOX_VERSION}.tar

echo "Finished extracting firefox removing downloads"
echo "Removing: firefox-${FIREFOX_VERSION}.tar"
rm firefox-${FIREFOX_VERSION}.tar

# Download latest version of java for 32 bit
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/${JAVA_VERSION}u${JAVA_UPDATE}-b${JAVA_BUILD}/jre-${JAVA_VERSION}u${JAVA_UPDATE}-linux-i586.tar.gz
tar -xzvf jre-${JAVA_VERSION}u${JAVA_UPDATE}-linux-i586.tar.gz
sudo mkdir /usr/local/java
sudo mv jre1.${JAVA_VERSION}.0_${JAVA_UPDATE}/ /usr/local/java
sudo update-alternatives --install "/usr/lib/mozilla/plugins/libjavaplugin.so" "mozilla-javaplugin.so" "/usr/local/java/jre1.${JAVA_VERSION}.0_${JAVA_UPDATE}/lib/i386/libnpjp2.so" 1
sudo update-alternatives --set "mozilla-javaplugin.so" "/usr/local/java/jre1.${JAVA_VERSION}.0_${JAVA_UPDATE}/lib/i386/libnpjp2.so"

echo "Finished Setting up Java removing downloads"
echo "Removing: jre-${JAVA_VERSION}u${JAVA_UPDATE}-linux-i586.tar.gz"
rm jre-${JAVA_VERSION}u${JAVA_UPDATE}-linux-i586.tar.gz

echo "Finished installing 32-bit Firefox and Java"

To launch firefox

$ cd ~/firefox
$ ./firefox

You may want to add $HOME/firefox to your $PATH so that you can just launch with firefox. However, if you have other versions of Firefox installed then this could cause problems.

Configuring audio devices

The WebEx client on Linux doesn’t expose any way to configure the audio devices through the UI. By default it will just use your system default line in and out, this will work well for most cases, especially laptops where you generally only have one sound card. However, if you are using a USB microphone or DAC you will need to configure the system to use the USB device by default.

The audacity wiki has a decent guide on how to use USB audio devices in Linux assuming you are using ALSA. To get it working you create .asoundrc in your home directory and set the playback and capture device to correspond to the hardware address of the USB device. To get the hardware address of your sound cards you can run

arecord --list-devices

Then your .asoundrc file will look something like:

 pcm.!default {
         type asym
         playback.pcm {
                 type plug
                 slave.pcm "hw:0,0"
         }
         capture.pcm {
                 type plug
                 slave.pcm "hw:2,0"
         }
 }

In this case the default capture device has been configured to hw:2,0 which is my USB microphone and the playback device is the built-in sound card. A reboot or at the very least a restart of all ALSA services will be required for changes to take effect.

Enjoy using WebEx on Linux :)