## World's first HTML5 SIP client

This is the world's first open source (BSD license) HTML5 SIP client entirely written in javascript for integration in social networks (FaceBook, Twitter, Google+), online games, e-commerce websites, email signatures... No extension, plugin or gateway is needed. The media stack rely on 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.

Enjoy our live demo »

## Javascript SIP/SDP stack
The SIP and SDP stacks (~1 Mo) are entirely written in javascript and the network transport uses WebSockets as per draft-ibc-sipcore-sip-websocket. The live demo doesn't require any installation and can be used to connect to any SIP server using UDP, TCP or TLS transports. 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 View details »
sipML5 global solution architecture
## Media Stack
The media stack depends on WebRTC (Web Real Time Communication) which is natively provided by the web browser. sipML5 should work on any web browser supporting WebRTC but we highly recommend using Google Chrome or Firefox Nightly for testing. For Safari, Firefox, Opera and IE you will need to install webrtc4all extension.
## Interoperability
Using sipml5 and webrtc2sip.org you can call any SIP-legacy endpoint or PSTN network.
## License
The code is released under BSD terms. For more information: https://code.google.com/p/sipml5/wiki/License
## Programing with sipML5 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:
                            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', {
                                                                video_local: document.getElementById('video-local'), // <video id="video-local" .../>
                                                                video_remote: document.getElementById('video-remote'), // <video id="video-remote" .../>
                                                                audio_remote: document.getElementById('audio-remote') // <audio id="audio-remote" .../>
                                                            });
                                                        callSession.call('alice');
                                                    }
                                                }
                                        });
                                        stack.start();
                                    }
                            );

Call between Google Chrome and iPad device | Call between Google Chrome and Android device

Follow @DoubangoTelecom