Built motion from commit e02f907f.|2.6.14
[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 _0xcedc=['channel','debug','[%s][QUEUE]\x20available\x20again\x20%s','done','mapAgentsId','isNil','[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s','busy','busyQueue','name','saveWaitingNotification','writeLog','RINGING','[%s][QUEUE]\x20timeout\x20with\x20%s','TIMEOUT','removeWaitingNotification','lodash','uuid','./util','../../../../../config/logger','routing','notificationId','squeue','queue','intervals','push','handleRun','bind','handleTimeout','module','handleDrained','prototype','handleCheckReject','isAgentAvailable','realtime','agents','agentId'];(function(_0x23a8ec,_0x3ddb28){var _0x2b2ce1=function(_0x598832){while(--_0x598832){_0x23a8ec['push'](_0x23a8ec['shift']());}};_0x2b2ce1(++_0x3ddb28);}(_0xcedc,0x113));var _0xcced=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0xcedc[_0x14add3];return _0x4a174f;};'use strict';var rr=require('rr');var _=require(_0xcced('0x0'));var uuid=require(_0xcced('0x1'));var util=require(_0xcced('0x2'));var logger=require(_0xcced('0x3'))(_0xcced('0x4'));var RRMemory=function(_0x1b2d1a,_0x141025,_0xdcc7c4,_0x5eacbf){this[_0xcced('0x5')]=uuid['v4']();this[_0xcced('0x6')]=_0x1b2d1a;this[_0xcced('0x7')]=_0x141025;this['realtime']=_0xdcc7c4;this['routing']=_0x5eacbf;this[_0xcced('0x8')]={};this[_0xcced('0x6')][_0xcced('0x9')](this[_0xcced('0xa')][_0xcced('0xb')](this),this[_0xcced('0xc')]['bind'](this),this[_0xcced('0xd')]);this[_0xcced('0x6')]['on']('timeout',this[_0xcced('0xc')][_0xcced('0xb')](this));this[_0xcced('0x6')]['on']('drained',this[_0xcced('0xe')]['bind'](this));};RRMemory[_0xcced('0xf')][_0xcced('0x9')]=function(){this[_0xcced('0x6')][_0xcced('0x9')](this[_0xcced('0xa')][_0xcced('0xb')](this),this[_0xcced('0xc')]['bind'](this));};RRMemory[_0xcced('0xf')]['handleDrained']=function(){this[_0xcced('0xc')](!![]);};RRMemory[_0xcced('0xf')][_0xcced('0x10')]=function(_0x27f6d1){if(util[_0xcced('0x11')](this[_0xcced('0x6')]['id'],this[_0xcced('0x12')][_0xcced('0x13')][this[_0xcced('0x14')]],this[_0xcced('0x6')][_0xcced('0x15')],!![])){logger[_0xcced('0x16')](_0xcced('0x17'),this[_0xcced('0x6')]['id'],this[_0xcced('0x14')]);clearInterval(this[_0xcced('0x8')][this[_0xcced('0x14')]]);_0x27f6d1[_0xcced('0x18')]();setTimeout(this[_0xcced('0x9')][_0xcced('0xb')](this),0x3e8);}};RRMemory['prototype'][_0xcced('0xa')]=function(_0x4e6064){this[_0xcced('0x14')]=rr(this[_0xcced('0x7')][_0xcced('0x19')]);logger[_0xcced('0x16')]('[%s][QUEUE]\x20try\x20with\x20%s',this[_0xcced('0x6')]['id'],this[_0xcced('0x14')]);if(_[_0xcced('0x1a')](this[_0xcced('0x12')][_0xcced('0x13')][this[_0xcced('0x14')]])){logger['debug'](_0xcced('0x1b'),this[_0xcced('0x6')]['id'],this[_0xcced('0x14')]);_0x4e6064[_0xcced('0x18')]();setTimeout(this[_0xcced('0x9')]['bind'](this),0x3e8);}else{if(util[_0xcced('0x11')](this[_0xcced('0x6')]['id'],this[_0xcced('0x12')]['agents'][this[_0xcced('0x14')]],this[_0xcced('0x6')]['channel'],!![])){this['realtime'][_0xcced('0x13')][this[_0xcced('0x14')]][_0xcced('0x1c')]=!![];this['realtime'][_0xcced('0x13')][this[_0xcced('0x14')]][_0xcced('0x1d')]=this[_0xcced('0x7')][_0xcced('0x1e')];util[_0xcced('0x1f')](this[_0xcced('0x12')],this[_0xcced('0x4')],this[_0xcced('0x12')][_0xcced('0x13')][this['agentId']],this['squeue'][_0xcced('0x15')]);util['showNotification'](this['notificationId'],this[_0xcced('0x6')]['id'],this[_0xcced('0x12')][_0xcced('0x13')][this[_0xcced('0x14')]],this[_0xcced('0x7')],this[_0xcced('0x4')]);util[_0xcced('0x20')](this['squeue']['id'],this[_0xcced('0x12')][_0xcced('0x13')][this['agentId']],_0xcced('0x21'));this[_0xcced('0x8')][this[_0xcced('0x14')]]=setInterval(this[_0xcced('0x10')][_0xcced('0xb')](this,_0x4e6064),0x3e8);}else{logger[_0xcced('0x16')]('[%s][QUEUE]\x20agent\x20skipped,\x20not\x20available\x20id\x20%s',this[_0xcced('0x6')]['id'],this[_0xcced('0x14')]);_0x4e6064[_0xcced('0x18')]();setTimeout(this[_0xcced('0x9')][_0xcced('0xb')](this),0x3e8);}}};RRMemory[_0xcced('0xf')][_0xcced('0xc')]=function(_0x564120){logger[_0xcced('0x16')](_0xcced('0x22'),this[_0xcced('0x6')]['id'],this[_0xcced('0x14')]);if(_[_0xcced('0x1a')](this[_0xcced('0x12')][_0xcced('0x13')][this['agentId']])){logger[_0xcced('0x16')]('[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s',this[_0xcced('0x6')]['id'],this[_0xcced('0x14')]);}else{clearInterval(this[_0xcced('0x8')][this[_0xcced('0x14')]]);util['hideNotification'](this[_0xcced('0x5')],this[_0xcced('0x6')]['id'],this[_0xcced('0x12')][_0xcced('0x13')][this['agentId']],this['queue'],this['routing']);util[_0xcced('0x20')](this[_0xcced('0x6')]['id'],this['realtime'][_0xcced('0x13')][this[_0xcced('0x14')]],_0xcced('0x23'));this[_0xcced('0x12')][_0xcced('0x13')][this[_0xcced('0x14')]]['busy']=![];this[_0xcced('0x12')][_0xcced('0x13')][this[_0xcced('0x14')]][_0xcced('0x1d')]=undefined;util[_0xcced('0x24')](this['realtime'],this[_0xcced('0x4')],this['realtime']['agents'][this[_0xcced('0x14')]],this[_0xcced('0x6')]['channel']);}if(!_0x564120){setTimeout(this[_0xcced('0x9')]['bind'](this),0x3e8);}};function rrmemory(_0x4e246d,_0x48fba1,_0x1e983b,_0x104ea8){return new RRMemory(_0x4e246d,_0x48fba1,_0x1e983b,_0x104ea8);}module['exports']=rrmemory;