Built motion from commit efa66e19.|2.6.22
[motion2.git] / server / services / routing / server / applications / strategy / beepall.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 _0xd455=['STOP','removeWaitingNotification','exports','lodash','uuid','./util','../../../../../config/logger','routing','queue','squeue','push','handleRun','bind','handleTimeout','prototype','isNil','length','Agents','realtime','agents','debug','[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s','channel','RINGING','busy','busyQueue','name','saveWaitingNotification','notificationId','[%s][QUEUE]\x20EMPTY','writeLog'];(function(_0x34fe5f,_0x2bf817){var _0x3544a8=function(_0xc0c120){while(--_0xc0c120){_0x34fe5f['push'](_0x34fe5f['shift']());}};_0x3544a8(++_0x2bf817);}(_0xd455,0x1f3));var _0x5d45=function(_0x548aa9,_0x6efe16){_0x548aa9=_0x548aa9-0x0;var _0x3b8653=_0xd455[_0x548aa9];return _0x3b8653;};'use strict';var _=require(_0x5d45('0x0'));var uuid=require(_0x5d45('0x1'));var util=require(_0x5d45('0x2'));var logger=require(_0x5d45('0x3'))(_0x5d45('0x4'));var Beepall=function(_0x4626c7,_0x41b196,_0x25d087,_0x1485f8){this['notificationId']=uuid['v4']();this['squeue']=_0x4626c7;this[_0x5d45('0x5')]=_0x41b196;this['realtime']=_0x25d087;this['routing']=_0x1485f8;this[_0x5d45('0x6')][_0x5d45('0x7')](this[_0x5d45('0x8')][_0x5d45('0x9')](this),this[_0x5d45('0xa')][_0x5d45('0x9')](this));this['squeue']['on']('timeout',this[_0x5d45('0xa')][_0x5d45('0x9')](this));this[_0x5d45('0x6')]['on']('drained',this['handleDrained'][_0x5d45('0x9')](this));};Beepall['prototype'][_0x5d45('0x7')]=function(){this[_0x5d45('0x6')]['push'](this[_0x5d45('0x8')][_0x5d45('0x9')](this),this['handleTimeout']['bind'](this));};Beepall['prototype']['handleDrained']=function(){this['handleTimeout'](!![]);};Beepall[_0x5d45('0xb')][_0x5d45('0x8')]=function(){var _0x262f2b=!![];if(!_['isNil'](this[_0x5d45('0x5')])&&!_[_0x5d45('0xc')](this[_0x5d45('0x5')]['Agents'])&&this['queue']['Agents'][_0x5d45('0xd')]>0x0){for(var _0x261533=0x0,_0x135642;_0x261533<this[_0x5d45('0x5')][_0x5d45('0xe')][_0x5d45('0xd')];_0x261533+=0x1){_0x135642=this[_0x5d45('0x5')][_0x5d45('0xe')][_0x261533]['id'];if(_[_0x5d45('0xc')](this[_0x5d45('0xf')][_0x5d45('0x10')][_0x135642])){logger[_0x5d45('0x11')](_0x5d45('0x12'),this['squeue']['id'],_0x135642);}else{if(util['isAgentAvailable'](this[_0x5d45('0x6')]['id'],this[_0x5d45('0xf')]['agents'][_0x135642],this[_0x5d45('0x6')][_0x5d45('0x13')],!![])){_0x262f2b=![];util['writeLog'](this[_0x5d45('0x6')]['id'],this[_0x5d45('0xf')][_0x5d45('0x10')][_0x135642],_0x5d45('0x14'));this[_0x5d45('0xf')][_0x5d45('0x10')][_0x135642][_0x5d45('0x15')]=!![];this[_0x5d45('0xf')][_0x5d45('0x10')][_0x135642][_0x5d45('0x16')]=this[_0x5d45('0x5')][_0x5d45('0x17')];util[_0x5d45('0x18')](this[_0x5d45('0xf')],this['routing'],this['queue'][_0x5d45('0xe')][_0x261533],this[_0x5d45('0x6')]['channel']);util['showNotification'](this[_0x5d45('0x19')],this[_0x5d45('0x6')]['id'],this[_0x5d45('0xf')][_0x5d45('0x10')][_0x135642],this['queue'],this[_0x5d45('0x4')]);}}}if(_0x262f2b){logger[_0x5d45('0x11')]('[%s][QUEUE]\x20ALL\x20AGENTS\x20ARE\x20BUSY',this['squeue']['id']);setTimeout(this['push'][_0x5d45('0x9')](this),0x3e8);}}else{logger[_0x5d45('0x11')](_0x5d45('0x1a'),this[_0x5d45('0x6')]['id']);setTimeout(this['push'][_0x5d45('0x9')](this),0x3e8);}};Beepall['prototype']['handleTimeout']=function(_0x253a6e){if(!_[_0x5d45('0xc')](this[_0x5d45('0x5')])&&!_[_0x5d45('0xc')](this[_0x5d45('0x5')][_0x5d45('0xe')])){for(var _0x5d4e2d=0x0,_0x3b17f1;_0x5d4e2d<this[_0x5d45('0x5')]['Agents']['length'];_0x5d4e2d+=0x1){_0x3b17f1=this['queue'][_0x5d45('0xe')][_0x5d4e2d]['id'];if(_['isNil'](this['realtime'][_0x5d45('0x10')][_0x3b17f1])){logger[_0x5d45('0x11')](_0x5d45('0x12'),this['squeue']['id'],_0x3b17f1);}else{util['hideNotification'](this[_0x5d45('0x19')],this[_0x5d45('0x6')]['id'],this['realtime']['agents'][_0x3b17f1],this[_0x5d45('0x5')],this[_0x5d45('0x4')]);util[_0x5d45('0x1b')](this[_0x5d45('0x6')]['id'],this['realtime'][_0x5d45('0x10')][_0x3b17f1],_0x253a6e?_0x5d45('0x1c'):'TIMEOUT');this[_0x5d45('0xf')][_0x5d45('0x10')][_0x3b17f1][_0x5d45('0x15')]=![];this[_0x5d45('0xf')][_0x5d45('0x10')][_0x3b17f1][_0x5d45('0x16')]=undefined;util[_0x5d45('0x1d')](this[_0x5d45('0xf')],this[_0x5d45('0x4')],this[_0x5d45('0xf')]['agents'][_0x3b17f1],this['squeue']['channel']);}}}if(!_0x253a6e){setTimeout(this[_0x5d45('0x7')][_0x5d45('0x9')](this),0x3e8);}};function beepall(_0x35fc21,_0x95b105,_0x412906,_0x290562){return new Beepall(_0x35fc21,_0x95b105,_0x412906,_0x290562);}module[_0x5d45('0x1e')]=beepall;