Built motion from commit (unavailable).|2.5.20
[motion2.git] / server / services / routing / server / applications / strategy / rrmemory.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 _0xda1e=['[%s][QUEUE]\x20agent\x20skipped,\x20not\x20available\x20id\x20%s','[%s][QUEUE]\x20timeout\x20with\x20%s','isNil','hideNotification','busyQueue','exports','lodash','uuid','./util','../../../../../config/logger','routing','notificationId','squeue','queue','realtime','push','handleRun','bind','handleTimeout','timeout','drained','handleDrained','prototype','isAgentAvailable','channel','info','[%s][QUEUE]\x20available\x20again\x20%s','agentId','intervals','done','mapAgentsId','[%s][QUEUE]\x20try\x20with\x20%s','agents','[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s','busy','writeLog','RINGING','handleCheckReject'];(function(_0xd6b6ec,_0x2313b8){var _0x765718=function(_0x4aa9a6){while(--_0x4aa9a6){_0xd6b6ec['push'](_0xd6b6ec['shift']());}};_0x765718(++_0x2313b8);}(_0xda1e,0x15c));var _0xeda1=function(_0x1fd441,_0x2629bf){_0x1fd441=_0x1fd441-0x0;var _0x411a91=_0xda1e[_0x1fd441];return _0x411a91;};'use strict';var rr=require('rr');var _=require(_0xeda1('0x0'));var uuid=require(_0xeda1('0x1'));var util=require(_0xeda1('0x2'));var logger=require(_0xeda1('0x3'))(_0xeda1('0x4'));var RRMemory=function(_0x9fe61a,_0x668f85,_0x4fb1f9,_0x5d6920){this[_0xeda1('0x5')]=uuid['v4']();this[_0xeda1('0x6')]=_0x9fe61a;this[_0xeda1('0x7')]=_0x668f85;this[_0xeda1('0x8')]=_0x4fb1f9;this[_0xeda1('0x4')]=_0x5d6920;this['intervals']={};this[_0xeda1('0x6')][_0xeda1('0x9')](this[_0xeda1('0xa')][_0xeda1('0xb')](this),this[_0xeda1('0xc')][_0xeda1('0xb')](this),this['module']);this[_0xeda1('0x6')]['on'](_0xeda1('0xd'),this[_0xeda1('0xc')][_0xeda1('0xb')](this));this[_0xeda1('0x6')]['on'](_0xeda1('0xe'),this[_0xeda1('0xf')]['bind'](this));};RRMemory[_0xeda1('0x10')][_0xeda1('0x9')]=function(){this[_0xeda1('0x6')][_0xeda1('0x9')](this[_0xeda1('0xa')][_0xeda1('0xb')](this),this[_0xeda1('0xc')][_0xeda1('0xb')](this));};RRMemory[_0xeda1('0x10')]['handleDrained']=function(_0x19bad5){this[_0xeda1('0xc')](!![]);};RRMemory[_0xeda1('0x10')]['handleCheckReject']=function(_0xdfa43){if(util[_0xeda1('0x11')](this[_0xeda1('0x6')]['id'],this[_0xeda1('0x8')]['agents'][this['agentId']],this[_0xeda1('0x6')][_0xeda1('0x12')],!![])){logger[_0xeda1('0x13')](_0xeda1('0x14'),this[_0xeda1('0x6')]['id'],this[_0xeda1('0x15')]);clearInterval(this[_0xeda1('0x16')][this[_0xeda1('0x15')]]);_0xdfa43[_0xeda1('0x17')]();setTimeout(this[_0xeda1('0x9')][_0xeda1('0xb')](this),0x3e8);}};RRMemory['prototype']['handleRun']=function(_0x339123){this[_0xeda1('0x15')]=rr(this[_0xeda1('0x7')][_0xeda1('0x18')]);logger['info'](_0xeda1('0x19'),this['squeue']['id'],this[_0xeda1('0x15')]);if(_['isNil'](this[_0xeda1('0x8')][_0xeda1('0x1a')][this[_0xeda1('0x15')]])){logger[_0xeda1('0x13')](_0xeda1('0x1b'),this[_0xeda1('0x6')]['id'],this[_0xeda1('0x15')]);_0x339123['done']();setTimeout(this[_0xeda1('0x9')][_0xeda1('0xb')](this),0x3e8);}else{if(util[_0xeda1('0x11')](this[_0xeda1('0x6')]['id'],this['realtime']['agents'][this['agentId']],this[_0xeda1('0x6')][_0xeda1('0x12')],!![])){this[_0xeda1('0x8')]['agents'][this['agentId']][_0xeda1('0x1c')]=!![];this[_0xeda1('0x8')][_0xeda1('0x1a')][this[_0xeda1('0x15')]]['busyQueue']=this[_0xeda1('0x7')]['name'];util['showNotification'](this[_0xeda1('0x5')],this[_0xeda1('0x6')]['id'],this[_0xeda1('0x8')][_0xeda1('0x1a')][this[_0xeda1('0x15')]],this[_0xeda1('0x7')],this[_0xeda1('0x4')]);util[_0xeda1('0x1d')](this['squeue']['id'],this[_0xeda1('0x8')]['agents'][this[_0xeda1('0x15')]],_0xeda1('0x1e'));this['intervals'][this[_0xeda1('0x15')]]=setInterval(this[_0xeda1('0x1f')][_0xeda1('0xb')](this,_0x339123),0x3e8);}else{logger['info'](_0xeda1('0x20'),this[_0xeda1('0x6')]['id'],this['agentId']);_0x339123[_0xeda1('0x17')]();setTimeout(this[_0xeda1('0x9')][_0xeda1('0xb')](this),0x3e8);}}};RRMemory[_0xeda1('0x10')][_0xeda1('0xc')]=function(_0x2edf4b){logger['info'](_0xeda1('0x21'),this[_0xeda1('0x6')]['id'],this[_0xeda1('0x15')]);if(_[_0xeda1('0x22')](this[_0xeda1('0x8')]['agents'][this[_0xeda1('0x15')]])){logger[_0xeda1('0x13')]('[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s',this['squeue']['id'],this['agentId']);}else{clearInterval(this['intervals'][this[_0xeda1('0x15')]]);util[_0xeda1('0x23')](this[_0xeda1('0x5')],this[_0xeda1('0x6')]['id'],this[_0xeda1('0x8')][_0xeda1('0x1a')][this['agentId']],this[_0xeda1('0x7')],this[_0xeda1('0x4')]);util[_0xeda1('0x1d')](this['squeue']['id'],this['realtime'][_0xeda1('0x1a')][this[_0xeda1('0x15')]],'TIMEOUT');this[_0xeda1('0x8')][_0xeda1('0x1a')][this[_0xeda1('0x15')]]['busy']=![];this[_0xeda1('0x8')][_0xeda1('0x1a')][this[_0xeda1('0x15')]][_0xeda1('0x24')]=undefined;}if(!_0x2edf4b){setTimeout(this[_0xeda1('0x9')][_0xeda1('0xb')](this),0x3e8);}};function rrmemory(_0x288d19,_0x264f08,_0x25d7fd,_0x1f9017){return new RRMemory(_0x288d19,_0x264f08,_0x25d7fd,_0x1f9017);}module[_0xeda1('0x25')]=rrmemory;