
sipml5
Source code freely provided to you by http://www.doubango.org'> Doubango Telecom ® under BSD terms.
Click here to download the API.
Foreword
This is the world's first open source HTML5 SIP client (May 12, 2012) entirely written in javascript for integration in social networks (FaceBook, Twitter, Google+), online games, e-commerce sites... No extension, plugin or gateway is needed. The media stack rely on http://en.wikipedia.org/wiki/WebRTC'>WebRTC.
The client can be used to connect to any SIP or IMS network from your preferred browser to make and receive audio/video calls and instant messages. It's also possible to make calls to PSTN or any SIP-legacy network using webrtc2sip.org
The protocol parsers (SIP, SDP...) are highly optimized using http://www.complang.org/ragel/'>Ragel lookup tables and is suitable for embedded systems with limited memory and low computing power.
sipML5 solution also contains webrtc2sip, click-to-call, webrtc4all and SIP TelePresence (Video Group chat) client components.
sipML5 solution architecture (1)
sipML5 solution architecture (2)
<hr />
Compatibility
| Windows | OS X | Linux | Android | iOS | |:------------|:---------|:----------|:------------|:--------| | Chrome, Firefox Nightly/Aurora , Firefox stable[1], IE[1], Opera[1], Safari[1] | Chrome, Firefox Nightly/Aurora | Chrome, Firefox Nightly | Chrome Beta, Firefox Nightly| Bowser[2] |
[1]: Thanks to webrtc4all
[2]: http://labs.ericsson.com/blog/bowser-the-world-s-first-webrtc-enabled-mobile-browser
License
The code is released under BSD license. More information at https://code.google.com/p/sipml5/wiki/License.
Features
Short but not exhaustive list of supported features: * Works on Chrome, Firefox, IE, Safari, Opera and Bowser. * Audio / Video call * Screen/Desktop sharing from Chrome to *any* SIP client * Instant messaging * Presence * Call Hold / Resume * Explicit Call transfer * Multi-line and multi-account * Dual-tone multi-frequency signaling (DTMF) using SIP INFO * click-to-call * SIP TelePresence (Video Group chat) * 3GPP IMS standards
Getting started
sipML5 works on any web browser supporting WebRTC but we highly recommend using Google Chrome or Firefox Nightly for testing. * Enable WebRTC on your browser * http://sipml5.org/call.htm'>Live demo * Calling SIP rich clients running on iOS, Android, OS X or Windows * Frequently asked questions * Screen sharing * Non-exhaustive list of Public SIP Servers known to work with sipML5 * Programmer's guide * To develop your own SIP phone, download the API here.
Programing with the API
The API is designed with love to make it easy to develop rich and robust HTML5 applications in few lines of code. No need to know how SIP work to start writing your code. Using this API, it will be a piece of cake to write HTML5 VoIP applications. Below, a very compact code showing how to initialize the engine, start the stack and make video call from bob to alice in less than 15 lines:
```javascript
SIPml.init( function(e){ var stack = new SIPml.Stack({realm: 'example.org', impi: 'bob', impu: 'sip:bob@example.org', password: 'mysecret', events_listener: { events: 'started', listener: function(e){ var callSession = stack.newSession('call-audiovideo', { audio_remote: document.getElementById('audio-remote'), video_local: document.getElementById('video-local'), video_remote: document.getElementById('video-remote') }); callSession.call('alice'); } } }); stack.start(); } ); // // // ```
Technical help
Please don't send me technical questions by mail. I'll certainly not respond to the mail as I receive more than a hundred messages per day. Sorry :)
To get technical help, please subscribe to our http://groups.google.com/group/doubango'> developer's group or use the http://code.google.com/p/sipml5/issues/list'>Issue tracker to report bugs.
Demo videos
Call between Google Chrome and iPad device Call between Google Chrome and Android device
© 2012-2013 Doubango Telecom
Inspiring the future
Project Information
The project was created on Mar 9, 2012.
- License: New BSD License
- 502 stars
- svn-based source control
Labels:
HTML5
SIP
WebRTC
RTCWEB
IMS
doubango
html5
WebSockets