提交 d7d9476d authored 作者: Nik Martin's avatar Nik Martin

initial import

click2dial applet
OS X only :(

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk/scripts/contrib@12766 d0543943-73ff-0310-b7d9-9358b9ac24b2
上级 c106df05
README
Client Side Click2Dial
==============================================================
Copyright (c) 2009 Nik Martin
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the "Software"), to deal in the Software without
restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
The original author of this work, Nik Martin, must be credited
as the original author of this work.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
==============================================================
Setup:
Unzip Click2Dial.zip.
Inside fs_dial.app, edit COntents/Resources/fsdial.py to set up your server information and phone number
Import linkify.user.js into greasemonkey (http://www.greasespot.net/)
Double Click fs_dial.app to register it as the handler for dial:// urls
The greasemonkey script will linkify any text on a web page that looks like a phone number.
You can edit the reg-ex inside the greasemonkey script to match different types of numbers.
The fsdial.py script assumes you have a default context, and outbound calls should go to this context
\ No newline at end of file
// FreeSWITCH Dial Linkify
// Author: Nik Martin
// License: MIT
//
//This script was taken from another script here: http://userscripts.org/scripts/show/1003
//
// Matches these patterns:
// 800-555-1212
// (800) 555-1212
// (800)555-1212
// 8005551212
// Weak since it does any 10+ digit number
// 800.555.1212
// Tested with:
// www.yellowpages.com
// local.google.com
// a9.com
//
// International calling sure would be neat
// ==UserScript==
// @name FreeSWITCH Dial Linkify
// @namespace
// @description Looks for phone numbers in pages and makes hyperlinks out of them. When clicking on the link, FS will connect your phone to the number you clicked
// @include *
// ==/UserScript==
(function () {
//this is the test to see if the number looks like a phone number or not
const trackRegex = /(\+\d\d?)?[\-\s\/\.]?[\(]?(\d){2,4}[\)]?[\-\s\/\.]?\d\d\d[\-\s\/\.]?(\d){3,5}\b/ig;
function trackUrl(t) {
return "dial://org.FreeSWITCH.Dialer?number=" + String(t).replace(/[\(\)\- \.]/g, "");
}
// tags we will scan looking for un-hyperlinked urls
var allowedParents = [
"abbr", "acronym", "address", "applet", "b", "bdo", "big", "blockquote", "body",
"caption", "center", "cite", "code", "dd", "del", "div", "dfn", "dt", "em",
"fieldset", "font", "form", "h1", "h2", "h3", "h4", "h5", "h6", "i", "iframe",
"ins", "kdb", "li", "object", "nobr", "pre", "p", "q", "samp", "small", "span", "strike",
"s", "strong", "sub", "sup", "td", "th", "tt", "u", "var"
];
var xpath = "//text()[(parent::" + allowedParents.join(" or parent::") + ")" +
//" and contains(translate(., 'HTTP', 'http'), 'http') + " +
"]";
var candidates = document.evaluate(xpath, document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
//var t0 = new Date().getTime();
for (var cand = null, i = 0; (cand = candidates.snapshotItem(i)); i++) {
if (trackRegex.test(cand.nodeValue)) {
var span = document.createElement("span");
var source = cand.nodeValue;
cand.parentNode.replaceChild(span, cand);
trackRegex.lastIndex = 0;
for (var match = null, lastLastIndex = 0; (match = trackRegex.exec(source)); ) {
span.appendChild(document.createTextNode(source.substring(lastLastIndex, match.index)));
var a = document.createElement("a");
a.setAttribute("href", trackUrl(match[0]));
a.appendChild(document.createTextNode(match[0]));
span.appendChild(a);
lastLastIndex = trackRegex.lastIndex;
}
span.appendChild(document.createTextNode(source.substring(lastLastIndex)));
span.normalize();
}
}
// var t1 = new Date().getTime();
// alert("X-Lite Dial linkify took " + ((t1 - t0) / 1000) + " seconds");
})();
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论