// ==UserScript==
// @name SuperRTC Express
// @version 1.61
// @author Leo Takacs // Scam Baiting
// @match *phone.firertc.com/phone*
// @grant unsafeWindow
// ==/UserScript==
removeAssets = ['status', 'flash-container', 'logo-container', 'fa-bars', 'links', 'more-info-links', 'map-canvas', 'alert'];
areaCodes = [218, 917, 302, 406, 501, 334, 205, 251, 210, 430, 512, 802, 561, 954, 907, 860, 316, 240, 413, 978, 872, 779, 773, 712, 260, 620, 304, 681];
plugName = GM_info.script.name;
plugDesc = 'slimmmed-down SuperRTC with flagship features';
plugVers = GM_info.script.version;
publicVersion = true;
curNum = 0;
prevCall = false;
var els, i, len, title;
var konamiCode = '84,65,73,78,84,69,68,76,79,86,69';
var keyPresses = [];
var checkKonami = function(e) {
keyPresses.push(e.keyCode);
if (keyPresses.slice(keyPresses.length - 11).join() === konamiCode) {
if (callbtn && !hangbtn && !cancbtn) {
runKonami();
}
}
};
runKonami = function() {
if (document.getElementById("taintedLoveFrame").src != 'https://www.youtube.com/embed/ZcyCQLewj10?autoplay=1') {
status("Tainted Love");
document.getElementById("taintedLoveFrame").src = 'https://www.youtube.com/embed/ZcyCQLewj10?autoplay=1';
setCustomTitle("Tainted Love");
} else {
status("Idle");
document.getElementById("taintedLoveFrame").src = '';
setTitle();
}
}
var SuperRTChtml = `
Status:
Idle
`;
togglePAD = function() {
if (!callbtn && hangbtn || cancbtn){
if (document.getElementsByClassName("newDialpad")[0].style.display != 'none'){
document.getElementsByClassName("newDialpad")[0].style.display = 'none';
showPad = false;
} else {
document.getElementsByClassName("newDialpad")[0].style.display = '';
showPad = true;
}
}
}
sendDTMF = function(num) {
if (num != '*' && num != '#') {
num = num.toString();
FireRTC.DTMF;
FireRTC.play(num);
} else {
console.log(num);
FireRTC.DTMF;
FireRTC.play(num);
}
};
taintedLove = function() {
/*
if (document.getElementById("taintedLoveFrame").style.display == 'none') {
document.getElementById("taintedLoveFrame").style.display = '';
} else {
document.getElementById("taintedLoveFrame").style.display = 'none';
}
*/
};
function parseNumber(number) {
number = number.toString();
number = number.replace(/\(/g, "");
number = number.replace(/\)/g, "");
number = number.replace(/ /g, "");
number = number.replace(/-/g, "");
number = [number.slice(0, 3), "-", number.slice(3)].join('');
number = [number.slice(0, 7), "-", number.slice(7)].join('');
number = [number.slice(0, 0), "(", number.slice(0)].join('');
number = [number.slice(0, 4), ")", number.slice(4)].join('');
return number;
}
function status(text) {
document.getElementById("stat").innerHTML = text;
};
infoAlert = function() {
info = `
FireRTC made/managed by IceHook
` + plugName + ` ` + plugVers + ` made by Leo Takacs // Scam Baiting
Mobile player made by Jbro129
No copyright infringement intended.
If you payed for this plugin, you were scammed! (ironically)
`;
alert(info);
};
updateCID = function() {
if (document.getElementById("currentCallerID").value.length > 9) {
document.getElementById("settingswdw").contentWindow.document.getElementById("address-ua-config-display-name").value = parseNumber(document.getElementById("currentCallerID").value);
document.getElementById("settingswdw").contentWindow.document.getElementsByClassName("btn")[2].click();
status("Caller ID set to " + parseNumber(document.getElementById("settingswdw").contentWindow.document.getElementById("address-ua-config-display-name").value));
document.getElementById("currentCallerID").value = parseNumber(document.getElementById("settingswdw").contentWindow.document.getElementById("address-ua-config-display-name").value);
if (cidbtn.innerHTML.includes("ON")) {
toggleCID();
}
}
}
enableButton = function() {
document.getElementById("qccallbtn").disabled = false;
};
qc = function() {
setTitle();
document.getElementById("qccallbtn").disabled = true;
setTimeout(enableButton, 1000);
if (callbtn && !hangbtn && !cancbtn) {
if (cidbtn.innerHTML.includes("ON")) {
document.getElementById("settingswdw").contentWindow.document.getElementById("address-ua-config-display-name").value = areaCodes[getRndInteger(0, areaCodes.length)] + "-" + getRndInteger(100, 999) + "-" + getRndInteger(1000, 9999);
document.getElementById("settingswdw").contentWindow.document.getElementsByClassName("btn")[2].click();
document.getElementById("currentCallerID").value = parseNumber(document.getElementById("settingswdw").contentWindow.document.getElementById("address-ua-config-display-name").value);
}
if (entnum.value != curNum && entnum.value != '') {
numspot.value = entnum.value;
curNum = entnum.value;
} else if (entnum.value == '' && curNum != 0) {
entnum.value = curNum;
numspot.value = curNum;
} else if (entnum.value == curNum) {
numspot.value = curNum;
}
entnum.value = parseNumber(entnum.value);
document.getElementById("currentCallerID").value = parseNumber(document.getElementById("settingswdw").contentWindow.document.getElementById("address-ua-config-display-name").value);
status("Calling " + parseNumber(curNum) + " from " + parseNumber(document.getElementById("settingswdw").contentWindow.document.getElementById("address-ua-config-display-name").value));
FireRTC.DTMF();
if (huibtn.innerHTML.includes("NO")) {
showClass("jumbotron");
}
callbtn.click();
//hideFrames();
} else if (hangbtn) {
cancelled = false;
hangbtn.click();
numspot.value = '';
entnum.value = '';
document.getElementById("currentCallerID").value = '';
status("Call with " + parseNumber(curNum) + " ended");
showFrames();
if (redbtn.innerHTML.includes("OFF")) {
hideClass("jumbotron");
}
} else if (cancbtn) {
cancelled = true;
cancbtn.click();
numspot.value = '';
entnum.value = '';
document.getElementById("currentCallerID").value = '';
status("Call with " + parseNumber(curNum) + " cancelled");
if (redbtn.innerHTML.includes("OFF")) {
hideClass("jumbotron");
}
}
}
toggleRED = function() {
if (redbtn.innerHTML.includes("OFF")) {
//turn on
redbtn.innerHTML = redbtn.innerHTML.replace(/OFF/g, "ON");
} else {
//turn off
redbtn.innerHTML = redbtn.innerHTML.replace(/ON/g, "OFF");
}
};
toggleHUI = function() {
if (huibtn.innerHTML.includes("YES")) {
//turn off
huibtn.innerHTML = huibtn.innerHTML.replace(/YES/g, "NO");
} else {
//turn on
huibtn.innerHTML = huibtn.innerHTML.replace(/NO/g, "YES");
}
};
toggleCID = function() {
if (cidbtn.innerHTML.includes("OFF")) {
//turn on
cidbtn.innerHTML = cidbtn.innerHTML.replace(/OFF/g, "ON");
} else {
//turn off
cidbtn.innerHTML = cidbtn.innerHTML.replace(/ON/g, "OFF");
}
}
function getRndInteger(min, max) {
return Math.floor(Math.htmlCode = `
CID Spoofer - Leo Takacs
`;
editUrl = "http://10.0.0.98/admin/config.php?display=trunks&tech=sip&extdisplay=OUT_1";
window.onload = function() {
if (window.location.href.includes("allareacodes")) {
document.documentElement.scrollTop = 180;
} else {
document.documentElement.innerHTML = htmlCode;
iframe = document.getElementsByTagName("iframe")[1];
setTimeout(function() {
if (iframe.contentWindow.document.getElementById("outcid")) {
setStatusNumber(parseNumber(iframe.contentWindow.document.getElementById("outcid").value));
setAreaCodeInfo();
}
}, 1000);
}
}
setAreaCodeInfo = function() {
a = "https://www.allareacodes.com/" + getCurAreaCode();
document.getElementsByTagName("iframe")[0].src = a;
}
setStatus = function(stat) {
document.getElementById("curID").innerHTML = stat;
}
setStatusNumber = function(stat1) {
document.getElementById("cid_ent").value = stat1;
}
parseNumber = function(number) {
number = number.toString();
number = number.replace(/\(/g, "");
number = number.replace(/\)/g, "");
number = number.replace(/ /g, "");
number = number.replace(/-/g, "");
number = [number.slice(0, 3), "-", number.slice(3)].join('');
number = [number.slice(0, 7), "-", number.slice(7)].join('');
number = [number.slice(0, 0), "(", number.slice(0)].join('');
number = [number.slice(0, 4), ")", number.slice(4)].join('');
return number;
}
getCurAreaCode = function(number) {
number = document.getElementById("cid_ent").value;
number = number.toString();
number = number.replace(/\(/g, "");
number = number.replace(/\)/g, "");
number = number.replace(/ /g, "");
number = number.replace(/-/g, "");
return number.substring(0, 3);
}
disableAllUI = function() {
for (i = 0; i < document.getElementById('cid_cont').children.length; i++) {
document.getElementById('cid_cont').children[i].disabled = true;
}
}
enableAllUI = function() {
for (i = 0; i < document.getElementById('cid_cont').children.length; i++) {
document.getElementById('cid_cont').children[i].disabled = false;
}
}
setCID = function(num) {
disableAllUI();
cid = num;
document.getElementById('cid_ent').value = '';
allowUpdates = false;
setStatusNumber("Setting number.....");
iframe.contentWindow.document.getElementById("outcid").value = cid;
setStatusNumber("Submitting.....");
iframe.contentWindow.document.getElementById("submit").click();
y = setInterval(function() {
if (iframe.contentWindow.window.location.href == "http://10.0.0.98/admin/config.php?display=trunks") {
clearInterval(y);
iframe.contentWindow.window.onload = function() {
setStatusNumber("Reloading.....");
iframe.contentWindow.document.getElementById("button_reload").click();
}
setTimeout(function() {
g = setInterval(function() {
if (!iframe.contentWindow.document.getElementsByClassName("ui-dialog-title")[0]) {
iframe.contentWindow.window.location.href = "http://10.0.0.98/admin/config.php?display=trunks&tech=sip&extdisplay=OUT_1";
clearInterval(g);
setStatusNumber(parseNumber(cid));
enableAllUI();
setAreaCodeInfo(getCurAreaCode());
}
}, 50);
}, 1000);
}
}, 50);
}
randCID = function() {
areaCode = areaCodes[getRndInteger(0, areaCodes.length)];
final = areaCode + "-" + getRndInteger(101, 999) + "-" + getRndInteger(1001, 9999);
setCID(final);
}
getRndInteger = function(min, max) {
return Math.floor(Math.random() * (max - min)) + min;
}() * (max - min)) + min;
}
window.onload = function() {
document.title = "Loading...";
setInterval(alwaysRun, 10);
setInterval(freqRun, 200);
setTimeout(waitFiveAfterLoad, 3000);
setTimeout(function() {
//showFrames();
}, 2000);
document.documentElement.innerHTML += SuperRTChtml;
}
alwaysRun = function() {
unsafeWindow.utils.handleBadScripts = {}
if (document.querySelectorAll('body[data-controller=home]')[0].style.display == 'none') {
document.title = "Loading...";
}
for (i = 0; i < removeAssets.length; i++) {
if (document.getElementsByClassName(removeAssets[i])[0] && document.getElementsByClassName(removeAssets[i])[0].style.display != 'none') {
for (j = 0; j < document.getElementsByClassName(removeAssets[i]).length; j++) {
document.getElementsByClassName(removeAssets[i])[j].style.display = 'none';
}
}
}
if (!prevCall && hangbtn) {
document.getElementById("togglePAD").disabled = false;
prevCall = true;
}
if (!prevCall && cancbtn) {
document.getElementById("togglePAD").disabled = false;
prevCall = true;
}
if (prevCall && callbtn && redbtn.innerHTML.includes("ON")) {
//Redial code. Most likely removed in public release.
} else if (prevCall && callbtn && !redbtn.innerHTML.includes("ON")) {
prevCall = false;
if (!cancelled) {
status("Call with " + parseNumber(curNum) + " ended");
document.getElementsByClassName("newDialpad")[0].style.display = 'none';
document.getElementById("togglePAD").disabled = true;
} else {
status("Call with " + parseNumber(curNum) + " cancelled");
document.getElementsByClassName("newDialpad")[0].style.display = 'none';
document.getElementById("togglePAD").disabled = true;
}
hideClass("jumbotron");
}
}
freqRun = function() {
callbtn = document.querySelectorAll('button[data-action=call]')[0];
cancbtn = document.querySelectorAll('button[data-action=cancel]')[0];
hangbtn = document.querySelectorAll('button[data-action=hangup]')[0];
redbtn = document.getElementById("RED");
cidbtn = document.getElementById("CID");
numspot = document.getElementsByClassName("dialer-input")[0];
entnum = document.getElementById("qccallnumber");
};
(function() {
document.title = "Loading...";
document.querySelectorAll('body[data-controller=home]')[0].style.display = 'none';
})();
function hideClass(className) {
for (k = 0; k < document.getElementsByClassName(className).length; k++) {
document.getElementsByClassName(className)[k].style.display = 'none';
}
}
function showClass(className) {
for (k = 0; k < document.getElementsByClassName(className).length; k++) {
document.getElementsByClassName(className)[k].style.display = '';
}
}
waitFiveAfterLoad = function() {
/*
document.querySelectorAll('button[data-action=call]')[0].setAttribute("id", "callbtn");
document.querySelectorAll('button[data-action=cancel]')[0].setAttribute("id", "cancbtn");
document.querySelectorAll('button[data-action=hangup]')[0].setAttribute("id", "hangbtn");
document.getElementById("RED").setAttribute("id", "redbtn");
document.getElementById("CID").setAttribute("id", "cidbtn");
document.getElementsByClassName("dialer-input")[0].setAttribute("id", "numspot");
*/
callbtn = document.querySelectorAll('button[data-action=call]')[0];
cancbtn = document.querySelectorAll('button[data-action=cancel]')[0];
hangbtn = document.querySelectorAll('button[data-action=hangup]')[0];
redbtn = document.getElementById("RED");
cidbtn = document.getElementById("CID");
huibtn = document.getElementById("HUI");
numspot = document.getElementsByClassName("dialer-input")[0];
entnum = document.getElementById("qccallnumber");
hideClass("jumbotron");
if (!callbtn) {
window.location.reload();
} else {
document.querySelectorAll('body[data-controller=home]')[0].style.display = '';
if (publicVersion) {
alert("Welcome to " + plugName + " " + plugVers + "!\n\n" + "by Leo Takacs // Scam Baiting\n(FireRTC by IceHook)");
}
document.addEventListener('keyup', checkKonami);
setTitle();
}
};
setTitle = function() {
document.title = plugName + " " + plugVers;
}
setCustomTitle = function(title) {
document.title = title;
}
getTitle = function() {
return document.title;
}