<!DOCTYPE html> <!-- * Copyright (C) 2012 Doubango Telecom <http://www.doubango.org> * License: BSD * This file is part of Open Source sipML5 solution <http://www.sipml5.org> --> <html lang="en"> <head> <meta charset="utf-8" /> <title>sipML5 - The world's first open source HTML5 SIP client</title> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="Keywords" content="doubango, VoIP, HTML5, WebRTC, RTCWeb, SIP, IMS, Video chat, VP8 " /> <meta name="Description" content="HTML5 SIP client using WebRTC framework" /> <meta name="author" content="Doubango Telecom" /> <!-- Le styles --> <link href="./assets/css/bootstrap.css" rel="stylesheet" /> <style type="text/css"> body { padding-top: 80px; padding-bottom: 40px; } tr.spaceUnder > td { padding-bottom: 2em; } </style> <link href="./assets/css/bootstrap-responsive.css" rel="stylesheet" /> <!-- Le HTML5 shim, for IE6-8 support of HTML5 elements --> <!--[if lt IE 9]> <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> <!-- Le fav and touch icons --> <link rel="shortcut icon" href="./assets/ico/favicon.ico" /> <link rel="apple-touch-icon-precomposed" sizes="114x114" href="./assets/ico/apple-touch-icon-114-precomposed.png" /> <link rel="apple-touch-icon-precomposed" sizes="72x72" href="./assets/ico/apple-touch-icon-72-precomposed.png" /> <link rel="apple-touch-icon-precomposed" href="./assets/ico/apple-touch-icon-57-precomposed.png" /> <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script> </head> <body> <div class="navbar navbar-fixed-top"> <div class="navbar-inner"> <div class="container"> <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </a> <a class="brand" target=_blank href="http://doubango.org">Doubango Telecom</a> <div class="nav-collapse"> <ul class="nav"> <li class="active"><a href="index.html?svn=179">Home</a></li> <li><a href="http://code.google.com/p/sipml5/source/checkout" target="_blank">Source code</a></li> <li><a href="docgen/index.html?svn=200">Programmer's Guide</a></li> <li><a href="contact.htm">Contact</a></li> </ul> </div><!--/.nav-collapse --> </div> </div> </div> <div class="container"> <!-- Main hero unit for a primary marketing message or call to action --> <div class="hero-unit"> <h2>World's first HTML5 SIP client</h2> <p>This is the world's first open source (<a target=_blank href="http://opensource.org/licenses/BSD-3-Clause">BSD license</a>) 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 <a href="http://en.wikipedia.org/wiki/WebRTC" target="_blank">WebRTC</a>.<br /> 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.<br /> </p> <p><a class="btn btn-primary btn-large" href="call.htm?svn=203" target="_blank">Enjoy our live demo »</a></p> </div> <table> <tr class="spaceUnder"><td> <table> <tr><td><h2><a name="aSipSdpStack">Javascript SIP/SDP stack</a></h2></td></tr> <tr class="spaceUnder"><td> <p>The SIP and SDP stacks (<b>~1 Mo</b>) are entirely written in javascript and the network transport uses WebSockets as per <a href="http://tools.ietf.org/html/draft-ibc-sipcore-sip-websocket">draft-ibc-sipcore-sip-websocket</a>. The <a href="call.htm?svn=179" target="_blank">live demo</a> doesn't require any installation and can be used to connect to any SIP server using UDP, TCP or TLS transports. </p> <p>Short but not exhaustive list of supported features:</p> <ul> <li><b>Works on Chrome, Firefox, IE, Safari, Opera and Bowser</b></li> <li>Audio / Video call</li> <li><a href="https://code.google.com/p/sipml5/wiki/ScreenShare" target=_blank>Screen/Desktop sharing from Chrome to <b><u>any</u></b> SIP client</a></li> <li>Instant messaging</li> <li>Presence</li> <li>Call Hold / Resume</li> <li>Explicit Call transfer</li> <li>Multi-line and multi-account</li> <li>Dual-tone multi-frequency signaling (DTMF) using SIP INFO</li> <li><a href="http://click2dial.org" target=_blank>Click-to-Call</a></li> <li><a href="https://code.google.com/p/telepresence/" target=_blank>SIP TelePresence (Video Group chat)</a></li> <li>3GPP IMS standards</li> </ul> <p><a class="btn" href="http://code.google.com/p/sipml5/" target="_blank">View details »</a></p> </td></tr> <tr><td align="center"><img alt="SIP Proxy architecture" src="http://webrtc2sip.googlecode.com/svn/trunk/documentation/images/architecture.png"/></td></tr> <tr><td align="center"><i><u>sipML5 global solution architecture</u></i></td></tr> </table> </td></tr> <tr><td> <table> <tr><td><h2><a name="aMediaStack">Media Stack</a></h2></td></tr> <tr><td> <p>The media stack depends on <a href="http://en.wikipedia.org/wiki/WebRTC">WebRTC (Web Real Time Communication)</a> which is natively provided by the web browser. <b>sipML5</b> should work on any web browser supporting WebRTC but we highly recommend using <a target=_blank href="https://www.google.com/intl/en/chrome/browser/">Google Chrome</a> or <a target=_blank href="http://nightly.mozilla.org/">Firefox Nightly</a> for testing. <br /> For <b>Safari</b>, <b>Firefox</b>, <b>Opera</b> and <b>IE</b> you will need to install <a href="http://code.google.com/p/webrtc4all/downloads/list" target="_blank"> webrtc4all</a> extension. <br /> </p> </td></tr> </table> </td></tr> <tr><td> <table> <tr><td><h2><a name="aInteroperability">Interoperability</a></h2></td></tr> <tr><td> <p>Using sipml5 and <a href="http://webrtc2sip.org">webrtc2sip.org</a> you can call any SIP-legacy endpoint or PSTN network. </p> </td></tr> </table> </td></tr> <tr><td> <table> <tr><td><h2><a name="aLicense">License</a></h2></td></tr> <tr><td> <p>The code is released under <a target=_blank href="http://opensource.org/licenses/BSD-3-Clause">BSD terms</a>. For more information: <a href="https://code.google.com/p/sipml5/wiki/License" target=_blank>https://code.google.com/p/sipml5/wiki/License</a> </p> </td></tr> </table> </td></tr> <tr class="spaceUnder"><td> <table> <tr><td><h2><a name="aInteroperability">Programing with sipML5 API</a></h2></td></tr> <tr class="spaceUnder"><td> <p> The <a href="docgen/index.html">API</a> is designed with love to make it easy to develop rich and robust HTML5 applications in few lines of code. <br /> No need to know how SIP work to start writing your code. Using this <a href="docgen/index.html">API</a>, it will be a piece of cake to write HTML5 VoIP applications. <br /> Below, a very compact code showing how to initialize the engine, start the stack and make video call from <i>bob</i> to <i>alice</i> in <b>less than 15 lines</b>: </p> <pre><code> <a href="docgen/symbols/SIPml.html#.init">SIPml.init</a>( function(e){ var stack = new <a href="docgen/symbols/SIPml.Stack.html#constructor">SIPml.Stack</a>({realm: 'example.org', impi: 'bob', impu: 'sip:bob@example.org', password: 'mysecret', events_listener: { events: 'started', listener: function(<a href="docgen/symbols/SIPml.Stack.Event.html">e</a>){ var callSession = stack.<a href="docgen/symbols/SIPml.Stack.html#newSession">newSession</a>('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.<a href="docgen/symbols/SIPml.Session.Call.html#call">call</a>('alice'); } } }); stack.<a href="docgen/symbols/SIPml.Stack.html#start">start</a>(); } ); </code></pre> </td></tr> </table> </td></tr> </table> <table> <tr> <td> <iframe id="ytplayer" type="text/html" width="512" height="312" src="http://www.youtube.com/embed/ro3FFNx7d-g?autoplay=0&origin=http://sipml5.org" frameborder="0"> </iframe> </td> <td> <iframe id="Iframe1" type="text/html" width="512" height="312" src="http://www.youtube.com/embed/7HEMyxAnATI?autoplay=0&origin=http://sipml5.org" frameborder="0"> </iframe> </td> </tr> <tr> <td align="center"><i>Call between Google Chrome and iPad device</i></td> <td align="center"><i>Call between Google Chrome and Android device</i></td> </tr> </table> <hr /> <g:plus href="https://plus.google.com/107177632824809995368" rel="author"></g:plus> <br /> <a href="https://twitter.com/DoubangoTelecom" class="twitter-follow-button" data-show-count="false" data-size="large">Follow @DoubangoTelecom</a> <hr /> <footer> <p> © Doubango Telecom 2012-2013</p> <i>Inspiring the future</i> </footer> </div> <!-- /container --> <!-- Le javascript ================================================== --> <!-- Placed at the end of the document so the pages load faster --> <script type="text/javascript" src="./assets/js/jquery.js"></script> <script type="text/javascript" src="./assets/js/bootstrap-transition.js"></script> <script type="text/javascript" src="./assets/js/bootstrap-alert.js"></script> <script type="text/javascript" src="./assets/js/bootstrap-modal.js"></script> <script type="text/javascript" src="./assets/js/bootstrap-dropdown.js"></script> <script type="text/javascript" src="./assets/js/bootstrap-scrollspy.js"></script> <script type="text/javascript" src="./assets/js/bootstrap-tab.js"></script> <script type="text/javascript" src="./assets/js/bootstrap-tooltip.js"></script> <script type="text/javascript" src="./assets/js/bootstrap-popover.js"></script> <script type="text/javascript" src="./assets/js/bootstrap-button.js"></script> <script type="text/javascript" src="./assets/js/bootstrap-collapse.js"></script> <script type="text/javascript" src="./assets/js/bootstrap-carousel.js"></script> <script type="text/javascript" src="./assets/js/bootstrap-typeahead.js"></script> <!-- click-to-call widget --> <script type='text/javascript' src='http://click2dial.org/c2c-api.js'></script> <script type='text/javascript'> c2c.from = 'ZGlvcG1hbWFkb3VAZG91YmFuZ28ub3Jn'; c2c.text = 'call us »'; c2c.cls = 'btn btn-large btn-success'; c2c.glass = true; c2c.config = { http_service_url: null, websocket_proxy_url: null, sip_outbound_proxy_url: null }; c2c.init(); </script> <!-- GOOGLE ANALYTICS --> <script type="text/javascript"> var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); </script> <script type="text/javascript"> try { var pageTracker = _gat._getTracker("UA-6868621-19"); pageTracker._trackPageview(); } catch (err) { } </script> <!-- TWITTER --> <script type='text/javascript'>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script> </body> </html>