Built motion from commit b0a9a629.|2.6.33
[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 _0x6580=['SIP/','unmonitored','includes','status','TrunkBackup','INACTIVE','DISACTIVED','getQueueCampaignStatusMessage','isUndefined','string','format','\x22%s\x22\x20<%s>','\x22\x22\x20<>','getCallerId','\x5cw{0,','pow','replace','random','getCallerIdRandom','error','[decrementOriginate]\x20queue\x20originate\x20value','decrementOriginate','length','erlangb','[checkContactLowerLimitOriginate]\x20','createdAt','tags','updatedAt','undefined','XMD-','toUpperCase','toString','substring','lodash','moment','util','dialer','../../../../config/environment/shared','timezones','ACTIVE','BLACKLIST','DEACTIVATED','IS_DISACTIVED','NOT_ACTIVE','INTERVAL_IS_NULL','GLOBAL_INTERVAL_IS_OVERTIME','TRUNK_IS_NOT_REACHABLE','preview','isPreviewCampaign','type','outbound','isOutboundQueue','active','isIVRCampaignActive','milliseconds','diff','seconds','getSeconds','dialMethod','dialActive','message','available','loggedIn','loggedInDb','paused','talking','pTalking','waiting','inUse','originated','Trunk','name','hasQueueCampaignDataChanged','dialTimezone','isNil','dialGlobalInterval','Interval','Intervals','NULL_INTERVAL','isEmpty','EMPTY_INTERVAL','UNKNOWN_TIMEZONE'];(function(_0x528372,_0x1bc4c8){var _0x2e2c58=function(_0x188584){while(--_0x188584){_0x528372['push'](_0x528372['shift']());}};_0x2e2c58(++_0x1bc4c8);}(_0x6580,0x117));var _0x0658=function(_0x19145f,_0x28ef7e){_0x19145f=_0x19145f-0x0;var _0x10ebfb=_0x6580[_0x19145f];return _0x10ebfb;};'use strict';var _=require(_0x0658('0x0'));var moment=require(_0x0658('0x1'));var util=require(_0x0658('0x2'));var logger=require('../../../../config/logger')(_0x0658('0x3'));var timezones=require(_0x0658('0x4'))[_0x0658('0x5')];var CAMPAIGN_STATUS={'ACTIVE':_0x0658('0x6'),'BLACKLIST':_0x0658('0x7'),'CONTACTS_RESCHEDULED':'RESCHEDULED_CONTACTS','DEACTIVATED':_0x0658('0x8'),'DISACTIVED':_0x0658('0x9'),'EMPTY_INTERVAL':'INTERVAL_IS_EMPTY','INACTIVE':_0x0658('0xa'),'NO_AGENTS_LOGGED':'AGENTS_NOT_LOGGED','NO_AVAILABLE_CONTACTS':'AVAILABLE_CONTACTS_FINISHED','NULL_INTERVAL':_0x0658('0xb'),'OVERTIME_INTERVAL':'INTERVAL_IS_OVERTIME','OVERTIME_GLOBAL_INTERVAL':_0x0658('0xc'),'QUEUE_RECALL':'RECALLINQUEUE','RECALL_TIMEOUT':'RECALLFAILEDTIMEOUT','RUNNING':'RUNNING','UNKNOWN_TIMEZONE':'TIMEZONE_UNKNOW','UNREACHABLE_TRUNK':_0x0658('0xd')};exports['CAMPAIGN_STATUS']=CAMPAIGN_STATUS;function isPreviewCampaign(_0x16fed9){return _0x16fed9['dialMethod']===_0x0658('0xe');}exports[_0x0658('0xf')]=isPreviewCampaign;function isIVRCampaign(_0x2d9a4e){return _0x2d9a4e[_0x0658('0x10')]==='ivr';}exports['isIVRCampaign']=isIVRCampaign;function isOutboundQueue(_0x51bb91){return _0x51bb91[_0x0658('0x10')]===_0x0658('0x11');}exports[_0x0658('0x12')]=isOutboundQueue;function isQueueCampaignActive(_0x2331e9){return _0x2331e9['dialActive'];}exports['isQueueCampaignActive']=isQueueCampaignActive;function isIVRCampaignActive(_0x2bd46c){return _0x2bd46c[_0x0658('0x13')];}exports[_0x0658('0x14')]=isIVRCampaignActive;function getSeconds(_0x42c78c,_0x52425e){var _0x31c6ed=moment(_0x42c78c)['milliseconds'](0x0);var _0x45c09b=moment(_0x52425e)[_0x0658('0x15')](0x0);return _0x31c6ed[_0x0658('0x16')](_0x45c09b,_0x0658('0x17'));}exports[_0x0658('0x18')]=getSeconds;function hasQueueCampaignDataChanged(_0x326083,_0x329116){var _0xbe6235=![];var _0x232a55=_0x326083['dialMethod']!==_0x329116[_0x0658('0x19')]||_0x326083[_0x0658('0x1a')]!==_0x329116[_0x0658('0x1a')]||_0x326083[_0x0658('0x1b')]!==_0x329116[_0x0658('0x1b')];var _0x42d7e2=_0x326083[_0x0658('0x1c')]!==_0x329116[_0x0658('0x1c')]||_0x326083[_0x0658('0x1d')]!==_0x329116['loggedIn']||_0x326083[_0x0658('0x1e')]!==_0x329116['loggedInDb']||_0x326083['paused']!==_0x329116[_0x0658('0x1f')]||_0x326083[_0x0658('0x20')]!==_0x329116['talking']||_0x326083[_0x0658('0x21')]!==_0x329116[_0x0658('0x21')]||_0x326083[_0x0658('0x22')]!==_0x329116[_0x0658('0x22')]||_0x326083['inUse']!==_0x329116[_0x0658('0x23')]||_0x326083[_0x0658('0x24')]!==_0x329116[_0x0658('0x24')];if(_0x326083[_0x0658('0x25')]&&_0x329116[_0x0658('0x25')]){_0xbe6235=_0x326083[_0x0658('0x25')]['name']!==_0x329116[_0x0658('0x25')][_0x0658('0x26')]||_0x326083[_0x0658('0x25')][_0x0658('0x13')]!==_0x329116[_0x0658('0x25')]['active'];}return _0x232a55||_0x42d7e2||_0xbe6235;}exports[_0x0658('0x27')]=hasQueueCampaignDataChanged;function checkAnyValidQueueCampaignInterval(_0x37e339){var _0x479431=null;var _0x58f3a1=_0x37e339[_0x0658('0x28')];if(_[_0x0658('0x29')](_0x37e339[_0x0658('0x2a')])||_[_0x0658('0x29')](_0x37e339[_0x0658('0x2b')])||_['isNil'](_0x37e339[_0x0658('0x2b')][_0x0658('0x2c')])){_0x479431=CAMPAIGN_STATUS[_0x0658('0x2d')];}else if(_[_0x0658('0x2e')](_0x37e339['dialGlobalInterval'])||_[_0x0658('0x2e')](_0x37e339[_0x0658('0x2b')][_0x0658('0x2c')])){_0x479431=CAMPAIGN_STATUS[_0x0658('0x2f')];}else if(_0x58f3a1&&!timezones[_0x58f3a1]){_0x479431=CAMPAIGN_STATUS[_0x0658('0x30')];}return _0x479431;}function checkAnyValidTrunk(_0x5b881c,_0x25f83c){var _0x5754c9=null;var _0x177517=_0x0658('0x31');var _0x310d4d=['reachable',_0x0658('0x32')];var _0x1c7b93=!![];if(_0x5b881c['Trunk']&&_0x5b881c[_0x0658('0x25')][_0x0658('0x13')]){_0x177517+=_0x5b881c['Trunk'][_0x0658('0x26')];_0x5754c9=_0x25f83c[_0x177517];_0x1c7b93=_0x310d4d[_0x0658('0x33')](_0x5754c9[_0x0658('0x34')]);}else if(_0x5b881c['TrunkBackup']&&_0x5b881c[_0x0658('0x35')][_0x0658('0x13')]){_0x177517+=_0x5b881c['TrunkBackup']['name'];_0x5754c9=_0x25f83c[_0x177517];_0x1c7b93=_0x310d4d[_0x0658('0x33')](_0x5754c9[_0x0658('0x34')]);}return _0x1c7b93;}function getQueueCampaignStatusMessage(_0x30fffa,_0x4ebd5c){var _0x13fd32=CAMPAIGN_STATUS['ACTIVE'];var _0x33db40=isPreviewCampaign(_0x30fffa);if(!isQueueCampaignActive(_0x30fffa)){if(_0x33db40){_0x13fd32=CAMPAIGN_STATUS[_0x0658('0x36')];}else{if(_0x30fffa[_0x0658('0x24')]===0x0&&_0x30fffa['talking']===0x0&&_0x30fffa[_0x0658('0x22')]===0x0&&(_0x30fffa[_0x0658('0x21')]||0x0)===0x0){_0x13fd32=CAMPAIGN_STATUS['INACTIVE'];}else{_0x13fd32=CAMPAIGN_STATUS[_0x0658('0x37')];}}}else if(_0x30fffa[_0x0658('0x1d')]===0x0){_0x13fd32=CAMPAIGN_STATUS['NO_AGENTS_LOGGED'];}else if(!checkAnyValidTrunk(_0x30fffa,_0x4ebd5c)){_0x13fd32=CAMPAIGN_STATUS['UNREACHABLE_TRUNK'];}else if(!isPreviewCampaign(_0x30fffa)){var _0x1d16f5=checkAnyValidQueueCampaignInterval(_0x30fffa);if(_0x1d16f5){_0x13fd32=_0x1d16f5;}}return _0x13fd32;}exports[_0x0658('0x38')]=getQueueCampaignStatusMessage;function getQueueCampaignActiveStatusMessage(_0x3fa01c){var _0x30ee72=CAMPAIGN_STATUS[_0x0658('0x37')];if(_0x3fa01c[_0x0658('0x24')]===0x0&&_0x3fa01c[_0x0658('0x20')]===0x0&&_0x3fa01c[_0x0658('0x22')]===0x0&&(_0x3fa01c[_0x0658('0x21')]||0x0)===0x0){_0x30ee72=CAMPAIGN_STATUS[_0x0658('0x36')];}return _0x30ee72;}exports['getQueueCampaignActiveStatusMessage']=getQueueCampaignActiveStatusMessage;function extractCalleridName(_0x89cce1){var _0x5626bb=_0x89cce1['match'](/"(.*?)"/);return _0x5626bb?_0x5626bb[0x1]:_0x89cce1;}exports['extractCalleridName']=extractCalleridName;function getCallerId(_0x1d7f6b,_0x10bfda,_0x1f421c){if(!_[_0x0658('0x39')](_0x1f421c)&&typeof _0x1f421c===_0x0658('0x3a')&&!_[_0x0658('0x2e')](_0x1f421c)){if(!_['isUndefined'](_0x10bfda)&&typeof _0x10bfda===_0x0658('0x3a')&&!_[_0x0658('0x2e')](_0x10bfda)){return util[_0x0658('0x3b')](_0x0658('0x3c'),_0x10bfda,_0x1f421c);}return util['format'](_0x0658('0x3c'),_0x1f421c,_0x1f421c);}if(!_[_0x0658('0x39')](_0x1d7f6b)&&typeof _0x1d7f6b===_0x0658('0x3a')&&!_[_0x0658('0x2e')](_0x1d7f6b)){return _0x1d7f6b;}return _0x0658('0x3d');}exports[_0x0658('0x3e')]=getCallerId;function getCallerIdRandom(_0x20dfb6,_0x700d8c){var _0x1885a7;var _0x2ce3f4;var _0x1adc2f;if(_0x700d8c<=0x0){_0x700d8c=0x1;}_0x1885a7=new RegExp(_0x0658('0x3f')+_0x700d8c+'}$');_0x2ce3f4=Math[_0x0658('0x40')](0xa,_0x700d8c-0x1);_0x1adc2f=Math[_0x0658('0x40')](0xa,_0x700d8c)-0x1;return util[_0x0658('0x3b')]('%s',_[_0x0658('0x41')](_0x20dfb6,_0x1885a7,_[_0x0658('0x42')](_0x2ce3f4,_0x1adc2f)['toString']()));}exports[_0x0658('0x43')]=getCallerIdRandom;function decrementOriginate(_0x224f5c,_0x58b76d){if(_0x224f5c[_0x0658('0x24')]&&_0x224f5c[_0x0658('0x24')]>0x0){_0x224f5c[_0x0658('0x24')]-=0x1;}else{logger[_0x0658('0x44')](_0x0658('0x45'),_0x58b76d);}}exports[_0x0658('0x46')]=decrementOriginate;function checkContactEmpty(_0x577aa3){return _0x577aa3&&_0x577aa3[_0x0658('0x47')]>0x0;}exports['checkContactEmpty']=checkContactEmpty;function erlangb(_0x5bd71b,_0x25e075){if(_0x25e075===0x0){return 0x0;}var _0x1f0b69=0x1;for(var _0x4dca65=0x1;_0x4dca65<=_0x25e075;_0x4dca65+=0x1){_0x1f0b69=0x1+_0x1f0b69*_0x4dca65/_0x5bd71b;}return 0x1/_0x1f0b69;}exports[_0x0658('0x48')]=erlangb;function checkContactLowerLimitOriginate(_0x3cca45,_0x31006a,_0x44cdcb){if(_0x31006a>_0x44cdcb){for(var _0x1f0a1c=0x0;_0x1f0a1c<_0x31006a-_0x44cdcb;_0x1f0a1c+=0x1){decrementOriginate(_0x3cca45,_0x0658('0x49'));}}}exports['checkContactLowerLimitOriginate']=checkContactLowerLimitOriginate;function setXMDContactVariables(_0x17e15e){var _0x52e29c={};var _0x21da72=['id',_0x0658('0x4a'),_0x0658('0x4b'),_0x0658('0x4c')];const _0x534482=0xfa;if(_0x17e15e){for(var _0x27a579 in _0x17e15e){if(typeof _0x17e15e[_0x27a579]!==_0x0658('0x4d')){if(!_['isNil'](_0x17e15e[_0x27a579])&&!_0x21da72[_0x0658('0x33')](_0x27a579)){if(_0x27a579==='description'&&_0x17e15e[_0x27a579][_0x0658('0x47')]>_0x534482){_0x52e29c[_0x0658('0x4e')+_0x27a579[_0x0658('0x4f')]()]=_0x17e15e[_0x27a579][_0x0658('0x50')]()[_0x0658('0x51')](0x0,_0x534482);}else{_0x52e29c[_0x0658('0x4e')+_0x27a579['toUpperCase']()]=_0x17e15e[_0x27a579];}}}}}return _0x52e29c;}exports['setXMDContactVariables']=setXMDContactVariables;