6b4617996029c5ecc43d12488bbde10789f11a2b
[motion2.git] / server / services / ami / dialer / utils / index.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x4315=['decrementOriginate','length','checkContactEmpty','erlangb','[checkContactLowerLimitOriginate]\x20','checkContactLowerLimitOriginate','tags','updatedAt','undefined','description','toUpperCase','substring','XMD-','lodash','moment','util','timezones','ACTIVE','BLACKLIST','IS_DISACTIVED','INTERVAL_IS_EMPTY','NOT_ACTIVE','AGENTS_NOT_LOGGED','INTERVAL_IS_NULL','RECALLINQUEUE','RECALLFAILEDTIMEOUT','RUNNING','TIMEZONE_UNKNOW','TRUNK_IS_NOT_REACHABLE','CAMPAIGN_STATUS','dialMethod','isPreviewCampaign','type','isIVRCampaign','outbound','isOutboundQueue','dialActive','active','milliseconds','diff','seconds','getSeconds','message','available','loggedIn','loggedInDb','paused','talking','pTalking','inUse','originated','Trunk','name','hasQueueCampaignDataChanged','isNil','dialGlobalInterval','Interval','Intervals','isEmpty','EMPTY_INTERVAL','UNKNOWN_TIMEZONE','reachable','unmonitored','includes','status','TrunkBackup','INACTIVE','waiting','DISACTIVED','NO_AGENTS_LOGGED','UNREACHABLE_TRUNK','getQueueCampaignStatusMessage','getQueueCampaignActiveStatusMessage','match','extractCalleridName','isUndefined','string','format','\x22%s\x22\x20<%s>','\x22\x22\x20<>','getCallerId','\x5cw{0,','pow','replace','random','toString','getCallerIdRandom','error'];(function(_0x397e5f,_0x454c8f){var _0x5302b8=function(_0x1a29ef){while(--_0x1a29ef){_0x397e5f['push'](_0x397e5f['shift']());}};_0x5302b8(++_0x454c8f);}(_0x4315,0x65));var _0x5431=function(_0x152db2,_0x8dc4e4){_0x152db2=_0x152db2-0x0;var _0xd714ec=_0x4315[_0x152db2];return _0xd714ec;};'use strict';var _=require(_0x5431('0x0'));var moment=require(_0x5431('0x1'));var util=require(_0x5431('0x2'));var logger=require('../../../../config/logger')('dialer');var timezones=require('../../../../config/environment/shared')[_0x5431('0x3')];var CAMPAIGN_STATUS={'ACTIVE':_0x5431('0x4'),'BLACKLIST':_0x5431('0x5'),'CONTACTS_RESCHEDULED':'RESCHEDULED_CONTACTS','DEACTIVATED':'DEACTIVATED','DISACTIVED':_0x5431('0x6'),'EMPTY_INTERVAL':_0x5431('0x7'),'INACTIVE':_0x5431('0x8'),'NO_AGENTS_LOGGED':_0x5431('0x9'),'NO_AVAILABLE_CONTACTS':'AVAILABLE_CONTACTS_FINISHED','NULL_INTERVAL':_0x5431('0xa'),'OVERTIME_INTERVAL':'INTERVAL_IS_OVERTIME','OVERTIME_GLOBAL_INTERVAL':'GLOBAL_INTERVAL_IS_OVERTIME','QUEUE_RECALL':_0x5431('0xb'),'RECALL_TIMEOUT':_0x5431('0xc'),'RUNNING':_0x5431('0xd'),'UNKNOWN_TIMEZONE':_0x5431('0xe'),'UNREACHABLE_TRUNK':_0x5431('0xf')};exports[_0x5431('0x10')]=CAMPAIGN_STATUS;function isPreviewCampaign(_0x527128){return _0x527128[_0x5431('0x11')]==='preview';}exports[_0x5431('0x12')]=isPreviewCampaign;function isIVRCampaign(_0x551394){return _0x551394[_0x5431('0x13')]==='ivr';}exports[_0x5431('0x14')]=isIVRCampaign;function isOutboundQueue(_0x11c597){return _0x11c597[_0x5431('0x13')]===_0x5431('0x15');}exports[_0x5431('0x16')]=isOutboundQueue;function isQueueCampaignActive(_0x455691){return _0x455691[_0x5431('0x17')];}exports['isQueueCampaignActive']=isQueueCampaignActive;function isIVRCampaignActive(_0x2aba51){return _0x2aba51[_0x5431('0x18')];}exports['isIVRCampaignActive']=isIVRCampaignActive;function getSeconds(_0x2f68f1,_0x48240a){var _0x1afb33=moment(_0x2f68f1)[_0x5431('0x19')](0x0);var _0x3d7253=moment(_0x48240a)['milliseconds'](0x0);return _0x1afb33[_0x5431('0x1a')](_0x3d7253,_0x5431('0x1b'));}exports[_0x5431('0x1c')]=getSeconds;function hasQueueCampaignDataChanged(_0x4b6b4a,_0x8d8f5e){var _0x2a0f51=![];var _0x2e3467=_0x4b6b4a[_0x5431('0x11')]!==_0x8d8f5e['dialMethod']||_0x4b6b4a[_0x5431('0x17')]!==_0x8d8f5e['dialActive']||_0x4b6b4a['message']!==_0x8d8f5e[_0x5431('0x1d')];var _0x1f112f=_0x4b6b4a[_0x5431('0x1e')]!==_0x8d8f5e[_0x5431('0x1e')]||_0x4b6b4a[_0x5431('0x1f')]!==_0x8d8f5e[_0x5431('0x1f')]||_0x4b6b4a[_0x5431('0x20')]!==_0x8d8f5e['loggedInDb']||_0x4b6b4a[_0x5431('0x21')]!==_0x8d8f5e[_0x5431('0x21')]||_0x4b6b4a[_0x5431('0x22')]!==_0x8d8f5e[_0x5431('0x22')]||_0x4b6b4a[_0x5431('0x23')]!==_0x8d8f5e[_0x5431('0x23')]||_0x4b6b4a['waiting']!==_0x8d8f5e['waiting']||_0x4b6b4a[_0x5431('0x24')]!==_0x8d8f5e[_0x5431('0x24')]||_0x4b6b4a[_0x5431('0x25')]!==_0x8d8f5e[_0x5431('0x25')];if(_0x4b6b4a[_0x5431('0x26')]&&_0x8d8f5e['Trunk']){_0x2a0f51=_0x4b6b4a['Trunk'][_0x5431('0x27')]!==_0x8d8f5e[_0x5431('0x26')][_0x5431('0x27')]||_0x4b6b4a[_0x5431('0x26')][_0x5431('0x18')]!==_0x8d8f5e[_0x5431('0x26')][_0x5431('0x18')];}return _0x2e3467||_0x1f112f||_0x2a0f51;}exports[_0x5431('0x28')]=hasQueueCampaignDataChanged;function checkAnyValidQueueCampaignInterval(_0x125bff){var _0x37b017=null;var _0x59c7b6=_0x125bff['dialTimezone'];if(_[_0x5431('0x29')](_0x125bff[_0x5431('0x2a')])||_['isNil'](_0x125bff[_0x5431('0x2b')])||_['isNil'](_0x125bff[_0x5431('0x2b')][_0x5431('0x2c')])){_0x37b017=CAMPAIGN_STATUS['NULL_INTERVAL'];}else if(_[_0x5431('0x2d')](_0x125bff['dialGlobalInterval'])||_[_0x5431('0x2d')](_0x125bff[_0x5431('0x2b')][_0x5431('0x2c')])){_0x37b017=CAMPAIGN_STATUS[_0x5431('0x2e')];}else if(_0x59c7b6&&!timezones[_0x59c7b6]){_0x37b017=CAMPAIGN_STATUS[_0x5431('0x2f')];}return _0x37b017;}function checkAnyValidTrunk(_0x2786cf,_0x16123f){var _0x4154c8=null;var _0x549975='SIP/';var _0x490a20=[_0x5431('0x30'),_0x5431('0x31')];var _0x1c8bff=!![];if(_0x2786cf[_0x5431('0x26')]&&_0x2786cf[_0x5431('0x26')][_0x5431('0x18')]){_0x549975+=_0x2786cf[_0x5431('0x26')][_0x5431('0x27')];_0x4154c8=_0x16123f[_0x549975];_0x1c8bff=_0x490a20[_0x5431('0x32')](_0x4154c8[_0x5431('0x33')]);}else if(_0x2786cf['TrunkBackup']&&_0x2786cf[_0x5431('0x34')][_0x5431('0x18')]){_0x549975+=_0x2786cf[_0x5431('0x34')][_0x5431('0x27')];_0x4154c8=_0x16123f[_0x549975];_0x1c8bff=_0x490a20[_0x5431('0x32')](_0x4154c8[_0x5431('0x33')]);}return _0x1c8bff;}function getQueueCampaignStatusMessage(_0x4a83c1,_0x156be8){var _0x1ae0db=CAMPAIGN_STATUS[_0x5431('0x4')];var _0x36de8d=isPreviewCampaign(_0x4a83c1);if(!isQueueCampaignActive(_0x4a83c1)){if(_0x36de8d){_0x1ae0db=CAMPAIGN_STATUS[_0x5431('0x35')];}else{if(_0x4a83c1['originated']===0x0&&_0x4a83c1[_0x5431('0x22')]===0x0&&_0x4a83c1[_0x5431('0x36')]===0x0&&(_0x4a83c1[_0x5431('0x23')]||0x0)===0x0){_0x1ae0db=CAMPAIGN_STATUS[_0x5431('0x35')];}else{_0x1ae0db=CAMPAIGN_STATUS[_0x5431('0x37')];}}}else if(_0x4a83c1[_0x5431('0x1f')]===0x0){_0x1ae0db=CAMPAIGN_STATUS[_0x5431('0x38')];}else if(!checkAnyValidTrunk(_0x4a83c1,_0x156be8)){_0x1ae0db=CAMPAIGN_STATUS[_0x5431('0x39')];}else if(!isPreviewCampaign(_0x4a83c1)){var _0x41eb4c=checkAnyValidQueueCampaignInterval(_0x4a83c1);if(_0x41eb4c){_0x1ae0db=_0x41eb4c;}}return _0x1ae0db;}exports[_0x5431('0x3a')]=getQueueCampaignStatusMessage;function getQueueCampaignActiveStatusMessage(_0x27f95d){var _0xc2c02b=CAMPAIGN_STATUS[_0x5431('0x37')];if(_0x27f95d[_0x5431('0x25')]===0x0&&_0x27f95d[_0x5431('0x22')]===0x0&&_0x27f95d['waiting']===0x0&&(_0x27f95d[_0x5431('0x23')]||0x0)===0x0){_0xc2c02b=CAMPAIGN_STATUS[_0x5431('0x35')];}return _0xc2c02b;}exports[_0x5431('0x3b')]=getQueueCampaignActiveStatusMessage;function extractCalleridName(_0x3fd35c){var _0x19c41d=_0x3fd35c[_0x5431('0x3c')](/"(.*?)"/);return _0x19c41d?_0x19c41d[0x1]:_0x3fd35c;}exports[_0x5431('0x3d')]=extractCalleridName;function getCallerId(_0xc4b002,_0x553452,_0x11e9b8){if(!_[_0x5431('0x3e')](_0x11e9b8)&&typeof _0x11e9b8==='string'&&!_['isEmpty'](_0x11e9b8)){if(!_['isUndefined'](_0x553452)&&typeof _0x553452===_0x5431('0x3f')&&!_[_0x5431('0x2d')](_0x553452)){return util[_0x5431('0x40')](_0x5431('0x41'),_0x553452,_0x11e9b8);}return util[_0x5431('0x40')](_0x5431('0x41'),_0x11e9b8,_0x11e9b8);}if(!_[_0x5431('0x3e')](_0xc4b002)&&typeof _0xc4b002==='string'&&!_[_0x5431('0x2d')](_0xc4b002)){return _0xc4b002;}return _0x5431('0x42');}exports[_0x5431('0x43')]=getCallerId;function getCallerIdRandom(_0x56cbb4,_0x15b435){var _0x1ca8ae;var _0x19fa11;var _0x2174ed;if(_0x15b435<=0x0){_0x15b435=0x1;}_0x1ca8ae=new RegExp(_0x5431('0x44')+_0x15b435+'}$');_0x19fa11=Math[_0x5431('0x45')](0xa,_0x15b435-0x1);_0x2174ed=Math['pow'](0xa,_0x15b435)-0x1;return util['format']('%s',_[_0x5431('0x46')](_0x56cbb4,_0x1ca8ae,_[_0x5431('0x47')](_0x19fa11,_0x2174ed)[_0x5431('0x48')]()));}exports[_0x5431('0x49')]=getCallerIdRandom;function decrementOriginate(_0x359282,_0x5a6f96){if(_0x359282[_0x5431('0x25')]&&_0x359282[_0x5431('0x25')]>0x0){_0x359282['originated']-=0x1;}else{logger[_0x5431('0x4a')]('[decrementOriginate]\x20queue\x20originate\x20value',_0x5a6f96);}}exports[_0x5431('0x4b')]=decrementOriginate;function checkContactEmpty(_0x295262){return _0x295262&&_0x295262[_0x5431('0x4c')]>0x0;}exports[_0x5431('0x4d')]=checkContactEmpty;function erlangb(_0x13f5d4,_0x198b5c){if(_0x198b5c===0x0){return 0x0;}var _0x213430=0x1;for(var _0x35dc6d=0x1;_0x35dc6d<=_0x198b5c;_0x35dc6d+=0x1){_0x213430=0x1+_0x213430*_0x35dc6d/_0x13f5d4;}return 0x1/_0x213430;}exports[_0x5431('0x4e')]=erlangb;function checkContactLowerLimitOriginate(_0x4793f9,_0x186388,_0x345708){if(_0x186388>_0x345708){for(var _0x3d810b=0x0;_0x3d810b<_0x186388-_0x345708;_0x3d810b+=0x1){decrementOriginate(_0x4793f9,_0x5431('0x4f'));}}}exports[_0x5431('0x50')]=checkContactLowerLimitOriginate;function setXMDContactVariables(_0x1da415){var _0x275757={};var _0x216800=['id','createdAt',_0x5431('0x51'),_0x5431('0x52')];const _0x57a0f2=0xfa;if(_0x1da415){for(var _0x2d0f2c in _0x1da415){if(typeof _0x1da415[_0x2d0f2c]!==_0x5431('0x53')){if(!_['isNil'](_0x1da415[_0x2d0f2c])&&!_0x216800['includes'](_0x2d0f2c)){if(_0x2d0f2c===_0x5431('0x54')&&_0x1da415[_0x2d0f2c][_0x5431('0x4c')]>_0x57a0f2){_0x275757['XMD-'+_0x2d0f2c[_0x5431('0x55')]()]=_0x1da415[_0x2d0f2c][_0x5431('0x48')]()[_0x5431('0x56')](0x0,_0x57a0f2);}else{_0x275757[_0x5431('0x57')+_0x2d0f2c[_0x5431('0x55')]()]=_0x1da415[_0x2d0f2c];}}}}}return _0x275757;}exports['setXMDContactVariables']=setXMDContactVariables;