Built motion from commit (unavailable).|2.5.4
[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 _0x7dfd=['mandatoryDispositionPause','name','QueuePause','getAgent','then','voicePause','info','[%s][START][AGENT:%s][QUEUE:%s]','attended','destlinkedid','savePause','[%s][TIMER:%s][AGENT:%s][QUEUE:%s]','timer','stopAcw','acwTimeout','lastPauseAt','updateAcw','update','uniqueid','[%s][UPDATE][ACWTIME:%s]','catch','error','[%s][UPDATE][ERRORS:%s]','[%s][INPAUSE][AGENT:%s][QUEUE:%s]','finally','saveUnpause','prototype','interface','[ACW][syncAgentConnect]\x20%s','message','[ACW][syncAgentConnectPreview]\x20%s','isUndefined','[%s][HANGUP:UNIQUEID]','linkedid','[%s][HANGUPATTENDEDTRANSFER:UNIQUEID]','isNil','transfereeuniqueid','secondtransfereruniqueid','transfertargetuniqueid','origtransfereruniqueid','[ACW][syncAttendedTransfer]\x20%s','transfereruniqueid','stringify','transfererlinkedid','[%s][BLINDTRANSFER:LINKEDID]','[ACW][syncBlindTransfer]\x20%s','all','[%s][AUTOPAUSE][AGENT:%s][QUEUE:%]','Auto-Pause','exports','util','lodash','moment','../ami','../../../config/logger','acw','../rpc/user','../rpc/voiceAgentReport','voiceQueues','agents','timers','channels','agentconnect','bind','hanguprequest','syncHangupRequest','syncHangup','agentringnoanswer','attendedtransfer','syncAttendedTransfer','blindtransfer','syncBlindTransfer','custom:agentConnectPreview','syncAgentConnectPreview','milliseconds','diff','seconds','startAcw','queue','mandatoryDisposition'];(function(_0x5b1c2a,_0x3a619c){var _0x58013f=function(_0x2cff62){while(--_0x2cff62){_0x5b1c2a['push'](_0x5b1c2a['shift']());}};_0x58013f(++_0x3a619c);}(_0x7dfd,0x1c2));var _0xd7df=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x7dfd[_0x3dd15e];return _0x231fd0;};'use strict';var util=require(_0xd7df('0x0'));var _=require(_0xd7df('0x1'));var moment=require(_0xd7df('0x2'));var ami=require(_0xd7df('0x3'));var logger=require(_0xd7df('0x4'))(_0xd7df('0x5'));var RpcUser=require(_0xd7df('0x6'));var RpcVoiceAgentReport=require(_0xd7df('0x7'));function Acw(_0x3ef231){this[_0xd7df('0x8')]=_0x3ef231[_0xd7df('0x8')];this[_0xd7df('0x9')]=_0x3ef231[_0xd7df('0x9')];this[_0xd7df('0xa')]=_0x3ef231[_0xd7df('0xa')];this[_0xd7df('0xb')]={};ami['on'](_0xd7df('0xc'),this['syncAgentConnect'][_0xd7df('0xd')](this));ami['on'](_0xd7df('0xe'),this[_0xd7df('0xf')][_0xd7df('0xd')](this));ami['on']('hangup',this[_0xd7df('0x10')]['bind'](this));ami['on'](_0xd7df('0x11'),this['syncAgentRingNoAnswer'][_0xd7df('0xd')](this));ami['on'](_0xd7df('0x12'),this[_0xd7df('0x13')][_0xd7df('0xd')](this));ami['on'](_0xd7df('0x14'),this[_0xd7df('0x15')][_0xd7df('0xd')](this));ami['on'](_0xd7df('0x16'),this[_0xd7df('0x17')][_0xd7df('0xd')](this));}function getDiff(_0xa70589){var _0x4723b7=moment()[_0xd7df('0x18')](0x0);var _0x196632=moment(_0xa70589)[_0xd7df('0x18')](0x0);return _0x4723b7[_0xd7df('0x19')](_0x196632,_0xd7df('0x1a'));}Acw['prototype'][_0xd7df('0x1b')]=function(_0x23cdbc){try{var _0x513b13=this;var _0x18d38f=this[_0xd7df('0xb')][_0x23cdbc]['interface'];var _0x43bc73=this[_0xd7df('0xb')][_0x23cdbc][_0xd7df('0x1c')];var _0x5210e5=this[_0xd7df('0x8')][_0x43bc73];var _0x471621=![];var _0x3cea3='ACW';if(_0x5210e5[_0xd7df('0x1d')]){if(_0x5210e5[_0xd7df('0x1e')][_0xd7df('0x1f')]){_0x471621=!![];_0x3cea3=_0x5210e5['mandatoryDispositionPause'][_0xd7df('0x1f')];}}ami['Action']({'action':_0xd7df('0x20'),'interface':_0x18d38f,'paused':!![],'reason':_0x3cea3})['then'](function(_0x3ae7c3){if(_0x513b13[_0xd7df('0x9')][_0x18d38f]){return RpcUser[_0xd7df('0x21')](_0x513b13['agents'][_0x18d38f]['id'])[_0xd7df('0x22')](function(_0x502ae8){if(_0x502ae8&&!_0x502ae8[_0xd7df('0x23')]){logger[_0xd7df('0x24')](_0xd7df('0x25'),_0x23cdbc,_0x18d38f,_0x43bc73);var _0x29f354=_0x513b13[_0xd7df('0xb')][_0x23cdbc][_0xd7df('0x26')]&&_0x513b13[_0xd7df('0xb')][_0x23cdbc]['destlinkedid']?_0x513b13['channels'][_0x23cdbc][_0xd7df('0x27')]:_0x23cdbc;return RpcUser[_0xd7df('0x28')](_0x513b13[_0xd7df('0x9')][_0x18d38f],_0x3cea3,_0x29f354)[_0xd7df('0x22')](function(_0x13f190){if(!_0x471621){_0x513b13[_0xd7df('0xa')][_0x18d38f]={};logger[_0xd7df('0x24')](_0xd7df('0x29'),_0x23cdbc,_0x513b13[_0xd7df('0x8')][_0x43bc73]['acwTimeout'],_0x18d38f,_0x43bc73);_0x513b13[_0xd7df('0xa')][_0x18d38f][_0xd7df('0x2a')]=setTimeout(_0x513b13[_0xd7df('0x2b')][_0xd7df('0xd')](_0x513b13,_0x18d38f),_0x513b13[_0xd7df('0x8')][_0x43bc73][_0xd7df('0x2c')]*0x3e8);_0x513b13[_0xd7df('0xa')][_0x18d38f][_0xd7df('0x2d')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');_0x513b13['timers'][_0x18d38f]['uniqueid']=_0x23cdbc;_0x513b13['timers'][_0x18d38f][_0xd7df('0x1c')]=_0x43bc73;_0x513b13['timers'][_0x18d38f][_0xd7df('0x2e')]=function(){var _0x156612=getDiff(_0x513b13['timers'][_0x18d38f][_0xd7df('0x2d')]);clearTimeout(_0x513b13[_0xd7df('0xa')][_0x18d38f]['timer']);_0x513b13[_0xd7df('0xa')][_0x18d38f][_0xd7df('0x2a')]=![];RpcVoiceAgentReport[_0xd7df('0x2f')]({'acwtime':_0x156612},_0x513b13[_0xd7df('0xa')][_0x18d38f][_0xd7df('0x30')],_0x18d38f)[_0xd7df('0x22')](function(_0x5a658f){logger[_0xd7df('0x24')](_0xd7df('0x31'),_0x23cdbc,_0x156612,_0x5a658f);})[_0xd7df('0x32')](function(_0x1d81b2){logger[_0xd7df('0x33')](_0xd7df('0x34'),_0x23cdbc,_0x1d81b2);});delete _0x513b13[_0xd7df('0xa')][_0x18d38f];};}});}else{logger[_0xd7df('0x24')](_0xd7df('0x35'),_0x23cdbc,_0x18d38f,_0x43bc73);}});}})[_0xd7df('0x32')](function(_0x2e828e){logger['error']('[%s][TIMER:%s][AGENT:%s][QUEUE:%s]',_0x23cdbc,_0x513b13[_0xd7df('0x8')][_0x43bc73]['acwTimeout'],_0x18d38f,_0x43bc73);})[_0xd7df('0x36')](function(){delete _0x513b13[_0xd7df('0xb')][_0x23cdbc];});}catch(_0xa0ed20){logger[_0xd7df('0x33')]('[ACW][START]\x20%s',_0xa0ed20['message']);}};Acw['prototype'][_0xd7df('0x2b')]=function(_0x15e682){try{var _0x55c43f=this;if(_0x55c43f[_0xd7df('0xa')][_0x15e682]){_0x55c43f[_0xd7df('0xa')][_0x15e682][_0xd7df('0x2a')]=![];var _0x574567=_0x55c43f['timers'][_0x15e682][_0xd7df('0x30')];var _0x45642c=_0x55c43f['timers'][_0x15e682][_0xd7df('0x1c')];var _0x564ce2=_0x55c43f[_0xd7df('0x8')][_0x45642c][_0xd7df('0x2c')];logger[_0xd7df('0x24')]('[TIMER][STOP][AGENT:%s]',_0x15e682);RpcUser[_0xd7df('0x37')](this[_0xd7df('0x9')][_0x15e682]);RpcVoiceAgentReport[_0xd7df('0x2f')]({'acwtime':_0x564ce2,'agentacw':!![]},_0x574567,_0x15e682)[_0xd7df('0x22')](function(_0x54ea42){logger[_0xd7df('0x24')](_0xd7df('0x31'),_0x574567,_0x564ce2,_0x54ea42);})[_0xd7df('0x32')](function(_0x4f6286){logger[_0xd7df('0x33')](_0xd7df('0x34'),_0x574567,_0x4f6286);});}else{logger[_0xd7df('0x33')]('[ACW][STOP]\x20Interface\x20%s\x20doesn\x27t\x20have\x20timer',_0x15e682);if(_0x55c43f[_0xd7df('0xa')]){logger[_0xd7df('0x24')]('[ACW][TIMERS]',JSON['stringify'](_0x55c43f[_0xd7df('0xa')]));}}}catch(_0x211feb){logger[_0xd7df('0x33')]('[ACW][STOP]\x20%s',_0x211feb['message']);}};Acw[_0xd7df('0x38')]['syncAgentConnect']=function(_0xe606f4){try{if(this['voiceQueues'][_0xe606f4['queue']]&&(this[_0xd7df('0x8')][_0xe606f4['queue']][_0xd7df('0x5')]||this[_0xd7df('0x8')][_0xe606f4[_0xd7df('0x1c')]][_0xd7df('0x1d')])){if(this[_0xd7df('0x9')][_0xe606f4[_0xd7df('0x39')]]){this[_0xd7df('0xb')][_0xe606f4[_0xd7df('0x30')]]={'queue':_0xe606f4[_0xd7df('0x1c')],'interface':_0xe606f4['interface'],'destlinkedid':_0xe606f4[_0xd7df('0x27')]};}}}catch(_0x4b9076){logger[_0xd7df('0x33')](_0xd7df('0x3a'),_0x4b9076[_0xd7df('0x3b')]);}};Acw[_0xd7df('0x38')][_0xd7df('0x17')]=function(_0x145223){try{if(this[_0xd7df('0x8')][_0x145223[_0xd7df('0x1c')]]&&(this[_0xd7df('0x8')][_0x145223['queue']][_0xd7df('0x5')]||this[_0xd7df('0x8')][_0x145223['queue']]['mandatoryDisposition'])){if(this[_0xd7df('0x9')][_0x145223[_0xd7df('0x39')]]){this[_0xd7df('0xb')][_0x145223['uniqueid']]={'queue':_0x145223['queue'],'interface':_0x145223[_0xd7df('0x39')]};}}}catch(_0x49a763){logger[_0xd7df('0x33')](_0xd7df('0x3c'),_0x49a763[_0xd7df('0x3b')]);}};Acw[_0xd7df('0x38')][_0xd7df('0xf')]=function(_0x28c13f){try{if(this[_0xd7df('0xb')][_0x28c13f[_0xd7df('0x30')]]&&_[_0xd7df('0x3d')](this[_0xd7df('0xb')][_0x28c13f[_0xd7df('0x30')]][_0xd7df('0x26')])){logger['info'](_0xd7df('0x3e'),_0x28c13f[_0xd7df('0x30')]);this[_0xd7df('0x1b')](_0x28c13f[_0xd7df('0x30')]);}else if(this[_0xd7df('0xb')][_0x28c13f['linkedid']]&&_[_0xd7df('0x3d')](this[_0xd7df('0xb')][_0x28c13f[_0xd7df('0x3f')]]['attended'])){logger[_0xd7df('0x24')]('[%s][HANGUP:LINKEDID]',_0x28c13f[_0xd7df('0x3f')]);this[_0xd7df('0x1b')](_0x28c13f[_0xd7df('0x3f')]);}}catch(_0x579bec){logger[_0xd7df('0x33')]('[ACW][syncHangupRequest]\x20%s',_0x579bec['message']);}};Acw['prototype'][_0xd7df('0x10')]=function(_0x4a6cf5){try{if(this[_0xd7df('0xb')][_0x4a6cf5[_0xd7df('0x30')]]&&this[_0xd7df('0xb')][_0x4a6cf5[_0xd7df('0x30')]][_0xd7df('0x26')]){logger[_0xd7df('0x24')](_0xd7df('0x40'),_0x4a6cf5[_0xd7df('0x30')]);this[_0xd7df('0x1b')](_0x4a6cf5[_0xd7df('0x30')]);}else if(this[_0xd7df('0xb')][_0x4a6cf5[_0xd7df('0x3f')]]&&this[_0xd7df('0xb')][_0x4a6cf5[_0xd7df('0x3f')]][_0xd7df('0x26')]){logger[_0xd7df('0x24')]('[%s][HANGUPATTENDEDTRANSFER:LINKEDID]',_0x4a6cf5[_0xd7df('0x3f')]);this[_0xd7df('0x1b')](_0x4a6cf5['linkedid']);}}catch(_0x56819b){logger[_0xd7df('0x33')]('[ACW][syncHangup]\x20%s',_0x56819b[_0xd7df('0x3b')]);}};Acw['prototype'][_0xd7df('0x13')]=function(_0x28151a){try{if(!_[_0xd7df('0x41')](this['channels'][_0x28151a['transfereeuniqueid']])){this['startAcw'](_0x28151a[_0xd7df('0x42')]);if(this[_0xd7df('0xb')][_0x28151a[_0xd7df('0x43')]]){this[_0xd7df('0xb')][_0x28151a[_0xd7df('0x43')]][_0xd7df('0x26')]=!![];this['channels'][_0x28151a[_0xd7df('0x44')]]=this[_0xd7df('0xb')][_0x28151a[_0xd7df('0x43')]];delete this[_0xd7df('0xb')][_0x28151a[_0xd7df('0x43')]];}}else if(!_[_0xd7df('0x41')](this[_0xd7df('0xb')][_0x28151a[_0xd7df('0x44')]])){this[_0xd7df('0x1b')](_0x28151a[_0xd7df('0x44')]);if(this[_0xd7df('0xb')][_0x28151a[_0xd7df('0x45')]]){this[_0xd7df('0xb')][_0x28151a[_0xd7df('0x45')]][_0xd7df('0x26')]=!![];this[_0xd7df('0xb')][_0x28151a[_0xd7df('0x42')]]=this[_0xd7df('0xb')][_0x28151a[_0xd7df('0x45')]];delete this[_0xd7df('0xb')][_0x28151a[_0xd7df('0x45')]];}}}catch(_0x393a3a){logger[_0xd7df('0x33')](_0xd7df('0x46'),_0x393a3a[_0xd7df('0x3b')]);}};Acw[_0xd7df('0x38')]['syncBlindTransfer']=function(_0x57ec6f){try{if(this[_0xd7df('0xb')][_0x57ec6f[_0xd7df('0x47')]]){logger[_0xd7df('0x24')]('[%s][BLINDTRANSFER:UNIQUEID]',JSON[_0xd7df('0x48')](_0x57ec6f[_0xd7df('0x47')]));this[_0xd7df('0x1b')](_0x57ec6f[_0xd7df('0x47')]);}else if(this['channels'][_0x57ec6f[_0xd7df('0x49')]]){logger[_0xd7df('0x24')](_0xd7df('0x4a'),JSON[_0xd7df('0x48')](_0x57ec6f[_0xd7df('0x49')]));this[_0xd7df('0x1b')](_0x57ec6f[_0xd7df('0x49')]);}}catch(_0x2fdad0){logger['error'](_0xd7df('0x4b'),_0x2fdad0[_0xd7df('0x3b')]);}};Acw['prototype']['syncAgentRingNoAnswer']=function(_0x481fa5){try{if(this[_0xd7df('0x8')][_0x481fa5[_0xd7df('0x1c')]]&&this[_0xd7df('0x8')][_0x481fa5[_0xd7df('0x1c')]]['autopause']===_0xd7df('0x4c')){if(this[_0xd7df('0x9')][_0x481fa5[_0xd7df('0x39')]]){logger[_0xd7df('0x24')](_0xd7df('0x4d'),_0x481fa5[_0xd7df('0x30')],_0x481fa5[_0xd7df('0x39')],_0x481fa5['queue']);return RpcUser['savePause'](this[_0xd7df('0x9')][_0x481fa5['interface']],_0xd7df('0x4e'),_0x481fa5[_0xd7df('0x30')]);}}}catch(_0x1efefa){logger['error']('[ACW][syncAgentRingNoAnswer]\x20%s',_0x1efefa[_0xd7df('0x3b')]);}};module[_0xd7df('0x4f')]=Acw;