Built motion from commit (unavailable).|2.5.4
[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 _0x09c4=['busyQueue','name','showNotification','notificationId','writeLog','RINGING','handleCheckReject','[%s][QUEUE]\x20agent\x20skipped,\x20not\x20available\x20id\x20%s','[%s][QUEUE]\x20timeout\x20with\x20%s','hideNotification','TIMEOUT','exports','lodash','uuid','./util','routing','squeue','queue','realtime','intervals','push','handleRun','bind','handleTimeout','module','drained','handleDrained','prototype','agentId','channel','info','[%s][QUEUE]\x20available\x20again\x20%s','done','mapAgentsId','[%s][QUEUE]\x20try\x20with\x20%s','isNil','[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s','isAgentAvailable','agents','busy'];(function(_0xa46558,_0x28e980){var _0x1490c6=function(_0x26e212){while(--_0x26e212){_0xa46558['push'](_0xa46558['shift']());}};_0x1490c6(++_0x28e980);}(_0x09c4,0x1c4));var _0x409c=function(_0x2afb44,_0x249a57){_0x2afb44=_0x2afb44-0x0;var _0x15ccc2=_0x09c4[_0x2afb44];return _0x15ccc2;};'use strict';var rr=require('rr');var _=require(_0x409c('0x0'));var uuid=require(_0x409c('0x1'));var util=require(_0x409c('0x2'));var logger=require('../../../../../config/logger')(_0x409c('0x3'));var RRMemory=function(_0x370aec,_0x57ae16,_0x119098,_0x6dc6b2){this['notificationId']=uuid['v4']();this[_0x409c('0x4')]=_0x370aec;this[_0x409c('0x5')]=_0x57ae16;this[_0x409c('0x6')]=_0x119098;this[_0x409c('0x3')]=_0x6dc6b2;this[_0x409c('0x7')]={};this[_0x409c('0x4')][_0x409c('0x8')](this[_0x409c('0x9')][_0x409c('0xa')](this),this[_0x409c('0xb')][_0x409c('0xa')](this),this[_0x409c('0xc')]);this['squeue']['on']('timeout',this[_0x409c('0xb')][_0x409c('0xa')](this));this[_0x409c('0x4')]['on'](_0x409c('0xd'),this[_0x409c('0xe')][_0x409c('0xa')](this));};RRMemory[_0x409c('0xf')][_0x409c('0x8')]=function(){this[_0x409c('0x4')][_0x409c('0x8')](this[_0x409c('0x9')]['bind'](this),this[_0x409c('0xb')][_0x409c('0xa')](this));};RRMemory[_0x409c('0xf')][_0x409c('0xe')]=function(_0x47581f){this['handleTimeout'](!![]);};RRMemory[_0x409c('0xf')]['handleCheckReject']=function(_0x5d4a6c){if(util['isAgentAvailable'](this[_0x409c('0x4')]['id'],this[_0x409c('0x6')]['agents'][this[_0x409c('0x10')]],this[_0x409c('0x4')][_0x409c('0x11')],!![])){logger[_0x409c('0x12')](_0x409c('0x13'),this[_0x409c('0x4')]['id'],this[_0x409c('0x10')]);clearInterval(this['intervals'][this[_0x409c('0x10')]]);_0x5d4a6c[_0x409c('0x14')]();setTimeout(this[_0x409c('0x8')][_0x409c('0xa')](this),0x3e8);}};RRMemory['prototype'][_0x409c('0x9')]=function(_0x1848a8){this[_0x409c('0x10')]=rr(this[_0x409c('0x5')][_0x409c('0x15')]);logger[_0x409c('0x12')](_0x409c('0x16'),this[_0x409c('0x4')]['id'],this[_0x409c('0x10')]);if(_[_0x409c('0x17')](this[_0x409c('0x6')]['agents'][this[_0x409c('0x10')]])){logger[_0x409c('0x12')](_0x409c('0x18'),this[_0x409c('0x4')]['id'],this['agentId']);_0x1848a8[_0x409c('0x14')]();setTimeout(this['push'][_0x409c('0xa')](this),0x3e8);}else{if(util[_0x409c('0x19')](this[_0x409c('0x4')]['id'],this[_0x409c('0x6')]['agents'][this[_0x409c('0x10')]],this[_0x409c('0x4')][_0x409c('0x11')],!![])){this['realtime'][_0x409c('0x1a')][this[_0x409c('0x10')]][_0x409c('0x1b')]=!![];this['realtime'][_0x409c('0x1a')][this[_0x409c('0x10')]][_0x409c('0x1c')]=this['queue'][_0x409c('0x1d')];util[_0x409c('0x1e')](this[_0x409c('0x1f')],this['squeue']['id'],this['realtime'][_0x409c('0x1a')][this[_0x409c('0x10')]],this[_0x409c('0x5')],this[_0x409c('0x3')]);util[_0x409c('0x20')](this['squeue']['id'],this[_0x409c('0x6')][_0x409c('0x1a')][this['agentId']],_0x409c('0x21'));this[_0x409c('0x7')][this[_0x409c('0x10')]]=setInterval(this[_0x409c('0x22')][_0x409c('0xa')](this,_0x1848a8),0x3e8);}else{logger[_0x409c('0x12')](_0x409c('0x23'),this[_0x409c('0x4')]['id'],this[_0x409c('0x10')]);_0x1848a8[_0x409c('0x14')]();setTimeout(this[_0x409c('0x8')][_0x409c('0xa')](this),0x3e8);}}};RRMemory[_0x409c('0xf')]['handleTimeout']=function(_0x2cb310){logger['info'](_0x409c('0x24'),this['squeue']['id'],this[_0x409c('0x10')]);if(_[_0x409c('0x17')](this[_0x409c('0x6')][_0x409c('0x1a')][this[_0x409c('0x10')]])){logger[_0x409c('0x12')](_0x409c('0x18'),this[_0x409c('0x4')]['id'],this['agentId']);}else{clearInterval(this[_0x409c('0x7')][this[_0x409c('0x10')]]);util[_0x409c('0x25')](this[_0x409c('0x1f')],this[_0x409c('0x4')]['id'],this[_0x409c('0x6')][_0x409c('0x1a')][this[_0x409c('0x10')]],this['queue'],this[_0x409c('0x3')]);util[_0x409c('0x20')](this[_0x409c('0x4')]['id'],this['realtime']['agents'][this[_0x409c('0x10')]],_0x409c('0x26'));this[_0x409c('0x6')][_0x409c('0x1a')][this[_0x409c('0x10')]][_0x409c('0x1b')]=![];this[_0x409c('0x6')][_0x409c('0x1a')][this[_0x409c('0x10')]]['busyQueue']=undefined;}if(!_0x2cb310){setTimeout(this[_0x409c('0x8')]['bind'](this),0x3e8);}};function rrmemory(_0x3e3b30,_0x11a581,_0x2fd89a,_0xdc7dd8){return new RRMemory(_0x3e3b30,_0x11a581,_0x2fd89a,_0xdc7dd8);}module[_0x409c('0x27')]=rrmemory;