e62c0aedb6bad756be823f8460abd7f9efe68875
[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 _0xdca6=['timezones','ACTIVE','RESCHEDULED_CONTACTS','DEACTIVATED','IS_DISACTIVED','INTERVAL_IS_EMPTY','NOT_ACTIVE','AVAILABLE_CONTACTS_FINISHED','RECALLFAILEDTIMEOUT','RUNNING','TIMEZONE_UNKNOW','TRUNK_IS_NOT_REACHABLE','CAMPAIGN_STATUS','dialMethod','preview','isIVRCampaign','type','isOutboundQueue','dialActive','isQueueCampaignActive','active','milliseconds','diff','seconds','getSeconds','message','available','loggedIn','loggedInDb','talking','pTalking','waiting','inUse','originated','Trunk','name','hasQueueCampaignDataChanged','dialTimezone','dialGlobalInterval','isNil','Interval','Intervals','NULL_INTERVAL','isEmpty','EMPTY_INTERVAL','SIP/','reachable','unmonitored','status','TrunkBackup','includes','INACTIVE','DISACTIVED','NO_AGENTS_LOGGED','UNREACHABLE_TRUNK','getQueueCampaignActiveStatusMessage','match','extractCalleridName','isUndefined','string','format','\x22%s\x22\x20<%s>','\x22\x22\x20<>','getCallerId','\x5cw{0,','replace','toString','getCallerIdRandom','[decrementOriginate]\x20queue\x20originate\x20value\x20is\x20negative','decrementOriginate','length','checkContactEmpty','checkContactLowerLimitOriginate','tags','undefined','XMD-','toUpperCase','substring','lodash','util','dialer','../../../../config/environment/shared'];(function(_0x39a7b3,_0x9c5210){var _0x1e25e2=function(_0x530d86){while(--_0x530d86){_0x39a7b3['push'](_0x39a7b3['shift']());}};_0x1e25e2(++_0x9c5210);}(_0xdca6,0x1e8));var _0x6dca=function(_0x505a5c,_0x2dd55b){_0x505a5c=_0x505a5c-0x0;var _0x520802=_0xdca6[_0x505a5c];return _0x520802;};'use strict';var _=require(_0x6dca('0x0'));var moment=require('moment');var util=require(_0x6dca('0x1'));var logger=require('../../../../config/logger')(_0x6dca('0x2'));var timezones=require(_0x6dca('0x3'))[_0x6dca('0x4')];var CAMPAIGN_STATUS={'ACTIVE':_0x6dca('0x5'),'BLACKLIST':'BLACKLIST','CONTACTS_RESCHEDULED':_0x6dca('0x6'),'DEACTIVATED':_0x6dca('0x7'),'DISACTIVED':_0x6dca('0x8'),'EMPTY_INTERVAL':_0x6dca('0x9'),'INACTIVE':_0x6dca('0xa'),'NO_AGENTS_LOGGED':'AGENTS_NOT_LOGGED','NO_AVAILABLE_CONTACTS':_0x6dca('0xb'),'NULL_INTERVAL':'INTERVAL_IS_NULL','OVERTIME_INTERVAL':'INTERVAL_IS_OVERTIME','OVERTIME_GLOBAL_INTERVAL':'GLOBAL_INTERVAL_IS_OVERTIME','QUEUE_RECALL':'RECALLINQUEUE','RECALL_TIMEOUT':_0x6dca('0xc'),'RUNNING':_0x6dca('0xd'),'UNKNOWN_TIMEZONE':_0x6dca('0xe'),'UNREACHABLE_TRUNK':_0x6dca('0xf')};exports[_0x6dca('0x10')]=CAMPAIGN_STATUS;function isPreviewCampaign(_0x3554cf){return _0x3554cf[_0x6dca('0x11')]===_0x6dca('0x12');}exports['isPreviewCampaign']=isPreviewCampaign;function isIVRCampaign(_0x3b7e78){return _0x3b7e78['type']==='ivr';}exports[_0x6dca('0x13')]=isIVRCampaign;function isOutboundQueue(_0x145ab2){return _0x145ab2[_0x6dca('0x14')]==='outbound';}exports[_0x6dca('0x15')]=isOutboundQueue;function isQueueCampaignActive(_0x387fa1){return _0x387fa1[_0x6dca('0x16')];}exports[_0x6dca('0x17')]=isQueueCampaignActive;function isIVRCampaignActive(_0x108964){return _0x108964[_0x6dca('0x18')];}exports['isIVRCampaignActive']=isIVRCampaignActive;function getSeconds(_0x4ba434,_0xa384ae){var _0x14d77b=moment(_0x4ba434)[_0x6dca('0x19')](0x0);var _0x4a5faa=moment(_0xa384ae)[_0x6dca('0x19')](0x0);return _0x14d77b[_0x6dca('0x1a')](_0x4a5faa,_0x6dca('0x1b'));}exports[_0x6dca('0x1c')]=getSeconds;function hasQueueCampaignDataChanged(_0x27d13f,_0xcb3d89){var _0x226176=![];var _0x5850d9=_0x27d13f['dialMethod']!==_0xcb3d89[_0x6dca('0x11')]||_0x27d13f[_0x6dca('0x16')]!==_0xcb3d89[_0x6dca('0x16')]||_0x27d13f[_0x6dca('0x1d')]!==_0xcb3d89[_0x6dca('0x1d')];var _0x30e7dc=_0x27d13f['available']!==_0xcb3d89[_0x6dca('0x1e')]||_0x27d13f[_0x6dca('0x1f')]!==_0xcb3d89[_0x6dca('0x1f')]||_0x27d13f[_0x6dca('0x20')]!==_0xcb3d89[_0x6dca('0x20')]||_0x27d13f['paused']!==_0xcb3d89['paused']||_0x27d13f[_0x6dca('0x21')]!==_0xcb3d89[_0x6dca('0x21')]||_0x27d13f[_0x6dca('0x22')]!==_0xcb3d89[_0x6dca('0x22')]||_0x27d13f[_0x6dca('0x23')]!==_0xcb3d89[_0x6dca('0x23')]||_0x27d13f[_0x6dca('0x24')]!==_0xcb3d89[_0x6dca('0x24')]||_0x27d13f[_0x6dca('0x25')]!==_0xcb3d89[_0x6dca('0x25')];if(_0x27d13f[_0x6dca('0x26')]&&_0xcb3d89[_0x6dca('0x26')]){_0x226176=_0x27d13f[_0x6dca('0x26')][_0x6dca('0x27')]!==_0xcb3d89[_0x6dca('0x26')][_0x6dca('0x27')]||_0x27d13f[_0x6dca('0x26')][_0x6dca('0x18')]!==_0xcb3d89['Trunk'][_0x6dca('0x18')];}return _0x5850d9||_0x30e7dc||_0x226176;}exports[_0x6dca('0x28')]=hasQueueCampaignDataChanged;function checkAnyValidQueueCampaignInterval(_0x2acb75){var _0x59eda2=null;var _0x10b516=_0x2acb75[_0x6dca('0x29')];if(_['isNil'](_0x2acb75[_0x6dca('0x2a')])||_[_0x6dca('0x2b')](_0x2acb75[_0x6dca('0x2c')])||_[_0x6dca('0x2b')](_0x2acb75['Interval'][_0x6dca('0x2d')])){_0x59eda2=CAMPAIGN_STATUS[_0x6dca('0x2e')];}else if(_[_0x6dca('0x2f')](_0x2acb75[_0x6dca('0x2a')])||_[_0x6dca('0x2f')](_0x2acb75['Interval'][_0x6dca('0x2d')])){_0x59eda2=CAMPAIGN_STATUS[_0x6dca('0x30')];}else if(_0x10b516&&!timezones[_0x10b516]){_0x59eda2=CAMPAIGN_STATUS['UNKNOWN_TIMEZONE'];}return _0x59eda2;}function checkAnyValidTrunk(_0x5b8d62,_0x1bc091){var _0x3722d8=null;var _0x31c7e6=_0x6dca('0x31');var _0x351cf2=[_0x6dca('0x32'),_0x6dca('0x33')];var _0x29ff6d=!![];if(_0x5b8d62[_0x6dca('0x26')]&&_0x5b8d62[_0x6dca('0x26')][_0x6dca('0x18')]){_0x31c7e6+=_0x5b8d62[_0x6dca('0x26')]['name'];_0x3722d8=_0x1bc091[_0x31c7e6];_0x29ff6d=_0x351cf2['includes'](_0x3722d8[_0x6dca('0x34')]);}else if(_0x5b8d62[_0x6dca('0x35')]&&_0x5b8d62[_0x6dca('0x35')][_0x6dca('0x18')]){_0x31c7e6+=_0x5b8d62['TrunkBackup'][_0x6dca('0x27')];_0x3722d8=_0x1bc091[_0x31c7e6];_0x29ff6d=_0x351cf2[_0x6dca('0x36')](_0x3722d8[_0x6dca('0x34')]);}return _0x29ff6d;}function getQueueCampaignStatusMessage(_0x2b7b20,_0x377d37){var _0x58d988=CAMPAIGN_STATUS[_0x6dca('0x5')];var _0x321d0e=isPreviewCampaign(_0x2b7b20);if(!isQueueCampaignActive(_0x2b7b20)){if(_0x321d0e){_0x58d988=CAMPAIGN_STATUS['INACTIVE'];}else{if(_0x2b7b20[_0x6dca('0x25')]===0x0&&_0x2b7b20[_0x6dca('0x21')]===0x0&&_0x2b7b20[_0x6dca('0x23')]===0x0&&(_0x2b7b20[_0x6dca('0x22')]||0x0)===0x0){_0x58d988=CAMPAIGN_STATUS[_0x6dca('0x37')];}else{_0x58d988=CAMPAIGN_STATUS[_0x6dca('0x38')];}}}else if(_0x2b7b20['loggedIn']===0x0){_0x58d988=CAMPAIGN_STATUS[_0x6dca('0x39')];}else if(!checkAnyValidTrunk(_0x2b7b20,_0x377d37)){_0x58d988=CAMPAIGN_STATUS[_0x6dca('0x3a')];}else if(!isPreviewCampaign(_0x2b7b20)){var _0x414020=checkAnyValidQueueCampaignInterval(_0x2b7b20);if(_0x414020){_0x58d988=_0x414020;}}return _0x58d988;}exports['getQueueCampaignStatusMessage']=getQueueCampaignStatusMessage;function getQueueCampaignActiveStatusMessage(_0x238d3c){var _0x4b3bcb=CAMPAIGN_STATUS['DISACTIVED'];if(_0x238d3c[_0x6dca('0x25')]===0x0&&_0x238d3c[_0x6dca('0x21')]===0x0&&_0x238d3c[_0x6dca('0x23')]===0x0&&(_0x238d3c[_0x6dca('0x22')]||0x0)===0x0){_0x4b3bcb=CAMPAIGN_STATUS[_0x6dca('0x37')];}return _0x4b3bcb;}exports[_0x6dca('0x3b')]=getQueueCampaignActiveStatusMessage;function extractCalleridName(_0x1aa269){var _0x5093e7=_0x1aa269[_0x6dca('0x3c')](/"(.*?)"/);return _0x5093e7?_0x5093e7[0x1]:_0x1aa269;}exports[_0x6dca('0x3d')]=extractCalleridName;function getCallerId(_0x4d4bef,_0x3d38a4,_0x1b6818){if(!_[_0x6dca('0x3e')](_0x1b6818)&&typeof _0x1b6818===_0x6dca('0x3f')&&!_[_0x6dca('0x2f')](_0x1b6818)){if(!_[_0x6dca('0x3e')](_0x3d38a4)&&typeof _0x3d38a4===_0x6dca('0x3f')&&!_[_0x6dca('0x2f')](_0x3d38a4)){return util[_0x6dca('0x40')]('\x22%s\x22\x20<%s>',_0x3d38a4,_0x1b6818);}return util[_0x6dca('0x40')](_0x6dca('0x41'),_0x1b6818,_0x1b6818);}if(!_['isUndefined'](_0x4d4bef)&&typeof _0x4d4bef===_0x6dca('0x3f')&&!_[_0x6dca('0x2f')](_0x4d4bef)){return _0x4d4bef;}return _0x6dca('0x42');}exports[_0x6dca('0x43')]=getCallerId;function getCallerIdRandom(_0x2effa5,_0x3821d5){var _0x3d8ce9;var _0x1c64b2;var _0x28f264;if(_0x3821d5<=0x0){_0x3821d5=0x1;}_0x3d8ce9=new RegExp(_0x6dca('0x44')+_0x3821d5+'}$');_0x1c64b2=Math['pow'](0xa,_0x3821d5-0x1);_0x28f264=Math['pow'](0xa,_0x3821d5)-0x1;return util['format']('%s',_[_0x6dca('0x45')](_0x2effa5,_0x3d8ce9,_['random'](_0x1c64b2,_0x28f264)[_0x6dca('0x46')]()));}exports[_0x6dca('0x47')]=getCallerIdRandom;function decrementOriginate(_0x3525b5){if(_0x3525b5[_0x6dca('0x25')]&&_0x3525b5[_0x6dca('0x25')]>0x0){_0x3525b5['originated']-=0x1;}else{logger['error'](_0x6dca('0x48'));}}exports[_0x6dca('0x49')]=decrementOriginate;function checkContactEmpty(_0x287708){return _0x287708&&_0x287708[_0x6dca('0x4a')]>0x0;}exports[_0x6dca('0x4b')]=checkContactEmpty;function erlangb(_0x2f1794,_0x30ae3b){if(_0x30ae3b===0x0){return 0x0;}var _0x6854f0=0x1;for(var _0x2fa4ce=0x1;_0x2fa4ce<=_0x30ae3b;_0x2fa4ce+=0x1){_0x6854f0=0x1+_0x6854f0*_0x2fa4ce/_0x2f1794;}return 0x1/_0x6854f0;}exports['erlangb']=erlangb;function checkContactLowerLimitOriginate(_0x1ee03d,_0x4d9946,_0x547603){if(_0x4d9946>_0x547603){for(var _0x1ac223=0x0;_0x1ac223<_0x4d9946-_0x547603;_0x1ac223+=0x1){decrementOriginate(_0x1ee03d);}}}exports[_0x6dca('0x4c')]=checkContactLowerLimitOriginate;function setXMDContactVariables(_0x2188e5){var _0x18ef31={};var _0x1ac5c1=['id','createdAt',_0x6dca('0x4d'),'updatedAt'];const _0x3c0e67=0xfa;if(_0x2188e5){for(var _0x456154 in _0x2188e5){if(typeof _0x2188e5[_0x456154]!==_0x6dca('0x4e')){if(!_[_0x6dca('0x2b')](_0x2188e5[_0x456154])&&!_0x1ac5c1[_0x6dca('0x36')](_0x456154)){if(_0x456154==='description'&&_0x2188e5[_0x456154][_0x6dca('0x4a')]>_0x3c0e67){_0x18ef31[_0x6dca('0x4f')+_0x456154[_0x6dca('0x50')]()]=_0x2188e5[_0x456154][_0x6dca('0x46')]()[_0x6dca('0x51')](0x0,_0x3c0e67);}else{_0x18ef31[_0x6dca('0x4f')+_0x456154['toUpperCase']()]=_0x2188e5[_0x456154];}}}}}return _0x18ef31;}exports['setXMDContactVariables']=setXMDContactVariables;