README
cmc WebRTC SIP JavaScript library
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