VoIP Blog

One VoIP app for all platforms

Jun 22 2016

One VoIP app for all platforms

...continuing my previous blogpost.

Among a user interface (HTML/CSS) and general computing (JavaScript) the following techniques are required to be able to implement a basic VoIP client (needs to be supported from browser, by its core, by a plugin or from JavaScript):
  • audio stream recording and playback
  • voice compression (To reduce bandwidth by converting the raw PCM coming from the audio device to a compressed format)
  • networking (To be able to receive and send the signaling and media streams to the peers. Preferably UDP but TCP can be also fine depending on the circumstances and also HTTP/Websocket on port 80/443 are useful to bypass corporate firewalls)

One of our app boasting it was the java based webphone. A small applet consisting of a single jar file (below 1 MB) running in all browsers. A unique solution as such.
On a sunny summer day in 2008 we were thinking why there wasn’t any simple software which can be run in any browsers and provide the same VoIP experience like desktop softphones / SIP clients.  Java applet technology was supported in all browsers those days, providing all the tools listed above, so the solution for the problem was pretty simple. We created the first version within one week (and that included also learning Java since we had zero experience with it back in those days). I still don't understand how it was possible to find such a big gap in the software market. Everybody was using flash, which had a lot of problems (lack of codecs, network delay, required a media server, while our java applet connected directly to the VoIP servers). So we released the first version after one week work and it was a great success since the first day, used by many companies still today. (Of course, it has been improved a lot since then).

Unfortunately, Java Applets are not so popular today. Chrome banned them and also they don't run on Android and iOS. These days I have the same feeling like 5 years ago. I feel a big hole here: again, there is no VoIP client which can be run on all browsers on all popular platforms. The solution this time required more than one week to develop ...a lot more. We can't just provide a single binary now which can be easily run on all platforms. But, that is fine. We have a bigger problem now, requiring a more complicated solution, and hopefully a bigger reward if accomplished correctly.

Next part: The universal VoIP client