Built motion from commit c738b9ac.|2.6.25
[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 _0x6b99=['TRUNK_IS_NOT_REACHABLE','dialMethod','preview','ivr','isIVRCampaign','type','isQueueCampaignActive','active','isIVRCampaignActive','milliseconds','diff','dialActive','message','available','loggedIn','loggedInDb','paused','talking','waiting','inUse','originated','Trunk','hasQueueCampaignDataChanged','dialTimezone','dialGlobalInterval','isNil','Interval','NULL_INTERVAL','isEmpty','EMPTY_INTERVAL','UNKNOWN_TIMEZONE','SIP/','reachable','unmonitored','name','includes','status','TrunkBackup','INACTIVE','DISACTIVED','pTalking','getQueueCampaignActiveStatusMessage','match','extractCalleridName','isUndefined','string','\x22%s\x22\x20<%s>','\x22\x22\x20<>','getCallerId','\x5cw{0,','pow','format','random','toString','getCallerIdRandom','error','decrementOriginate','length','checkContactEmpty','checkContactLowerLimitOriginate','createdAt','tags','updatedAt','undefined','description','XMD-','toUpperCase','substring','setXMDContactVariables','lodash','util','dialer','ACTIVE','BLACKLIST','RESCHEDULED_CONTACTS','DEACTIVATED','IS_DISACTIVED','NOT_ACTIVE','AGENTS_NOT_LOGGED','INTERVAL_IS_OVERTIME','GLOBAL_INTERVAL_IS_OVERTIME','RECALLINQUEUE','RECALLFAILEDTIMEOUT','RUNNING','TIMEZONE_UNKNOW'];(function(_0x166a88,_0x30fa0e){var _0x3a081a=function(_0x339dce){while(--_0x339dce){_0x166a88['push'](_0x166a88['shift']());}};_0x3a081a(++_0x30fa0e);}(_0x6b99,0x1ee));var _0x96b9=function(_0x6eb02d,_0x20bdf5){_0x6eb02d=_0x6eb02d-0x0;var _0xb756de=_0x6b99[_0x6eb02d];return _0xb756de;};'use strict';var _=require(_0x96b9('0x0'));var moment=require('moment');var util=require(_0x96b9('0x1'));var logger=require('../../../../config/logger')(_0x96b9('0x2'));var timezones=require('../../../../config/environment/shared')['timezones'];var CAMPAIGN_STATUS={'ACTIVE':_0x96b9('0x3'),'BLACKLIST':_0x96b9('0x4'),'CONTACTS_RESCHEDULED':_0x96b9('0x5'),'DEACTIVATED':_0x96b9('0x6'),'DISACTIVED':_0x96b9('0x7'),'EMPTY_INTERVAL':'INTERVAL_IS_EMPTY','INACTIVE':_0x96b9('0x8'),'NO_AGENTS_LOGGED':_0x96b9('0x9'),'NO_AVAILABLE_CONTACTS':'AVAILABLE_CONTACTS_FINISHED','NULL_INTERVAL':'INTERVAL_IS_NULL','OVERTIME_INTERVAL':_0x96b9('0xa'),'OVERTIME_GLOBAL_INTERVAL':_0x96b9('0xb'),'QUEUE_RECALL':_0x96b9('0xc'),'RECALL_TIMEOUT':_0x96b9('0xd'),'RUNNING':_0x96b9('0xe'),'UNKNOWN_TIMEZONE':_0x96b9('0xf'),'UNREACHABLE_TRUNK':_0x96b9('0x10')};exports['CAMPAIGN_STATUS']=CAMPAIGN_STATUS;function isPreviewCampaign(_0x233975){return _0x233975[_0x96b9('0x11')]===_0x96b9('0x12');}exports['isPreviewCampaign']=isPreviewCampaign;function isIVRCampaign(_0x365115){return _0x365115['type']===_0x96b9('0x13');}exports[_0x96b9('0x14')]=isIVRCampaign;function isOutboundQueue(_0x25da0f){return _0x25da0f[_0x96b9('0x15')]==='outbound';}exports['isOutboundQueue']=isOutboundQueue;function isQueueCampaignActive(_0x1c8830){return _0x1c8830['dialActive'];}exports[_0x96b9('0x16')]=isQueueCampaignActive;function isIVRCampaignActive(_0x5c517e){return _0x5c517e[_0x96b9('0x17')];}exports[_0x96b9('0x18')]=isIVRCampaignActive;function getSeconds(_0x458536,_0x198ed3){var _0x423f27=moment(_0x458536)[_0x96b9('0x19')](0x0);var _0x546ca0=moment(_0x198ed3)[_0x96b9('0x19')](0x0);return _0x423f27[_0x96b9('0x1a')](_0x546ca0,'seconds');}exports['getSeconds']=getSeconds;function hasQueueCampaignDataChanged(_0x9d51b5,_0x3d101c){var _0x4fa7ea=![];var _0x1f4bf3=_0x9d51b5[_0x96b9('0x11')]!==_0x3d101c[_0x96b9('0x11')]||_0x9d51b5[_0x96b9('0x1b')]!==_0x3d101c[_0x96b9('0x1b')]||_0x9d51b5[_0x96b9('0x1c')]!==_0x3d101c[_0x96b9('0x1c')];var _0x4a0353=_0x9d51b5['available']!==_0x3d101c[_0x96b9('0x1d')]||_0x9d51b5[_0x96b9('0x1e')]!==_0x3d101c[_0x96b9('0x1e')]||_0x9d51b5[_0x96b9('0x1f')]!==_0x3d101c[_0x96b9('0x1f')]||_0x9d51b5[_0x96b9('0x20')]!==_0x3d101c['paused']||_0x9d51b5[_0x96b9('0x21')]!==_0x3d101c[_0x96b9('0x21')]||_0x9d51b5['pTalking']!==_0x3d101c['pTalking']||_0x9d51b5[_0x96b9('0x22')]!==_0x3d101c['waiting']||_0x9d51b5[_0x96b9('0x23')]!==_0x3d101c[_0x96b9('0x23')]||_0x9d51b5[_0x96b9('0x24')]!==_0x3d101c[_0x96b9('0x24')];if(_0x9d51b5['Trunk']&&_0x3d101c[_0x96b9('0x25')]){_0x4fa7ea=_0x9d51b5['Trunk']['name']!==_0x3d101c[_0x96b9('0x25')]['name']||_0x9d51b5['Trunk'][_0x96b9('0x17')]!==_0x3d101c[_0x96b9('0x25')][_0x96b9('0x17')];}return _0x1f4bf3||_0x4a0353||_0x4fa7ea;}exports[_0x96b9('0x26')]=hasQueueCampaignDataChanged;function checkAnyValidQueueCampaignInterval(_0x25f15f){var _0x5d1554=null;var _0x50ab36=_0x25f15f[_0x96b9('0x27')];if(_['isNil'](_0x25f15f[_0x96b9('0x28')])||_[_0x96b9('0x29')](_0x25f15f[_0x96b9('0x2a')])||_['isNil'](_0x25f15f[_0x96b9('0x2a')]['Intervals'])){_0x5d1554=CAMPAIGN_STATUS[_0x96b9('0x2b')];}else if(_['isEmpty'](_0x25f15f[_0x96b9('0x28')])||_[_0x96b9('0x2c')](_0x25f15f[_0x96b9('0x2a')]['Intervals'])){_0x5d1554=CAMPAIGN_STATUS[_0x96b9('0x2d')];}else if(_0x50ab36&&!timezones[_0x50ab36]){_0x5d1554=CAMPAIGN_STATUS[_0x96b9('0x2e')];}return _0x5d1554;}function checkAnyValidTrunk(_0x1fa4b2,_0x276fd9){var _0x32d2c5=null;var _0x4f151d=_0x96b9('0x2f');var _0x27296b=[_0x96b9('0x30'),_0x96b9('0x31')];var _0x2c4df9=!![];if(_0x1fa4b2[_0x96b9('0x25')]&&_0x1fa4b2[_0x96b9('0x25')][_0x96b9('0x17')]){_0x4f151d+=_0x1fa4b2[_0x96b9('0x25')][_0x96b9('0x32')];_0x32d2c5=_0x276fd9[_0x4f151d];_0x2c4df9=_0x27296b[_0x96b9('0x33')](_0x32d2c5[_0x96b9('0x34')]);}else if(_0x1fa4b2[_0x96b9('0x35')]&&_0x1fa4b2[_0x96b9('0x35')][_0x96b9('0x17')]){_0x4f151d+=_0x1fa4b2[_0x96b9('0x35')]['name'];_0x32d2c5=_0x276fd9[_0x4f151d];_0x2c4df9=_0x27296b[_0x96b9('0x33')](_0x32d2c5['status']);}return _0x2c4df9;}function getQueueCampaignStatusMessage(_0x31f8be,_0x272261){var _0x5828a0=CAMPAIGN_STATUS[_0x96b9('0x3')];var _0x592a1b=isPreviewCampaign(_0x31f8be);if(!isQueueCampaignActive(_0x31f8be)){if(_0x592a1b){_0x5828a0=CAMPAIGN_STATUS[_0x96b9('0x36')];}else{if(_0x31f8be[_0x96b9('0x24')]===0x0&&_0x31f8be[_0x96b9('0x21')]===0x0&&_0x31f8be['waiting']===0x0&&(_0x31f8be['pTalking']||0x0)===0x0){_0x5828a0=CAMPAIGN_STATUS[_0x96b9('0x36')];}else{_0x5828a0=CAMPAIGN_STATUS[_0x96b9('0x37')];}}}else if(_0x31f8be[_0x96b9('0x1e')]===0x0){_0x5828a0=CAMPAIGN_STATUS['NO_AGENTS_LOGGED'];}else if(!checkAnyValidTrunk(_0x31f8be,_0x272261)){_0x5828a0=CAMPAIGN_STATUS['UNREACHABLE_TRUNK'];}else if(!isPreviewCampaign(_0x31f8be)){var _0xc4dbbd=checkAnyValidQueueCampaignInterval(_0x31f8be);if(_0xc4dbbd){_0x5828a0=_0xc4dbbd;}}return _0x5828a0;}exports['getQueueCampaignStatusMessage']=getQueueCampaignStatusMessage;function getQueueCampaignActiveStatusMessage(_0x55b334){var _0x249f0b=CAMPAIGN_STATUS[_0x96b9('0x37')];if(_0x55b334[_0x96b9('0x24')]===0x0&&_0x55b334[_0x96b9('0x21')]===0x0&&_0x55b334[_0x96b9('0x22')]===0x0&&(_0x55b334[_0x96b9('0x38')]||0x0)===0x0){_0x249f0b=CAMPAIGN_STATUS['INACTIVE'];}return _0x249f0b;}exports[_0x96b9('0x39')]=getQueueCampaignActiveStatusMessage;function extractCalleridName(_0x192f96){var _0xb5e555=_0x192f96[_0x96b9('0x3a')](/"(.*?)"/);return _0xb5e555?_0xb5e555[0x1]:_0x192f96;}exports[_0x96b9('0x3b')]=extractCalleridName;function getCallerId(_0x2f02c7,_0x292d7d,_0x36cbf3){if(!_[_0x96b9('0x3c')](_0x36cbf3)&&typeof _0x36cbf3===_0x96b9('0x3d')&&!_[_0x96b9('0x2c')](_0x36cbf3)){if(!_[_0x96b9('0x3c')](_0x292d7d)&&typeof _0x292d7d===_0x96b9('0x3d')&&!_['isEmpty'](_0x292d7d)){return util['format'](_0x96b9('0x3e'),_0x292d7d,_0x36cbf3);}return util['format']('\x22%s\x22\x20<%s>',_0x36cbf3,_0x36cbf3);}if(!_[_0x96b9('0x3c')](_0x2f02c7)&&typeof _0x2f02c7===_0x96b9('0x3d')&&!_[_0x96b9('0x2c')](_0x2f02c7)){return _0x2f02c7;}return _0x96b9('0x3f');}exports[_0x96b9('0x40')]=getCallerId;function getCallerIdRandom(_0x3852f5,_0x3c6cc8){var _0x1294cd;var _0x4e628c;var _0x561a16;if(_0x3c6cc8<=0x0){_0x3c6cc8=0x1;}_0x1294cd=new RegExp(_0x96b9('0x41')+_0x3c6cc8+'}$');_0x4e628c=Math[_0x96b9('0x42')](0xa,_0x3c6cc8-0x1);_0x561a16=Math[_0x96b9('0x42')](0xa,_0x3c6cc8)-0x1;return util[_0x96b9('0x43')]('%s',_['replace'](_0x3852f5,_0x1294cd,_[_0x96b9('0x44')](_0x4e628c,_0x561a16)[_0x96b9('0x45')]()));}exports[_0x96b9('0x46')]=getCallerIdRandom;function decrementOriginate(_0x11917d){if(_0x11917d[_0x96b9('0x24')]&&_0x11917d[_0x96b9('0x24')]>0x0){_0x11917d['originated']-=0x1;}else{logger[_0x96b9('0x47')]('[decrementOriginate]\x20queue\x20originate\x20value\x20is\x20negative');}}exports[_0x96b9('0x48')]=decrementOriginate;function checkContactEmpty(_0x262d33){return _0x262d33&&_0x262d33[_0x96b9('0x49')]>0x0;}exports[_0x96b9('0x4a')]=checkContactEmpty;function erlangb(_0x31b42f,_0x513a5f){if(_0x513a5f===0x0){return 0x0;}var _0x378245=0x1;for(var _0x411e4e=0x1;_0x411e4e<=_0x513a5f;_0x411e4e+=0x1){_0x378245=0x1+_0x378245*_0x411e4e/_0x31b42f;}return 0x1/_0x378245;}exports['erlangb']=erlangb;function checkContactLowerLimitOriginate(_0x511a9b,_0x5363ee,_0x276b63){if(_0x5363ee>_0x276b63){for(var _0x58d4de=0x0;_0x58d4de<_0x5363ee-_0x276b63;_0x58d4de+=0x1){decrementOriginate(_0x511a9b);}}}exports[_0x96b9('0x4b')]=checkContactLowerLimitOriginate;function setXMDContactVariables(_0x48feaa){var _0x28c383={};var _0x51147f=['id',_0x96b9('0x4c'),_0x96b9('0x4d'),_0x96b9('0x4e')];const _0x2fb7ba=0xfa;if(_0x48feaa){for(var _0x1d1c13 in _0x48feaa){if(typeof _0x48feaa[_0x1d1c13]!==_0x96b9('0x4f')){if(!_[_0x96b9('0x29')](_0x48feaa[_0x1d1c13])&&!_0x51147f[_0x96b9('0x33')](_0x1d1c13)){if(_0x1d1c13===_0x96b9('0x50')&&_0x48feaa[_0x1d1c13][_0x96b9('0x49')]>_0x2fb7ba){_0x28c383[_0x96b9('0x51')+_0x1d1c13[_0x96b9('0x52')]()]=_0x48feaa[_0x1d1c13][_0x96b9('0x45')]()[_0x96b9('0x53')](0x0,_0x2fb7ba);}else{_0x28c383['XMD-'+_0x1d1c13[_0x96b9('0x52')]()]=_0x48feaa[_0x1d1c13];}}}}}return _0x28c383;}exports[_0x96b9('0x54')]=setXMDContactVariables;