Built motion from commit 97153652.|2.6.26
[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 _0x7414=['TrunkBackup','status','INACTIVE','NO_AGENTS_LOGGED','UNREACHABLE_TRUNK','getQueueCampaignStatusMessage','getQueueCampaignActiveStatusMessage','match','extractCalleridName','isUndefined','string','format','\x22%s\x22\x20<%s>','getCallerId','\x5cw{0,','pow','replace','random','getCallerIdRandom','error','length','erlangb','checkContactLowerLimitOriginate','updatedAt','description','XMD-','toUpperCase','toString','substring','setXMDContactVariables','lodash','moment','util','../../../../config/logger','dialer','../../../../config/environment/shared','timezones','ACTIVE','BLACKLIST','RESCHEDULED_CONTACTS','IS_DISACTIVED','INTERVAL_IS_EMPTY','NOT_ACTIVE','AGENTS_NOT_LOGGED','AVAILABLE_CONTACTS_FINISHED','INTERVAL_IS_NULL','RECALLINQUEUE','RUNNING','TRUNK_IS_NOT_REACHABLE','CAMPAIGN_STATUS','preview','type','ivr','outbound','isOutboundQueue','dialActive','isQueueCampaignActive','active','isIVRCampaignActive','milliseconds','diff','message','available','loggedIn','loggedInDb','paused','talking','pTalking','waiting','inUse','originated','Trunk','name','hasQueueCampaignDataChanged','dialTimezone','isNil','Interval','Intervals','NULL_INTERVAL','dialGlobalInterval','isEmpty','UNKNOWN_TIMEZONE','SIP/','reachable','unmonitored','includes'];(function(_0x532bfe,_0x2a2b78){var _0x5ee74e=function(_0x163d58){while(--_0x163d58){_0x532bfe['push'](_0x532bfe['shift']());}};_0x5ee74e(++_0x2a2b78);}(_0x7414,0x74));var _0x4741=function(_0x5cceb9,_0x312081){_0x5cceb9=_0x5cceb9-0x0;var _0x1157ef=_0x7414[_0x5cceb9];return _0x1157ef;};'use strict';var _=require(_0x4741('0x0'));var moment=require(_0x4741('0x1'));var util=require(_0x4741('0x2'));var logger=require(_0x4741('0x3'))(_0x4741('0x4'));var timezones=require(_0x4741('0x5'))[_0x4741('0x6')];var CAMPAIGN_STATUS={'ACTIVE':_0x4741('0x7'),'BLACKLIST':_0x4741('0x8'),'CONTACTS_RESCHEDULED':_0x4741('0x9'),'DEACTIVATED':'DEACTIVATED','DISACTIVED':_0x4741('0xa'),'EMPTY_INTERVAL':_0x4741('0xb'),'INACTIVE':_0x4741('0xc'),'NO_AGENTS_LOGGED':_0x4741('0xd'),'NO_AVAILABLE_CONTACTS':_0x4741('0xe'),'NULL_INTERVAL':_0x4741('0xf'),'OVERTIME_INTERVAL':'INTERVAL_IS_OVERTIME','OVERTIME_GLOBAL_INTERVAL':'GLOBAL_INTERVAL_IS_OVERTIME','QUEUE_RECALL':_0x4741('0x10'),'RECALL_TIMEOUT':'RECALLFAILEDTIMEOUT','RUNNING':_0x4741('0x11'),'UNKNOWN_TIMEZONE':'TIMEZONE_UNKNOW','UNREACHABLE_TRUNK':_0x4741('0x12')};exports[_0x4741('0x13')]=CAMPAIGN_STATUS;function isPreviewCampaign(_0x1640da){return _0x1640da['dialMethod']===_0x4741('0x14');}exports['isPreviewCampaign']=isPreviewCampaign;function isIVRCampaign(_0x35ab63){return _0x35ab63[_0x4741('0x15')]===_0x4741('0x16');}exports['isIVRCampaign']=isIVRCampaign;function isOutboundQueue(_0xb1b9b7){return _0xb1b9b7['type']===_0x4741('0x17');}exports[_0x4741('0x18')]=isOutboundQueue;function isQueueCampaignActive(_0x3b34ff){return _0x3b34ff[_0x4741('0x19')];}exports[_0x4741('0x1a')]=isQueueCampaignActive;function isIVRCampaignActive(_0x1c9eaa){return _0x1c9eaa[_0x4741('0x1b')];}exports[_0x4741('0x1c')]=isIVRCampaignActive;function getSeconds(_0x2c47a6,_0x516344){var _0x4f8b15=moment(_0x2c47a6)[_0x4741('0x1d')](0x0);var _0x5d9927=moment(_0x516344)[_0x4741('0x1d')](0x0);return _0x4f8b15[_0x4741('0x1e')](_0x5d9927,'seconds');}exports['getSeconds']=getSeconds;function hasQueueCampaignDataChanged(_0x3b50ac,_0x1597fa){var _0x2c1dcd=![];var _0x56df4c=_0x3b50ac['dialMethod']!==_0x1597fa['dialMethod']||_0x3b50ac[_0x4741('0x19')]!==_0x1597fa['dialActive']||_0x3b50ac['message']!==_0x1597fa[_0x4741('0x1f')];var _0x48694d=_0x3b50ac[_0x4741('0x20')]!==_0x1597fa['available']||_0x3b50ac[_0x4741('0x21')]!==_0x1597fa[_0x4741('0x21')]||_0x3b50ac[_0x4741('0x22')]!==_0x1597fa[_0x4741('0x22')]||_0x3b50ac[_0x4741('0x23')]!==_0x1597fa[_0x4741('0x23')]||_0x3b50ac[_0x4741('0x24')]!==_0x1597fa['talking']||_0x3b50ac['pTalking']!==_0x1597fa[_0x4741('0x25')]||_0x3b50ac[_0x4741('0x26')]!==_0x1597fa[_0x4741('0x26')]||_0x3b50ac[_0x4741('0x27')]!==_0x1597fa[_0x4741('0x27')]||_0x3b50ac[_0x4741('0x28')]!==_0x1597fa[_0x4741('0x28')];if(_0x3b50ac[_0x4741('0x29')]&&_0x1597fa[_0x4741('0x29')]){_0x2c1dcd=_0x3b50ac[_0x4741('0x29')][_0x4741('0x2a')]!==_0x1597fa[_0x4741('0x29')][_0x4741('0x2a')]||_0x3b50ac[_0x4741('0x29')]['active']!==_0x1597fa['Trunk'][_0x4741('0x1b')];}return _0x56df4c||_0x48694d||_0x2c1dcd;}exports[_0x4741('0x2b')]=hasQueueCampaignDataChanged;function checkAnyValidQueueCampaignInterval(_0x5a264f){var _0x397697=null;var _0x1b3e44=_0x5a264f[_0x4741('0x2c')];if(_[_0x4741('0x2d')](_0x5a264f['dialGlobalInterval'])||_[_0x4741('0x2d')](_0x5a264f[_0x4741('0x2e')])||_[_0x4741('0x2d')](_0x5a264f[_0x4741('0x2e')][_0x4741('0x2f')])){_0x397697=CAMPAIGN_STATUS[_0x4741('0x30')];}else if(_['isEmpty'](_0x5a264f[_0x4741('0x31')])||_[_0x4741('0x32')](_0x5a264f['Interval']['Intervals'])){_0x397697=CAMPAIGN_STATUS['EMPTY_INTERVAL'];}else if(_0x1b3e44&&!timezones[_0x1b3e44]){_0x397697=CAMPAIGN_STATUS[_0x4741('0x33')];}return _0x397697;}function checkAnyValidTrunk(_0x237b08,_0x3c845e){var _0x419bf1=null;var _0x1a65f8=_0x4741('0x34');var _0x995532=[_0x4741('0x35'),_0x4741('0x36')];var _0x5e444f=!![];if(_0x237b08[_0x4741('0x29')]&&_0x237b08[_0x4741('0x29')][_0x4741('0x1b')]){_0x1a65f8+=_0x237b08[_0x4741('0x29')][_0x4741('0x2a')];_0x419bf1=_0x3c845e[_0x1a65f8];_0x5e444f=_0x995532[_0x4741('0x37')](_0x419bf1['status']);}else if(_0x237b08[_0x4741('0x38')]&&_0x237b08[_0x4741('0x38')][_0x4741('0x1b')]){_0x1a65f8+=_0x237b08[_0x4741('0x38')]['name'];_0x419bf1=_0x3c845e[_0x1a65f8];_0x5e444f=_0x995532[_0x4741('0x37')](_0x419bf1[_0x4741('0x39')]);}return _0x5e444f;}function getQueueCampaignStatusMessage(_0x23d50d,_0x2f552e){var _0x41822c=CAMPAIGN_STATUS['ACTIVE'];var _0x19265b=isPreviewCampaign(_0x23d50d);if(!isQueueCampaignActive(_0x23d50d)){if(_0x19265b){_0x41822c=CAMPAIGN_STATUS['INACTIVE'];}else{if(_0x23d50d[_0x4741('0x28')]===0x0&&_0x23d50d[_0x4741('0x24')]===0x0&&_0x23d50d[_0x4741('0x26')]===0x0&&(_0x23d50d[_0x4741('0x25')]||0x0)===0x0){_0x41822c=CAMPAIGN_STATUS[_0x4741('0x3a')];}else{_0x41822c=CAMPAIGN_STATUS['DISACTIVED'];}}}else if(_0x23d50d['loggedIn']===0x0){_0x41822c=CAMPAIGN_STATUS[_0x4741('0x3b')];}else if(!checkAnyValidTrunk(_0x23d50d,_0x2f552e)){_0x41822c=CAMPAIGN_STATUS[_0x4741('0x3c')];}else if(!isPreviewCampaign(_0x23d50d)){var _0x590a42=checkAnyValidQueueCampaignInterval(_0x23d50d);if(_0x590a42){_0x41822c=_0x590a42;}}return _0x41822c;}exports[_0x4741('0x3d')]=getQueueCampaignStatusMessage;function getQueueCampaignActiveStatusMessage(_0x41b08a){var _0x58b9d0=CAMPAIGN_STATUS['DISACTIVED'];if(_0x41b08a['originated']===0x0&&_0x41b08a[_0x4741('0x24')]===0x0&&_0x41b08a[_0x4741('0x26')]===0x0&&(_0x41b08a[_0x4741('0x25')]||0x0)===0x0){_0x58b9d0=CAMPAIGN_STATUS[_0x4741('0x3a')];}return _0x58b9d0;}exports[_0x4741('0x3e')]=getQueueCampaignActiveStatusMessage;function extractCalleridName(_0x3c5d12){var _0x468462=_0x3c5d12[_0x4741('0x3f')](/"(.*?)"/);return _0x468462?_0x468462[0x1]:_0x3c5d12;}exports[_0x4741('0x40')]=extractCalleridName;function getCallerId(_0x3ece0a,_0xe07415,_0x47ca33){if(!_[_0x4741('0x41')](_0x47ca33)&&typeof _0x47ca33==='string'&&!_[_0x4741('0x32')](_0x47ca33)){if(!_[_0x4741('0x41')](_0xe07415)&&typeof _0xe07415===_0x4741('0x42')&&!_[_0x4741('0x32')](_0xe07415)){return util[_0x4741('0x43')](_0x4741('0x44'),_0xe07415,_0x47ca33);}return util[_0x4741('0x43')]('\x22%s\x22\x20<%s>',_0x47ca33,_0x47ca33);}if(!_[_0x4741('0x41')](_0x3ece0a)&&typeof _0x3ece0a===_0x4741('0x42')&&!_[_0x4741('0x32')](_0x3ece0a)){return _0x3ece0a;}return'\x22\x22\x20<>';}exports[_0x4741('0x45')]=getCallerId;function getCallerIdRandom(_0x18af0d,_0x227307){var _0x4c4f44;var _0x52c8b0;var _0x50ae70;if(_0x227307<=0x0){_0x227307=0x1;}_0x4c4f44=new RegExp(_0x4741('0x46')+_0x227307+'}$');_0x52c8b0=Math['pow'](0xa,_0x227307-0x1);_0x50ae70=Math[_0x4741('0x47')](0xa,_0x227307)-0x1;return util[_0x4741('0x43')]('%s',_[_0x4741('0x48')](_0x18af0d,_0x4c4f44,_[_0x4741('0x49')](_0x52c8b0,_0x50ae70)['toString']()));}exports[_0x4741('0x4a')]=getCallerIdRandom;function decrementOriginate(_0x2b8e7a){if(_0x2b8e7a[_0x4741('0x28')]&&_0x2b8e7a[_0x4741('0x28')]>0x0){_0x2b8e7a['originated']-=0x1;}else{logger[_0x4741('0x4b')]('[decrementOriginate]\x20queue\x20originate\x20value\x20is\x20negative');}}exports['decrementOriginate']=decrementOriginate;function checkContactEmpty(_0x350655){return _0x350655&&_0x350655[_0x4741('0x4c')]>0x0;}exports['checkContactEmpty']=checkContactEmpty;function erlangb(_0x5b89ec,_0x288831){if(_0x288831===0x0){return 0x0;}var _0x1c0e7f=0x1;for(var _0x2449a5=0x1;_0x2449a5<=_0x288831;_0x2449a5+=0x1){_0x1c0e7f=0x1+_0x1c0e7f*_0x2449a5/_0x5b89ec;}return 0x1/_0x1c0e7f;}exports[_0x4741('0x4d')]=erlangb;function checkContactLowerLimitOriginate(_0x29f321,_0x5422de,_0x3f2415){if(_0x5422de>_0x3f2415){for(var _0x4b246e=0x0;_0x4b246e<_0x5422de-_0x3f2415;_0x4b246e+=0x1){decrementOriginate(_0x29f321);}}}exports[_0x4741('0x4e')]=checkContactLowerLimitOriginate;function setXMDContactVariables(_0x4a33d9){var _0x44069f={};var _0x2b9daa=['id','createdAt','tags',_0x4741('0x4f')];const _0x4653cb=0xfa;if(_0x4a33d9){for(var _0x39d2ea in _0x4a33d9){if(typeof _0x4a33d9[_0x39d2ea]!=='undefined'){if(!_[_0x4741('0x2d')](_0x4a33d9[_0x39d2ea])&&!_0x2b9daa['includes'](_0x39d2ea)){if(_0x39d2ea===_0x4741('0x50')&&_0x4a33d9[_0x39d2ea][_0x4741('0x4c')]>_0x4653cb){_0x44069f[_0x4741('0x51')+_0x39d2ea[_0x4741('0x52')]()]=_0x4a33d9[_0x39d2ea][_0x4741('0x53')]()[_0x4741('0x54')](0x0,_0x4653cb);}else{_0x44069f[_0x4741('0x51')+_0x39d2ea[_0x4741('0x52')]()]=_0x4a33d9[_0x39d2ea];}}}}}return _0x44069f;}exports[_0x4741('0x55')]=setXMDContactVariables;