Built motion from commit (unavailable).|2.4.12
[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 _0xf2ca=['[%s][BLINDTRANSFER:LINKEDID]','[ACW][syncBlindTransfer]\x20%s','[%s][AUTOPAUSE][AGENT:%s][QUEUE:%]','Auto-Pause','[ACW][syncAgentRingNoAnswer]\x20%s','exports','util','lodash','moment','../../../config/logger','acw','../rpc/user','../rpc/voiceAgentReport','voiceQueues','agents','timers','agentconnect','syncAgentConnect','hanguprequest','bind','syncHangup','agentringnoanswer','syncAgentRingNoAnswer','syncAttendedTransfer','blindtransfer','syncBlindTransfer','milliseconds','diff','seconds','prototype','startAcw','channels','interface','ACW','mandatoryDisposition','mandatoryDispositionPause','name','QueuePause','then','getAgent','voicePause','attended','destlinkedid','savePause','[%s][TIMER:%s][AGENT:%s][QUEUE:%s]','acwTimeout','stopAcw','format','YYYY-MM-DD\x20HH:mm:ss','queue','updateAcw','lastPauseAt','timer','[%s][UPDATE][ACWTIME:%s]','catch','error','[%s][UPDATE][ERRORS:%s]','info','[%s][INPAUSE][AGENT:%s][QUEUE:%s]','finally','[ACW][START]\x20%s','uniqueid','[TIMER][STOP][AGENT:%s]','saveUnpause','update','[ACW][TIMERS]','stringify','[ACW][STOP]\x20%s','[ACW][syncAgentConnect]\x20%s','message','syncAgentConnectPreview','[ACW][syncAgentConnectPreview]\x20%s','syncHangupRequest','[%s][HANGUP:UNIQUEID]','linkedid','isUndefined','[%s][HANGUP:LINKEDID]','[%s][HANGUPATTENDEDTRANSFER:UNIQUEID]','[%s][HANGUPATTENDEDTRANSFER:LINKEDID]','[ACW][syncHangup]\x20%s','isNil','transfereeuniqueid','secondtransfereruniqueid','transfertargetuniqueid','origtransfereruniqueid','[ACW][syncAttendedTransfer]\x20%s','transfereruniqueid','[%s][BLINDTRANSFER:UNIQUEID]','transfererlinkedid'];(function(_0x5bd426,_0x4878e5){var _0x23a7eb=function(_0x594b42){while(--_0x594b42){_0x5bd426['push'](_0x5bd426['shift']());}};_0x23a7eb(++_0x4878e5);}(_0xf2ca,0x16a));var _0xaf2c=function(_0x281e5e,_0xf320e2){_0x281e5e=_0x281e5e-0x0;var _0x5a22d2=_0xf2ca[_0x281e5e];return _0x5a22d2;};'use strict';var util=require(_0xaf2c('0x0'));var _=require(_0xaf2c('0x1'));var moment=require(_0xaf2c('0x2'));var ami=require('../ami');var logger=require(_0xaf2c('0x3'))(_0xaf2c('0x4'));var RpcUser=require(_0xaf2c('0x5'));var RpcVoiceAgentReport=require(_0xaf2c('0x6'));function Acw(_0x3a724c){this[_0xaf2c('0x7')]=_0x3a724c['voiceQueues'];this[_0xaf2c('0x8')]=_0x3a724c[_0xaf2c('0x8')];this[_0xaf2c('0x9')]=_0x3a724c[_0xaf2c('0x9')];this['channels']={};ami['on'](_0xaf2c('0xa'),this[_0xaf2c('0xb')]['bind'](this));ami['on'](_0xaf2c('0xc'),this['syncHangupRequest'][_0xaf2c('0xd')](this));ami['on']('hangup',this[_0xaf2c('0xe')][_0xaf2c('0xd')](this));ami['on'](_0xaf2c('0xf'),this[_0xaf2c('0x10')]['bind'](this));ami['on']('attendedtransfer',this[_0xaf2c('0x11')][_0xaf2c('0xd')](this));ami['on'](_0xaf2c('0x12'),this[_0xaf2c('0x13')][_0xaf2c('0xd')](this));ami['on']('custom:agentConnectPreview',this['syncAgentConnectPreview'][_0xaf2c('0xd')](this));}function getDiff(_0x8eaf9b){var _0x935959=moment()[_0xaf2c('0x14')](0x0);var _0x293ca6=moment(_0x8eaf9b)[_0xaf2c('0x14')](0x0);return _0x935959[_0xaf2c('0x15')](_0x293ca6,_0xaf2c('0x16'));}Acw[_0xaf2c('0x17')][_0xaf2c('0x18')]=function(_0x6ac8e){try{var _0x2b4d13=this;var _0x26bf7b=this[_0xaf2c('0x19')][_0x6ac8e][_0xaf2c('0x1a')];var _0x54c34a=this[_0xaf2c('0x19')][_0x6ac8e]['queue'];var _0x278a28=this[_0xaf2c('0x7')][_0x54c34a];var _0x1d544a=![];var _0x578492=_0xaf2c('0x1b');if(_0x278a28[_0xaf2c('0x1c')]){if(_0x278a28[_0xaf2c('0x1d')][_0xaf2c('0x1e')]){_0x1d544a=!![];_0x578492=_0x278a28[_0xaf2c('0x1d')][_0xaf2c('0x1e')];}}ami['Action']({'action':_0xaf2c('0x1f'),'interface':_0x26bf7b,'paused':!![],'reason':_0x578492})[_0xaf2c('0x20')](function(_0x8ffe13){if(_0x2b4d13[_0xaf2c('0x8')][_0x26bf7b]){return RpcUser[_0xaf2c('0x21')](_0x2b4d13['agents'][_0x26bf7b]['id'])[_0xaf2c('0x20')](function(_0xbf6f62){if(_0xbf6f62&&!_0xbf6f62[_0xaf2c('0x22')]){logger['info']('[%s][START][AGENT:%s][QUEUE:%s]',_0x6ac8e,_0x26bf7b,_0x54c34a);var _0x29cbdf=_0x2b4d13[_0xaf2c('0x19')][_0x6ac8e][_0xaf2c('0x23')]&&_0x2b4d13[_0xaf2c('0x19')][_0x6ac8e]['destlinkedid']?_0x2b4d13[_0xaf2c('0x19')][_0x6ac8e][_0xaf2c('0x24')]:_0x6ac8e;return RpcUser[_0xaf2c('0x25')](_0x2b4d13[_0xaf2c('0x8')][_0x26bf7b],_0x578492,_0x29cbdf)[_0xaf2c('0x20')](function(_0xff396f){if(!_0x1d544a){_0x2b4d13[_0xaf2c('0x9')][_0x26bf7b]={};logger['info'](_0xaf2c('0x26'),_0x6ac8e,_0x2b4d13[_0xaf2c('0x7')][_0x54c34a][_0xaf2c('0x27')],_0x26bf7b,_0x54c34a);_0x2b4d13[_0xaf2c('0x9')][_0x26bf7b]['timer']=setTimeout(_0x2b4d13[_0xaf2c('0x28')]['bind'](_0x2b4d13,_0x26bf7b),_0x2b4d13[_0xaf2c('0x7')][_0x54c34a][_0xaf2c('0x27')]*0x3e8);_0x2b4d13[_0xaf2c('0x9')][_0x26bf7b]['lastPauseAt']=moment()[_0xaf2c('0x29')](_0xaf2c('0x2a'));_0x2b4d13[_0xaf2c('0x9')][_0x26bf7b]['uniqueid']=_0x6ac8e;_0x2b4d13[_0xaf2c('0x9')][_0x26bf7b][_0xaf2c('0x2b')]=_0x54c34a;_0x2b4d13[_0xaf2c('0x9')][_0x26bf7b][_0xaf2c('0x2c')]=function(){var _0x59d858=getDiff(_0x2b4d13[_0xaf2c('0x9')][_0x26bf7b][_0xaf2c('0x2d')]);clearTimeout(_0x2b4d13[_0xaf2c('0x9')][_0x26bf7b]['timer']);_0x2b4d13['timers'][_0x26bf7b][_0xaf2c('0x2e')]=![];RpcVoiceAgentReport['update']({'acwtime':_0x59d858},_0x2b4d13[_0xaf2c('0x9')][_0x26bf7b]['uniqueid'],_0x26bf7b)[_0xaf2c('0x20')](function(_0x1e4de2){logger['info'](_0xaf2c('0x2f'),_0x6ac8e,_0x59d858,_0x1e4de2);})[_0xaf2c('0x30')](function(_0x54db57){logger[_0xaf2c('0x31')](_0xaf2c('0x32'),_0x6ac8e,_0x54db57);});delete _0x2b4d13[_0xaf2c('0x9')][_0x26bf7b];};}});}else{logger[_0xaf2c('0x33')](_0xaf2c('0x34'),_0x6ac8e,_0x26bf7b,_0x54c34a);}});}})[_0xaf2c('0x30')](function(_0x5b1a7c){logger[_0xaf2c('0x31')]('[%s][TIMER:%s][AGENT:%s][QUEUE:%s]',_0x6ac8e,_0x2b4d13[_0xaf2c('0x7')][_0x54c34a]['acwTimeout'],_0x26bf7b,_0x54c34a);})[_0xaf2c('0x35')](function(){delete _0x2b4d13['channels'][_0x6ac8e];});}catch(_0x2f3d16){logger['error'](_0xaf2c('0x36'),_0x2f3d16['message']);}};Acw[_0xaf2c('0x17')][_0xaf2c('0x28')]=function(_0x1a6929){try{var _0x14ec58=this;if(_0x14ec58[_0xaf2c('0x9')][_0x1a6929]){_0x14ec58['timers'][_0x1a6929]['timer']=![];var _0x6f428d=_0x14ec58[_0xaf2c('0x9')][_0x1a6929][_0xaf2c('0x37')];var _0xa44813=_0x14ec58[_0xaf2c('0x9')][_0x1a6929][_0xaf2c('0x2b')];var _0x573db3=_0x14ec58[_0xaf2c('0x7')][_0xa44813][_0xaf2c('0x27')];logger['info'](_0xaf2c('0x38'),_0x1a6929);RpcUser[_0xaf2c('0x39')](this[_0xaf2c('0x8')][_0x1a6929]);RpcVoiceAgentReport[_0xaf2c('0x3a')]({'acwtime':_0x573db3,'agentacw':!![]},_0x6f428d,_0x1a6929)[_0xaf2c('0x20')](function(_0x1e8eaf){logger[_0xaf2c('0x33')](_0xaf2c('0x2f'),_0x6f428d,_0x573db3,_0x1e8eaf);})[_0xaf2c('0x30')](function(_0x106eb9){logger[_0xaf2c('0x31')](_0xaf2c('0x32'),_0x6f428d,_0x106eb9);});}else{logger[_0xaf2c('0x31')]('[ACW][STOP]\x20Interface\x20%s\x20doesn\x27t\x20have\x20timer',_0x1a6929);if(_0x14ec58['timers']){logger['info'](_0xaf2c('0x3b'),JSON[_0xaf2c('0x3c')](_0x14ec58[_0xaf2c('0x9')]));}}}catch(_0x381502){logger[_0xaf2c('0x31')](_0xaf2c('0x3d'),_0x381502['message']);}};Acw[_0xaf2c('0x17')][_0xaf2c('0xb')]=function(_0xc59393){try{if(this['voiceQueues'][_0xc59393['queue']]&&(this[_0xaf2c('0x7')][_0xc59393['queue']][_0xaf2c('0x4')]||this[_0xaf2c('0x7')][_0xc59393[_0xaf2c('0x2b')]][_0xaf2c('0x1c')])){if(this['agents'][_0xc59393[_0xaf2c('0x1a')]]){this['channels'][_0xc59393[_0xaf2c('0x37')]]={'queue':_0xc59393[_0xaf2c('0x2b')],'interface':_0xc59393['interface'],'destlinkedid':_0xc59393[_0xaf2c('0x24')]};}}}catch(_0x4a2317){logger[_0xaf2c('0x31')](_0xaf2c('0x3e'),_0x4a2317[_0xaf2c('0x3f')]);}};Acw[_0xaf2c('0x17')][_0xaf2c('0x40')]=function(_0x98d9f3){try{if(this[_0xaf2c('0x7')][_0x98d9f3[_0xaf2c('0x2b')]]&&(this[_0xaf2c('0x7')][_0x98d9f3['queue']]['acw']||this[_0xaf2c('0x7')][_0x98d9f3['queue']]['mandatoryDisposition'])){if(this['agents'][_0x98d9f3[_0xaf2c('0x1a')]]){this[_0xaf2c('0x19')][_0x98d9f3[_0xaf2c('0x37')]]={'queue':_0x98d9f3[_0xaf2c('0x2b')],'interface':_0x98d9f3['interface']};}}}catch(_0x219ea3){logger['error'](_0xaf2c('0x41'),_0x219ea3['message']);}};Acw[_0xaf2c('0x17')][_0xaf2c('0x42')]=function(_0x2d01b7){try{if(this[_0xaf2c('0x19')][_0x2d01b7[_0xaf2c('0x37')]]&&_['isUndefined'](this[_0xaf2c('0x19')][_0x2d01b7[_0xaf2c('0x37')]]['attended'])){logger['info'](_0xaf2c('0x43'),_0x2d01b7['uniqueid']);this[_0xaf2c('0x18')](_0x2d01b7[_0xaf2c('0x37')]);}else if(this[_0xaf2c('0x19')][_0x2d01b7[_0xaf2c('0x44')]]&&_[_0xaf2c('0x45')](this[_0xaf2c('0x19')][_0x2d01b7[_0xaf2c('0x44')]][_0xaf2c('0x23')])){logger[_0xaf2c('0x33')](_0xaf2c('0x46'),_0x2d01b7[_0xaf2c('0x44')]);this['startAcw'](_0x2d01b7[_0xaf2c('0x44')]);}}catch(_0x57547e){logger['error']('[ACW][syncHangupRequest]\x20%s',_0x57547e['message']);}};Acw[_0xaf2c('0x17')][_0xaf2c('0xe')]=function(_0x551061){try{if(this[_0xaf2c('0x19')][_0x551061[_0xaf2c('0x37')]]&&this[_0xaf2c('0x19')][_0x551061[_0xaf2c('0x37')]][_0xaf2c('0x23')]){logger[_0xaf2c('0x33')](_0xaf2c('0x47'),_0x551061['uniqueid']);this[_0xaf2c('0x18')](_0x551061[_0xaf2c('0x37')]);}else if(this['channels'][_0x551061[_0xaf2c('0x44')]]&&this[_0xaf2c('0x19')][_0x551061[_0xaf2c('0x44')]][_0xaf2c('0x23')]){logger[_0xaf2c('0x33')](_0xaf2c('0x48'),_0x551061[_0xaf2c('0x44')]);this[_0xaf2c('0x18')](_0x551061[_0xaf2c('0x44')]);}}catch(_0x300254){logger[_0xaf2c('0x31')](_0xaf2c('0x49'),_0x300254[_0xaf2c('0x3f')]);}};Acw[_0xaf2c('0x17')][_0xaf2c('0x11')]=function(_0x2d6677){try{if(!_[_0xaf2c('0x4a')](this[_0xaf2c('0x19')][_0x2d6677[_0xaf2c('0x4b')]])){this[_0xaf2c('0x18')](_0x2d6677['transfereeuniqueid']);if(this[_0xaf2c('0x19')][_0x2d6677[_0xaf2c('0x4c')]]){this[_0xaf2c('0x19')][_0x2d6677['secondtransfereruniqueid']][_0xaf2c('0x23')]=!![];this['channels'][_0x2d6677[_0xaf2c('0x4d')]]=this[_0xaf2c('0x19')][_0x2d6677[_0xaf2c('0x4c')]];delete this[_0xaf2c('0x19')][_0x2d6677[_0xaf2c('0x4c')]];}}else if(!_[_0xaf2c('0x4a')](this[_0xaf2c('0x19')][_0x2d6677[_0xaf2c('0x4d')]])){this[_0xaf2c('0x18')](_0x2d6677['transfertargetuniqueid']);if(this[_0xaf2c('0x19')][_0x2d6677[_0xaf2c('0x4e')]]){this[_0xaf2c('0x19')][_0x2d6677[_0xaf2c('0x4e')]][_0xaf2c('0x23')]=!![];this['channels'][_0x2d6677[_0xaf2c('0x4b')]]=this[_0xaf2c('0x19')][_0x2d6677['origtransfereruniqueid']];delete this[_0xaf2c('0x19')][_0x2d6677[_0xaf2c('0x4e')]];}}}catch(_0x4b7070){logger['error'](_0xaf2c('0x4f'),_0x4b7070[_0xaf2c('0x3f')]);}};Acw[_0xaf2c('0x17')][_0xaf2c('0x13')]=function(_0x4cc55a){try{if(this[_0xaf2c('0x19')][_0x4cc55a[_0xaf2c('0x50')]]){logger['info'](_0xaf2c('0x51'),JSON['stringify'](_0x4cc55a[_0xaf2c('0x50')]));this[_0xaf2c('0x18')](_0x4cc55a[_0xaf2c('0x50')]);}else if(this[_0xaf2c('0x19')][_0x4cc55a[_0xaf2c('0x52')]]){logger[_0xaf2c('0x33')](_0xaf2c('0x53'),JSON[_0xaf2c('0x3c')](_0x4cc55a[_0xaf2c('0x52')]));this[_0xaf2c('0x18')](_0x4cc55a['transfererlinkedid']);}}catch(_0x79d962){logger[_0xaf2c('0x31')](_0xaf2c('0x54'),_0x79d962[_0xaf2c('0x3f')]);}};Acw[_0xaf2c('0x17')]['syncAgentRingNoAnswer']=function(_0xbfb776){try{if(this[_0xaf2c('0x7')][_0xbfb776[_0xaf2c('0x2b')]]&&this[_0xaf2c('0x7')][_0xbfb776[_0xaf2c('0x2b')]]['autopause']==='all'){if(this[_0xaf2c('0x8')][_0xbfb776[_0xaf2c('0x1a')]]){logger['info'](_0xaf2c('0x55'),_0xbfb776[_0xaf2c('0x37')],_0xbfb776[_0xaf2c('0x1a')],_0xbfb776['queue']);return RpcUser[_0xaf2c('0x25')](this[_0xaf2c('0x8')][_0xbfb776[_0xaf2c('0x1a')]],_0xaf2c('0x56'),_0xbfb776['uniqueid']);}}}catch(_0x32d552){logger[_0xaf2c('0x31')](_0xaf2c('0x57'),_0x32d552[_0xaf2c('0x3f')]);}};module[_0xaf2c('0x58')]=Acw;