7f979d6f141f8e425560abffd3fb299e28761b43
[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 _0x0a8e=['match','isUndefined','string','format','\x22%s\x22\x20<%s>','getCallerId','\x5cw{0,','pow','replace','random','getCallerIdRandom','error','[decrementOriginate]\x20queue\x20originate\x20value\x20is\x20negative','decrementOriginate','length','erlangb','checkContactLowerLimitOriginate','description','tags','updatedAt','undefined','%s%s','XMD-','toUpperCase','setXMDContactVariables','lodash','moment','../../../../config/logger','../../../../config/environment/shared','timezones','BLACKLIST','RESCHEDULED_CONTACTS','DEACTIVATED','INTERVAL_IS_EMPTY','NOT_ACTIVE','AVAILABLE_CONTACTS_FINISHED','INTERVAL_IS_NULL','GLOBAL_INTERVAL_IS_OVERTIME','RECALLINQUEUE','RUNNING','TIMEZONE_UNKNOW','CAMPAIGN_STATUS','dialMethod','preview','isPreviewCampaign','ivr','isIVRCampaign','type','dialActive','isQueueCampaignActive','active','milliseconds','diff','getSeconds','message','available','loggedIn','loggedInDb','paused','talking','pTalking','waiting','inUse','originated','Trunk','name','dialTimezone','isNil','dialGlobalInterval','Interval','NULL_INTERVAL','isEmpty','Intervals','EMPTY_INTERVAL','UNKNOWN_TIMEZONE','reachable','unmonitored','includes','status','TrunkBackup','ACTIVE','INACTIVE','NO_AGENTS_LOGGED','UNREACHABLE_TRUNK','getQueueCampaignStatusMessage','DISACTIVED','getQueueCampaignActiveStatusMessage'];(function(_0x2dc37d,_0x1fa435){var _0x1059d8=function(_0x43734e){while(--_0x43734e){_0x2dc37d['push'](_0x2dc37d['shift']());}};_0x1059d8(++_0x1fa435);}(_0x0a8e,0xc7));var _0xe0a8=function(_0x2fa143,_0x4c4301){_0x2fa143=_0x2fa143-0x0;var _0x5b32cb=_0x0a8e[_0x2fa143];return _0x5b32cb;};'use strict';var _=require(_0xe0a8('0x0'));var moment=require(_0xe0a8('0x1'));var util=require('util');var logger=require(_0xe0a8('0x2'))('dialer');var timezones=require(_0xe0a8('0x3'))[_0xe0a8('0x4')];var CAMPAIGN_STATUS={'ACTIVE':'ACTIVE','BLACKLIST':_0xe0a8('0x5'),'CONTACTS_RESCHEDULED':_0xe0a8('0x6'),'DEACTIVATED':_0xe0a8('0x7'),'DISACTIVED':'IS_DISACTIVED','EMPTY_INTERVAL':_0xe0a8('0x8'),'INACTIVE':_0xe0a8('0x9'),'NO_AGENTS_LOGGED':'AGENTS_NOT_LOGGED','NO_AVAILABLE_CONTACTS':_0xe0a8('0xa'),'NULL_INTERVAL':_0xe0a8('0xb'),'OVERTIME_INTERVAL':'INTERVAL_IS_OVERTIME','OVERTIME_GLOBAL_INTERVAL':_0xe0a8('0xc'),'QUEUE_RECALL':_0xe0a8('0xd'),'RECALL_TIMEOUT':'RECALLFAILEDTIMEOUT','RUNNING':_0xe0a8('0xe'),'UNKNOWN_TIMEZONE':_0xe0a8('0xf'),'UNREACHABLE_TRUNK':'TRUNK_IS_NOT_REACHABLE'};exports[_0xe0a8('0x10')]=CAMPAIGN_STATUS;function isPreviewCampaign(_0x259ec3){return _0x259ec3[_0xe0a8('0x11')]===_0xe0a8('0x12');}exports[_0xe0a8('0x13')]=isPreviewCampaign;function isIVRCampaign(_0x47fb19){return _0x47fb19['type']===_0xe0a8('0x14');}exports[_0xe0a8('0x15')]=isIVRCampaign;function isOutboundQueue(_0x8c7deb){return _0x8c7deb[_0xe0a8('0x16')]==='outbound';}exports['isOutboundQueue']=isOutboundQueue;function isQueueCampaignActive(_0x4e64b0){return _0x4e64b0[_0xe0a8('0x17')];}exports[_0xe0a8('0x18')]=isQueueCampaignActive;function isIVRCampaignActive(_0x2a21b5){return _0x2a21b5[_0xe0a8('0x19')];}exports['isIVRCampaignActive']=isIVRCampaignActive;function getSeconds(_0x3c81be,_0x9124bc){var _0x5ba630=moment(_0x3c81be)[_0xe0a8('0x1a')](0x0);var _0x1b030f=moment(_0x9124bc)['milliseconds'](0x0);return _0x5ba630[_0xe0a8('0x1b')](_0x1b030f,'seconds');}exports[_0xe0a8('0x1c')]=getSeconds;function hasQueueCampaignDataChanged(_0x2d2988,_0x9d7ae1){var _0x4bc7aa=![];var _0x5f2e00=_0x2d2988[_0xe0a8('0x11')]!==_0x9d7ae1[_0xe0a8('0x11')]||_0x2d2988['dialActive']!==_0x9d7ae1['dialActive']||_0x2d2988[_0xe0a8('0x1d')]!==_0x9d7ae1[_0xe0a8('0x1d')];var _0x230cbf=_0x2d2988[_0xe0a8('0x1e')]!==_0x9d7ae1['available']||_0x2d2988[_0xe0a8('0x1f')]!==_0x9d7ae1[_0xe0a8('0x1f')]||_0x2d2988[_0xe0a8('0x20')]!==_0x9d7ae1[_0xe0a8('0x20')]||_0x2d2988[_0xe0a8('0x21')]!==_0x9d7ae1[_0xe0a8('0x21')]||_0x2d2988['talking']!==_0x9d7ae1[_0xe0a8('0x22')]||_0x2d2988[_0xe0a8('0x23')]!==_0x9d7ae1['pTalking']||_0x2d2988['waiting']!==_0x9d7ae1[_0xe0a8('0x24')]||_0x2d2988[_0xe0a8('0x25')]!==_0x9d7ae1[_0xe0a8('0x25')]||_0x2d2988[_0xe0a8('0x26')]!==_0x9d7ae1[_0xe0a8('0x26')];if(_0x2d2988['Trunk']&&_0x9d7ae1[_0xe0a8('0x27')]){_0x4bc7aa=_0x2d2988['Trunk'][_0xe0a8('0x28')]!==_0x9d7ae1[_0xe0a8('0x27')][_0xe0a8('0x28')]||_0x2d2988[_0xe0a8('0x27')][_0xe0a8('0x19')]!==_0x9d7ae1[_0xe0a8('0x27')][_0xe0a8('0x19')];}return _0x5f2e00||_0x230cbf||_0x4bc7aa;}exports['hasQueueCampaignDataChanged']=hasQueueCampaignDataChanged;function checkAnyValidQueueCampaignInterval(_0x23175b){var _0x3cd290=null;var _0x1cd500=_0x23175b[_0xe0a8('0x29')];if(_[_0xe0a8('0x2a')](_0x23175b[_0xe0a8('0x2b')])||_[_0xe0a8('0x2a')](_0x23175b['Interval'])||_['isNil'](_0x23175b[_0xe0a8('0x2c')]['Intervals'])){_0x3cd290=CAMPAIGN_STATUS[_0xe0a8('0x2d')];}else if(_[_0xe0a8('0x2e')](_0x23175b[_0xe0a8('0x2b')])||_[_0xe0a8('0x2e')](_0x23175b[_0xe0a8('0x2c')][_0xe0a8('0x2f')])){_0x3cd290=CAMPAIGN_STATUS[_0xe0a8('0x30')];}else if(_0x1cd500&&!timezones[_0x1cd500]){_0x3cd290=CAMPAIGN_STATUS[_0xe0a8('0x31')];}return _0x3cd290;}function checkAnyValidTrunk(_0x4af1b4,_0x4ca6b0){var _0x4056d9=null;var _0x1a7d50='SIP/';var _0x52a7d1=[_0xe0a8('0x32'),_0xe0a8('0x33')];var _0x44d3f0=!![];if(_0x4af1b4['Trunk']&&_0x4af1b4['Trunk'][_0xe0a8('0x19')]){_0x1a7d50+=_0x4af1b4[_0xe0a8('0x27')][_0xe0a8('0x28')];_0x4056d9=_0x4ca6b0[_0x1a7d50];_0x44d3f0=_0x52a7d1[_0xe0a8('0x34')](_0x4056d9[_0xe0a8('0x35')]);}else if(_0x4af1b4[_0xe0a8('0x36')]&&_0x4af1b4[_0xe0a8('0x36')][_0xe0a8('0x19')]){_0x1a7d50+=_0x4af1b4[_0xe0a8('0x36')][_0xe0a8('0x28')];_0x4056d9=_0x4ca6b0[_0x1a7d50];_0x44d3f0=_0x52a7d1[_0xe0a8('0x34')](_0x4056d9[_0xe0a8('0x35')]);}return _0x44d3f0;}function getQueueCampaignStatusMessage(_0x23e9d5,_0x153dd5){var _0x2b8207=CAMPAIGN_STATUS[_0xe0a8('0x37')];var _0x38e7b6=isPreviewCampaign(_0x23e9d5);if(!isQueueCampaignActive(_0x23e9d5)){if(_0x38e7b6){_0x2b8207=CAMPAIGN_STATUS[_0xe0a8('0x38')];}else{if(_0x23e9d5[_0xe0a8('0x26')]===0x0&&_0x23e9d5[_0xe0a8('0x22')]===0x0&&_0x23e9d5['waiting']===0x0&&(_0x23e9d5[_0xe0a8('0x23')]||0x0)===0x0){_0x2b8207=CAMPAIGN_STATUS[_0xe0a8('0x38')];}else{_0x2b8207=CAMPAIGN_STATUS['DISACTIVED'];}}}else if(_0x23e9d5['loggedIn']===0x0){_0x2b8207=CAMPAIGN_STATUS[_0xe0a8('0x39')];}else if(!checkAnyValidTrunk(_0x23e9d5,_0x153dd5)){_0x2b8207=CAMPAIGN_STATUS[_0xe0a8('0x3a')];}else if(!isPreviewCampaign(_0x23e9d5)){var _0x5a7193=checkAnyValidQueueCampaignInterval(_0x23e9d5);if(_0x5a7193){_0x2b8207=_0x5a7193;}}return _0x2b8207;}exports[_0xe0a8('0x3b')]=getQueueCampaignStatusMessage;function getQueueCampaignActiveStatusMessage(_0x13d6b1){var _0x4686bb=CAMPAIGN_STATUS[_0xe0a8('0x3c')];if(_0x13d6b1[_0xe0a8('0x26')]===0x0&&_0x13d6b1[_0xe0a8('0x22')]===0x0&&_0x13d6b1[_0xe0a8('0x24')]===0x0&&(_0x13d6b1['pTalking']||0x0)===0x0){_0x4686bb=CAMPAIGN_STATUS[_0xe0a8('0x38')];}return _0x4686bb;}exports[_0xe0a8('0x3d')]=getQueueCampaignActiveStatusMessage;function extractCalleridName(_0xd8fd51){var _0x45cfca=_0xd8fd51[_0xe0a8('0x3e')](/"(.*?)"/);return _0x45cfca?_0x45cfca[0x1]:_0xd8fd51;}exports['extractCalleridName']=extractCalleridName;function getCallerId(_0x2633ba,_0x561261,_0x9f1ed5){if(!_[_0xe0a8('0x3f')](_0x9f1ed5)&&typeof _0x9f1ed5===_0xe0a8('0x40')&&!_[_0xe0a8('0x2e')](_0x9f1ed5)){if(!_[_0xe0a8('0x3f')](_0x561261)&&typeof _0x561261===_0xe0a8('0x40')&&!_[_0xe0a8('0x2e')](_0x561261)){return util[_0xe0a8('0x41')](_0xe0a8('0x42'),_0x561261,_0x9f1ed5);}return util[_0xe0a8('0x41')]('\x22%s\x22\x20<%s>',_0x9f1ed5,_0x9f1ed5);}if(!_['isUndefined'](_0x2633ba)&&typeof _0x2633ba===_0xe0a8('0x40')&&!_[_0xe0a8('0x2e')](_0x2633ba)){return _0x2633ba;}return'\x22\x22\x20<>';}exports[_0xe0a8('0x43')]=getCallerId;function getCallerIdRandom(_0x3db294,_0x1a282e){var _0x569b92;var _0x23f632;var _0x5e0d85;if(_0x1a282e<=0x0){_0x1a282e=0x1;}_0x569b92=new RegExp(_0xe0a8('0x44')+_0x1a282e+'}$');_0x23f632=Math[_0xe0a8('0x45')](0xa,_0x1a282e-0x1);_0x5e0d85=Math[_0xe0a8('0x45')](0xa,_0x1a282e)-0x1;return util['format']('%s',_[_0xe0a8('0x46')](_0x3db294,_0x569b92,_[_0xe0a8('0x47')](_0x23f632,_0x5e0d85)['toString']()));}exports[_0xe0a8('0x48')]=getCallerIdRandom;function decrementOriginate(_0x1ce4a2){if(_0x1ce4a2[_0xe0a8('0x26')]&&_0x1ce4a2[_0xe0a8('0x26')]>0x0){_0x1ce4a2[_0xe0a8('0x26')]-=0x1;}else{logger[_0xe0a8('0x49')](_0xe0a8('0x4a'));}}exports[_0xe0a8('0x4b')]=decrementOriginate;function checkContactEmpty(_0x22af0c){return _0x22af0c&&_0x22af0c[_0xe0a8('0x4c')]>0x0;}exports['checkContactEmpty']=checkContactEmpty;function erlangb(_0x1fe0b1,_0x581eef){if(_0x581eef===0x0){return 0x0;}var _0x2ddef1=0x1;for(var _0x45bc20=0x1;_0x45bc20<=_0x581eef;_0x45bc20+=0x1){_0x2ddef1=0x1+_0x2ddef1*_0x45bc20/_0x1fe0b1;}return 0x1/_0x2ddef1;}exports[_0xe0a8('0x4d')]=erlangb;function checkContactLowerLimitOriginate(_0x1d3152,_0xf452b0,_0x23ee84){if(_0xf452b0>_0x23ee84){for(var _0x4250cd=0x0;_0x4250cd<_0xf452b0-_0x23ee84;_0x4250cd+=0x1){decrementOriginate(_0x1d3152);}}}exports[_0xe0a8('0x4e')]=checkContactLowerLimitOriginate;function setXMDContactVariables(_0x57d2c9){var _0x343db2={};var _0x539856=['id','createdAt',_0xe0a8('0x4f'),_0xe0a8('0x50'),_0xe0a8('0x51')];if(_0x57d2c9){for(var _0x2e705e in _0x57d2c9){if(typeof _0x57d2c9[_0x2e705e]!==_0xe0a8('0x52')){if(!_[_0xe0a8('0x2a')](_0x57d2c9[_0x2e705e])&&!_0x539856[_0xe0a8('0x34')](_0x2e705e)){_0x343db2[util[_0xe0a8('0x41')](_0xe0a8('0x53'),_0xe0a8('0x54'),_0x2e705e[_0xe0a8('0x55')]())]=_0x57d2c9[_0x2e705e];}}}}return _0x343db2;}exports[_0xe0a8('0x56')]=setXMDContactVariables;