cd838bd41716018983fb70b2185ac6b3a4ead407
[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 _0xe68f=['updatedAt','undefined','%s%s','XMD-','toUpperCase','setXMDContactVariables','lodash','dialer','../../../../config/environment/shared','timezones','BLACKLIST','RESCHEDULED_CONTACTS','DEACTIVATED','INTERVAL_IS_EMPTY','AVAILABLE_CONTACTS_FINISHED','INTERVAL_IS_NULL','INTERVAL_IS_OVERTIME','RUNNING','TIMEZONE_UNKNOW','TRUNK_IS_NOT_REACHABLE','CAMPAIGN_STATUS','dialMethod','isPreviewCampaign','type','isIVRCampaign','outbound','isOutboundQueue','dialActive','active','milliseconds','getSeconds','message','available','loggedIn','loggedInDb','paused','talking','pTalking','waiting','inUse','originated','Trunk','name','hasQueueCampaignDataChanged','dialTimezone','isNil','dialGlobalInterval','Interval','NULL_INTERVAL','isEmpty','Intervals','EMPTY_INTERVAL','UNKNOWN_TIMEZONE','SIP/','reachable','unmonitored','TrunkBackup','includes','ACTIVE','INACTIVE','DISACTIVED','getQueueCampaignStatusMessage','getQueueCampaignActiveStatusMessage','match','extractCalleridName','string','format','\x22%s\x22\x20<%s>','isUndefined','\x22\x22\x20<>','getCallerId','\x5cw{0,','pow','replace','toString','getCallerIdRandom','error','decrementOriginate','length','checkContactEmpty','erlangb','checkContactLowerLimitOriginate','createdAt'];(function(_0x2dbbf2,_0x34c336){var _0x2b40ce=function(_0x1566c4){while(--_0x1566c4){_0x2dbbf2['push'](_0x2dbbf2['shift']());}};_0x2b40ce(++_0x34c336);}(_0xe68f,0x1a5));var _0xfe68=function(_0x14eda0,_0x584d82){_0x14eda0=_0x14eda0-0x0;var _0x491eb8=_0xe68f[_0x14eda0];return _0x491eb8;};'use strict';var _=require(_0xfe68('0x0'));var moment=require('moment');var util=require('util');var logger=require('../../../../config/logger')(_0xfe68('0x1'));var timezones=require(_0xfe68('0x2'))[_0xfe68('0x3')];var CAMPAIGN_STATUS={'ACTIVE':'ACTIVE','BLACKLIST':_0xfe68('0x4'),'CONTACTS_RESCHEDULED':_0xfe68('0x5'),'DEACTIVATED':_0xfe68('0x6'),'DISACTIVED':'IS_DISACTIVED','EMPTY_INTERVAL':_0xfe68('0x7'),'INACTIVE':'NOT_ACTIVE','NO_AGENTS_LOGGED':'AGENTS_NOT_LOGGED','NO_AVAILABLE_CONTACTS':_0xfe68('0x8'),'NULL_INTERVAL':_0xfe68('0x9'),'OVERTIME_INTERVAL':_0xfe68('0xa'),'OVERTIME_GLOBAL_INTERVAL':'GLOBAL_INTERVAL_IS_OVERTIME','QUEUE_RECALL':'RECALLINQUEUE','RECALL_TIMEOUT':'RECALLFAILEDTIMEOUT','RUNNING':_0xfe68('0xb'),'UNKNOWN_TIMEZONE':_0xfe68('0xc'),'UNREACHABLE_TRUNK':_0xfe68('0xd')};exports[_0xfe68('0xe')]=CAMPAIGN_STATUS;function isPreviewCampaign(_0x439d7d){return _0x439d7d[_0xfe68('0xf')]==='preview';}exports[_0xfe68('0x10')]=isPreviewCampaign;function isIVRCampaign(_0x12723d){return _0x12723d[_0xfe68('0x11')]==='ivr';}exports[_0xfe68('0x12')]=isIVRCampaign;function isOutboundQueue(_0x29e3be){return _0x29e3be['type']===_0xfe68('0x13');}exports[_0xfe68('0x14')]=isOutboundQueue;function isQueueCampaignActive(_0x91716e){return _0x91716e[_0xfe68('0x15')];}exports['isQueueCampaignActive']=isQueueCampaignActive;function isIVRCampaignActive(_0x1166ca){return _0x1166ca[_0xfe68('0x16')];}exports['isIVRCampaignActive']=isIVRCampaignActive;function getSeconds(_0x34fbd8,_0x54254b){var _0x53c600=moment(_0x34fbd8)[_0xfe68('0x17')](0x0);var _0x353d8d=moment(_0x54254b)[_0xfe68('0x17')](0x0);return _0x53c600['diff'](_0x353d8d,'seconds');}exports[_0xfe68('0x18')]=getSeconds;function hasQueueCampaignDataChanged(_0x17ae63,_0x4f43d7){var _0x3aeb96=![];var _0x1cc571=_0x17ae63[_0xfe68('0xf')]!==_0x4f43d7[_0xfe68('0xf')]||_0x17ae63[_0xfe68('0x15')]!==_0x4f43d7[_0xfe68('0x15')]||_0x17ae63['message']!==_0x4f43d7[_0xfe68('0x19')];var _0x1265d3=_0x17ae63[_0xfe68('0x1a')]!==_0x4f43d7['available']||_0x17ae63[_0xfe68('0x1b')]!==_0x4f43d7['loggedIn']||_0x17ae63[_0xfe68('0x1c')]!==_0x4f43d7[_0xfe68('0x1c')]||_0x17ae63['paused']!==_0x4f43d7[_0xfe68('0x1d')]||_0x17ae63[_0xfe68('0x1e')]!==_0x4f43d7[_0xfe68('0x1e')]||_0x17ae63[_0xfe68('0x1f')]!==_0x4f43d7[_0xfe68('0x1f')]||_0x17ae63['waiting']!==_0x4f43d7[_0xfe68('0x20')]||_0x17ae63[_0xfe68('0x21')]!==_0x4f43d7[_0xfe68('0x21')]||_0x17ae63[_0xfe68('0x22')]!==_0x4f43d7[_0xfe68('0x22')];if(_0x17ae63[_0xfe68('0x23')]&&_0x4f43d7['Trunk']){_0x3aeb96=_0x17ae63[_0xfe68('0x23')][_0xfe68('0x24')]!==_0x4f43d7[_0xfe68('0x23')][_0xfe68('0x24')]||_0x17ae63[_0xfe68('0x23')][_0xfe68('0x16')]!==_0x4f43d7[_0xfe68('0x23')][_0xfe68('0x16')];}return _0x1cc571||_0x1265d3||_0x3aeb96;}exports[_0xfe68('0x25')]=hasQueueCampaignDataChanged;function checkAnyValidQueueCampaignInterval(_0x35dcfe){var _0x145df6=null;var _0x212d05=_0x35dcfe[_0xfe68('0x26')];if(_[_0xfe68('0x27')](_0x35dcfe[_0xfe68('0x28')])||_[_0xfe68('0x27')](_0x35dcfe[_0xfe68('0x29')])||_[_0xfe68('0x27')](_0x35dcfe['Interval']['Intervals'])){_0x145df6=CAMPAIGN_STATUS[_0xfe68('0x2a')];}else if(_[_0xfe68('0x2b')](_0x35dcfe['dialGlobalInterval'])||_[_0xfe68('0x2b')](_0x35dcfe['Interval'][_0xfe68('0x2c')])){_0x145df6=CAMPAIGN_STATUS[_0xfe68('0x2d')];}else if(_0x212d05&&!timezones[_0x212d05]){_0x145df6=CAMPAIGN_STATUS[_0xfe68('0x2e')];}return _0x145df6;}function checkAnyValidTrunk(_0x4b4ba2,_0x15d341){var _0x16c67d=null;var _0x1b9f9b=_0xfe68('0x2f');var _0x47ecfd=[_0xfe68('0x30'),_0xfe68('0x31')];var _0xd93791=!![];if(_0x4b4ba2[_0xfe68('0x23')]&&_0x4b4ba2['Trunk'][_0xfe68('0x16')]){_0x1b9f9b+=_0x4b4ba2[_0xfe68('0x23')]['name'];_0x16c67d=_0x15d341[_0x1b9f9b];_0xd93791=_0x47ecfd['includes'](_0x16c67d['status']);}else if(_0x4b4ba2[_0xfe68('0x32')]&&_0x4b4ba2[_0xfe68('0x32')][_0xfe68('0x16')]){_0x1b9f9b+=_0x4b4ba2[_0xfe68('0x32')]['name'];_0x16c67d=_0x15d341[_0x1b9f9b];_0xd93791=_0x47ecfd[_0xfe68('0x33')](_0x16c67d['status']);}return _0xd93791;}function getQueueCampaignStatusMessage(_0x55d17a,_0x3091dc){var _0x179f17=CAMPAIGN_STATUS[_0xfe68('0x34')];var _0x1e3bcc=isPreviewCampaign(_0x55d17a);if(!isQueueCampaignActive(_0x55d17a)){if(_0x1e3bcc){_0x179f17=CAMPAIGN_STATUS[_0xfe68('0x35')];}else{if(_0x55d17a[_0xfe68('0x22')]===0x0&&_0x55d17a[_0xfe68('0x1e')]===0x0&&_0x55d17a['waiting']===0x0&&(_0x55d17a[_0xfe68('0x1f')]||0x0)===0x0){_0x179f17=CAMPAIGN_STATUS['INACTIVE'];}else{_0x179f17=CAMPAIGN_STATUS[_0xfe68('0x36')];}}}else if(_0x55d17a['loggedIn']===0x0){_0x179f17=CAMPAIGN_STATUS['NO_AGENTS_LOGGED'];}else if(!checkAnyValidTrunk(_0x55d17a,_0x3091dc)){_0x179f17=CAMPAIGN_STATUS['UNREACHABLE_TRUNK'];}else if(!isPreviewCampaign(_0x55d17a)){var _0x5e5141=checkAnyValidQueueCampaignInterval(_0x55d17a);if(_0x5e5141){_0x179f17=_0x5e5141;}}return _0x179f17;}exports[_0xfe68('0x37')]=getQueueCampaignStatusMessage;function getQueueCampaignActiveStatusMessage(_0x479a01){var _0x372068=CAMPAIGN_STATUS[_0xfe68('0x36')];if(_0x479a01['originated']===0x0&&_0x479a01['talking']===0x0&&_0x479a01['waiting']===0x0&&(_0x479a01['pTalking']||0x0)===0x0){_0x372068=CAMPAIGN_STATUS[_0xfe68('0x35')];}return _0x372068;}exports[_0xfe68('0x38')]=getQueueCampaignActiveStatusMessage;function extractCalleridName(_0x47fcca){var _0x652555=_0x47fcca[_0xfe68('0x39')](/"(.*?)"/);return _0x652555?_0x652555[0x1]:_0x47fcca;}exports[_0xfe68('0x3a')]=extractCalleridName;function getCallerId(_0x107857,_0x50879c,_0x34df86){if(!_['isUndefined'](_0x34df86)&&typeof _0x34df86===_0xfe68('0x3b')&&!_[_0xfe68('0x2b')](_0x34df86)){if(!_['isUndefined'](_0x50879c)&&typeof _0x50879c===_0xfe68('0x3b')&&!_[_0xfe68('0x2b')](_0x50879c)){return util[_0xfe68('0x3c')](_0xfe68('0x3d'),_0x50879c,_0x34df86);}return util[_0xfe68('0x3c')](_0xfe68('0x3d'),_0x34df86,_0x34df86);}if(!_[_0xfe68('0x3e')](_0x107857)&&typeof _0x107857==='string'&&!_['isEmpty'](_0x107857)){return _0x107857;}return _0xfe68('0x3f');}exports[_0xfe68('0x40')]=getCallerId;function getCallerIdRandom(_0x2c06ae,_0x37c0d7){var _0x414cd0;var _0x5cfef3;var _0x9db124;if(_0x37c0d7<=0x0){_0x37c0d7=0x1;}_0x414cd0=new RegExp(_0xfe68('0x41')+_0x37c0d7+'}$');_0x5cfef3=Math[_0xfe68('0x42')](0xa,_0x37c0d7-0x1);_0x9db124=Math[_0xfe68('0x42')](0xa,_0x37c0d7)-0x1;return util['format']('%s',_[_0xfe68('0x43')](_0x2c06ae,_0x414cd0,_['random'](_0x5cfef3,_0x9db124)[_0xfe68('0x44')]()));}exports[_0xfe68('0x45')]=getCallerIdRandom;function decrementOriginate(_0x2ff1ab){if(_0x2ff1ab[_0xfe68('0x22')]&&_0x2ff1ab['originated']>0x0){_0x2ff1ab[_0xfe68('0x22')]-=0x1;}else{logger[_0xfe68('0x46')]('[decrementOriginate]\x20queue\x20originate\x20value\x20is\x20negative');}}exports[_0xfe68('0x47')]=decrementOriginate;function checkContactEmpty(_0x542868){return _0x542868&&_0x542868[_0xfe68('0x48')]>0x0;}exports[_0xfe68('0x49')]=checkContactEmpty;function erlangb(_0x1dea16,_0x5f1b1c){if(_0x5f1b1c===0x0){return 0x0;}var _0x97d5c2=0x1;for(var _0x1b8e9a=0x1;_0x1b8e9a<=_0x5f1b1c;_0x1b8e9a+=0x1){_0x97d5c2=0x1+_0x97d5c2*_0x1b8e9a/_0x1dea16;}return 0x1/_0x97d5c2;}exports[_0xfe68('0x4a')]=erlangb;function checkContactLowerLimitOriginate(_0x5da47e,_0x43c268,_0x2249a1){if(_0x43c268>_0x2249a1){for(var _0xaf79c3=0x0;_0xaf79c3<_0x43c268-_0x2249a1;_0xaf79c3+=0x1){decrementOriginate(_0x5da47e);}}}exports[_0xfe68('0x4b')]=checkContactLowerLimitOriginate;function setXMDContactVariables(_0x494621){var _0x3d92dc={};var _0x554269=['id',_0xfe68('0x4c'),'description','tags',_0xfe68('0x4d')];if(_0x494621){for(var _0xd018a9 in _0x494621){if(typeof _0x494621[_0xd018a9]!==_0xfe68('0x4e')){if(!_['isNil'](_0x494621[_0xd018a9])&&!_0x554269['includes'](_0xd018a9)){_0x3d92dc[util[_0xfe68('0x3c')](_0xfe68('0x4f'),_0xfe68('0x50'),_0xd018a9[_0xfe68('0x51')]())]=_0x494621[_0xd018a9];}}}}return _0x3d92dc;}exports[_0xfe68('0x52')]=setXMDContactVariables;