8e185dde45e3d610622c3233a0af6e0617b8b5e0
[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 _0xddbf=['setXMDContactVariables','lodash','moment','util','../../../../config/logger','../../../../config/environment/shared','timezones','ACTIVE','BLACKLIST','RESCHEDULED_CONTACTS','DEACTIVATED','IS_DISACTIVED','INTERVAL_IS_EMPTY','INTERVAL_IS_NULL','INTERVAL_IS_OVERTIME','GLOBAL_INTERVAL_IS_OVERTIME','RECALLFAILEDTIMEOUT','RUNNING','TIMEZONE_UNKNOW','TRUNK_IS_NOT_REACHABLE','CAMPAIGN_STATUS','preview','isPreviewCampaign','type','ivr','isIVRCampaign','outbound','isOutboundQueue','dialActive','isQueueCampaignActive','milliseconds','diff','seconds','getSeconds','dialMethod','message','available','loggedIn','loggedInDb','paused','talking','pTalking','waiting','inUse','originated','Trunk','name','active','hasQueueCampaignDataChanged','isNil','dialGlobalInterval','Interval','Intervals','isEmpty','EMPTY_INTERVAL','reachable','unmonitored','includes','status','TrunkBackup','INACTIVE','DISACTIVED','NO_AGENTS_LOGGED','getQueueCampaignActiveStatusMessage','extractCalleridName','isUndefined','string','format','\x22%s\x22\x20<%s>','\x22\x22\x20<>','getCallerId','\x5cw{0,','pow','replace','random','toString','getCallerIdRandom','error','[decrementOriginate]\x20queue\x20originate\x20value','decrementOriginate','checkContactEmpty','[checkContactLowerLimitOriginate]\x20','createdAt','tags','updatedAt','undefined','description','length','XMD-','substring','toUpperCase'];(function(_0x2968fe,_0x4d11bb){var _0x1b361f=function(_0xe96328){while(--_0xe96328){_0x2968fe['push'](_0x2968fe['shift']());}};_0x1b361f(++_0x4d11bb);}(_0xddbf,0x1c8));var _0xfddb=function(_0x344a56,_0x1045a4){_0x344a56=_0x344a56-0x0;var _0x2ac981=_0xddbf[_0x344a56];return _0x2ac981;};'use strict';var _=require(_0xfddb('0x0'));var moment=require(_0xfddb('0x1'));var util=require(_0xfddb('0x2'));var logger=require(_0xfddb('0x3'))('dialer');var timezones=require(_0xfddb('0x4'))[_0xfddb('0x5')];var CAMPAIGN_STATUS={'ACTIVE':_0xfddb('0x6'),'BLACKLIST':_0xfddb('0x7'),'CONTACTS_RESCHEDULED':_0xfddb('0x8'),'DEACTIVATED':_0xfddb('0x9'),'DISACTIVED':_0xfddb('0xa'),'EMPTY_INTERVAL':_0xfddb('0xb'),'INACTIVE':'NOT_ACTIVE','NO_AGENTS_LOGGED':'AGENTS_NOT_LOGGED','NO_AVAILABLE_CONTACTS':'AVAILABLE_CONTACTS_FINISHED','NULL_INTERVAL':_0xfddb('0xc'),'OVERTIME_INTERVAL':_0xfddb('0xd'),'OVERTIME_GLOBAL_INTERVAL':_0xfddb('0xe'),'QUEUE_RECALL':'RECALLINQUEUE','RECALL_TIMEOUT':_0xfddb('0xf'),'RUNNING':_0xfddb('0x10'),'UNKNOWN_TIMEZONE':_0xfddb('0x11'),'UNREACHABLE_TRUNK':_0xfddb('0x12')};exports[_0xfddb('0x13')]=CAMPAIGN_STATUS;function isPreviewCampaign(_0x15ba9f){return _0x15ba9f['dialMethod']===_0xfddb('0x14');}exports[_0xfddb('0x15')]=isPreviewCampaign;function isIVRCampaign(_0x332586){return _0x332586[_0xfddb('0x16')]===_0xfddb('0x17');}exports[_0xfddb('0x18')]=isIVRCampaign;function isOutboundQueue(_0x116849){return _0x116849['type']===_0xfddb('0x19');}exports[_0xfddb('0x1a')]=isOutboundQueue;function isQueueCampaignActive(_0x226121){return _0x226121[_0xfddb('0x1b')];}exports[_0xfddb('0x1c')]=isQueueCampaignActive;function isIVRCampaignActive(_0x42d4b1){return _0x42d4b1['active'];}exports['isIVRCampaignActive']=isIVRCampaignActive;function getSeconds(_0x1a4b62,_0x40702d){var _0x21b96f=moment(_0x1a4b62)['milliseconds'](0x0);var _0x1d242e=moment(_0x40702d)[_0xfddb('0x1d')](0x0);return _0x21b96f[_0xfddb('0x1e')](_0x1d242e,_0xfddb('0x1f'));}exports[_0xfddb('0x20')]=getSeconds;function hasQueueCampaignDataChanged(_0x405dc3,_0x58bf89){var _0x234e0b=![];var _0x58a57d=_0x405dc3[_0xfddb('0x21')]!==_0x58bf89[_0xfddb('0x21')]||_0x405dc3[_0xfddb('0x1b')]!==_0x58bf89['dialActive']||_0x405dc3[_0xfddb('0x22')]!==_0x58bf89[_0xfddb('0x22')];var _0xa9e057=_0x405dc3['available']!==_0x58bf89[_0xfddb('0x23')]||_0x405dc3[_0xfddb('0x24')]!==_0x58bf89[_0xfddb('0x24')]||_0x405dc3[_0xfddb('0x25')]!==_0x58bf89['loggedInDb']||_0x405dc3[_0xfddb('0x26')]!==_0x58bf89[_0xfddb('0x26')]||_0x405dc3[_0xfddb('0x27')]!==_0x58bf89[_0xfddb('0x27')]||_0x405dc3[_0xfddb('0x28')]!==_0x58bf89[_0xfddb('0x28')]||_0x405dc3[_0xfddb('0x29')]!==_0x58bf89[_0xfddb('0x29')]||_0x405dc3[_0xfddb('0x2a')]!==_0x58bf89[_0xfddb('0x2a')]||_0x405dc3[_0xfddb('0x2b')]!==_0x58bf89['originated'];if(_0x405dc3['Trunk']&&_0x58bf89[_0xfddb('0x2c')]){_0x234e0b=_0x405dc3[_0xfddb('0x2c')]['name']!==_0x58bf89[_0xfddb('0x2c')][_0xfddb('0x2d')]||_0x405dc3[_0xfddb('0x2c')][_0xfddb('0x2e')]!==_0x58bf89[_0xfddb('0x2c')][_0xfddb('0x2e')];}return _0x58a57d||_0xa9e057||_0x234e0b;}exports[_0xfddb('0x2f')]=hasQueueCampaignDataChanged;function checkAnyValidQueueCampaignInterval(_0x1e41af){var _0x187438=null;var _0x32a341=_0x1e41af['dialTimezone'];if(_[_0xfddb('0x30')](_0x1e41af[_0xfddb('0x31')])||_[_0xfddb('0x30')](_0x1e41af[_0xfddb('0x32')])||_[_0xfddb('0x30')](_0x1e41af[_0xfddb('0x32')][_0xfddb('0x33')])){_0x187438=CAMPAIGN_STATUS['NULL_INTERVAL'];}else if(_[_0xfddb('0x34')](_0x1e41af[_0xfddb('0x31')])||_[_0xfddb('0x34')](_0x1e41af[_0xfddb('0x32')][_0xfddb('0x33')])){_0x187438=CAMPAIGN_STATUS[_0xfddb('0x35')];}else if(_0x32a341&&!timezones[_0x32a341]){_0x187438=CAMPAIGN_STATUS['UNKNOWN_TIMEZONE'];}return _0x187438;}function checkAnyValidTrunk(_0x2f47b5,_0x283f05){var _0x3fcdd5=null;var _0x598506='SIP/';var _0x42ecb0=[_0xfddb('0x36'),_0xfddb('0x37')];var _0x59ab45=!![];if(_0x2f47b5[_0xfddb('0x2c')]&&_0x2f47b5[_0xfddb('0x2c')][_0xfddb('0x2e')]){_0x598506+=_0x2f47b5[_0xfddb('0x2c')][_0xfddb('0x2d')];_0x3fcdd5=_0x283f05[_0x598506];_0x59ab45=_0x42ecb0[_0xfddb('0x38')](_0x3fcdd5[_0xfddb('0x39')]);}else if(_0x2f47b5[_0xfddb('0x3a')]&&_0x2f47b5[_0xfddb('0x3a')][_0xfddb('0x2e')]){_0x598506+=_0x2f47b5[_0xfddb('0x3a')][_0xfddb('0x2d')];_0x3fcdd5=_0x283f05[_0x598506];_0x59ab45=_0x42ecb0['includes'](_0x3fcdd5[_0xfddb('0x39')]);}return _0x59ab45;}function getQueueCampaignStatusMessage(_0x180a63,_0x3486bf){var _0x2787ab=CAMPAIGN_STATUS[_0xfddb('0x6')];var _0x52762d=isPreviewCampaign(_0x180a63);if(!isQueueCampaignActive(_0x180a63)){if(_0x52762d){_0x2787ab=CAMPAIGN_STATUS[_0xfddb('0x3b')];}else{if(_0x180a63[_0xfddb('0x2b')]===0x0&&_0x180a63[_0xfddb('0x27')]===0x0&&_0x180a63[_0xfddb('0x29')]===0x0&&(_0x180a63[_0xfddb('0x28')]||0x0)===0x0){_0x2787ab=CAMPAIGN_STATUS['INACTIVE'];}else{_0x2787ab=CAMPAIGN_STATUS[_0xfddb('0x3c')];}}}else if(_0x180a63[_0xfddb('0x24')]===0x0){_0x2787ab=CAMPAIGN_STATUS[_0xfddb('0x3d')];}else if(!checkAnyValidTrunk(_0x180a63,_0x3486bf)){_0x2787ab=CAMPAIGN_STATUS['UNREACHABLE_TRUNK'];}else if(!isPreviewCampaign(_0x180a63)){var _0x50df2d=checkAnyValidQueueCampaignInterval(_0x180a63);if(_0x50df2d){_0x2787ab=_0x50df2d;}}return _0x2787ab;}exports['getQueueCampaignStatusMessage']=getQueueCampaignStatusMessage;function getQueueCampaignActiveStatusMessage(_0x124d16){var _0x3eb527=CAMPAIGN_STATUS['DISACTIVED'];if(_0x124d16['originated']===0x0&&_0x124d16[_0xfddb('0x27')]===0x0&&_0x124d16[_0xfddb('0x29')]===0x0&&(_0x124d16['pTalking']||0x0)===0x0){_0x3eb527=CAMPAIGN_STATUS[_0xfddb('0x3b')];}return _0x3eb527;}exports[_0xfddb('0x3e')]=getQueueCampaignActiveStatusMessage;function extractCalleridName(_0x241170){var _0x52a4b9=_0x241170['match'](/"(.*?)"/);return _0x52a4b9?_0x52a4b9[0x1]:_0x241170;}exports[_0xfddb('0x3f')]=extractCalleridName;function getCallerId(_0x5e6b23,_0x9fbc6e,_0x170b56){if(!_[_0xfddb('0x40')](_0x170b56)&&typeof _0x170b56===_0xfddb('0x41')&&!_[_0xfddb('0x34')](_0x170b56)){if(!_[_0xfddb('0x40')](_0x9fbc6e)&&typeof _0x9fbc6e===_0xfddb('0x41')&&!_[_0xfddb('0x34')](_0x9fbc6e)){return util[_0xfddb('0x42')](_0xfddb('0x43'),_0x9fbc6e,_0x170b56);}return util[_0xfddb('0x42')](_0xfddb('0x43'),_0x170b56,_0x170b56);}if(!_[_0xfddb('0x40')](_0x5e6b23)&&typeof _0x5e6b23===_0xfddb('0x41')&&!_[_0xfddb('0x34')](_0x5e6b23)){return _0x5e6b23;}return _0xfddb('0x44');}exports[_0xfddb('0x45')]=getCallerId;function getCallerIdRandom(_0x5ebaf7,_0x17f916){var _0x16969b;var _0x1d5b1b;var _0x1d316b;if(_0x17f916<=0x0){_0x17f916=0x1;}_0x16969b=new RegExp(_0xfddb('0x46')+_0x17f916+'}$');_0x1d5b1b=Math[_0xfddb('0x47')](0xa,_0x17f916-0x1);_0x1d316b=Math[_0xfddb('0x47')](0xa,_0x17f916)-0x1;return util[_0xfddb('0x42')]('%s',_[_0xfddb('0x48')](_0x5ebaf7,_0x16969b,_[_0xfddb('0x49')](_0x1d5b1b,_0x1d316b)[_0xfddb('0x4a')]()));}exports[_0xfddb('0x4b')]=getCallerIdRandom;function decrementOriginate(_0x1d5f81,_0x42b9f6){if(_0x1d5f81[_0xfddb('0x2b')]&&_0x1d5f81['originated']>0x0){_0x1d5f81[_0xfddb('0x2b')]-=0x1;}else{logger[_0xfddb('0x4c')](_0xfddb('0x4d'),_0x42b9f6);}}exports[_0xfddb('0x4e')]=decrementOriginate;function checkContactEmpty(_0x2ae463){return _0x2ae463&&_0x2ae463['length']>0x0;}exports[_0xfddb('0x4f')]=checkContactEmpty;function erlangb(_0x1c2a5e,_0x532afc){if(_0x532afc===0x0){return 0x0;}var _0x4c33fa=0x1;for(var _0x5e332=0x1;_0x5e332<=_0x532afc;_0x5e332+=0x1){_0x4c33fa=0x1+_0x4c33fa*_0x5e332/_0x1c2a5e;}return 0x1/_0x4c33fa;}exports['erlangb']=erlangb;function checkContactLowerLimitOriginate(_0x5bad14,_0x544c76,_0x4020de){if(_0x544c76>_0x4020de){for(var _0x3a7c7f=0x0;_0x3a7c7f<_0x544c76-_0x4020de;_0x3a7c7f+=0x1){decrementOriginate(_0x5bad14,_0xfddb('0x50'));}}}exports['checkContactLowerLimitOriginate']=checkContactLowerLimitOriginate;function setXMDContactVariables(_0x209fbb){var _0x3613ee={};var _0x174ab9=['id',_0xfddb('0x51'),_0xfddb('0x52'),_0xfddb('0x53')];const _0x1558a3=0xfa;if(_0x209fbb){for(var _0x44f636 in _0x209fbb){if(typeof _0x209fbb[_0x44f636]!==_0xfddb('0x54')){if(!_['isNil'](_0x209fbb[_0x44f636])&&!_0x174ab9[_0xfddb('0x38')](_0x44f636)){if(_0x44f636===_0xfddb('0x55')&&_0x209fbb[_0x44f636][_0xfddb('0x56')]>_0x1558a3){_0x3613ee[_0xfddb('0x57')+_0x44f636['toUpperCase']()]=_0x209fbb[_0x44f636]['toString']()[_0xfddb('0x58')](0x0,_0x1558a3);}else{_0x3613ee['XMD-'+_0x44f636[_0xfddb('0x59')]()]=_0x209fbb[_0x44f636];}}}}}return _0x3613ee;}exports[_0xfddb('0x5a')]=setXMDContactVariables;