Built motion from commit (unavailable).|2.4.14
[motion2.git] / server / services / routing / server / applications / agent.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 _0x88b2=['next','agent','[%s][AGENT]\x20agent\x20not\x20found\x20%s','[%s][QUEUE]\x20%s','stack','lodash','util','seq-queue','../../../../config/logger','./strategy','name\x20is\x20a\x20string\x20and\x20it\x20is\x20required','number','timeout\x20is\x20a\x20number','info','format','name','toLowerCase','consequence','validate','length','error','[%s][AGENT]\x20%s','join','find','agents','createQueue','atimeout','channel','START:%s','rules','end','close','[%s][AGENT]\x20ROUTING\x20STOPPED','stop','[%s][AGENT]\x20ROUTING\x20END'];(function(_0x5555f9,_0x26c4b7){var _0x2b2050=function(_0x13ec52){while(--_0x13ec52){_0x5555f9['push'](_0x5555f9['shift']());}};_0x2b2050(++_0x26c4b7);}(_0x88b2,0x163));var _0x288b=function(_0xaa0309,_0x1c8008){_0xaa0309=_0xaa0309-0x0;var _0x5de7ce=_0x88b2[_0xaa0309];return _0x5de7ce;};'use strict';var schema=require('validate');var _=require(_0x288b('0x0'));var util=require(_0x288b('0x1'));var seqqueue=require(_0x288b('0x2'));var logger=require(_0x288b('0x3'))('routing');var strategy=require(_0x288b('0x4'));var queue=schema({'name':{'type':'string','required':!![],'message':_0x288b('0x5')},'timeout':{'type':_0x288b('0x6'),'message':_0x288b('0x7')}});function writeLog(_0x32e29a,_0x2e26dd,_0x4a3334){return logger[_0x288b('0x8')](util[_0x288b('0x9')]('[%s][AGENT][NAME:%s][STATUS:%s]',_0x32e29a,_0x2e26dd[_0x288b('0xa')],_0x4a3334));}function handleFindAgent(_0x3d89ed){return function(_0x1c6ad){return _0x1c6ad[_0x288b('0xa')][_0x288b('0xb')]()===_0x3d89ed[_0x288b('0xb')]();};}exports[_0x288b('0xc')]=function(_0x381759,_0x3b262d,_0xeb3d7f,_0x5da8d4){return function(_0x33b676){try{var _0x116be0={'name':_0x3b262d[0x0],'timeout':_0x3b262d[0x1]};var _0x3c859a=queue[_0x288b('0xd')](_0x116be0,{'typecast':!![]});if(_0x3c859a[_0x288b('0xe')]){logger[_0x288b('0xf')](_0x288b('0x10'),_0x381759,_['map'](_0x3c859a,'message')[_0x288b('0x11')](',\x20'));_0x33b676['stop']();}else{var _0x322c50=_[_0x288b('0x12')](_0xeb3d7f[_0x288b('0x13')],handleFindAgent(_0x116be0['name']));if(_0x322c50){var _0x3a5fca=(_0x116be0['timeout']||0xa)*0x3e8;var _0x55532a,_0xdac543;var _0xf401f4=seqqueue[_0x288b('0x14')](_0x3a5fca);_0xf401f4['id']=_0x381759;_0xf401f4[_0x288b('0x15')]=_0x3a5fca;_0xf401f4[_0x288b('0x16')]=_0x5da8d4[_0x288b('0x16')];writeLog(_0x381759,_0x322c50,util[_0x288b('0x9')](_0x288b('0x17'),_0x3a5fca));_0xeb3d7f[_0x288b('0x18')][_0x381759]['on'](_0x288b('0x19'),function(){_0xf401f4[_0x288b('0x1a')]();clearTimeout(_0xdac543);_0xdac543=undefined;if(_0xeb3d7f[_0x288b('0x18')][_0x381759]){delete _0xeb3d7f['rules'][_0x381759];}logger[_0x288b('0x8')](_0x288b('0x1b'),_0x381759);_0x33b676[_0x288b('0x1c')]();});_0xdac543=setTimeout(function(){clearTimeout(_0xdac543);_0xf401f4[_0x288b('0x1a')]();logger[_0x288b('0x8')](_0x288b('0x1d'),_0x381759);_0x33b676[_0x288b('0x1e')]();},_0x3a5fca);strategy[_0x288b('0x1f')](_0xf401f4,_0x322c50,_0xeb3d7f,_0x5da8d4);}else{logger[_0x288b('0xf')](_0x288b('0x20'),_0x381759,_0x116be0['name']);_0x33b676['stop']();}}}catch(_0x415b77){console['log'](_0x415b77);logger[_0x288b('0xf')](_0x288b('0x21'),_0x381759,_0x415b77[_0x288b('0x22')]);_0x33b676[_0x288b('0x1c')]();}};};