Built motion from commit 58b0471d.|2.6.29
[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 _0x4d07=['isIVRCampaignActive','diff','seconds','getSeconds','dialActive','message','available','loggedIn','loggedInDb','paused','pTalking','waiting','inUse','originated','Trunk','hasQueueCampaignDataChanged','dialTimezone','isNil','Interval','NULL_INTERVAL','isEmpty','dialGlobalInterval','Intervals','UNKNOWN_TIMEZONE','SIP/','reachable','unmonitored','name','includes','status','TrunkBackup','ACTIVE','talking','UNREACHABLE_TRUNK','DISACTIVED','INACTIVE','getQueueCampaignActiveStatusMessage','match','extractCalleridName','isUndefined','\x22%s\x22\x20<%s>','format','getCallerId','\x5cw{0,','pow','toString','getCallerIdRandom','[decrementOriginate]\x20queue\x20originate\x20value\x20is\x20negative','decrementOriginate','length','checkContactEmpty','erlangb','checkContactLowerLimitOriginate','createdAt','tags','undefined','description','XMD-','substring','toUpperCase','moment','dialer','../../../../config/environment/shared','timezones','BLACKLIST','RESCHEDULED_CONTACTS','DEACTIVATED','NOT_ACTIVE','AGENTS_NOT_LOGGED','AVAILABLE_CONTACTS_FINISHED','INTERVAL_IS_NULL','GLOBAL_INTERVAL_IS_OVERTIME','RECALLINQUEUE','RECALLFAILEDTIMEOUT','RUNNING','dialMethod','preview','isPreviewCampaign','isIVRCampaign','type','outbound','isOutboundQueue','active'];(function(_0x49bf54,_0x213863){var _0x5c50d4=function(_0x2f746a){while(--_0x2f746a){_0x49bf54['push'](_0x49bf54['shift']());}};_0x5c50d4(++_0x213863);}(_0x4d07,0x135));var _0x74d0=function(_0x2eade5,_0x5593b8){_0x2eade5=_0x2eade5-0x0;var _0x1e9966=_0x4d07[_0x2eade5];return _0x1e9966;};'use strict';var _=require('lodash');var moment=require(_0x74d0('0x0'));var util=require('util');var logger=require('../../../../config/logger')(_0x74d0('0x1'));var timezones=require(_0x74d0('0x2'))[_0x74d0('0x3')];var CAMPAIGN_STATUS={'ACTIVE':'ACTIVE','BLACKLIST':_0x74d0('0x4'),'CONTACTS_RESCHEDULED':_0x74d0('0x5'),'DEACTIVATED':_0x74d0('0x6'),'DISACTIVED':'IS_DISACTIVED','EMPTY_INTERVAL':'INTERVAL_IS_EMPTY','INACTIVE':_0x74d0('0x7'),'NO_AGENTS_LOGGED':_0x74d0('0x8'),'NO_AVAILABLE_CONTACTS':_0x74d0('0x9'),'NULL_INTERVAL':_0x74d0('0xa'),'OVERTIME_INTERVAL':'INTERVAL_IS_OVERTIME','OVERTIME_GLOBAL_INTERVAL':_0x74d0('0xb'),'QUEUE_RECALL':_0x74d0('0xc'),'RECALL_TIMEOUT':_0x74d0('0xd'),'RUNNING':_0x74d0('0xe'),'UNKNOWN_TIMEZONE':'TIMEZONE_UNKNOW','UNREACHABLE_TRUNK':'TRUNK_IS_NOT_REACHABLE'};exports['CAMPAIGN_STATUS']=CAMPAIGN_STATUS;function isPreviewCampaign(_0x399ed5){return _0x399ed5[_0x74d0('0xf')]===_0x74d0('0x10');}exports[_0x74d0('0x11')]=isPreviewCampaign;function isIVRCampaign(_0x5263d0){return _0x5263d0['type']==='ivr';}exports[_0x74d0('0x12')]=isIVRCampaign;function isOutboundQueue(_0x3186b7){return _0x3186b7[_0x74d0('0x13')]===_0x74d0('0x14');}exports[_0x74d0('0x15')]=isOutboundQueue;function isQueueCampaignActive(_0x2c8b25){return _0x2c8b25['dialActive'];}exports['isQueueCampaignActive']=isQueueCampaignActive;function isIVRCampaignActive(_0x59772d){return _0x59772d[_0x74d0('0x16')];}exports[_0x74d0('0x17')]=isIVRCampaignActive;function getSeconds(_0x3b9a14,_0x5ee1f1){var _0x485dc=moment(_0x3b9a14)['milliseconds'](0x0);var _0x1b93e8=moment(_0x5ee1f1)['milliseconds'](0x0);return _0x485dc[_0x74d0('0x18')](_0x1b93e8,_0x74d0('0x19'));}exports[_0x74d0('0x1a')]=getSeconds;function hasQueueCampaignDataChanged(_0x160c93,_0x405f28){var _0x3fa3a2=![];var _0x17450d=_0x160c93[_0x74d0('0xf')]!==_0x405f28[_0x74d0('0xf')]||_0x160c93[_0x74d0('0x1b')]!==_0x405f28[_0x74d0('0x1b')]||_0x160c93[_0x74d0('0x1c')]!==_0x405f28[_0x74d0('0x1c')];var _0x473750=_0x160c93[_0x74d0('0x1d')]!==_0x405f28[_0x74d0('0x1d')]||_0x160c93[_0x74d0('0x1e')]!==_0x405f28[_0x74d0('0x1e')]||_0x160c93[_0x74d0('0x1f')]!==_0x405f28[_0x74d0('0x1f')]||_0x160c93[_0x74d0('0x20')]!==_0x405f28[_0x74d0('0x20')]||_0x160c93['talking']!==_0x405f28['talking']||_0x160c93[_0x74d0('0x21')]!==_0x405f28[_0x74d0('0x21')]||_0x160c93[_0x74d0('0x22')]!==_0x405f28['waiting']||_0x160c93[_0x74d0('0x23')]!==_0x405f28[_0x74d0('0x23')]||_0x160c93[_0x74d0('0x24')]!==_0x405f28[_0x74d0('0x24')];if(_0x160c93[_0x74d0('0x25')]&&_0x405f28['Trunk']){_0x3fa3a2=_0x160c93[_0x74d0('0x25')]['name']!==_0x405f28[_0x74d0('0x25')]['name']||_0x160c93['Trunk']['active']!==_0x405f28['Trunk'][_0x74d0('0x16')];}return _0x17450d||_0x473750||_0x3fa3a2;}exports[_0x74d0('0x26')]=hasQueueCampaignDataChanged;function checkAnyValidQueueCampaignInterval(_0x381b7a){var _0x51f867=null;var _0x222e5f=_0x381b7a[_0x74d0('0x27')];if(_['isNil'](_0x381b7a['dialGlobalInterval'])||_[_0x74d0('0x28')](_0x381b7a[_0x74d0('0x29')])||_['isNil'](_0x381b7a[_0x74d0('0x29')]['Intervals'])){_0x51f867=CAMPAIGN_STATUS[_0x74d0('0x2a')];}else if(_[_0x74d0('0x2b')](_0x381b7a[_0x74d0('0x2c')])||_[_0x74d0('0x2b')](_0x381b7a[_0x74d0('0x29')][_0x74d0('0x2d')])){_0x51f867=CAMPAIGN_STATUS['EMPTY_INTERVAL'];}else if(_0x222e5f&&!timezones[_0x222e5f]){_0x51f867=CAMPAIGN_STATUS[_0x74d0('0x2e')];}return _0x51f867;}function checkAnyValidTrunk(_0x458f38,_0x208749){var _0x10c350=null;var _0x267597=_0x74d0('0x2f');var _0x1f7ea5=[_0x74d0('0x30'),_0x74d0('0x31')];var _0x251083=!![];if(_0x458f38['Trunk']&&_0x458f38['Trunk'][_0x74d0('0x16')]){_0x267597+=_0x458f38['Trunk'][_0x74d0('0x32')];_0x10c350=_0x208749[_0x267597];_0x251083=_0x1f7ea5[_0x74d0('0x33')](_0x10c350[_0x74d0('0x34')]);}else if(_0x458f38[_0x74d0('0x35')]&&_0x458f38[_0x74d0('0x35')][_0x74d0('0x16')]){_0x267597+=_0x458f38[_0x74d0('0x35')]['name'];_0x10c350=_0x208749[_0x267597];_0x251083=_0x1f7ea5[_0x74d0('0x33')](_0x10c350['status']);}return _0x251083;}function getQueueCampaignStatusMessage(_0x5e1109,_0x385e4d){var _0x2b36a3=CAMPAIGN_STATUS[_0x74d0('0x36')];var _0x3e1cc4=isPreviewCampaign(_0x5e1109);if(!isQueueCampaignActive(_0x5e1109)){if(_0x3e1cc4){_0x2b36a3=CAMPAIGN_STATUS['INACTIVE'];}else{if(_0x5e1109[_0x74d0('0x24')]===0x0&&_0x5e1109[_0x74d0('0x37')]===0x0&&_0x5e1109[_0x74d0('0x22')]===0x0&&(_0x5e1109['pTalking']||0x0)===0x0){_0x2b36a3=CAMPAIGN_STATUS['INACTIVE'];}else{_0x2b36a3=CAMPAIGN_STATUS['DISACTIVED'];}}}else if(_0x5e1109[_0x74d0('0x1e')]===0x0){_0x2b36a3=CAMPAIGN_STATUS['NO_AGENTS_LOGGED'];}else if(!checkAnyValidTrunk(_0x5e1109,_0x385e4d)){_0x2b36a3=CAMPAIGN_STATUS[_0x74d0('0x38')];}else if(!isPreviewCampaign(_0x5e1109)){var _0x4603cc=checkAnyValidQueueCampaignInterval(_0x5e1109);if(_0x4603cc){_0x2b36a3=_0x4603cc;}}return _0x2b36a3;}exports['getQueueCampaignStatusMessage']=getQueueCampaignStatusMessage;function getQueueCampaignActiveStatusMessage(_0x591eb9){var _0x37c9b2=CAMPAIGN_STATUS[_0x74d0('0x39')];if(_0x591eb9['originated']===0x0&&_0x591eb9[_0x74d0('0x37')]===0x0&&_0x591eb9[_0x74d0('0x22')]===0x0&&(_0x591eb9[_0x74d0('0x21')]||0x0)===0x0){_0x37c9b2=CAMPAIGN_STATUS[_0x74d0('0x3a')];}return _0x37c9b2;}exports[_0x74d0('0x3b')]=getQueueCampaignActiveStatusMessage;function extractCalleridName(_0x5f430f){var _0xe3a0d5=_0x5f430f[_0x74d0('0x3c')](/"(.*?)"/);return _0xe3a0d5?_0xe3a0d5[0x1]:_0x5f430f;}exports[_0x74d0('0x3d')]=extractCalleridName;function getCallerId(_0x8ac258,_0x4a2a2a,_0x49eae3){if(!_['isUndefined'](_0x49eae3)&&typeof _0x49eae3==='string'&&!_[_0x74d0('0x2b')](_0x49eae3)){if(!_[_0x74d0('0x3e')](_0x4a2a2a)&&typeof _0x4a2a2a==='string'&&!_[_0x74d0('0x2b')](_0x4a2a2a)){return util['format'](_0x74d0('0x3f'),_0x4a2a2a,_0x49eae3);}return util[_0x74d0('0x40')](_0x74d0('0x3f'),_0x49eae3,_0x49eae3);}if(!_[_0x74d0('0x3e')](_0x8ac258)&&typeof _0x8ac258==='string'&&!_[_0x74d0('0x2b')](_0x8ac258)){return _0x8ac258;}return'\x22\x22\x20<>';}exports[_0x74d0('0x41')]=getCallerId;function getCallerIdRandom(_0x6da823,_0x3ada6f){var _0xc676b5;var _0x7f3311;var _0x4565df;if(_0x3ada6f<=0x0){_0x3ada6f=0x1;}_0xc676b5=new RegExp(_0x74d0('0x42')+_0x3ada6f+'}$');_0x7f3311=Math[_0x74d0('0x43')](0xa,_0x3ada6f-0x1);_0x4565df=Math[_0x74d0('0x43')](0xa,_0x3ada6f)-0x1;return util[_0x74d0('0x40')]('%s',_['replace'](_0x6da823,_0xc676b5,_['random'](_0x7f3311,_0x4565df)[_0x74d0('0x44')]()));}exports[_0x74d0('0x45')]=getCallerIdRandom;function decrementOriginate(_0x1176ec){if(_0x1176ec[_0x74d0('0x24')]&&_0x1176ec[_0x74d0('0x24')]>0x0){_0x1176ec[_0x74d0('0x24')]-=0x1;}else{logger['error'](_0x74d0('0x46'));}}exports[_0x74d0('0x47')]=decrementOriginate;function checkContactEmpty(_0x261725){return _0x261725&&_0x261725[_0x74d0('0x48')]>0x0;}exports[_0x74d0('0x49')]=checkContactEmpty;function erlangb(_0x5da183,_0x16f34e){if(_0x16f34e===0x0){return 0x0;}var _0x9e91bf=0x1;for(var _0x4ed5b1=0x1;_0x4ed5b1<=_0x16f34e;_0x4ed5b1+=0x1){_0x9e91bf=0x1+_0x9e91bf*_0x4ed5b1/_0x5da183;}return 0x1/_0x9e91bf;}exports[_0x74d0('0x4a')]=erlangb;function checkContactLowerLimitOriginate(_0xf0ece2,_0x1969a4,_0x1b561a){if(_0x1969a4>_0x1b561a){for(var _0xc6d7d6=0x0;_0xc6d7d6<_0x1969a4-_0x1b561a;_0xc6d7d6+=0x1){decrementOriginate(_0xf0ece2);}}}exports[_0x74d0('0x4b')]=checkContactLowerLimitOriginate;function setXMDContactVariables(_0x4d9a44){var _0x57ec77={};var _0x3f6aa5=['id',_0x74d0('0x4c'),_0x74d0('0x4d'),'updatedAt'];const _0x3fb4d7=0xfa;if(_0x4d9a44){for(var _0x294265 in _0x4d9a44){if(typeof _0x4d9a44[_0x294265]!==_0x74d0('0x4e')){if(!_[_0x74d0('0x28')](_0x4d9a44[_0x294265])&&!_0x3f6aa5[_0x74d0('0x33')](_0x294265)){if(_0x294265===_0x74d0('0x4f')&&_0x4d9a44[_0x294265][_0x74d0('0x48')]>_0x3fb4d7){_0x57ec77[_0x74d0('0x50')+_0x294265['toUpperCase']()]=_0x4d9a44[_0x294265][_0x74d0('0x44')]()[_0x74d0('0x51')](0x0,_0x3fb4d7);}else{_0x57ec77[_0x74d0('0x50')+_0x294265[_0x74d0('0x52')]()]=_0x4d9a44[_0x294265];}}}}}return _0x57ec77;}exports['setXMDContactVariables']=setXMDContactVariables;