75bb0c8d2d9b2cc1f22d0a39aef4f019387f1da4
[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 _0x30ee=['isOutboundQueue','dialActive','isQueueCampaignActive','active','milliseconds','diff','message','available','loggedIn','loggedInDb','paused','talking','pTalking','inUse','originated','Trunk','name','hasQueueCampaignDataChanged','isNil','Interval','Intervals','isEmpty','dialGlobalInterval','EMPTY_INTERVAL','UNKNOWN_TIMEZONE','SIP/','reachable','unmonitored','includes','TrunkBackup','status','INACTIVE','waiting','NO_AGENTS_LOGGED','DISACTIVED','getQueueCampaignActiveStatusMessage','match','extractCalleridName','isUndefined','string','format','\x22%s\x22\x20<%s>','getCallerId','\x5cw{0,','pow','replace','random','getCallerIdRandom','error','[decrementOriginate]\x20queue\x20originate\x20value','decrementOriginate','length','checkContactEmpty','[checkContactLowerLimitOriginate]\x20','checkContactLowerLimitOriginate','updatedAt','undefined','description','XMD-','toUpperCase','toString','setXMDContactVariables','lodash','dialer','../../../../config/environment/shared','ACTIVE','BLACKLIST','RESCHEDULED_CONTACTS','IS_DISACTIVED','INTERVAL_IS_EMPTY','NOT_ACTIVE','AVAILABLE_CONTACTS_FINISHED','INTERVAL_IS_NULL','GLOBAL_INTERVAL_IS_OVERTIME','RECALLINQUEUE','RECALLFAILEDTIMEOUT','TIMEZONE_UNKNOW','TRUNK_IS_NOT_REACHABLE','dialMethod','preview','ivr','type','outbound'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x30ee,0x137));var _0xe30e=function(_0x1314d4,_0xb0b16d){_0x1314d4=_0x1314d4-0x0;var _0x584ba5=_0x30ee[_0x1314d4];return _0x584ba5;};'use strict';var _=require(_0xe30e('0x0'));var moment=require('moment');var util=require('util');var logger=require('../../../../config/logger')(_0xe30e('0x1'));var timezones=require(_0xe30e('0x2'))['timezones'];var CAMPAIGN_STATUS={'ACTIVE':_0xe30e('0x3'),'BLACKLIST':_0xe30e('0x4'),'CONTACTS_RESCHEDULED':_0xe30e('0x5'),'DEACTIVATED':'DEACTIVATED','DISACTIVED':_0xe30e('0x6'),'EMPTY_INTERVAL':_0xe30e('0x7'),'INACTIVE':_0xe30e('0x8'),'NO_AGENTS_LOGGED':'AGENTS_NOT_LOGGED','NO_AVAILABLE_CONTACTS':_0xe30e('0x9'),'NULL_INTERVAL':_0xe30e('0xa'),'OVERTIME_INTERVAL':'INTERVAL_IS_OVERTIME','OVERTIME_GLOBAL_INTERVAL':_0xe30e('0xb'),'QUEUE_RECALL':_0xe30e('0xc'),'RECALL_TIMEOUT':_0xe30e('0xd'),'RUNNING':'RUNNING','UNKNOWN_TIMEZONE':_0xe30e('0xe'),'UNREACHABLE_TRUNK':_0xe30e('0xf')};exports['CAMPAIGN_STATUS']=CAMPAIGN_STATUS;function isPreviewCampaign(_0x3a6a81){return _0x3a6a81[_0xe30e('0x10')]===_0xe30e('0x11');}exports['isPreviewCampaign']=isPreviewCampaign;function isIVRCampaign(_0x336563){return _0x336563['type']===_0xe30e('0x12');}exports['isIVRCampaign']=isIVRCampaign;function isOutboundQueue(_0x2df17b){return _0x2df17b[_0xe30e('0x13')]===_0xe30e('0x14');}exports[_0xe30e('0x15')]=isOutboundQueue;function isQueueCampaignActive(_0x4595fb){return _0x4595fb[_0xe30e('0x16')];}exports[_0xe30e('0x17')]=isQueueCampaignActive;function isIVRCampaignActive(_0x1537a4){return _0x1537a4[_0xe30e('0x18')];}exports['isIVRCampaignActive']=isIVRCampaignActive;function getSeconds(_0x5d9efe,_0x2dca7f){var _0x2f152d=moment(_0x5d9efe)[_0xe30e('0x19')](0x0);var _0x593290=moment(_0x2dca7f)[_0xe30e('0x19')](0x0);return _0x2f152d[_0xe30e('0x1a')](_0x593290,'seconds');}exports['getSeconds']=getSeconds;function hasQueueCampaignDataChanged(_0x519020,_0x3a180e){var _0x1f5ac4=![];var _0x8af739=_0x519020[_0xe30e('0x10')]!==_0x3a180e[_0xe30e('0x10')]||_0x519020[_0xe30e('0x16')]!==_0x3a180e[_0xe30e('0x16')]||_0x519020[_0xe30e('0x1b')]!==_0x3a180e[_0xe30e('0x1b')];var _0x16afc7=_0x519020['available']!==_0x3a180e[_0xe30e('0x1c')]||_0x519020[_0xe30e('0x1d')]!==_0x3a180e['loggedIn']||_0x519020[_0xe30e('0x1e')]!==_0x3a180e[_0xe30e('0x1e')]||_0x519020[_0xe30e('0x1f')]!==_0x3a180e[_0xe30e('0x1f')]||_0x519020[_0xe30e('0x20')]!==_0x3a180e['talking']||_0x519020['pTalking']!==_0x3a180e[_0xe30e('0x21')]||_0x519020['waiting']!==_0x3a180e['waiting']||_0x519020['inUse']!==_0x3a180e[_0xe30e('0x22')]||_0x519020['originated']!==_0x3a180e[_0xe30e('0x23')];if(_0x519020[_0xe30e('0x24')]&&_0x3a180e[_0xe30e('0x24')]){_0x1f5ac4=_0x519020[_0xe30e('0x24')][_0xe30e('0x25')]!==_0x3a180e[_0xe30e('0x24')]['name']||_0x519020['Trunk'][_0xe30e('0x18')]!==_0x3a180e[_0xe30e('0x24')][_0xe30e('0x18')];}return _0x8af739||_0x16afc7||_0x1f5ac4;}exports[_0xe30e('0x26')]=hasQueueCampaignDataChanged;function checkAnyValidQueueCampaignInterval(_0x43706f){var _0x4ee563=null;var _0x45d89e=_0x43706f['dialTimezone'];if(_['isNil'](_0x43706f['dialGlobalInterval'])||_[_0xe30e('0x27')](_0x43706f[_0xe30e('0x28')])||_[_0xe30e('0x27')](_0x43706f[_0xe30e('0x28')][_0xe30e('0x29')])){_0x4ee563=CAMPAIGN_STATUS['NULL_INTERVAL'];}else if(_[_0xe30e('0x2a')](_0x43706f[_0xe30e('0x2b')])||_[_0xe30e('0x2a')](_0x43706f[_0xe30e('0x28')]['Intervals'])){_0x4ee563=CAMPAIGN_STATUS[_0xe30e('0x2c')];}else if(_0x45d89e&&!timezones[_0x45d89e]){_0x4ee563=CAMPAIGN_STATUS[_0xe30e('0x2d')];}return _0x4ee563;}function checkAnyValidTrunk(_0x4dbff4,_0x49fb99){var _0x45cc30=null;var _0x427319=_0xe30e('0x2e');var _0x2a9ad3=[_0xe30e('0x2f'),_0xe30e('0x30')];var _0x5c207b=!![];if(_0x4dbff4[_0xe30e('0x24')]&&_0x4dbff4[_0xe30e('0x24')]['active']){_0x427319+=_0x4dbff4[_0xe30e('0x24')][_0xe30e('0x25')];_0x45cc30=_0x49fb99[_0x427319];_0x5c207b=_0x2a9ad3[_0xe30e('0x31')](_0x45cc30['status']);}else if(_0x4dbff4[_0xe30e('0x32')]&&_0x4dbff4[_0xe30e('0x32')][_0xe30e('0x18')]){_0x427319+=_0x4dbff4[_0xe30e('0x32')][_0xe30e('0x25')];_0x45cc30=_0x49fb99[_0x427319];_0x5c207b=_0x2a9ad3['includes'](_0x45cc30[_0xe30e('0x33')]);}return _0x5c207b;}function getQueueCampaignStatusMessage(_0x2dc64e,_0xce641b){var _0x2ad107=CAMPAIGN_STATUS[_0xe30e('0x3')];var _0x2bbf46=isPreviewCampaign(_0x2dc64e);if(!isQueueCampaignActive(_0x2dc64e)){if(_0x2bbf46){_0x2ad107=CAMPAIGN_STATUS[_0xe30e('0x34')];}else{if(_0x2dc64e[_0xe30e('0x23')]===0x0&&_0x2dc64e[_0xe30e('0x20')]===0x0&&_0x2dc64e[_0xe30e('0x35')]===0x0&&(_0x2dc64e[_0xe30e('0x21')]||0x0)===0x0){_0x2ad107=CAMPAIGN_STATUS[_0xe30e('0x34')];}else{_0x2ad107=CAMPAIGN_STATUS['DISACTIVED'];}}}else if(_0x2dc64e['loggedIn']===0x0){_0x2ad107=CAMPAIGN_STATUS[_0xe30e('0x36')];}else if(!checkAnyValidTrunk(_0x2dc64e,_0xce641b)){_0x2ad107=CAMPAIGN_STATUS['UNREACHABLE_TRUNK'];}else if(!isPreviewCampaign(_0x2dc64e)){var _0xdd4ae8=checkAnyValidQueueCampaignInterval(_0x2dc64e);if(_0xdd4ae8){_0x2ad107=_0xdd4ae8;}}return _0x2ad107;}exports['getQueueCampaignStatusMessage']=getQueueCampaignStatusMessage;function getQueueCampaignActiveStatusMessage(_0x101825){var _0x20385d=CAMPAIGN_STATUS[_0xe30e('0x37')];if(_0x101825[_0xe30e('0x23')]===0x0&&_0x101825[_0xe30e('0x20')]===0x0&&_0x101825['waiting']===0x0&&(_0x101825['pTalking']||0x0)===0x0){_0x20385d=CAMPAIGN_STATUS['INACTIVE'];}return _0x20385d;}exports[_0xe30e('0x38')]=getQueueCampaignActiveStatusMessage;function extractCalleridName(_0x5e3684){var _0x515ce7=_0x5e3684[_0xe30e('0x39')](/"(.*?)"/);return _0x515ce7?_0x515ce7[0x1]:_0x5e3684;}exports[_0xe30e('0x3a')]=extractCalleridName;function getCallerId(_0x32b26e,_0x436f4b,_0x155dda){if(!_[_0xe30e('0x3b')](_0x155dda)&&typeof _0x155dda==='string'&&!_['isEmpty'](_0x155dda)){if(!_[_0xe30e('0x3b')](_0x436f4b)&&typeof _0x436f4b===_0xe30e('0x3c')&&!_['isEmpty'](_0x436f4b)){return util[_0xe30e('0x3d')](_0xe30e('0x3e'),_0x436f4b,_0x155dda);}return util[_0xe30e('0x3d')](_0xe30e('0x3e'),_0x155dda,_0x155dda);}if(!_[_0xe30e('0x3b')](_0x32b26e)&&typeof _0x32b26e===_0xe30e('0x3c')&&!_[_0xe30e('0x2a')](_0x32b26e)){return _0x32b26e;}return'\x22\x22\x20<>';}exports[_0xe30e('0x3f')]=getCallerId;function getCallerIdRandom(_0x595ed2,_0x54922e){var _0x13a681;var _0x421081;var _0x48306d;if(_0x54922e<=0x0){_0x54922e=0x1;}_0x13a681=new RegExp(_0xe30e('0x40')+_0x54922e+'}$');_0x421081=Math[_0xe30e('0x41')](0xa,_0x54922e-0x1);_0x48306d=Math['pow'](0xa,_0x54922e)-0x1;return util[_0xe30e('0x3d')]('%s',_[_0xe30e('0x42')](_0x595ed2,_0x13a681,_[_0xe30e('0x43')](_0x421081,_0x48306d)['toString']()));}exports[_0xe30e('0x44')]=getCallerIdRandom;function decrementOriginate(_0x6cd6da,_0x48fb5d){if(_0x6cd6da['originated']&&_0x6cd6da['originated']>0x0){_0x6cd6da[_0xe30e('0x23')]-=0x1;}else{logger[_0xe30e('0x45')](_0xe30e('0x46'),_0x48fb5d);}}exports[_0xe30e('0x47')]=decrementOriginate;function checkContactEmpty(_0xc5387a){return _0xc5387a&&_0xc5387a[_0xe30e('0x48')]>0x0;}exports[_0xe30e('0x49')]=checkContactEmpty;function erlangb(_0x5e118a,_0x383e38){if(_0x383e38===0x0){return 0x0;}var _0x56a3c5=0x1;for(var _0x1064d8=0x1;_0x1064d8<=_0x383e38;_0x1064d8+=0x1){_0x56a3c5=0x1+_0x56a3c5*_0x1064d8/_0x5e118a;}return 0x1/_0x56a3c5;}exports['erlangb']=erlangb;function checkContactLowerLimitOriginate(_0x15912a,_0x54c64c,_0x85c6af){if(_0x54c64c>_0x85c6af){for(var _0x4ffef0=0x0;_0x4ffef0<_0x54c64c-_0x85c6af;_0x4ffef0+=0x1){decrementOriginate(_0x15912a,_0xe30e('0x4a'));}}}exports[_0xe30e('0x4b')]=checkContactLowerLimitOriginate;function setXMDContactVariables(_0xc9772b){var _0x472e2c={};var _0x2f9d99=['id','createdAt','tags',_0xe30e('0x4c')];const _0x58aafb=0xfa;if(_0xc9772b){for(var _0x43ca7e in _0xc9772b){if(typeof _0xc9772b[_0x43ca7e]!==_0xe30e('0x4d')){if(!_[_0xe30e('0x27')](_0xc9772b[_0x43ca7e])&&!_0x2f9d99[_0xe30e('0x31')](_0x43ca7e)){if(_0x43ca7e===_0xe30e('0x4e')&&_0xc9772b[_0x43ca7e][_0xe30e('0x48')]>_0x58aafb){_0x472e2c[_0xe30e('0x4f')+_0x43ca7e[_0xe30e('0x50')]()]=_0xc9772b[_0x43ca7e][_0xe30e('0x51')]()['substring'](0x0,_0x58aafb);}else{_0x472e2c[_0xe30e('0x4f')+_0x43ca7e[_0xe30e('0x50')]()]=_0xc9772b[_0x43ca7e];}}}}}return _0x472e2c;}exports[_0xe30e('0x52')]=setXMDContactVariables;