Built motion from commit 00bf23f6.|2.6.16
[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 _0x32e0=['ivr','isIVRCampaign','outbound','isOutboundQueue','isQueueCampaignActive','active','isIVRCampaignActive','milliseconds','diff','seconds','dialActive','message','available','loggedIn','loggedInDb','paused','talking','pTalking','waiting','originated','Trunk','name','hasQueueCampaignDataChanged','dialTimezone','isNil','dialGlobalInterval','Interval','Intervals','NULL_INTERVAL','isEmpty','EMPTY_INTERVAL','SIP/','unmonitored','status','TrunkBackup','includes','DISACTIVED','UNREACHABLE_TRUNK','getQueueCampaignStatusMessage','INACTIVE','getQueueCampaignActiveStatusMessage','match','isUndefined','string','format','\x22%s\x22\x20<%s>','\x22\x22\x20<>','getCallerId','pow','replace','random','toString','getCallerIdRandom','error','[decrementOriginate]\x20queue\x20originate\x20value\x20is\x20negative','length','checkContactEmpty','checkContactLowerLimitOriginate','description','tags','updatedAt','undefined','%s%s','XMD-','toUpperCase','setXMDContactVariables','lodash','moment','util','dialer','timezones','ACTIVE','BLACKLIST','RESCHEDULED_CONTACTS','IS_DISACTIVED','NOT_ACTIVE','AGENTS_NOT_LOGGED','AVAILABLE_CONTACTS_FINISHED','INTERVAL_IS_NULL','RUNNING','TIMEZONE_UNKNOW','CAMPAIGN_STATUS','dialMethod','preview','isPreviewCampaign','type'];(function(_0xafadef,_0x2a5075){var _0x2d6530=function(_0x2307a1){while(--_0x2307a1){_0xafadef['push'](_0xafadef['shift']());}};_0x2d6530(++_0x2a5075);}(_0x32e0,0x19a));var _0x032e=function(_0x11155f,_0x57b687){_0x11155f=_0x11155f-0x0;var _0xd07e48=_0x32e0[_0x11155f];return _0xd07e48;};'use strict';var _=require(_0x032e('0x0'));var moment=require(_0x032e('0x1'));var util=require(_0x032e('0x2'));var logger=require('../../../../config/logger')(_0x032e('0x3'));var timezones=require('../../../../config/environment/shared')[_0x032e('0x4')];var CAMPAIGN_STATUS={'ACTIVE':_0x032e('0x5'),'BLACKLIST':_0x032e('0x6'),'CONTACTS_RESCHEDULED':_0x032e('0x7'),'DEACTIVATED':'DEACTIVATED','DISACTIVED':_0x032e('0x8'),'EMPTY_INTERVAL':'INTERVAL_IS_EMPTY','INACTIVE':_0x032e('0x9'),'NO_AGENTS_LOGGED':_0x032e('0xa'),'NO_AVAILABLE_CONTACTS':_0x032e('0xb'),'NULL_INTERVAL':_0x032e('0xc'),'OVERTIME_INTERVAL':'INTERVAL_IS_OVERTIME','OVERTIME_GLOBAL_INTERVAL':'GLOBAL_INTERVAL_IS_OVERTIME','QUEUE_RECALL':'RECALLINQUEUE','RECALL_TIMEOUT':'RECALLFAILEDTIMEOUT','RUNNING':_0x032e('0xd'),'UNKNOWN_TIMEZONE':_0x032e('0xe'),'UNREACHABLE_TRUNK':'TRUNK_IS_NOT_REACHABLE'};exports[_0x032e('0xf')]=CAMPAIGN_STATUS;function isPreviewCampaign(_0x1034a3){return _0x1034a3[_0x032e('0x10')]===_0x032e('0x11');}exports[_0x032e('0x12')]=isPreviewCampaign;function isIVRCampaign(_0xeb1c9f){return _0xeb1c9f[_0x032e('0x13')]===_0x032e('0x14');}exports[_0x032e('0x15')]=isIVRCampaign;function isOutboundQueue(_0x299e15){return _0x299e15['type']===_0x032e('0x16');}exports[_0x032e('0x17')]=isOutboundQueue;function isQueueCampaignActive(_0x502f42){return _0x502f42['dialActive'];}exports[_0x032e('0x18')]=isQueueCampaignActive;function isIVRCampaignActive(_0x2a25db){return _0x2a25db[_0x032e('0x19')];}exports[_0x032e('0x1a')]=isIVRCampaignActive;function getSeconds(_0x3ecce9,_0xbbbe53){var _0x2ed146=moment(_0x3ecce9)['milliseconds'](0x0);var _0xc0cb6=moment(_0xbbbe53)[_0x032e('0x1b')](0x0);return _0x2ed146[_0x032e('0x1c')](_0xc0cb6,_0x032e('0x1d'));}exports['getSeconds']=getSeconds;function hasQueueCampaignDataChanged(_0x271823,_0x824d62){var _0x4f7e04=![];var _0x52713d=_0x271823[_0x032e('0x10')]!==_0x824d62['dialMethod']||_0x271823[_0x032e('0x1e')]!==_0x824d62['dialActive']||_0x271823[_0x032e('0x1f')]!==_0x824d62['message'];var _0xf8decc=_0x271823[_0x032e('0x20')]!==_0x824d62['available']||_0x271823[_0x032e('0x21')]!==_0x824d62[_0x032e('0x21')]||_0x271823[_0x032e('0x22')]!==_0x824d62[_0x032e('0x22')]||_0x271823[_0x032e('0x23')]!==_0x824d62[_0x032e('0x23')]||_0x271823[_0x032e('0x24')]!==_0x824d62[_0x032e('0x24')]||_0x271823[_0x032e('0x25')]!==_0x824d62[_0x032e('0x25')]||_0x271823[_0x032e('0x26')]!==_0x824d62['waiting']||_0x271823['inUse']!==_0x824d62['inUse']||_0x271823[_0x032e('0x27')]!==_0x824d62[_0x032e('0x27')];if(_0x271823[_0x032e('0x28')]&&_0x824d62[_0x032e('0x28')]){_0x4f7e04=_0x271823[_0x032e('0x28')][_0x032e('0x29')]!==_0x824d62[_0x032e('0x28')][_0x032e('0x29')]||_0x271823['Trunk'][_0x032e('0x19')]!==_0x824d62['Trunk'][_0x032e('0x19')];}return _0x52713d||_0xf8decc||_0x4f7e04;}exports[_0x032e('0x2a')]=hasQueueCampaignDataChanged;function checkAnyValidQueueCampaignInterval(_0x53f922){var _0x242b2f=null;var _0x1e2b1b=_0x53f922[_0x032e('0x2b')];if(_[_0x032e('0x2c')](_0x53f922[_0x032e('0x2d')])||_[_0x032e('0x2c')](_0x53f922[_0x032e('0x2e')])||_[_0x032e('0x2c')](_0x53f922[_0x032e('0x2e')][_0x032e('0x2f')])){_0x242b2f=CAMPAIGN_STATUS[_0x032e('0x30')];}else if(_[_0x032e('0x31')](_0x53f922[_0x032e('0x2d')])||_[_0x032e('0x31')](_0x53f922[_0x032e('0x2e')][_0x032e('0x2f')])){_0x242b2f=CAMPAIGN_STATUS[_0x032e('0x32')];}else if(_0x1e2b1b&&!timezones[_0x1e2b1b]){_0x242b2f=CAMPAIGN_STATUS['UNKNOWN_TIMEZONE'];}return _0x242b2f;}function checkAnyValidTrunk(_0x3fb1fd,_0x8dfa7a){var _0x4ac1c9=null;var _0x666762=_0x032e('0x33');var _0x48ec6c=['reachable',_0x032e('0x34')];var _0x5dafe7=!![];if(_0x3fb1fd[_0x032e('0x28')]&&_0x3fb1fd[_0x032e('0x28')][_0x032e('0x19')]){_0x666762+=_0x3fb1fd[_0x032e('0x28')][_0x032e('0x29')];_0x4ac1c9=_0x8dfa7a[_0x666762];_0x5dafe7=_0x48ec6c['includes'](_0x4ac1c9[_0x032e('0x35')]);}else if(_0x3fb1fd['TrunkBackup']&&_0x3fb1fd[_0x032e('0x36')][_0x032e('0x19')]){_0x666762+=_0x3fb1fd['TrunkBackup'][_0x032e('0x29')];_0x4ac1c9=_0x8dfa7a[_0x666762];_0x5dafe7=_0x48ec6c[_0x032e('0x37')](_0x4ac1c9['status']);}return _0x5dafe7;}function getQueueCampaignStatusMessage(_0x20b73e,_0x4ea4c4){var _0x3d1029=CAMPAIGN_STATUS[_0x032e('0x5')];var _0x300b03=isPreviewCampaign(_0x20b73e);if(!isQueueCampaignActive(_0x20b73e)){if(_0x300b03){_0x3d1029=CAMPAIGN_STATUS['INACTIVE'];}else{if(_0x20b73e[_0x032e('0x27')]===0x0&&_0x20b73e[_0x032e('0x24')]===0x0&&_0x20b73e['waiting']===0x0&&(_0x20b73e['pTalking']||0x0)===0x0){_0x3d1029=CAMPAIGN_STATUS['INACTIVE'];}else{_0x3d1029=CAMPAIGN_STATUS[_0x032e('0x38')];}}}else if(_0x20b73e[_0x032e('0x21')]===0x0){_0x3d1029=CAMPAIGN_STATUS['NO_AGENTS_LOGGED'];}else if(!checkAnyValidTrunk(_0x20b73e,_0x4ea4c4)){_0x3d1029=CAMPAIGN_STATUS[_0x032e('0x39')];}else if(!isPreviewCampaign(_0x20b73e)){var _0xcf988c=checkAnyValidQueueCampaignInterval(_0x20b73e);if(_0xcf988c){_0x3d1029=_0xcf988c;}}return _0x3d1029;}exports[_0x032e('0x3a')]=getQueueCampaignStatusMessage;function getQueueCampaignActiveStatusMessage(_0x30a4e8){var _0x3c2554=CAMPAIGN_STATUS[_0x032e('0x38')];if(_0x30a4e8['originated']===0x0&&_0x30a4e8[_0x032e('0x24')]===0x0&&_0x30a4e8[_0x032e('0x26')]===0x0&&(_0x30a4e8['pTalking']||0x0)===0x0){_0x3c2554=CAMPAIGN_STATUS[_0x032e('0x3b')];}return _0x3c2554;}exports[_0x032e('0x3c')]=getQueueCampaignActiveStatusMessage;function extractCalleridName(_0x3e70e5){var _0x2ae058=_0x3e70e5[_0x032e('0x3d')](/"(.*?)"/);return _0x2ae058?_0x2ae058[0x1]:_0x3e70e5;}exports['extractCalleridName']=extractCalleridName;function getCallerId(_0x40fb40,_0x385be2,_0x366a1c){if(!_[_0x032e('0x3e')](_0x366a1c)&&typeof _0x366a1c===_0x032e('0x3f')&&!_[_0x032e('0x31')](_0x366a1c)){if(!_[_0x032e('0x3e')](_0x385be2)&&typeof _0x385be2==='string'&&!_[_0x032e('0x31')](_0x385be2)){return util[_0x032e('0x40')](_0x032e('0x41'),_0x385be2,_0x366a1c);}return util[_0x032e('0x40')](_0x032e('0x41'),_0x366a1c,_0x366a1c);}if(!_[_0x032e('0x3e')](_0x40fb40)&&typeof _0x40fb40===_0x032e('0x3f')&&!_['isEmpty'](_0x40fb40)){return _0x40fb40;}return _0x032e('0x42');}exports[_0x032e('0x43')]=getCallerId;function getCallerIdRandom(_0x2bcab3,_0x26534b){var _0x474158;var _0xff5ccb;var _0x64e471;if(_0x26534b<=0x0){_0x26534b=0x1;}_0x474158=new RegExp('\x5cw{0,'+_0x26534b+'}$');_0xff5ccb=Math['pow'](0xa,_0x26534b-0x1);_0x64e471=Math[_0x032e('0x44')](0xa,_0x26534b)-0x1;return util[_0x032e('0x40')]('%s',_[_0x032e('0x45')](_0x2bcab3,_0x474158,_[_0x032e('0x46')](_0xff5ccb,_0x64e471)[_0x032e('0x47')]()));}exports[_0x032e('0x48')]=getCallerIdRandom;function decrementOriginate(_0x296d8c){if(_0x296d8c[_0x032e('0x27')]&&_0x296d8c[_0x032e('0x27')]>0x0){_0x296d8c[_0x032e('0x27')]-=0x1;}else{logger[_0x032e('0x49')](_0x032e('0x4a'));}}exports['decrementOriginate']=decrementOriginate;function checkContactEmpty(_0xe4ba0d){return _0xe4ba0d&&_0xe4ba0d[_0x032e('0x4b')]>0x0;}exports[_0x032e('0x4c')]=checkContactEmpty;function erlangb(_0x349223,_0x20e60a){if(_0x20e60a===0x0){return 0x0;}var _0x4b0402=0x1;for(var _0x4fb868=0x1;_0x4fb868<=_0x20e60a;_0x4fb868+=0x1){_0x4b0402=0x1+_0x4b0402*_0x4fb868/_0x349223;}return 0x1/_0x4b0402;}exports['erlangb']=erlangb;function checkContactLowerLimitOriginate(_0x2f7937,_0x55015d,_0xdcffc){if(_0x55015d>_0xdcffc){for(var _0x1858f1=0x0;_0x1858f1<_0x55015d-_0xdcffc;_0x1858f1+=0x1){decrementOriginate(_0x2f7937);}}}exports[_0x032e('0x4d')]=checkContactLowerLimitOriginate;function setXMDContactVariables(_0x4ef16b){var _0x3154d8={};var _0x2d8c9b=['id','createdAt',_0x032e('0x4e'),_0x032e('0x4f'),_0x032e('0x50')];if(_0x4ef16b){for(var _0x25682f in _0x4ef16b){if(typeof _0x4ef16b[_0x25682f]!==_0x032e('0x51')){if(!_[_0x032e('0x2c')](_0x4ef16b[_0x25682f])&&!_0x2d8c9b[_0x032e('0x37')](_0x25682f)){_0x3154d8[util[_0x032e('0x40')](_0x032e('0x52'),_0x032e('0x53'),_0x25682f[_0x032e('0x54')]())]=_0x4ef16b[_0x25682f];}}}}return _0x3154d8;}exports[_0x032e('0x55')]=setXMDContactVariables;