Built motion from commit 753c950e.|2.5.42
[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 _0x4b47=['isNil','Agents','length','realtime','agents','info','isAgentAvailable','writeLog','busy','busyQueue','notificationId','[%s][QUEUE]\x20ALL\x20AGENTS\x20ARE\x20BUSY','[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s','hideNotification','STOP','TIMEOUT','lodash','./util','../../../../../config/logger','routing','squeue','queue','push','handleRun','bind','handleTimeout','prototype','handleDrained'];(function(_0x3b2377,_0x1be5c4){var _0x4defd8=function(_0x1d21f0){while(--_0x1d21f0){_0x3b2377['push'](_0x3b2377['shift']());}};_0x4defd8(++_0x1be5c4);}(_0x4b47,0x1b4));var _0x74b4=function(_0x1afe28,_0x4b5d6a){_0x1afe28=_0x1afe28-0x0;var _0x3d0e58=_0x4b47[_0x1afe28];return _0x3d0e58;};'use strict';var _=require(_0x74b4('0x0'));var uuid=require('uuid');var util=require(_0x74b4('0x1'));var logger=require(_0x74b4('0x2'))(_0x74b4('0x3'));var Beepall=function(_0x1f5100,_0x1f9dac,_0x2795e9,_0x565f6b){this['notificationId']=uuid['v4']();this[_0x74b4('0x4')]=_0x1f5100;this[_0x74b4('0x5')]=_0x1f9dac;this['realtime']=_0x2795e9;this['routing']=_0x565f6b;this['squeue'][_0x74b4('0x6')](this[_0x74b4('0x7')][_0x74b4('0x8')](this),this[_0x74b4('0x9')][_0x74b4('0x8')](this));this['squeue']['on']('timeout',this[_0x74b4('0x9')][_0x74b4('0x8')](this));this['squeue']['on']('drained',this['handleDrained'][_0x74b4('0x8')](this));};Beepall[_0x74b4('0xa')][_0x74b4('0x6')]=function(){this[_0x74b4('0x4')]['push'](this[_0x74b4('0x7')]['bind'](this),this[_0x74b4('0x9')]['bind'](this));};Beepall[_0x74b4('0xa')][_0x74b4('0xb')]=function(_0x46f195){this[_0x74b4('0x9')](!![]);};Beepall['prototype'][_0x74b4('0x7')]=function(_0x2489aa){var _0x549679=!![];if(!_[_0x74b4('0xc')](this[_0x74b4('0x5')])&&!_[_0x74b4('0xc')](this[_0x74b4('0x5')]['Agents'])&&this[_0x74b4('0x5')][_0x74b4('0xd')]['length']>0x0){for(var _0x5a41cb=0x0,_0x1ddad0;_0x5a41cb<this[_0x74b4('0x5')][_0x74b4('0xd')][_0x74b4('0xe')];_0x5a41cb+=0x1){_0x1ddad0=this[_0x74b4('0x5')][_0x74b4('0xd')][_0x5a41cb]['id'];if(_[_0x74b4('0xc')](this[_0x74b4('0xf')][_0x74b4('0x10')][_0x1ddad0])){logger[_0x74b4('0x11')]('[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s',this['squeue']['id'],_0x1ddad0);}else{if(util[_0x74b4('0x12')](this[_0x74b4('0x4')]['id'],this['realtime'][_0x74b4('0x10')][_0x1ddad0],this['squeue']['channel'],!![])){_0x549679=![];util[_0x74b4('0x13')](this[_0x74b4('0x4')]['id'],this[_0x74b4('0xf')][_0x74b4('0x10')][_0x1ddad0],'RINGING');this['realtime'][_0x74b4('0x10')][_0x1ddad0][_0x74b4('0x14')]=!![];this[_0x74b4('0xf')][_0x74b4('0x10')][_0x1ddad0][_0x74b4('0x15')]=this[_0x74b4('0x5')]['name'];util['showNotification'](this[_0x74b4('0x16')],this[_0x74b4('0x4')]['id'],this['realtime'][_0x74b4('0x10')][_0x1ddad0],this[_0x74b4('0x5')],this[_0x74b4('0x3')]);}}}if(_0x549679){logger[_0x74b4('0x11')](_0x74b4('0x17'),this['squeue']['id']);setTimeout(this[_0x74b4('0x6')][_0x74b4('0x8')](this),0x3e8);}}else{logger[_0x74b4('0x11')]('[%s][QUEUE]\x20EMPTY',this['squeue']['id']);setTimeout(this[_0x74b4('0x6')][_0x74b4('0x8')](this),0x3e8);}};Beepall['prototype']['handleTimeout']=function(_0x5a96f9){if(!_['isNil'](this['queue'])&&!_[_0x74b4('0xc')](this[_0x74b4('0x5')]['Agents'])){for(var _0x46fed1=0x0,_0x43f952;_0x46fed1<this[_0x74b4('0x5')][_0x74b4('0xd')][_0x74b4('0xe')];_0x46fed1+=0x1){_0x43f952=this['queue'][_0x74b4('0xd')][_0x46fed1]['id'];if(_[_0x74b4('0xc')](this['realtime'][_0x74b4('0x10')][_0x43f952])){logger[_0x74b4('0x11')](_0x74b4('0x18'),this[_0x74b4('0x4')]['id'],_0x43f952);}else{util[_0x74b4('0x19')](this[_0x74b4('0x16')],this[_0x74b4('0x4')]['id'],this['realtime'][_0x74b4('0x10')][_0x43f952],this[_0x74b4('0x5')],this[_0x74b4('0x3')]);util['writeLog'](this[_0x74b4('0x4')]['id'],this[_0x74b4('0xf')][_0x74b4('0x10')][_0x43f952],_0x5a96f9?_0x74b4('0x1a'):_0x74b4('0x1b'));this[_0x74b4('0xf')]['agents'][_0x43f952]['busy']=![];this[_0x74b4('0xf')][_0x74b4('0x10')][_0x43f952][_0x74b4('0x15')]=undefined;}}}if(!_0x5a96f9){setTimeout(this[_0x74b4('0x6')][_0x74b4('0x8')](this),0x3e8);}};function beepall(_0xcd2454,_0x58c8e6,_0x3dbc6f,_0x2d568c){return new Beepall(_0xcd2454,_0x58c8e6,_0x3dbc6f,_0x2d568c);}module['exports']=beepall;