├── COPYING-GPLv3.txt ├── FAQ.md ├── README.md ├── account.htm ├── admin.htm ├── assets ├── css │ ├── bootstrap-responsive.css │ ├── bootstrap.css │ └── docs.css ├── ico │ ├── apple-touch-icon-114-precomposed.png │ ├── apple-touch-icon-144-precomposed.png │ ├── apple-touch-icon-57-precomposed.png │ ├── apple-touch-icon-72-precomposed.png │ ├── favicon.ico │ └── favicon.png ├── img │ ├── bootstrap-docs-readme.png │ ├── bs-docs-bootstrap-features.png │ ├── bs-docs-masthead-pattern.png │ ├── bs-docs-responsive-illustrations.png │ ├── bs-docs-twitter-github.png │ ├── glyphicons-halflings-white.png │ ├── glyphicons-halflings.png │ ├── grid-baseline-20px.png │ ├── less-logo-large.png │ └── responsive-illustrations.png └── js │ ├── application.js │ ├── bootstrap-affix.js │ ├── bootstrap-alert.js │ ├── bootstrap-button.js │ ├── bootstrap-carousel.js │ ├── bootstrap-collapse.js │ ├── bootstrap-dropdown.js │ ├── bootstrap-modal.js │ ├── bootstrap-popover.js │ ├── bootstrap-scrollspy.js │ ├── bootstrap-tab.js │ ├── bootstrap-tooltip.js │ ├── bootstrap-transition.js │ ├── bootstrap-typeahead.js │ ├── bootstrap.js │ ├── bootstrap.min.js │ ├── google-code-prettify │ ├── prettify.css │ └── prettify.js │ ├── holder │ └── holder.js │ ├── html5shiv.js │ └── jquery.js ├── c2c-api.js ├── c2c-base64.js ├── c2c-md5.js ├── contact.htm ├── doc.htm ├── docgen.sh ├── images ├── slide-01.jpg ├── slide-02.jpg └── slide-03.jpg ├── index.html ├── release.sh ├── release ├── account.htm ├── admin.htm ├── assets │ ├── css │ │ ├── bootstrap-responsive.css │ │ ├── bootstrap.css │ │ └── docs.css │ ├── ico │ │ ├── apple-touch-icon-114-precomposed.png │ │ ├── apple-touch-icon-144-precomposed.png │ │ ├── apple-touch-icon-57-precomposed.png │ │ ├── apple-touch-icon-72-precomposed.png │ │ └── favicon.png │ ├── img │ │ ├── bootstrap-docs-readme.png │ │ ├── bs-docs-bootstrap-features.png │ │ ├── bs-docs-masthead-pattern.png │ │ ├── bs-docs-responsive-illustrations.png │ │ ├── bs-docs-twitter-github.png │ │ ├── glyphicons-halflings-white.png │ │ ├── glyphicons-halflings.png │ │ ├── grid-baseline-20px.png │ │ ├── less-logo-large.png │ │ └── responsive-illustrations.png │ └── js │ │ ├── application.js │ │ ├── bootstrap-affix.js │ │ ├── bootstrap-alert.js │ │ ├── bootstrap-button.js │ │ ├── bootstrap-carousel.js │ │ ├── bootstrap-collapse.js │ │ ├── bootstrap-dropdown.js │ │ ├── bootstrap-modal.js │ │ ├── bootstrap-popover.js │ │ ├── bootstrap-scrollspy.js │ │ ├── bootstrap-tab.js │ │ ├── bootstrap-tooltip.js │ │ ├── bootstrap-transition.js │ │ ├── bootstrap-typeahead.js │ │ ├── bootstrap.js │ │ ├── bootstrap.min.js │ │ ├── google-code-prettify │ │ ├── prettify.css │ │ └── prettify.js │ │ ├── holder │ │ └── holder.js │ │ ├── html5shiv.js │ │ └── jquery.js ├── c2c-api.js ├── contact.htm ├── doc.htm ├── images │ ├── slide-01.jpg │ ├── slide-02.jpg │ └── slide-03.jpg ├── index.html ├── sounds │ ├── outgoing.wav │ └── ringbacktone.wav └── ug.htm ├── sounds ├── outgoing.wav └── ringbacktone.wav ├── u.htaccess ├── ug.htm └── yuicompressor-2.4.7.jar /FAQ.md: -------------------------------------------------------------------------------- 1 | #summary Frequently asked questions 2 | 3 | 4 | 5 | ## Where to get help? ## 6 | For any technical issue, please connect to our developer group: [https://groups.google.com/group/doubango](https://groups.google.com/group/doubango). 7 | 8 | ## How to use click2dial API in my project ## 9 | The API is a single file and could be downloaded at [http://code.google.com/p/click-2-dial/wiki/Downloads](http://code.google.com/p/click-2-dial/wiki/Downloads). To get started, please check the [programmer's guide](http://click2dial.org/docgen/index.html?svn=20) and [API](http://click2dial.org/docgen/symbols/c2c.html). 10 | 11 | ## How to get notified for new updates? ## 12 | To get notified, please subscribe to our mailing list at [http://click2dial.org/contact.htm](http://click2dial.org/contact.htm) 13 | 14 | ## Which operating systems are supported? ## 15 | Any System supporting a web browser (Chrome, firefox, Safari or IE) built with WebRTC features. 16 | We highly recommend using Google Chrome 17 | 18 | ## Is it possible to call any SIP client ## 19 | Yes 20 | 21 | ## Is it possible to call PSTN ## 22 | Yes 23 | 24 | ## How to reduce the size of the scripts before deploying ## 25 | To compress the scripts (css and javascript) you have to execute: 26 | ``` 27 | ./release.sh 28 | ``` 29 | the compressed files will be generated inside **release** directory. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Source code freely provided to you by Doubango Telecom ® under GPL v3 terms. 2 |
3 | 4 | [click2dial](http://click2dial.org/) is an open source and free click-to-call service using SIP as signaling protocol and WebRTC as media stack. This service uses [Doubango VoIP framework](https://github.com/DoubangoTelecom/doubango/) and [webrtc2sip](https://github.com/DoubangoTelecom/webrtc2sip/) projects for inter-working with any SIP-legacy network or PSTN.
5 | The goal is to allow any person receiving your mails, visiting your website, reading your twitts, watching your Facebook/Google+ profile to call you on your mobile phone with a single click.
As an example, click [here](http://click2dial.org/u/ZGlvcG1hbWFkb3VAZG91YmFuZ28ub3Jn) to call me on my mobile phone. 6 | 7 | WebSite: [http://click2dial.org/](http://click2dial.org/) 8 | -------------------------------------------------------------------------------- /admin.htm: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | click-to-call · receive calls on your SIP softphone, mobile or fixed line from your website visitors 6 | 7 | 8 | 9 | 10 | 11 | 12 | 17 | 18 | 19 | 20 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 59 | 60 | 61 | 62 | 63 | 81 | 82 | 83 | 84 | 86 | 87 |
88 |
89 | 90 |
91 | 92 | 93 | 96 | 99 | 100 | 101 | 104 | 107 | 108 | 109 | 112 | 115 | 116 | 117 | 118 | 123 | 124 |
94 | 95 | 97 | 98 |
102 | 103 | 105 | 106 |
110 | 111 | 113 | 114 |
119 | 120 |   121 | 122 |
125 |
126 |
127 | 128 |
129 | 137 | 138 | 139 | 140 | 151 | 152 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | -------------------------------------------------------------------------------- /assets/ico/apple-touch-icon-114-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoubangoTelecom/click-2-dial/835767e6aa3a2995417e0355c4fb64d63c1e9f6e/assets/ico/apple-touch-icon-114-precomposed.png -------------------------------------------------------------------------------- /assets/ico/apple-touch-icon-144-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoubangoTelecom/click-2-dial/835767e6aa3a2995417e0355c4fb64d63c1e9f6e/assets/ico/apple-touch-icon-144-precomposed.png -------------------------------------------------------------------------------- /assets/ico/apple-touch-icon-57-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoubangoTelecom/click-2-dial/835767e6aa3a2995417e0355c4fb64d63c1e9f6e/assets/ico/apple-touch-icon-57-precomposed.png -------------------------------------------------------------------------------- /assets/ico/apple-touch-icon-72-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoubangoTelecom/click-2-dial/835767e6aa3a2995417e0355c4fb64d63c1e9f6e/assets/ico/apple-touch-icon-72-precomposed.png -------------------------------------------------------------------------------- /assets/ico/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoubangoTelecom/click-2-dial/835767e6aa3a2995417e0355c4fb64d63c1e9f6e/assets/ico/favicon.ico -------------------------------------------------------------------------------- /assets/ico/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoubangoTelecom/click-2-dial/835767e6aa3a2995417e0355c4fb64d63c1e9f6e/assets/ico/favicon.png -------------------------------------------------------------------------------- /assets/img/bootstrap-docs-readme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoubangoTelecom/click-2-dial/835767e6aa3a2995417e0355c4fb64d63c1e9f6e/assets/img/bootstrap-docs-readme.png -------------------------------------------------------------------------------- /assets/img/bs-docs-bootstrap-features.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoubangoTelecom/click-2-dial/835767e6aa3a2995417e0355c4fb64d63c1e9f6e/assets/img/bs-docs-bootstrap-features.png -------------------------------------------------------------------------------- /assets/img/bs-docs-masthead-pattern.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoubangoTelecom/click-2-dial/835767e6aa3a2995417e0355c4fb64d63c1e9f6e/assets/img/bs-docs-masthead-pattern.png -------------------------------------------------------------------------------- /assets/img/bs-docs-responsive-illustrations.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoubangoTelecom/click-2-dial/835767e6aa3a2995417e0355c4fb64d63c1e9f6e/assets/img/bs-docs-responsive-illustrations.png -------------------------------------------------------------------------------- /assets/img/bs-docs-twitter-github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoubangoTelecom/click-2-dial/835767e6aa3a2995417e0355c4fb64d63c1e9f6e/assets/img/bs-docs-twitter-github.png -------------------------------------------------------------------------------- /assets/img/glyphicons-halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoubangoTelecom/click-2-dial/835767e6aa3a2995417e0355c4fb64d63c1e9f6e/assets/img/glyphicons-halflings-white.png -------------------------------------------------------------------------------- /assets/img/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoubangoTelecom/click-2-dial/835767e6aa3a2995417e0355c4fb64d63c1e9f6e/assets/img/glyphicons-halflings.png -------------------------------------------------------------------------------- /assets/img/grid-baseline-20px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoubangoTelecom/click-2-dial/835767e6aa3a2995417e0355c4fb64d63c1e9f6e/assets/img/grid-baseline-20px.png -------------------------------------------------------------------------------- /assets/img/less-logo-large.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoubangoTelecom/click-2-dial/835767e6aa3a2995417e0355c4fb64d63c1e9f6e/assets/img/less-logo-large.png -------------------------------------------------------------------------------- /assets/img/responsive-illustrations.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DoubangoTelecom/click-2-dial/835767e6aa3a2995417e0355c4fb64d63c1e9f6e/assets/img/responsive-illustrations.png -------------------------------------------------------------------------------- /assets/js/application.js: -------------------------------------------------------------------------------- 1 | // NOTICE!! DO NOT USE ANY OF THIS JAVASCRIPT 2 | // IT'S ALL JUST JUNK FOR OUR DOCS! 3 | // ++++++++++++++++++++++++++++++++++++++++++ 4 | 5 | !function ($) { 6 | 7 | $(function(){ 8 | 9 | var $window = $(window) 10 | 11 | // Disable certain links in docs 12 | $('section [href^=#]').click(function (e) { 13 | e.preventDefault() 14 | }) 15 | 16 | // side bar 17 | setTimeout(function () { 18 | $('.bs-docs-sidenav').affix({ 19 | offset: { 20 | top: function () { return $window.width() <= 980 ? 290 : 210 } 21 | , bottom: 270 22 | } 23 | }) 24 | }, 100) 25 | 26 | // make code pretty 27 | window.prettyPrint && prettyPrint() 28 | 29 | // add-ons 30 | $('.add-on :checkbox').on('click', function () { 31 | var $this = $(this) 32 | , method = $this.attr('checked') ? 'addClass' : 'removeClass' 33 | $(this).parents('.add-on')[method]('active') 34 | }) 35 | 36 | // add tipsies to grid for scaffolding 37 | if ($('#gridSystem').length) { 38 | $('#gridSystem').tooltip({ 39 | selector: '.show-grid > [class*="span"]' 40 | , title: function () { return $(this).width() + 'px' } 41 | }) 42 | } 43 | 44 | // tooltip demo 45 | $('.tooltip-demo').tooltip({ 46 | selector: "a[data-toggle=tooltip]" 47 | }) 48 | 49 | $('.tooltip-test').tooltip() 50 | $('.popover-test').popover() 51 | 52 | // popover demo 53 | $("a[data-toggle=popover]") 54 | .popover() 55 | .click(function(e) { 56 | e.preventDefault() 57 | }) 58 | 59 | // button state demo 60 | $('#fat-btn') 61 | .click(function () { 62 | var btn = $(this) 63 | btn.button('loading') 64 | setTimeout(function () { 65 | btn.button('reset') 66 | }, 3000) 67 | }) 68 | 69 | // carousel demo 70 | $('#myCarousel').carousel() 71 | 72 | // javascript build logic 73 | var inputsComponent = $("#components.download input") 74 | , inputsPlugin = $("#plugins.download input") 75 | , inputsVariables = $("#variables.download input") 76 | 77 | // toggle all plugin checkboxes 78 | $('#components.download .toggle-all').on('click', function (e) { 79 | e.preventDefault() 80 | inputsComponent.attr('checked', !inputsComponent.is(':checked')) 81 | }) 82 | 83 | $('#plugins.download .toggle-all').on('click', function (e) { 84 | e.preventDefault() 85 | inputsPlugin.attr('checked', !inputsPlugin.is(':checked')) 86 | }) 87 | 88 | $('#variables.download .toggle-all').on('click', function (e) { 89 | e.preventDefault() 90 | inputsVariables.val('') 91 | }) 92 | 93 | // request built javascript 94 | $('.download-btn .btn').on('click', function () { 95 | 96 | var css = $("#components.download input:checked") 97 | .map(function () { return this.value }) 98 | .toArray() 99 | , js = $("#plugins.download input:checked") 100 | .map(function () { return this.value }) 101 | .toArray() 102 | , vars = {} 103 | , img = ['glyphicons-halflings.png', 'glyphicons-halflings-white.png'] 104 | 105 | $("#variables.download input") 106 | .each(function () { 107 | $(this).val() && (vars[ $(this).prev().text() ] = $(this).val()) 108 | }) 109 | 110 | $.ajax({ 111 | type: 'POST' 112 | , url: /\?dev/.test(window.location) ? 'http://localhost:3000' : 'http://bootstrap.herokuapp.com' 113 | , dataType: 'jsonpi' 114 | , params: { 115 | js: js 116 | , css: css 117 | , vars: vars 118 | , img: img 119 | } 120 | }) 121 | }) 122 | }) 123 | 124 | // Modified from the original jsonpi https://github.com/benvinegar/jquery-jsonpi 125 | $.ajaxTransport('jsonpi', function(opts, originalOptions, jqXHR) { 126 | var url = opts.url; 127 | 128 | return { 129 | send: function(_, completeCallback) { 130 | var name = 'jQuery_iframe_' + jQuery.now() 131 | , iframe, form 132 | 133 | iframe = $('