Built motion from commit (unavailable).|2.0.70
[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 _0x12b2=['custom:agentConnectPreview','milliseconds','diff','seconds','interface','Action','getAgent','then','info','[%s][START][AGENT:%s][QUEUE:%s]','ACW','[%s][TIMER:%s][AGENT:%s][QUEUE:%s]','acwTimeout','timer','stopAcw','lastPauseAt','uniqueid','queue','updateAcw','update','error','[%s][UPDATE][ERRORS:%s]','[%s][INPAUSE][AGENT:%s][QUEUE:%s]','catch','finally','[ACW][START]\x20%s','message','prototype','saveUnpause','[%s][UPDATE][ACWTIME:%s]','[ACW][STOP]\x20Interface\x20%s\x20doesn\x27t\x20have\x20timer','[ACW][TIMERS]','stringify','channels','[ACW][syncAgentConnect]\x20%s','syncAgentConnectPreview','[ACW][syncAgentConnectPreview]\x20%s','isUndefined','attended','startAcw','linkedid','[%s][HANGUP:LINKEDID]','[ACW][syncHangupRequest]\x20%s','[%s][HANGUPATTENDEDTRANSFER:UNIQUEID]','origtransfereruniqueid','[%s][ATTENDEDTRANSFER:UNIQUEID]','[%s][ATTENDEDTRANSFER:LINKEDID]','origtransfererlinkedid','[%s][ATTENDEDTRANSFER:TRANSFERTARGETUNIQUEID]','transfertargetuniqueid','find','SIP/%s','localtwoconnectedlinename','format','[ACW][syncAttendedTransfer]\x20%s','transfereruniqueid','[%s][BLINDTRANSFER:UNIQUEID]','transfererlinkedid','[%s][BLINDTRANSFER:LINKEDID]','[ACW][syncBlindTransfer]\x20%s','autopause','[%s][AUTOPAUSE][AGENT:%s][QUEUE:%]','[ACW][syncAgentRingNoAnswer]\x20%s','exports','lodash','moment','../ami','../../../config/logger','acw','../rpc/user','../rpc/voiceAgentReport','socket.io-emitter','localhost','voiceQueues','agents','timers','agentconnect','bind','syncHangupRequest','syncHangup','agentringnoanswer','syncAgentRingNoAnswer','attendedtransfer','syncAttendedTransfer','blindtransfer','syncBlindTransfer'];(function(_0x4433b,_0x1eded1){var _0xffc1da=function(_0x3d1d18){while(--_0x3d1d18){_0x4433b['push'](_0x4433b['shift']());}};_0xffc1da(++_0x1eded1);}(_0x12b2,0xec));var _0x212b=function(_0x7fa71b,_0x5657f4){_0x7fa71b=_0x7fa71b-0x0;var _0x4d959a=_0x12b2[_0x7fa71b];return _0x4d959a;};'use strict';var util=require('util');var _=require(_0x212b('0x0'));var moment=require(_0x212b('0x1'));var ami=require(_0x212b('0x2'));var logger=require(_0x212b('0x3'))(_0x212b('0x4'));var RpcUser=require(_0x212b('0x5'));var RpcVoiceAgentReport=require(_0x212b('0x6'));var io=require(_0x212b('0x7'))({'host':_0x212b('0x8'),'port':0x18eb});function Acw(_0x4fb420){this[_0x212b('0x9')]=_0x4fb420['voiceQueues'];this[_0x212b('0xa')]=_0x4fb420[_0x212b('0xa')];this['timers']=_0x4fb420[_0x212b('0xb')];this['channels']={};ami['on'](_0x212b('0xc'),this['syncAgentConnect'][_0x212b('0xd')](this));ami['on']('hanguprequest',this[_0x212b('0xe')][_0x212b('0xd')](this));ami['on']('hangup',this[_0x212b('0xf')][_0x212b('0xd')](this));ami['on'](_0x212b('0x10'),this[_0x212b('0x11')][_0x212b('0xd')](this));ami['on'](_0x212b('0x12'),this[_0x212b('0x13')][_0x212b('0xd')](this));ami['on'](_0x212b('0x14'),this[_0x212b('0x15')][_0x212b('0xd')](this));ami['on'](_0x212b('0x16'),this['syncAgentConnectPreview']['bind'](this));}function getDiff(_0x13155a){var _0x446069=moment()[_0x212b('0x17')](0x0);var _0x564e16=moment(_0x13155a)[_0x212b('0x17')](0x0);return _0x446069[_0x212b('0x18')](_0x564e16,_0x212b('0x19'));}Acw['prototype']['startAcw']=function(_0x179b74){try{var _0x5badc1=this;var _0x3bbe48=this['channels'][_0x179b74][_0x212b('0x1a')];var _0x5311eb=this['channels'][_0x179b74]['queue'];ami[_0x212b('0x1b')]({'action':'QueuePause','interface':_0x3bbe48,'paused':!![],'reason':'ACW'})['then'](function(_0x15a972){if(_0x5badc1[_0x212b('0xa')][_0x3bbe48]){return RpcUser[_0x212b('0x1c')](_0x5badc1[_0x212b('0xa')][_0x3bbe48]['id'])[_0x212b('0x1d')](function(_0x1a8eb2){if(_0x1a8eb2&&!_0x1a8eb2['voicePause']){logger[_0x212b('0x1e')](_0x212b('0x1f'),_0x179b74,_0x3bbe48,_0x5311eb);return RpcUser['savePause'](_0x5badc1[_0x212b('0xa')][_0x3bbe48],_0x212b('0x20'),_0x179b74)[_0x212b('0x1d')](function(_0x47a77d){_0x5badc1['timers'][_0x3bbe48]={};logger['info'](_0x212b('0x21'),_0x179b74,_0x5badc1['voiceQueues'][_0x5311eb][_0x212b('0x22')],_0x3bbe48,_0x5311eb);_0x5badc1[_0x212b('0xb')][_0x3bbe48][_0x212b('0x23')]=setTimeout(_0x5badc1[_0x212b('0x24')]['bind'](_0x5badc1,_0x3bbe48),_0x5badc1['voiceQueues'][_0x5311eb][_0x212b('0x22')]*0x3e8);_0x5badc1[_0x212b('0xb')][_0x3bbe48][_0x212b('0x25')]=_0x47a77d[_0x212b('0x25')];_0x5badc1['timers'][_0x3bbe48][_0x212b('0x26')]=_0x179b74;_0x5badc1['timers'][_0x3bbe48][_0x212b('0x27')]=_0x5311eb;_0x5badc1[_0x212b('0xb')][_0x3bbe48][_0x212b('0x28')]=function(){var _0x27dc1f=getDiff(_0x5badc1[_0x212b('0xb')][_0x3bbe48][_0x212b('0x25')]);clearTimeout(_0x5badc1[_0x212b('0xb')][_0x3bbe48][_0x212b('0x23')]);RpcVoiceAgentReport[_0x212b('0x29')]({'acwtime':_0x27dc1f},_0x5badc1[_0x212b('0xb')][_0x3bbe48][_0x212b('0x26')],_0x3bbe48)[_0x212b('0x1d')](function(_0x514e46){logger['info']('[%s][UPDATE][ACWTIME:%s]',_0x179b74,_0x27dc1f,_0x514e46);})['catch'](function(_0x296d2e){logger[_0x212b('0x2a')](_0x212b('0x2b'),_0x179b74,_0x296d2e);});delete _0x5badc1[_0x212b('0xb')][_0x3bbe48];};});}else{logger[_0x212b('0x1e')](_0x212b('0x2c'),_0x179b74,_0x3bbe48,_0x5311eb);}});}})[_0x212b('0x2d')](function(_0x568945){logger[_0x212b('0x2a')]('[%s][TIMER:%s][AGENT:%s][QUEUE:%s]',_0x179b74,_0x5badc1[_0x212b('0x9')][_0x5311eb][_0x212b('0x22')],_0x3bbe48,_0x5311eb);})[_0x212b('0x2e')](function(){delete _0x5badc1['channels'][_0x179b74];});}catch(_0x403352){logger['error'](_0x212b('0x2f'),_0x403352[_0x212b('0x30')]);}};Acw[_0x212b('0x31')][_0x212b('0x24')]=function(_0x40b2bb){try{var _0x134346=this;if(_0x134346['timers'][_0x40b2bb]){var _0x11be76=_0x134346[_0x212b('0xb')][_0x40b2bb][_0x212b('0x26')];var _0x4ccbb5=_0x134346['timers'][_0x40b2bb][_0x212b('0x27')];var _0x876561=_0x134346['voiceQueues'][_0x4ccbb5][_0x212b('0x22')];logger[_0x212b('0x1e')]('[TIMER][STOP][AGENT:%s]',_0x40b2bb);RpcUser[_0x212b('0x32')](this[_0x212b('0xa')][_0x40b2bb]);RpcVoiceAgentReport[_0x212b('0x29')]({'acwtime':_0x876561,'agentacw':!![]},_0x11be76,_0x40b2bb)['then'](function(_0x3acbbd){logger[_0x212b('0x1e')](_0x212b('0x33'),_0x11be76,_0x876561,_0x3acbbd);})[_0x212b('0x2d')](function(_0x1acc4b){logger[_0x212b('0x2a')](_0x212b('0x2b'),_0x11be76,_0x1acc4b);});}else{logger[_0x212b('0x2a')](_0x212b('0x34'),_0x40b2bb);if(_0x134346[_0x212b('0xb')]){logger[_0x212b('0x1e')](_0x212b('0x35'),JSON[_0x212b('0x36')](_0x134346[_0x212b('0xb')]));}}}catch(_0x55229e){logger[_0x212b('0x2a')]('[ACW][STOP]\x20%s',_0x55229e[_0x212b('0x30')]);}};Acw[_0x212b('0x31')]['syncAgentConnect']=function(_0x33f4ca){try{if(this[_0x212b('0x9')][_0x33f4ca[_0x212b('0x27')]]&&this[_0x212b('0x9')][_0x33f4ca[_0x212b('0x27')]]['acw']){if(this['agents'][_0x33f4ca[_0x212b('0x1a')]]){this[_0x212b('0x37')][_0x33f4ca[_0x212b('0x26')]]={'queue':_0x33f4ca[_0x212b('0x27')],'interface':_0x33f4ca[_0x212b('0x1a')]};}}}catch(_0x12feb9){logger['error'](_0x212b('0x38'),_0x12feb9[_0x212b('0x30')]);}};Acw[_0x212b('0x31')][_0x212b('0x39')]=function(_0x16a027){try{if(this[_0x212b('0x9')][_0x16a027['queue']]&&this[_0x212b('0x9')][_0x16a027[_0x212b('0x27')]]['acw']){if(this['agents'][_0x16a027[_0x212b('0x1a')]]){this[_0x212b('0x37')][_0x16a027['uniqueid']]={'queue':_0x16a027['queue'],'interface':_0x16a027['interface']};}}}catch(_0x2432d1){logger[_0x212b('0x2a')](_0x212b('0x3a'),_0x2432d1[_0x212b('0x30')]);}};Acw['prototype'][_0x212b('0xe')]=function(_0x4d7460){try{if(this[_0x212b('0x37')][_0x4d7460[_0x212b('0x26')]]&&_[_0x212b('0x3b')](this['channels'][_0x4d7460['uniqueid']][_0x212b('0x3c')])){logger['info']('[%s][HANGUP:UNIQUEID]',_0x4d7460['uniqueid']);this[_0x212b('0x3d')](_0x4d7460[_0x212b('0x26')]);}else if(this[_0x212b('0x37')][_0x4d7460[_0x212b('0x3e')]]&&_['isUndefined'](this[_0x212b('0x37')][_0x4d7460[_0x212b('0x3e')]][_0x212b('0x3c')])){logger['info'](_0x212b('0x3f'),_0x4d7460[_0x212b('0x3e')]);this[_0x212b('0x3d')](_0x4d7460['linkedid']);}}catch(_0x5cd904){logger[_0x212b('0x2a')](_0x212b('0x40'),_0x5cd904[_0x212b('0x30')]);}};Acw[_0x212b('0x31')]['syncHangup']=function(_0x5cf1e5){try{if(this[_0x212b('0x37')][_0x5cf1e5['uniqueid']]&&this['channels'][_0x5cf1e5[_0x212b('0x26')]][_0x212b('0x3c')]){logger['info'](_0x212b('0x41'),_0x5cf1e5['uniqueid']);this[_0x212b('0x3d')](_0x5cf1e5[_0x212b('0x26')]);}}catch(_0x17eb00){logger[_0x212b('0x2a')]('[ACW][syncHangup]\x20%s',_0x17eb00[_0x212b('0x30')]);}};Acw[_0x212b('0x31')][_0x212b('0x13')]=function(_0x326a32){try{if(this[_0x212b('0x37')][_0x326a32[_0x212b('0x42')]]){logger['info'](_0x212b('0x43'),_0x326a32[_0x212b('0x42')]);this[_0x212b('0x3d')](_0x326a32['origtransfereruniqueid']);}else if(this[_0x212b('0x37')][_0x326a32['origtransfererlinkedid']]){logger[_0x212b('0x1e')](_0x212b('0x44'),_0x326a32[_0x212b('0x45')]);this['startAcw'](_0x326a32[_0x212b('0x45')]);}logger[_0x212b('0x1e')](_0x212b('0x46'),_0x326a32[_0x212b('0x47')]);this[_0x212b('0x37')][_0x326a32[_0x212b('0x47')]]=_[_0x212b('0x48')](this[_0x212b('0x37')],[_0x212b('0x1a'),util['format'](_0x212b('0x49'),_0x326a32[_0x212b('0x4a')])]);if(this[_0x212b('0x37')][_0x326a32[_0x212b('0x47')]]){this['channels'][_0x326a32['transfertargetuniqueid']][_0x212b('0x3c')]=!![];delete this[_0x212b('0x37')][_['findKey'](this[_0x212b('0x37')],[_0x212b('0x1a'),util[_0x212b('0x4b')]('SIP/%s',_0x326a32[_0x212b('0x4a')])])];}}catch(_0x511de5){logger[_0x212b('0x2a')](_0x212b('0x4c'),_0x511de5[_0x212b('0x30')]);}};Acw[_0x212b('0x31')][_0x212b('0x15')]=function(_0x5009b5){try{if(this[_0x212b('0x37')][_0x5009b5[_0x212b('0x4d')]]){logger['info'](_0x212b('0x4e'),JSON[_0x212b('0x36')](_0x5009b5['transfereruniqueid']));this[_0x212b('0x3d')](_0x5009b5[_0x212b('0x4d')]);}else if(this[_0x212b('0x37')][_0x5009b5[_0x212b('0x4f')]]){logger[_0x212b('0x1e')](_0x212b('0x50'),JSON[_0x212b('0x36')](_0x5009b5[_0x212b('0x4f')]));this[_0x212b('0x3d')](_0x5009b5['transfererlinkedid']);}}catch(_0x3b6c86){logger[_0x212b('0x2a')](_0x212b('0x51'),_0x3b6c86['message']);}};Acw['prototype']['syncAgentRingNoAnswer']=function(_0x3e6516){try{if(this[_0x212b('0x9')][_0x3e6516[_0x212b('0x27')]]&&this[_0x212b('0x9')][_0x3e6516[_0x212b('0x27')]][_0x212b('0x52')]==='all'){if(this[_0x212b('0xa')][_0x3e6516[_0x212b('0x1a')]]){logger[_0x212b('0x1e')](_0x212b('0x53'),_0x3e6516[_0x212b('0x26')],_0x3e6516[_0x212b('0x1a')],_0x3e6516[_0x212b('0x27')]);return RpcUser['savePause'](this['agents'][_0x3e6516[_0x212b('0x1a')]],'Auto-Pause',_0x3e6516['uniqueid']);}}}catch(_0x3077e3){logger[_0x212b('0x2a')](_0x212b('0x54'),_0x3077e3[_0x212b('0x30')]);}};module[_0x212b('0x55')]=Acw;