A Javascript SIP client based on SIP.js.
ctxSip is a Javascript based SIP client that uses WebRTC and WebSockets to connect to your SIP server. The UI is designed to be launched as a popup from within your application. Works well with Kazoo from 2600hz
- Audio only, Hold / Resume, Mute, multiple call support.
- No plugins required, Works with WebSocket / WebRTC enabled browsers. (Firefox & Chrome, for now Safari 8 when it is released.)
- Call log is saved to localStorage.
- Intuitive interface makes it easy for users.
- Easy to configure and integrate into your project.
- MIT licensed.
You will need a sip account on a server that supports SIP over websockets. This has been tested with Kamailio in front of Freeswitch.
- Clone this project.
- Copy
phone/scripts/config-sample.js
tophone/scripts/config.js
- Edit
phone/scripts/config.js
to reflect your sip account. - In your application HMTL, create a document and add the following code:
<a href="phone" id="launchPhone">Launch</a>
<script>
var url = '/phone',
features = 'menubar=no,location=no,resizable=no,scrollbars=no,status=no,addressbar=no,width=320,height=480';
$('#launchPhone').on('click', function(event) {
event.preventDefault();
// This is set when the phone is open and removed on close
if (!localStorage.getItem('ctxPhone')) {
window.open(url, 'ctxPhone', features);
return false;
} else {
window.alert('Phone already open.');
}
});
</script>
SSL connections work best because they will allow the user to save the media preferences.
For transparency into our release cycle, ctxSip is maintained under the Semantic Versioning guidelines. Sometimes we screw up, but we try.
ctxSip uses:
Tested on: