Built motion from commit (unavailable).|2.3.95
[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 _0x76af=['[%s][QUEUE]\x20try\x20with\x20%s','isNil','agents','done','busyQueue','name','writeLog','[%s][QUEUE]\x20agent\x20skipped,\x20not\x20available\x20id\x20%s','[%s][QUEUE]\x20timeout\x20with\x20%s','[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s','hideNotification','busy','exports','lodash','uuid','notificationId','squeue','queue','realtime','routing','intervals','push','handleRun','bind','handleTimeout','module','timeout','drained','prototype','handleDrained','isAgentAvailable','agentId','channel','[%s][QUEUE]\x20available\x20again\x20%s','mapAgentsId','info'];(function(_0x40cac3,_0x57083c){var _0x1e6cf0=function(_0x1c49e3){while(--_0x1c49e3){_0x40cac3['push'](_0x40cac3['shift']());}};_0x1e6cf0(++_0x57083c);}(_0x76af,0x175));var _0xf76a=function(_0x4b6830,_0x2bf6fb){_0x4b6830=_0x4b6830-0x0;var _0x239e4a=_0x76af[_0x4b6830];return _0x239e4a;};'use strict';var rr=require('rr');var _=require(_0xf76a('0x0'));var uuid=require(_0xf76a('0x1'));var util=require('./util');var logger=require('../../../../../config/logger')('routing');var RRMemory=function(_0x45a31a,_0x424491,_0x45521c,_0x211c44){this[_0xf76a('0x2')]=uuid['v4']();this[_0xf76a('0x3')]=_0x45a31a;this[_0xf76a('0x4')]=_0x424491;this[_0xf76a('0x5')]=_0x45521c;this[_0xf76a('0x6')]=_0x211c44;this[_0xf76a('0x7')]={};this[_0xf76a('0x3')][_0xf76a('0x8')](this[_0xf76a('0x9')][_0xf76a('0xa')](this),this[_0xf76a('0xb')][_0xf76a('0xa')](this),this[_0xf76a('0xc')]);this['squeue']['on'](_0xf76a('0xd'),this[_0xf76a('0xb')][_0xf76a('0xa')](this));this[_0xf76a('0x3')]['on'](_0xf76a('0xe'),this['handleDrained'][_0xf76a('0xa')](this));};RRMemory[_0xf76a('0xf')][_0xf76a('0x8')]=function(){this[_0xf76a('0x3')][_0xf76a('0x8')](this[_0xf76a('0x9')]['bind'](this),this[_0xf76a('0xb')]['bind'](this));};RRMemory[_0xf76a('0xf')][_0xf76a('0x10')]=function(_0x228aba){this[_0xf76a('0xb')](!![]);};RRMemory[_0xf76a('0xf')]['handleCheckReject']=function(_0x425623){if(util[_0xf76a('0x11')](this[_0xf76a('0x3')]['id'],this[_0xf76a('0x5')]['agents'][this[_0xf76a('0x12')]],this[_0xf76a('0x3')][_0xf76a('0x13')],!![])){logger['info'](_0xf76a('0x14'),this[_0xf76a('0x3')]['id'],this[_0xf76a('0x12')]);clearInterval(this[_0xf76a('0x7')][this['agentId']]);_0x425623['done']();setTimeout(this[_0xf76a('0x8')][_0xf76a('0xa')](this),0x3e8);}};RRMemory[_0xf76a('0xf')][_0xf76a('0x9')]=function(_0x501367){this[_0xf76a('0x12')]=rr(this['queue'][_0xf76a('0x15')]);logger[_0xf76a('0x16')](_0xf76a('0x17'),this[_0xf76a('0x3')]['id'],this[_0xf76a('0x12')]);if(_[_0xf76a('0x18')](this[_0xf76a('0x5')][_0xf76a('0x19')][this['agentId']])){logger[_0xf76a('0x16')]('[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s',this[_0xf76a('0x3')]['id'],this[_0xf76a('0x12')]);_0x501367[_0xf76a('0x1a')]();setTimeout(this[_0xf76a('0x8')][_0xf76a('0xa')](this),0x3e8);}else{if(util[_0xf76a('0x11')](this['squeue']['id'],this[_0xf76a('0x5')][_0xf76a('0x19')][this[_0xf76a('0x12')]],this[_0xf76a('0x3')][_0xf76a('0x13')],!![])){this[_0xf76a('0x5')][_0xf76a('0x19')][this[_0xf76a('0x12')]]['busy']=!![];this[_0xf76a('0x5')]['agents'][this[_0xf76a('0x12')]][_0xf76a('0x1b')]=this[_0xf76a('0x4')][_0xf76a('0x1c')];util['showNotification'](this[_0xf76a('0x2')],this[_0xf76a('0x3')]['id'],this[_0xf76a('0x5')][_0xf76a('0x19')][this['agentId']],this[_0xf76a('0x4')],this['routing']);util[_0xf76a('0x1d')](this['squeue']['id'],this['realtime'][_0xf76a('0x19')][this[_0xf76a('0x12')]],'RINGING');this['intervals'][this[_0xf76a('0x12')]]=setInterval(this['handleCheckReject'][_0xf76a('0xa')](this,_0x501367),0x3e8);}else{logger['info'](_0xf76a('0x1e'),this[_0xf76a('0x3')]['id'],this[_0xf76a('0x12')]);_0x501367[_0xf76a('0x1a')]();setTimeout(this[_0xf76a('0x8')][_0xf76a('0xa')](this),0x3e8);}}};RRMemory[_0xf76a('0xf')][_0xf76a('0xb')]=function(_0x3c98c4){logger[_0xf76a('0x16')](_0xf76a('0x1f'),this[_0xf76a('0x3')]['id'],this[_0xf76a('0x12')]);if(_[_0xf76a('0x18')](this[_0xf76a('0x5')][_0xf76a('0x19')][this[_0xf76a('0x12')]])){logger[_0xf76a('0x16')](_0xf76a('0x20'),this['squeue']['id'],this['agentId']);}else{clearInterval(this['intervals'][this[_0xf76a('0x12')]]);util[_0xf76a('0x21')](this[_0xf76a('0x2')],this[_0xf76a('0x3')]['id'],this[_0xf76a('0x5')][_0xf76a('0x19')][this[_0xf76a('0x12')]],this[_0xf76a('0x4')],this[_0xf76a('0x6')]);util[_0xf76a('0x1d')](this[_0xf76a('0x3')]['id'],this['realtime'][_0xf76a('0x19')][this[_0xf76a('0x12')]],'TIMEOUT');this[_0xf76a('0x5')][_0xf76a('0x19')][this[_0xf76a('0x12')]][_0xf76a('0x22')]=![];this[_0xf76a('0x5')][_0xf76a('0x19')][this[_0xf76a('0x12')]][_0xf76a('0x1b')]=undefined;}if(!_0x3c98c4){setTimeout(this[_0xf76a('0x8')][_0xf76a('0xa')](this),0x3e8);}};function rrmemory(_0x1254a2,_0x371924,_0x5428e0,_0x57c4f8){return new RRMemory(_0x1254a2,_0x371924,_0x5428e0,_0x57c4f8);}module[_0xf76a('0x23')]=rrmemory;