Built motion from commit (unavailable).|2.5.0
[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 _0x8da2=['join','stop','find','agents','timeout','createQueue','channel','START:%s','rules','end','close','complete','info','agent','error','stack','lodash','util','../../../../config/logger','routing','./strategy','name\x20is\x20a\x20string\x20and\x20it\x20is\x20required','number','timeout\x20is\x20a\x20number','format','[%s][AGENT][NAME:%s][STATUS:%s]','name','consequence','validate','length','[%s][AGENT]\x20%s','map','message'];(function(_0x31b1f8,_0x35fae6){var _0x42fc66=function(_0x46ff1){while(--_0x46ff1){_0x31b1f8['push'](_0x31b1f8['shift']());}};_0x42fc66(++_0x35fae6);}(_0x8da2,0x1bd));var _0x28da=function(_0x1e6866,_0x3a790c){_0x1e6866=_0x1e6866-0x0;var _0x407d18=_0x8da2[_0x1e6866];return _0x407d18;};'use strict';var schema=require('validate');var _=require(_0x28da('0x0'));var util=require(_0x28da('0x1'));var seqqueue=require('seq-queue');var logger=require(_0x28da('0x2'))(_0x28da('0x3'));var strategy=require(_0x28da('0x4'));var queue=schema({'name':{'type':'string','required':!![],'message':_0x28da('0x5')},'timeout':{'type':_0x28da('0x6'),'message':_0x28da('0x7')}});function writeLog(_0x3c31ae,_0x34d972,_0x3181b2){return logger['info'](util[_0x28da('0x8')](_0x28da('0x9'),_0x3c31ae,_0x34d972[_0x28da('0xa')],_0x3181b2));}function handleFindAgent(_0x5114cc){return function(_0x3e7007){return _0x3e7007[_0x28da('0xa')]['toLowerCase']()===_0x5114cc['toLowerCase']();};}exports[_0x28da('0xb')]=function(_0x218882,_0x156d4f,_0x2f96c2,_0x3f806e){return function(_0x2eb1cf){try{var _0x511c4e={'name':_0x156d4f[0x0],'timeout':_0x156d4f[0x1]};var _0x3ddc3f=queue[_0x28da('0xc')](_0x511c4e,{'typecast':!![]});if(_0x3ddc3f[_0x28da('0xd')]){logger['error'](_0x28da('0xe'),_0x218882,_[_0x28da('0xf')](_0x3ddc3f,_0x28da('0x10'))[_0x28da('0x11')](',\x20'));_0x2eb1cf[_0x28da('0x12')]();}else{var _0x1df2de=_[_0x28da('0x13')](_0x2f96c2[_0x28da('0x14')],handleFindAgent(_0x511c4e[_0x28da('0xa')]));if(_0x1df2de){var _0x3d9354=(_0x511c4e[_0x28da('0x15')]||0xa)*0x3e8;var _0x67bc1c,_0x5e23ef;var _0x103fd5=seqqueue[_0x28da('0x16')](_0x3d9354);_0x103fd5['id']=_0x218882;_0x103fd5['atimeout']=_0x3d9354;_0x103fd5[_0x28da('0x17')]=_0x3f806e[_0x28da('0x17')];writeLog(_0x218882,_0x1df2de,util[_0x28da('0x8')](_0x28da('0x18'),_0x3d9354));_0x2f96c2[_0x28da('0x19')][_0x218882]['on'](_0x28da('0x1a'),function(){logger['info']('[%s][AGENT]\x20ROUTING\x20STOPPED',_0x218882);clearTimeout(_0x5e23ef);_0x5e23ef=undefined;_0x103fd5[_0x28da('0x1b')]();if(_0x2f96c2['rules'][_0x218882]){delete _0x2f96c2[_0x28da('0x19')][_0x218882];}_0x2eb1cf[_0x28da('0x12')]();});_0x2f96c2[_0x28da('0x19')][_0x218882]['on'](_0x28da('0x1c'),function(){if(_0x2f96c2['rules'][_0x218882]){delete _0x2f96c2[_0x28da('0x19')][_0x218882];}});_0x5e23ef=setTimeout(function(){logger[_0x28da('0x1d')]('[%s][AGENT]\x20ROUTING\x20END',_0x218882);clearTimeout(_0x5e23ef);_0x103fd5[_0x28da('0x1b')]();_0x2eb1cf['next']();},_0x3d9354);strategy[_0x28da('0x1e')](_0x103fd5,_0x1df2de,_0x2f96c2,_0x3f806e);}else{logger[_0x28da('0x1f')]('[%s][AGENT]\x20agent\x20not\x20found\x20%s',_0x218882,_0x511c4e[_0x28da('0xa')]);_0x2eb1cf[_0x28da('0x12')]();}}}catch(_0x44eaa8){console['log'](_0x44eaa8);logger[_0x28da('0x1f')]('[%s][QUEUE]\x20%s',_0x218882,_0x44eaa8[_0x28da('0x20')]);_0x2eb1cf['stop']();}};};