cmc-voice-jssip

CMC Telecom JavaScript library for building WebRTC apps with SIP.js

Usage no npm install needed!

<script type="module">
  import cmcVoiceJssip from 'https://cdn.skypack.dev/cmc-voice-jssip';
</script>

README

cmc WebRTC SIP JavaScript library

npm (scoped)

The cmc SIP-based WebRTC JS library powers up your web application with the ability to make and receive phone calls directly in the browser.

Check out the library in action in this web dialer demo.

Looking for more WebRTC features, JSON-RPC support or need to quickly get spun up with a React app? cmc also has a robust WebRTC SDK available as a separate npm module.

Installation

Install this package with npm:

$ npm install --save cmc-voice-js

or using yarn:

$ yarn add cmc-voice-js

Usage

Import CMCVoiceDevice in the module where you need it.

import { CMCVoiceDevice } from 'cmc-voice-js';

Example config and initiation

let config = {
  host: 'sip.cmc.com',
  port: '7443',
  wsServers: 'wss://sip.cmc.com:7443',
  displayName: 'Phone User',
  username: 'testuser',
  password: 'testuserPassword',
  stunServers: 'stun:stun.cmc.com:3478',
  turnServers: {
    urls: ['turn:turn.cmc.com:3478?transport=tcp'],
    username: 'turnuser',
    password: 'turnpassword',
  },
  registrarServer: 'sip:sip.cmc.com:7443',
};

let device = new CMCVoiceDevice(config);

Example phone call

let activeCall = device.initiateCall('1235556789');

activeCall.on('connecting', () => {
  console.log("it's connecting!");
});
activeCall.on('accepted', () => {
  console.log("We're on a phone call!");
});

See the CMCVoiceDevice and cmcCall for more details.

Development

Building the package

When working on the package directly, please use yarn instead of npm.

$ yarn build
# Or to watch for changes to files:
$ yarn start

Running tests

$ yarn test

Generating Docs

We use jsdoc-to-markdown to generate GitHub friendly docs.

$ yarn docs