Built motion from commit (unavailable).|2.5.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 _0xc396=['[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s','isAgentAvailable','channel','writeLog','agents','RINGING','busy','busyQueue','name','showNotification','[%s][QUEUE]\x20ALL\x20AGENTS\x20ARE\x20BUSY','hideNotification','STOP','TIMEOUT','exports','uuid','./util','../../../../../config/logger','routing','notificationId','squeue','queue','realtime','push','handleRun','handleTimeout','bind','timeout','drained','prototype','handleDrained','isNil','Agents','length','info'];(function(_0x1acdd7,_0x1b63d6){var _0x5eed04=function(_0x5d4335){while(--_0x5d4335){_0x1acdd7['push'](_0x1acdd7['shift']());}};_0x5eed04(++_0x1b63d6);}(_0xc396,0x16d));var _0x6c39=function(_0x2015c5,_0x58a2d5){_0x2015c5=_0x2015c5-0x0;var _0x9b2024=_0xc396[_0x2015c5];return _0x9b2024;};'use strict';var _=require('lodash');var uuid=require(_0x6c39('0x0'));var util=require(_0x6c39('0x1'));var logger=require(_0x6c39('0x2'))(_0x6c39('0x3'));var Beepall=function(_0x1792a9,_0x4894f,_0x5786b8,_0x2d2584){this[_0x6c39('0x4')]=uuid['v4']();this[_0x6c39('0x5')]=_0x1792a9;this[_0x6c39('0x6')]=_0x4894f;this[_0x6c39('0x7')]=_0x5786b8;this[_0x6c39('0x3')]=_0x2d2584;this[_0x6c39('0x5')][_0x6c39('0x8')](this[_0x6c39('0x9')]['bind'](this),this[_0x6c39('0xa')][_0x6c39('0xb')](this));this['squeue']['on'](_0x6c39('0xc'),this['handleTimeout'][_0x6c39('0xb')](this));this[_0x6c39('0x5')]['on'](_0x6c39('0xd'),this['handleDrained'][_0x6c39('0xb')](this));};Beepall['prototype']['push']=function(){this['squeue'][_0x6c39('0x8')](this['handleRun']['bind'](this),this[_0x6c39('0xa')][_0x6c39('0xb')](this));};Beepall[_0x6c39('0xe')][_0x6c39('0xf')]=function(_0x32be8c){this[_0x6c39('0xa')](!![]);};Beepall[_0x6c39('0xe')]['handleRun']=function(_0x5a19bb){var _0x43be0b=!![];if(!_[_0x6c39('0x10')](this['queue'])&&!_[_0x6c39('0x10')](this['queue'][_0x6c39('0x11')])&&this[_0x6c39('0x6')]['Agents'][_0x6c39('0x12')]>0x0){for(var _0x11abdd=0x0,_0x12e380;_0x11abdd<this['queue'][_0x6c39('0x11')]['length'];_0x11abdd+=0x1){_0x12e380=this['queue']['Agents'][_0x11abdd]['id'];if(_['isNil'](this[_0x6c39('0x7')]['agents'][_0x12e380])){logger[_0x6c39('0x13')](_0x6c39('0x14'),this[_0x6c39('0x5')]['id'],_0x12e380);}else{if(util[_0x6c39('0x15')](this[_0x6c39('0x5')]['id'],this[_0x6c39('0x7')]['agents'][_0x12e380],this[_0x6c39('0x5')][_0x6c39('0x16')],!![])){_0x43be0b=![];util[_0x6c39('0x17')](this[_0x6c39('0x5')]['id'],this[_0x6c39('0x7')][_0x6c39('0x18')][_0x12e380],_0x6c39('0x19'));this[_0x6c39('0x7')]['agents'][_0x12e380][_0x6c39('0x1a')]=!![];this['realtime'][_0x6c39('0x18')][_0x12e380][_0x6c39('0x1b')]=this[_0x6c39('0x6')][_0x6c39('0x1c')];util[_0x6c39('0x1d')](this['notificationId'],this['squeue']['id'],this[_0x6c39('0x7')]['agents'][_0x12e380],this[_0x6c39('0x6')],this['routing']);}}}if(_0x43be0b){logger[_0x6c39('0x13')](_0x6c39('0x1e'),this[_0x6c39('0x5')]['id']);setTimeout(this[_0x6c39('0x8')][_0x6c39('0xb')](this),0x3e8);}}else{logger['info']('[%s][QUEUE]\x20EMPTY',this['squeue']['id']);setTimeout(this[_0x6c39('0x8')]['bind'](this),0x3e8);}};Beepall['prototype'][_0x6c39('0xa')]=function(_0x2d5605){if(!_['isNil'](this['queue'])&&!_[_0x6c39('0x10')](this['queue'][_0x6c39('0x11')])){for(var _0x4030ff=0x0,_0x49f0b0;_0x4030ff<this[_0x6c39('0x6')][_0x6c39('0x11')][_0x6c39('0x12')];_0x4030ff+=0x1){_0x49f0b0=this[_0x6c39('0x6')]['Agents'][_0x4030ff]['id'];if(_[_0x6c39('0x10')](this['realtime'][_0x6c39('0x18')][_0x49f0b0])){logger['info']('[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s',this['squeue']['id'],_0x49f0b0);}else{util[_0x6c39('0x1f')](this[_0x6c39('0x4')],this[_0x6c39('0x5')]['id'],this[_0x6c39('0x7')][_0x6c39('0x18')][_0x49f0b0],this['queue'],this[_0x6c39('0x3')]);util[_0x6c39('0x17')](this[_0x6c39('0x5')]['id'],this[_0x6c39('0x7')]['agents'][_0x49f0b0],_0x2d5605?_0x6c39('0x20'):_0x6c39('0x21'));this['realtime'][_0x6c39('0x18')][_0x49f0b0][_0x6c39('0x1a')]=![];this[_0x6c39('0x7')][_0x6c39('0x18')][_0x49f0b0][_0x6c39('0x1b')]=undefined;}}}if(!_0x2d5605){setTimeout(this['push'][_0x6c39('0xb')](this),0x3e8);}};function beepall(_0x476ac5,_0x8ddf7c,_0x522ac5,_0x1c3dee){return new Beepall(_0x476ac5,_0x8ddf7c,_0x522ac5,_0x1c3dee);}module[_0x6c39('0x22')]=beepall;