59a019b48a6b7d780c96219aec7fef23f86bbe2d
[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 _0xe517=['erlangb','checkContactLowerLimitOriginate','tags','updatedAt','undefined','XMD-','toUpperCase','substring','setXMDContactVariables','lodash','moment','util','../../../../config/logger','dialer','../../../../config/environment/shared','timezones','BLACKLIST','RESCHEDULED_CONTACTS','DEACTIVATED','NOT_ACTIVE','AGENTS_NOT_LOGGED','AVAILABLE_CONTACTS_FINISHED','INTERVAL_IS_NULL','INTERVAL_IS_OVERTIME','GLOBAL_INTERVAL_IS_OVERTIME','RECALLINQUEUE','TIMEZONE_UNKNOW','TRUNK_IS_NOT_REACHABLE','CAMPAIGN_STATUS','dialMethod','preview','type','ivr','outbound','isOutboundQueue','dialActive','isQueueCampaignActive','active','isIVRCampaignActive','milliseconds','diff','seconds','message','available','loggedIn','loggedInDb','paused','talking','pTalking','waiting','inUse','originated','Trunk','name','dialGlobalInterval','isNil','Interval','NULL_INTERVAL','isEmpty','Intervals','EMPTY_INTERVAL','UNKNOWN_TIMEZONE','reachable','unmonitored','status','TrunkBackup','includes','ACTIVE','INACTIVE','UNREACHABLE_TRUNK','getQueueCampaignStatusMessage','DISACTIVED','match','extractCalleridName','isUndefined','string','format','\x22%s\x22\x20<%s>','\x22\x22\x20<>','getCallerId','pow','replace','toString','getCallerIdRandom','error','[decrementOriginate]\x20queue\x20originate\x20value\x20is\x20negative','decrementOriginate','length','checkContactEmpty'];(function(_0x12fada,_0x5e000c){var _0x4650aa=function(_0x34168c){while(--_0x34168c){_0x12fada['push'](_0x12fada['shift']());}};_0x4650aa(++_0x5e000c);}(_0xe517,0x1c6));var _0x7e51=function(_0x4e15f6,_0x521296){_0x4e15f6=_0x4e15f6-0x0;var _0x57d6e6=_0xe517[_0x4e15f6];return _0x57d6e6;};'use strict';var _=require(_0x7e51('0x0'));var moment=require(_0x7e51('0x1'));var util=require(_0x7e51('0x2'));var logger=require(_0x7e51('0x3'))(_0x7e51('0x4'));var timezones=require(_0x7e51('0x5'))[_0x7e51('0x6')];var CAMPAIGN_STATUS={'ACTIVE':'ACTIVE','BLACKLIST':_0x7e51('0x7'),'CONTACTS_RESCHEDULED':_0x7e51('0x8'),'DEACTIVATED':_0x7e51('0x9'),'DISACTIVED':'IS_DISACTIVED','EMPTY_INTERVAL':'INTERVAL_IS_EMPTY','INACTIVE':_0x7e51('0xa'),'NO_AGENTS_LOGGED':_0x7e51('0xb'),'NO_AVAILABLE_CONTACTS':_0x7e51('0xc'),'NULL_INTERVAL':_0x7e51('0xd'),'OVERTIME_INTERVAL':_0x7e51('0xe'),'OVERTIME_GLOBAL_INTERVAL':_0x7e51('0xf'),'QUEUE_RECALL':_0x7e51('0x10'),'RECALL_TIMEOUT':'RECALLFAILEDTIMEOUT','RUNNING':'RUNNING','UNKNOWN_TIMEZONE':_0x7e51('0x11'),'UNREACHABLE_TRUNK':_0x7e51('0x12')};exports[_0x7e51('0x13')]=CAMPAIGN_STATUS;function isPreviewCampaign(_0x417cff){return _0x417cff[_0x7e51('0x14')]===_0x7e51('0x15');}exports['isPreviewCampaign']=isPreviewCampaign;function isIVRCampaign(_0x4ecec4){return _0x4ecec4[_0x7e51('0x16')]===_0x7e51('0x17');}exports['isIVRCampaign']=isIVRCampaign;function isOutboundQueue(_0x33b2a3){return _0x33b2a3[_0x7e51('0x16')]===_0x7e51('0x18');}exports[_0x7e51('0x19')]=isOutboundQueue;function isQueueCampaignActive(_0x391379){return _0x391379[_0x7e51('0x1a')];}exports[_0x7e51('0x1b')]=isQueueCampaignActive;function isIVRCampaignActive(_0x48ce26){return _0x48ce26[_0x7e51('0x1c')];}exports[_0x7e51('0x1d')]=isIVRCampaignActive;function getSeconds(_0x5ad0b1,_0x4aa229){var _0x37ccca=moment(_0x5ad0b1)[_0x7e51('0x1e')](0x0);var _0x143d7b=moment(_0x4aa229)[_0x7e51('0x1e')](0x0);return _0x37ccca[_0x7e51('0x1f')](_0x143d7b,_0x7e51('0x20'));}exports['getSeconds']=getSeconds;function hasQueueCampaignDataChanged(_0x24f583,_0x38e323){var _0xf488f2=![];var _0x36d961=_0x24f583[_0x7e51('0x14')]!==_0x38e323['dialMethod']||_0x24f583[_0x7e51('0x1a')]!==_0x38e323['dialActive']||_0x24f583[_0x7e51('0x21')]!==_0x38e323[_0x7e51('0x21')];var _0x3deaa1=_0x24f583[_0x7e51('0x22')]!==_0x38e323[_0x7e51('0x22')]||_0x24f583[_0x7e51('0x23')]!==_0x38e323[_0x7e51('0x23')]||_0x24f583[_0x7e51('0x24')]!==_0x38e323[_0x7e51('0x24')]||_0x24f583[_0x7e51('0x25')]!==_0x38e323['paused']||_0x24f583[_0x7e51('0x26')]!==_0x38e323[_0x7e51('0x26')]||_0x24f583[_0x7e51('0x27')]!==_0x38e323['pTalking']||_0x24f583[_0x7e51('0x28')]!==_0x38e323['waiting']||_0x24f583[_0x7e51('0x29')]!==_0x38e323[_0x7e51('0x29')]||_0x24f583[_0x7e51('0x2a')]!==_0x38e323[_0x7e51('0x2a')];if(_0x24f583['Trunk']&&_0x38e323[_0x7e51('0x2b')]){_0xf488f2=_0x24f583[_0x7e51('0x2b')]['name']!==_0x38e323['Trunk'][_0x7e51('0x2c')]||_0x24f583[_0x7e51('0x2b')][_0x7e51('0x1c')]!==_0x38e323[_0x7e51('0x2b')][_0x7e51('0x1c')];}return _0x36d961||_0x3deaa1||_0xf488f2;}exports['hasQueueCampaignDataChanged']=hasQueueCampaignDataChanged;function checkAnyValidQueueCampaignInterval(_0x164ee0){var _0x4f183a=null;var _0x58bb32=_0x164ee0['dialTimezone'];if(_['isNil'](_0x164ee0[_0x7e51('0x2d')])||_[_0x7e51('0x2e')](_0x164ee0[_0x7e51('0x2f')])||_[_0x7e51('0x2e')](_0x164ee0['Interval']['Intervals'])){_0x4f183a=CAMPAIGN_STATUS[_0x7e51('0x30')];}else if(_[_0x7e51('0x31')](_0x164ee0[_0x7e51('0x2d')])||_[_0x7e51('0x31')](_0x164ee0[_0x7e51('0x2f')][_0x7e51('0x32')])){_0x4f183a=CAMPAIGN_STATUS[_0x7e51('0x33')];}else if(_0x58bb32&&!timezones[_0x58bb32]){_0x4f183a=CAMPAIGN_STATUS[_0x7e51('0x34')];}return _0x4f183a;}function checkAnyValidTrunk(_0x411b02,_0x1ee838){var _0x55d0a6=null;var _0x4ddd60='SIP/';var _0x2d166c=[_0x7e51('0x35'),_0x7e51('0x36')];var _0x349e45=!![];if(_0x411b02[_0x7e51('0x2b')]&&_0x411b02[_0x7e51('0x2b')]['active']){_0x4ddd60+=_0x411b02[_0x7e51('0x2b')][_0x7e51('0x2c')];_0x55d0a6=_0x1ee838[_0x4ddd60];_0x349e45=_0x2d166c['includes'](_0x55d0a6[_0x7e51('0x37')]);}else if(_0x411b02[_0x7e51('0x38')]&&_0x411b02['TrunkBackup'][_0x7e51('0x1c')]){_0x4ddd60+=_0x411b02[_0x7e51('0x38')][_0x7e51('0x2c')];_0x55d0a6=_0x1ee838[_0x4ddd60];_0x349e45=_0x2d166c[_0x7e51('0x39')](_0x55d0a6[_0x7e51('0x37')]);}return _0x349e45;}function getQueueCampaignStatusMessage(_0x1eaf22,_0x2404bf){var _0x1bc983=CAMPAIGN_STATUS[_0x7e51('0x3a')];var _0x53bd06=isPreviewCampaign(_0x1eaf22);if(!isQueueCampaignActive(_0x1eaf22)){if(_0x53bd06){_0x1bc983=CAMPAIGN_STATUS[_0x7e51('0x3b')];}else{if(_0x1eaf22[_0x7e51('0x2a')]===0x0&&_0x1eaf22[_0x7e51('0x26')]===0x0&&_0x1eaf22['waiting']===0x0&&(_0x1eaf22[_0x7e51('0x27')]||0x0)===0x0){_0x1bc983=CAMPAIGN_STATUS[_0x7e51('0x3b')];}else{_0x1bc983=CAMPAIGN_STATUS['DISACTIVED'];}}}else if(_0x1eaf22['loggedIn']===0x0){_0x1bc983=CAMPAIGN_STATUS['NO_AGENTS_LOGGED'];}else if(!checkAnyValidTrunk(_0x1eaf22,_0x2404bf)){_0x1bc983=CAMPAIGN_STATUS[_0x7e51('0x3c')];}else if(!isPreviewCampaign(_0x1eaf22)){var _0x28b889=checkAnyValidQueueCampaignInterval(_0x1eaf22);if(_0x28b889){_0x1bc983=_0x28b889;}}return _0x1bc983;}exports[_0x7e51('0x3d')]=getQueueCampaignStatusMessage;function getQueueCampaignActiveStatusMessage(_0x3bc71d){var _0x1ef1cf=CAMPAIGN_STATUS[_0x7e51('0x3e')];if(_0x3bc71d[_0x7e51('0x2a')]===0x0&&_0x3bc71d[_0x7e51('0x26')]===0x0&&_0x3bc71d[_0x7e51('0x28')]===0x0&&(_0x3bc71d[_0x7e51('0x27')]||0x0)===0x0){_0x1ef1cf=CAMPAIGN_STATUS['INACTIVE'];}return _0x1ef1cf;}exports['getQueueCampaignActiveStatusMessage']=getQueueCampaignActiveStatusMessage;function extractCalleridName(_0x15ba68){var _0x37ec8e=_0x15ba68[_0x7e51('0x3f')](/"(.*?)"/);return _0x37ec8e?_0x37ec8e[0x1]:_0x15ba68;}exports[_0x7e51('0x40')]=extractCalleridName;function getCallerId(_0x3477ea,_0x2c5e0a,_0x1c3a1e){if(!_[_0x7e51('0x41')](_0x1c3a1e)&&typeof _0x1c3a1e===_0x7e51('0x42')&&!_[_0x7e51('0x31')](_0x1c3a1e)){if(!_[_0x7e51('0x41')](_0x2c5e0a)&&typeof _0x2c5e0a===_0x7e51('0x42')&&!_[_0x7e51('0x31')](_0x2c5e0a)){return util[_0x7e51('0x43')](_0x7e51('0x44'),_0x2c5e0a,_0x1c3a1e);}return util[_0x7e51('0x43')]('\x22%s\x22\x20<%s>',_0x1c3a1e,_0x1c3a1e);}if(!_['isUndefined'](_0x3477ea)&&typeof _0x3477ea==='string'&&!_['isEmpty'](_0x3477ea)){return _0x3477ea;}return _0x7e51('0x45');}exports[_0x7e51('0x46')]=getCallerId;function getCallerIdRandom(_0x1977a8,_0x5eddb9){var _0x655f72;var _0x2335cf;var _0x50130d;if(_0x5eddb9<=0x0){_0x5eddb9=0x1;}_0x655f72=new RegExp('\x5cw{0,'+_0x5eddb9+'}$');_0x2335cf=Math[_0x7e51('0x47')](0xa,_0x5eddb9-0x1);_0x50130d=Math[_0x7e51('0x47')](0xa,_0x5eddb9)-0x1;return util[_0x7e51('0x43')]('%s',_[_0x7e51('0x48')](_0x1977a8,_0x655f72,_['random'](_0x2335cf,_0x50130d)[_0x7e51('0x49')]()));}exports[_0x7e51('0x4a')]=getCallerIdRandom;function decrementOriginate(_0x3b38b1){if(_0x3b38b1[_0x7e51('0x2a')]&&_0x3b38b1[_0x7e51('0x2a')]>0x0){_0x3b38b1[_0x7e51('0x2a')]-=0x1;}else{logger[_0x7e51('0x4b')](_0x7e51('0x4c'));}}exports[_0x7e51('0x4d')]=decrementOriginate;function checkContactEmpty(_0x4d72bc){return _0x4d72bc&&_0x4d72bc[_0x7e51('0x4e')]>0x0;}exports[_0x7e51('0x4f')]=checkContactEmpty;function erlangb(_0x937c70,_0x3e2eb6){if(_0x3e2eb6===0x0){return 0x0;}var _0x1c90f1=0x1;for(var _0x478f0b=0x1;_0x478f0b<=_0x3e2eb6;_0x478f0b+=0x1){_0x1c90f1=0x1+_0x1c90f1*_0x478f0b/_0x937c70;}return 0x1/_0x1c90f1;}exports[_0x7e51('0x50')]=erlangb;function checkContactLowerLimitOriginate(_0x4e6b18,_0x11d90a,_0x1997f3){if(_0x11d90a>_0x1997f3){for(var _0x6b27b1=0x0;_0x6b27b1<_0x11d90a-_0x1997f3;_0x6b27b1+=0x1){decrementOriginate(_0x4e6b18);}}}exports[_0x7e51('0x51')]=checkContactLowerLimitOriginate;function setXMDContactVariables(_0x46ce49){var _0xcf472={};var _0x301f8e=['id','createdAt',_0x7e51('0x52'),_0x7e51('0x53')];const _0x194813=0xfa;if(_0x46ce49){for(var _0x3369c6 in _0x46ce49){if(typeof _0x46ce49[_0x3369c6]!==_0x7e51('0x54')){if(!_[_0x7e51('0x2e')](_0x46ce49[_0x3369c6])&&!_0x301f8e[_0x7e51('0x39')](_0x3369c6)){if(_0x3369c6==='description'&&_0x46ce49[_0x3369c6][_0x7e51('0x4e')]>_0x194813){_0xcf472[_0x7e51('0x55')+_0x3369c6[_0x7e51('0x56')]()]=_0x46ce49[_0x3369c6]['toString']()[_0x7e51('0x57')](0x0,_0x194813);}else{_0xcf472[_0x7e51('0x55')+_0x3369c6[_0x7e51('0x56')]()]=_0x46ce49[_0x3369c6];}}}}}return _0xcf472;}exports[_0x7e51('0x58')]=setXMDContactVariables;