Built motion from commit (unavailable).|2.5.13
[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 _0xcab6=['end','info','[%s][AGENT]\x20ROUTING\x20STOPPED','close','[%s][AGENT]\x20ROUTING\x20END','agent','error','[%s][AGENT]\x20agent\x20not\x20found\x20%s','log','[%s][QUEUE]\x20%s','util','seq-queue','../../../../config/logger','./strategy','string','name\x20is\x20a\x20string\x20and\x20it\x20is\x20required','number','format','[%s][AGENT][NAME:%s][STATUS:%s]','name','toLowerCase','consequence','validate','length','[%s][AGENT]\x20%s','message','stop','find','agents','createQueue','channel','rules'];(function(_0x50faaa,_0x59d114){var _0x48300e=function(_0x4cdf0f){while(--_0x4cdf0f){_0x50faaa['push'](_0x50faaa['shift']());}};_0x48300e(++_0x59d114);}(_0xcab6,0x14a));var _0x6cab=function(_0x38a00e,_0x557dd5){_0x38a00e=_0x38a00e-0x0;var _0x14b048=_0xcab6[_0x38a00e];return _0x14b048;};'use strict';var schema=require('validate');var _=require('lodash');var util=require(_0x6cab('0x0'));var seqqueue=require(_0x6cab('0x1'));var logger=require(_0x6cab('0x2'))('routing');var strategy=require(_0x6cab('0x3'));var queue=schema({'name':{'type':_0x6cab('0x4'),'required':!![],'message':_0x6cab('0x5')},'timeout':{'type':_0x6cab('0x6'),'message':'timeout\x20is\x20a\x20number'}});function writeLog(_0x18a35c,_0x1a1b40,_0x2624d6){return logger['info'](util[_0x6cab('0x7')](_0x6cab('0x8'),_0x18a35c,_0x1a1b40[_0x6cab('0x9')],_0x2624d6));}function handleFindAgent(_0x2663db){return function(_0x43dfa6){return _0x43dfa6[_0x6cab('0x9')]['toLowerCase']()===_0x2663db[_0x6cab('0xa')]();};}exports[_0x6cab('0xb')]=function(_0x6cf86b,_0x5a96db,_0x223a64,_0x42dd65){return function(_0x5b21d){try{var _0x12ec96={'name':_0x5a96db[0x0],'timeout':_0x5a96db[0x1]};var _0x2233da=queue[_0x6cab('0xc')](_0x12ec96,{'typecast':!![]});if(_0x2233da[_0x6cab('0xd')]){logger['error'](_0x6cab('0xe'),_0x6cf86b,_['map'](_0x2233da,_0x6cab('0xf'))['join'](',\x20'));_0x5b21d[_0x6cab('0x10')]();}else{var _0x2e2148=_[_0x6cab('0x11')](_0x223a64[_0x6cab('0x12')],handleFindAgent(_0x12ec96['name']));if(_0x2e2148){var _0x2b0732=(_0x12ec96['timeout']||0xa)*0x3e8;var _0x565702,_0x163e0e;var _0x43ece8=seqqueue[_0x6cab('0x13')](_0x2b0732);_0x43ece8['id']=_0x6cf86b;_0x43ece8['atimeout']=_0x2b0732;_0x43ece8[_0x6cab('0x14')]=_0x42dd65[_0x6cab('0x14')];writeLog(_0x6cf86b,_0x2e2148,util[_0x6cab('0x7')]('START:%s',_0x2b0732));_0x223a64[_0x6cab('0x15')][_0x6cf86b]['on'](_0x6cab('0x16'),function(){logger[_0x6cab('0x17')](_0x6cab('0x18'),_0x6cf86b);clearTimeout(_0x163e0e);_0x163e0e=undefined;_0x43ece8[_0x6cab('0x19')]();if(_0x223a64[_0x6cab('0x15')][_0x6cf86b]){delete _0x223a64[_0x6cab('0x15')][_0x6cf86b];}_0x5b21d['stop']();});_0x223a64[_0x6cab('0x15')][_0x6cf86b]['on']('complete',function(){if(_0x223a64[_0x6cab('0x15')][_0x6cf86b]){delete _0x223a64[_0x6cab('0x15')][_0x6cf86b];}});_0x163e0e=setTimeout(function(){logger[_0x6cab('0x17')](_0x6cab('0x1a'),_0x6cf86b);clearTimeout(_0x163e0e);_0x43ece8[_0x6cab('0x19')]();_0x5b21d['next']();},_0x2b0732);strategy[_0x6cab('0x1b')](_0x43ece8,_0x2e2148,_0x223a64,_0x42dd65);}else{logger[_0x6cab('0x1c')](_0x6cab('0x1d'),_0x6cf86b,_0x12ec96[_0x6cab('0x9')]);_0x5b21d[_0x6cab('0x10')]();}}}catch(_0xbf7111){console[_0x6cab('0x1e')](_0xbf7111);logger[_0x6cab('0x1c')](_0x6cab('0x1f'),_0x6cf86b,_0xbf7111['stack']);_0x5b21d[_0x6cab('0x10')]();}};};