a75dcf67f640192489450fbe1e4bdceb355d5f65
[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 _0x30bd=['TrunkBackup','INACTIVE','DISACTIVED','NO_AGENTS_LOGGED','getQueueCampaignStatusMessage','getQueueCampaignActiveStatusMessage','match','string','format','\x22%s\x22\x20<%s>','isUndefined','\x22\x22\x20<>','getCallerId','pow','replace','random','toString','getCallerIdRandom','error','[decrementOriginate]\x20queue\x20originate\x20value','length','checkContactEmpty','erlangb','tags','updatedAt','undefined','description','XMD-','toUpperCase','setXMDContactVariables','lodash','moment','util','../../../../config/logger','../../../../config/environment/shared','timezones','BLACKLIST','RESCHEDULED_CONTACTS','DEACTIVATED','IS_DISACTIVED','NOT_ACTIVE','AGENTS_NOT_LOGGED','AVAILABLE_CONTACTS_FINISHED','INTERVAL_IS_NULL','INTERVAL_IS_OVERTIME','GLOBAL_INTERVAL_IS_OVERTIME','RECALLINQUEUE','RECALLFAILEDTIMEOUT','RUNNING','TIMEZONE_UNKNOW','TRUNK_IS_NOT_REACHABLE','CAMPAIGN_STATUS','dialMethod','isPreviewCampaign','isIVRCampaign','type','isOutboundQueue','dialActive','isQueueCampaignActive','active','isIVRCampaignActive','milliseconds','seconds','getSeconds','message','available','loggedIn','loggedInDb','paused','talking','pTalking','waiting','inUse','originated','Trunk','name','hasQueueCampaignDataChanged','dialTimezone','isNil','dialGlobalInterval','Interval','Intervals','isEmpty','EMPTY_INTERVAL','UNKNOWN_TIMEZONE','SIP/','includes','status'];(function(_0x5e7395,_0x43e16c){var _0x1870d9=function(_0x44010b){while(--_0x44010b){_0x5e7395['push'](_0x5e7395['shift']());}};_0x1870d9(++_0x43e16c);}(_0x30bd,0xce));var _0xd30b=function(_0x2ccf90,_0x2883f2){_0x2ccf90=_0x2ccf90-0x0;var _0x1ca121=_0x30bd[_0x2ccf90];return _0x1ca121;};'use strict';var _=require(_0xd30b('0x0'));var moment=require(_0xd30b('0x1'));var util=require(_0xd30b('0x2'));var logger=require(_0xd30b('0x3'))('dialer');var timezones=require(_0xd30b('0x4'))[_0xd30b('0x5')];var CAMPAIGN_STATUS={'ACTIVE':'ACTIVE','BLACKLIST':_0xd30b('0x6'),'CONTACTS_RESCHEDULED':_0xd30b('0x7'),'DEACTIVATED':_0xd30b('0x8'),'DISACTIVED':_0xd30b('0x9'),'EMPTY_INTERVAL':'INTERVAL_IS_EMPTY','INACTIVE':_0xd30b('0xa'),'NO_AGENTS_LOGGED':_0xd30b('0xb'),'NO_AVAILABLE_CONTACTS':_0xd30b('0xc'),'NULL_INTERVAL':_0xd30b('0xd'),'OVERTIME_INTERVAL':_0xd30b('0xe'),'OVERTIME_GLOBAL_INTERVAL':_0xd30b('0xf'),'QUEUE_RECALL':_0xd30b('0x10'),'RECALL_TIMEOUT':_0xd30b('0x11'),'RUNNING':_0xd30b('0x12'),'UNKNOWN_TIMEZONE':_0xd30b('0x13'),'UNREACHABLE_TRUNK':_0xd30b('0x14')};exports[_0xd30b('0x15')]=CAMPAIGN_STATUS;function isPreviewCampaign(_0x5ca076){return _0x5ca076[_0xd30b('0x16')]==='preview';}exports[_0xd30b('0x17')]=isPreviewCampaign;function isIVRCampaign(_0x14cd27){return _0x14cd27['type']==='ivr';}exports[_0xd30b('0x18')]=isIVRCampaign;function isOutboundQueue(_0x690209){return _0x690209[_0xd30b('0x19')]==='outbound';}exports[_0xd30b('0x1a')]=isOutboundQueue;function isQueueCampaignActive(_0x5f5b77){return _0x5f5b77[_0xd30b('0x1b')];}exports[_0xd30b('0x1c')]=isQueueCampaignActive;function isIVRCampaignActive(_0x259da5){return _0x259da5[_0xd30b('0x1d')];}exports[_0xd30b('0x1e')]=isIVRCampaignActive;function getSeconds(_0x11429f,_0x41cd08){var _0x469666=moment(_0x11429f)[_0xd30b('0x1f')](0x0);var _0x55d585=moment(_0x41cd08)[_0xd30b('0x1f')](0x0);return _0x469666['diff'](_0x55d585,_0xd30b('0x20'));}exports[_0xd30b('0x21')]=getSeconds;function hasQueueCampaignDataChanged(_0x3c5ce6,_0x146bcb){var _0x4a4c8d=![];var _0x3a3463=_0x3c5ce6['dialMethod']!==_0x146bcb[_0xd30b('0x16')]||_0x3c5ce6[_0xd30b('0x1b')]!==_0x146bcb[_0xd30b('0x1b')]||_0x3c5ce6[_0xd30b('0x22')]!==_0x146bcb[_0xd30b('0x22')];var _0x18cd26=_0x3c5ce6[_0xd30b('0x23')]!==_0x146bcb['available']||_0x3c5ce6['loggedIn']!==_0x146bcb[_0xd30b('0x24')]||_0x3c5ce6['loggedInDb']!==_0x146bcb[_0xd30b('0x25')]||_0x3c5ce6[_0xd30b('0x26')]!==_0x146bcb['paused']||_0x3c5ce6[_0xd30b('0x27')]!==_0x146bcb[_0xd30b('0x27')]||_0x3c5ce6['pTalking']!==_0x146bcb[_0xd30b('0x28')]||_0x3c5ce6[_0xd30b('0x29')]!==_0x146bcb[_0xd30b('0x29')]||_0x3c5ce6['inUse']!==_0x146bcb[_0xd30b('0x2a')]||_0x3c5ce6[_0xd30b('0x2b')]!==_0x146bcb['originated'];if(_0x3c5ce6[_0xd30b('0x2c')]&&_0x146bcb[_0xd30b('0x2c')]){_0x4a4c8d=_0x3c5ce6['Trunk'][_0xd30b('0x2d')]!==_0x146bcb[_0xd30b('0x2c')][_0xd30b('0x2d')]||_0x3c5ce6[_0xd30b('0x2c')]['active']!==_0x146bcb['Trunk'][_0xd30b('0x1d')];}return _0x3a3463||_0x18cd26||_0x4a4c8d;}exports[_0xd30b('0x2e')]=hasQueueCampaignDataChanged;function checkAnyValidQueueCampaignInterval(_0x2bf3dc){var _0x174f23=null;var _0x58be55=_0x2bf3dc[_0xd30b('0x2f')];if(_[_0xd30b('0x30')](_0x2bf3dc[_0xd30b('0x31')])||_['isNil'](_0x2bf3dc[_0xd30b('0x32')])||_[_0xd30b('0x30')](_0x2bf3dc[_0xd30b('0x32')][_0xd30b('0x33')])){_0x174f23=CAMPAIGN_STATUS['NULL_INTERVAL'];}else if(_[_0xd30b('0x34')](_0x2bf3dc[_0xd30b('0x31')])||_[_0xd30b('0x34')](_0x2bf3dc[_0xd30b('0x32')][_0xd30b('0x33')])){_0x174f23=CAMPAIGN_STATUS[_0xd30b('0x35')];}else if(_0x58be55&&!timezones[_0x58be55]){_0x174f23=CAMPAIGN_STATUS[_0xd30b('0x36')];}return _0x174f23;}function checkAnyValidTrunk(_0x2516cc,_0x33f560){var _0x557047=null;var _0x252af8=_0xd30b('0x37');var _0xa039a3=['reachable','unmonitored'];var _0x2f4b2a=!![];if(_0x2516cc['Trunk']&&_0x2516cc[_0xd30b('0x2c')][_0xd30b('0x1d')]){_0x252af8+=_0x2516cc[_0xd30b('0x2c')]['name'];_0x557047=_0x33f560[_0x252af8];_0x2f4b2a=_0xa039a3[_0xd30b('0x38')](_0x557047[_0xd30b('0x39')]);}else if(_0x2516cc[_0xd30b('0x3a')]&&_0x2516cc[_0xd30b('0x3a')][_0xd30b('0x1d')]){_0x252af8+=_0x2516cc['TrunkBackup'][_0xd30b('0x2d')];_0x557047=_0x33f560[_0x252af8];_0x2f4b2a=_0xa039a3['includes'](_0x557047[_0xd30b('0x39')]);}return _0x2f4b2a;}function getQueueCampaignStatusMessage(_0x191128,_0x153373){var _0x50796e=CAMPAIGN_STATUS['ACTIVE'];var _0x1b1031=isPreviewCampaign(_0x191128);if(!isQueueCampaignActive(_0x191128)){if(_0x1b1031){_0x50796e=CAMPAIGN_STATUS['INACTIVE'];}else{if(_0x191128[_0xd30b('0x2b')]===0x0&&_0x191128[_0xd30b('0x27')]===0x0&&_0x191128['waiting']===0x0&&(_0x191128[_0xd30b('0x28')]||0x0)===0x0){_0x50796e=CAMPAIGN_STATUS[_0xd30b('0x3b')];}else{_0x50796e=CAMPAIGN_STATUS[_0xd30b('0x3c')];}}}else if(_0x191128[_0xd30b('0x24')]===0x0){_0x50796e=CAMPAIGN_STATUS[_0xd30b('0x3d')];}else if(!checkAnyValidTrunk(_0x191128,_0x153373)){_0x50796e=CAMPAIGN_STATUS['UNREACHABLE_TRUNK'];}else if(!isPreviewCampaign(_0x191128)){var _0x476df6=checkAnyValidQueueCampaignInterval(_0x191128);if(_0x476df6){_0x50796e=_0x476df6;}}return _0x50796e;}exports[_0xd30b('0x3e')]=getQueueCampaignStatusMessage;function getQueueCampaignActiveStatusMessage(_0x5531cf){var _0x57ffb2=CAMPAIGN_STATUS[_0xd30b('0x3c')];if(_0x5531cf['originated']===0x0&&_0x5531cf[_0xd30b('0x27')]===0x0&&_0x5531cf['waiting']===0x0&&(_0x5531cf[_0xd30b('0x28')]||0x0)===0x0){_0x57ffb2=CAMPAIGN_STATUS[_0xd30b('0x3b')];}return _0x57ffb2;}exports[_0xd30b('0x3f')]=getQueueCampaignActiveStatusMessage;function extractCalleridName(_0x515cb6){var _0x80a374=_0x515cb6[_0xd30b('0x40')](/"(.*?)"/);return _0x80a374?_0x80a374[0x1]:_0x515cb6;}exports['extractCalleridName']=extractCalleridName;function getCallerId(_0x1c2b85,_0x18ba02,_0x2fe7b3){if(!_['isUndefined'](_0x2fe7b3)&&typeof _0x2fe7b3===_0xd30b('0x41')&&!_[_0xd30b('0x34')](_0x2fe7b3)){if(!_['isUndefined'](_0x18ba02)&&typeof _0x18ba02===_0xd30b('0x41')&&!_[_0xd30b('0x34')](_0x18ba02)){return util[_0xd30b('0x42')]('\x22%s\x22\x20<%s>',_0x18ba02,_0x2fe7b3);}return util['format'](_0xd30b('0x43'),_0x2fe7b3,_0x2fe7b3);}if(!_[_0xd30b('0x44')](_0x1c2b85)&&typeof _0x1c2b85===_0xd30b('0x41')&&!_[_0xd30b('0x34')](_0x1c2b85)){return _0x1c2b85;}return _0xd30b('0x45');}exports[_0xd30b('0x46')]=getCallerId;function getCallerIdRandom(_0xd1bbf6,_0x5d46c1){var _0x4a8254;var _0x52f641;var _0x45b4b8;if(_0x5d46c1<=0x0){_0x5d46c1=0x1;}_0x4a8254=new RegExp('\x5cw{0,'+_0x5d46c1+'}$');_0x52f641=Math[_0xd30b('0x47')](0xa,_0x5d46c1-0x1);_0x45b4b8=Math[_0xd30b('0x47')](0xa,_0x5d46c1)-0x1;return util[_0xd30b('0x42')]('%s',_[_0xd30b('0x48')](_0xd1bbf6,_0x4a8254,_[_0xd30b('0x49')](_0x52f641,_0x45b4b8)[_0xd30b('0x4a')]()));}exports[_0xd30b('0x4b')]=getCallerIdRandom;function decrementOriginate(_0x1d3f5f,_0x45914d){if(_0x1d3f5f['originated']&&_0x1d3f5f['originated']>0x0){_0x1d3f5f[_0xd30b('0x2b')]-=0x1;}else{logger[_0xd30b('0x4c')](_0xd30b('0x4d'),_0x45914d);}}exports['decrementOriginate']=decrementOriginate;function checkContactEmpty(_0x7251ad){return _0x7251ad&&_0x7251ad[_0xd30b('0x4e')]>0x0;}exports[_0xd30b('0x4f')]=checkContactEmpty;function erlangb(_0x3299dd,_0x56f903){if(_0x56f903===0x0){return 0x0;}var _0x477902=0x1;for(var _0x29f528=0x1;_0x29f528<=_0x56f903;_0x29f528+=0x1){_0x477902=0x1+_0x477902*_0x29f528/_0x3299dd;}return 0x1/_0x477902;}exports[_0xd30b('0x50')]=erlangb;function checkContactLowerLimitOriginate(_0x494af0,_0x6c574e,_0x328fa5){if(_0x6c574e>_0x328fa5){for(var _0x57e195=0x0;_0x57e195<_0x6c574e-_0x328fa5;_0x57e195+=0x1){decrementOriginate(_0x494af0,'[checkContactLowerLimitOriginate]\x20');}}}exports['checkContactLowerLimitOriginate']=checkContactLowerLimitOriginate;function setXMDContactVariables(_0x4f38d5){var _0x3886b2={};var _0x43dad8=['id','createdAt',_0xd30b('0x51'),_0xd30b('0x52')];const _0x2d47e1=0xfa;if(_0x4f38d5){for(var _0xf9080a in _0x4f38d5){if(typeof _0x4f38d5[_0xf9080a]!==_0xd30b('0x53')){if(!_['isNil'](_0x4f38d5[_0xf9080a])&&!_0x43dad8[_0xd30b('0x38')](_0xf9080a)){if(_0xf9080a===_0xd30b('0x54')&&_0x4f38d5[_0xf9080a][_0xd30b('0x4e')]>_0x2d47e1){_0x3886b2[_0xd30b('0x55')+_0xf9080a[_0xd30b('0x56')]()]=_0x4f38d5[_0xf9080a][_0xd30b('0x4a')]()['substring'](0x0,_0x2d47e1);}else{_0x3886b2[_0xd30b('0x55')+_0xf9080a[_0xd30b('0x56')]()]=_0x4f38d5[_0xf9080a];}}}}}return _0x3886b2;}exports[_0xd30b('0x57')]=setXMDContactVariables;