Built motion from commit (unavailable).|2.4.18
[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 _0x1182=['stop','find','agents','atimeout','channel','rules','end','complete','[%s][AGENT]\x20ROUTING\x20END','close','next','[%s][AGENT]\x20agent\x20not\x20found\x20%s','lodash','util','seq-queue','../../../../config/logger','routing','./strategy','string','name\x20is\x20a\x20string\x20and\x20it\x20is\x20required','number','timeout\x20is\x20a\x20number','info','format','[%s][AGENT][NAME:%s][STATUS:%s]','name','toLowerCase','validate','error','[%s][AGENT]\x20%s','map'];(function(_0x503074,_0x36497f){var _0x1a292c=function(_0x1a8fd3){while(--_0x1a8fd3){_0x503074['push'](_0x503074['shift']());}};_0x1a292c(++_0x36497f);}(_0x1182,0x180));var _0x2118=function(_0x28203e,_0x723dff){_0x28203e=_0x28203e-0x0;var _0x51db1e=_0x1182[_0x28203e];return _0x51db1e;};'use strict';var schema=require('validate');var _=require(_0x2118('0x0'));var util=require(_0x2118('0x1'));var seqqueue=require(_0x2118('0x2'));var logger=require(_0x2118('0x3'))(_0x2118('0x4'));var strategy=require(_0x2118('0x5'));var queue=schema({'name':{'type':_0x2118('0x6'),'required':!![],'message':_0x2118('0x7')},'timeout':{'type':_0x2118('0x8'),'message':_0x2118('0x9')}});function writeLog(_0x511cd9,_0x310362,_0x369110){return logger[_0x2118('0xa')](util[_0x2118('0xb')](_0x2118('0xc'),_0x511cd9,_0x310362[_0x2118('0xd')],_0x369110));}function handleFindAgent(_0x36fd30){return function(_0x4d095f){return _0x4d095f[_0x2118('0xd')][_0x2118('0xe')]()===_0x36fd30[_0x2118('0xe')]();};}exports['consequence']=function(_0x363f57,_0x3e6755,_0x394531,_0x3f3098){return function(_0x4bc69d){try{var _0x2dd072={'name':_0x3e6755[0x0],'timeout':_0x3e6755[0x1]};var _0xb241c7=queue[_0x2118('0xf')](_0x2dd072,{'typecast':!![]});if(_0xb241c7['length']){logger[_0x2118('0x10')](_0x2118('0x11'),_0x363f57,_[_0x2118('0x12')](_0xb241c7,'message')['join'](',\x20'));_0x4bc69d[_0x2118('0x13')]();}else{var _0x381568=_[_0x2118('0x14')](_0x394531[_0x2118('0x15')],handleFindAgent(_0x2dd072[_0x2118('0xd')]));if(_0x381568){var _0x16c81a=(_0x2dd072['timeout']||0xa)*0x3e8;var _0x3a5b0f,_0x581dba;var _0x2dfb62=seqqueue['createQueue'](_0x16c81a);_0x2dfb62['id']=_0x363f57;_0x2dfb62[_0x2118('0x16')]=_0x16c81a;_0x2dfb62[_0x2118('0x17')]=_0x3f3098[_0x2118('0x17')];writeLog(_0x363f57,_0x381568,util['format']('START:%s',_0x16c81a));_0x394531[_0x2118('0x18')][_0x363f57]['on'](_0x2118('0x19'),function(){logger[_0x2118('0xa')]('[%s][AGENT]\x20ROUTING\x20STOPPED',_0x363f57);clearTimeout(_0x581dba);_0x581dba=undefined;_0x2dfb62['close']();if(_0x394531[_0x2118('0x18')][_0x363f57]){delete _0x394531['rules'][_0x363f57];}_0x4bc69d[_0x2118('0x13')]();});_0x394531[_0x2118('0x18')][_0x363f57]['on'](_0x2118('0x1a'),function(){if(_0x394531[_0x2118('0x18')][_0x363f57]){delete _0x394531[_0x2118('0x18')][_0x363f57];}});_0x581dba=setTimeout(function(){logger[_0x2118('0xa')](_0x2118('0x1b'),_0x363f57);clearTimeout(_0x581dba);_0x2dfb62[_0x2118('0x1c')]();_0x4bc69d[_0x2118('0x1d')]();},_0x16c81a);strategy['agent'](_0x2dfb62,_0x381568,_0x394531,_0x3f3098);}else{logger[_0x2118('0x10')](_0x2118('0x1e'),_0x363f57,_0x2dd072[_0x2118('0xd')]);_0x4bc69d['stop']();}}}catch(_0x11f64d){console['log'](_0x11f64d);logger[_0x2118('0x10')]('[%s][QUEUE]\x20%s',_0x363f57,_0x11f64d['stack']);_0x4bc69d['stop']();}};};