Built motion from commit (unavailable).|2.5.3
[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 _0xa7bd=['createQueue','atimeout','channel','START:%s','rules','info','[%s][AGENT]\x20ROUTING\x20STOPPED','[%s][AGENT]\x20ROUTING\x20END','close','next','agent','log','[%s][QUEUE]\x20%s','stack','validate','util','routing','./strategy','string','name\x20is\x20a\x20string\x20and\x20it\x20is\x20required','number','format','[%s][AGENT][NAME:%s][STATUS:%s]','name','toLowerCase','consequence','error','[%s][AGENT]\x20%s','map','stop','find','timeout'];(function(_0x4c5a24,_0x5ef60c){var _0x4b067e=function(_0x33c0da){while(--_0x33c0da){_0x4c5a24['push'](_0x4c5a24['shift']());}};_0x4b067e(++_0x5ef60c);}(_0xa7bd,0x8e));var _0xda7b=function(_0x380307,_0x440ccd){_0x380307=_0x380307-0x0;var _0x9ea14b=_0xa7bd[_0x380307];return _0x9ea14b;};'use strict';var schema=require(_0xda7b('0x0'));var _=require('lodash');var util=require(_0xda7b('0x1'));var seqqueue=require('seq-queue');var logger=require('../../../../config/logger')(_0xda7b('0x2'));var strategy=require(_0xda7b('0x3'));var queue=schema({'name':{'type':_0xda7b('0x4'),'required':!![],'message':_0xda7b('0x5')},'timeout':{'type':_0xda7b('0x6'),'message':'timeout\x20is\x20a\x20number'}});function writeLog(_0x3bcb4e,_0x3b0d1f,_0x8f12fa){return logger['info'](util[_0xda7b('0x7')](_0xda7b('0x8'),_0x3bcb4e,_0x3b0d1f[_0xda7b('0x9')],_0x8f12fa));}function handleFindAgent(_0x5aee6d){return function(_0x178fba){return _0x178fba[_0xda7b('0x9')][_0xda7b('0xa')]()===_0x5aee6d[_0xda7b('0xa')]();};}exports[_0xda7b('0xb')]=function(_0x1415c1,_0x27f425,_0x36fac5,_0x5458d2){return function(_0x331671){try{var _0x20c065={'name':_0x27f425[0x0],'timeout':_0x27f425[0x1]};var _0x1d51c7=queue[_0xda7b('0x0')](_0x20c065,{'typecast':!![]});if(_0x1d51c7['length']){logger[_0xda7b('0xc')](_0xda7b('0xd'),_0x1415c1,_[_0xda7b('0xe')](_0x1d51c7,'message')['join'](',\x20'));_0x331671[_0xda7b('0xf')]();}else{var _0x40a1a5=_[_0xda7b('0x10')](_0x36fac5['agents'],handleFindAgent(_0x20c065[_0xda7b('0x9')]));if(_0x40a1a5){var _0x3436b5=(_0x20c065[_0xda7b('0x11')]||0xa)*0x3e8;var _0x450e56,_0x5a71ca;var _0x37971d=seqqueue[_0xda7b('0x12')](_0x3436b5);_0x37971d['id']=_0x1415c1;_0x37971d[_0xda7b('0x13')]=_0x3436b5;_0x37971d[_0xda7b('0x14')]=_0x5458d2[_0xda7b('0x14')];writeLog(_0x1415c1,_0x40a1a5,util[_0xda7b('0x7')](_0xda7b('0x15'),_0x3436b5));_0x36fac5[_0xda7b('0x16')][_0x1415c1]['on']('end',function(){logger[_0xda7b('0x17')](_0xda7b('0x18'),_0x1415c1);clearTimeout(_0x5a71ca);_0x5a71ca=undefined;_0x37971d['close']();if(_0x36fac5[_0xda7b('0x16')][_0x1415c1]){delete _0x36fac5[_0xda7b('0x16')][_0x1415c1];}_0x331671[_0xda7b('0xf')]();});_0x36fac5[_0xda7b('0x16')][_0x1415c1]['on']('complete',function(){if(_0x36fac5[_0xda7b('0x16')][_0x1415c1]){delete _0x36fac5[_0xda7b('0x16')][_0x1415c1];}});_0x5a71ca=setTimeout(function(){logger[_0xda7b('0x17')](_0xda7b('0x19'),_0x1415c1);clearTimeout(_0x5a71ca);_0x37971d[_0xda7b('0x1a')]();_0x331671[_0xda7b('0x1b')]();},_0x3436b5);strategy[_0xda7b('0x1c')](_0x37971d,_0x40a1a5,_0x36fac5,_0x5458d2);}else{logger[_0xda7b('0xc')]('[%s][AGENT]\x20agent\x20not\x20found\x20%s',_0x1415c1,_0x20c065[_0xda7b('0x9')]);_0x331671[_0xda7b('0xf')]();}}}catch(_0x499be5){console[_0xda7b('0x1d')](_0x499be5);logger[_0xda7b('0xc')](_0xda7b('0x1e'),_0x1415c1,_0x499be5[_0xda7b('0x1f')]);_0x331671[_0xda7b('0xf')]();}};};