You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
95 lines
2.8 KiB
95 lines
2.8 KiB
'use strict';
|
|
|
|
(function(window) {
|
|
let exports = {
|
|
ctIncoming: 0, ctOutgoing: 1, ctInternal: 2,
|
|
resAnswered: 0, resNoAnswer: 1, resBusy: 2, resFailed: 3, resOther: 4, resCancelled: 5,
|
|
ivrNone: 0, ivrMenu: 1, ivrTarget: 2, ivrAny: 3,
|
|
|
|
convertToDuration: s => {
|
|
return [
|
|
parseInt(s / 60 % 60),
|
|
parseInt(s % 60)
|
|
].join(":")
|
|
.replace(/\b(\d)\b/g, "0$1")
|
|
},
|
|
|
|
prettifyPhone: s => {
|
|
if (s === 'IVR') {
|
|
return 'Меню';
|
|
}
|
|
|
|
s = ('' + s).replace(/\D/g, '');
|
|
|
|
let match = s.match(/^(7|8|)?8332(\d{6})$/);
|
|
if (match) {
|
|
return [(match[1] && match[1] !== '8') ? '+' + match[1] + ' ' : '+7 ',
|
|
'(8332) ', match[2]].join('');
|
|
}
|
|
|
|
match = s.match(/^(7|8|)?(\d{3})(\d{3})(\d{4})$/);
|
|
if (match) {
|
|
return [(match[1] && match[1] !== '8') ? '+' + match[1] + ' ' : '+7 ',
|
|
'(', match[2], ') ', match[3], match[4]].join('');
|
|
} else {
|
|
return s;
|
|
}
|
|
},
|
|
|
|
uglifyPhone: function(num) {
|
|
num = ('' + num).replace(/\D/g, '');
|
|
let match = num.match(/^(7|8|)?(\d{10})$/);
|
|
if (match) {
|
|
if (match[1] && (match[1] === '7' || match[1] === '8')) {
|
|
return match[2]
|
|
} else {
|
|
return [match[1], match[2]].join('');
|
|
}
|
|
}
|
|
|
|
return num;
|
|
},
|
|
|
|
callTypeToString: function(ct) {
|
|
switch (ct) {
|
|
case exports.ctIncoming: { return "incoming"; }
|
|
case exports.ctOutgoing: { return "outgoing"; }
|
|
case exports.ctInternal: { return "internal"; }
|
|
default: { return ""; }
|
|
}
|
|
},
|
|
|
|
toArray: function(a) {
|
|
if (Array.isArray(a)) {
|
|
return a;
|
|
} else if (a === null || a === undefined) {
|
|
return [];
|
|
} else {
|
|
return [a];
|
|
}
|
|
}
|
|
};
|
|
|
|
|
|
exports.ctMaxSet = ((1 << (Math.max(exports.ctIncoming, exports.ctOutgoing, exports.ctInternal) + 1)) - 1);
|
|
exports.resMaxSet = ((1 << (Math.max(exports.resAnswered, exports.resCancelled) + 1)) - 1);
|
|
|
|
|
|
exports.getCallType = function(src, dst) {
|
|
if (src.length >= 6) {
|
|
return exports.ctIncoming;
|
|
}
|
|
|
|
if (src.length < 6 && dst.length >= 6) {
|
|
return exports.ctOutgoing;
|
|
}
|
|
|
|
return exports.ctInternal;
|
|
};
|
|
|
|
if ( typeof module === 'object' && module && typeof module.exports === 'object' ) {
|
|
module.exports = exports;
|
|
} else {
|
|
window.common = exports;
|
|
}
|
|
}(this))
|
|
|