922006ec16785f6c122fb92b0c00b6052afe167e
[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 _0xe78a=['handleRun','handleTimeout','bind','drained','prototype','push','handleDrained','isNil','Agents','length','realtime','agents','info','[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s','channel','writeLog','RINGING','busy','busyQueue','name','showNotification','[%s][QUEUE]\x20EMPTY','STOP','TIMEOUT','exports','lodash','./util','../../../../../config/logger','routing','notificationId','queue','squeue'];(function(_0x286af3,_0x4dcac3){var _0x4115cb=function(_0x4840b0){while(--_0x4840b0){_0x286af3['push'](_0x286af3['shift']());}};_0x4115cb(++_0x4dcac3);}(_0xe78a,0x159));var _0xae78=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0xe78a[_0x122ef9];return _0x42fba0;};'use strict';var _=require(_0xae78('0x0'));var uuid=require('uuid');var util=require(_0xae78('0x1'));var logger=require(_0xae78('0x2'))(_0xae78('0x3'));var Beepall=function(_0x4414f3,_0x518ae0,_0x44335d,_0x5c934e){this[_0xae78('0x4')]=uuid['v4']();this['squeue']=_0x4414f3;this[_0xae78('0x5')]=_0x518ae0;this['realtime']=_0x44335d;this[_0xae78('0x3')]=_0x5c934e;this[_0xae78('0x6')]['push'](this[_0xae78('0x7')]['bind'](this),this[_0xae78('0x8')][_0xae78('0x9')](this));this[_0xae78('0x6')]['on']('timeout',this[_0xae78('0x8')][_0xae78('0x9')](this));this['squeue']['on'](_0xae78('0xa'),this['handleDrained'][_0xae78('0x9')](this));};Beepall[_0xae78('0xb')][_0xae78('0xc')]=function(){this[_0xae78('0x6')]['push'](this[_0xae78('0x7')][_0xae78('0x9')](this),this[_0xae78('0x8')]['bind'](this));};Beepall['prototype'][_0xae78('0xd')]=function(_0x150c52){this[_0xae78('0x8')](!![]);};Beepall[_0xae78('0xb')][_0xae78('0x7')]=function(_0x3e04d7){var _0x447954=!![];if(!_[_0xae78('0xe')](this['queue'])&&!_[_0xae78('0xe')](this[_0xae78('0x5')][_0xae78('0xf')])&&this[_0xae78('0x5')]['Agents'][_0xae78('0x10')]>0x0){for(var _0x34d06a=0x0,_0x5d249f;_0x34d06a<this[_0xae78('0x5')]['Agents'][_0xae78('0x10')];_0x34d06a+=0x1){_0x5d249f=this[_0xae78('0x5')][_0xae78('0xf')][_0x34d06a]['id'];if(_[_0xae78('0xe')](this[_0xae78('0x11')][_0xae78('0x12')][_0x5d249f])){logger[_0xae78('0x13')](_0xae78('0x14'),this[_0xae78('0x6')]['id'],_0x5d249f);}else{if(util['isAgentAvailable'](this[_0xae78('0x6')]['id'],this['realtime']['agents'][_0x5d249f],this[_0xae78('0x6')][_0xae78('0x15')],!![])){_0x447954=![];util[_0xae78('0x16')](this[_0xae78('0x6')]['id'],this[_0xae78('0x11')]['agents'][_0x5d249f],_0xae78('0x17'));this[_0xae78('0x11')][_0xae78('0x12')][_0x5d249f][_0xae78('0x18')]=!![];this[_0xae78('0x11')][_0xae78('0x12')][_0x5d249f][_0xae78('0x19')]=this[_0xae78('0x5')][_0xae78('0x1a')];util[_0xae78('0x1b')](this['notificationId'],this[_0xae78('0x6')]['id'],this[_0xae78('0x11')][_0xae78('0x12')][_0x5d249f],this[_0xae78('0x5')],this['routing']);}}}if(_0x447954){logger[_0xae78('0x13')]('[%s][QUEUE]\x20ALL\x20AGENTS\x20ARE\x20BUSY',this[_0xae78('0x6')]['id']);setTimeout(this[_0xae78('0xc')]['bind'](this),0x3e8);}}else{logger['info'](_0xae78('0x1c'),this[_0xae78('0x6')]['id']);setTimeout(this['push'][_0xae78('0x9')](this),0x3e8);}};Beepall[_0xae78('0xb')][_0xae78('0x8')]=function(_0x48197f){if(!_[_0xae78('0xe')](this[_0xae78('0x5')])&&!_[_0xae78('0xe')](this[_0xae78('0x5')][_0xae78('0xf')])){for(var _0x5b404a=0x0,_0x27fc59;_0x5b404a<this[_0xae78('0x5')][_0xae78('0xf')]['length'];_0x5b404a+=0x1){_0x27fc59=this[_0xae78('0x5')]['Agents'][_0x5b404a]['id'];if(_[_0xae78('0xe')](this[_0xae78('0x11')][_0xae78('0x12')][_0x27fc59])){logger[_0xae78('0x13')](_0xae78('0x14'),this['squeue']['id'],_0x27fc59);}else{util['hideNotification'](this[_0xae78('0x4')],this['squeue']['id'],this[_0xae78('0x11')]['agents'][_0x27fc59],this[_0xae78('0x5')],this['routing']);util[_0xae78('0x16')](this[_0xae78('0x6')]['id'],this['realtime'][_0xae78('0x12')][_0x27fc59],_0x48197f?_0xae78('0x1d'):_0xae78('0x1e'));this[_0xae78('0x11')][_0xae78('0x12')][_0x27fc59][_0xae78('0x18')]=![];this[_0xae78('0x11')]['agents'][_0x27fc59][_0xae78('0x19')]=undefined;}}}if(!_0x48197f){setTimeout(this[_0xae78('0xc')]['bind'](this),0x3e8);}};function beepall(_0x485502,_0x1f78ac,_0x59138f,_0x4c328b){return new Beepall(_0x485502,_0x1f78ac,_0x59138f,_0x4c328b);}module[_0xae78('0x1f')]=beepall;