Built motion from commit 14588770.|2.5.38
[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 _0xfdfa=['map','stop','find','agents','timeout','createQueue','atimeout','channel','START:%s','rules','end','complete','[%s][AGENT]\x20ROUTING\x20END','close','next','[%s][AGENT]\x20agent\x20not\x20found\x20%s','[%s][QUEUE]\x20%s','validate','lodash','seq-queue','../../../../config/logger','routing','name\x20is\x20a\x20string\x20and\x20it\x20is\x20required','number','info','format','[%s][AGENT][NAME:%s][STATUS:%s]','name','toLowerCase','consequence','error'];(function(_0x17928f,_0x4ad33f){var _0x500b63=function(_0x127644){while(--_0x127644){_0x17928f['push'](_0x17928f['shift']());}};_0x500b63(++_0x4ad33f);}(_0xfdfa,0x128));var _0xafdf=function(_0x1fcfdc,_0x2ba377){_0x1fcfdc=_0x1fcfdc-0x0;var _0x496df3=_0xfdfa[_0x1fcfdc];return _0x496df3;};'use strict';var schema=require(_0xafdf('0x0'));var _=require(_0xafdf('0x1'));var util=require('util');var seqqueue=require(_0xafdf('0x2'));var logger=require(_0xafdf('0x3'))(_0xafdf('0x4'));var strategy=require('./strategy');var queue=schema({'name':{'type':'string','required':!![],'message':_0xafdf('0x5')},'timeout':{'type':_0xafdf('0x6'),'message':'timeout\x20is\x20a\x20number'}});function writeLog(_0x1f8568,_0x4502aa,_0x208cd3){return logger[_0xafdf('0x7')](util[_0xafdf('0x8')](_0xafdf('0x9'),_0x1f8568,_0x4502aa[_0xafdf('0xa')],_0x208cd3));}function handleFindAgent(_0x51a4e0){return function(_0x4ac679){return _0x4ac679['name'][_0xafdf('0xb')]()===_0x51a4e0[_0xafdf('0xb')]();};}exports[_0xafdf('0xc')]=function(_0x594d39,_0x2bd6b4,_0x24e175,_0x11ce56){return function(_0x259d79){try{var _0xc8b1={'name':_0x2bd6b4[0x0],'timeout':_0x2bd6b4[0x1]};var _0x5ea611=queue[_0xafdf('0x0')](_0xc8b1,{'typecast':!![]});if(_0x5ea611['length']){logger[_0xafdf('0xd')]('[%s][AGENT]\x20%s',_0x594d39,_[_0xafdf('0xe')](_0x5ea611,'message')['join'](',\x20'));_0x259d79[_0xafdf('0xf')]();}else{var _0x2dce8b=_[_0xafdf('0x10')](_0x24e175[_0xafdf('0x11')],handleFindAgent(_0xc8b1[_0xafdf('0xa')]));if(_0x2dce8b){var _0x28e19d=(_0xc8b1[_0xafdf('0x12')]||0xa)*0x3e8;var _0x8eff14,_0x5a9cfe;var _0x1c8dab=seqqueue[_0xafdf('0x13')](_0x28e19d);_0x1c8dab['id']=_0x594d39;_0x1c8dab[_0xafdf('0x14')]=_0x28e19d;_0x1c8dab[_0xafdf('0x15')]=_0x11ce56[_0xafdf('0x15')];writeLog(_0x594d39,_0x2dce8b,util['format'](_0xafdf('0x16'),_0x28e19d));_0x24e175[_0xafdf('0x17')][_0x594d39]['on'](_0xafdf('0x18'),function(){logger[_0xafdf('0x7')]('[%s][AGENT]\x20ROUTING\x20STOPPED',_0x594d39);clearTimeout(_0x5a9cfe);_0x5a9cfe=undefined;_0x1c8dab['close']();if(_0x24e175[_0xafdf('0x17')][_0x594d39]){delete _0x24e175[_0xafdf('0x17')][_0x594d39];}_0x259d79[_0xafdf('0xf')]();});_0x24e175[_0xafdf('0x17')][_0x594d39]['on'](_0xafdf('0x19'),function(){if(_0x24e175[_0xafdf('0x17')][_0x594d39]){delete _0x24e175[_0xafdf('0x17')][_0x594d39];}});_0x5a9cfe=setTimeout(function(){logger[_0xafdf('0x7')](_0xafdf('0x1a'),_0x594d39);clearTimeout(_0x5a9cfe);_0x1c8dab[_0xafdf('0x1b')]();_0x259d79[_0xafdf('0x1c')]();},_0x28e19d);strategy['agent'](_0x1c8dab,_0x2dce8b,_0x24e175,_0x11ce56);}else{logger[_0xafdf('0xd')](_0xafdf('0x1d'),_0x594d39,_0xc8b1[_0xafdf('0xa')]);_0x259d79[_0xafdf('0xf')]();}}}catch(_0x16a419){console['log'](_0x16a419);logger[_0xafdf('0xd')](_0xafdf('0x1e'),_0x594d39,_0x16a419['stack']);_0x259d79[_0xafdf('0xf')]();}};};