Built motion from commit (unavailable).|2.5.28
[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 _0x49b0=['squeue','queue','realtime','routing','handleRun','bind','handleTimeout','handleDrained','prototype','push','isNil','Agents','length','info','agents','channel','writeLog','RINGING','busy','busyQueue','name','[%s][QUEUE]\x20ALL\x20AGENTS\x20ARE\x20BUSY','[%s][QUEUE]\x20EMPTY','[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s','hideNotification','STOP','exports','lodash','uuid','./util','notificationId'];(function(_0x489421,_0x4e4d8e){var _0x5bd429=function(_0x284a4f){while(--_0x284a4f){_0x489421['push'](_0x489421['shift']());}};_0x5bd429(++_0x4e4d8e);}(_0x49b0,0x97));var _0x049b=function(_0x59ee6f,_0x450239){_0x59ee6f=_0x59ee6f-0x0;var _0x4c0979=_0x49b0[_0x59ee6f];return _0x4c0979;};'use strict';var _=require(_0x049b('0x0'));var uuid=require(_0x049b('0x1'));var util=require(_0x049b('0x2'));var logger=require('../../../../../config/logger')('routing');var Beepall=function(_0x30eb36,_0xee76d0,_0x1f602a,_0x4818cf){this[_0x049b('0x3')]=uuid['v4']();this[_0x049b('0x4')]=_0x30eb36;this[_0x049b('0x5')]=_0xee76d0;this[_0x049b('0x6')]=_0x1f602a;this[_0x049b('0x7')]=_0x4818cf;this[_0x049b('0x4')]['push'](this[_0x049b('0x8')][_0x049b('0x9')](this),this[_0x049b('0xa')][_0x049b('0x9')](this));this['squeue']['on']('timeout',this['handleTimeout'][_0x049b('0x9')](this));this[_0x049b('0x4')]['on']('drained',this[_0x049b('0xb')][_0x049b('0x9')](this));};Beepall[_0x049b('0xc')][_0x049b('0xd')]=function(){this[_0x049b('0x4')][_0x049b('0xd')](this[_0x049b('0x8')][_0x049b('0x9')](this),this[_0x049b('0xa')][_0x049b('0x9')](this));};Beepall[_0x049b('0xc')]['handleDrained']=function(_0x58e0c7){this[_0x049b('0xa')](!![]);};Beepall[_0x049b('0xc')]['handleRun']=function(_0x26d4ef){var _0x140dce=!![];if(!_[_0x049b('0xe')](this['queue'])&&!_[_0x049b('0xe')](this[_0x049b('0x5')]['Agents'])&&this[_0x049b('0x5')][_0x049b('0xf')][_0x049b('0x10')]>0x0){for(var _0x41b41b=0x0,_0x54db4e;_0x41b41b<this['queue'][_0x049b('0xf')][_0x049b('0x10')];_0x41b41b+=0x1){_0x54db4e=this['queue']['Agents'][_0x41b41b]['id'];if(_['isNil'](this[_0x049b('0x6')]['agents'][_0x54db4e])){logger[_0x049b('0x11')]('[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s',this[_0x049b('0x4')]['id'],_0x54db4e);}else{if(util['isAgentAvailable'](this[_0x049b('0x4')]['id'],this[_0x049b('0x6')][_0x049b('0x12')][_0x54db4e],this[_0x049b('0x4')][_0x049b('0x13')],!![])){_0x140dce=![];util[_0x049b('0x14')](this[_0x049b('0x4')]['id'],this[_0x049b('0x6')][_0x049b('0x12')][_0x54db4e],_0x049b('0x15'));this[_0x049b('0x6')][_0x049b('0x12')][_0x54db4e][_0x049b('0x16')]=!![];this[_0x049b('0x6')]['agents'][_0x54db4e][_0x049b('0x17')]=this['queue'][_0x049b('0x18')];util['showNotification'](this['notificationId'],this[_0x049b('0x4')]['id'],this['realtime'][_0x049b('0x12')][_0x54db4e],this[_0x049b('0x5')],this['routing']);}}}if(_0x140dce){logger[_0x049b('0x11')](_0x049b('0x19'),this[_0x049b('0x4')]['id']);setTimeout(this[_0x049b('0xd')][_0x049b('0x9')](this),0x3e8);}}else{logger[_0x049b('0x11')](_0x049b('0x1a'),this[_0x049b('0x4')]['id']);setTimeout(this['push'][_0x049b('0x9')](this),0x3e8);}};Beepall[_0x049b('0xc')][_0x049b('0xa')]=function(_0xa5eebc){if(!_[_0x049b('0xe')](this[_0x049b('0x5')])&&!_[_0x049b('0xe')](this[_0x049b('0x5')]['Agents'])){for(var _0x3e3771=0x0,_0x320d9d;_0x3e3771<this[_0x049b('0x5')][_0x049b('0xf')][_0x049b('0x10')];_0x3e3771+=0x1){_0x320d9d=this['queue'][_0x049b('0xf')][_0x3e3771]['id'];if(_['isNil'](this['realtime'][_0x049b('0x12')][_0x320d9d])){logger[_0x049b('0x11')](_0x049b('0x1b'),this[_0x049b('0x4')]['id'],_0x320d9d);}else{util[_0x049b('0x1c')](this[_0x049b('0x3')],this[_0x049b('0x4')]['id'],this[_0x049b('0x6')]['agents'][_0x320d9d],this[_0x049b('0x5')],this[_0x049b('0x7')]);util[_0x049b('0x14')](this[_0x049b('0x4')]['id'],this['realtime'][_0x049b('0x12')][_0x320d9d],_0xa5eebc?_0x049b('0x1d'):'TIMEOUT');this['realtime']['agents'][_0x320d9d]['busy']=![];this[_0x049b('0x6')][_0x049b('0x12')][_0x320d9d][_0x049b('0x17')]=undefined;}}}if(!_0xa5eebc){setTimeout(this[_0x049b('0xd')][_0x049b('0x9')](this),0x3e8);}};function beepall(_0x1e05fc,_0x5e4d6a,_0x473695,_0x3ff46d){return new Beepall(_0x1e05fc,_0x5e4d6a,_0x473695,_0x3ff46d);}module[_0x049b('0x1e')]=beepall;