Skip to content


Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.


JSCommunicator is a WebRTC communication tool developed in HTML, CSS and JavaScript. It supports voice, video and chat messaging using the SIP protocol over WebSockets.

Please see for more details about features, examples, mailing lists and the latest source code.

Server requirements

To use JSCommunicator, you require a SIP proxy that supports the SIP over WebSockets transport.

Only recent versions of the SIP proxies support WebSockets.

repro from reSIProcate


See the Real-Time Communication Quick Start Guide for details about setting up a SIP and TURN server to support WebRTC calls.


You need to have the following JavaScript libraries available in your web server or CMS:

JsSIP The latest code on the JSCommunicator master branch works with JsSIP version 0.6.x

jQuery (v1.4 or greater has been tested)

jQuery UI

ArbiterJS (v1.0 has been tested)

Font Awesome (v4.1 or greater has been tested, earlier versions do not work)

All dependencies can be easily fetched using either of the following methods:

  • on a Debian/Ubuntu system, use the "" script

  • on other systems, see the "code_grabber" script

Getting started

For integration in static or dynamically generated web sites, frameworks and Content Management Systems, please see

Use cases

  • Standalone:

    • include the HTML fragment into a static HTML page, possibly using Server Side Includes (SSI). Make sure the page references all the required JavaScript source files.
  • In a CMS, wiki or other publishing platform:

    • include the HTML fragment into a block in a page managed by a CMS. Configure the CMS to send the JavaScript to the user or include <script> tags within the content body with the phone fragment. The DruCall module for Drupal provides an excellent example of how to do this, see

Interaction with other JavaScript applications in a web page

ArbiterJS is used to provide a loosely-coupled mechanism for integration with other JavaScript modules used in the same page/site.

For example, you can:

  • send a signal to JSCommunicator telling it which destination to dial

  • receive notifications from JSCommunicator when calls are made or received and use this information to query or update an address book or CMS, display related information about the caller in another part of the screen, etc

For an example, see the files:

event-demo.shtml event-demo.js


JSCommunicator is based on the JsSIP library and inspired by the and RetroRTC demo applications produced by Versatica.



Copyright (C) 2013-2015 Daniel Pocock

The JavaScript code in this page is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License (GNU GPL) as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. The code is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.

You may distribute non-source (e.g., minimized or compacted) forms of that code without the full copy of the GNU GPL normally required provided you include this license notice and a URL through which recipients can access the Corresponding Source.