Built motion from commit 994c64e1.|2.6.1
[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 _0x6bff=['exports','lodash','uuid','../../../../../config/logger','squeue','queue','realtime','routing','push','handleRun','bind','timeout','handleTimeout','drained','prototype','isNil','Agents','length','info','[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s','isAgentAvailable','agents','channel','writeLog','busyQueue','name','showNotification','notificationId','[%s][QUEUE]\x20EMPTY','hideNotification','STOP','TIMEOUT','busy'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0x6bff,0xa6));var _0xf6bf=function(_0x48438c,_0x3a9c73){_0x48438c=_0x48438c-0x0;var _0x22a017=_0x6bff[_0x48438c];return _0x22a017;};'use strict';var _=require(_0xf6bf('0x0'));var uuid=require(_0xf6bf('0x1'));var util=require('./util');var logger=require(_0xf6bf('0x2'))('routing');var Beepall=function(_0x290028,_0xd1df50,_0x3ab762,_0x14a2d8){this['notificationId']=uuid['v4']();this[_0xf6bf('0x3')]=_0x290028;this[_0xf6bf('0x4')]=_0xd1df50;this[_0xf6bf('0x5')]=_0x3ab762;this[_0xf6bf('0x6')]=_0x14a2d8;this[_0xf6bf('0x3')][_0xf6bf('0x7')](this[_0xf6bf('0x8')][_0xf6bf('0x9')](this),this['handleTimeout']['bind'](this));this['squeue']['on'](_0xf6bf('0xa'),this[_0xf6bf('0xb')][_0xf6bf('0x9')](this));this[_0xf6bf('0x3')]['on'](_0xf6bf('0xc'),this['handleDrained'][_0xf6bf('0x9')](this));};Beepall[_0xf6bf('0xd')]['push']=function(){this['squeue'][_0xf6bf('0x7')](this[_0xf6bf('0x8')]['bind'](this),this[_0xf6bf('0xb')]['bind'](this));};Beepall[_0xf6bf('0xd')]['handleDrained']=function(_0x1aed26){this[_0xf6bf('0xb')](!![]);};Beepall['prototype']['handleRun']=function(_0xfd2b28){var _0x532cb1=!![];if(!_[_0xf6bf('0xe')](this[_0xf6bf('0x4')])&&!_[_0xf6bf('0xe')](this[_0xf6bf('0x4')][_0xf6bf('0xf')])&&this[_0xf6bf('0x4')]['Agents'][_0xf6bf('0x10')]>0x0){for(var _0x3608bf=0x0,_0x14e33f;_0x3608bf<this[_0xf6bf('0x4')]['Agents'][_0xf6bf('0x10')];_0x3608bf+=0x1){_0x14e33f=this[_0xf6bf('0x4')][_0xf6bf('0xf')][_0x3608bf]['id'];if(_[_0xf6bf('0xe')](this[_0xf6bf('0x5')]['agents'][_0x14e33f])){logger[_0xf6bf('0x11')](_0xf6bf('0x12'),this[_0xf6bf('0x3')]['id'],_0x14e33f);}else{if(util[_0xf6bf('0x13')](this[_0xf6bf('0x3')]['id'],this[_0xf6bf('0x5')][_0xf6bf('0x14')][_0x14e33f],this[_0xf6bf('0x3')][_0xf6bf('0x15')],!![])){_0x532cb1=![];util[_0xf6bf('0x16')](this[_0xf6bf('0x3')]['id'],this[_0xf6bf('0x5')]['agents'][_0x14e33f],'RINGING');this[_0xf6bf('0x5')][_0xf6bf('0x14')][_0x14e33f]['busy']=!![];this[_0xf6bf('0x5')][_0xf6bf('0x14')][_0x14e33f][_0xf6bf('0x17')]=this['queue'][_0xf6bf('0x18')];util[_0xf6bf('0x19')](this[_0xf6bf('0x1a')],this[_0xf6bf('0x3')]['id'],this[_0xf6bf('0x5')][_0xf6bf('0x14')][_0x14e33f],this[_0xf6bf('0x4')],this['routing']);}}}if(_0x532cb1){logger[_0xf6bf('0x11')]('[%s][QUEUE]\x20ALL\x20AGENTS\x20ARE\x20BUSY',this[_0xf6bf('0x3')]['id']);setTimeout(this[_0xf6bf('0x7')][_0xf6bf('0x9')](this),0x3e8);}}else{logger[_0xf6bf('0x11')](_0xf6bf('0x1b'),this['squeue']['id']);setTimeout(this[_0xf6bf('0x7')][_0xf6bf('0x9')](this),0x3e8);}};Beepall[_0xf6bf('0xd')]['handleTimeout']=function(_0x5bc7cc){if(!_[_0xf6bf('0xe')](this[_0xf6bf('0x4')])&&!_[_0xf6bf('0xe')](this[_0xf6bf('0x4')][_0xf6bf('0xf')])){for(var _0x25f742=0x0,_0x4173d8;_0x25f742<this[_0xf6bf('0x4')][_0xf6bf('0xf')][_0xf6bf('0x10')];_0x25f742+=0x1){_0x4173d8=this[_0xf6bf('0x4')][_0xf6bf('0xf')][_0x25f742]['id'];if(_[_0xf6bf('0xe')](this[_0xf6bf('0x5')][_0xf6bf('0x14')][_0x4173d8])){logger[_0xf6bf('0x11')]('[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s',this[_0xf6bf('0x3')]['id'],_0x4173d8);}else{util[_0xf6bf('0x1c')](this['notificationId'],this['squeue']['id'],this[_0xf6bf('0x5')][_0xf6bf('0x14')][_0x4173d8],this['queue'],this[_0xf6bf('0x6')]);util[_0xf6bf('0x16')](this[_0xf6bf('0x3')]['id'],this[_0xf6bf('0x5')][_0xf6bf('0x14')][_0x4173d8],_0x5bc7cc?_0xf6bf('0x1d'):_0xf6bf('0x1e'));this[_0xf6bf('0x5')][_0xf6bf('0x14')][_0x4173d8][_0xf6bf('0x1f')]=![];this[_0xf6bf('0x5')][_0xf6bf('0x14')][_0x4173d8]['busyQueue']=undefined;}}}if(!_0x5bc7cc){setTimeout(this['push']['bind'](this),0x3e8);}};function beepall(_0x4a379b,_0x554f4b,_0x3b5238,_0xbe6360){return new Beepall(_0x4a379b,_0x554f4b,_0x3b5238,_0xbe6360);}module[_0xf6bf('0x20')]=beepall;