fbea4e292cf406adb1fe84090aab5711a4c93dd1
[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 _0xb43b=['type','agentcomplete','acw','acwtime','agentacw','acwTimeout','request','CreateVoiceAgentReport','agentcalled','format','destuniqueid','connectedlinenum','[%s][agents][agentcalled]\x20agent:%s\x20destuniqueid:%s\x20lastevent:called','[%s][agents][agentcalled]','agentringnoanswer','[%s][agents][agentringnoanswer]\x20agent:%s\x20destuniqueid:%s\x20lastevent:timeout','reason','timeout','ringtime','talktime','push','error','forIn','membername','agentringnoanswerAt','now','abandoned','holdtime','[%s][agents][queuecallerabandon]','agentconnect','debug','[%s][agents][agentconnect]','[%s][agents][agentconnect]\x20agent:%s\x20destuniqueid:%s\x20lastevent:connect','connectedlinename','connect','answered_elsewhere','answeredelsewheredestinationuniqueid','answeredelsewheremembername','isNil','[%s][agents][agentcomplete]','[%s][agents][agentcomplete]\x20agent:%s\x20destuniqueid:%s\x20lastevent:complete','agentcompleteAt','agentconnectAt','complete','blindtransfer','transfereruniqueid','[%s][agents][blindtransfer]','[%s][agents][blindtransfer]\x20agent:%s\x20transferuniqueid:%s','transfer','transfertype','blind','transferexten','extension','attendedtransfer','[%s][agents][attendedtransfer]','origtransfererlinkedid','secondtransfereruniqueid','ATTENDED','transferuniqueid','origtransfereruniqueid','transfereeuniqueid','agententerreason','clone','calleridname','agentcalledAt','secondtransfererlinkedid','[%s][agents][attendedtransfer]\x20agent:%s','secondtransfererexten','transfertargetuniqueid','hangup','[%s][agents][hangup]','cause','rejected','[%s][agents][hangup]\x20agent:%s\x20reason:%s\x20lastevent:%s','indexOf','splice','diffTime','agent','lodash','util','info','[%s][agents][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','uniqueid','channel','queue','calleridnum','lastevent','getVoiceQueueByName','then'];(function(_0x1897ec,_0x2cba5d){var _0x47133b=function(_0x54b796){while(--_0x54b796){_0x1897ec['push'](_0x1897ec['shift']());}};_0x47133b(++_0x2cba5d);}(_0xb43b,0x1b2));var _0xbb43=function(_0x1b62ef,_0x41e4ba){_0x1b62ef=_0x1b62ef-0x0;var _0x24b3ac=_0xb43b[_0x1b62ef];return _0x24b3ac;};'use strict';var _=require(_0xbb43('0x0'));var util=require(_0xbb43('0x1'));var utils=require('./utils');var agents={};var transfers={};var unanswered=[];function writeDB(_0x1bdcfc,_0x1995f8){utils[_0xbb43('0x2')](util['format'](_0xbb43('0x3'),_0x1bdcfc[_0xbb43('0x4')],_0x1bdcfc[_0xbb43('0x5')],_0x1bdcfc[_0xbb43('0x6')],_0x1bdcfc['membername'],_0x1bdcfc['interface'],_0x1bdcfc[_0xbb43('0x7')],_0x1bdcfc['connectedlinenum'],_0x1bdcfc[_0xbb43('0x8')]));if(_0x1bdcfc[_0xbb43('0x6')]){utils[_0xbb43('0x9')](_0x1bdcfc[_0xbb43('0x6')])[_0xbb43('0xa')](function(_0x4a06f3){if(_0x4a06f3){_0x1bdcfc[_0xbb43('0xb')]=_0x4a06f3[_0xbb43('0xb')];_0x1bdcfc['agentacw']=_0x1bdcfc[_0xbb43('0xc')]?_0x4a06f3[_0xbb43('0xd')]:![];_0x1bdcfc[_0xbb43('0xe')]=_0x1bdcfc[_0xbb43('0xf')]?_0x4a06f3[_0xbb43('0x10')]:0x0;}utils[_0xbb43('0x11')]('CreateVoiceAgentReport',_0x1bdcfc);});}else{utils[_0xbb43('0x11')](_0xbb43('0x12'),_0x1bdcfc);}if(_0x1995f8){delete transfers[_0x1bdcfc['uniqueid']];}else{delete agents[_0x1bdcfc['destuniqueid']];}}exports[_0xbb43('0x13')]=function(_0x4a3714){try{utils['debug'](util[_0xbb43('0x14')]('[%s][agents][agentcalled]',_0x4a3714[_0xbb43('0x4')]),_0x4a3714);agents[_0x4a3714[_0xbb43('0x15')]]=_0x4a3714;agents[_0x4a3714['destuniqueid']]['agentcalledAt']=utils['now']();agents[_0x4a3714[_0xbb43('0x15')]][_0xbb43('0x8')]='called';agents[_0x4a3714['destuniqueid']][_0xbb43('0x16')]=null;agents[_0x4a3714['destuniqueid']]['connectedlinename']=null;utils[_0xbb43('0x2')](util[_0xbb43('0x14')](_0xbb43('0x17'),_0x4a3714['uniqueid'],agents[_0x4a3714[_0xbb43('0x15')]]['membername'],_0x4a3714[_0xbb43('0x15')]));}catch(_0x8e6429){utils['error'](util['format'](_0xbb43('0x18'),_0x4a3714[_0xbb43('0x4')]),_0x8e6429);}};exports[_0xbb43('0x19')]=function(_0x2bf2d4){try{if(!_['isNil'](agents[_0x2bf2d4[_0xbb43('0x15')]])){utils['debug'](util[_0xbb43('0x14')]('[%s][agents][agentringnoanswer]',_0x2bf2d4[_0xbb43('0x4')]),_0x2bf2d4);utils['info'](util[_0xbb43('0x14')](_0xbb43('0x1a'),_0x2bf2d4['uniqueid'],agents[_0x2bf2d4[_0xbb43('0x15')]]['membername'],_0x2bf2d4[_0xbb43('0x15')]));agents[_0x2bf2d4[_0xbb43('0x15')]][_0xbb43('0x19')]=!![];agents[_0x2bf2d4['destuniqueid']]['agentringnoanswerAt']=utils['now']();agents[_0x2bf2d4[_0xbb43('0x15')]][_0xbb43('0x8')]='timeout';agents[_0x2bf2d4[_0xbb43('0x15')]][_0xbb43('0x1b')]=_0xbb43('0x1c');agents[_0x2bf2d4[_0xbb43('0x15')]]['holdtime']=_0x2bf2d4['ringtime']?parseInt(_0x2bf2d4[_0xbb43('0x1d')])/0x3e8:0x0;agents[_0x2bf2d4[_0xbb43('0x15')]][_0xbb43('0x1e')]=0x0;unanswered[_0xbb43('0x1f')](_0x2bf2d4[_0xbb43('0x15')]);}}catch(_0x40b04b){utils[_0xbb43('0x20')](util[_0xbb43('0x14')]('[%s][agents][agentringnoanswer]',_0x2bf2d4[_0xbb43('0x4')]),_0x40b04b);}};exports['queuecallerabandon']=function(_0x31fbc8){try{_[_0xbb43('0x21')](agents,function(_0x34f5b2,_0x1880cd){if(_0x34f5b2['uniqueid']==_0x31fbc8[_0xbb43('0x4')]&&!_['includes'](unanswered,_0x34f5b2['destuniqueid'])){utils['debug'](util[_0xbb43('0x14')]('[%s][agents][queuecallerabandon]',_0x31fbc8[_0xbb43('0x4')]),_0x31fbc8);utils[_0xbb43('0x2')](util[_0xbb43('0x14')]('[%s][agents][queuecallerabandon]\x20agent:%s\x20destuniqueid:%s\x20lastevent:abandoned',_0x31fbc8[_0xbb43('0x4')],_0x34f5b2[_0xbb43('0x22')],_0x34f5b2[_0xbb43('0x15')]));_0x34f5b2[_0xbb43('0x19')]=!![];_0x34f5b2[_0xbb43('0x23')]=utils[_0xbb43('0x24')]();_0x34f5b2[_0xbb43('0x8')]=_0xbb43('0x25');_0x34f5b2['reason']=_0xbb43('0x25');_0x34f5b2[_0xbb43('0x26')]=_0x31fbc8[_0xbb43('0x26')];_0x34f5b2[_0xbb43('0x1e')]=0x0;writeDB(_0x34f5b2);}});}catch(_0x4015ec){utils[_0xbb43('0x20')](util[_0xbb43('0x14')](_0xbb43('0x27'),_0x31fbc8[_0xbb43('0x4')]),_0x4015ec);}};exports[_0xbb43('0x28')]=function(_0x21346a){try{if(agents[_0x21346a[_0xbb43('0x15')]]){utils[_0xbb43('0x29')](util[_0xbb43('0x14')](_0xbb43('0x2a'),_0x21346a[_0xbb43('0x4')]),_0x21346a);utils['info'](util[_0xbb43('0x14')](_0xbb43('0x2b'),_0x21346a['uniqueid'],agents[_0x21346a[_0xbb43('0x15')]][_0xbb43('0x22')],_0x21346a[_0xbb43('0x15')]));agents[_0x21346a['destuniqueid']]['agentconnectAt']=utils['now']();agents[_0x21346a[_0xbb43('0x15')]][_0xbb43('0x16')]=_0x21346a['connectedlinenum'];agents[_0x21346a['destuniqueid']][_0xbb43('0x2c')]=_0x21346a[_0xbb43('0x2c')];agents[_0x21346a[_0xbb43('0x15')]][_0xbb43('0x26')]=_0x21346a[_0xbb43('0x1d')];agents[_0x21346a['destuniqueid']][_0xbb43('0x8')]=_0xbb43('0x2d');_[_0xbb43('0x21')](agents,function(_0x3340aa,_0x22fccc){if(_0x3340aa['destuniqueid']!=_0x21346a[_0xbb43('0x15')]&&_0x3340aa['uniqueid']==_0x21346a[_0xbb43('0x4')]){_0x3340aa[_0xbb43('0x1e')]=0x0;_0x3340aa['holdtime']=_0x21346a[_0xbb43('0x1d')];_0x3340aa['agentringnoanswer']=!![];_0x3340aa[_0xbb43('0x23')]=utils[_0xbb43('0x24')]();_0x3340aa[_0xbb43('0x8')]=_0xbb43('0x2e');_0x3340aa['reason']=_0xbb43('0x2e');_0x3340aa[_0xbb43('0x2f')]=_0x21346a['destuniqueid'];_0x3340aa[_0xbb43('0x30')]=_0x21346a['membername'];writeDB(_0x3340aa);}});}}catch(_0x42b965){utils[_0xbb43('0x20')](util[_0xbb43('0x14')](_0xbb43('0x2a'),_0x21346a[_0xbb43('0x4')]),_0x42b965);}};exports[_0xbb43('0xc')]=function(_0x4bf8ed){try{if(!_[_0xbb43('0x31')](agents[_0x4bf8ed['destuniqueid']])){utils[_0xbb43('0x29')](util[_0xbb43('0x14')](_0xbb43('0x32'),_0x4bf8ed[_0xbb43('0x4')]),_0x4bf8ed);utils['info'](util[_0xbb43('0x14')](_0xbb43('0x33'),_0x4bf8ed[_0xbb43('0x4')],agents[_0x4bf8ed[_0xbb43('0x15')]][_0xbb43('0x22')],_0x4bf8ed[_0xbb43('0x15')]));agents[_0x4bf8ed[_0xbb43('0x15')]][_0xbb43('0xc')]=!![];agents[_0x4bf8ed['destuniqueid']][_0xbb43('0x34')]=utils[_0xbb43('0x24')]();agents[_0x4bf8ed['destuniqueid']][_0xbb43('0x1e')]=utils['diffTime'](agents[_0x4bf8ed['destuniqueid']]['agentcompleteAt'],agents[_0x4bf8ed['destuniqueid']][_0xbb43('0x35')]);agents[_0x4bf8ed['destuniqueid']][_0xbb43('0x1b')]=_0x4bf8ed['reason'];agents[_0x4bf8ed[_0xbb43('0x15')]][_0xbb43('0x8')]=_0xbb43('0x36');writeDB(agents[_0x4bf8ed['destuniqueid']]);}}catch(_0x186cd6){utils['error'](util[_0xbb43('0x14')](_0xbb43('0x32'),_0x4bf8ed[_0xbb43('0x4')]),_0x186cd6);}};exports[_0xbb43('0x37')]=function(_0x417ad9){try{if(!_[_0xbb43('0x31')](agents[_0x417ad9[_0xbb43('0x38')]])){utils['debug'](util[_0xbb43('0x14')](_0xbb43('0x39'),_0x417ad9[_0xbb43('0x4')]),_0x417ad9);utils[_0xbb43('0x2')](util['format'](_0xbb43('0x3a'),_0x417ad9[_0xbb43('0x4')],agents[_0x417ad9[_0xbb43('0x38')]][_0xbb43('0x22')],agents[_0x417ad9['transfereruniqueid']][_0xbb43('0x4')]));agents[_0x417ad9[_0xbb43('0x38')]][_0xbb43('0x3b')]=!![];agents[_0x417ad9['transfereruniqueid']][_0xbb43('0x3c')]=_0xbb43('0x3d');agents[_0x417ad9[_0xbb43('0x38')]][_0xbb43('0x3e')]=_0x417ad9[_0xbb43('0x3f')];agents[_0x417ad9['transfereruniqueid']]['transferuniqueid']=agents[_0x417ad9[_0xbb43('0x38')]]['uniqueid'];}}catch(_0xf5d5c){utils[_0xbb43('0x20')](util['format'](_0xbb43('0x39'),_0x417ad9[_0xbb43('0x4')]),_0xf5d5c);}};exports[_0xbb43('0x40')]=function(_0x1a4367){try{utils[_0xbb43('0x29')](util['format'](_0xbb43('0x41'),_0x1a4367['origtransfereruniqueid']),_0x1a4367);if(_0x1a4367['origtransfereruniqueid']==_0x1a4367[_0xbb43('0x42')]){if(!_[_0xbb43('0x31')](agents[_0x1a4367[_0xbb43('0x43')]])){utils[_0xbb43('0x2')](util[_0xbb43('0x14')]('[%s][agents][attendedtransfer]\x20agent:%s',_0x1a4367['origtransfereruniqueid'],agents[_0x1a4367[_0xbb43('0x43')]][_0xbb43('0x22')]));agents[_0x1a4367[_0xbb43('0x43')]][_0xbb43('0x3b')]=!![];agents[_0x1a4367[_0xbb43('0x43')]][_0xbb43('0x3c')]=_0xbb43('0x44');agents[_0x1a4367[_0xbb43('0x43')]][_0xbb43('0x3e')]=_0x1a4367['origtransfererexten'];agents[_0x1a4367[_0xbb43('0x43')]][_0xbb43('0x45')]=_0x1a4367[_0xbb43('0x46')];}if(_0x1a4367[_0xbb43('0x47')]&&agents[_0x1a4367[_0xbb43('0x47')]]){agents[_0x1a4367[_0xbb43('0x47')]][_0xbb43('0x48')]=0x1;transfers[_0x1a4367[_0xbb43('0x47')]]=_[_0xbb43('0x49')](agents[_0x1a4367['transfereeuniqueid']]);transfers[_0x1a4367['transfereeuniqueid']][_0xbb43('0x7')]=agents[_0x1a4367[_0xbb43('0x43')]][_0xbb43('0x7')];transfers[_0x1a4367[_0xbb43('0x47')]][_0xbb43('0x4a')]=agents[_0x1a4367[_0xbb43('0x43')]][_0xbb43('0x4a')];transfers[_0x1a4367['transfereeuniqueid']][_0xbb43('0x4b')]=utils['now']();transfers[_0x1a4367['transfereeuniqueid']][_0xbb43('0x35')]=utils[_0xbb43('0x24')]();transfers[_0x1a4367[_0xbb43('0x47')]][_0xbb43('0x26')]=0x0;transfers[_0x1a4367[_0xbb43('0x47')]][_0xbb43('0x48')]=0x2;}}else if(_0x1a4367[_0xbb43('0x43')]==_0x1a4367[_0xbb43('0x4c')]){if(!_['isNil'](agents[_0x1a4367['origtransfereruniqueid']])){utils[_0xbb43('0x2')](util[_0xbb43('0x14')](_0xbb43('0x4d'),_0x1a4367[_0xbb43('0x46')],agents[_0x1a4367[_0xbb43('0x46')]][_0xbb43('0x22')]));agents[_0x1a4367[_0xbb43('0x46')]][_0xbb43('0x3b')]=!![];agents[_0x1a4367[_0xbb43('0x46')]]['transfertype']=_0xbb43('0x44');agents[_0x1a4367[_0xbb43('0x46')]][_0xbb43('0x3e')]=_0x1a4367[_0xbb43('0x4e')];agents[_0x1a4367[_0xbb43('0x46')]][_0xbb43('0x45')]=_0x1a4367['secondtransfereruniqueid'];}if(_0x1a4367[_0xbb43('0x4f')]&&agents[_0x1a4367[_0xbb43('0x4f')]]){agents[_0x1a4367[_0xbb43('0x4f')]][_0xbb43('0x48')]=0x1;transfers[_0x1a4367[_0xbb43('0x4f')]]=_['clone'](agents[_0x1a4367[_0xbb43('0x4f')]]);transfers[_0x1a4367[_0xbb43('0x4f')]][_0xbb43('0x7')]=agents[_0x1a4367[_0xbb43('0x46')]][_0xbb43('0x7')];transfers[_0x1a4367[_0xbb43('0x4f')]][_0xbb43('0x4a')]=agents[_0x1a4367[_0xbb43('0x46')]][_0xbb43('0x4a')];transfers[_0x1a4367[_0xbb43('0x4f')]]['agentcalledAt']=utils[_0xbb43('0x24')]();transfers[_0x1a4367['transfertargetuniqueid']][_0xbb43('0x35')]=utils[_0xbb43('0x24')]();transfers[_0x1a4367[_0xbb43('0x4f')]][_0xbb43('0x26')]=0x0;transfers[_0x1a4367[_0xbb43('0x4f')]]['agententerreason']=0x2;}}}catch(_0x59a665){utils[_0xbb43('0x20')](util[_0xbb43('0x14')]('[%s][agents][attendedtransfer]',_0x1a4367[_0xbb43('0x46')]),_0x59a665);}};exports[_0xbb43('0x50')]=function(_0x41d26a){try{utils[_0xbb43('0x29')](util[_0xbb43('0x14')](_0xbb43('0x51'),_0x41d26a[_0xbb43('0x4')]),_0x41d26a);if(agents[_0x41d26a[_0xbb43('0x4')]]&&agents[_0x41d26a[_0xbb43('0x4')]][_0xbb43('0x1b')]===_0xbb43('0x1c')){if(_0x41d26a[_0xbb43('0x52')]==='21'){agents[_0x41d26a[_0xbb43('0x4')]][_0xbb43('0x1b')]='rejected';agents[_0x41d26a['uniqueid']][_0xbb43('0x8')]=_0xbb43('0x53');}utils[_0xbb43('0x2')](util['format'](_0xbb43('0x54'),_0x41d26a[_0xbb43('0x4')],agents[_0x41d26a[_0xbb43('0x4')]][_0xbb43('0x22')],agents[_0x41d26a[_0xbb43('0x4')]]['reason'],agents[_0x41d26a[_0xbb43('0x4')]][_0xbb43('0x8')]));writeDB(agents[_0x41d26a[_0xbb43('0x4')]]);var _0x4c1405=unanswered[_0xbb43('0x55')](_0x41d26a[_0xbb43('0x4')]);if(_0x4c1405>-0x1){unanswered[_0xbb43('0x56')](_0x4c1405,0x1);}}if(transfers[_0x41d26a[_0xbb43('0x4')]]){transfers[_0x41d26a[_0xbb43('0x4')]][_0xbb43('0xc')]=!![];transfers[_0x41d26a[_0xbb43('0x4')]][_0xbb43('0x34')]=utils[_0xbb43('0x24')]();transfers[_0x41d26a[_0xbb43('0x4')]][_0xbb43('0x1e')]=utils['diffTime'](transfers[_0x41d26a[_0xbb43('0x4')]][_0xbb43('0x34')],transfers[_0x41d26a[_0xbb43('0x4')]][_0xbb43('0x35')]);transfers[_0x41d26a[_0xbb43('0x4')]]['reason']='agent';transfers[_0x41d26a['uniqueid']][_0xbb43('0x8')]=_0xbb43('0x36');utils[_0xbb43('0x2')](util[_0xbb43('0x14')](_0xbb43('0x54'),_0x41d26a[_0xbb43('0x4')],transfers[_0x41d26a[_0xbb43('0x4')]]['membername'],transfers[_0x41d26a[_0xbb43('0x4')]][_0xbb43('0x1b')],transfers[_0x41d26a[_0xbb43('0x4')]]['lastevent']));writeDB(transfers[_0x41d26a[_0xbb43('0x4')]],!![]);}if(agents[_0x41d26a['uniqueid']]&&agents[_0x41d26a[_0xbb43('0x4')]]['agentconnectAt']){agents[_0x41d26a[_0xbb43('0x4')]][_0xbb43('0xc')]=!![];agents[_0x41d26a[_0xbb43('0x4')]][_0xbb43('0x34')]=utils[_0xbb43('0x24')]();agents[_0x41d26a[_0xbb43('0x4')]][_0xbb43('0x1e')]=utils[_0xbb43('0x57')](agents[_0x41d26a['uniqueid']][_0xbb43('0x34')],agents[_0x41d26a[_0xbb43('0x4')]]['agentconnectAt']);agents[_0x41d26a[_0xbb43('0x4')]][_0xbb43('0x1b')]=agents[_0x41d26a[_0xbb43('0x4')]]['transfer']?_0xbb43('0x3b'):_0xbb43('0x58');agents[_0x41d26a[_0xbb43('0x4')]][_0xbb43('0x8')]=_0xbb43('0x36');utils[_0xbb43('0x2')](util['format'](_0xbb43('0x54'),_0x41d26a['uniqueid'],agents[_0x41d26a[_0xbb43('0x4')]][_0xbb43('0x22')],agents[_0x41d26a['uniqueid']][_0xbb43('0x1b')],agents[_0x41d26a[_0xbb43('0x4')]]['lastevent']));writeDB(agents[_0x41d26a['uniqueid']]);}}catch(_0x337154){utils[_0xbb43('0x20')](util[_0xbb43('0x14')](_0xbb43('0x51'),_0x41d26a[_0xbb43('0x4')]),_0x337154);}};