Built motion from commit 85328c08.|2.5.50
[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 _0x6fe2=['name','consequence','length','error','message','stop','find','agents','timeout','createQueue','atimeout','channel','START:%s','rules','end','[%s][AGENT]\x20ROUTING\x20STOPPED','close','complete','[%s][AGENT]\x20agent\x20not\x20found\x20%s','log','[%s][QUEUE]\x20%s','validate','lodash','../../../../config/logger','routing','name\x20is\x20a\x20string\x20and\x20it\x20is\x20required','timeout\x20is\x20a\x20number','info','format','[%s][AGENT][NAME:%s][STATUS:%s]'];(function(_0x25e7cb,_0x3579b7){var _0x375d92=function(_0xe8cf3b){while(--_0xe8cf3b){_0x25e7cb['push'](_0x25e7cb['shift']());}};_0x375d92(++_0x3579b7);}(_0x6fe2,0x141));var _0x26fe=function(_0x34d28a,_0x338792){_0x34d28a=_0x34d28a-0x0;var _0x62a1a8=_0x6fe2[_0x34d28a];return _0x62a1a8;};'use strict';var schema=require(_0x26fe('0x0'));var _=require(_0x26fe('0x1'));var util=require('util');var seqqueue=require('seq-queue');var logger=require(_0x26fe('0x2'))(_0x26fe('0x3'));var strategy=require('./strategy');var queue=schema({'name':{'type':'string','required':!![],'message':_0x26fe('0x4')},'timeout':{'type':'number','message':_0x26fe('0x5')}});function writeLog(_0x550629,_0x3e814c,_0x2683d0){return logger[_0x26fe('0x6')](util[_0x26fe('0x7')](_0x26fe('0x8'),_0x550629,_0x3e814c['name'],_0x2683d0));}function handleFindAgent(_0x4aab9e){return function(_0x48651d){return _0x48651d[_0x26fe('0x9')]['toLowerCase']()===_0x4aab9e['toLowerCase']();};}exports[_0x26fe('0xa')]=function(_0x48204d,_0x4424a1,_0xa088ed,_0x1db6f6){return function(_0x581f81){try{var _0x50eb51={'name':_0x4424a1[0x0],'timeout':_0x4424a1[0x1]};var _0x34c94b=queue['validate'](_0x50eb51,{'typecast':!![]});if(_0x34c94b[_0x26fe('0xb')]){logger[_0x26fe('0xc')]('[%s][AGENT]\x20%s',_0x48204d,_['map'](_0x34c94b,_0x26fe('0xd'))['join'](',\x20'));_0x581f81[_0x26fe('0xe')]();}else{var _0x399324=_[_0x26fe('0xf')](_0xa088ed[_0x26fe('0x10')],handleFindAgent(_0x50eb51['name']));if(_0x399324){var _0x1da8a5=(_0x50eb51[_0x26fe('0x11')]||0xa)*0x3e8;var _0x37f70f,_0x34c5f5;var _0x9ce65b=seqqueue[_0x26fe('0x12')](_0x1da8a5);_0x9ce65b['id']=_0x48204d;_0x9ce65b[_0x26fe('0x13')]=_0x1da8a5;_0x9ce65b[_0x26fe('0x14')]=_0x1db6f6[_0x26fe('0x14')];writeLog(_0x48204d,_0x399324,util[_0x26fe('0x7')](_0x26fe('0x15'),_0x1da8a5));_0xa088ed[_0x26fe('0x16')][_0x48204d]['on'](_0x26fe('0x17'),function(){logger[_0x26fe('0x6')](_0x26fe('0x18'),_0x48204d);clearTimeout(_0x34c5f5);_0x34c5f5=undefined;_0x9ce65b[_0x26fe('0x19')]();if(_0xa088ed[_0x26fe('0x16')][_0x48204d]){delete _0xa088ed[_0x26fe('0x16')][_0x48204d];}_0x581f81[_0x26fe('0xe')]();});_0xa088ed[_0x26fe('0x16')][_0x48204d]['on'](_0x26fe('0x1a'),function(){if(_0xa088ed[_0x26fe('0x16')][_0x48204d]){delete _0xa088ed['rules'][_0x48204d];}});_0x34c5f5=setTimeout(function(){logger[_0x26fe('0x6')]('[%s][AGENT]\x20ROUTING\x20END',_0x48204d);clearTimeout(_0x34c5f5);_0x9ce65b[_0x26fe('0x19')]();_0x581f81['next']();},_0x1da8a5);strategy['agent'](_0x9ce65b,_0x399324,_0xa088ed,_0x1db6f6);}else{logger[_0x26fe('0xc')](_0x26fe('0x1b'),_0x48204d,_0x50eb51[_0x26fe('0x9')]);_0x581f81[_0x26fe('0xe')]();}}}catch(_0x475e1a){console[_0x26fe('0x1c')](_0x475e1a);logger[_0x26fe('0xc')](_0x26fe('0x1d'),_0x48204d,_0x475e1a['stack']);_0x581f81[_0x26fe('0xe')]();}};};