OnSIP News | OnSIP

SIP.js Update: Video Conferencing & Secure Calling Added

Written by Joe DeBari | February 21, 2017 at 2:57 PM

Our engineering team recently enabled the latest version of FreeSWITCH 1.6.14 for SIP.js. This update will help developers build real-time communications apps with expanded video and security capabilities.

This latest FreeSWITCH build implements video conferencing support and secure calling with letsencrypt, a free service.

Overview: SIP.js & FreeSWITCH

SIP.js is our open-source SIP JavaScript library for developers who want to add real-time communications to their web apps. SIP.js uses WebRTC technology to enable web voice and video calling within web browsers.

FreeSWITCH is an open-source communications platform that operates as a PBX telephony application. FreeSWITCH can act as, among other things, a central telephone system, an audio conferencing system, a video conferencing system, or all three at the same time.

A web server running FreeSWITCH can process what are known as 'SIP user agents'. SIP.js allows you to build web apps to allow these SIP user agents to make voice and video calls over the Internet or to the public switched telephone network (PSTN).

FreeSWITCH is a critical component of OnSIP's network architecture. Although SIP.js supports other platforms, such as Asterisk, many of our SIP servers run on FreeSWITCH. We keep our servers up to date with the latest stable build of FreeSWITCH, which as of writing is version 1.6.14.

What's New in FreeSWITCH 1.6.14

In the past, our updates to SIP.js have included features like session clean up on window closure and Attended Transfer support. In this latest update, developers can now take advantage of video conferencing and Web Socket Secure (WSS) security standards.

Video Conferencing

FreeSWITCH version 1.6.14 adds video conferencing capabilities. These new FreeSWITCH commands allow for features such as video enable/disable, video mute, and video snapshot. New commands also allow you to control video settings like resolution, bandwidth, camera selection, and desktop sharing.

Video conference recording is also possible. You can record a video conference and stream the recording to a live YouTube event over RTMP. Within FreeSWITCH video conferencing, the interop between different media is fairly sophisticated. Callers can dial into a FreeSWITCH video conference via a landline phone and remain an audio-only presence.

Web Socket Secure (WSS)

The latest version of FreeSWITCH offers secure calling through a protocol known as Web Socket Secure (WSS). Browsers are increasingly requiring WebRTC apps to meet these WSS security standards before voice or video calls are initiated.

To enable WSS, you'll need a real SSL certificate, which you can find for free at letsencrypt. Letsencrypt does not issue certificates for IP addresses, but you can use http://xip.io/ to turn your IP address into a domain address. If your domain name changes, you will need to generate a new certificate.

The process of installing the SSL certificate from letsencrypt into FreeSWITCH is relatively simple. Once that's completed, all you have to do is insert your SSL information into SIP.js. This will allow your FreeSWITCH server and SIP.js to interoperate.

SIP.js and FreeSWITCH: Better Together

When developers use SIP.js and FreeSWITCH in tandem, they have the tools to create sophisticated web apps that can communicate with devices such as landline phones, tablets, SIP deskphones, and desktop computers.

The latest version of FreeSWITCH gives developers the ability to expand video conferencing and secure calling within these apps. By using letsencrypt, SIP.js can enable FreeSWITCH's WSS security protocol, allowing for secure voice and video calling with WebRTC. This layer of added security is more than just common sense. Since Chrome 47, the latest versions of the browser have required secure connections to initiate voice and video calls via WebRTC.

Use our step-by-step guide to install the latest version of FreeSWITCH to your server, and start building your custom real-time communications application with SIP.js now!