a086d0c5ea41944400710b436ae2878c7c0d13b9
[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 _0xb457=['handleRun','bind','handleTimeout','timeout','drained','handleDrained','prototype','isNil','Agents','length','agents','info','isAgentAvailable','channel','writeLog','busyQueue','[%s][QUEUE]\x20EMPTY','[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s','hideNotification','STOP','TIMEOUT','busy','exports','lodash','uuid','notificationId','queue','realtime','routing','squeue','push'];(function(_0xce1c32,_0x7488d0){var _0x7b0085=function(_0x5c5c7d){while(--_0x5c5c7d){_0xce1c32['push'](_0xce1c32['shift']());}};_0x7b0085(++_0x7488d0);}(_0xb457,0x93));var _0x7b45=function(_0x50a004,_0x193d84){_0x50a004=_0x50a004-0x0;var _0x5e9992=_0xb457[_0x50a004];return _0x5e9992;};'use strict';var _=require(_0x7b45('0x0'));var uuid=require(_0x7b45('0x1'));var util=require('./util');var logger=require('../../../../../config/logger')('routing');var Beepall=function(_0x358cb3,_0x3aed36,_0x29ec60,_0x12697c){this[_0x7b45('0x2')]=uuid['v4']();this['squeue']=_0x358cb3;this[_0x7b45('0x3')]=_0x3aed36;this[_0x7b45('0x4')]=_0x29ec60;this[_0x7b45('0x5')]=_0x12697c;this[_0x7b45('0x6')][_0x7b45('0x7')](this[_0x7b45('0x8')][_0x7b45('0x9')](this),this[_0x7b45('0xa')]['bind'](this));this['squeue']['on'](_0x7b45('0xb'),this[_0x7b45('0xa')][_0x7b45('0x9')](this));this[_0x7b45('0x6')]['on'](_0x7b45('0xc'),this[_0x7b45('0xd')]['bind'](this));};Beepall[_0x7b45('0xe')]['push']=function(){this[_0x7b45('0x6')]['push'](this[_0x7b45('0x8')][_0x7b45('0x9')](this),this[_0x7b45('0xa')][_0x7b45('0x9')](this));};Beepall[_0x7b45('0xe')]['handleDrained']=function(_0x170b98){this['handleTimeout'](!![]);};Beepall[_0x7b45('0xe')]['handleRun']=function(_0x59a7a1){var _0x388960=!![];if(!_['isNil'](this['queue'])&&!_[_0x7b45('0xf')](this[_0x7b45('0x3')][_0x7b45('0x10')])&&this[_0x7b45('0x3')][_0x7b45('0x10')]['length']>0x0){for(var _0x4abdf6=0x0,_0xd02cff;_0x4abdf6<this[_0x7b45('0x3')][_0x7b45('0x10')][_0x7b45('0x11')];_0x4abdf6+=0x1){_0xd02cff=this[_0x7b45('0x3')][_0x7b45('0x10')][_0x4abdf6]['id'];if(_['isNil'](this[_0x7b45('0x4')][_0x7b45('0x12')][_0xd02cff])){logger[_0x7b45('0x13')]('[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s',this['squeue']['id'],_0xd02cff);}else{if(util[_0x7b45('0x14')](this['squeue']['id'],this[_0x7b45('0x4')][_0x7b45('0x12')][_0xd02cff],this[_0x7b45('0x6')][_0x7b45('0x15')],!![])){_0x388960=![];util[_0x7b45('0x16')](this['squeue']['id'],this['realtime'][_0x7b45('0x12')][_0xd02cff],'RINGING');this[_0x7b45('0x4')]['agents'][_0xd02cff]['busy']=!![];this['realtime'][_0x7b45('0x12')][_0xd02cff][_0x7b45('0x17')]=this[_0x7b45('0x3')]['name'];util['showNotification'](this['notificationId'],this[_0x7b45('0x6')]['id'],this['realtime'][_0x7b45('0x12')][_0xd02cff],this['queue'],this[_0x7b45('0x5')]);}}}if(_0x388960){logger[_0x7b45('0x13')]('[%s][QUEUE]\x20ALL\x20AGENTS\x20ARE\x20BUSY',this[_0x7b45('0x6')]['id']);setTimeout(this[_0x7b45('0x7')][_0x7b45('0x9')](this),0x3e8);}}else{logger[_0x7b45('0x13')](_0x7b45('0x18'),this[_0x7b45('0x6')]['id']);setTimeout(this[_0x7b45('0x7')][_0x7b45('0x9')](this),0x3e8);}};Beepall[_0x7b45('0xe')][_0x7b45('0xa')]=function(_0x35a1a3){if(!_['isNil'](this[_0x7b45('0x3')])&&!_[_0x7b45('0xf')](this[_0x7b45('0x3')][_0x7b45('0x10')])){for(var _0x5398de=0x0,_0x57399a;_0x5398de<this[_0x7b45('0x3')][_0x7b45('0x10')][_0x7b45('0x11')];_0x5398de+=0x1){_0x57399a=this['queue'][_0x7b45('0x10')][_0x5398de]['id'];if(_[_0x7b45('0xf')](this[_0x7b45('0x4')][_0x7b45('0x12')][_0x57399a])){logger[_0x7b45('0x13')](_0x7b45('0x19'),this[_0x7b45('0x6')]['id'],_0x57399a);}else{util[_0x7b45('0x1a')](this[_0x7b45('0x2')],this['squeue']['id'],this['realtime'][_0x7b45('0x12')][_0x57399a],this[_0x7b45('0x3')],this[_0x7b45('0x5')]);util['writeLog'](this[_0x7b45('0x6')]['id'],this[_0x7b45('0x4')][_0x7b45('0x12')][_0x57399a],_0x35a1a3?_0x7b45('0x1b'):_0x7b45('0x1c'));this[_0x7b45('0x4')]['agents'][_0x57399a][_0x7b45('0x1d')]=![];this[_0x7b45('0x4')][_0x7b45('0x12')][_0x57399a]['busyQueue']=undefined;}}}if(!_0x35a1a3){setTimeout(this['push'][_0x7b45('0x9')](this),0x3e8);}};function beepall(_0x6b7b1c,_0x2c3896,_0x2c4f5d,_0x31577d){return new Beepall(_0x6b7b1c,_0x2c3896,_0x2c4f5d,_0x31577d);}module[_0x7b45('0x1e')]=beepall;