Built motion from commit (unavailable).|2.5.8
[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 _0x519b=['message','join','stop','find','agents','timeout','createQueue','channel','START:%s','rules','end','[%s][AGENT]\x20ROUTING\x20STOPPED','close','[%s][AGENT]\x20ROUTING\x20END','agent','[%s][AGENT]\x20agent\x20not\x20found\x20%s','log','[%s][QUEUE]\x20%s','stack','validate','seq-queue','../../../../config/logger','routing','./strategy','timeout\x20is\x20a\x20number','info','[%s][AGENT][NAME:%s][STATUS:%s]','name','toLowerCase','consequence','length','error','[%s][AGENT]\x20%s','map'];(function(_0x19159a,_0x1cb5c3){var _0xa677f4=function(_0x24bb85){while(--_0x24bb85){_0x19159a['push'](_0x19159a['shift']());}};_0xa677f4(++_0x1cb5c3);}(_0x519b,0x167));var _0xb519=function(_0x2dfa6b,_0x103232){_0x2dfa6b=_0x2dfa6b-0x0;var _0x4ea4b1=_0x519b[_0x2dfa6b];return _0x4ea4b1;};'use strict';var schema=require(_0xb519('0x0'));var _=require('lodash');var util=require('util');var seqqueue=require(_0xb519('0x1'));var logger=require(_0xb519('0x2'))(_0xb519('0x3'));var strategy=require(_0xb519('0x4'));var queue=schema({'name':{'type':'string','required':!![],'message':'name\x20is\x20a\x20string\x20and\x20it\x20is\x20required'},'timeout':{'type':'number','message':_0xb519('0x5')}});function writeLog(_0xf46242,_0x5e92c8,_0x4df805){return logger[_0xb519('0x6')](util['format'](_0xb519('0x7'),_0xf46242,_0x5e92c8[_0xb519('0x8')],_0x4df805));}function handleFindAgent(_0x4850f1){return function(_0x463680){return _0x463680['name']['toLowerCase']()===_0x4850f1[_0xb519('0x9')]();};}exports[_0xb519('0xa')]=function(_0x533459,_0xa12766,_0x62104,_0x3c77b2){return function(_0x2f843d){try{var _0x240e2b={'name':_0xa12766[0x0],'timeout':_0xa12766[0x1]};var _0x12ba2a=queue[_0xb519('0x0')](_0x240e2b,{'typecast':!![]});if(_0x12ba2a[_0xb519('0xb')]){logger[_0xb519('0xc')](_0xb519('0xd'),_0x533459,_[_0xb519('0xe')](_0x12ba2a,_0xb519('0xf'))[_0xb519('0x10')](',\x20'));_0x2f843d[_0xb519('0x11')]();}else{var _0x2f9d64=_[_0xb519('0x12')](_0x62104[_0xb519('0x13')],handleFindAgent(_0x240e2b[_0xb519('0x8')]));if(_0x2f9d64){var _0x32a108=(_0x240e2b[_0xb519('0x14')]||0xa)*0x3e8;var _0x29375e,_0x29aaaf;var _0x5af04c=seqqueue[_0xb519('0x15')](_0x32a108);_0x5af04c['id']=_0x533459;_0x5af04c['atimeout']=_0x32a108;_0x5af04c['channel']=_0x3c77b2[_0xb519('0x16')];writeLog(_0x533459,_0x2f9d64,util['format'](_0xb519('0x17'),_0x32a108));_0x62104[_0xb519('0x18')][_0x533459]['on'](_0xb519('0x19'),function(){logger[_0xb519('0x6')](_0xb519('0x1a'),_0x533459);clearTimeout(_0x29aaaf);_0x29aaaf=undefined;_0x5af04c[_0xb519('0x1b')]();if(_0x62104[_0xb519('0x18')][_0x533459]){delete _0x62104[_0xb519('0x18')][_0x533459];}_0x2f843d['stop']();});_0x62104[_0xb519('0x18')][_0x533459]['on']('complete',function(){if(_0x62104['rules'][_0x533459]){delete _0x62104[_0xb519('0x18')][_0x533459];}});_0x29aaaf=setTimeout(function(){logger[_0xb519('0x6')](_0xb519('0x1c'),_0x533459);clearTimeout(_0x29aaaf);_0x5af04c[_0xb519('0x1b')]();_0x2f843d['next']();},_0x32a108);strategy[_0xb519('0x1d')](_0x5af04c,_0x2f9d64,_0x62104,_0x3c77b2);}else{logger[_0xb519('0xc')](_0xb519('0x1e'),_0x533459,_0x240e2b[_0xb519('0x8')]);_0x2f843d[_0xb519('0x11')]();}}}catch(_0x31344e){console[_0xb519('0x1f')](_0x31344e);logger['error'](_0xb519('0x20'),_0x533459,_0x31344e[_0xb519('0x21')]);_0x2f843d[_0xb519('0x11')]();}};};