Built motion from commit (unavailable).|2.5.4
[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 _0xf9c3=['format','channel','queue','interface','connectedlinenum','getVoiceQueueByName','then','type','agentacw','agentcomplete','acw','acwtime','acwTimeout','request','CreateVoiceAgentReport','uniqueid','destuniqueid','agentcalled','now','stack','agentringnoanswer','isNil','lastevent','timeout','reason','holdtime','ringtime','push','queuecallerabandon','forIn','agentringnoanswerAt','abandoned','agentconnect','agentconnectAt','connectedlinename','talktime','answered_elsewhere','answeredelsewheredestinationuniqueid','answeredelsewheremembername','membername','error','agentcompleteAt','complete','blindtransfer','transfereruniqueid','transfer','transfertype','transferexten','extension','transferuniqueid','attendedtransfer','origtransfereruniqueid','secondtransfereruniqueid','ATTENDED','origtransfererexten','transfereeuniqueid','agententerreason','clone','calleridnum','agentcalledAt','secondtransfererlinkedid','secondtransfererexten','transfertargetuniqueid','calleridname','hangup','cause','rejected','indexOf','diffTime','agent','lodash','util','./utils'];(function(_0xbee0e7,_0x2093fc){var _0x1a3049=function(_0x2f0aa5){while(--_0x2f0aa5){_0xbee0e7['push'](_0xbee0e7['shift']());}};_0x1a3049(++_0x2093fc);}(_0xf9c3,0x1b3));var _0x3f9c=function(_0x3a16d4,_0x23ecda){_0x3a16d4=_0x3a16d4-0x0;var _0x31ea9c=_0xf9c3[_0x3a16d4];return _0x31ea9c;};'use strict';var _=require(_0x3f9c('0x0'));var util=require(_0x3f9c('0x1'));var utils=require(_0x3f9c('0x2'));var agents={};var transfers={};var unanswered=[];function writeDB(_0x1fc91e,_0x4cb870){utils['info'](util[_0x3f9c('0x3')]('AGENT|%s|%s|%s|%s|%s|%s|%s|%s',_0x1fc91e['uniqueid'],_0x1fc91e[_0x3f9c('0x4')],_0x1fc91e[_0x3f9c('0x5')],_0x1fc91e['membername'],_0x1fc91e[_0x3f9c('0x6')],_0x1fc91e['calleridnum'],_0x1fc91e[_0x3f9c('0x7')],_0x1fc91e['lastevent']));if(_0x1fc91e['queue']){utils[_0x3f9c('0x8')](_0x1fc91e[_0x3f9c('0x5')])[_0x3f9c('0x9')](function(_0x419db3){if(_0x419db3){_0x1fc91e[_0x3f9c('0xa')]=_0x419db3['type'];_0x1fc91e[_0x3f9c('0xb')]=_0x1fc91e[_0x3f9c('0xc')]?_0x419db3[_0x3f9c('0xd')]:![];_0x1fc91e[_0x3f9c('0xe')]=_0x1fc91e[_0x3f9c('0xb')]?_0x419db3[_0x3f9c('0xf')]:0x0;}utils[_0x3f9c('0x10')](_0x3f9c('0x11'),_0x1fc91e);});}else{utils[_0x3f9c('0x10')](_0x3f9c('0x11'),_0x1fc91e);}if(_0x4cb870){delete transfers[_0x1fc91e[_0x3f9c('0x12')]];}else{delete agents[_0x1fc91e[_0x3f9c('0x13')]];}}exports[_0x3f9c('0x14')]=function(_0x17bebc){try{agents[_0x17bebc[_0x3f9c('0x13')]]=_0x17bebc;agents[_0x17bebc[_0x3f9c('0x13')]]['agentcalledAt']=utils[_0x3f9c('0x15')]();agents[_0x17bebc['destuniqueid']]['lastevent']='called';agents[_0x17bebc[_0x3f9c('0x13')]][_0x3f9c('0x7')]=null;agents[_0x17bebc[_0x3f9c('0x13')]]['connectedlinename']=null;}catch(_0x23ccc2){utils['error'](_0x23ccc2[_0x3f9c('0x16')]);}};exports[_0x3f9c('0x17')]=function(_0x10b583){try{if(!_[_0x3f9c('0x18')](agents[_0x10b583[_0x3f9c('0x13')]])){agents[_0x10b583[_0x3f9c('0x13')]][_0x3f9c('0x17')]=!![];agents[_0x10b583[_0x3f9c('0x13')]]['agentringnoanswerAt']=utils['now']();agents[_0x10b583['destuniqueid']][_0x3f9c('0x19')]=_0x3f9c('0x1a');agents[_0x10b583[_0x3f9c('0x13')]][_0x3f9c('0x1b')]=_0x3f9c('0x1a');agents[_0x10b583[_0x3f9c('0x13')]][_0x3f9c('0x1c')]=_0x10b583[_0x3f9c('0x1d')]?parseInt(_0x10b583[_0x3f9c('0x1d')])/0x3e8:0x0;agents[_0x10b583['destuniqueid']]['talktime']=0x0;unanswered[_0x3f9c('0x1e')](_0x10b583[_0x3f9c('0x13')]);}}catch(_0x2e7aaa){utils['error'](_0x2e7aaa[_0x3f9c('0x16')]);}};exports[_0x3f9c('0x1f')]=function(_0x4cd3c9){try{_[_0x3f9c('0x20')](agents,function(_0x176f98,_0x200774){if(_0x176f98[_0x3f9c('0x12')]==_0x4cd3c9[_0x3f9c('0x12')]&&!_['includes'](unanswered,_0x176f98['destuniqueid'])){_0x176f98[_0x3f9c('0x17')]=!![];_0x176f98[_0x3f9c('0x21')]=utils[_0x3f9c('0x15')]();_0x176f98[_0x3f9c('0x19')]=_0x3f9c('0x22');_0x176f98[_0x3f9c('0x1b')]=_0x3f9c('0x22');_0x176f98[_0x3f9c('0x1c')]=_0x4cd3c9[_0x3f9c('0x1c')];_0x176f98['talktime']=0x0;writeDB(_0x176f98);}});}catch(_0x4caf98){utils['error'](_0x4caf98[_0x3f9c('0x16')]);}};exports[_0x3f9c('0x23')]=function(_0x12c42d){try{if(agents[_0x12c42d[_0x3f9c('0x13')]]){agents[_0x12c42d[_0x3f9c('0x13')]][_0x3f9c('0x24')]=utils['now']();agents[_0x12c42d['destuniqueid']][_0x3f9c('0x7')]=_0x12c42d['connectedlinenum'];agents[_0x12c42d[_0x3f9c('0x13')]][_0x3f9c('0x25')]=_0x12c42d[_0x3f9c('0x25')];agents[_0x12c42d[_0x3f9c('0x13')]][_0x3f9c('0x1c')]=_0x12c42d[_0x3f9c('0x1d')];agents[_0x12c42d[_0x3f9c('0x13')]][_0x3f9c('0x19')]='connect';_[_0x3f9c('0x20')](agents,function(_0x2f1e29,_0x269c2f){if(_0x2f1e29['destuniqueid']!=_0x12c42d['destuniqueid']&&_0x2f1e29[_0x3f9c('0x12')]==_0x12c42d['uniqueid']){_0x2f1e29[_0x3f9c('0x26')]=0x0;_0x2f1e29[_0x3f9c('0x1c')]=_0x12c42d[_0x3f9c('0x1d')];_0x2f1e29[_0x3f9c('0x17')]=!![];_0x2f1e29[_0x3f9c('0x21')]=utils[_0x3f9c('0x15')]();_0x2f1e29[_0x3f9c('0x19')]='answered_elsewhere';_0x2f1e29[_0x3f9c('0x1b')]=_0x3f9c('0x27');_0x2f1e29[_0x3f9c('0x28')]=_0x12c42d[_0x3f9c('0x13')];_0x2f1e29[_0x3f9c('0x29')]=_0x12c42d[_0x3f9c('0x2a')];writeDB(_0x2f1e29);}});}}catch(_0x24a2d8){utils[_0x3f9c('0x2b')](_0x24a2d8[_0x3f9c('0x16')]);}};exports[_0x3f9c('0xc')]=function(_0x51d7e2){try{if(!_[_0x3f9c('0x18')](agents[_0x51d7e2[_0x3f9c('0x13')]])){agents[_0x51d7e2[_0x3f9c('0x13')]][_0x3f9c('0xc')]=!![];agents[_0x51d7e2[_0x3f9c('0x13')]][_0x3f9c('0x2c')]=utils[_0x3f9c('0x15')]();agents[_0x51d7e2[_0x3f9c('0x13')]][_0x3f9c('0x26')]=utils['diffTime'](agents[_0x51d7e2[_0x3f9c('0x13')]][_0x3f9c('0x2c')],agents[_0x51d7e2['destuniqueid']][_0x3f9c('0x24')]);agents[_0x51d7e2[_0x3f9c('0x13')]]['reason']=_0x51d7e2[_0x3f9c('0x1b')];agents[_0x51d7e2[_0x3f9c('0x13')]][_0x3f9c('0x19')]=_0x3f9c('0x2d');writeDB(agents[_0x51d7e2[_0x3f9c('0x13')]]);}}catch(_0xbe9adf){utils[_0x3f9c('0x2b')](_0xbe9adf[_0x3f9c('0x16')]);}};exports[_0x3f9c('0x2e')]=function(_0x5e0672){try{if(!_['isNil'](agents[_0x5e0672[_0x3f9c('0x2f')]])){agents[_0x5e0672['transfereruniqueid']][_0x3f9c('0x30')]=!![];agents[_0x5e0672[_0x3f9c('0x2f')]][_0x3f9c('0x31')]='blind';agents[_0x5e0672[_0x3f9c('0x2f')]][_0x3f9c('0x32')]=_0x5e0672[_0x3f9c('0x33')];agents[_0x5e0672['transfereruniqueid']][_0x3f9c('0x34')]=agents[_0x5e0672[_0x3f9c('0x2f')]][_0x3f9c('0x12')];}}catch(_0x8156f7){utils[_0x3f9c('0x2b')](_0x8156f7[_0x3f9c('0x16')]);}};exports[_0x3f9c('0x35')]=function(_0x37c7fb){try{if(_0x37c7fb[_0x3f9c('0x36')]==_0x37c7fb['origtransfererlinkedid']){if(!_[_0x3f9c('0x18')](agents[_0x37c7fb['secondtransfereruniqueid']])){agents[_0x37c7fb['secondtransfereruniqueid']][_0x3f9c('0x30')]=!![];agents[_0x37c7fb[_0x3f9c('0x37')]][_0x3f9c('0x31')]=_0x3f9c('0x38');agents[_0x37c7fb['secondtransfereruniqueid']]['transferexten']=_0x37c7fb[_0x3f9c('0x39')];agents[_0x37c7fb[_0x3f9c('0x37')]][_0x3f9c('0x34')]=_0x37c7fb[_0x3f9c('0x36')];}if(_0x37c7fb[_0x3f9c('0x3a')]&&agents[_0x37c7fb[_0x3f9c('0x3a')]]){agents[_0x37c7fb['transfereeuniqueid']][_0x3f9c('0x3b')]=0x1;transfers[_0x37c7fb[_0x3f9c('0x3a')]]=_[_0x3f9c('0x3c')](agents[_0x37c7fb[_0x3f9c('0x3a')]]);transfers[_0x37c7fb['transfereeuniqueid']]['calleridnum']=agents[_0x37c7fb[_0x3f9c('0x37')]][_0x3f9c('0x3d')];transfers[_0x37c7fb[_0x3f9c('0x3a')]]['calleridname']=agents[_0x37c7fb[_0x3f9c('0x37')]]['calleridname'];transfers[_0x37c7fb[_0x3f9c('0x3a')]][_0x3f9c('0x3e')]=utils[_0x3f9c('0x15')]();transfers[_0x37c7fb[_0x3f9c('0x3a')]][_0x3f9c('0x24')]=utils[_0x3f9c('0x15')]();transfers[_0x37c7fb[_0x3f9c('0x3a')]][_0x3f9c('0x1c')]=0x0;transfers[_0x37c7fb[_0x3f9c('0x3a')]][_0x3f9c('0x3b')]=0x2;}}else if(_0x37c7fb[_0x3f9c('0x37')]==_0x37c7fb[_0x3f9c('0x3f')]){if(!_['isNil'](agents[_0x37c7fb[_0x3f9c('0x36')]])){agents[_0x37c7fb[_0x3f9c('0x36')]][_0x3f9c('0x30')]=!![];agents[_0x37c7fb[_0x3f9c('0x36')]][_0x3f9c('0x31')]=_0x3f9c('0x38');agents[_0x37c7fb[_0x3f9c('0x36')]][_0x3f9c('0x32')]=_0x37c7fb[_0x3f9c('0x40')];agents[_0x37c7fb[_0x3f9c('0x36')]][_0x3f9c('0x34')]=_0x37c7fb[_0x3f9c('0x37')];}if(_0x37c7fb[_0x3f9c('0x41')]&&agents[_0x37c7fb['transfertargetuniqueid']]){agents[_0x37c7fb['transfertargetuniqueid']][_0x3f9c('0x3b')]=0x1;transfers[_0x37c7fb['transfertargetuniqueid']]=_[_0x3f9c('0x3c')](agents[_0x37c7fb[_0x3f9c('0x41')]]);transfers[_0x37c7fb[_0x3f9c('0x41')]][_0x3f9c('0x3d')]=agents[_0x37c7fb['origtransfereruniqueid']][_0x3f9c('0x3d')];transfers[_0x37c7fb['transfertargetuniqueid']][_0x3f9c('0x42')]=agents[_0x37c7fb[_0x3f9c('0x36')]][_0x3f9c('0x42')];transfers[_0x37c7fb[_0x3f9c('0x41')]][_0x3f9c('0x3e')]=utils[_0x3f9c('0x15')]();transfers[_0x37c7fb[_0x3f9c('0x41')]][_0x3f9c('0x24')]=utils[_0x3f9c('0x15')]();transfers[_0x37c7fb['transfertargetuniqueid']][_0x3f9c('0x1c')]=0x0;transfers[_0x37c7fb[_0x3f9c('0x41')]][_0x3f9c('0x3b')]=0x2;}}}catch(_0x3664a0){utils[_0x3f9c('0x2b')](_0x3664a0['stack']);}};exports[_0x3f9c('0x43')]=function(_0x4aae31){try{if(agents[_0x4aae31[_0x3f9c('0x12')]]&&agents[_0x4aae31['uniqueid']][_0x3f9c('0x1b')]==='timeout'){if(_0x4aae31[_0x3f9c('0x44')]==='21'){agents[_0x4aae31[_0x3f9c('0x12')]][_0x3f9c('0x1b')]='rejected';agents[_0x4aae31[_0x3f9c('0x12')]][_0x3f9c('0x19')]=_0x3f9c('0x45');}writeDB(agents[_0x4aae31['uniqueid']]);var _0x16e3b1=unanswered[_0x3f9c('0x46')](_0x4aae31[_0x3f9c('0x12')]);if(_0x16e3b1>-0x1)unanswered['splice'](_0x16e3b1,0x1);}if(transfers[_0x4aae31['uniqueid']]){transfers[_0x4aae31[_0x3f9c('0x12')]][_0x3f9c('0xc')]=!![];transfers[_0x4aae31[_0x3f9c('0x12')]]['agentcompleteAt']=utils[_0x3f9c('0x15')]();transfers[_0x4aae31[_0x3f9c('0x12')]][_0x3f9c('0x26')]=utils[_0x3f9c('0x47')](transfers[_0x4aae31[_0x3f9c('0x12')]]['agentcompleteAt'],transfers[_0x4aae31[_0x3f9c('0x12')]][_0x3f9c('0x24')]);transfers[_0x4aae31[_0x3f9c('0x12')]]['reason']=_0x3f9c('0x48');transfers[_0x4aae31[_0x3f9c('0x12')]][_0x3f9c('0x19')]=_0x3f9c('0x2d');writeDB(transfers[_0x4aae31[_0x3f9c('0x12')]],!![]);}if(agents[_0x4aae31[_0x3f9c('0x12')]]&&agents[_0x4aae31[_0x3f9c('0x12')]][_0x3f9c('0x24')]){agents[_0x4aae31[_0x3f9c('0x12')]]['agentcomplete']=!![];agents[_0x4aae31[_0x3f9c('0x12')]][_0x3f9c('0x2c')]=utils[_0x3f9c('0x15')]();agents[_0x4aae31['uniqueid']][_0x3f9c('0x26')]=utils['diffTime'](agents[_0x4aae31[_0x3f9c('0x12')]][_0x3f9c('0x2c')],agents[_0x4aae31['uniqueid']][_0x3f9c('0x24')]);agents[_0x4aae31['uniqueid']]['reason']=agents[_0x4aae31[_0x3f9c('0x12')]]['transfer']?'transfer':_0x3f9c('0x48');agents[_0x4aae31[_0x3f9c('0x12')]][_0x3f9c('0x19')]=_0x3f9c('0x2d');writeDB(agents[_0x4aae31[_0x3f9c('0x12')]]);}}catch(_0x2f8b1a){utils['error'](_0x2f8b1a[_0x3f9c('0x16')]);}};