50d71571d7446e3a1941062cc75044f81b16164f
[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 _0x5f4b=['checkContactEmpty','checkContactLowerLimitOriginate','tags','updatedAt','undefined','includes','description','XMD-','substring','toUpperCase','setXMDContactVariables','lodash','util','../../../../config/logger','dialer','../../../../config/environment/shared','timezones','ACTIVE','BLACKLIST','RESCHEDULED_CONTACTS','DEACTIVATED','IS_DISACTIVED','NOT_ACTIVE','AGENTS_NOT_LOGGED','INTERVAL_IS_OVERTIME','GLOBAL_INTERVAL_IS_OVERTIME','RECALLINQUEUE','RECALLFAILEDTIMEOUT','RUNNING','CAMPAIGN_STATUS','dialMethod','type','ivr','isIVRCampaign','isOutboundQueue','dialActive','isQueueCampaignActive','active','isIVRCampaignActive','milliseconds','diff','message','available','loggedIn','paused','talking','pTalking','waiting','inUse','originated','Trunk','name','hasQueueCampaignDataChanged','dialTimezone','isNil','dialGlobalInterval','Interval','Intervals','NULL_INTERVAL','UNKNOWN_TIMEZONE','unmonitored','status','TrunkBackup','INACTIVE','DISACTIVED','UNREACHABLE_TRUNK','getQueueCampaignStatusMessage','getQueueCampaignActiveStatusMessage','extractCalleridName','string','isUndefined','format','\x22%s\x22\x20<%s>','isEmpty','getCallerId','\x5cw{0,','pow','replace','random','toString','error','[decrementOriginate]\x20queue\x20originate\x20value\x20is\x20negative','decrementOriginate','length'];(function(_0x2fc4ce,_0xe30d0f){var _0x30b3d4=function(_0x1cf159){while(--_0x1cf159){_0x2fc4ce['push'](_0x2fc4ce['shift']());}};_0x30b3d4(++_0xe30d0f);}(_0x5f4b,0x107));var _0xb5f4=function(_0x403643,_0x4b2eb1){_0x403643=_0x403643-0x0;var _0x175cc5=_0x5f4b[_0x403643];return _0x175cc5;};'use strict';var _=require(_0xb5f4('0x0'));var moment=require('moment');var util=require(_0xb5f4('0x1'));var logger=require(_0xb5f4('0x2'))(_0xb5f4('0x3'));var timezones=require(_0xb5f4('0x4'))[_0xb5f4('0x5')];var CAMPAIGN_STATUS={'ACTIVE':_0xb5f4('0x6'),'BLACKLIST':_0xb5f4('0x7'),'CONTACTS_RESCHEDULED':_0xb5f4('0x8'),'DEACTIVATED':_0xb5f4('0x9'),'DISACTIVED':_0xb5f4('0xa'),'EMPTY_INTERVAL':'INTERVAL_IS_EMPTY','INACTIVE':_0xb5f4('0xb'),'NO_AGENTS_LOGGED':_0xb5f4('0xc'),'NO_AVAILABLE_CONTACTS':'AVAILABLE_CONTACTS_FINISHED','NULL_INTERVAL':'INTERVAL_IS_NULL','OVERTIME_INTERVAL':_0xb5f4('0xd'),'OVERTIME_GLOBAL_INTERVAL':_0xb5f4('0xe'),'QUEUE_RECALL':_0xb5f4('0xf'),'RECALL_TIMEOUT':_0xb5f4('0x10'),'RUNNING':_0xb5f4('0x11'),'UNKNOWN_TIMEZONE':'TIMEZONE_UNKNOW','UNREACHABLE_TRUNK':'TRUNK_IS_NOT_REACHABLE'};exports[_0xb5f4('0x12')]=CAMPAIGN_STATUS;function isPreviewCampaign(_0x140c34){return _0x140c34[_0xb5f4('0x13')]==='preview';}exports['isPreviewCampaign']=isPreviewCampaign;function isIVRCampaign(_0x2a51cb){return _0x2a51cb[_0xb5f4('0x14')]===_0xb5f4('0x15');}exports[_0xb5f4('0x16')]=isIVRCampaign;function isOutboundQueue(_0x164925){return _0x164925[_0xb5f4('0x14')]==='outbound';}exports[_0xb5f4('0x17')]=isOutboundQueue;function isQueueCampaignActive(_0x34c87f){return _0x34c87f[_0xb5f4('0x18')];}exports[_0xb5f4('0x19')]=isQueueCampaignActive;function isIVRCampaignActive(_0x4c3b25){return _0x4c3b25[_0xb5f4('0x1a')];}exports[_0xb5f4('0x1b')]=isIVRCampaignActive;function getSeconds(_0x576d73,_0x2239c5){var _0x415f16=moment(_0x576d73)[_0xb5f4('0x1c')](0x0);var _0x5d0c90=moment(_0x2239c5)[_0xb5f4('0x1c')](0x0);return _0x415f16[_0xb5f4('0x1d')](_0x5d0c90,'seconds');}exports['getSeconds']=getSeconds;function hasQueueCampaignDataChanged(_0x3a7408,_0x591523){var _0xecd6f7=![];var _0x3b8a75=_0x3a7408[_0xb5f4('0x13')]!==_0x591523[_0xb5f4('0x13')]||_0x3a7408[_0xb5f4('0x18')]!==_0x591523[_0xb5f4('0x18')]||_0x3a7408['message']!==_0x591523[_0xb5f4('0x1e')];var _0x5dd9b1=_0x3a7408['available']!==_0x591523[_0xb5f4('0x1f')]||_0x3a7408[_0xb5f4('0x20')]!==_0x591523['loggedIn']||_0x3a7408['loggedInDb']!==_0x591523['loggedInDb']||_0x3a7408[_0xb5f4('0x21')]!==_0x591523[_0xb5f4('0x21')]||_0x3a7408[_0xb5f4('0x22')]!==_0x591523[_0xb5f4('0x22')]||_0x3a7408[_0xb5f4('0x23')]!==_0x591523[_0xb5f4('0x23')]||_0x3a7408[_0xb5f4('0x24')]!==_0x591523[_0xb5f4('0x24')]||_0x3a7408[_0xb5f4('0x25')]!==_0x591523['inUse']||_0x3a7408[_0xb5f4('0x26')]!==_0x591523[_0xb5f4('0x26')];if(_0x3a7408[_0xb5f4('0x27')]&&_0x591523[_0xb5f4('0x27')]){_0xecd6f7=_0x3a7408['Trunk'][_0xb5f4('0x28')]!==_0x591523['Trunk'][_0xb5f4('0x28')]||_0x3a7408[_0xb5f4('0x27')][_0xb5f4('0x1a')]!==_0x591523[_0xb5f4('0x27')][_0xb5f4('0x1a')];}return _0x3b8a75||_0x5dd9b1||_0xecd6f7;}exports[_0xb5f4('0x29')]=hasQueueCampaignDataChanged;function checkAnyValidQueueCampaignInterval(_0x4859b1){var _0x30f9bd=null;var _0x2c9560=_0x4859b1[_0xb5f4('0x2a')];if(_[_0xb5f4('0x2b')](_0x4859b1[_0xb5f4('0x2c')])||_[_0xb5f4('0x2b')](_0x4859b1[_0xb5f4('0x2d')])||_[_0xb5f4('0x2b')](_0x4859b1[_0xb5f4('0x2d')][_0xb5f4('0x2e')])){_0x30f9bd=CAMPAIGN_STATUS[_0xb5f4('0x2f')];}else if(_['isEmpty'](_0x4859b1[_0xb5f4('0x2c')])||_['isEmpty'](_0x4859b1[_0xb5f4('0x2d')][_0xb5f4('0x2e')])){_0x30f9bd=CAMPAIGN_STATUS['EMPTY_INTERVAL'];}else if(_0x2c9560&&!timezones[_0x2c9560]){_0x30f9bd=CAMPAIGN_STATUS[_0xb5f4('0x30')];}return _0x30f9bd;}function checkAnyValidTrunk(_0x36a0cf,_0x155a6b){var _0x599635=null;var _0x302bfd='SIP/';var _0x5694d7=['reachable',_0xb5f4('0x31')];var _0x34daf9=!![];if(_0x36a0cf[_0xb5f4('0x27')]&&_0x36a0cf[_0xb5f4('0x27')][_0xb5f4('0x1a')]){_0x302bfd+=_0x36a0cf[_0xb5f4('0x27')]['name'];_0x599635=_0x155a6b[_0x302bfd];_0x34daf9=_0x5694d7['includes'](_0x599635[_0xb5f4('0x32')]);}else if(_0x36a0cf[_0xb5f4('0x33')]&&_0x36a0cf[_0xb5f4('0x33')][_0xb5f4('0x1a')]){_0x302bfd+=_0x36a0cf['TrunkBackup'][_0xb5f4('0x28')];_0x599635=_0x155a6b[_0x302bfd];_0x34daf9=_0x5694d7['includes'](_0x599635[_0xb5f4('0x32')]);}return _0x34daf9;}function getQueueCampaignStatusMessage(_0x2bb84a,_0x59d7e2){var _0x508f6b=CAMPAIGN_STATUS[_0xb5f4('0x6')];var _0x2a7c96=isPreviewCampaign(_0x2bb84a);if(!isQueueCampaignActive(_0x2bb84a)){if(_0x2a7c96){_0x508f6b=CAMPAIGN_STATUS[_0xb5f4('0x34')];}else{if(_0x2bb84a['originated']===0x0&&_0x2bb84a[_0xb5f4('0x22')]===0x0&&_0x2bb84a['waiting']===0x0&&(_0x2bb84a['pTalking']||0x0)===0x0){_0x508f6b=CAMPAIGN_STATUS['INACTIVE'];}else{_0x508f6b=CAMPAIGN_STATUS[_0xb5f4('0x35')];}}}else if(_0x2bb84a[_0xb5f4('0x20')]===0x0){_0x508f6b=CAMPAIGN_STATUS['NO_AGENTS_LOGGED'];}else if(!checkAnyValidTrunk(_0x2bb84a,_0x59d7e2)){_0x508f6b=CAMPAIGN_STATUS[_0xb5f4('0x36')];}else if(!isPreviewCampaign(_0x2bb84a)){var _0x4d5298=checkAnyValidQueueCampaignInterval(_0x2bb84a);if(_0x4d5298){_0x508f6b=_0x4d5298;}}return _0x508f6b;}exports[_0xb5f4('0x37')]=getQueueCampaignStatusMessage;function getQueueCampaignActiveStatusMessage(_0x42807f){var _0x40ac16=CAMPAIGN_STATUS[_0xb5f4('0x35')];if(_0x42807f['originated']===0x0&&_0x42807f['talking']===0x0&&_0x42807f['waiting']===0x0&&(_0x42807f[_0xb5f4('0x23')]||0x0)===0x0){_0x40ac16=CAMPAIGN_STATUS[_0xb5f4('0x34')];}return _0x40ac16;}exports[_0xb5f4('0x38')]=getQueueCampaignActiveStatusMessage;function extractCalleridName(_0x37d2c3){var _0x2fd736=_0x37d2c3['match'](/"(.*?)"/);return _0x2fd736?_0x2fd736[0x1]:_0x37d2c3;}exports[_0xb5f4('0x39')]=extractCalleridName;function getCallerId(_0x3e7b70,_0x21a208,_0x31caa4){if(!_['isUndefined'](_0x31caa4)&&typeof _0x31caa4===_0xb5f4('0x3a')&&!_['isEmpty'](_0x31caa4)){if(!_[_0xb5f4('0x3b')](_0x21a208)&&typeof _0x21a208==='string'&&!_['isEmpty'](_0x21a208)){return util[_0xb5f4('0x3c')](_0xb5f4('0x3d'),_0x21a208,_0x31caa4);}return util[_0xb5f4('0x3c')](_0xb5f4('0x3d'),_0x31caa4,_0x31caa4);}if(!_[_0xb5f4('0x3b')](_0x3e7b70)&&typeof _0x3e7b70===_0xb5f4('0x3a')&&!_[_0xb5f4('0x3e')](_0x3e7b70)){return _0x3e7b70;}return'\x22\x22\x20<>';}exports[_0xb5f4('0x3f')]=getCallerId;function getCallerIdRandom(_0x278140,_0x5bcbd5){var _0x9126e;var _0x5c4856;var _0x8665b;if(_0x5bcbd5<=0x0){_0x5bcbd5=0x1;}_0x9126e=new RegExp(_0xb5f4('0x40')+_0x5bcbd5+'}$');_0x5c4856=Math[_0xb5f4('0x41')](0xa,_0x5bcbd5-0x1);_0x8665b=Math[_0xb5f4('0x41')](0xa,_0x5bcbd5)-0x1;return util['format']('%s',_[_0xb5f4('0x42')](_0x278140,_0x9126e,_[_0xb5f4('0x43')](_0x5c4856,_0x8665b)[_0xb5f4('0x44')]()));}exports['getCallerIdRandom']=getCallerIdRandom;function decrementOriginate(_0x58cd27){if(_0x58cd27[_0xb5f4('0x26')]&&_0x58cd27['originated']>0x0){_0x58cd27[_0xb5f4('0x26')]-=0x1;}else{logger[_0xb5f4('0x45')](_0xb5f4('0x46'));}}exports[_0xb5f4('0x47')]=decrementOriginate;function checkContactEmpty(_0x53d28a){return _0x53d28a&&_0x53d28a[_0xb5f4('0x48')]>0x0;}exports[_0xb5f4('0x49')]=checkContactEmpty;function erlangb(_0x17a3e0,_0x2d8cbe){if(_0x2d8cbe===0x0){return 0x0;}var _0x305b1b=0x1;for(var _0x3ae9f0=0x1;_0x3ae9f0<=_0x2d8cbe;_0x3ae9f0+=0x1){_0x305b1b=0x1+_0x305b1b*_0x3ae9f0/_0x17a3e0;}return 0x1/_0x305b1b;}exports['erlangb']=erlangb;function checkContactLowerLimitOriginate(_0x1bdec4,_0x37535b,_0xa57e6d){if(_0x37535b>_0xa57e6d){for(var _0x4bd020=0x0;_0x4bd020<_0x37535b-_0xa57e6d;_0x4bd020+=0x1){decrementOriginate(_0x1bdec4);}}}exports[_0xb5f4('0x4a')]=checkContactLowerLimitOriginate;function setXMDContactVariables(_0x30e3d9){var _0x612cab={};var _0x4b3ce8=['id','createdAt',_0xb5f4('0x4b'),_0xb5f4('0x4c')];const _0x2360b2=0xfa;if(_0x30e3d9){for(var _0x2cfdfa in _0x30e3d9){if(typeof _0x30e3d9[_0x2cfdfa]!==_0xb5f4('0x4d')){if(!_[_0xb5f4('0x2b')](_0x30e3d9[_0x2cfdfa])&&!_0x4b3ce8[_0xb5f4('0x4e')](_0x2cfdfa)){if(_0x2cfdfa===_0xb5f4('0x4f')&&_0x30e3d9[_0x2cfdfa][_0xb5f4('0x48')]>_0x2360b2){_0x612cab[_0xb5f4('0x50')+_0x2cfdfa['toUpperCase']()]=_0x30e3d9[_0x2cfdfa][_0xb5f4('0x44')]()[_0xb5f4('0x51')](0x0,_0x2360b2);}else{_0x612cab[_0xb5f4('0x50')+_0x2cfdfa[_0xb5f4('0x52')]()]=_0x30e3d9[_0x2cfdfa];}}}}}return _0x612cab;}exports[_0xb5f4('0x53')]=setXMDContactVariables;