0cfaafc89539301d029c9b52355c89ee84ebe46e
[motion2.git] / server / services / xdr / agents.controller.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 _0xd4f4=['holdtime','ringtime','talktime','push','queuecallerabandon','forIn','includes','[%s][agents][queuecallerabandon]','[%s][agents][queuecallerabandon]\x20agent:%s\x20destuniqueid:%s\x20lastevent:abandoned','abandoned','agentconnect','connectedlinename','answered_elsewhere','answeredelsewheredestinationuniqueid','[%s][agents][agentcomplete]\x20agent:%s\x20destuniqueid:%s\x20lastevent:complete','diffTime','agentcompleteAt','agentconnectAt','complete','[%s][agents][agentcomplete]','blindtransfer','transfereruniqueid','[%s][agents][blindtransfer]','[%s][agents][blindtransfer]\x20agent:%s\x20transferuniqueid:%s','blind','transferuniqueid','[%s][agents][attendedtransfer]','origtransfereruniqueid','origtransfererlinkedid','secondtransfereruniqueid','[%s][agents][attendedtransfer]\x20agent:%s','transfer','transfertype','transferexten','origtransfererexten','transfereeuniqueid','clone','calleridnum','calleridname','agententerreason','secondtransfererlinkedid','isNil','ATTENDED','transfertargetuniqueid','hangup','cause','rejected','[%s][agents][hangup]\x20agent:%s\x20reason:%s\x20lastevent:%s','indexOf','splice','agent','[%s][agents][hangup]','lodash','util','./utils','info','format','[%s][agents][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','uniqueid','channel','queue','connectedlinenum','lastevent','getVoiceQueueByName','then','type','agentacw','agentcomplete','acw','acwtime','acwTimeout','request','CreateVoiceAgentReport','agentcalled','[%s][agents][agentcalled]','destuniqueid','agentcalledAt','now','error','debug','[%s][agents][agentringnoanswer]','[%s][agents][agentringnoanswer]\x20agent:%s\x20destuniqueid:%s\x20lastevent:timeout','membername','agentringnoanswer','agentringnoanswerAt','reason','timeout'];(function(_0x5a95fa,_0x4a2fc9){var _0x1a61b8=function(_0x59f119){while(--_0x59f119){_0x5a95fa['push'](_0x5a95fa['shift']());}};_0x1a61b8(++_0x4a2fc9);}(_0xd4f4,0x8b));var _0x4d4f=function(_0x1c1457,_0x56eaa2){_0x1c1457=_0x1c1457-0x0;var _0x2a6ab7=_0xd4f4[_0x1c1457];return _0x2a6ab7;};'use strict';var _=require(_0x4d4f('0x0'));var util=require(_0x4d4f('0x1'));var utils=require(_0x4d4f('0x2'));var agents={};var transfers={};var unanswered=[];function writeDB(_0x3c9311,_0x2fc384){utils[_0x4d4f('0x3')](util[_0x4d4f('0x4')](_0x4d4f('0x5'),_0x3c9311[_0x4d4f('0x6')],_0x3c9311[_0x4d4f('0x7')],_0x3c9311[_0x4d4f('0x8')],_0x3c9311['membername'],_0x3c9311['interface'],_0x3c9311['calleridnum'],_0x3c9311[_0x4d4f('0x9')],_0x3c9311[_0x4d4f('0xa')]));if(_0x3c9311[_0x4d4f('0x8')]){utils[_0x4d4f('0xb')](_0x3c9311[_0x4d4f('0x8')])[_0x4d4f('0xc')](function(_0x1bd887){if(_0x1bd887){_0x3c9311[_0x4d4f('0xd')]=_0x1bd887[_0x4d4f('0xd')];_0x3c9311[_0x4d4f('0xe')]=_0x3c9311[_0x4d4f('0xf')]?_0x1bd887[_0x4d4f('0x10')]:![];_0x3c9311[_0x4d4f('0x11')]=_0x3c9311[_0x4d4f('0xe')]?_0x1bd887[_0x4d4f('0x12')]:0x0;}utils[_0x4d4f('0x13')](_0x4d4f('0x14'),_0x3c9311);});}else{utils[_0x4d4f('0x13')]('CreateVoiceAgentReport',_0x3c9311);}if(_0x2fc384){delete transfers[_0x3c9311['uniqueid']];}else{delete agents[_0x3c9311['destuniqueid']];}}exports[_0x4d4f('0x15')]=function(_0xe9b7a6){try{utils['debug'](util[_0x4d4f('0x4')](_0x4d4f('0x16'),_0xe9b7a6[_0x4d4f('0x6')]),_0xe9b7a6);agents[_0xe9b7a6['destuniqueid']]=_0xe9b7a6;agents[_0xe9b7a6[_0x4d4f('0x17')]][_0x4d4f('0x18')]=utils[_0x4d4f('0x19')]();agents[_0xe9b7a6['destuniqueid']][_0x4d4f('0xa')]='called';agents[_0xe9b7a6[_0x4d4f('0x17')]][_0x4d4f('0x9')]=null;agents[_0xe9b7a6[_0x4d4f('0x17')]]['connectedlinename']=null;utils[_0x4d4f('0x3')](util[_0x4d4f('0x4')]('[%s][agents][agentcalled]\x20agent:%s\x20destuniqueid:%s\x20lastevent:called',_0xe9b7a6['uniqueid'],agents[_0xe9b7a6['destuniqueid']]['membername'],_0xe9b7a6['destuniqueid']));}catch(_0x34429e){utils[_0x4d4f('0x1a')](util[_0x4d4f('0x4')](_0x4d4f('0x16'),_0xe9b7a6['uniqueid']),_0x34429e);}};exports['agentringnoanswer']=function(_0x1e1ae2){try{if(!_['isNil'](agents[_0x1e1ae2[_0x4d4f('0x17')]])){utils[_0x4d4f('0x1b')](util[_0x4d4f('0x4')](_0x4d4f('0x1c'),_0x1e1ae2[_0x4d4f('0x6')]),_0x1e1ae2);utils['info'](util['format'](_0x4d4f('0x1d'),_0x1e1ae2['uniqueid'],agents[_0x1e1ae2[_0x4d4f('0x17')]][_0x4d4f('0x1e')],_0x1e1ae2[_0x4d4f('0x17')]));agents[_0x1e1ae2[_0x4d4f('0x17')]][_0x4d4f('0x1f')]=!![];agents[_0x1e1ae2['destuniqueid']][_0x4d4f('0x20')]=utils[_0x4d4f('0x19')]();agents[_0x1e1ae2[_0x4d4f('0x17')]][_0x4d4f('0xa')]='timeout';agents[_0x1e1ae2['destuniqueid']][_0x4d4f('0x21')]=_0x4d4f('0x22');agents[_0x1e1ae2[_0x4d4f('0x17')]][_0x4d4f('0x23')]=_0x1e1ae2['ringtime']?parseInt(_0x1e1ae2[_0x4d4f('0x24')])/0x3e8:0x0;agents[_0x1e1ae2[_0x4d4f('0x17')]][_0x4d4f('0x25')]=0x0;unanswered[_0x4d4f('0x26')](_0x1e1ae2['destuniqueid']);}}catch(_0x338ba2){utils['error'](util[_0x4d4f('0x4')](_0x4d4f('0x1c'),_0x1e1ae2['uniqueid']),_0x338ba2);}};exports[_0x4d4f('0x27')]=function(_0x123383){try{_[_0x4d4f('0x28')](agents,function(_0x3d7f14,_0x19a502){if(_0x3d7f14[_0x4d4f('0x6')]==_0x123383['uniqueid']&&!_[_0x4d4f('0x29')](unanswered,_0x3d7f14[_0x4d4f('0x17')])){utils[_0x4d4f('0x1b')](util[_0x4d4f('0x4')](_0x4d4f('0x2a'),_0x123383['uniqueid']),_0x123383);utils[_0x4d4f('0x3')](util['format'](_0x4d4f('0x2b'),_0x123383['uniqueid'],_0x3d7f14['membername'],_0x3d7f14['destuniqueid']));_0x3d7f14[_0x4d4f('0x1f')]=!![];_0x3d7f14['agentringnoanswerAt']=utils[_0x4d4f('0x19')]();_0x3d7f14[_0x4d4f('0xa')]=_0x4d4f('0x2c');_0x3d7f14['reason']=_0x4d4f('0x2c');_0x3d7f14[_0x4d4f('0x23')]=_0x123383[_0x4d4f('0x23')];_0x3d7f14['talktime']=0x0;writeDB(_0x3d7f14);}});}catch(_0x6a30c4){utils['error'](util[_0x4d4f('0x4')](_0x4d4f('0x2a'),_0x123383[_0x4d4f('0x6')]),_0x6a30c4);}};exports[_0x4d4f('0x2d')]=function(_0x2448f3){try{if(agents[_0x2448f3[_0x4d4f('0x17')]]){utils[_0x4d4f('0x1b')](util[_0x4d4f('0x4')]('[%s][agents][agentconnect]',_0x2448f3['uniqueid']),_0x2448f3);utils[_0x4d4f('0x3')](util['format']('[%s][agents][agentconnect]\x20agent:%s\x20destuniqueid:%s\x20lastevent:connect',_0x2448f3[_0x4d4f('0x6')],agents[_0x2448f3[_0x4d4f('0x17')]][_0x4d4f('0x1e')],_0x2448f3[_0x4d4f('0x17')]));agents[_0x2448f3[_0x4d4f('0x17')]]['agentconnectAt']=utils[_0x4d4f('0x19')]();agents[_0x2448f3[_0x4d4f('0x17')]]['connectedlinenum']=_0x2448f3[_0x4d4f('0x9')];agents[_0x2448f3[_0x4d4f('0x17')]][_0x4d4f('0x2e')]=_0x2448f3[_0x4d4f('0x2e')];agents[_0x2448f3[_0x4d4f('0x17')]][_0x4d4f('0x23')]=_0x2448f3[_0x4d4f('0x24')];agents[_0x2448f3[_0x4d4f('0x17')]][_0x4d4f('0xa')]='connect';_['forIn'](agents,function(_0x1cb919,_0x324a3c){if(_0x1cb919[_0x4d4f('0x17')]!=_0x2448f3[_0x4d4f('0x17')]&&_0x1cb919['uniqueid']==_0x2448f3['uniqueid']){_0x1cb919[_0x4d4f('0x25')]=0x0;_0x1cb919[_0x4d4f('0x23')]=_0x2448f3['ringtime'];_0x1cb919['agentringnoanswer']=!![];_0x1cb919[_0x4d4f('0x20')]=utils[_0x4d4f('0x19')]();_0x1cb919['lastevent']=_0x4d4f('0x2f');_0x1cb919[_0x4d4f('0x21')]=_0x4d4f('0x2f');_0x1cb919[_0x4d4f('0x30')]=_0x2448f3[_0x4d4f('0x17')];_0x1cb919['answeredelsewheremembername']=_0x2448f3[_0x4d4f('0x1e')];writeDB(_0x1cb919);}});}}catch(_0x4c7c24){utils[_0x4d4f('0x1a')](util[_0x4d4f('0x4')]('[%s][agents][agentconnect]',_0x2448f3[_0x4d4f('0x6')]),_0x4c7c24);}};exports[_0x4d4f('0xf')]=function(_0x1f7169){try{if(!_['isNil'](agents[_0x1f7169[_0x4d4f('0x17')]])){utils['debug'](util[_0x4d4f('0x4')]('[%s][agents][agentcomplete]',_0x1f7169[_0x4d4f('0x6')]),_0x1f7169);utils[_0x4d4f('0x3')](util[_0x4d4f('0x4')](_0x4d4f('0x31'),_0x1f7169[_0x4d4f('0x6')],agents[_0x1f7169['destuniqueid']]['membername'],_0x1f7169[_0x4d4f('0x17')]));agents[_0x1f7169[_0x4d4f('0x17')]][_0x4d4f('0xf')]=!![];agents[_0x1f7169[_0x4d4f('0x17')]]['agentcompleteAt']=utils['now']();agents[_0x1f7169['destuniqueid']][_0x4d4f('0x25')]=utils[_0x4d4f('0x32')](agents[_0x1f7169[_0x4d4f('0x17')]][_0x4d4f('0x33')],agents[_0x1f7169[_0x4d4f('0x17')]][_0x4d4f('0x34')]);agents[_0x1f7169[_0x4d4f('0x17')]][_0x4d4f('0x21')]=_0x1f7169[_0x4d4f('0x21')];agents[_0x1f7169[_0x4d4f('0x17')]][_0x4d4f('0xa')]=_0x4d4f('0x35');writeDB(agents[_0x1f7169['destuniqueid']]);}}catch(_0xb0937d){utils[_0x4d4f('0x1a')](util['format'](_0x4d4f('0x36'),_0x1f7169['uniqueid']),_0xb0937d);}};exports[_0x4d4f('0x37')]=function(_0x401466){try{if(!_['isNil'](agents[_0x401466[_0x4d4f('0x38')]])){utils[_0x4d4f('0x1b')](util[_0x4d4f('0x4')](_0x4d4f('0x39'),_0x401466[_0x4d4f('0x6')]),_0x401466);utils[_0x4d4f('0x3')](util[_0x4d4f('0x4')](_0x4d4f('0x3a'),_0x401466[_0x4d4f('0x6')],agents[_0x401466[_0x4d4f('0x38')]][_0x4d4f('0x1e')],agents[_0x401466[_0x4d4f('0x38')]]['uniqueid']));agents[_0x401466[_0x4d4f('0x38')]]['transfer']=!![];agents[_0x401466['transfereruniqueid']]['transfertype']=_0x4d4f('0x3b');agents[_0x401466[_0x4d4f('0x38')]]['transferexten']=_0x401466['extension'];agents[_0x401466[_0x4d4f('0x38')]][_0x4d4f('0x3c')]=agents[_0x401466['transfereruniqueid']][_0x4d4f('0x6')];}}catch(_0x528573){utils[_0x4d4f('0x1a')](util[_0x4d4f('0x4')](_0x4d4f('0x39'),_0x401466[_0x4d4f('0x6')]),_0x528573);}};exports['attendedtransfer']=function(_0x224b83){try{utils[_0x4d4f('0x1b')](util[_0x4d4f('0x4')](_0x4d4f('0x3d'),_0x224b83[_0x4d4f('0x3e')]),_0x224b83);if(_0x224b83['origtransfereruniqueid']==_0x224b83[_0x4d4f('0x3f')]){if(!_['isNil'](agents[_0x224b83[_0x4d4f('0x40')]])){utils['info'](util[_0x4d4f('0x4')](_0x4d4f('0x41'),_0x224b83['origtransfereruniqueid'],agents[_0x224b83[_0x4d4f('0x40')]][_0x4d4f('0x1e')]));agents[_0x224b83['secondtransfereruniqueid']][_0x4d4f('0x42')]=!![];agents[_0x224b83['secondtransfereruniqueid']][_0x4d4f('0x43')]='ATTENDED';agents[_0x224b83['secondtransfereruniqueid']][_0x4d4f('0x44')]=_0x224b83[_0x4d4f('0x45')];agents[_0x224b83[_0x4d4f('0x40')]][_0x4d4f('0x3c')]=_0x224b83[_0x4d4f('0x3e')];}if(_0x224b83['transfereeuniqueid']&&agents[_0x224b83['transfereeuniqueid']]){agents[_0x224b83[_0x4d4f('0x46')]]['agententerreason']=0x1;transfers[_0x224b83[_0x4d4f('0x46')]]=_[_0x4d4f('0x47')](agents[_0x224b83[_0x4d4f('0x46')]]);transfers[_0x224b83[_0x4d4f('0x46')]][_0x4d4f('0x48')]=agents[_0x224b83[_0x4d4f('0x40')]]['calleridnum'];transfers[_0x224b83[_0x4d4f('0x46')]][_0x4d4f('0x49')]=agents[_0x224b83[_0x4d4f('0x40')]]['calleridname'];transfers[_0x224b83[_0x4d4f('0x46')]][_0x4d4f('0x18')]=utils[_0x4d4f('0x19')]();transfers[_0x224b83['transfereeuniqueid']][_0x4d4f('0x34')]=utils['now']();transfers[_0x224b83[_0x4d4f('0x46')]][_0x4d4f('0x23')]=0x0;transfers[_0x224b83[_0x4d4f('0x46')]][_0x4d4f('0x4a')]=0x2;}}else if(_0x224b83[_0x4d4f('0x40')]==_0x224b83[_0x4d4f('0x4b')]){if(!_[_0x4d4f('0x4c')](agents[_0x224b83[_0x4d4f('0x3e')]])){utils[_0x4d4f('0x3')](util['format'](_0x4d4f('0x41'),_0x224b83[_0x4d4f('0x3e')],agents[_0x224b83['origtransfereruniqueid']][_0x4d4f('0x1e')]));agents[_0x224b83[_0x4d4f('0x3e')]][_0x4d4f('0x42')]=!![];agents[_0x224b83[_0x4d4f('0x3e')]]['transfertype']=_0x4d4f('0x4d');agents[_0x224b83[_0x4d4f('0x3e')]]['transferexten']=_0x224b83['secondtransfererexten'];agents[_0x224b83[_0x4d4f('0x3e')]][_0x4d4f('0x3c')]=_0x224b83['secondtransfereruniqueid'];}if(_0x224b83['transfertargetuniqueid']&&agents[_0x224b83['transfertargetuniqueid']]){agents[_0x224b83[_0x4d4f('0x4e')]][_0x4d4f('0x4a')]=0x1;transfers[_0x224b83['transfertargetuniqueid']]=_[_0x4d4f('0x47')](agents[_0x224b83[_0x4d4f('0x4e')]]);transfers[_0x224b83[_0x4d4f('0x4e')]][_0x4d4f('0x48')]=agents[_0x224b83[_0x4d4f('0x3e')]][_0x4d4f('0x48')];transfers[_0x224b83[_0x4d4f('0x4e')]][_0x4d4f('0x49')]=agents[_0x224b83['origtransfereruniqueid']][_0x4d4f('0x49')];transfers[_0x224b83['transfertargetuniqueid']][_0x4d4f('0x18')]=utils[_0x4d4f('0x19')]();transfers[_0x224b83[_0x4d4f('0x4e')]]['agentconnectAt']=utils[_0x4d4f('0x19')]();transfers[_0x224b83[_0x4d4f('0x4e')]][_0x4d4f('0x23')]=0x0;transfers[_0x224b83[_0x4d4f('0x4e')]]['agententerreason']=0x2;}}}catch(_0x4184fa){utils['error'](util[_0x4d4f('0x4')]('[%s][agents][attendedtransfer]',_0x224b83['origtransfereruniqueid']),_0x4184fa);}};exports[_0x4d4f('0x4f')]=function(_0x2d99e4){try{utils['debug'](util[_0x4d4f('0x4')]('[%s][agents][hangup]',_0x2d99e4[_0x4d4f('0x6')]),_0x2d99e4);if(agents[_0x2d99e4[_0x4d4f('0x6')]]&&agents[_0x2d99e4[_0x4d4f('0x6')]][_0x4d4f('0x21')]==='timeout'){if(_0x2d99e4[_0x4d4f('0x50')]==='21'){agents[_0x2d99e4[_0x4d4f('0x6')]][_0x4d4f('0x21')]='rejected';agents[_0x2d99e4[_0x4d4f('0x6')]][_0x4d4f('0xa')]=_0x4d4f('0x51');}utils[_0x4d4f('0x3')](util[_0x4d4f('0x4')](_0x4d4f('0x52'),_0x2d99e4['uniqueid'],agents[_0x2d99e4['uniqueid']][_0x4d4f('0x1e')],agents[_0x2d99e4[_0x4d4f('0x6')]]['reason'],agents[_0x2d99e4[_0x4d4f('0x6')]][_0x4d4f('0xa')]));writeDB(agents[_0x2d99e4[_0x4d4f('0x6')]]);var _0x133fc5=unanswered[_0x4d4f('0x53')](_0x2d99e4[_0x4d4f('0x6')]);if(_0x133fc5>-0x1){unanswered[_0x4d4f('0x54')](_0x133fc5,0x1);}}if(transfers[_0x2d99e4[_0x4d4f('0x6')]]){transfers[_0x2d99e4[_0x4d4f('0x6')]][_0x4d4f('0xf')]=!![];transfers[_0x2d99e4[_0x4d4f('0x6')]][_0x4d4f('0x33')]=utils[_0x4d4f('0x19')]();transfers[_0x2d99e4[_0x4d4f('0x6')]][_0x4d4f('0x25')]=utils['diffTime'](transfers[_0x2d99e4[_0x4d4f('0x6')]][_0x4d4f('0x33')],transfers[_0x2d99e4[_0x4d4f('0x6')]][_0x4d4f('0x34')]);transfers[_0x2d99e4['uniqueid']]['reason']=_0x4d4f('0x55');transfers[_0x2d99e4[_0x4d4f('0x6')]][_0x4d4f('0xa')]=_0x4d4f('0x35');utils[_0x4d4f('0x3')](util[_0x4d4f('0x4')](_0x4d4f('0x52'),_0x2d99e4[_0x4d4f('0x6')],transfers[_0x2d99e4[_0x4d4f('0x6')]][_0x4d4f('0x1e')],transfers[_0x2d99e4['uniqueid']][_0x4d4f('0x21')],transfers[_0x2d99e4[_0x4d4f('0x6')]][_0x4d4f('0xa')]));writeDB(transfers[_0x2d99e4[_0x4d4f('0x6')]],!![]);}if(agents[_0x2d99e4['uniqueid']]&&agents[_0x2d99e4['uniqueid']]['agentconnectAt']){agents[_0x2d99e4[_0x4d4f('0x6')]]['agentcomplete']=!![];agents[_0x2d99e4[_0x4d4f('0x6')]][_0x4d4f('0x33')]=utils[_0x4d4f('0x19')]();agents[_0x2d99e4[_0x4d4f('0x6')]][_0x4d4f('0x25')]=utils[_0x4d4f('0x32')](agents[_0x2d99e4[_0x4d4f('0x6')]][_0x4d4f('0x33')],agents[_0x2d99e4['uniqueid']]['agentconnectAt']);agents[_0x2d99e4[_0x4d4f('0x6')]]['reason']=agents[_0x2d99e4[_0x4d4f('0x6')]][_0x4d4f('0x42')]?_0x4d4f('0x42'):'agent';agents[_0x2d99e4['uniqueid']]['lastevent']=_0x4d4f('0x35');utils['info'](util[_0x4d4f('0x4')]('[%s][agents][hangup]\x20agent:%s\x20reason:%s\x20lastevent:%s',_0x2d99e4[_0x4d4f('0x6')],agents[_0x2d99e4[_0x4d4f('0x6')]][_0x4d4f('0x1e')],agents[_0x2d99e4[_0x4d4f('0x6')]][_0x4d4f('0x21')],agents[_0x2d99e4[_0x4d4f('0x6')]]['lastevent']));writeDB(agents[_0x2d99e4[_0x4d4f('0x6')]]);}}catch(_0x3beacf){utils[_0x4d4f('0x1a')](util[_0x4d4f('0x4')](_0x4d4f('0x56'),_0x2d99e4['uniqueid']),_0x3beacf);}};