Built motion from commit (unavailable).|2.5.1
[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 _0xed1f=['transfereeuniqueid','secondtransfereruniqueid','transfertargetuniqueid','origtransfereruniqueid','[ACW][syncAttendedTransfer]\x20%s','[%s][BLINDTRANSFER:UNIQUEID]','stringify','transfereruniqueid','transfererlinkedid','[%s][BLINDTRANSFER:LINKEDID]','syncAgentRingNoAnswer','autopause','all','Auto-Pause','exports','util','lodash','moment','../ami','../../../config/logger','acw','../rpc/user','../rpc/voiceAgentReport','voiceQueues','agents','timers','channels','agentconnect','syncAgentConnect','hanguprequest','syncHangupRequest','hangup','syncHangup','agentringnoanswer','bind','attendedtransfer','blindtransfer','syncBlindTransfer','custom:agentConnectPreview','seconds','prototype','startAcw','interface','queue','ACW','mandatoryDispositionPause','name','Action','then','getAgent','voicePause','info','[%s][START][AGENT:%s][QUEUE:%s]','destlinkedid','savePause','[%s][TIMER:%s][AGENT:%s][QUEUE:%s]','acwTimeout','timer','stopAcw','YYYY-MM-DD\x20HH:mm:ss','uniqueid','updateAcw','lastPauseAt','catch','error','[%s][UPDATE][ERRORS:%s]','[%s][INPAUSE][AGENT:%s][QUEUE:%s]','finally','[ACW][START]\x20%s','message','[TIMER][STOP][AGENT:%s]','saveUnpause','update','[%s][UPDATE][ACWTIME:%s]','[ACW][STOP]\x20Interface\x20%s\x20doesn\x27t\x20have\x20timer','[ACW][TIMERS]','mandatoryDisposition','[ACW][syncAgentConnect]\x20%s','syncAgentConnectPreview','[ACW][syncAgentConnectPreview]\x20%s','attended','[%s][HANGUP:UNIQUEID]','linkedid','isUndefined','[%s][HANGUP:LINKEDID]','[ACW][syncHangupRequest]\x20%s','[%s][HANGUPATTENDEDTRANSFER:UNIQUEID]','[%s][HANGUPATTENDEDTRANSFER:LINKEDID]','[ACW][syncHangup]\x20%s','syncAttendedTransfer','isNil'];(function(_0x557fd2,_0x2c0a7a){var _0x1b54a2=function(_0x2e439b){while(--_0x2e439b){_0x557fd2['push'](_0x557fd2['shift']());}};_0x1b54a2(++_0x2c0a7a);}(_0xed1f,0x6a));var _0xfed1=function(_0x725b8e,_0xc22b48){_0x725b8e=_0x725b8e-0x0;var _0x43ac45=_0xed1f[_0x725b8e];return _0x43ac45;};'use strict';var util=require(_0xfed1('0x0'));var _=require(_0xfed1('0x1'));var moment=require(_0xfed1('0x2'));var ami=require(_0xfed1('0x3'));var logger=require(_0xfed1('0x4'))(_0xfed1('0x5'));var RpcUser=require(_0xfed1('0x6'));var RpcVoiceAgentReport=require(_0xfed1('0x7'));function Acw(_0x2209b3){this[_0xfed1('0x8')]=_0x2209b3[_0xfed1('0x8')];this[_0xfed1('0x9')]=_0x2209b3[_0xfed1('0x9')];this[_0xfed1('0xa')]=_0x2209b3[_0xfed1('0xa')];this[_0xfed1('0xb')]={};ami['on'](_0xfed1('0xc'),this[_0xfed1('0xd')]['bind'](this));ami['on'](_0xfed1('0xe'),this[_0xfed1('0xf')]['bind'](this));ami['on'](_0xfed1('0x10'),this[_0xfed1('0x11')]['bind'](this));ami['on'](_0xfed1('0x12'),this['syncAgentRingNoAnswer'][_0xfed1('0x13')](this));ami['on'](_0xfed1('0x14'),this['syncAttendedTransfer']['bind'](this));ami['on'](_0xfed1('0x15'),this[_0xfed1('0x16')]['bind'](this));ami['on'](_0xfed1('0x17'),this['syncAgentConnectPreview']['bind'](this));}function getDiff(_0x3f6555){var _0x397af9=moment()['milliseconds'](0x0);var _0x2dde3a=moment(_0x3f6555)['milliseconds'](0x0);return _0x397af9['diff'](_0x2dde3a,_0xfed1('0x18'));}Acw[_0xfed1('0x19')][_0xfed1('0x1a')]=function(_0x123c46){try{var _0x582e67=this;var _0x1a00f6=this['channels'][_0x123c46][_0xfed1('0x1b')];var _0x29a32f=this['channels'][_0x123c46][_0xfed1('0x1c')];var _0xa72a20=this['voiceQueues'][_0x29a32f];var _0x59509b=![];var _0x586ea6=_0xfed1('0x1d');if(_0xa72a20['mandatoryDisposition']){if(_0xa72a20[_0xfed1('0x1e')][_0xfed1('0x1f')]){_0x59509b=!![];_0x586ea6=_0xa72a20['mandatoryDispositionPause'][_0xfed1('0x1f')];}}ami[_0xfed1('0x20')]({'action':'QueuePause','interface':_0x1a00f6,'paused':!![],'reason':_0x586ea6})[_0xfed1('0x21')](function(_0x2ea7a8){if(_0x582e67[_0xfed1('0x9')][_0x1a00f6]){return RpcUser[_0xfed1('0x22')](_0x582e67['agents'][_0x1a00f6]['id'])[_0xfed1('0x21')](function(_0x59333e){if(_0x59333e&&!_0x59333e[_0xfed1('0x23')]){logger[_0xfed1('0x24')](_0xfed1('0x25'),_0x123c46,_0x1a00f6,_0x29a32f);var _0x532ec2=_0x582e67[_0xfed1('0xb')][_0x123c46]['attended']&&_0x582e67[_0xfed1('0xb')][_0x123c46][_0xfed1('0x26')]?_0x582e67[_0xfed1('0xb')][_0x123c46][_0xfed1('0x26')]:_0x123c46;return RpcUser[_0xfed1('0x27')](_0x582e67[_0xfed1('0x9')][_0x1a00f6],_0x586ea6,_0x532ec2)['then'](function(_0x465ce6){if(!_0x59509b){_0x582e67[_0xfed1('0xa')][_0x1a00f6]={};logger['info'](_0xfed1('0x28'),_0x123c46,_0x582e67[_0xfed1('0x8')][_0x29a32f][_0xfed1('0x29')],_0x1a00f6,_0x29a32f);_0x582e67[_0xfed1('0xa')][_0x1a00f6][_0xfed1('0x2a')]=setTimeout(_0x582e67[_0xfed1('0x2b')]['bind'](_0x582e67,_0x1a00f6),_0x582e67[_0xfed1('0x8')][_0x29a32f]['acwTimeout']*0x3e8);_0x582e67[_0xfed1('0xa')][_0x1a00f6]['lastPauseAt']=moment()['format'](_0xfed1('0x2c'));_0x582e67[_0xfed1('0xa')][_0x1a00f6][_0xfed1('0x2d')]=_0x123c46;_0x582e67['timers'][_0x1a00f6][_0xfed1('0x1c')]=_0x29a32f;_0x582e67[_0xfed1('0xa')][_0x1a00f6][_0xfed1('0x2e')]=function(){var _0x383955=getDiff(_0x582e67[_0xfed1('0xa')][_0x1a00f6][_0xfed1('0x2f')]);clearTimeout(_0x582e67['timers'][_0x1a00f6][_0xfed1('0x2a')]);_0x582e67[_0xfed1('0xa')][_0x1a00f6]['timer']=![];RpcVoiceAgentReport['update']({'acwtime':_0x383955},_0x582e67[_0xfed1('0xa')][_0x1a00f6][_0xfed1('0x2d')],_0x1a00f6)[_0xfed1('0x21')](function(_0x71147f){logger[_0xfed1('0x24')]('[%s][UPDATE][ACWTIME:%s]',_0x123c46,_0x383955,_0x71147f);})[_0xfed1('0x30')](function(_0x21b292){logger[_0xfed1('0x31')](_0xfed1('0x32'),_0x123c46,_0x21b292);});delete _0x582e67[_0xfed1('0xa')][_0x1a00f6];};}});}else{logger['info'](_0xfed1('0x33'),_0x123c46,_0x1a00f6,_0x29a32f);}});}})['catch'](function(_0x11c5bd){logger[_0xfed1('0x31')](_0xfed1('0x28'),_0x123c46,_0x582e67[_0xfed1('0x8')][_0x29a32f][_0xfed1('0x29')],_0x1a00f6,_0x29a32f);})[_0xfed1('0x34')](function(){delete _0x582e67[_0xfed1('0xb')][_0x123c46];});}catch(_0x41bf2a){logger['error'](_0xfed1('0x35'),_0x41bf2a[_0xfed1('0x36')]);}};Acw[_0xfed1('0x19')][_0xfed1('0x2b')]=function(_0x57da75){try{var _0x4b1d7b=this;if(_0x4b1d7b[_0xfed1('0xa')][_0x57da75]){_0x4b1d7b[_0xfed1('0xa')][_0x57da75][_0xfed1('0x2a')]=![];var _0x1105bd=_0x4b1d7b[_0xfed1('0xa')][_0x57da75][_0xfed1('0x2d')];var _0x46a150=_0x4b1d7b[_0xfed1('0xa')][_0x57da75]['queue'];var _0x52c7b8=_0x4b1d7b[_0xfed1('0x8')][_0x46a150][_0xfed1('0x29')];logger['info'](_0xfed1('0x37'),_0x57da75);RpcUser[_0xfed1('0x38')](this[_0xfed1('0x9')][_0x57da75]);RpcVoiceAgentReport[_0xfed1('0x39')]({'acwtime':_0x52c7b8,'agentacw':!![]},_0x1105bd,_0x57da75)[_0xfed1('0x21')](function(_0x31ffeb){logger[_0xfed1('0x24')](_0xfed1('0x3a'),_0x1105bd,_0x52c7b8,_0x31ffeb);})[_0xfed1('0x30')](function(_0x5f3e1f){logger['error']('[%s][UPDATE][ERRORS:%s]',_0x1105bd,_0x5f3e1f);});}else{logger[_0xfed1('0x31')](_0xfed1('0x3b'),_0x57da75);if(_0x4b1d7b[_0xfed1('0xa')]){logger['info'](_0xfed1('0x3c'),JSON['stringify'](_0x4b1d7b[_0xfed1('0xa')]));}}}catch(_0x2cfdca){logger[_0xfed1('0x31')]('[ACW][STOP]\x20%s',_0x2cfdca[_0xfed1('0x36')]);}};Acw[_0xfed1('0x19')][_0xfed1('0xd')]=function(_0x4b4115){try{if(this[_0xfed1('0x8')][_0x4b4115['queue']]&&(this[_0xfed1('0x8')][_0x4b4115[_0xfed1('0x1c')]][_0xfed1('0x5')]||this[_0xfed1('0x8')][_0x4b4115[_0xfed1('0x1c')]][_0xfed1('0x3d')])){if(this[_0xfed1('0x9')][_0x4b4115[_0xfed1('0x1b')]]){this[_0xfed1('0xb')][_0x4b4115['uniqueid']]={'queue':_0x4b4115[_0xfed1('0x1c')],'interface':_0x4b4115[_0xfed1('0x1b')],'destlinkedid':_0x4b4115[_0xfed1('0x26')]};}}}catch(_0x4a86af){logger['error'](_0xfed1('0x3e'),_0x4a86af[_0xfed1('0x36')]);}};Acw[_0xfed1('0x19')][_0xfed1('0x3f')]=function(_0x40c096){try{if(this[_0xfed1('0x8')][_0x40c096[_0xfed1('0x1c')]]&&(this[_0xfed1('0x8')][_0x40c096[_0xfed1('0x1c')]][_0xfed1('0x5')]||this[_0xfed1('0x8')][_0x40c096[_0xfed1('0x1c')]]['mandatoryDisposition'])){if(this[_0xfed1('0x9')][_0x40c096[_0xfed1('0x1b')]]){this[_0xfed1('0xb')][_0x40c096[_0xfed1('0x2d')]]={'queue':_0x40c096[_0xfed1('0x1c')],'interface':_0x40c096[_0xfed1('0x1b')]};}}}catch(_0x5eda29){logger[_0xfed1('0x31')](_0xfed1('0x40'),_0x5eda29[_0xfed1('0x36')]);}};Acw['prototype'][_0xfed1('0xf')]=function(_0x10f98d){try{if(this[_0xfed1('0xb')][_0x10f98d[_0xfed1('0x2d')]]&&_['isUndefined'](this[_0xfed1('0xb')][_0x10f98d[_0xfed1('0x2d')]][_0xfed1('0x41')])){logger[_0xfed1('0x24')](_0xfed1('0x42'),_0x10f98d[_0xfed1('0x2d')]);this[_0xfed1('0x1a')](_0x10f98d[_0xfed1('0x2d')]);}else if(this[_0xfed1('0xb')][_0x10f98d[_0xfed1('0x43')]]&&_[_0xfed1('0x44')](this[_0xfed1('0xb')][_0x10f98d[_0xfed1('0x43')]][_0xfed1('0x41')])){logger[_0xfed1('0x24')](_0xfed1('0x45'),_0x10f98d[_0xfed1('0x43')]);this[_0xfed1('0x1a')](_0x10f98d['linkedid']);}}catch(_0x589feb){logger[_0xfed1('0x31')](_0xfed1('0x46'),_0x589feb[_0xfed1('0x36')]);}};Acw[_0xfed1('0x19')]['syncHangup']=function(_0x3c2534){try{if(this[_0xfed1('0xb')][_0x3c2534['uniqueid']]&&this['channels'][_0x3c2534['uniqueid']][_0xfed1('0x41')]){logger[_0xfed1('0x24')](_0xfed1('0x47'),_0x3c2534[_0xfed1('0x2d')]);this[_0xfed1('0x1a')](_0x3c2534[_0xfed1('0x2d')]);}else if(this[_0xfed1('0xb')][_0x3c2534[_0xfed1('0x43')]]&&this[_0xfed1('0xb')][_0x3c2534[_0xfed1('0x43')]]['attended']){logger['info'](_0xfed1('0x48'),_0x3c2534[_0xfed1('0x43')]);this[_0xfed1('0x1a')](_0x3c2534[_0xfed1('0x43')]);}}catch(_0x83b8d0){logger[_0xfed1('0x31')](_0xfed1('0x49'),_0x83b8d0[_0xfed1('0x36')]);}};Acw[_0xfed1('0x19')][_0xfed1('0x4a')]=function(_0xbd49dc){try{if(!_[_0xfed1('0x4b')](this[_0xfed1('0xb')][_0xbd49dc[_0xfed1('0x4c')]])){this[_0xfed1('0x1a')](_0xbd49dc[_0xfed1('0x4c')]);if(this[_0xfed1('0xb')][_0xbd49dc['secondtransfereruniqueid']]){this['channels'][_0xbd49dc[_0xfed1('0x4d')]][_0xfed1('0x41')]=!![];this[_0xfed1('0xb')][_0xbd49dc[_0xfed1('0x4e')]]=this[_0xfed1('0xb')][_0xbd49dc[_0xfed1('0x4d')]];delete this[_0xfed1('0xb')][_0xbd49dc[_0xfed1('0x4d')]];}}else if(!_[_0xfed1('0x4b')](this[_0xfed1('0xb')][_0xbd49dc[_0xfed1('0x4e')]])){this[_0xfed1('0x1a')](_0xbd49dc[_0xfed1('0x4e')]);if(this[_0xfed1('0xb')][_0xbd49dc['origtransfereruniqueid']]){this[_0xfed1('0xb')][_0xbd49dc['origtransfereruniqueid']]['attended']=!![];this[_0xfed1('0xb')][_0xbd49dc['transfereeuniqueid']]=this[_0xfed1('0xb')][_0xbd49dc['origtransfereruniqueid']];delete this[_0xfed1('0xb')][_0xbd49dc[_0xfed1('0x4f')]];}}}catch(_0x53f0ab){logger[_0xfed1('0x31')](_0xfed1('0x50'),_0x53f0ab['message']);}};Acw[_0xfed1('0x19')][_0xfed1('0x16')]=function(_0x1c99c6){try{if(this[_0xfed1('0xb')][_0x1c99c6['transfereruniqueid']]){logger[_0xfed1('0x24')](_0xfed1('0x51'),JSON[_0xfed1('0x52')](_0x1c99c6[_0xfed1('0x53')]));this[_0xfed1('0x1a')](_0x1c99c6[_0xfed1('0x53')]);}else if(this[_0xfed1('0xb')][_0x1c99c6[_0xfed1('0x54')]]){logger['info'](_0xfed1('0x55'),JSON[_0xfed1('0x52')](_0x1c99c6[_0xfed1('0x54')]));this[_0xfed1('0x1a')](_0x1c99c6[_0xfed1('0x54')]);}}catch(_0x3d7be2){logger['error']('[ACW][syncBlindTransfer]\x20%s',_0x3d7be2['message']);}};Acw[_0xfed1('0x19')][_0xfed1('0x56')]=function(_0x3aea22){try{if(this[_0xfed1('0x8')][_0x3aea22['queue']]&&this[_0xfed1('0x8')][_0x3aea22['queue']][_0xfed1('0x57')]===_0xfed1('0x58')){if(this[_0xfed1('0x9')][_0x3aea22[_0xfed1('0x1b')]]){logger[_0xfed1('0x24')]('[%s][AUTOPAUSE][AGENT:%s][QUEUE:%]',_0x3aea22[_0xfed1('0x2d')],_0x3aea22[_0xfed1('0x1b')],_0x3aea22[_0xfed1('0x1c')]);return RpcUser['savePause'](this[_0xfed1('0x9')][_0x3aea22[_0xfed1('0x1b')]],_0xfed1('0x59'),_0x3aea22[_0xfed1('0x2d')]);}}}catch(_0x58b2b7){logger[_0xfed1('0x31')]('[ACW][syncAgentRingNoAnswer]\x20%s',_0x58b2b7[_0xfed1('0x36')]);}};module[_0xfed1('0x5a')]=Acw;