Built motion from commit (unavailable).|2.3.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 _0x2522=['../../../../config/logger','routing','string','name\x20is\x20a\x20string\x20and\x20it\x20is\x20required','number','format','[%s][AGENT][NAME:%s][STATUS:%s]','name','toLowerCase','consequence','length','error','[%s][AGENT]\x20%s','stop','find','agents','timeout','atimeout','channel','START:%s','rules','end','close','[%s][AGENT]\x20ROUTING\x20STOPPED','info','[%s][AGENT]\x20ROUTING\x20END','next','agent','log','[%s][QUEUE]\x20%s','stack','lodash','util','seq-queue'];(function(_0x49ca18,_0x5e6d05){var _0x145d54=function(_0x30b9be){while(--_0x30b9be){_0x49ca18['push'](_0x49ca18['shift']());}};_0x145d54(++_0x5e6d05);}(_0x2522,0x1b7));var _0x2252=function(_0x229292,_0x45db6b){_0x229292=_0x229292-0x0;var _0x4152d2=_0x2522[_0x229292];return _0x4152d2;};'use strict';var schema=require('validate');var _=require(_0x2252('0x0'));var util=require(_0x2252('0x1'));var seqqueue=require(_0x2252('0x2'));var logger=require(_0x2252('0x3'))(_0x2252('0x4'));var strategy=require('./strategy');var queue=schema({'name':{'type':_0x2252('0x5'),'required':!![],'message':_0x2252('0x6')},'timeout':{'type':_0x2252('0x7'),'message':'timeout\x20is\x20a\x20number'}});function writeLog(_0x4ea83f,_0x1b10af,_0x2cfb38){return logger['info'](util[_0x2252('0x8')](_0x2252('0x9'),_0x4ea83f,_0x1b10af[_0x2252('0xa')],_0x2cfb38));}function handleFindAgent(_0x4102ba){return function(_0x172c06){return _0x172c06[_0x2252('0xa')][_0x2252('0xb')]()===_0x4102ba[_0x2252('0xb')]();};}exports[_0x2252('0xc')]=function(_0x5da2e4,_0x3e5f5a,_0x3b71b6,_0x530176){return function(_0x3227a4){try{var _0x3c6571={'name':_0x3e5f5a[0x0],'timeout':_0x3e5f5a[0x1]};var _0x33c901=queue['validate'](_0x3c6571,{'typecast':!![]});if(_0x33c901[_0x2252('0xd')]){logger[_0x2252('0xe')](_0x2252('0xf'),_0x5da2e4,_['map'](_0x33c901,'message')['join'](',\x20'));_0x3227a4[_0x2252('0x10')]();}else{var _0x3286d5=_[_0x2252('0x11')](_0x3b71b6[_0x2252('0x12')],handleFindAgent(_0x3c6571['name']));if(_0x3286d5){var _0x16989e=(_0x3c6571[_0x2252('0x13')]||0xa)*0x3e8;var _0x132c59,_0x295d94;var _0xf330a=seqqueue['createQueue'](_0x16989e);_0xf330a['id']=_0x5da2e4;_0xf330a[_0x2252('0x14')]=_0x16989e;_0xf330a['channel']=_0x530176[_0x2252('0x15')];writeLog(_0x5da2e4,_0x3286d5,util['format'](_0x2252('0x16'),_0x16989e));_0x3b71b6[_0x2252('0x17')][_0x5da2e4]['on'](_0x2252('0x18'),function(){_0xf330a[_0x2252('0x19')]();clearTimeout(_0x295d94);_0x295d94=undefined;if(_0x3b71b6['rules'][_0x5da2e4]){delete _0x3b71b6[_0x2252('0x17')][_0x5da2e4];}logger['info'](_0x2252('0x1a'),_0x5da2e4);_0x3227a4[_0x2252('0x10')]();});_0x295d94=setTimeout(function(){clearTimeout(_0x295d94);_0xf330a[_0x2252('0x19')]();logger[_0x2252('0x1b')](_0x2252('0x1c'),_0x5da2e4);_0x3227a4[_0x2252('0x1d')]();},_0x16989e);strategy[_0x2252('0x1e')](_0xf330a,_0x3286d5,_0x3b71b6,_0x530176);}else{logger[_0x2252('0xe')]('[%s][AGENT]\x20agent\x20not\x20found\x20%s',_0x5da2e4,_0x3c6571[_0x2252('0xa')]);_0x3227a4[_0x2252('0x10')]();}}}catch(_0x34152d){console[_0x2252('0x1f')](_0x34152d);logger[_0x2252('0xe')](_0x2252('0x20'),_0x5da2e4,_0x34152d[_0x2252('0x21')]);_0x3227a4[_0x2252('0x10')]();}};};