Built motion from commit b0a9a629.|2.6.33
[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 _0x88d6=['TRUNK_IS_NOT_REACHABLE','CAMPAIGN_STATUS','dialMethod','isPreviewCampaign','type','ivr','isIVRCampaign','outbound','isOutboundQueue','dialActive','active','milliseconds','diff','seconds','getSeconds','message','available','loggedIn','loggedInDb','paused','talking','pTalking','waiting','inUse','Trunk','name','hasQueueCampaignDataChanged','isNil','Interval','isEmpty','dialGlobalInterval','Intervals','UNKNOWN_TIMEZONE','reachable','includes','status','TrunkBackup','ACTIVE','originated','INACTIVE','DISACTIVED','NO_AGENTS_LOGGED','UNREACHABLE_TRUNK','getQueueCampaignStatusMessage','getQueueCampaignActiveStatusMessage','match','extractCalleridName','isUndefined','string','format','\x22%s\x22\x20<%s>','getCallerId','\x5cw{0,','pow','replace','random','getCallerIdRandom','error','[decrementOriginate]\x20queue\x20originate\x20value','length','erlangb','[checkContactLowerLimitOriginate]\x20','checkContactLowerLimitOriginate','createdAt','updatedAt','undefined','description','XMD-','toString','substring','toUpperCase','setXMDContactVariables','lodash','util','../../../../config/logger','dialer','../../../../config/environment/shared','timezones','BLACKLIST','RESCHEDULED_CONTACTS','DEACTIVATED','INTERVAL_IS_EMPTY','NOT_ACTIVE','AGENTS_NOT_LOGGED','INTERVAL_IS_NULL','INTERVAL_IS_OVERTIME','GLOBAL_INTERVAL_IS_OVERTIME','RECALLINQUEUE','RECALLFAILEDTIMEOUT','RUNNING'];(function(_0x430794,_0x53b795){var _0x5959c0=function(_0x5c18ae){while(--_0x5c18ae){_0x430794['push'](_0x430794['shift']());}};_0x5959c0(++_0x53b795);}(_0x88d6,0xa2));var _0x688d=function(_0x1fd371,_0x4e27a0){_0x1fd371=_0x1fd371-0x0;var _0x34a6f7=_0x88d6[_0x1fd371];return _0x34a6f7;};'use strict';var _=require(_0x688d('0x0'));var moment=require('moment');var util=require(_0x688d('0x1'));var logger=require(_0x688d('0x2'))(_0x688d('0x3'));var timezones=require(_0x688d('0x4'))[_0x688d('0x5')];var CAMPAIGN_STATUS={'ACTIVE':'ACTIVE','BLACKLIST':_0x688d('0x6'),'CONTACTS_RESCHEDULED':_0x688d('0x7'),'DEACTIVATED':_0x688d('0x8'),'DISACTIVED':'IS_DISACTIVED','EMPTY_INTERVAL':_0x688d('0x9'),'INACTIVE':_0x688d('0xa'),'NO_AGENTS_LOGGED':_0x688d('0xb'),'NO_AVAILABLE_CONTACTS':'AVAILABLE_CONTACTS_FINISHED','NULL_INTERVAL':_0x688d('0xc'),'OVERTIME_INTERVAL':_0x688d('0xd'),'OVERTIME_GLOBAL_INTERVAL':_0x688d('0xe'),'QUEUE_RECALL':_0x688d('0xf'),'RECALL_TIMEOUT':_0x688d('0x10'),'RUNNING':_0x688d('0x11'),'UNKNOWN_TIMEZONE':'TIMEZONE_UNKNOW','UNREACHABLE_TRUNK':_0x688d('0x12')};exports[_0x688d('0x13')]=CAMPAIGN_STATUS;function isPreviewCampaign(_0x2b9a72){return _0x2b9a72[_0x688d('0x14')]==='preview';}exports[_0x688d('0x15')]=isPreviewCampaign;function isIVRCampaign(_0x321a02){return _0x321a02[_0x688d('0x16')]===_0x688d('0x17');}exports[_0x688d('0x18')]=isIVRCampaign;function isOutboundQueue(_0x2bc4c7){return _0x2bc4c7[_0x688d('0x16')]===_0x688d('0x19');}exports[_0x688d('0x1a')]=isOutboundQueue;function isQueueCampaignActive(_0x2befbf){return _0x2befbf[_0x688d('0x1b')];}exports['isQueueCampaignActive']=isQueueCampaignActive;function isIVRCampaignActive(_0x5f25da){return _0x5f25da[_0x688d('0x1c')];}exports['isIVRCampaignActive']=isIVRCampaignActive;function getSeconds(_0x4ec887,_0x29c1fb){var _0x1e45a7=moment(_0x4ec887)['milliseconds'](0x0);var _0x28f586=moment(_0x29c1fb)[_0x688d('0x1d')](0x0);return _0x1e45a7[_0x688d('0x1e')](_0x28f586,_0x688d('0x1f'));}exports[_0x688d('0x20')]=getSeconds;function hasQueueCampaignDataChanged(_0x44d3d4,_0x1d887f){var _0x58b773=![];var _0x385399=_0x44d3d4[_0x688d('0x14')]!==_0x1d887f['dialMethod']||_0x44d3d4['dialActive']!==_0x1d887f[_0x688d('0x1b')]||_0x44d3d4[_0x688d('0x21')]!==_0x1d887f['message'];var _0x5b0120=_0x44d3d4[_0x688d('0x22')]!==_0x1d887f[_0x688d('0x22')]||_0x44d3d4[_0x688d('0x23')]!==_0x1d887f['loggedIn']||_0x44d3d4[_0x688d('0x24')]!==_0x1d887f[_0x688d('0x24')]||_0x44d3d4[_0x688d('0x25')]!==_0x1d887f[_0x688d('0x25')]||_0x44d3d4[_0x688d('0x26')]!==_0x1d887f['talking']||_0x44d3d4[_0x688d('0x27')]!==_0x1d887f[_0x688d('0x27')]||_0x44d3d4[_0x688d('0x28')]!==_0x1d887f[_0x688d('0x28')]||_0x44d3d4[_0x688d('0x29')]!==_0x1d887f['inUse']||_0x44d3d4['originated']!==_0x1d887f['originated'];if(_0x44d3d4[_0x688d('0x2a')]&&_0x1d887f[_0x688d('0x2a')]){_0x58b773=_0x44d3d4[_0x688d('0x2a')][_0x688d('0x2b')]!==_0x1d887f['Trunk'][_0x688d('0x2b')]||_0x44d3d4['Trunk']['active']!==_0x1d887f[_0x688d('0x2a')][_0x688d('0x1c')];}return _0x385399||_0x5b0120||_0x58b773;}exports[_0x688d('0x2c')]=hasQueueCampaignDataChanged;function checkAnyValidQueueCampaignInterval(_0x5e482a){var _0xbdc08e=null;var _0xb46309=_0x5e482a['dialTimezone'];if(_['isNil'](_0x5e482a['dialGlobalInterval'])||_[_0x688d('0x2d')](_0x5e482a[_0x688d('0x2e')])||_[_0x688d('0x2d')](_0x5e482a[_0x688d('0x2e')]['Intervals'])){_0xbdc08e=CAMPAIGN_STATUS['NULL_INTERVAL'];}else if(_[_0x688d('0x2f')](_0x5e482a[_0x688d('0x30')])||_['isEmpty'](_0x5e482a[_0x688d('0x2e')][_0x688d('0x31')])){_0xbdc08e=CAMPAIGN_STATUS['EMPTY_INTERVAL'];}else if(_0xb46309&&!timezones[_0xb46309]){_0xbdc08e=CAMPAIGN_STATUS[_0x688d('0x32')];}return _0xbdc08e;}function checkAnyValidTrunk(_0x4c5c7b,_0xbba6c6){var _0x37d570=null;var _0x11802b='SIP/';var _0x5df7d4=[_0x688d('0x33'),'unmonitored'];var _0x303b85=!![];if(_0x4c5c7b[_0x688d('0x2a')]&&_0x4c5c7b['Trunk'][_0x688d('0x1c')]){_0x11802b+=_0x4c5c7b[_0x688d('0x2a')][_0x688d('0x2b')];_0x37d570=_0xbba6c6[_0x11802b];_0x303b85=_0x5df7d4[_0x688d('0x34')](_0x37d570[_0x688d('0x35')]);}else if(_0x4c5c7b[_0x688d('0x36')]&&_0x4c5c7b['TrunkBackup']['active']){_0x11802b+=_0x4c5c7b[_0x688d('0x36')][_0x688d('0x2b')];_0x37d570=_0xbba6c6[_0x11802b];_0x303b85=_0x5df7d4[_0x688d('0x34')](_0x37d570[_0x688d('0x35')]);}return _0x303b85;}function getQueueCampaignStatusMessage(_0x5332c6,_0x2b3d5b){var _0x305ea5=CAMPAIGN_STATUS[_0x688d('0x37')];var _0x4599aa=isPreviewCampaign(_0x5332c6);if(!isQueueCampaignActive(_0x5332c6)){if(_0x4599aa){_0x305ea5=CAMPAIGN_STATUS['INACTIVE'];}else{if(_0x5332c6[_0x688d('0x38')]===0x0&&_0x5332c6[_0x688d('0x26')]===0x0&&_0x5332c6['waiting']===0x0&&(_0x5332c6['pTalking']||0x0)===0x0){_0x305ea5=CAMPAIGN_STATUS[_0x688d('0x39')];}else{_0x305ea5=CAMPAIGN_STATUS[_0x688d('0x3a')];}}}else if(_0x5332c6['loggedIn']===0x0){_0x305ea5=CAMPAIGN_STATUS[_0x688d('0x3b')];}else if(!checkAnyValidTrunk(_0x5332c6,_0x2b3d5b)){_0x305ea5=CAMPAIGN_STATUS[_0x688d('0x3c')];}else if(!isPreviewCampaign(_0x5332c6)){var _0x2a9ed7=checkAnyValidQueueCampaignInterval(_0x5332c6);if(_0x2a9ed7){_0x305ea5=_0x2a9ed7;}}return _0x305ea5;}exports[_0x688d('0x3d')]=getQueueCampaignStatusMessage;function getQueueCampaignActiveStatusMessage(_0x2320c4){var _0x2e96b4=CAMPAIGN_STATUS['DISACTIVED'];if(_0x2320c4['originated']===0x0&&_0x2320c4[_0x688d('0x26')]===0x0&&_0x2320c4[_0x688d('0x28')]===0x0&&(_0x2320c4['pTalking']||0x0)===0x0){_0x2e96b4=CAMPAIGN_STATUS[_0x688d('0x39')];}return _0x2e96b4;}exports[_0x688d('0x3e')]=getQueueCampaignActiveStatusMessage;function extractCalleridName(_0x53695f){var _0x55f4a4=_0x53695f[_0x688d('0x3f')](/"(.*?)"/);return _0x55f4a4?_0x55f4a4[0x1]:_0x53695f;}exports[_0x688d('0x40')]=extractCalleridName;function getCallerId(_0x3bbb86,_0x4ce20a,_0x36a156){if(!_[_0x688d('0x41')](_0x36a156)&&typeof _0x36a156===_0x688d('0x42')&&!_[_0x688d('0x2f')](_0x36a156)){if(!_['isUndefined'](_0x4ce20a)&&typeof _0x4ce20a===_0x688d('0x42')&&!_[_0x688d('0x2f')](_0x4ce20a)){return util['format']('\x22%s\x22\x20<%s>',_0x4ce20a,_0x36a156);}return util[_0x688d('0x43')](_0x688d('0x44'),_0x36a156,_0x36a156);}if(!_['isUndefined'](_0x3bbb86)&&typeof _0x3bbb86===_0x688d('0x42')&&!_['isEmpty'](_0x3bbb86)){return _0x3bbb86;}return'\x22\x22\x20<>';}exports[_0x688d('0x45')]=getCallerId;function getCallerIdRandom(_0xbbe6fa,_0x3cbcec){var _0x3fb457;var _0x3fc3f3;var _0xf82dea;if(_0x3cbcec<=0x0){_0x3cbcec=0x1;}_0x3fb457=new RegExp(_0x688d('0x46')+_0x3cbcec+'}$');_0x3fc3f3=Math[_0x688d('0x47')](0xa,_0x3cbcec-0x1);_0xf82dea=Math[_0x688d('0x47')](0xa,_0x3cbcec)-0x1;return util[_0x688d('0x43')]('%s',_[_0x688d('0x48')](_0xbbe6fa,_0x3fb457,_[_0x688d('0x49')](_0x3fc3f3,_0xf82dea)['toString']()));}exports[_0x688d('0x4a')]=getCallerIdRandom;function decrementOriginate(_0x79c00d,_0x16a1dd){if(_0x79c00d[_0x688d('0x38')]&&_0x79c00d['originated']>0x0){_0x79c00d[_0x688d('0x38')]-=0x1;}else{logger[_0x688d('0x4b')](_0x688d('0x4c'),_0x16a1dd);}}exports['decrementOriginate']=decrementOriginate;function checkContactEmpty(_0x55e206){return _0x55e206&&_0x55e206[_0x688d('0x4d')]>0x0;}exports['checkContactEmpty']=checkContactEmpty;function erlangb(_0x667933,_0x506d58){if(_0x506d58===0x0){return 0x0;}var _0x160f07=0x1;for(var _0x450164=0x1;_0x450164<=_0x506d58;_0x450164+=0x1){_0x160f07=0x1+_0x160f07*_0x450164/_0x667933;}return 0x1/_0x160f07;}exports[_0x688d('0x4e')]=erlangb;function checkContactLowerLimitOriginate(_0x5b95e4,_0xea1c5a,_0x33d224){if(_0xea1c5a>_0x33d224){for(var _0x46d04a=0x0;_0x46d04a<_0xea1c5a-_0x33d224;_0x46d04a+=0x1){decrementOriginate(_0x5b95e4,_0x688d('0x4f'));}}}exports[_0x688d('0x50')]=checkContactLowerLimitOriginate;function setXMDContactVariables(_0x36032f){var _0x19cf7a={};var _0x27a747=['id',_0x688d('0x51'),'tags',_0x688d('0x52')];const _0x50a5fc=0xfa;if(_0x36032f){for(var _0x137cc9 in _0x36032f){if(typeof _0x36032f[_0x137cc9]!==_0x688d('0x53')){if(!_[_0x688d('0x2d')](_0x36032f[_0x137cc9])&&!_0x27a747['includes'](_0x137cc9)){if(_0x137cc9===_0x688d('0x54')&&_0x36032f[_0x137cc9][_0x688d('0x4d')]>_0x50a5fc){_0x19cf7a[_0x688d('0x55')+_0x137cc9['toUpperCase']()]=_0x36032f[_0x137cc9][_0x688d('0x56')]()[_0x688d('0x57')](0x0,_0x50a5fc);}else{_0x19cf7a[_0x688d('0x55')+_0x137cc9[_0x688d('0x58')]()]=_0x36032f[_0x137cc9];}}}}}return _0x19cf7a;}exports[_0x688d('0x59')]=setXMDContactVariables;