61586f219841966eb5676ab3ca8104b1ed734b29
[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 _0x782b=['Interval','Intervals','isEmpty','EMPTY_INTERVAL','UNKNOWN_TIMEZONE','reachable','unmonitored','status','TrunkBackup','INACTIVE','UNREACHABLE_TRUNK','getQueueCampaignStatusMessage','DISACTIVED','getQueueCampaignActiveStatusMessage','match','extractCalleridName','isUndefined','format','\x22%s\x22\x20<%s>','string','\x22\x22\x20<>','getCallerId','\x5cw{0,','pow','replace','random','getCallerIdRandom','error','decrementOriginate','length','erlangb','[checkContactLowerLimitOriginate]\x20','createdAt','updatedAt','undefined','includes','description','toUpperCase','toString','XMD-','setXMDContactVariables','lodash','moment','util','../../../../config/logger','dialer','../../../../config/environment/shared','ACTIVE','BLACKLIST','RESCHEDULED_CONTACTS','DEACTIVATED','IS_DISACTIVED','NOT_ACTIVE','AGENTS_NOT_LOGGED','AVAILABLE_CONTACTS_FINISHED','INTERVAL_IS_OVERTIME','GLOBAL_INTERVAL_IS_OVERTIME','RECALLINQUEUE','RUNNING','TRUNK_IS_NOT_REACHABLE','CAMPAIGN_STATUS','isPreviewCampaign','type','ivr','isIVRCampaign','outbound','isOutboundQueue','dialActive','active','isIVRCampaignActive','milliseconds','diff','seconds','getSeconds','dialMethod','message','available','loggedIn','loggedInDb','paused','talking','pTalking','waiting','inUse','originated','Trunk','name','dialTimezone','isNil','dialGlobalInterval'];(function(_0x1a7658,_0x14e2ca){var _0x3e6f38=function(_0x9bd29){while(--_0x9bd29){_0x1a7658['push'](_0x1a7658['shift']());}};_0x3e6f38(++_0x14e2ca);}(_0x782b,0x137));var _0xb782=function(_0x3c2242,_0x135684){_0x3c2242=_0x3c2242-0x0;var _0x15a7c6=_0x782b[_0x3c2242];return _0x15a7c6;};'use strict';var _=require(_0xb782('0x0'));var moment=require(_0xb782('0x1'));var util=require(_0xb782('0x2'));var logger=require(_0xb782('0x3'))(_0xb782('0x4'));var timezones=require(_0xb782('0x5'))['timezones'];var CAMPAIGN_STATUS={'ACTIVE':_0xb782('0x6'),'BLACKLIST':_0xb782('0x7'),'CONTACTS_RESCHEDULED':_0xb782('0x8'),'DEACTIVATED':_0xb782('0x9'),'DISACTIVED':_0xb782('0xa'),'EMPTY_INTERVAL':'INTERVAL_IS_EMPTY','INACTIVE':_0xb782('0xb'),'NO_AGENTS_LOGGED':_0xb782('0xc'),'NO_AVAILABLE_CONTACTS':_0xb782('0xd'),'NULL_INTERVAL':'INTERVAL_IS_NULL','OVERTIME_INTERVAL':_0xb782('0xe'),'OVERTIME_GLOBAL_INTERVAL':_0xb782('0xf'),'QUEUE_RECALL':_0xb782('0x10'),'RECALL_TIMEOUT':'RECALLFAILEDTIMEOUT','RUNNING':_0xb782('0x11'),'UNKNOWN_TIMEZONE':'TIMEZONE_UNKNOW','UNREACHABLE_TRUNK':_0xb782('0x12')};exports[_0xb782('0x13')]=CAMPAIGN_STATUS;function isPreviewCampaign(_0xebbc07){return _0xebbc07['dialMethod']==='preview';}exports[_0xb782('0x14')]=isPreviewCampaign;function isIVRCampaign(_0x45d259){return _0x45d259[_0xb782('0x15')]===_0xb782('0x16');}exports[_0xb782('0x17')]=isIVRCampaign;function isOutboundQueue(_0x10f13d){return _0x10f13d[_0xb782('0x15')]===_0xb782('0x18');}exports[_0xb782('0x19')]=isOutboundQueue;function isQueueCampaignActive(_0x27c04d){return _0x27c04d[_0xb782('0x1a')];}exports['isQueueCampaignActive']=isQueueCampaignActive;function isIVRCampaignActive(_0x1a9c3b){return _0x1a9c3b[_0xb782('0x1b')];}exports[_0xb782('0x1c')]=isIVRCampaignActive;function getSeconds(_0x22b021,_0x40649d){var _0xd4b474=moment(_0x22b021)[_0xb782('0x1d')](0x0);var _0x90da12=moment(_0x40649d)[_0xb782('0x1d')](0x0);return _0xd4b474[_0xb782('0x1e')](_0x90da12,_0xb782('0x1f'));}exports[_0xb782('0x20')]=getSeconds;function hasQueueCampaignDataChanged(_0x461285,_0x37fc8c){var _0x23db39=![];var _0x2fadb1=_0x461285[_0xb782('0x21')]!==_0x37fc8c[_0xb782('0x21')]||_0x461285[_0xb782('0x1a')]!==_0x37fc8c['dialActive']||_0x461285[_0xb782('0x22')]!==_0x37fc8c[_0xb782('0x22')];var _0x2a2221=_0x461285['available']!==_0x37fc8c[_0xb782('0x23')]||_0x461285[_0xb782('0x24')]!==_0x37fc8c[_0xb782('0x24')]||_0x461285['loggedInDb']!==_0x37fc8c[_0xb782('0x25')]||_0x461285['paused']!==_0x37fc8c[_0xb782('0x26')]||_0x461285[_0xb782('0x27')]!==_0x37fc8c[_0xb782('0x27')]||_0x461285['pTalking']!==_0x37fc8c[_0xb782('0x28')]||_0x461285[_0xb782('0x29')]!==_0x37fc8c['waiting']||_0x461285[_0xb782('0x2a')]!==_0x37fc8c[_0xb782('0x2a')]||_0x461285[_0xb782('0x2b')]!==_0x37fc8c[_0xb782('0x2b')];if(_0x461285[_0xb782('0x2c')]&&_0x37fc8c['Trunk']){_0x23db39=_0x461285[_0xb782('0x2c')][_0xb782('0x2d')]!==_0x37fc8c['Trunk'][_0xb782('0x2d')]||_0x461285['Trunk'][_0xb782('0x1b')]!==_0x37fc8c[_0xb782('0x2c')]['active'];}return _0x2fadb1||_0x2a2221||_0x23db39;}exports['hasQueueCampaignDataChanged']=hasQueueCampaignDataChanged;function checkAnyValidQueueCampaignInterval(_0x5080bc){var _0x2d0fba=null;var _0x424c0b=_0x5080bc[_0xb782('0x2e')];if(_[_0xb782('0x2f')](_0x5080bc[_0xb782('0x30')])||_[_0xb782('0x2f')](_0x5080bc['Interval'])||_[_0xb782('0x2f')](_0x5080bc[_0xb782('0x31')][_0xb782('0x32')])){_0x2d0fba=CAMPAIGN_STATUS['NULL_INTERVAL'];}else if(_[_0xb782('0x33')](_0x5080bc[_0xb782('0x30')])||_[_0xb782('0x33')](_0x5080bc[_0xb782('0x31')][_0xb782('0x32')])){_0x2d0fba=CAMPAIGN_STATUS[_0xb782('0x34')];}else if(_0x424c0b&&!timezones[_0x424c0b]){_0x2d0fba=CAMPAIGN_STATUS[_0xb782('0x35')];}return _0x2d0fba;}function checkAnyValidTrunk(_0x441b90,_0x75994b){var _0x24b89f=null;var _0x1e9aa0='SIP/';var _0x2e8365=[_0xb782('0x36'),_0xb782('0x37')];var _0x3acddb=!![];if(_0x441b90['Trunk']&&_0x441b90[_0xb782('0x2c')][_0xb782('0x1b')]){_0x1e9aa0+=_0x441b90['Trunk']['name'];_0x24b89f=_0x75994b[_0x1e9aa0];_0x3acddb=_0x2e8365['includes'](_0x24b89f[_0xb782('0x38')]);}else if(_0x441b90[_0xb782('0x39')]&&_0x441b90[_0xb782('0x39')][_0xb782('0x1b')]){_0x1e9aa0+=_0x441b90[_0xb782('0x39')][_0xb782('0x2d')];_0x24b89f=_0x75994b[_0x1e9aa0];_0x3acddb=_0x2e8365['includes'](_0x24b89f[_0xb782('0x38')]);}return _0x3acddb;}function getQueueCampaignStatusMessage(_0x501bc0,_0x5ae73f){var _0x592943=CAMPAIGN_STATUS[_0xb782('0x6')];var _0x34c734=isPreviewCampaign(_0x501bc0);if(!isQueueCampaignActive(_0x501bc0)){if(_0x34c734){_0x592943=CAMPAIGN_STATUS[_0xb782('0x3a')];}else{if(_0x501bc0[_0xb782('0x2b')]===0x0&&_0x501bc0['talking']===0x0&&_0x501bc0[_0xb782('0x29')]===0x0&&(_0x501bc0[_0xb782('0x28')]||0x0)===0x0){_0x592943=CAMPAIGN_STATUS[_0xb782('0x3a')];}else{_0x592943=CAMPAIGN_STATUS['DISACTIVED'];}}}else if(_0x501bc0[_0xb782('0x24')]===0x0){_0x592943=CAMPAIGN_STATUS['NO_AGENTS_LOGGED'];}else if(!checkAnyValidTrunk(_0x501bc0,_0x5ae73f)){_0x592943=CAMPAIGN_STATUS[_0xb782('0x3b')];}else if(!isPreviewCampaign(_0x501bc0)){var _0x1b18da=checkAnyValidQueueCampaignInterval(_0x501bc0);if(_0x1b18da){_0x592943=_0x1b18da;}}return _0x592943;}exports[_0xb782('0x3c')]=getQueueCampaignStatusMessage;function getQueueCampaignActiveStatusMessage(_0x60427b){var _0x1da6d5=CAMPAIGN_STATUS[_0xb782('0x3d')];if(_0x60427b[_0xb782('0x2b')]===0x0&&_0x60427b[_0xb782('0x27')]===0x0&&_0x60427b[_0xb782('0x29')]===0x0&&(_0x60427b[_0xb782('0x28')]||0x0)===0x0){_0x1da6d5=CAMPAIGN_STATUS[_0xb782('0x3a')];}return _0x1da6d5;}exports[_0xb782('0x3e')]=getQueueCampaignActiveStatusMessage;function extractCalleridName(_0x368598){var _0x294e0d=_0x368598[_0xb782('0x3f')](/"(.*?)"/);return _0x294e0d?_0x294e0d[0x1]:_0x368598;}exports[_0xb782('0x40')]=extractCalleridName;function getCallerId(_0x1dca24,_0x3be83a,_0x5e048c){if(!_['isUndefined'](_0x5e048c)&&typeof _0x5e048c==='string'&&!_[_0xb782('0x33')](_0x5e048c)){if(!_[_0xb782('0x41')](_0x3be83a)&&typeof _0x3be83a==='string'&&!_[_0xb782('0x33')](_0x3be83a)){return util[_0xb782('0x42')](_0xb782('0x43'),_0x3be83a,_0x5e048c);}return util[_0xb782('0x42')](_0xb782('0x43'),_0x5e048c,_0x5e048c);}if(!_['isUndefined'](_0x1dca24)&&typeof _0x1dca24===_0xb782('0x44')&&!_['isEmpty'](_0x1dca24)){return _0x1dca24;}return _0xb782('0x45');}exports[_0xb782('0x46')]=getCallerId;function getCallerIdRandom(_0x3d8a52,_0x519f6a){var _0x13c1cc;var _0x3f4804;var _0x51b785;if(_0x519f6a<=0x0){_0x519f6a=0x1;}_0x13c1cc=new RegExp(_0xb782('0x47')+_0x519f6a+'}$');_0x3f4804=Math[_0xb782('0x48')](0xa,_0x519f6a-0x1);_0x51b785=Math[_0xb782('0x48')](0xa,_0x519f6a)-0x1;return util[_0xb782('0x42')]('%s',_[_0xb782('0x49')](_0x3d8a52,_0x13c1cc,_[_0xb782('0x4a')](_0x3f4804,_0x51b785)['toString']()));}exports[_0xb782('0x4b')]=getCallerIdRandom;function decrementOriginate(_0x377f4f,_0x3d479f){if(_0x377f4f[_0xb782('0x2b')]&&_0x377f4f[_0xb782('0x2b')]>0x0){_0x377f4f[_0xb782('0x2b')]-=0x1;}else{logger[_0xb782('0x4c')]('[decrementOriginate]\x20queue\x20originate\x20value',_0x3d479f);}}exports[_0xb782('0x4d')]=decrementOriginate;function checkContactEmpty(_0x3f16e7){return _0x3f16e7&&_0x3f16e7[_0xb782('0x4e')]>0x0;}exports['checkContactEmpty']=checkContactEmpty;function erlangb(_0x3114e8,_0x5deba8){if(_0x5deba8===0x0){return 0x0;}var _0x250c19=0x1;for(var _0x495c87=0x1;_0x495c87<=_0x5deba8;_0x495c87+=0x1){_0x250c19=0x1+_0x250c19*_0x495c87/_0x3114e8;}return 0x1/_0x250c19;}exports[_0xb782('0x4f')]=erlangb;function checkContactLowerLimitOriginate(_0x71247d,_0x2c0a93,_0x5cba20){if(_0x2c0a93>_0x5cba20){for(var _0x136f5a=0x0;_0x136f5a<_0x2c0a93-_0x5cba20;_0x136f5a+=0x1){decrementOriginate(_0x71247d,_0xb782('0x50'));}}}exports['checkContactLowerLimitOriginate']=checkContactLowerLimitOriginate;function setXMDContactVariables(_0x3e119a){var _0xcee39f={};var _0x2c0e98=['id',_0xb782('0x51'),'tags',_0xb782('0x52')];const _0x238f3d=0xfa;if(_0x3e119a){for(var _0x500956 in _0x3e119a){if(typeof _0x3e119a[_0x500956]!==_0xb782('0x53')){if(!_[_0xb782('0x2f')](_0x3e119a[_0x500956])&&!_0x2c0e98[_0xb782('0x54')](_0x500956)){if(_0x500956===_0xb782('0x55')&&_0x3e119a[_0x500956][_0xb782('0x4e')]>_0x238f3d){_0xcee39f['XMD-'+_0x500956[_0xb782('0x56')]()]=_0x3e119a[_0x500956][_0xb782('0x57')]()['substring'](0x0,_0x238f3d);}else{_0xcee39f[_0xb782('0x58')+_0x500956[_0xb782('0x56')]()]=_0x3e119a[_0x500956];}}}}}return _0xcee39f;}exports[_0xb782('0x59')]=setXMDContactVariables;