3e8ba8602dd130596a8b1a3a3ac3af2f37c0ec64
[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 _0x258b=['loggedInDb','paused','talking','pTalking','waiting','inUse','originated','Trunk','name','dialTimezone','isNil','dialGlobalInterval','Interval','Intervals','NULL_INTERVAL','isEmpty','EMPTY_INTERVAL','UNKNOWN_TIMEZONE','SIP/','reachable','unmonitored','includes','status','TrunkBackup','INACTIVE','DISACTIVED','NO_AGENTS_LOGGED','UNREACHABLE_TRUNK','getQueueCampaignStatusMessage','getQueueCampaignActiveStatusMessage','match','extractCalleridName','string','isUndefined','format','\x22%s\x22\x20<%s>','\x22\x22\x20<>','getCallerId','pow','replace','random','getCallerIdRandom','error','[decrementOriginate]\x20queue\x20originate\x20value\x20is\x20negative','decrementOriginate','length','checkContactEmpty','erlangb','checkContactLowerLimitOriginate','createdAt','updatedAt','undefined','description','toUpperCase','toString','substring','XMD-','setXMDContactVariables','moment','../../../../config/logger','dialer','../../../../config/environment/shared','timezones','ACTIVE','BLACKLIST','RESCHEDULED_CONTACTS','DEACTIVATED','IS_DISACTIVED','INTERVAL_IS_EMPTY','AGENTS_NOT_LOGGED','AVAILABLE_CONTACTS_FINISHED','GLOBAL_INTERVAL_IS_OVERTIME','TRUNK_IS_NOT_REACHABLE','CAMPAIGN_STATUS','dialMethod','type','isIVRCampaign','outbound','isOutboundQueue','isQueueCampaignActive','active','isIVRCampaignActive','milliseconds','seconds','getSeconds','dialActive','message','available','loggedIn'];(function(_0x40a045,_0x516f0e){var _0x1a687c=function(_0x48c9fe){while(--_0x48c9fe){_0x40a045['push'](_0x40a045['shift']());}};_0x1a687c(++_0x516f0e);}(_0x258b,0x93));var _0xb258=function(_0x30bc64,_0x349f5c){_0x30bc64=_0x30bc64-0x0;var _0x151320=_0x258b[_0x30bc64];return _0x151320;};'use strict';var _=require('lodash');var moment=require(_0xb258('0x0'));var util=require('util');var logger=require(_0xb258('0x1'))(_0xb258('0x2'));var timezones=require(_0xb258('0x3'))[_0xb258('0x4')];var CAMPAIGN_STATUS={'ACTIVE':_0xb258('0x5'),'BLACKLIST':_0xb258('0x6'),'CONTACTS_RESCHEDULED':_0xb258('0x7'),'DEACTIVATED':_0xb258('0x8'),'DISACTIVED':_0xb258('0x9'),'EMPTY_INTERVAL':_0xb258('0xa'),'INACTIVE':'NOT_ACTIVE','NO_AGENTS_LOGGED':_0xb258('0xb'),'NO_AVAILABLE_CONTACTS':_0xb258('0xc'),'NULL_INTERVAL':'INTERVAL_IS_NULL','OVERTIME_INTERVAL':'INTERVAL_IS_OVERTIME','OVERTIME_GLOBAL_INTERVAL':_0xb258('0xd'),'QUEUE_RECALL':'RECALLINQUEUE','RECALL_TIMEOUT':'RECALLFAILEDTIMEOUT','RUNNING':'RUNNING','UNKNOWN_TIMEZONE':'TIMEZONE_UNKNOW','UNREACHABLE_TRUNK':_0xb258('0xe')};exports[_0xb258('0xf')]=CAMPAIGN_STATUS;function isPreviewCampaign(_0x289050){return _0x289050[_0xb258('0x10')]==='preview';}exports['isPreviewCampaign']=isPreviewCampaign;function isIVRCampaign(_0x423ef5){return _0x423ef5[_0xb258('0x11')]==='ivr';}exports[_0xb258('0x12')]=isIVRCampaign;function isOutboundQueue(_0x3af4db){return _0x3af4db[_0xb258('0x11')]===_0xb258('0x13');}exports[_0xb258('0x14')]=isOutboundQueue;function isQueueCampaignActive(_0x4919fb){return _0x4919fb['dialActive'];}exports[_0xb258('0x15')]=isQueueCampaignActive;function isIVRCampaignActive(_0x17aa54){return _0x17aa54[_0xb258('0x16')];}exports[_0xb258('0x17')]=isIVRCampaignActive;function getSeconds(_0x5a4664,_0xdb9a67){var _0x3ac671=moment(_0x5a4664)[_0xb258('0x18')](0x0);var _0x492b84=moment(_0xdb9a67)[_0xb258('0x18')](0x0);return _0x3ac671['diff'](_0x492b84,_0xb258('0x19'));}exports[_0xb258('0x1a')]=getSeconds;function hasQueueCampaignDataChanged(_0x519e43,_0x3b3c8b){var _0xaa7c9c=![];var _0x41e34f=_0x519e43[_0xb258('0x10')]!==_0x3b3c8b[_0xb258('0x10')]||_0x519e43[_0xb258('0x1b')]!==_0x3b3c8b['dialActive']||_0x519e43[_0xb258('0x1c')]!==_0x3b3c8b[_0xb258('0x1c')];var _0xceec2=_0x519e43['available']!==_0x3b3c8b[_0xb258('0x1d')]||_0x519e43[_0xb258('0x1e')]!==_0x3b3c8b[_0xb258('0x1e')]||_0x519e43['loggedInDb']!==_0x3b3c8b[_0xb258('0x1f')]||_0x519e43['paused']!==_0x3b3c8b[_0xb258('0x20')]||_0x519e43[_0xb258('0x21')]!==_0x3b3c8b[_0xb258('0x21')]||_0x519e43['pTalking']!==_0x3b3c8b[_0xb258('0x22')]||_0x519e43[_0xb258('0x23')]!==_0x3b3c8b[_0xb258('0x23')]||_0x519e43[_0xb258('0x24')]!==_0x3b3c8b[_0xb258('0x24')]||_0x519e43[_0xb258('0x25')]!==_0x3b3c8b[_0xb258('0x25')];if(_0x519e43['Trunk']&&_0x3b3c8b[_0xb258('0x26')]){_0xaa7c9c=_0x519e43['Trunk'][_0xb258('0x27')]!==_0x3b3c8b[_0xb258('0x26')][_0xb258('0x27')]||_0x519e43['Trunk'][_0xb258('0x16')]!==_0x3b3c8b[_0xb258('0x26')][_0xb258('0x16')];}return _0x41e34f||_0xceec2||_0xaa7c9c;}exports['hasQueueCampaignDataChanged']=hasQueueCampaignDataChanged;function checkAnyValidQueueCampaignInterval(_0x76f4ad){var _0x54ce9c=null;var _0x224e88=_0x76f4ad[_0xb258('0x28')];if(_[_0xb258('0x29')](_0x76f4ad[_0xb258('0x2a')])||_['isNil'](_0x76f4ad[_0xb258('0x2b')])||_[_0xb258('0x29')](_0x76f4ad[_0xb258('0x2b')][_0xb258('0x2c')])){_0x54ce9c=CAMPAIGN_STATUS[_0xb258('0x2d')];}else if(_[_0xb258('0x2e')](_0x76f4ad['dialGlobalInterval'])||_[_0xb258('0x2e')](_0x76f4ad[_0xb258('0x2b')][_0xb258('0x2c')])){_0x54ce9c=CAMPAIGN_STATUS[_0xb258('0x2f')];}else if(_0x224e88&&!timezones[_0x224e88]){_0x54ce9c=CAMPAIGN_STATUS[_0xb258('0x30')];}return _0x54ce9c;}function checkAnyValidTrunk(_0x3323a0,_0x13e054){var _0x796a1d=null;var _0x5b9f7a=_0xb258('0x31');var _0x58661b=[_0xb258('0x32'),_0xb258('0x33')];var _0x33942a=!![];if(_0x3323a0['Trunk']&&_0x3323a0[_0xb258('0x26')]['active']){_0x5b9f7a+=_0x3323a0['Trunk'][_0xb258('0x27')];_0x796a1d=_0x13e054[_0x5b9f7a];_0x33942a=_0x58661b[_0xb258('0x34')](_0x796a1d[_0xb258('0x35')]);}else if(_0x3323a0[_0xb258('0x36')]&&_0x3323a0[_0xb258('0x36')][_0xb258('0x16')]){_0x5b9f7a+=_0x3323a0['TrunkBackup'][_0xb258('0x27')];_0x796a1d=_0x13e054[_0x5b9f7a];_0x33942a=_0x58661b[_0xb258('0x34')](_0x796a1d['status']);}return _0x33942a;}function getQueueCampaignStatusMessage(_0x3ed22e,_0x204308){var _0x341ed1=CAMPAIGN_STATUS[_0xb258('0x5')];var _0x1e8b46=isPreviewCampaign(_0x3ed22e);if(!isQueueCampaignActive(_0x3ed22e)){if(_0x1e8b46){_0x341ed1=CAMPAIGN_STATUS['INACTIVE'];}else{if(_0x3ed22e[_0xb258('0x25')]===0x0&&_0x3ed22e[_0xb258('0x21')]===0x0&&_0x3ed22e[_0xb258('0x23')]===0x0&&(_0x3ed22e['pTalking']||0x0)===0x0){_0x341ed1=CAMPAIGN_STATUS[_0xb258('0x37')];}else{_0x341ed1=CAMPAIGN_STATUS[_0xb258('0x38')];}}}else if(_0x3ed22e[_0xb258('0x1e')]===0x0){_0x341ed1=CAMPAIGN_STATUS[_0xb258('0x39')];}else if(!checkAnyValidTrunk(_0x3ed22e,_0x204308)){_0x341ed1=CAMPAIGN_STATUS[_0xb258('0x3a')];}else if(!isPreviewCampaign(_0x3ed22e)){var _0x191ff4=checkAnyValidQueueCampaignInterval(_0x3ed22e);if(_0x191ff4){_0x341ed1=_0x191ff4;}}return _0x341ed1;}exports[_0xb258('0x3b')]=getQueueCampaignStatusMessage;function getQueueCampaignActiveStatusMessage(_0x112fee){var _0x14a71a=CAMPAIGN_STATUS['DISACTIVED'];if(_0x112fee[_0xb258('0x25')]===0x0&&_0x112fee['talking']===0x0&&_0x112fee[_0xb258('0x23')]===0x0&&(_0x112fee[_0xb258('0x22')]||0x0)===0x0){_0x14a71a=CAMPAIGN_STATUS[_0xb258('0x37')];}return _0x14a71a;}exports[_0xb258('0x3c')]=getQueueCampaignActiveStatusMessage;function extractCalleridName(_0x24c43e){var _0x442f94=_0x24c43e[_0xb258('0x3d')](/"(.*?)"/);return _0x442f94?_0x442f94[0x1]:_0x24c43e;}exports[_0xb258('0x3e')]=extractCalleridName;function getCallerId(_0x5ed2a1,_0x29167e,_0x97dc15){if(!_['isUndefined'](_0x97dc15)&&typeof _0x97dc15===_0xb258('0x3f')&&!_[_0xb258('0x2e')](_0x97dc15)){if(!_[_0xb258('0x40')](_0x29167e)&&typeof _0x29167e===_0xb258('0x3f')&&!_[_0xb258('0x2e')](_0x29167e)){return util[_0xb258('0x41')]('\x22%s\x22\x20<%s>',_0x29167e,_0x97dc15);}return util[_0xb258('0x41')](_0xb258('0x42'),_0x97dc15,_0x97dc15);}if(!_[_0xb258('0x40')](_0x5ed2a1)&&typeof _0x5ed2a1==='string'&&!_[_0xb258('0x2e')](_0x5ed2a1)){return _0x5ed2a1;}return _0xb258('0x43');}exports[_0xb258('0x44')]=getCallerId;function getCallerIdRandom(_0xccd649,_0x58b5f3){var _0xd28c0b;var _0x3db1d7;var _0x4508b1;if(_0x58b5f3<=0x0){_0x58b5f3=0x1;}_0xd28c0b=new RegExp('\x5cw{0,'+_0x58b5f3+'}$');_0x3db1d7=Math[_0xb258('0x45')](0xa,_0x58b5f3-0x1);_0x4508b1=Math[_0xb258('0x45')](0xa,_0x58b5f3)-0x1;return util[_0xb258('0x41')]('%s',_[_0xb258('0x46')](_0xccd649,_0xd28c0b,_[_0xb258('0x47')](_0x3db1d7,_0x4508b1)['toString']()));}exports[_0xb258('0x48')]=getCallerIdRandom;function decrementOriginate(_0x838f95){if(_0x838f95[_0xb258('0x25')]&&_0x838f95[_0xb258('0x25')]>0x0){_0x838f95[_0xb258('0x25')]-=0x1;}else{logger[_0xb258('0x49')](_0xb258('0x4a'));}}exports[_0xb258('0x4b')]=decrementOriginate;function checkContactEmpty(_0x46e052){return _0x46e052&&_0x46e052[_0xb258('0x4c')]>0x0;}exports[_0xb258('0x4d')]=checkContactEmpty;function erlangb(_0xa3c7b0,_0x1d5f12){if(_0x1d5f12===0x0){return 0x0;}var _0x41d84a=0x1;for(var _0x5e0c1c=0x1;_0x5e0c1c<=_0x1d5f12;_0x5e0c1c+=0x1){_0x41d84a=0x1+_0x41d84a*_0x5e0c1c/_0xa3c7b0;}return 0x1/_0x41d84a;}exports[_0xb258('0x4e')]=erlangb;function checkContactLowerLimitOriginate(_0x2a4119,_0x8fac16,_0x4aa5d3){if(_0x8fac16>_0x4aa5d3){for(var _0x5d5d58=0x0;_0x5d5d58<_0x8fac16-_0x4aa5d3;_0x5d5d58+=0x1){decrementOriginate(_0x2a4119);}}}exports[_0xb258('0x4f')]=checkContactLowerLimitOriginate;function setXMDContactVariables(_0x90e597){var _0x31e9a6={};var _0x46d5a7=['id',_0xb258('0x50'),'tags',_0xb258('0x51')];const _0x41b80f=0xfa;if(_0x90e597){for(var _0x2832a1 in _0x90e597){if(typeof _0x90e597[_0x2832a1]!==_0xb258('0x52')){if(!_[_0xb258('0x29')](_0x90e597[_0x2832a1])&&!_0x46d5a7[_0xb258('0x34')](_0x2832a1)){if(_0x2832a1===_0xb258('0x53')&&_0x90e597[_0x2832a1]['length']>_0x41b80f){_0x31e9a6['XMD-'+_0x2832a1[_0xb258('0x54')]()]=_0x90e597[_0x2832a1][_0xb258('0x55')]()[_0xb258('0x56')](0x0,_0x41b80f);}else{_0x31e9a6[_0xb258('0x57')+_0x2832a1[_0xb258('0x54')]()]=_0x90e597[_0x2832a1];}}}}}return _0x31e9a6;}exports[_0xb258('0x58')]=setXMDContactVariables;