Built motion from commit 0900f080.|2.5.45
[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 _0xc782=['agentId','info','done','mapAgentsId','[%s][QUEUE]\x20try\x20with\x20%s','[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s','channel','busy','busyQueue','name','writeLog','RINGING','isNil','TIMEOUT','exports','lodash','uuid','./util','../../../../../config/logger','routing','notificationId','queue','realtime','intervals','squeue','handleRun','handleTimeout','bind','module','timeout','drained','handleDrained','prototype','push','handleCheckReject','isAgentAvailable','agents'];(function(_0x22d6d9,_0x4ac1c1){var _0x258886=function(_0x4e62c2){while(--_0x4e62c2){_0x22d6d9['push'](_0x22d6d9['shift']());}};_0x258886(++_0x4ac1c1);}(_0xc782,0x15c));var _0x2c78=function(_0x31b11d,_0x5d7fa9){_0x31b11d=_0x31b11d-0x0;var _0x1c1668=_0xc782[_0x31b11d];return _0x1c1668;};'use strict';var rr=require('rr');var _=require(_0x2c78('0x0'));var uuid=require(_0x2c78('0x1'));var util=require(_0x2c78('0x2'));var logger=require(_0x2c78('0x3'))(_0x2c78('0x4'));var RRMemory=function(_0x1e04bd,_0x7bfd8f,_0x596d3d,_0x569495){this[_0x2c78('0x5')]=uuid['v4']();this['squeue']=_0x1e04bd;this[_0x2c78('0x6')]=_0x7bfd8f;this[_0x2c78('0x7')]=_0x596d3d;this[_0x2c78('0x4')]=_0x569495;this[_0x2c78('0x8')]={};this[_0x2c78('0x9')]['push'](this[_0x2c78('0xa')]['bind'](this),this[_0x2c78('0xb')][_0x2c78('0xc')](this),this[_0x2c78('0xd')]);this['squeue']['on'](_0x2c78('0xe'),this[_0x2c78('0xb')]['bind'](this));this[_0x2c78('0x9')]['on'](_0x2c78('0xf'),this[_0x2c78('0x10')][_0x2c78('0xc')](this));};RRMemory[_0x2c78('0x11')][_0x2c78('0x12')]=function(){this[_0x2c78('0x9')][_0x2c78('0x12')](this[_0x2c78('0xa')][_0x2c78('0xc')](this),this[_0x2c78('0xb')][_0x2c78('0xc')](this));};RRMemory[_0x2c78('0x11')][_0x2c78('0x10')]=function(_0x36ce54){this[_0x2c78('0xb')](!![]);};RRMemory[_0x2c78('0x11')][_0x2c78('0x13')]=function(_0xd4b337){if(util[_0x2c78('0x14')](this[_0x2c78('0x9')]['id'],this[_0x2c78('0x7')][_0x2c78('0x15')][this[_0x2c78('0x16')]],this[_0x2c78('0x9')]['channel'],!![])){logger[_0x2c78('0x17')]('[%s][QUEUE]\x20available\x20again\x20%s',this['squeue']['id'],this[_0x2c78('0x16')]);clearInterval(this[_0x2c78('0x8')][this[_0x2c78('0x16')]]);_0xd4b337[_0x2c78('0x18')]();setTimeout(this[_0x2c78('0x12')][_0x2c78('0xc')](this),0x3e8);}};RRMemory[_0x2c78('0x11')][_0x2c78('0xa')]=function(_0x3fbde3){this[_0x2c78('0x16')]=rr(this['queue'][_0x2c78('0x19')]);logger[_0x2c78('0x17')](_0x2c78('0x1a'),this[_0x2c78('0x9')]['id'],this[_0x2c78('0x16')]);if(_['isNil'](this[_0x2c78('0x7')][_0x2c78('0x15')][this[_0x2c78('0x16')]])){logger[_0x2c78('0x17')](_0x2c78('0x1b'),this['squeue']['id'],this['agentId']);_0x3fbde3[_0x2c78('0x18')]();setTimeout(this[_0x2c78('0x12')][_0x2c78('0xc')](this),0x3e8);}else{if(util[_0x2c78('0x14')](this[_0x2c78('0x9')]['id'],this[_0x2c78('0x7')][_0x2c78('0x15')][this[_0x2c78('0x16')]],this[_0x2c78('0x9')][_0x2c78('0x1c')],!![])){this[_0x2c78('0x7')][_0x2c78('0x15')][this[_0x2c78('0x16')]][_0x2c78('0x1d')]=!![];this[_0x2c78('0x7')]['agents'][this['agentId']][_0x2c78('0x1e')]=this[_0x2c78('0x6')][_0x2c78('0x1f')];util['showNotification'](this[_0x2c78('0x5')],this['squeue']['id'],this[_0x2c78('0x7')][_0x2c78('0x15')][this['agentId']],this['queue'],this['routing']);util[_0x2c78('0x20')](this['squeue']['id'],this[_0x2c78('0x7')][_0x2c78('0x15')][this['agentId']],_0x2c78('0x21'));this[_0x2c78('0x8')][this[_0x2c78('0x16')]]=setInterval(this[_0x2c78('0x13')][_0x2c78('0xc')](this,_0x3fbde3),0x3e8);}else{logger[_0x2c78('0x17')]('[%s][QUEUE]\x20agent\x20skipped,\x20not\x20available\x20id\x20%s',this[_0x2c78('0x9')]['id'],this[_0x2c78('0x16')]);_0x3fbde3['done']();setTimeout(this['push']['bind'](this),0x3e8);}}};RRMemory['prototype'][_0x2c78('0xb')]=function(_0x43c2c6){logger[_0x2c78('0x17')]('[%s][QUEUE]\x20timeout\x20with\x20%s',this[_0x2c78('0x9')]['id'],this[_0x2c78('0x16')]);if(_[_0x2c78('0x22')](this[_0x2c78('0x7')][_0x2c78('0x15')][this[_0x2c78('0x16')]])){logger[_0x2c78('0x17')](_0x2c78('0x1b'),this[_0x2c78('0x9')]['id'],this[_0x2c78('0x16')]);}else{clearInterval(this[_0x2c78('0x8')][this['agentId']]);util['hideNotification'](this[_0x2c78('0x5')],this[_0x2c78('0x9')]['id'],this['realtime'][_0x2c78('0x15')][this['agentId']],this[_0x2c78('0x6')],this[_0x2c78('0x4')]);util[_0x2c78('0x20')](this[_0x2c78('0x9')]['id'],this[_0x2c78('0x7')]['agents'][this['agentId']],_0x2c78('0x23'));this[_0x2c78('0x7')][_0x2c78('0x15')][this[_0x2c78('0x16')]][_0x2c78('0x1d')]=![];this[_0x2c78('0x7')][_0x2c78('0x15')][this[_0x2c78('0x16')]][_0x2c78('0x1e')]=undefined;}if(!_0x43c2c6){setTimeout(this[_0x2c78('0x12')][_0x2c78('0xc')](this),0x3e8);}};function rrmemory(_0x38a2b9,_0x5bdaee,_0x1313c8,_0x4ebbd4){return new RRMemory(_0x38a2b9,_0x5bdaee,_0x1313c8,_0x4ebbd4);}module[_0x2c78('0x24')]=rrmemory;