Built motion from commit 26d08302.|2.6.31
[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 _0xd9b9=['validate','util','seq-queue','../../../../config/logger','routing','./strategy','string','number','timeout\x20is\x20a\x20number','info','[%s][AGENT][NAME:%s][STATUS:%s]','name','toLowerCase','error','map','message','join','stop','find','agents','timeout','createQueue','atimeout','channel','format','START:%s','end','rules','complete','[%s][AGENT]\x20ROUTING\x20END','close','agent','[%s][AGENT]\x20agent\x20not\x20found\x20%s','log','[%s][QUEUE]\x20%s'];(function(_0x1acba0,_0x574321){var _0x10cb70=function(_0x4c5b74){while(--_0x4c5b74){_0x1acba0['push'](_0x1acba0['shift']());}};_0x10cb70(++_0x574321);}(_0xd9b9,0x118));var _0x9d9b=function(_0x282c1a,_0x20f4a0){_0x282c1a=_0x282c1a-0x0;var _0x2c615f=_0xd9b9[_0x282c1a];return _0x2c615f;};'use strict';var schema=require(_0x9d9b('0x0'));var _=require('lodash');var util=require(_0x9d9b('0x1'));var seqqueue=require(_0x9d9b('0x2'));var logger=require(_0x9d9b('0x3'))(_0x9d9b('0x4'));var strategy=require(_0x9d9b('0x5'));var queue=schema({'name':{'type':_0x9d9b('0x6'),'required':!![],'message':'name\x20is\x20a\x20string\x20and\x20it\x20is\x20required'},'timeout':{'type':_0x9d9b('0x7'),'message':_0x9d9b('0x8')}});function writeLog(_0x5df1ea,_0x47f886,_0x20ee26){return logger[_0x9d9b('0x9')](util['format'](_0x9d9b('0xa'),_0x5df1ea,_0x47f886['name'],_0x20ee26));}function handleFindAgent(_0x47fdce){return function(_0x4f9885){return _0x4f9885[_0x9d9b('0xb')][_0x9d9b('0xc')]()===_0x47fdce[_0x9d9b('0xc')]();};}exports['consequence']=function(_0x3b44dc,_0x25fcb4,_0x133e4a,_0x23c1f0){return function(_0x4f814b){try{var _0x4d4976={'name':_0x25fcb4[0x0],'timeout':_0x25fcb4[0x1]};var _0x2e7cc5=queue[_0x9d9b('0x0')](_0x4d4976,{'typecast':!![]});if(_0x2e7cc5['length']){logger[_0x9d9b('0xd')]('[%s][AGENT]\x20%s',_0x3b44dc,_[_0x9d9b('0xe')](_0x2e7cc5,_0x9d9b('0xf'))[_0x9d9b('0x10')](',\x20'));_0x4f814b[_0x9d9b('0x11')]();}else{var _0x2cb359=_[_0x9d9b('0x12')](_0x133e4a[_0x9d9b('0x13')],handleFindAgent(_0x4d4976[_0x9d9b('0xb')]));if(_0x2cb359){var _0xdab490=(_0x4d4976[_0x9d9b('0x14')]||0xa)*0x3e8;var _0xa9066d,_0x125a85;var _0x274ac0=seqqueue[_0x9d9b('0x15')](_0xdab490);_0x274ac0['id']=_0x3b44dc;_0x274ac0[_0x9d9b('0x16')]=_0xdab490;_0x274ac0['channel']=_0x23c1f0[_0x9d9b('0x17')];writeLog(_0x3b44dc,_0x2cb359,util[_0x9d9b('0x18')](_0x9d9b('0x19'),_0xdab490));_0x133e4a['rules'][_0x3b44dc]['on'](_0x9d9b('0x1a'),function(){logger['info']('[%s][AGENT]\x20ROUTING\x20STOPPED',_0x3b44dc);clearTimeout(_0x125a85);_0x125a85=undefined;_0x274ac0['close']();if(_0x133e4a[_0x9d9b('0x1b')][_0x3b44dc]){delete _0x133e4a['rules'][_0x3b44dc];}_0x4f814b[_0x9d9b('0x11')]();});_0x133e4a[_0x9d9b('0x1b')][_0x3b44dc]['on'](_0x9d9b('0x1c'),function(){if(_0x133e4a[_0x9d9b('0x1b')][_0x3b44dc]){delete _0x133e4a[_0x9d9b('0x1b')][_0x3b44dc];}});_0x125a85=setTimeout(function(){logger[_0x9d9b('0x9')](_0x9d9b('0x1d'),_0x3b44dc);clearTimeout(_0x125a85);_0x274ac0[_0x9d9b('0x1e')]();_0x4f814b['next']();},_0xdab490);strategy[_0x9d9b('0x1f')](_0x274ac0,_0x2cb359,_0x133e4a,_0x23c1f0);}else{logger[_0x9d9b('0xd')](_0x9d9b('0x20'),_0x3b44dc,_0x4d4976[_0x9d9b('0xb')]);_0x4f814b[_0x9d9b('0x11')]();}}}catch(_0x3c56f1){console[_0x9d9b('0x21')](_0x3c56f1);logger[_0x9d9b('0xd')](_0x9d9b('0x22'),_0x3b44dc,_0x3c56f1['stack']);_0x4f814b[_0x9d9b('0x11')]();}};};