Built motion from commit (unavailable).|2.5.10
[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 _0xe5b3=['error','[%s][UPDATE][ERRORS:%s]','[%s][INPAUSE][AGENT:%s][QUEUE:%s]','catch','message','stopAcw','[TIMER][STOP][AGENT:%s]','[ACW][STOP]\x20Interface\x20%s\x20doesn\x27t\x20have\x20timer','[ACW][TIMERS]','stringify','[ACW][STOP]\x20%s','[ACW][syncAgentConnect]\x20%s','[ACW][syncAgentConnectPreview]\x20%s','syncHangupRequest','isUndefined','attended','[%s][HANGUP:UNIQUEID]','startAcw','linkedid','[%s][HANGUP:LINKEDID]','[ACW][syncHangupRequest]\x20%s','[%s][HANGUPATTENDEDTRANSFER:UNIQUEID]','[%s][HANGUPATTENDEDTRANSFER:LINKEDID]','syncAttendedTransfer','isNil','transfereeuniqueid','secondtransfereruniqueid','transfertargetuniqueid','origtransfereruniqueid','[ACW][syncAttendedTransfer]\x20%s','transfereruniqueid','transfererlinkedid','[%s][BLINDTRANSFER:LINKEDID]','[ACW][syncBlindTransfer]\x20%s','autopause','all','savePause','Auto-Pause','[ACW][syncAgentRingNoAnswer]\x20%s','exports','lodash','moment','../ami','../../../config/logger','acw','../rpc/user','../rpc/voiceAgentReport','voiceQueues','agents','timers','agentconnect','syncAgentConnect','bind','hanguprequest','hangup','syncHangup','agentringnoanswer','syncAgentRingNoAnswer','attendedtransfer','blindtransfer','syncBlindTransfer','custom:agentConnectPreview','syncAgentConnectPreview','diff','seconds','prototype','channels','interface','queue','mandatoryDisposition','mandatoryDispositionPause','name','Action','QueuePause','then','getAgent','info','[%s][START][AGENT:%s][QUEUE:%s]','destlinkedid','[%s][TIMER:%s][AGENT:%s][QUEUE:%s]','acwTimeout','timer','lastPauseAt','format','YYYY-MM-DD\x20HH:mm:ss','uniqueid','updateAcw','update','[%s][UPDATE][ACWTIME:%s]'];(function(_0x239c13,_0x854fd1){var _0x5ab20b=function(_0x1f0daf){while(--_0x1f0daf){_0x239c13['push'](_0x239c13['shift']());}};_0x5ab20b(++_0x854fd1);}(_0xe5b3,0x133));var _0x3e5b=function(_0x40627b,_0x185d2a){_0x40627b=_0x40627b-0x0;var _0x198b21=_0xe5b3[_0x40627b];return _0x198b21;};'use strict';var util=require('util');var _=require(_0x3e5b('0x0'));var moment=require(_0x3e5b('0x1'));var ami=require(_0x3e5b('0x2'));var logger=require(_0x3e5b('0x3'))(_0x3e5b('0x4'));var RpcUser=require(_0x3e5b('0x5'));var RpcVoiceAgentReport=require(_0x3e5b('0x6'));function Acw(_0x1e58ed){this[_0x3e5b('0x7')]=_0x1e58ed[_0x3e5b('0x7')];this[_0x3e5b('0x8')]=_0x1e58ed['agents'];this[_0x3e5b('0x9')]=_0x1e58ed[_0x3e5b('0x9')];this['channels']={};ami['on'](_0x3e5b('0xa'),this[_0x3e5b('0xb')][_0x3e5b('0xc')](this));ami['on'](_0x3e5b('0xd'),this['syncHangupRequest']['bind'](this));ami['on'](_0x3e5b('0xe'),this[_0x3e5b('0xf')][_0x3e5b('0xc')](this));ami['on'](_0x3e5b('0x10'),this[_0x3e5b('0x11')]['bind'](this));ami['on'](_0x3e5b('0x12'),this['syncAttendedTransfer'][_0x3e5b('0xc')](this));ami['on'](_0x3e5b('0x13'),this[_0x3e5b('0x14')][_0x3e5b('0xc')](this));ami['on'](_0x3e5b('0x15'),this[_0x3e5b('0x16')][_0x3e5b('0xc')](this));}function getDiff(_0x560010){var _0x39a2a1=moment()['milliseconds'](0x0);var _0x51a188=moment(_0x560010)['milliseconds'](0x0);return _0x39a2a1[_0x3e5b('0x17')](_0x51a188,_0x3e5b('0x18'));}Acw[_0x3e5b('0x19')]['startAcw']=function(_0x1f81a7){try{var _0x59ddc0=this;var _0x56a453=this[_0x3e5b('0x1a')][_0x1f81a7][_0x3e5b('0x1b')];var _0x5e2f83=this[_0x3e5b('0x1a')][_0x1f81a7][_0x3e5b('0x1c')];var _0x555002=this[_0x3e5b('0x7')][_0x5e2f83];var _0x3365dd=![];var _0x52696c='ACW';if(_0x555002[_0x3e5b('0x1d')]){if(_0x555002[_0x3e5b('0x1e')][_0x3e5b('0x1f')]){_0x3365dd=!![];_0x52696c=_0x555002[_0x3e5b('0x1e')][_0x3e5b('0x1f')];}}ami[_0x3e5b('0x20')]({'action':_0x3e5b('0x21'),'interface':_0x56a453,'paused':!![],'reason':_0x52696c})[_0x3e5b('0x22')](function(_0x36c988){if(_0x59ddc0[_0x3e5b('0x8')][_0x56a453]){return RpcUser[_0x3e5b('0x23')](_0x59ddc0[_0x3e5b('0x8')][_0x56a453]['id'])[_0x3e5b('0x22')](function(_0x402873){if(_0x402873&&!_0x402873['voicePause']){logger[_0x3e5b('0x24')](_0x3e5b('0x25'),_0x1f81a7,_0x56a453,_0x5e2f83);var _0x2146d4=_0x59ddc0[_0x3e5b('0x1a')][_0x1f81a7]['attended']&&_0x59ddc0[_0x3e5b('0x1a')][_0x1f81a7]['destlinkedid']?_0x59ddc0[_0x3e5b('0x1a')][_0x1f81a7][_0x3e5b('0x26')]:_0x1f81a7;return RpcUser['savePause'](_0x59ddc0[_0x3e5b('0x8')][_0x56a453],_0x52696c,_0x2146d4)[_0x3e5b('0x22')](function(_0x42d7e9){if(!_0x3365dd){_0x59ddc0[_0x3e5b('0x9')][_0x56a453]={};logger[_0x3e5b('0x24')](_0x3e5b('0x27'),_0x1f81a7,_0x59ddc0[_0x3e5b('0x7')][_0x5e2f83][_0x3e5b('0x28')],_0x56a453,_0x5e2f83);_0x59ddc0['timers'][_0x56a453][_0x3e5b('0x29')]=setTimeout(_0x59ddc0['stopAcw'][_0x3e5b('0xc')](_0x59ddc0,_0x56a453),_0x59ddc0['voiceQueues'][_0x5e2f83][_0x3e5b('0x28')]*0x3e8);_0x59ddc0[_0x3e5b('0x9')][_0x56a453][_0x3e5b('0x2a')]=moment()[_0x3e5b('0x2b')](_0x3e5b('0x2c'));_0x59ddc0[_0x3e5b('0x9')][_0x56a453][_0x3e5b('0x2d')]=_0x1f81a7;_0x59ddc0[_0x3e5b('0x9')][_0x56a453][_0x3e5b('0x1c')]=_0x5e2f83;_0x59ddc0[_0x3e5b('0x9')][_0x56a453][_0x3e5b('0x2e')]=function(){var _0x489221=getDiff(_0x59ddc0[_0x3e5b('0x9')][_0x56a453][_0x3e5b('0x2a')]);clearTimeout(_0x59ddc0[_0x3e5b('0x9')][_0x56a453][_0x3e5b('0x29')]);_0x59ddc0[_0x3e5b('0x9')][_0x56a453][_0x3e5b('0x29')]=![];RpcVoiceAgentReport[_0x3e5b('0x2f')]({'acwtime':_0x489221},_0x59ddc0['timers'][_0x56a453][_0x3e5b('0x2d')],_0x56a453)['then'](function(_0x5b9ba3){logger[_0x3e5b('0x24')](_0x3e5b('0x30'),_0x1f81a7,_0x489221,_0x5b9ba3);})['catch'](function(_0x40e37d){logger[_0x3e5b('0x31')](_0x3e5b('0x32'),_0x1f81a7,_0x40e37d);});delete _0x59ddc0[_0x3e5b('0x9')][_0x56a453];};}});}else{logger[_0x3e5b('0x24')](_0x3e5b('0x33'),_0x1f81a7,_0x56a453,_0x5e2f83);}});}})[_0x3e5b('0x34')](function(_0x26c9ab){logger[_0x3e5b('0x31')](_0x3e5b('0x27'),_0x1f81a7,_0x59ddc0[_0x3e5b('0x7')][_0x5e2f83][_0x3e5b('0x28')],_0x56a453,_0x5e2f83);})['finally'](function(){delete _0x59ddc0[_0x3e5b('0x1a')][_0x1f81a7];});}catch(_0xec45c5){logger['error']('[ACW][START]\x20%s',_0xec45c5[_0x3e5b('0x35')]);}};Acw['prototype'][_0x3e5b('0x36')]=function(_0x3f68c6){try{var _0xb2349c=this;if(_0xb2349c[_0x3e5b('0x9')][_0x3f68c6]){_0xb2349c['timers'][_0x3f68c6][_0x3e5b('0x29')]=![];var _0x4cdcb1=_0xb2349c[_0x3e5b('0x9')][_0x3f68c6]['uniqueid'];var _0x47f7c8=_0xb2349c['timers'][_0x3f68c6][_0x3e5b('0x1c')];var _0x174ebf=_0xb2349c[_0x3e5b('0x7')][_0x47f7c8][_0x3e5b('0x28')];logger[_0x3e5b('0x24')](_0x3e5b('0x37'),_0x3f68c6);RpcUser['saveUnpause'](this['agents'][_0x3f68c6]);RpcVoiceAgentReport['update']({'acwtime':_0x174ebf,'agentacw':!![]},_0x4cdcb1,_0x3f68c6)['then'](function(_0x5f0271){logger['info']('[%s][UPDATE][ACWTIME:%s]',_0x4cdcb1,_0x174ebf,_0x5f0271);})[_0x3e5b('0x34')](function(_0x349de0){logger[_0x3e5b('0x31')](_0x3e5b('0x32'),_0x4cdcb1,_0x349de0);});}else{logger[_0x3e5b('0x31')](_0x3e5b('0x38'),_0x3f68c6);if(_0xb2349c[_0x3e5b('0x9')]){logger[_0x3e5b('0x24')](_0x3e5b('0x39'),JSON[_0x3e5b('0x3a')](_0xb2349c[_0x3e5b('0x9')]));}}}catch(_0x4ee160){logger[_0x3e5b('0x31')](_0x3e5b('0x3b'),_0x4ee160[_0x3e5b('0x35')]);}};Acw[_0x3e5b('0x19')][_0x3e5b('0xb')]=function(_0xc69499){try{if(this[_0x3e5b('0x7')][_0xc69499[_0x3e5b('0x1c')]]&&(this[_0x3e5b('0x7')][_0xc69499[_0x3e5b('0x1c')]][_0x3e5b('0x4')]||this['voiceQueues'][_0xc69499['queue']]['mandatoryDisposition'])){if(this['agents'][_0xc69499[_0x3e5b('0x1b')]]){this[_0x3e5b('0x1a')][_0xc69499[_0x3e5b('0x2d')]]={'queue':_0xc69499[_0x3e5b('0x1c')],'interface':_0xc69499[_0x3e5b('0x1b')],'destlinkedid':_0xc69499[_0x3e5b('0x26')]};}}}catch(_0x12b486){logger[_0x3e5b('0x31')](_0x3e5b('0x3c'),_0x12b486[_0x3e5b('0x35')]);}};Acw['prototype'][_0x3e5b('0x16')]=function(_0x28a105){try{if(this[_0x3e5b('0x7')][_0x28a105[_0x3e5b('0x1c')]]&&(this[_0x3e5b('0x7')][_0x28a105['queue']]['acw']||this['voiceQueues'][_0x28a105[_0x3e5b('0x1c')]][_0x3e5b('0x1d')])){if(this[_0x3e5b('0x8')][_0x28a105['interface']]){this['channels'][_0x28a105[_0x3e5b('0x2d')]]={'queue':_0x28a105[_0x3e5b('0x1c')],'interface':_0x28a105[_0x3e5b('0x1b')]};}}}catch(_0x5acf51){logger['error'](_0x3e5b('0x3d'),_0x5acf51['message']);}};Acw[_0x3e5b('0x19')][_0x3e5b('0x3e')]=function(_0x3f5835){try{if(this[_0x3e5b('0x1a')][_0x3f5835[_0x3e5b('0x2d')]]&&_[_0x3e5b('0x3f')](this[_0x3e5b('0x1a')][_0x3f5835[_0x3e5b('0x2d')]][_0x3e5b('0x40')])){logger['info'](_0x3e5b('0x41'),_0x3f5835['uniqueid']);this[_0x3e5b('0x42')](_0x3f5835[_0x3e5b('0x2d')]);}else if(this[_0x3e5b('0x1a')][_0x3f5835[_0x3e5b('0x43')]]&&_[_0x3e5b('0x3f')](this[_0x3e5b('0x1a')][_0x3f5835[_0x3e5b('0x43')]][_0x3e5b('0x40')])){logger[_0x3e5b('0x24')](_0x3e5b('0x44'),_0x3f5835[_0x3e5b('0x43')]);this[_0x3e5b('0x42')](_0x3f5835[_0x3e5b('0x43')]);}}catch(_0x59d311){logger[_0x3e5b('0x31')](_0x3e5b('0x45'),_0x59d311[_0x3e5b('0x35')]);}};Acw[_0x3e5b('0x19')][_0x3e5b('0xf')]=function(_0x2cecd3){try{if(this['channels'][_0x2cecd3[_0x3e5b('0x2d')]]&&this[_0x3e5b('0x1a')][_0x2cecd3[_0x3e5b('0x2d')]][_0x3e5b('0x40')]){logger[_0x3e5b('0x24')](_0x3e5b('0x46'),_0x2cecd3[_0x3e5b('0x2d')]);this[_0x3e5b('0x42')](_0x2cecd3['uniqueid']);}else if(this[_0x3e5b('0x1a')][_0x2cecd3['linkedid']]&&this['channels'][_0x2cecd3[_0x3e5b('0x43')]]['attended']){logger[_0x3e5b('0x24')](_0x3e5b('0x47'),_0x2cecd3[_0x3e5b('0x43')]);this[_0x3e5b('0x42')](_0x2cecd3['linkedid']);}}catch(_0x5ddeee){logger['error']('[ACW][syncHangup]\x20%s',_0x5ddeee[_0x3e5b('0x35')]);}};Acw[_0x3e5b('0x19')][_0x3e5b('0x48')]=function(_0x4149c8){try{if(!_[_0x3e5b('0x49')](this['channels'][_0x4149c8['transfereeuniqueid']])){this[_0x3e5b('0x42')](_0x4149c8[_0x3e5b('0x4a')]);if(this[_0x3e5b('0x1a')][_0x4149c8[_0x3e5b('0x4b')]]){this[_0x3e5b('0x1a')][_0x4149c8['secondtransfereruniqueid']]['attended']=!![];this['channels'][_0x4149c8['transfertargetuniqueid']]=this[_0x3e5b('0x1a')][_0x4149c8[_0x3e5b('0x4b')]];delete this[_0x3e5b('0x1a')][_0x4149c8[_0x3e5b('0x4b')]];}}else if(!_[_0x3e5b('0x49')](this[_0x3e5b('0x1a')][_0x4149c8[_0x3e5b('0x4c')]])){this[_0x3e5b('0x42')](_0x4149c8['transfertargetuniqueid']);if(this[_0x3e5b('0x1a')][_0x4149c8[_0x3e5b('0x4d')]]){this[_0x3e5b('0x1a')][_0x4149c8[_0x3e5b('0x4d')]][_0x3e5b('0x40')]=!![];this['channels'][_0x4149c8[_0x3e5b('0x4a')]]=this['channels'][_0x4149c8[_0x3e5b('0x4d')]];delete this[_0x3e5b('0x1a')][_0x4149c8['origtransfereruniqueid']];}}}catch(_0x4a7d8e){logger['error'](_0x3e5b('0x4e'),_0x4a7d8e['message']);}};Acw[_0x3e5b('0x19')][_0x3e5b('0x14')]=function(_0x1af190){try{if(this[_0x3e5b('0x1a')][_0x1af190[_0x3e5b('0x4f')]]){logger['info']('[%s][BLINDTRANSFER:UNIQUEID]',JSON[_0x3e5b('0x3a')](_0x1af190[_0x3e5b('0x4f')]));this[_0x3e5b('0x42')](_0x1af190['transfereruniqueid']);}else if(this[_0x3e5b('0x1a')][_0x1af190[_0x3e5b('0x50')]]){logger[_0x3e5b('0x24')](_0x3e5b('0x51'),JSON[_0x3e5b('0x3a')](_0x1af190[_0x3e5b('0x50')]));this[_0x3e5b('0x42')](_0x1af190[_0x3e5b('0x50')]);}}catch(_0x3a11a8){logger[_0x3e5b('0x31')](_0x3e5b('0x52'),_0x3a11a8[_0x3e5b('0x35')]);}};Acw[_0x3e5b('0x19')][_0x3e5b('0x11')]=function(_0x13204a){try{if(this[_0x3e5b('0x7')][_0x13204a[_0x3e5b('0x1c')]]&&this[_0x3e5b('0x7')][_0x13204a['queue']][_0x3e5b('0x53')]===_0x3e5b('0x54')){if(this['agents'][_0x13204a[_0x3e5b('0x1b')]]){logger[_0x3e5b('0x24')]('[%s][AUTOPAUSE][AGENT:%s][QUEUE:%]',_0x13204a['uniqueid'],_0x13204a['interface'],_0x13204a[_0x3e5b('0x1c')]);return RpcUser[_0x3e5b('0x55')](this['agents'][_0x13204a[_0x3e5b('0x1b')]],_0x3e5b('0x56'),_0x13204a['uniqueid']);}}}catch(_0x3d3bf2){logger[_0x3e5b('0x31')](_0x3e5b('0x57'),_0x3d3bf2[_0x3e5b('0x35')]);}};module[_0x3e5b('0x58')]=Acw;