24e9bf705235b892c5231d066fd3125db20b6a79
[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 _0x3abd=['format','\x22%s\x22\x20<%s>','getCallerId','\x5cw{0,','pow','replace','toString','error','[decrementOriginate]\x20queue\x20originate\x20value\x20is\x20negative','decrementOriginate','length','checkContactEmpty','erlangb','createdAt','description','tags','updatedAt','undefined','%s%s','XMD-','toUpperCase','lodash','moment','util','../../../../config/environment/shared','timezones','ACTIVE','BLACKLIST','RESCHEDULED_CONTACTS','DEACTIVATED','IS_DISACTIVED','INTERVAL_IS_EMPTY','AGENTS_NOT_LOGGED','AVAILABLE_CONTACTS_FINISHED','INTERVAL_IS_NULL','INTERVAL_IS_OVERTIME','GLOBAL_INTERVAL_IS_OVERTIME','RECALLINQUEUE','RUNNING','TIMEZONE_UNKNOW','dialMethod','isPreviewCampaign','type','ivr','isIVRCampaign','outbound','isOutboundQueue','dialActive','isQueueCampaignActive','isIVRCampaignActive','milliseconds','diff','seconds','message','available','loggedIn','paused','talking','pTalking','inUse','Trunk','name','active','hasQueueCampaignDataChanged','isNil','Interval','Intervals','NULL_INTERVAL','isEmpty','EMPTY_INTERVAL','UNKNOWN_TIMEZONE','unmonitored','includes','status','TrunkBackup','INACTIVE','originated','waiting','DISACTIVED','NO_AGENTS_LOGGED','UNREACHABLE_TRUNK','getQueueCampaignStatusMessage','extractCalleridName','isUndefined','string'];(function(_0x3d36c0,_0x8a0b90){var _0x240dd3=function(_0x5ecf1e){while(--_0x5ecf1e){_0x3d36c0['push'](_0x3d36c0['shift']());}};_0x240dd3(++_0x8a0b90);}(_0x3abd,0x1be));var _0xd3ab=function(_0x403c20,_0x4a7b99){_0x403c20=_0x403c20-0x0;var _0x2b271a=_0x3abd[_0x403c20];return _0x2b271a;};'use strict';var _=require(_0xd3ab('0x0'));var moment=require(_0xd3ab('0x1'));var util=require(_0xd3ab('0x2'));var logger=require('../../../../config/logger')('dialer');var timezones=require(_0xd3ab('0x3'))[_0xd3ab('0x4')];var CAMPAIGN_STATUS={'ACTIVE':_0xd3ab('0x5'),'BLACKLIST':_0xd3ab('0x6'),'CONTACTS_RESCHEDULED':_0xd3ab('0x7'),'DEACTIVATED':_0xd3ab('0x8'),'DISACTIVED':_0xd3ab('0x9'),'EMPTY_INTERVAL':_0xd3ab('0xa'),'INACTIVE':'NOT_ACTIVE','NO_AGENTS_LOGGED':_0xd3ab('0xb'),'NO_AVAILABLE_CONTACTS':_0xd3ab('0xc'),'NULL_INTERVAL':_0xd3ab('0xd'),'OVERTIME_INTERVAL':_0xd3ab('0xe'),'OVERTIME_GLOBAL_INTERVAL':_0xd3ab('0xf'),'QUEUE_RECALL':_0xd3ab('0x10'),'RECALL_TIMEOUT':'RECALLFAILEDTIMEOUT','RUNNING':_0xd3ab('0x11'),'UNKNOWN_TIMEZONE':_0xd3ab('0x12'),'UNREACHABLE_TRUNK':'TRUNK_IS_NOT_REACHABLE'};exports['CAMPAIGN_STATUS']=CAMPAIGN_STATUS;function isPreviewCampaign(_0x28049b){return _0x28049b[_0xd3ab('0x13')]==='preview';}exports[_0xd3ab('0x14')]=isPreviewCampaign;function isIVRCampaign(_0x2ab7cd){return _0x2ab7cd[_0xd3ab('0x15')]===_0xd3ab('0x16');}exports[_0xd3ab('0x17')]=isIVRCampaign;function isOutboundQueue(_0x1823f6){return _0x1823f6['type']===_0xd3ab('0x18');}exports[_0xd3ab('0x19')]=isOutboundQueue;function isQueueCampaignActive(_0x4017f9){return _0x4017f9[_0xd3ab('0x1a')];}exports[_0xd3ab('0x1b')]=isQueueCampaignActive;function isIVRCampaignActive(_0x1e7463){return _0x1e7463['active'];}exports[_0xd3ab('0x1c')]=isIVRCampaignActive;function getSeconds(_0x1d3280,_0xa39494){var _0xd48b79=moment(_0x1d3280)[_0xd3ab('0x1d')](0x0);var _0x2c3cf7=moment(_0xa39494)['milliseconds'](0x0);return _0xd48b79[_0xd3ab('0x1e')](_0x2c3cf7,_0xd3ab('0x1f'));}exports['getSeconds']=getSeconds;function hasQueueCampaignDataChanged(_0x4c59fc,_0x52ed2b){var _0x81fdee=![];var _0x107f66=_0x4c59fc['dialMethod']!==_0x52ed2b[_0xd3ab('0x13')]||_0x4c59fc['dialActive']!==_0x52ed2b[_0xd3ab('0x1a')]||_0x4c59fc[_0xd3ab('0x20')]!==_0x52ed2b[_0xd3ab('0x20')];var _0x4199ac=_0x4c59fc[_0xd3ab('0x21')]!==_0x52ed2b['available']||_0x4c59fc[_0xd3ab('0x22')]!==_0x52ed2b[_0xd3ab('0x22')]||_0x4c59fc['loggedInDb']!==_0x52ed2b['loggedInDb']||_0x4c59fc[_0xd3ab('0x23')]!==_0x52ed2b[_0xd3ab('0x23')]||_0x4c59fc['talking']!==_0x52ed2b[_0xd3ab('0x24')]||_0x4c59fc['pTalking']!==_0x52ed2b[_0xd3ab('0x25')]||_0x4c59fc['waiting']!==_0x52ed2b['waiting']||_0x4c59fc['inUse']!==_0x52ed2b[_0xd3ab('0x26')]||_0x4c59fc['originated']!==_0x52ed2b['originated'];if(_0x4c59fc['Trunk']&&_0x52ed2b[_0xd3ab('0x27')]){_0x81fdee=_0x4c59fc['Trunk'][_0xd3ab('0x28')]!==_0x52ed2b[_0xd3ab('0x27')][_0xd3ab('0x28')]||_0x4c59fc[_0xd3ab('0x27')][_0xd3ab('0x29')]!==_0x52ed2b[_0xd3ab('0x27')]['active'];}return _0x107f66||_0x4199ac||_0x81fdee;}exports[_0xd3ab('0x2a')]=hasQueueCampaignDataChanged;function checkAnyValidQueueCampaignInterval(_0x17663e){var _0x36a808=null;var _0xc3c797=_0x17663e['dialTimezone'];if(_[_0xd3ab('0x2b')](_0x17663e['dialGlobalInterval'])||_[_0xd3ab('0x2b')](_0x17663e[_0xd3ab('0x2c')])||_[_0xd3ab('0x2b')](_0x17663e[_0xd3ab('0x2c')][_0xd3ab('0x2d')])){_0x36a808=CAMPAIGN_STATUS[_0xd3ab('0x2e')];}else if(_['isEmpty'](_0x17663e['dialGlobalInterval'])||_[_0xd3ab('0x2f')](_0x17663e[_0xd3ab('0x2c')][_0xd3ab('0x2d')])){_0x36a808=CAMPAIGN_STATUS[_0xd3ab('0x30')];}else if(_0xc3c797&&!timezones[_0xc3c797]){_0x36a808=CAMPAIGN_STATUS[_0xd3ab('0x31')];}return _0x36a808;}function checkAnyValidTrunk(_0x1284fd,_0x369c93){var _0xdd62e=null;var _0x4f71ea='SIP/';var _0xde44d9=['reachable',_0xd3ab('0x32')];var _0x5f4a0e=!![];if(_0x1284fd[_0xd3ab('0x27')]&&_0x1284fd['Trunk'][_0xd3ab('0x29')]){_0x4f71ea+=_0x1284fd[_0xd3ab('0x27')][_0xd3ab('0x28')];_0xdd62e=_0x369c93[_0x4f71ea];_0x5f4a0e=_0xde44d9[_0xd3ab('0x33')](_0xdd62e[_0xd3ab('0x34')]);}else if(_0x1284fd[_0xd3ab('0x35')]&&_0x1284fd['TrunkBackup']['active']){_0x4f71ea+=_0x1284fd[_0xd3ab('0x35')][_0xd3ab('0x28')];_0xdd62e=_0x369c93[_0x4f71ea];_0x5f4a0e=_0xde44d9['includes'](_0xdd62e[_0xd3ab('0x34')]);}return _0x5f4a0e;}function getQueueCampaignStatusMessage(_0x304efd,_0x422311){var _0x135df9=CAMPAIGN_STATUS[_0xd3ab('0x5')];var _0x23b538=isPreviewCampaign(_0x304efd);if(!isQueueCampaignActive(_0x304efd)){if(_0x23b538){_0x135df9=CAMPAIGN_STATUS[_0xd3ab('0x36')];}else{if(_0x304efd[_0xd3ab('0x37')]===0x0&&_0x304efd[_0xd3ab('0x24')]===0x0&&_0x304efd[_0xd3ab('0x38')]===0x0&&(_0x304efd[_0xd3ab('0x25')]||0x0)===0x0){_0x135df9=CAMPAIGN_STATUS[_0xd3ab('0x36')];}else{_0x135df9=CAMPAIGN_STATUS[_0xd3ab('0x39')];}}}else if(_0x304efd[_0xd3ab('0x22')]===0x0){_0x135df9=CAMPAIGN_STATUS[_0xd3ab('0x3a')];}else if(!checkAnyValidTrunk(_0x304efd,_0x422311)){_0x135df9=CAMPAIGN_STATUS[_0xd3ab('0x3b')];}else if(!isPreviewCampaign(_0x304efd)){var _0x22002d=checkAnyValidQueueCampaignInterval(_0x304efd);if(_0x22002d){_0x135df9=_0x22002d;}}return _0x135df9;}exports[_0xd3ab('0x3c')]=getQueueCampaignStatusMessage;function getQueueCampaignActiveStatusMessage(_0x553399){var _0x55b25c=CAMPAIGN_STATUS[_0xd3ab('0x39')];if(_0x553399[_0xd3ab('0x37')]===0x0&&_0x553399[_0xd3ab('0x24')]===0x0&&_0x553399['waiting']===0x0&&(_0x553399[_0xd3ab('0x25')]||0x0)===0x0){_0x55b25c=CAMPAIGN_STATUS['INACTIVE'];}return _0x55b25c;}exports['getQueueCampaignActiveStatusMessage']=getQueueCampaignActiveStatusMessage;function extractCalleridName(_0x97b9fc){var _0x13bd27=_0x97b9fc['match'](/"(.*?)"/);return _0x13bd27?_0x13bd27[0x1]:_0x97b9fc;}exports[_0xd3ab('0x3d')]=extractCalleridName;function getCallerId(_0x58829f,_0x5973bd,_0x260f02){if(!_[_0xd3ab('0x3e')](_0x260f02)&&typeof _0x260f02==='string'&&!_[_0xd3ab('0x2f')](_0x260f02)){if(!_[_0xd3ab('0x3e')](_0x5973bd)&&typeof _0x5973bd===_0xd3ab('0x3f')&&!_[_0xd3ab('0x2f')](_0x5973bd)){return util[_0xd3ab('0x40')]('\x22%s\x22\x20<%s>',_0x5973bd,_0x260f02);}return util[_0xd3ab('0x40')](_0xd3ab('0x41'),_0x260f02,_0x260f02);}if(!_[_0xd3ab('0x3e')](_0x58829f)&&typeof _0x58829f===_0xd3ab('0x3f')&&!_[_0xd3ab('0x2f')](_0x58829f)){return _0x58829f;}return'\x22\x22\x20<>';}exports[_0xd3ab('0x42')]=getCallerId;function getCallerIdRandom(_0x14a742,_0x4c575d){var _0x153804;var _0x30cc62;var _0x2e6efc;if(_0x4c575d<=0x0){_0x4c575d=0x1;}_0x153804=new RegExp(_0xd3ab('0x43')+_0x4c575d+'}$');_0x30cc62=Math[_0xd3ab('0x44')](0xa,_0x4c575d-0x1);_0x2e6efc=Math['pow'](0xa,_0x4c575d)-0x1;return util['format']('%s',_[_0xd3ab('0x45')](_0x14a742,_0x153804,_['random'](_0x30cc62,_0x2e6efc)[_0xd3ab('0x46')]()));}exports['getCallerIdRandom']=getCallerIdRandom;function decrementOriginate(_0x1daa7c){if(_0x1daa7c[_0xd3ab('0x37')]&&_0x1daa7c[_0xd3ab('0x37')]>0x0){_0x1daa7c[_0xd3ab('0x37')]-=0x1;}else{logger[_0xd3ab('0x47')](_0xd3ab('0x48'));}}exports[_0xd3ab('0x49')]=decrementOriginate;function checkContactEmpty(_0x15635d){return _0x15635d&&_0x15635d[_0xd3ab('0x4a')]>0x0;}exports[_0xd3ab('0x4b')]=checkContactEmpty;function erlangb(_0x12c516,_0x4dfa0c){if(_0x4dfa0c===0x0){return 0x0;}var _0x3c5273=0x1;for(var _0x1a844b=0x1;_0x1a844b<=_0x4dfa0c;_0x1a844b+=0x1){_0x3c5273=0x1+_0x3c5273*_0x1a844b/_0x12c516;}return 0x1/_0x3c5273;}exports[_0xd3ab('0x4c')]=erlangb;function checkContactLowerLimitOriginate(_0x1293f6,_0x23a4d1,_0x2ef7db){if(_0x23a4d1>_0x2ef7db){for(var _0x8a9bd3=0x0;_0x8a9bd3<_0x23a4d1-_0x2ef7db;_0x8a9bd3+=0x1){decrementOriginate(_0x1293f6);}}}exports['checkContactLowerLimitOriginate']=checkContactLowerLimitOriginate;function setXMDContactVariables(_0x3edb20){var _0x124cab={};var _0x6158a=['id',_0xd3ab('0x4d'),_0xd3ab('0x4e'),_0xd3ab('0x4f'),_0xd3ab('0x50')];if(_0x3edb20){for(var _0x3fe55e in _0x3edb20){if(typeof _0x3edb20[_0x3fe55e]!==_0xd3ab('0x51')){if(!_[_0xd3ab('0x2b')](_0x3edb20[_0x3fe55e])&&!_0x6158a[_0xd3ab('0x33')](_0x3fe55e)){_0x124cab[util[_0xd3ab('0x40')](_0xd3ab('0x52'),_0xd3ab('0x53'),_0x3fe55e[_0xd3ab('0x54')]())]=_0x3edb20[_0x3fe55e];}}}}return _0x124cab;}exports['setXMDContactVariables']=setXMDContactVariables;