Built motion from commit 639a1a7f.|2.6.19
[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 _0x2001=['stack','lodash','util','seq-queue','../../../../config/logger','routing','./strategy','string','number','timeout\x20is\x20a\x20number','info','format','name','toLowerCase','consequence','validate','length','error','[%s][AGENT]\x20%s','map','message','join','agents','timeout','createQueue','atimeout','channel','end','[%s][AGENT]\x20ROUTING\x20STOPPED','rules','stop','[%s][AGENT]\x20ROUTING\x20END','next','agent','log','[%s][QUEUE]\x20%s'];(function(_0x97741,_0x374e41){var _0xa17bfa=function(_0x48f0e6){while(--_0x48f0e6){_0x97741['push'](_0x97741['shift']());}};_0xa17bfa(++_0x374e41);}(_0x2001,0x145));var _0x1200=function(_0x819464,_0x46fc91){_0x819464=_0x819464-0x0;var _0x49dcc0=_0x2001[_0x819464];return _0x49dcc0;};'use strict';var schema=require('validate');var _=require(_0x1200('0x0'));var util=require(_0x1200('0x1'));var seqqueue=require(_0x1200('0x2'));var logger=require(_0x1200('0x3'))(_0x1200('0x4'));var strategy=require(_0x1200('0x5'));var queue=schema({'name':{'type':_0x1200('0x6'),'required':!![],'message':'name\x20is\x20a\x20string\x20and\x20it\x20is\x20required'},'timeout':{'type':_0x1200('0x7'),'message':_0x1200('0x8')}});function writeLog(_0x47dd53,_0x3c92bb,_0x2ea0eb){return logger[_0x1200('0x9')](util[_0x1200('0xa')]('[%s][AGENT][NAME:%s][STATUS:%s]',_0x47dd53,_0x3c92bb[_0x1200('0xb')],_0x2ea0eb));}function handleFindAgent(_0x26a432){return function(_0x12e6ea){return _0x12e6ea['name'][_0x1200('0xc')]()===_0x26a432['toLowerCase']();};}exports[_0x1200('0xd')]=function(_0x4149da,_0x1fe15c,_0x401a9a,_0x3ca3b1){return function(_0x13e222){try{var _0x57a625={'name':_0x1fe15c[0x0],'timeout':_0x1fe15c[0x1]};var _0x4e82cd=queue[_0x1200('0xe')](_0x57a625,{'typecast':!![]});if(_0x4e82cd[_0x1200('0xf')]){logger[_0x1200('0x10')](_0x1200('0x11'),_0x4149da,_[_0x1200('0x12')](_0x4e82cd,_0x1200('0x13'))[_0x1200('0x14')](',\x20'));_0x13e222['stop']();}else{var _0x2a6920=_['find'](_0x401a9a[_0x1200('0x15')],handleFindAgent(_0x57a625[_0x1200('0xb')]));if(_0x2a6920){var _0x17c53d=(_0x57a625[_0x1200('0x16')]||0xa)*0x3e8;var _0x1359ef,_0x48c182;var _0x1122df=seqqueue[_0x1200('0x17')](_0x17c53d);_0x1122df['id']=_0x4149da;_0x1122df[_0x1200('0x18')]=_0x17c53d;_0x1122df[_0x1200('0x19')]=_0x3ca3b1[_0x1200('0x19')];writeLog(_0x4149da,_0x2a6920,util[_0x1200('0xa')]('START:%s',_0x17c53d));_0x401a9a['rules'][_0x4149da]['on'](_0x1200('0x1a'),function(){logger[_0x1200('0x9')](_0x1200('0x1b'),_0x4149da);clearTimeout(_0x48c182);_0x48c182=undefined;_0x1122df['close']();if(_0x401a9a[_0x1200('0x1c')][_0x4149da]){delete _0x401a9a[_0x1200('0x1c')][_0x4149da];}_0x13e222[_0x1200('0x1d')]();});_0x401a9a[_0x1200('0x1c')][_0x4149da]['on']('complete',function(){if(_0x401a9a[_0x1200('0x1c')][_0x4149da]){delete _0x401a9a[_0x1200('0x1c')][_0x4149da];}});_0x48c182=setTimeout(function(){logger['info'](_0x1200('0x1e'),_0x4149da);clearTimeout(_0x48c182);_0x1122df['close']();_0x13e222[_0x1200('0x1f')]();},_0x17c53d);strategy[_0x1200('0x20')](_0x1122df,_0x2a6920,_0x401a9a,_0x3ca3b1);}else{logger[_0x1200('0x10')]('[%s][AGENT]\x20agent\x20not\x20found\x20%s',_0x4149da,_0x57a625['name']);_0x13e222[_0x1200('0x1d')]();}}}catch(_0x221cdf){console[_0x1200('0x21')](_0x221cdf);logger['error'](_0x1200('0x22'),_0x4149da,_0x221cdf[_0x1200('0x23')]);_0x13e222[_0x1200('0x1d')]();}};};