Built motion from commit 10af8726.|2.6.34
[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 _0xd7dd=['moment','util','dialer','../../../../config/environment/shared','timezones','ACTIVE','BLACKLIST','RESCHEDULED_CONTACTS','IS_DISACTIVED','INTERVAL_IS_EMPTY','AGENTS_NOT_LOGGED','AVAILABLE_CONTACTS_FINISHED','INTERVAL_IS_OVERTIME','GLOBAL_INTERVAL_IS_OVERTIME','RECALLINQUEUE','RECALLFAILEDTIMEOUT','RUNNING','TRUNK_IS_NOT_REACHABLE','dialMethod','type','ivr','isIVRCampaign','outbound','isOutboundQueue','dialActive','isQueueCampaignActive','milliseconds','diff','seconds','message','available','loggedIn','paused','talking','pTalking','waiting','inUse','originated','Trunk','name','active','hasQueueCampaignDataChanged','dialTimezone','isNil','Interval','Intervals','NULL_INTERVAL','isEmpty','dialGlobalInterval','EMPTY_INTERVAL','UNKNOWN_TIMEZONE','reachable','includes','status','TrunkBackup','INACTIVE','DISACTIVED','NO_AGENTS_LOGGED','getQueueCampaignStatusMessage','getQueueCampaignActiveStatusMessage','match','extractCalleridName','string','\x22%s\x22\x20<%s>','format','\x22\x22\x20<>','getCallerId','\x5cw{0,','pow','replace','random','toString','error','[decrementOriginate]\x20queue\x20originate\x20value','decrementOriginate','checkContactEmpty','erlangb','[checkContactLowerLimitOriginate]\x20','checkContactLowerLimitOriginate','createdAt','description','length','toUpperCase','substring','XMD-','setXMDContactVariables','lodash'];(function(_0x1533e6,_0x182bc0){var _0x1a526f=function(_0x53f233){while(--_0x53f233){_0x1533e6['push'](_0x1533e6['shift']());}};_0x1a526f(++_0x182bc0);}(_0xd7dd,0x1b2));var _0xdd7d=function(_0x103d20,_0x71cd23){_0x103d20=_0x103d20-0x0;var _0x9a473b=_0xd7dd[_0x103d20];return _0x9a473b;};'use strict';var _=require(_0xdd7d('0x0'));var moment=require(_0xdd7d('0x1'));var util=require(_0xdd7d('0x2'));var logger=require('../../../../config/logger')(_0xdd7d('0x3'));var timezones=require(_0xdd7d('0x4'))[_0xdd7d('0x5')];var CAMPAIGN_STATUS={'ACTIVE':_0xdd7d('0x6'),'BLACKLIST':_0xdd7d('0x7'),'CONTACTS_RESCHEDULED':_0xdd7d('0x8'),'DEACTIVATED':'DEACTIVATED','DISACTIVED':_0xdd7d('0x9'),'EMPTY_INTERVAL':_0xdd7d('0xa'),'INACTIVE':'NOT_ACTIVE','NO_AGENTS_LOGGED':_0xdd7d('0xb'),'NO_AVAILABLE_CONTACTS':_0xdd7d('0xc'),'NULL_INTERVAL':'INTERVAL_IS_NULL','OVERTIME_INTERVAL':_0xdd7d('0xd'),'OVERTIME_GLOBAL_INTERVAL':_0xdd7d('0xe'),'QUEUE_RECALL':_0xdd7d('0xf'),'RECALL_TIMEOUT':_0xdd7d('0x10'),'RUNNING':_0xdd7d('0x11'),'UNKNOWN_TIMEZONE':'TIMEZONE_UNKNOW','UNREACHABLE_TRUNK':_0xdd7d('0x12')};exports['CAMPAIGN_STATUS']=CAMPAIGN_STATUS;function isPreviewCampaign(_0x3b315e){return _0x3b315e[_0xdd7d('0x13')]==='preview';}exports['isPreviewCampaign']=isPreviewCampaign;function isIVRCampaign(_0x2c0a8e){return _0x2c0a8e[_0xdd7d('0x14')]===_0xdd7d('0x15');}exports[_0xdd7d('0x16')]=isIVRCampaign;function isOutboundQueue(_0x5b5623){return _0x5b5623[_0xdd7d('0x14')]===_0xdd7d('0x17');}exports[_0xdd7d('0x18')]=isOutboundQueue;function isQueueCampaignActive(_0x376d14){return _0x376d14[_0xdd7d('0x19')];}exports[_0xdd7d('0x1a')]=isQueueCampaignActive;function isIVRCampaignActive(_0x288175){return _0x288175['active'];}exports['isIVRCampaignActive']=isIVRCampaignActive;function getSeconds(_0x6eef74,_0x1b8625){var _0x278d41=moment(_0x6eef74)[_0xdd7d('0x1b')](0x0);var _0x33c565=moment(_0x1b8625)[_0xdd7d('0x1b')](0x0);return _0x278d41[_0xdd7d('0x1c')](_0x33c565,_0xdd7d('0x1d'));}exports['getSeconds']=getSeconds;function hasQueueCampaignDataChanged(_0x2c84e3,_0x34fb07){var _0x5996bb=![];var _0x53d4a2=_0x2c84e3['dialMethod']!==_0x34fb07[_0xdd7d('0x13')]||_0x2c84e3['dialActive']!==_0x34fb07[_0xdd7d('0x19')]||_0x2c84e3[_0xdd7d('0x1e')]!==_0x34fb07[_0xdd7d('0x1e')];var _0x321e0f=_0x2c84e3[_0xdd7d('0x1f')]!==_0x34fb07['available']||_0x2c84e3[_0xdd7d('0x20')]!==_0x34fb07[_0xdd7d('0x20')]||_0x2c84e3['loggedInDb']!==_0x34fb07['loggedInDb']||_0x2c84e3['paused']!==_0x34fb07[_0xdd7d('0x21')]||_0x2c84e3[_0xdd7d('0x22')]!==_0x34fb07['talking']||_0x2c84e3[_0xdd7d('0x23')]!==_0x34fb07[_0xdd7d('0x23')]||_0x2c84e3[_0xdd7d('0x24')]!==_0x34fb07['waiting']||_0x2c84e3[_0xdd7d('0x25')]!==_0x34fb07['inUse']||_0x2c84e3[_0xdd7d('0x26')]!==_0x34fb07['originated'];if(_0x2c84e3[_0xdd7d('0x27')]&&_0x34fb07[_0xdd7d('0x27')]){_0x5996bb=_0x2c84e3[_0xdd7d('0x27')][_0xdd7d('0x28')]!==_0x34fb07[_0xdd7d('0x27')][_0xdd7d('0x28')]||_0x2c84e3[_0xdd7d('0x27')][_0xdd7d('0x29')]!==_0x34fb07[_0xdd7d('0x27')]['active'];}return _0x53d4a2||_0x321e0f||_0x5996bb;}exports[_0xdd7d('0x2a')]=hasQueueCampaignDataChanged;function checkAnyValidQueueCampaignInterval(_0x50b290){var _0x5414f6=null;var _0x2e3404=_0x50b290[_0xdd7d('0x2b')];if(_[_0xdd7d('0x2c')](_0x50b290['dialGlobalInterval'])||_[_0xdd7d('0x2c')](_0x50b290[_0xdd7d('0x2d')])||_[_0xdd7d('0x2c')](_0x50b290[_0xdd7d('0x2d')][_0xdd7d('0x2e')])){_0x5414f6=CAMPAIGN_STATUS[_0xdd7d('0x2f')];}else if(_[_0xdd7d('0x30')](_0x50b290[_0xdd7d('0x31')])||_['isEmpty'](_0x50b290[_0xdd7d('0x2d')][_0xdd7d('0x2e')])){_0x5414f6=CAMPAIGN_STATUS[_0xdd7d('0x32')];}else if(_0x2e3404&&!timezones[_0x2e3404]){_0x5414f6=CAMPAIGN_STATUS[_0xdd7d('0x33')];}return _0x5414f6;}function checkAnyValidTrunk(_0x480d20,_0x568e7c){var _0x315f92=null;var _0x47043f='SIP/';var _0x5e0f49=[_0xdd7d('0x34'),'unmonitored'];var _0x4b8263=!![];if(_0x480d20['Trunk']&&_0x480d20[_0xdd7d('0x27')][_0xdd7d('0x29')]){_0x47043f+=_0x480d20['Trunk']['name'];_0x315f92=_0x568e7c[_0x47043f];_0x4b8263=_0x5e0f49[_0xdd7d('0x35')](_0x315f92[_0xdd7d('0x36')]);}else if(_0x480d20['TrunkBackup']&&_0x480d20[_0xdd7d('0x37')][_0xdd7d('0x29')]){_0x47043f+=_0x480d20[_0xdd7d('0x37')][_0xdd7d('0x28')];_0x315f92=_0x568e7c[_0x47043f];_0x4b8263=_0x5e0f49[_0xdd7d('0x35')](_0x315f92[_0xdd7d('0x36')]);}return _0x4b8263;}function getQueueCampaignStatusMessage(_0x3eabe7,_0x195fd4){var _0x2b7e01=CAMPAIGN_STATUS[_0xdd7d('0x6')];var _0x5614c6=isPreviewCampaign(_0x3eabe7);if(!isQueueCampaignActive(_0x3eabe7)){if(_0x5614c6){_0x2b7e01=CAMPAIGN_STATUS['INACTIVE'];}else{if(_0x3eabe7[_0xdd7d('0x26')]===0x0&&_0x3eabe7[_0xdd7d('0x22')]===0x0&&_0x3eabe7['waiting']===0x0&&(_0x3eabe7[_0xdd7d('0x23')]||0x0)===0x0){_0x2b7e01=CAMPAIGN_STATUS[_0xdd7d('0x38')];}else{_0x2b7e01=CAMPAIGN_STATUS[_0xdd7d('0x39')];}}}else if(_0x3eabe7['loggedIn']===0x0){_0x2b7e01=CAMPAIGN_STATUS[_0xdd7d('0x3a')];}else if(!checkAnyValidTrunk(_0x3eabe7,_0x195fd4)){_0x2b7e01=CAMPAIGN_STATUS['UNREACHABLE_TRUNK'];}else if(!isPreviewCampaign(_0x3eabe7)){var _0x460af9=checkAnyValidQueueCampaignInterval(_0x3eabe7);if(_0x460af9){_0x2b7e01=_0x460af9;}}return _0x2b7e01;}exports[_0xdd7d('0x3b')]=getQueueCampaignStatusMessage;function getQueueCampaignActiveStatusMessage(_0x45ba57){var _0x59a2a8=CAMPAIGN_STATUS['DISACTIVED'];if(_0x45ba57[_0xdd7d('0x26')]===0x0&&_0x45ba57['talking']===0x0&&_0x45ba57[_0xdd7d('0x24')]===0x0&&(_0x45ba57[_0xdd7d('0x23')]||0x0)===0x0){_0x59a2a8=CAMPAIGN_STATUS['INACTIVE'];}return _0x59a2a8;}exports[_0xdd7d('0x3c')]=getQueueCampaignActiveStatusMessage;function extractCalleridName(_0x32c9ec){var _0x2a19a7=_0x32c9ec[_0xdd7d('0x3d')](/"(.*?)"/);return _0x2a19a7?_0x2a19a7[0x1]:_0x32c9ec;}exports[_0xdd7d('0x3e')]=extractCalleridName;function getCallerId(_0x5b428e,_0xf9aef9,_0x38947e){if(!_['isUndefined'](_0x38947e)&&typeof _0x38947e==='string'&&!_[_0xdd7d('0x30')](_0x38947e)){if(!_['isUndefined'](_0xf9aef9)&&typeof _0xf9aef9===_0xdd7d('0x3f')&&!_[_0xdd7d('0x30')](_0xf9aef9)){return util['format'](_0xdd7d('0x40'),_0xf9aef9,_0x38947e);}return util[_0xdd7d('0x41')]('\x22%s\x22\x20<%s>',_0x38947e,_0x38947e);}if(!_['isUndefined'](_0x5b428e)&&typeof _0x5b428e===_0xdd7d('0x3f')&&!_['isEmpty'](_0x5b428e)){return _0x5b428e;}return _0xdd7d('0x42');}exports[_0xdd7d('0x43')]=getCallerId;function getCallerIdRandom(_0x54c564,_0x1109e4){var _0x2b9eb2;var _0x7e93c7;var _0x732813;if(_0x1109e4<=0x0){_0x1109e4=0x1;}_0x2b9eb2=new RegExp(_0xdd7d('0x44')+_0x1109e4+'}$');_0x7e93c7=Math[_0xdd7d('0x45')](0xa,_0x1109e4-0x1);_0x732813=Math[_0xdd7d('0x45')](0xa,_0x1109e4)-0x1;return util[_0xdd7d('0x41')]('%s',_[_0xdd7d('0x46')](_0x54c564,_0x2b9eb2,_[_0xdd7d('0x47')](_0x7e93c7,_0x732813)[_0xdd7d('0x48')]()));}exports['getCallerIdRandom']=getCallerIdRandom;function decrementOriginate(_0x374f9a,_0x57ce0f){if(_0x374f9a['originated']&&_0x374f9a[_0xdd7d('0x26')]>0x0){_0x374f9a[_0xdd7d('0x26')]-=0x1;}else{logger[_0xdd7d('0x49')](_0xdd7d('0x4a'),_0x57ce0f);}}exports[_0xdd7d('0x4b')]=decrementOriginate;function checkContactEmpty(_0x351e35){return _0x351e35&&_0x351e35['length']>0x0;}exports[_0xdd7d('0x4c')]=checkContactEmpty;function erlangb(_0x14b88d,_0x213cc5){if(_0x213cc5===0x0){return 0x0;}var _0x518057=0x1;for(var _0xa7be5e=0x1;_0xa7be5e<=_0x213cc5;_0xa7be5e+=0x1){_0x518057=0x1+_0x518057*_0xa7be5e/_0x14b88d;}return 0x1/_0x518057;}exports[_0xdd7d('0x4d')]=erlangb;function checkContactLowerLimitOriginate(_0x2f4a63,_0x466357,_0x483231){if(_0x466357>_0x483231){for(var _0x4706cc=0x0;_0x4706cc<_0x466357-_0x483231;_0x4706cc+=0x1){decrementOriginate(_0x2f4a63,_0xdd7d('0x4e'));}}}exports[_0xdd7d('0x4f')]=checkContactLowerLimitOriginate;function setXMDContactVariables(_0xd51ee6){var _0x12f234={};var _0x5e1e7b=['id',_0xdd7d('0x50'),'tags','updatedAt'];const _0x4d0897=0xfa;if(_0xd51ee6){for(var _0x4753a7 in _0xd51ee6){if(typeof _0xd51ee6[_0x4753a7]!=='undefined'){if(!_[_0xdd7d('0x2c')](_0xd51ee6[_0x4753a7])&&!_0x5e1e7b[_0xdd7d('0x35')](_0x4753a7)){if(_0x4753a7===_0xdd7d('0x51')&&_0xd51ee6[_0x4753a7][_0xdd7d('0x52')]>_0x4d0897){_0x12f234['XMD-'+_0x4753a7[_0xdd7d('0x53')]()]=_0xd51ee6[_0x4753a7][_0xdd7d('0x48')]()[_0xdd7d('0x54')](0x0,_0x4d0897);}else{_0x12f234[_0xdd7d('0x55')+_0x4753a7[_0xdd7d('0x53')]()]=_0xd51ee6[_0x4753a7];}}}}}return _0x12f234;}exports[_0xdd7d('0x56')]=setXMDContactVariables;