Built motion from commit (unavailable).|2.5.23
[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 _0x6007=['./strategy','string','name\x20is\x20a\x20string\x20and\x20it\x20is\x20required','number','timeout\x20is\x20a\x20number','info','format','name','validate','length','error','message','join','stop','find','agents','timeout','atimeout','START:%s','end','[%s][AGENT]\x20ROUTING\x20STOPPED','close','rules','complete','[%s][AGENT]\x20ROUTING\x20END','next','log','stack','lodash','routing'];(function(_0x5fa520,_0xaf0e7d){var _0x1bf6c4=function(_0x2a7440){while(--_0x2a7440){_0x5fa520['push'](_0x5fa520['shift']());}};_0x1bf6c4(++_0xaf0e7d);}(_0x6007,0x1c0));var _0x7600=function(_0x474bc0,_0x26989c){_0x474bc0=_0x474bc0-0x0;var _0x4b24cf=_0x6007[_0x474bc0];return _0x4b24cf;};'use strict';var schema=require('validate');var _=require(_0x7600('0x0'));var util=require('util');var seqqueue=require('seq-queue');var logger=require('../../../../config/logger')(_0x7600('0x1'));var strategy=require(_0x7600('0x2'));var queue=schema({'name':{'type':_0x7600('0x3'),'required':!![],'message':_0x7600('0x4')},'timeout':{'type':_0x7600('0x5'),'message':_0x7600('0x6')}});function writeLog(_0x31d085,_0x27bcd0,_0x316876){return logger[_0x7600('0x7')](util[_0x7600('0x8')]('[%s][AGENT][NAME:%s][STATUS:%s]',_0x31d085,_0x27bcd0[_0x7600('0x9')],_0x316876));}function handleFindAgent(_0x461997){return function(_0x56fa51){return _0x56fa51[_0x7600('0x9')]['toLowerCase']()===_0x461997['toLowerCase']();};}exports['consequence']=function(_0x3bba97,_0x49dd5d,_0x26961b,_0x46825d){return function(_0x172708){try{var _0x80ea6d={'name':_0x49dd5d[0x0],'timeout':_0x49dd5d[0x1]};var _0x16f946=queue[_0x7600('0xa')](_0x80ea6d,{'typecast':!![]});if(_0x16f946[_0x7600('0xb')]){logger[_0x7600('0xc')]('[%s][AGENT]\x20%s',_0x3bba97,_['map'](_0x16f946,_0x7600('0xd'))[_0x7600('0xe')](',\x20'));_0x172708[_0x7600('0xf')]();}else{var _0x35fd15=_[_0x7600('0x10')](_0x26961b[_0x7600('0x11')],handleFindAgent(_0x80ea6d['name']));if(_0x35fd15){var _0x435f17=(_0x80ea6d[_0x7600('0x12')]||0xa)*0x3e8;var _0x19fcec,_0x25b1fb;var _0x3b11a3=seqqueue['createQueue'](_0x435f17);_0x3b11a3['id']=_0x3bba97;_0x3b11a3[_0x7600('0x13')]=_0x435f17;_0x3b11a3['channel']=_0x46825d['channel'];writeLog(_0x3bba97,_0x35fd15,util['format'](_0x7600('0x14'),_0x435f17));_0x26961b['rules'][_0x3bba97]['on'](_0x7600('0x15'),function(){logger[_0x7600('0x7')](_0x7600('0x16'),_0x3bba97);clearTimeout(_0x25b1fb);_0x25b1fb=undefined;_0x3b11a3[_0x7600('0x17')]();if(_0x26961b['rules'][_0x3bba97]){delete _0x26961b[_0x7600('0x18')][_0x3bba97];}_0x172708[_0x7600('0xf')]();});_0x26961b['rules'][_0x3bba97]['on'](_0x7600('0x19'),function(){if(_0x26961b[_0x7600('0x18')][_0x3bba97]){delete _0x26961b['rules'][_0x3bba97];}});_0x25b1fb=setTimeout(function(){logger[_0x7600('0x7')](_0x7600('0x1a'),_0x3bba97);clearTimeout(_0x25b1fb);_0x3b11a3[_0x7600('0x17')]();_0x172708[_0x7600('0x1b')]();},_0x435f17);strategy['agent'](_0x3b11a3,_0x35fd15,_0x26961b,_0x46825d);}else{logger[_0x7600('0xc')]('[%s][AGENT]\x20agent\x20not\x20found\x20%s',_0x3bba97,_0x80ea6d[_0x7600('0x9')]);_0x172708[_0x7600('0xf')]();}}}catch(_0x2d0cf5){console[_0x7600('0x1c')](_0x2d0cf5);logger['error']('[%s][QUEUE]\x20%s',_0x3bba97,_0x2d0cf5[_0x7600('0x1d')]);_0x172708['stop']();}};};