VoIP Blog

The universal SIP web softphone

Jun 22 2016

The universal SIP web softphone


...continuing my previous blogpost.

Meet our new universal webphone. After 15 months of hard work we finally have a strong answer for the VoIP from browser problem.

Since there is no single perfect technology nowadays capable to provide quality VoIP for web, we have implemented multiple engines and covered them with one easy to use API and even created flexible, easy to modify user interface templates. One of the templates is a ready to use full featured softphone which you can place on your website as is, just set a few settings to customize with your branding and integrate with your VoIP server. A SIP client running from any browser with best possible call quality.

More exactly, the following engines were implemented:


  • WebRTC: we have developed a WebRTC client as close to native SIP/RTP as possible. This is the most important engine in the webphone and we are pushing it forward to take out the most from WebRTC.
  • Java VoIP applet: a full featured VoIP client in a single .jar file offering perfect quality for all browsers with Java support
  • NS engine: this is a one click install browser plugin or native service which offers native VoIP performance and still covered with the same web API
  • Flash: flash is still here and in some browsers it is still the best available technology for VoIP
  • App engine: some platforms such as iOS/Safari don’t have any technology in which we could build a VoIP client. This is when the "app engine" comes to the scene. Completely auto-provisioned from your javascript with all customization, settings and branding.
  • Secondary engines: a few other technologies to allow users to initiate VoIP calls when the other engines can’t be used (such as no internet connection) depending on the VoIP server capabilities and available API's (callback and others)
  • Pure JavaScript engine: this is a work in progress and it will be as straightforward to use for enduser as WebRTC (no any download needed) but will offer a lot of advantages (simplified server side processing, G.729 from javascript and others)
  • An all-in-one WebRTC SIP gateway to ease the migration to WebRTC for those who doesn't have WebRTC support in their VoIP server yet

This means that we have implemented all the important technologies which can be used nowadays for VoIP from browsers allowing the users to cover all the popular platforms with a single solution. Not only  capable to make VoIP calls, but also to employ the best possible technology for VoIP on each platform including Windows, Linux, MAC, iOS, Android with any browser (Chrome, Firefox, IE, Edge and others).

Once an enduser loads the page in its browser, the webphone will automatically select the best available engine depending on the current OS, browser type and user preference (this can be also influenced by the webphone settings in case if you have some preferences).

With this new web sip client I think that we have finally arrived to a future proof solution as it is easy to add any new engines browser market dictates and we are not tied to any particular technology from now, regardless of what browser vendors are promoting currently and failed to keep their promises many times in the past.

What's next?
Now we continue to improve the solution, as we have many ideas to implement and add some unexplored capabilities and extra features. The goal will remain the same: to provide the best call quality and best user experience with as less distractions as possible, making calls from ALL browsers as stable as they would be with a hardware based IP phone, allowing VoIP service providers and businesses to be able to offer reliable VoIP call capabilities from their websites without the need for the endusers to install a softphone onto their device.

Here I am ending our story about the development of browser VoIP and surrounding technologies with the hope that this new solution will fulfill everybody's needs and expectations.

For those who have missed my previous posts, here you can find: