Built motion from commit (unavailable).|2.4.20
[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 _0xb3f9=['agentringnoanswer','agentringnoanswerAt','timeout','reason','holdtime','ringtime','queuecallerabandon','abandoned','talktime','agentconnect','agentconnectAt','answered_elsewhere','answeredelsewheredestinationuniqueid','diffTime','blindtransfer','transfereruniqueid','transfer','transfertype','blind','transferexten','attendedtransfer','origtransfererlinkedid','secondtransfereruniqueid','transferuniqueid','origtransfereruniqueid','transfereeuniqueid','agententerreason','clone','calleridname','secondtransfererexten','transfertargetuniqueid','agentcompleteAt','agent','complete','lodash','util','./utils','format','AGENT|%s|%s|%s|%s|%s|%s|%s|%s','uniqueid','channel','membername','calleridnum','connectedlinenum','lastevent','queue','then','type','agentacw','agentcomplete','acw','acwtime','acwTimeout','request','CreateVoiceAgentReport','destuniqueid','agentcalled','agentcalledAt','now','called','connectedlinename','error','stack','isNil'];(function(_0x4eaa15,_0x266946){var _0x5f424e=function(_0x4b5d62){while(--_0x4b5d62){_0x4eaa15['push'](_0x4eaa15['shift']());}};_0x5f424e(++_0x266946);}(_0xb3f9,0x122));var _0x9b3f=function(_0x4854ae,_0x3f2202){_0x4854ae=_0x4854ae-0x0;var _0x145882=_0xb3f9[_0x4854ae];return _0x145882;};'use strict';var _=require(_0x9b3f('0x0'));var util=require(_0x9b3f('0x1'));var utils=require(_0x9b3f('0x2'));var agents={};var transfers={};function writeDB(_0x23c148,_0x303c15){utils['info'](util[_0x9b3f('0x3')](_0x9b3f('0x4'),_0x23c148[_0x9b3f('0x5')],_0x23c148[_0x9b3f('0x6')],_0x23c148['queue'],_0x23c148[_0x9b3f('0x7')],_0x23c148['interface'],_0x23c148[_0x9b3f('0x8')],_0x23c148[_0x9b3f('0x9')],_0x23c148[_0x9b3f('0xa')]));if(_0x23c148[_0x9b3f('0xb')]){utils['getVoiceQueueByName'](_0x23c148['queue'])[_0x9b3f('0xc')](function(_0x2ff7cf){if(_0x2ff7cf){_0x23c148[_0x9b3f('0xd')]=_0x2ff7cf[_0x9b3f('0xd')];_0x23c148[_0x9b3f('0xe')]=_0x23c148[_0x9b3f('0xf')]?_0x2ff7cf[_0x9b3f('0x10')]:![];_0x23c148[_0x9b3f('0x11')]=_0x23c148[_0x9b3f('0xe')]?_0x2ff7cf[_0x9b3f('0x12')]:0x0;}utils[_0x9b3f('0x13')](_0x9b3f('0x14'),_0x23c148);});}else{utils[_0x9b3f('0x13')]('CreateVoiceAgentReport',_0x23c148);}if(_0x303c15){delete transfers[_0x23c148[_0x9b3f('0x5')]];}else{delete agents[_0x23c148[_0x9b3f('0x15')]];}}exports[_0x9b3f('0x16')]=function(_0x84412e){try{agents[_0x84412e[_0x9b3f('0x15')]]=_0x84412e;agents[_0x84412e[_0x9b3f('0x15')]][_0x9b3f('0x17')]=utils[_0x9b3f('0x18')]();agents[_0x84412e[_0x9b3f('0x15')]][_0x9b3f('0xa')]=_0x9b3f('0x19');agents[_0x84412e[_0x9b3f('0x15')]][_0x9b3f('0x9')]=null;agents[_0x84412e['destuniqueid']][_0x9b3f('0x1a')]=null;}catch(_0x32b0e1){utils[_0x9b3f('0x1b')](_0x32b0e1[_0x9b3f('0x1c')]);}};exports['agentringnoanswer']=function(_0x270ebf){try{if(!_[_0x9b3f('0x1d')](agents[_0x270ebf[_0x9b3f('0x15')]])){agents[_0x270ebf[_0x9b3f('0x15')]][_0x9b3f('0x1e')]=!![];agents[_0x270ebf['destuniqueid']][_0x9b3f('0x1f')]=utils['now']();agents[_0x270ebf[_0x9b3f('0x15')]][_0x9b3f('0xa')]=_0x9b3f('0x20');agents[_0x270ebf[_0x9b3f('0x15')]][_0x9b3f('0x21')]='timeout';agents[_0x270ebf[_0x9b3f('0x15')]][_0x9b3f('0x22')]=_0x270ebf['ringtime']?parseInt(_0x270ebf[_0x9b3f('0x23')])/0x3e8:0x0;agents[_0x270ebf['destuniqueid']]['talktime']=0x0;writeDB(agents[_0x270ebf[_0x9b3f('0x15')]]);}}catch(_0x58898e){utils[_0x9b3f('0x1b')](_0x58898e[_0x9b3f('0x1c')]);}};exports[_0x9b3f('0x24')]=function(_0x4a4fd5){try{_['forIn'](agents,function(_0x486349,_0x2d84d7){if(_0x486349[_0x9b3f('0x5')]==_0x4a4fd5['uniqueid']){_0x486349['agentringnoanswer']=!![];_0x486349[_0x9b3f('0x1f')]=utils['now']();_0x486349[_0x9b3f('0xa')]=_0x9b3f('0x25');_0x486349[_0x9b3f('0x21')]=_0x9b3f('0x25');_0x486349[_0x9b3f('0x22')]=_0x4a4fd5[_0x9b3f('0x22')];_0x486349[_0x9b3f('0x26')]=0x0;writeDB(_0x486349);}});}catch(_0x2b64eb){utils[_0x9b3f('0x1b')](_0x2b64eb[_0x9b3f('0x1c')]);}};exports[_0x9b3f('0x27')]=function(_0x58cc23){try{if(agents[_0x58cc23['destuniqueid']]){agents[_0x58cc23['destuniqueid']][_0x9b3f('0x28')]=utils[_0x9b3f('0x18')]();agents[_0x58cc23[_0x9b3f('0x15')]]['connectedlinenum']=_0x58cc23[_0x9b3f('0x9')];agents[_0x58cc23[_0x9b3f('0x15')]][_0x9b3f('0x1a')]=_0x58cc23['connectedlinename'];agents[_0x58cc23['destuniqueid']]['holdtime']=_0x58cc23[_0x9b3f('0x23')];agents[_0x58cc23[_0x9b3f('0x15')]]['lastevent']='connect';_['forIn'](agents,function(_0x758751,_0x432532){if(_0x758751['destuniqueid']!=_0x58cc23[_0x9b3f('0x15')]&&_0x758751[_0x9b3f('0x5')]==_0x58cc23['uniqueid']){_0x758751[_0x9b3f('0x26')]=0x0;_0x758751[_0x9b3f('0x22')]=_0x58cc23[_0x9b3f('0x23')];_0x758751[_0x9b3f('0x1e')]=!![];_0x758751[_0x9b3f('0x1f')]=utils[_0x9b3f('0x18')]();_0x758751[_0x9b3f('0xa')]=_0x9b3f('0x29');_0x758751['reason']=_0x9b3f('0x29');_0x758751[_0x9b3f('0x2a')]=_0x58cc23[_0x9b3f('0x15')];_0x758751['answeredelsewheremembername']=_0x58cc23[_0x9b3f('0x7')];writeDB(_0x758751);}});}}catch(_0x37cfe4){utils[_0x9b3f('0x1b')](_0x37cfe4[_0x9b3f('0x1c')]);}};exports[_0x9b3f('0xf')]=function(_0x28c92d){try{if(!_['isNil'](agents[_0x28c92d['destuniqueid']])){agents[_0x28c92d[_0x9b3f('0x15')]][_0x9b3f('0xf')]=!![];agents[_0x28c92d['destuniqueid']]['agentcompleteAt']=utils[_0x9b3f('0x18')]();agents[_0x28c92d[_0x9b3f('0x15')]][_0x9b3f('0x26')]=utils[_0x9b3f('0x2b')](agents[_0x28c92d[_0x9b3f('0x15')]]['agentcompleteAt'],agents[_0x28c92d[_0x9b3f('0x15')]][_0x9b3f('0x28')]);agents[_0x28c92d[_0x9b3f('0x15')]][_0x9b3f('0x21')]=_0x28c92d[_0x9b3f('0x21')];agents[_0x28c92d[_0x9b3f('0x15')]]['lastevent']='complete';writeDB(agents[_0x28c92d['destuniqueid']]);}}catch(_0x3dc8f3){utils[_0x9b3f('0x1b')](_0x3dc8f3['stack']);}};exports[_0x9b3f('0x2c')]=function(_0x36ce1c){try{if(!_[_0x9b3f('0x1d')](agents[_0x36ce1c[_0x9b3f('0x2d')]])){agents[_0x36ce1c['transfereruniqueid']][_0x9b3f('0x2e')]=!![];agents[_0x36ce1c[_0x9b3f('0x2d')]][_0x9b3f('0x2f')]=_0x9b3f('0x30');agents[_0x36ce1c['transfereruniqueid']][_0x9b3f('0x31')]=_0x36ce1c['extension'];agents[_0x36ce1c['transfereruniqueid']]['transferuniqueid']=agents[_0x36ce1c[_0x9b3f('0x2d')]]['uniqueid'];}}catch(_0x5e85f5){utils[_0x9b3f('0x1b')](_0x5e85f5['stack']);}};exports[_0x9b3f('0x32')]=function(_0x361ca0){try{if(_0x361ca0['origtransfereruniqueid']==_0x361ca0[_0x9b3f('0x33')]){if(!_[_0x9b3f('0x1d')](agents[_0x361ca0[_0x9b3f('0x34')]])){agents[_0x361ca0[_0x9b3f('0x34')]][_0x9b3f('0x2e')]=!![];agents[_0x361ca0[_0x9b3f('0x34')]][_0x9b3f('0x2f')]='ATTENDED';agents[_0x361ca0[_0x9b3f('0x34')]][_0x9b3f('0x31')]=_0x361ca0['origtransfererexten'];agents[_0x361ca0['secondtransfereruniqueid']][_0x9b3f('0x35')]=_0x361ca0[_0x9b3f('0x36')];}if(_0x361ca0[_0x9b3f('0x37')]&&agents[_0x361ca0[_0x9b3f('0x37')]]){agents[_0x361ca0[_0x9b3f('0x37')]][_0x9b3f('0x38')]=0x1;transfers[_0x361ca0[_0x9b3f('0x37')]]=_[_0x9b3f('0x39')](agents[_0x361ca0[_0x9b3f('0x37')]]);transfers[_0x361ca0[_0x9b3f('0x37')]][_0x9b3f('0x8')]=agents[_0x361ca0[_0x9b3f('0x34')]][_0x9b3f('0x8')];transfers[_0x361ca0[_0x9b3f('0x37')]][_0x9b3f('0x3a')]=agents[_0x361ca0[_0x9b3f('0x34')]][_0x9b3f('0x3a')];transfers[_0x361ca0[_0x9b3f('0x37')]][_0x9b3f('0x17')]=utils[_0x9b3f('0x18')]();transfers[_0x361ca0[_0x9b3f('0x37')]]['agentconnectAt']=utils['now']();transfers[_0x361ca0['transfereeuniqueid']]['holdtime']=0x0;transfers[_0x361ca0[_0x9b3f('0x37')]][_0x9b3f('0x38')]=0x2;}}else if(_0x361ca0['secondtransfereruniqueid']==_0x361ca0['secondtransfererlinkedid']){if(!_[_0x9b3f('0x1d')](agents[_0x361ca0[_0x9b3f('0x36')]])){agents[_0x361ca0['origtransfereruniqueid']]['transfer']=!![];agents[_0x361ca0[_0x9b3f('0x36')]]['transfertype']='ATTENDED';agents[_0x361ca0['origtransfereruniqueid']][_0x9b3f('0x31')]=_0x361ca0[_0x9b3f('0x3b')];agents[_0x361ca0[_0x9b3f('0x36')]][_0x9b3f('0x35')]=_0x361ca0[_0x9b3f('0x34')];}if(_0x361ca0[_0x9b3f('0x3c')]&&agents[_0x361ca0[_0x9b3f('0x3c')]]){agents[_0x361ca0[_0x9b3f('0x3c')]][_0x9b3f('0x38')]=0x1;transfers[_0x361ca0['transfertargetuniqueid']]=_[_0x9b3f('0x39')](agents[_0x361ca0[_0x9b3f('0x3c')]]);transfers[_0x361ca0['transfertargetuniqueid']]['calleridnum']=agents[_0x361ca0[_0x9b3f('0x36')]][_0x9b3f('0x8')];transfers[_0x361ca0[_0x9b3f('0x3c')]]['calleridname']=agents[_0x361ca0[_0x9b3f('0x36')]]['calleridname'];transfers[_0x361ca0['transfertargetuniqueid']][_0x9b3f('0x17')]=utils[_0x9b3f('0x18')]();transfers[_0x361ca0['transfertargetuniqueid']][_0x9b3f('0x28')]=utils['now']();transfers[_0x361ca0[_0x9b3f('0x3c')]][_0x9b3f('0x22')]=0x0;transfers[_0x361ca0['transfertargetuniqueid']][_0x9b3f('0x38')]=0x2;}}}catch(_0x23e1e8){utils['error'](_0x23e1e8['stack']);}};exports['hangup']=function(_0x13d165){try{if(transfers[_0x13d165[_0x9b3f('0x5')]]){transfers[_0x13d165[_0x9b3f('0x5')]][_0x9b3f('0xf')]=!![];transfers[_0x13d165[_0x9b3f('0x5')]]['agentcompleteAt']=utils['now']();transfers[_0x13d165['uniqueid']]['talktime']=utils[_0x9b3f('0x2b')](transfers[_0x13d165['uniqueid']][_0x9b3f('0x3d')],transfers[_0x13d165[_0x9b3f('0x5')]]['agentconnectAt']);transfers[_0x13d165['uniqueid']][_0x9b3f('0x21')]=_0x9b3f('0x3e');transfers[_0x13d165[_0x9b3f('0x5')]][_0x9b3f('0xa')]=_0x9b3f('0x3f');writeDB(transfers[_0x13d165[_0x9b3f('0x5')]],!![]);}if(agents[_0x13d165[_0x9b3f('0x5')]]&&agents[_0x13d165[_0x9b3f('0x5')]][_0x9b3f('0x28')]){agents[_0x13d165[_0x9b3f('0x5')]][_0x9b3f('0xf')]=!![];agents[_0x13d165[_0x9b3f('0x5')]][_0x9b3f('0x3d')]=utils[_0x9b3f('0x18')]();agents[_0x13d165[_0x9b3f('0x5')]][_0x9b3f('0x26')]=utils[_0x9b3f('0x2b')](agents[_0x13d165[_0x9b3f('0x5')]]['agentcompleteAt'],agents[_0x13d165[_0x9b3f('0x5')]]['agentconnectAt']);agents[_0x13d165[_0x9b3f('0x5')]][_0x9b3f('0x21')]=agents[_0x13d165['uniqueid']][_0x9b3f('0x2e')]?_0x9b3f('0x2e'):'agent';agents[_0x13d165[_0x9b3f('0x5')]][_0x9b3f('0xa')]=_0x9b3f('0x3f');writeDB(agents[_0x13d165['uniqueid']]);}}catch(_0x4ef0a4){utils[_0x9b3f('0x1b')](_0x4ef0a4[_0x9b3f('0x1c')]);}};