Built motion from commit e0fa946e.|2.6.5
[motion2.git] / server / services / ami / acw / index.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 _0xdc1a=['[%s][HANGUP:LINKEDID]','[ACW][syncHangupRequest]\x20%s','[ACW][syncHangup]\x20%s','transfereeuniqueid','secondtransfereruniqueid','transfertargetuniqueid','isNil','origtransfereruniqueid','[ACW][syncAttendedTransfer]\x20%s','transfereruniqueid','[%s][BLINDTRANSFER:UNIQUEID]','transfererlinkedid','[%s][BLINDTRANSFER:LINKEDID]','[ACW][syncBlindTransfer]\x20%s','autopause','all','[%s][AUTOPAUSE][AGENT:%s][QUEUE:%]','Auto-Pause','[ACW][syncAgentRingNoAnswer]\x20%s','util','lodash','moment','../ami','acw','../rpc/user','voiceQueues','agents','timers','channels','agentconnect','syncAgentConnect','hanguprequest','bind','hangup','syncHangup','syncAgentRingNoAnswer','attendedtransfer','syncAttendedTransfer','syncBlindTransfer','custom:agentConnectPreview','milliseconds','diff','seconds','prototype','startAcw','mandatoryDisposition','mandatoryDispositionPause','name','Action','QueuePause','getAgent','then','info','[%s][START][AGENT:%s][QUEUE:%s]','attended','destlinkedid','savePause','[%s][TIMER:%s][AGENT:%s][QUEUE:%s]','acwTimeout','stopAcw','YYYY-MM-DD\x20HH:mm:ss','queue','updateAcw','timer','update','uniqueid','[%s][UPDATE][ACWTIME:%s]','catch','error','[%s][INPAUSE][AGENT:%s][QUEUE:%s]','finally','[ACW][START]\x20%s','message','[%s][TIMER][STOP][AGENT:%s]','saveUnpause','[%s][UPDATE][ERRORS:%s]','[ACW][STOP]\x20Interface\x20%s\x20doesn\x27t\x20have\x20timer','[ACW][TIMERS]','stringify','[ACW][STOP]\x20%s','interface','[ACW][syncAgentConnect]\x20%s','syncAgentConnectPreview','syncHangupRequest','isUndefined','linkedid'];(function(_0x2b4411,_0x2625ed){var _0x8e41ef=function(_0x2aa8c1){while(--_0x2aa8c1){_0x2b4411['push'](_0x2b4411['shift']());}};_0x8e41ef(++_0x2625ed);}(_0xdc1a,0x16b));var _0xadc1=function(_0x38930a,_0x462129){_0x38930a=_0x38930a-0x0;var _0x54769d=_0xdc1a[_0x38930a];return _0x54769d;};'use strict';var util=require(_0xadc1('0x0'));var _=require(_0xadc1('0x1'));var moment=require(_0xadc1('0x2'));var ami=require(_0xadc1('0x3'));var logger=require('../../../config/logger')(_0xadc1('0x4'));var RpcUser=require(_0xadc1('0x5'));var RpcVoiceAgentReport=require('../rpc/voiceAgentReport');function Acw(_0x2eb2e8){this[_0xadc1('0x6')]=_0x2eb2e8[_0xadc1('0x6')];this[_0xadc1('0x7')]=_0x2eb2e8[_0xadc1('0x7')];this[_0xadc1('0x8')]=_0x2eb2e8[_0xadc1('0x8')];this[_0xadc1('0x9')]={};ami['on'](_0xadc1('0xa'),this[_0xadc1('0xb')]['bind'](this));ami['on'](_0xadc1('0xc'),this['syncHangupRequest'][_0xadc1('0xd')](this));ami['on'](_0xadc1('0xe'),this[_0xadc1('0xf')][_0xadc1('0xd')](this));ami['on']('agentringnoanswer',this[_0xadc1('0x10')][_0xadc1('0xd')](this));ami['on'](_0xadc1('0x11'),this[_0xadc1('0x12')]['bind'](this));ami['on']('blindtransfer',this[_0xadc1('0x13')]['bind'](this));ami['on'](_0xadc1('0x14'),this['syncAgentConnectPreview']['bind'](this));}function getDiff(_0x63e8f1){var _0x372ab7=moment()[_0xadc1('0x15')](0x0);var _0x1aac39=moment(_0x63e8f1)[_0xadc1('0x15')](0x0);return _0x372ab7[_0xadc1('0x16')](_0x1aac39,_0xadc1('0x17'));}Acw[_0xadc1('0x18')][_0xadc1('0x19')]=function(_0x2a7d06){try{var _0x22d0ee=this;var _0x2c72b7=this[_0xadc1('0x9')][_0x2a7d06]['interface'];var _0x56041c=this[_0xadc1('0x9')][_0x2a7d06]['queue'];var _0x24fc90=this[_0xadc1('0x6')][_0x56041c];var _0x56ef6d=![];var _0x566227='ACW';if(_0x24fc90[_0xadc1('0x1a')]){if(_0x24fc90[_0xadc1('0x1b')][_0xadc1('0x1c')]){_0x56ef6d=!![];_0x566227=_0x24fc90[_0xadc1('0x1b')]['name'];}}ami[_0xadc1('0x1d')]({'action':_0xadc1('0x1e'),'interface':_0x2c72b7,'paused':!![],'reason':_0x566227})['then'](function(_0x4963d3){if(_0x22d0ee[_0xadc1('0x7')][_0x2c72b7]){return RpcUser[_0xadc1('0x1f')](_0x22d0ee[_0xadc1('0x7')][_0x2c72b7]['id'])[_0xadc1('0x20')](function(_0x3e7499){if(_0x3e7499&&!_0x3e7499['voicePause']){logger[_0xadc1('0x21')](_0xadc1('0x22'),_0x2a7d06,_0x2c72b7,_0x56041c);var _0x1f1368=_0x22d0ee[_0xadc1('0x9')][_0x2a7d06][_0xadc1('0x23')]&&_0x22d0ee['channels'][_0x2a7d06][_0xadc1('0x24')]?_0x22d0ee[_0xadc1('0x9')][_0x2a7d06]['destlinkedid']:_0x2a7d06;return RpcUser[_0xadc1('0x25')](_0x22d0ee[_0xadc1('0x7')][_0x2c72b7],_0x566227,_0x1f1368)[_0xadc1('0x20')](function(_0x38dcc4){if(!_0x56ef6d){_0x22d0ee[_0xadc1('0x8')][_0x2c72b7]={};logger[_0xadc1('0x21')](_0xadc1('0x26'),_0x2a7d06,_0x22d0ee[_0xadc1('0x6')][_0x56041c][_0xadc1('0x27')],_0x2c72b7,_0x56041c);_0x22d0ee[_0xadc1('0x8')][_0x2c72b7]['timer']=setTimeout(_0x22d0ee[_0xadc1('0x28')][_0xadc1('0xd')](_0x22d0ee,_0x2c72b7),_0x22d0ee[_0xadc1('0x6')][_0x56041c][_0xadc1('0x27')]*0x3e8);_0x22d0ee['timers'][_0x2c72b7]['lastPauseAt']=moment()['format'](_0xadc1('0x29'));_0x22d0ee['timers'][_0x2c72b7]['uniqueid']=_0x2a7d06;_0x22d0ee[_0xadc1('0x8')][_0x2c72b7][_0xadc1('0x2a')]=_0x56041c;_0x22d0ee[_0xadc1('0x8')][_0x2c72b7][_0xadc1('0x2b')]=function(){var _0x4cfd75=getDiff(_0x22d0ee[_0xadc1('0x8')][_0x2c72b7]['lastPauseAt']);clearTimeout(_0x22d0ee[_0xadc1('0x8')][_0x2c72b7][_0xadc1('0x2c')]);_0x22d0ee[_0xadc1('0x8')][_0x2c72b7][_0xadc1('0x2c')]=![];RpcVoiceAgentReport[_0xadc1('0x2d')]({'acwtime':_0x4cfd75},_0x22d0ee[_0xadc1('0x8')][_0x2c72b7][_0xadc1('0x2e')],_0x2c72b7)[_0xadc1('0x20')](function(_0x26cb1c){logger[_0xadc1('0x21')](_0xadc1('0x2f'),_0x2a7d06,_0x4cfd75,_0x26cb1c);})[_0xadc1('0x30')](function(_0x341bd0){logger[_0xadc1('0x31')]('[%s][UPDATE][ERRORS:%s]',_0x2a7d06,_0x341bd0);});delete _0x22d0ee[_0xadc1('0x8')][_0x2c72b7];};}});}else{logger['info'](_0xadc1('0x32'),_0x2a7d06,_0x2c72b7,_0x56041c);}});}})[_0xadc1('0x30')](function(_0x555d83){logger[_0xadc1('0x31')](_0xadc1('0x26'),_0x2a7d06,_0x22d0ee[_0xadc1('0x6')][_0x56041c][_0xadc1('0x27')],_0x2c72b7,_0x56041c);})[_0xadc1('0x33')](function(){delete _0x22d0ee['channels'][_0x2a7d06];});}catch(_0x472457){logger[_0xadc1('0x31')](_0xadc1('0x34'),_0x472457[_0xadc1('0x35')]);}};Acw[_0xadc1('0x18')][_0xadc1('0x28')]=function(_0x4c4273){try{var _0x3e59b2=this;if(_0x3e59b2['timers'][_0x4c4273]){_0x3e59b2[_0xadc1('0x8')][_0x4c4273]['timer']=![];var _0x382026=_0x3e59b2[_0xadc1('0x8')][_0x4c4273][_0xadc1('0x2e')];var _0x2f1a24=_0x3e59b2['timers'][_0x4c4273][_0xadc1('0x2a')];var _0x1d816d=_0x3e59b2['voiceQueues'][_0x2f1a24]['acwTimeout'];logger[_0xadc1('0x21')](_0xadc1('0x36'),_0x382026,_0x4c4273);RpcUser[_0xadc1('0x37')](this['agents'][_0x4c4273]);RpcVoiceAgentReport[_0xadc1('0x2d')]({'acwtime':_0x1d816d,'agentacw':!![]},_0x382026,_0x4c4273)['then'](function(_0x59edca){logger[_0xadc1('0x21')](_0xadc1('0x2f'),_0x382026,_0x1d816d,_0x59edca);})[_0xadc1('0x30')](function(_0x848506){logger[_0xadc1('0x31')](_0xadc1('0x38'),_0x382026,_0x848506);});}else{logger[_0xadc1('0x31')](_0xadc1('0x39'),_0x4c4273);if(_0x3e59b2[_0xadc1('0x8')]){logger['info'](_0xadc1('0x3a'),JSON[_0xadc1('0x3b')](_0x3e59b2[_0xadc1('0x8')]));}}}catch(_0x157090){logger[_0xadc1('0x31')](_0xadc1('0x3c'),_0x157090[_0xadc1('0x35')]);}};Acw[_0xadc1('0x18')]['syncAgentConnect']=function(_0xb2072d){try{if(this[_0xadc1('0x6')][_0xb2072d['queue']]&&(this[_0xadc1('0x6')][_0xb2072d[_0xadc1('0x2a')]][_0xadc1('0x4')]||this[_0xadc1('0x6')][_0xb2072d[_0xadc1('0x2a')]][_0xadc1('0x1a')])){if(this['agents'][_0xb2072d[_0xadc1('0x3d')]]){this[_0xadc1('0x9')][_0xb2072d[_0xadc1('0x2e')]]={'queue':_0xb2072d[_0xadc1('0x2a')],'interface':_0xb2072d[_0xadc1('0x3d')],'destlinkedid':_0xb2072d[_0xadc1('0x24')]};}}}catch(_0x2473fc){logger[_0xadc1('0x31')](_0xadc1('0x3e'),_0x2473fc[_0xadc1('0x35')]);}};Acw['prototype'][_0xadc1('0x3f')]=function(_0x5d1eec){try{if(this[_0xadc1('0x6')][_0x5d1eec[_0xadc1('0x2a')]]&&(this[_0xadc1('0x6')][_0x5d1eec['queue']][_0xadc1('0x4')]||this[_0xadc1('0x6')][_0x5d1eec[_0xadc1('0x2a')]]['mandatoryDisposition'])){if(this[_0xadc1('0x7')][_0x5d1eec['interface']]){this[_0xadc1('0x9')][_0x5d1eec[_0xadc1('0x2e')]]={'queue':_0x5d1eec['queue'],'interface':_0x5d1eec['interface']};}}}catch(_0x268d3b){logger['error']('[ACW][syncAgentConnectPreview]\x20%s',_0x268d3b[_0xadc1('0x35')]);}};Acw['prototype'][_0xadc1('0x40')]=function(_0x251f06){try{if(this[_0xadc1('0x9')][_0x251f06[_0xadc1('0x2e')]]&&_[_0xadc1('0x41')](this[_0xadc1('0x9')][_0x251f06[_0xadc1('0x2e')]][_0xadc1('0x23')])){logger[_0xadc1('0x21')]('[%s][HANGUP:UNIQUEID]',_0x251f06[_0xadc1('0x2e')]);this[_0xadc1('0x19')](_0x251f06[_0xadc1('0x2e')]);}else if(this[_0xadc1('0x9')][_0x251f06[_0xadc1('0x42')]]&&_[_0xadc1('0x41')](this[_0xadc1('0x9')][_0x251f06['linkedid']][_0xadc1('0x23')])){logger[_0xadc1('0x21')](_0xadc1('0x43'),_0x251f06['linkedid']);this[_0xadc1('0x19')](_0x251f06[_0xadc1('0x42')]);}}catch(_0x596487){logger['error'](_0xadc1('0x44'),_0x596487[_0xadc1('0x35')]);}};Acw[_0xadc1('0x18')][_0xadc1('0xf')]=function(_0x8da949){try{if(this[_0xadc1('0x9')][_0x8da949[_0xadc1('0x2e')]]&&this[_0xadc1('0x9')][_0x8da949[_0xadc1('0x2e')]][_0xadc1('0x23')]){logger[_0xadc1('0x21')]('[%s][HANGUPATTENDEDTRANSFER:UNIQUEID]',_0x8da949[_0xadc1('0x2e')]);this['startAcw'](_0x8da949[_0xadc1('0x2e')]);}else if(this[_0xadc1('0x9')][_0x8da949['linkedid']]&&this['channels'][_0x8da949['linkedid']]['attended']){logger['info']('[%s][HANGUPATTENDEDTRANSFER:LINKEDID]',_0x8da949['linkedid']);this[_0xadc1('0x19')](_0x8da949[_0xadc1('0x42')]);}}catch(_0x4c5317){logger[_0xadc1('0x31')](_0xadc1('0x45'),_0x4c5317[_0xadc1('0x35')]);}};Acw[_0xadc1('0x18')][_0xadc1('0x12')]=function(_0x2e8f84){try{if(!_['isNil'](this[_0xadc1('0x9')][_0x2e8f84[_0xadc1('0x46')]])){this['startAcw'](_0x2e8f84[_0xadc1('0x46')]);if(this[_0xadc1('0x9')][_0x2e8f84['secondtransfereruniqueid']]){this[_0xadc1('0x9')][_0x2e8f84[_0xadc1('0x47')]][_0xadc1('0x23')]=!![];this['channels'][_0x2e8f84[_0xadc1('0x48')]]=this[_0xadc1('0x9')][_0x2e8f84['secondtransfereruniqueid']];delete this[_0xadc1('0x9')][_0x2e8f84['secondtransfereruniqueid']];}}else if(!_[_0xadc1('0x49')](this[_0xadc1('0x9')][_0x2e8f84[_0xadc1('0x48')]])){this[_0xadc1('0x19')](_0x2e8f84[_0xadc1('0x48')]);if(this[_0xadc1('0x9')][_0x2e8f84[_0xadc1('0x4a')]]){this[_0xadc1('0x9')][_0x2e8f84[_0xadc1('0x4a')]]['attended']=!![];this[_0xadc1('0x9')][_0x2e8f84['transfereeuniqueid']]=this[_0xadc1('0x9')][_0x2e8f84[_0xadc1('0x4a')]];delete this[_0xadc1('0x9')][_0x2e8f84['origtransfereruniqueid']];}}}catch(_0x223587){logger[_0xadc1('0x31')](_0xadc1('0x4b'),_0x223587[_0xadc1('0x35')]);}};Acw['prototype'][_0xadc1('0x13')]=function(_0x4ab74a){try{if(this[_0xadc1('0x9')][_0x4ab74a[_0xadc1('0x4c')]]){logger[_0xadc1('0x21')](_0xadc1('0x4d'),JSON['stringify'](_0x4ab74a[_0xadc1('0x4c')]));this[_0xadc1('0x19')](_0x4ab74a[_0xadc1('0x4c')]);}else if(this[_0xadc1('0x9')][_0x4ab74a[_0xadc1('0x4e')]]){logger[_0xadc1('0x21')](_0xadc1('0x4f'),JSON['stringify'](_0x4ab74a[_0xadc1('0x4e')]));this[_0xadc1('0x19')](_0x4ab74a[_0xadc1('0x4e')]);}}catch(_0x49667f){logger[_0xadc1('0x31')](_0xadc1('0x50'),_0x49667f['message']);}};Acw[_0xadc1('0x18')][_0xadc1('0x10')]=function(_0x4f37af){try{if(this[_0xadc1('0x6')][_0x4f37af[_0xadc1('0x2a')]]&&this['voiceQueues'][_0x4f37af[_0xadc1('0x2a')]][_0xadc1('0x51')]===_0xadc1('0x52')){if(this[_0xadc1('0x7')][_0x4f37af['interface']]){logger[_0xadc1('0x21')](_0xadc1('0x53'),_0x4f37af['uniqueid'],_0x4f37af[_0xadc1('0x3d')],_0x4f37af[_0xadc1('0x2a')]);return RpcUser[_0xadc1('0x25')](this[_0xadc1('0x7')][_0x4f37af[_0xadc1('0x3d')]],_0xadc1('0x54'),_0x4f37af[_0xadc1('0x2e')]);}}}catch(_0x3cc227){logger[_0xadc1('0x31')](_0xadc1('0x55'),_0x3cc227[_0xadc1('0x35')]);}};module['exports']=Acw;