Built motion from commit (unavailable).|2.5.22
[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 _0x852e=['agents','timeout','createQueue','channel','rules','end','[%s][AGENT]\x20ROUTING\x20STOPPED','close','complete','[%s][AGENT]\x20ROUTING\x20END','agent','[%s][QUEUE]\x20%s','stack','validate','lodash','util','seq-queue','../../../../config/logger','routing','./strategy','string','name\x20is\x20a\x20string\x20and\x20it\x20is\x20required','number','timeout\x20is\x20a\x20number','info','format','[%s][AGENT][NAME:%s][STATUS:%s]','name','toLowerCase','consequence','length','error','[%s][AGENT]\x20%s','map','message','stop','find'];(function(_0x4bfb17,_0x20fa8d){var _0x5d7755=function(_0x220067){while(--_0x220067){_0x4bfb17['push'](_0x4bfb17['shift']());}};_0x5d7755(++_0x20fa8d);}(_0x852e,0xc6));var _0xe852=function(_0x405e19,_0x4c9214){_0x405e19=_0x405e19-0x0;var _0x2fe292=_0x852e[_0x405e19];return _0x2fe292;};'use strict';var schema=require(_0xe852('0x0'));var _=require(_0xe852('0x1'));var util=require(_0xe852('0x2'));var seqqueue=require(_0xe852('0x3'));var logger=require(_0xe852('0x4'))(_0xe852('0x5'));var strategy=require(_0xe852('0x6'));var queue=schema({'name':{'type':_0xe852('0x7'),'required':!![],'message':_0xe852('0x8')},'timeout':{'type':_0xe852('0x9'),'message':_0xe852('0xa')}});function writeLog(_0x471842,_0x1bf4a4,_0x16fb79){return logger[_0xe852('0xb')](util[_0xe852('0xc')](_0xe852('0xd'),_0x471842,_0x1bf4a4[_0xe852('0xe')],_0x16fb79));}function handleFindAgent(_0xf7117d){return function(_0x3c97eb){return _0x3c97eb[_0xe852('0xe')]['toLowerCase']()===_0xf7117d[_0xe852('0xf')]();};}exports[_0xe852('0x10')]=function(_0x909209,_0x3afc95,_0x14b8ba,_0x322017){return function(_0x5caaf4){try{var _0x3b4cfb={'name':_0x3afc95[0x0],'timeout':_0x3afc95[0x1]};var _0x1870a5=queue[_0xe852('0x0')](_0x3b4cfb,{'typecast':!![]});if(_0x1870a5[_0xe852('0x11')]){logger[_0xe852('0x12')](_0xe852('0x13'),_0x909209,_[_0xe852('0x14')](_0x1870a5,_0xe852('0x15'))['join'](',\x20'));_0x5caaf4[_0xe852('0x16')]();}else{var _0x2ddfbd=_[_0xe852('0x17')](_0x14b8ba[_0xe852('0x18')],handleFindAgent(_0x3b4cfb['name']));if(_0x2ddfbd){var _0x5593c6=(_0x3b4cfb[_0xe852('0x19')]||0xa)*0x3e8;var _0x46e863,_0x512526;var _0x33b45=seqqueue[_0xe852('0x1a')](_0x5593c6);_0x33b45['id']=_0x909209;_0x33b45['atimeout']=_0x5593c6;_0x33b45[_0xe852('0x1b')]=_0x322017[_0xe852('0x1b')];writeLog(_0x909209,_0x2ddfbd,util['format']('START:%s',_0x5593c6));_0x14b8ba[_0xe852('0x1c')][_0x909209]['on'](_0xe852('0x1d'),function(){logger[_0xe852('0xb')](_0xe852('0x1e'),_0x909209);clearTimeout(_0x512526);_0x512526=undefined;_0x33b45[_0xe852('0x1f')]();if(_0x14b8ba[_0xe852('0x1c')][_0x909209]){delete _0x14b8ba[_0xe852('0x1c')][_0x909209];}_0x5caaf4[_0xe852('0x16')]();});_0x14b8ba['rules'][_0x909209]['on'](_0xe852('0x20'),function(){if(_0x14b8ba[_0xe852('0x1c')][_0x909209]){delete _0x14b8ba['rules'][_0x909209];}});_0x512526=setTimeout(function(){logger[_0xe852('0xb')](_0xe852('0x21'),_0x909209);clearTimeout(_0x512526);_0x33b45['close']();_0x5caaf4['next']();},_0x5593c6);strategy[_0xe852('0x22')](_0x33b45,_0x2ddfbd,_0x14b8ba,_0x322017);}else{logger[_0xe852('0x12')]('[%s][AGENT]\x20agent\x20not\x20found\x20%s',_0x909209,_0x3b4cfb[_0xe852('0xe')]);_0x5caaf4[_0xe852('0x16')]();}}}catch(_0x11984c){console['log'](_0x11984c);logger['error'](_0xe852('0x23'),_0x909209,_0x11984c[_0xe852('0x24')]);_0x5caaf4[_0xe852('0x16')]();}};};