Built motion from commit e1760111.|2.6.18
[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 _0x1f8b=['squeue','queue','push','handleRun','bind','timeout','handleTimeout','handleDrained','prototype','isNil','Agents','length','realtime','agents','debug','[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s','writeLog','RINGING','busyQueue','name','saveWaitingNotification','channel','showNotification','hideNotification','TIMEOUT','busy','removeWaitingNotification','lodash','./util','../../../../../config/logger','routing','notificationId'];(function(_0x4d3251,_0x5fb375){var _0x43fb45=function(_0x1d124b){while(--_0x1d124b){_0x4d3251['push'](_0x4d3251['shift']());}};_0x43fb45(++_0x5fb375);}(_0x1f8b,0x11b));var _0xb1f8=function(_0x520138,_0x28b48e){_0x520138=_0x520138-0x0;var _0x46b0bf=_0x1f8b[_0x520138];return _0x46b0bf;};'use strict';var _=require(_0xb1f8('0x0'));var uuid=require('uuid');var util=require(_0xb1f8('0x1'));var logger=require(_0xb1f8('0x2'))(_0xb1f8('0x3'));var Beepall=function(_0x491be8,_0x37ba95,_0x294f23,_0x5d52ee){this[_0xb1f8('0x4')]=uuid['v4']();this[_0xb1f8('0x5')]=_0x491be8;this[_0xb1f8('0x6')]=_0x37ba95;this['realtime']=_0x294f23;this[_0xb1f8('0x3')]=_0x5d52ee;this[_0xb1f8('0x5')][_0xb1f8('0x7')](this[_0xb1f8('0x8')][_0xb1f8('0x9')](this),this['handleTimeout'][_0xb1f8('0x9')](this));this['squeue']['on'](_0xb1f8('0xa'),this[_0xb1f8('0xb')]['bind'](this));this[_0xb1f8('0x5')]['on']('drained',this[_0xb1f8('0xc')][_0xb1f8('0x9')](this));};Beepall[_0xb1f8('0xd')][_0xb1f8('0x7')]=function(){this[_0xb1f8('0x5')][_0xb1f8('0x7')](this[_0xb1f8('0x8')][_0xb1f8('0x9')](this),this[_0xb1f8('0xb')][_0xb1f8('0x9')](this));};Beepall[_0xb1f8('0xd')][_0xb1f8('0xc')]=function(){this['handleTimeout'](!![]);};Beepall[_0xb1f8('0xd')][_0xb1f8('0x8')]=function(){var _0x266f61=!![];if(!_[_0xb1f8('0xe')](this[_0xb1f8('0x6')])&&!_['isNil'](this[_0xb1f8('0x6')][_0xb1f8('0xf')])&&this['queue'][_0xb1f8('0xf')][_0xb1f8('0x10')]>0x0){for(var _0x28a985=0x0,_0x3daf1c;_0x28a985<this['queue'][_0xb1f8('0xf')]['length'];_0x28a985+=0x1){_0x3daf1c=this[_0xb1f8('0x6')][_0xb1f8('0xf')][_0x28a985]['id'];if(_['isNil'](this[_0xb1f8('0x11')][_0xb1f8('0x12')][_0x3daf1c])){logger[_0xb1f8('0x13')](_0xb1f8('0x14'),this[_0xb1f8('0x5')]['id'],_0x3daf1c);}else{if(util['isAgentAvailable'](this[_0xb1f8('0x5')]['id'],this[_0xb1f8('0x11')][_0xb1f8('0x12')][_0x3daf1c],this[_0xb1f8('0x5')]['channel'],!![])){_0x266f61=![];util[_0xb1f8('0x15')](this[_0xb1f8('0x5')]['id'],this[_0xb1f8('0x11')][_0xb1f8('0x12')][_0x3daf1c],_0xb1f8('0x16'));this['realtime'][_0xb1f8('0x12')][_0x3daf1c]['busy']=!![];this[_0xb1f8('0x11')][_0xb1f8('0x12')][_0x3daf1c][_0xb1f8('0x17')]=this['queue'][_0xb1f8('0x18')];util[_0xb1f8('0x19')](this[_0xb1f8('0x11')],this[_0xb1f8('0x3')],this[_0xb1f8('0x6')][_0xb1f8('0xf')][_0x28a985],this['squeue'][_0xb1f8('0x1a')]);util[_0xb1f8('0x1b')](this[_0xb1f8('0x4')],this[_0xb1f8('0x5')]['id'],this['realtime'][_0xb1f8('0x12')][_0x3daf1c],this['queue'],this['routing']);}}}if(_0x266f61){logger[_0xb1f8('0x13')]('[%s][QUEUE]\x20ALL\x20AGENTS\x20ARE\x20BUSY',this[_0xb1f8('0x5')]['id']);setTimeout(this['push']['bind'](this),0x3e8);}}else{logger['debug']('[%s][QUEUE]\x20EMPTY',this[_0xb1f8('0x5')]['id']);setTimeout(this['push'][_0xb1f8('0x9')](this),0x3e8);}};Beepall['prototype'][_0xb1f8('0xb')]=function(_0x229fa3){if(!_[_0xb1f8('0xe')](this[_0xb1f8('0x6')])&&!_[_0xb1f8('0xe')](this[_0xb1f8('0x6')][_0xb1f8('0xf')])){for(var _0x1c07af=0x0,_0x14c4ba;_0x1c07af<this['queue']['Agents'][_0xb1f8('0x10')];_0x1c07af+=0x1){_0x14c4ba=this['queue'][_0xb1f8('0xf')][_0x1c07af]['id'];if(_['isNil'](this[_0xb1f8('0x11')][_0xb1f8('0x12')][_0x14c4ba])){logger[_0xb1f8('0x13')](_0xb1f8('0x14'),this[_0xb1f8('0x5')]['id'],_0x14c4ba);}else{util[_0xb1f8('0x1c')](this[_0xb1f8('0x4')],this[_0xb1f8('0x5')]['id'],this['realtime'][_0xb1f8('0x12')][_0x14c4ba],this[_0xb1f8('0x6')],this[_0xb1f8('0x3')]);util[_0xb1f8('0x15')](this[_0xb1f8('0x5')]['id'],this[_0xb1f8('0x11')][_0xb1f8('0x12')][_0x14c4ba],_0x229fa3?'STOP':_0xb1f8('0x1d'));this[_0xb1f8('0x11')][_0xb1f8('0x12')][_0x14c4ba][_0xb1f8('0x1e')]=![];this[_0xb1f8('0x11')]['agents'][_0x14c4ba]['busyQueue']=undefined;util[_0xb1f8('0x1f')](this[_0xb1f8('0x11')],this[_0xb1f8('0x3')],this[_0xb1f8('0x11')][_0xb1f8('0x12')][_0x14c4ba],this[_0xb1f8('0x5')][_0xb1f8('0x1a')]);}}}if(!_0x229fa3){setTimeout(this[_0xb1f8('0x7')][_0xb1f8('0x9')](this),0x3e8);}};function beepall(_0x3d69c8,_0x556171,_0x210e2c,_0x4ec483){return new Beepall(_0x3d69c8,_0x556171,_0x210e2c,_0x4ec483);}module['exports']=beepall;