Built motion from commit (unavailable).|2.4.17
[motion2.git] / server / services / ami / report / voiceDialReport.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 _0x074b=['syncVarSet','hangup','syncHangup','prototype','isNotNull','isUndefined','emit','merge','uniqueid','format','YYYY-MM-DD\x20HH:mm:ss','channel','substring','lastIndexOf','omit','event','privilege','error','dialstatus','ANSWER','connectedlinenum','connectedlinename','lastevent','custom:dialconnect','voice:outbound','voice_outbound_channel:save','inspect','addVariable','keys','variable','value','outboundrouteid','variables','[syncVarSet][VoiceDialReport]','rtpaudioqos','rtpaudioqosloss','rtpaudioqosrtt','rtpaudioqosrttbridged','bridgepeer','bridgepvtcallid','memberdynamic','memberinterface','memberlastcall','membername','memberpenalty','isNil','endtime','duration','diff','starttime','complete','total','answertime','holdtime','seconds','sumHoldTime','billableseconds','custom:dialend','voice_outbound:save','info','[DEBUG]\x20Emit\x20voice_outbound_channel:remove\x20event','stringify','voice_outbound_channel:remove','[syncHangup][VoiceDialReport]','exports','lodash','moment','util','ioredis','../../../config/environment','../../../config/logger','ami','../ami','redis','defaults','localhost','socket.io-emitter','channels','outboundChannels','outbound','dialbegin','syncDialBegin','bind','dialend','syncDialEnd'];(function(_0x39b2be,_0x56fbee){var _0x510508=function(_0x4a0eb1){while(--_0x4a0eb1){_0x39b2be['push'](_0x39b2be['shift']());}};_0x510508(++_0x56fbee);}(_0x074b,0x195));var _0xb074=function(_0xfe0c27,_0x529ae9){_0xfe0c27=_0xfe0c27-0x0;var _0x493f0d=_0x074b[_0xfe0c27];return _0x493f0d;};'use strict';var _=require(_0xb074('0x0'));var moment=require(_0xb074('0x1'));var util=require(_0xb074('0x2'));var Redis=require(_0xb074('0x3'));var config=require(_0xb074('0x4'));var logger=require(_0xb074('0x5'))(_0xb074('0x6'));var ami=require(_0xb074('0x7'));config[_0xb074('0x8')]=_[_0xb074('0x9')](config['redis'],{'host':_0xb074('0xa'),'port':0x18eb});var io=require(_0xb074('0xb'))(new Redis(config['redis']));function VoiceDialReport(_0x1f8d92){this[_0xb074('0xc')]=_0x1f8d92[_0xb074('0xd')];this[_0xb074('0xe')]=_0x1f8d92[_0xb074('0xe')];this['variables']={};ami['on'](_0xb074('0xf'),this[_0xb074('0x10')][_0xb074('0x11')](this));ami['on'](_0xb074('0x12'),this[_0xb074('0x13')][_0xb074('0x11')](this));ami['on']('varset',this[_0xb074('0x14')]['bind'](this));ami['on'](_0xb074('0x15'),this[_0xb074('0x16')][_0xb074('0x11')](this));}VoiceDialReport[_0xb074('0x17')][_0xb074('0x18')]=function(_0x6e556e){return _0x6e556e!==null&&!_[_0xb074('0x19')](_0x6e556e);};VoiceDialReport[_0xb074('0x17')][_0xb074('0x1a')]=function(_0x1fd889,_0x4aab4d,_0x626bd0){io['to'](_0x1fd889)[_0xb074('0x1a')](_0x4aab4d,_0x626bd0);};VoiceDialReport['prototype'][_0xb074('0x10')]=function(_0x4ea6da){try{if(this['isNotNull'](_0x4ea6da)){if(this[_0xb074('0xc')][_0x4ea6da['uniqueid']]){_[_0xb074('0x1b')](this[_0xb074('0xc')][_0x4ea6da[_0xb074('0x1c')]],{'starttime':moment()[_0xb074('0x1d')](_0xb074('0x1e')),'lastevent':'called','interface':_0x4ea6da[_0xb074('0x1f')][_0xb074('0x20')](0x0,_0x4ea6da[_0xb074('0x1f')]['lastIndexOf']('-')),'membername':_0x4ea6da[_0xb074('0x1f')][_0xb074('0x20')](_0x4ea6da[_0xb074('0x1f')]['lastIndexOf']('/')+0x1,_0x4ea6da[_0xb074('0x1f')][_0xb074('0x21')]('-'))},_[_0xb074('0x22')](_0x4ea6da,[_0xb074('0x23'),_0xb074('0x24')]));this['emit']('voice:outbound','voice_outbound_channel:save',this['channels'][_0x4ea6da['uniqueid']]);ami[_0xb074('0x1a')]('custom:dialbegin',this[_0xb074('0xc')][_0x4ea6da['uniqueid']]);}}}catch(_0x50840d){logger[_0xb074('0x25')]('[syncDialBegin][VoiceDialReport]',util['inspect'](_0x50840d,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0xb074('0x17')][_0xb074('0x13')]=function(_0x293133){try{if(this[_0xb074('0x18')](_0x293133)){if(this[_0xb074('0xc')][_0x293133[_0xb074('0x1c')]]){this['channels'][_0x293133[_0xb074('0x1c')]][_0xb074('0x26')]=_0x293133[_0xb074('0x26')];if(_0x293133[_0xb074('0x26')]===_0xb074('0x27')){this['channels'][_0x293133[_0xb074('0x1c')]][_0xb074('0x28')]=_0x293133[_0xb074('0x28')];this['channels'][_0x293133['uniqueid']][_0xb074('0x29')]=_0x293133[_0xb074('0x29')];this[_0xb074('0xc')][_0x293133[_0xb074('0x1c')]]['answertime']=moment()[_0xb074('0x1d')](_0xb074('0x1e'));this[_0xb074('0xc')][_0x293133[_0xb074('0x1c')]][_0xb074('0x2a')]='connect';ami['emit'](_0xb074('0x2b'),this[_0xb074('0xc')][_0x293133[_0xb074('0x1c')]]);}this[_0xb074('0x1a')](_0xb074('0x2c'),_0xb074('0x2d'),this[_0xb074('0xc')][_0x293133[_0xb074('0x1c')]]);}}}catch(_0x27bb3b){logger[_0xb074('0x25')]('[syncDialEnd][VoiceDialReport]',util[_0xb074('0x2e')](_0x27bb3b,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0xb074('0x17')][_0xb074('0x14')]=function(_0x5b6e95){try{if(this['isNotNull'](_0x5b6e95)){this[_0xb074('0x2f')](_0x5b6e95[_0xb074('0x1c')],_[_0xb074('0x30')](_0x5b6e95[_0xb074('0x31')])[0x0],_0x5b6e95[_0xb074('0x32')]);if(this[_0xb074('0x18')](_0x5b6e95[_0xb074('0x31')])&&this[_0xb074('0x18')](_0x5b6e95['variable'][_0xb074('0x33')])){if(_[_0xb074('0x19')](this[_0xb074('0xc')][_0x5b6e95[_0xb074('0x1c')]])){this[_0xb074('0xc')][_0x5b6e95[_0xb074('0x1c')]]={'routeId':_0x5b6e95['value'],'variables':this[_0xb074('0x34')][_0x5b6e95['uniqueid']]};this['emit'](_0xb074('0x2c'),'voice_outbound_channel:save',this[_0xb074('0xc')][_0x5b6e95[_0xb074('0x1c')]]);}}}}catch(_0x475700){logger[_0xb074('0x25')](_0xb074('0x35'),util[_0xb074('0x2e')](_0x475700,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0xb074('0x17')][_0xb074('0x2f')]=function(_0x1f1a69,_0x110d00,_0x1bb458){var _0x4751d5=[_0xb074('0x36'),'rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqosjitterbridged',_0xb074('0x37'),'rtpaudioqoslossbridged',_0xb074('0x38'),_0xb074('0x39'),'sipcallid','sipuri',_0xb074('0x3a'),_0xb074('0x3b'),'membercalls',_0xb074('0x3c'),_0xb074('0x3d'),_0xb074('0x3e'),_0xb074('0x3f'),_0xb074('0x40'),'memberrealtime'];if(!_[_0xb074('0x41')](_0x110d00)&&!_['includes'](_0x4751d5,_0x110d00)){if(_[_0xb074('0x19')](this['variables'][_0x1f1a69])){this[_0xb074('0x34')][_0x1f1a69]={};}this[_0xb074('0x34')][_0x1f1a69][_0x110d00]=_0x1bb458;}};VoiceDialReport[_0xb074('0x17')][_0xb074('0x16')]=function(_0x4621be){try{if(this['isNotNull'](_0x4621be)){if(this[_0xb074('0xc')][_0x4621be[_0xb074('0x1c')]]){this['channels'][_0x4621be[_0xb074('0x1c')]][_0xb074('0x42')]=moment()['format'](_0xb074('0x1e'));this[_0xb074('0xc')][_0x4621be[_0xb074('0x1c')]][_0xb074('0x43')]=moment(this[_0xb074('0xc')][_0x4621be[_0xb074('0x1c')]][_0xb074('0x42')])[_0xb074('0x44')](this[_0xb074('0xc')][_0x4621be['uniqueid']][_0xb074('0x45')],'seconds');this[_0xb074('0xc')][_0x4621be[_0xb074('0x1c')]][_0xb074('0x2a')]=_0xb074('0x46');this[_0xb074('0xe')][_0xb074('0x47')]+=0x1;if(this[_0xb074('0xc')][_0x4621be[_0xb074('0x1c')]][_0xb074('0x48')]){this[_0xb074('0xe')]['answered']+=0x1;this['channels'][_0x4621be[_0xb074('0x1c')]][_0xb074('0x49')]=moment(this[_0xb074('0xc')][_0x4621be[_0xb074('0x1c')]][_0xb074('0x48')])['diff'](this[_0xb074('0xc')][_0x4621be[_0xb074('0x1c')]]['starttime'],'seconds');this[_0xb074('0xc')][_0x4621be[_0xb074('0x1c')]]['billableseconds']=moment(this[_0xb074('0xc')][_0x4621be[_0xb074('0x1c')]]['endtime'])[_0xb074('0x44')](this[_0xb074('0xc')][_0x4621be[_0xb074('0x1c')]]['answertime'],_0xb074('0x4a'));this[_0xb074('0xe')][_0xb074('0x4b')]+=this[_0xb074('0xc')][_0x4621be[_0xb074('0x1c')]][_0xb074('0x49')]||0x0;this[_0xb074('0xe')]['sumBillable']+=this[_0xb074('0xc')][_0x4621be[_0xb074('0x1c')]][_0xb074('0x4c')];}this[_0xb074('0xe')]['sumDuration']+=this[_0xb074('0xc')][_0x4621be[_0xb074('0x1c')]][_0xb074('0x43')];ami[_0xb074('0x1a')]('custom:voiceDialReport',this[_0xb074('0xc')][_0x4621be[_0xb074('0x1c')]]);ami[_0xb074('0x1a')](_0xb074('0x4d'),this[_0xb074('0xc')][_0x4621be[_0xb074('0x1c')]]);this[_0xb074('0x1a')](_0xb074('0x2c'),_0xb074('0x4e'),this['outbound']);logger[_0xb074('0x4f')](_0xb074('0x50'),JSON[_0xb074('0x51')](this[_0xb074('0xc')][_0x4621be['uniqueid']]));this['emit']('voice:outbound',_0xb074('0x52'),this[_0xb074('0xc')][_0x4621be[_0xb074('0x1c')]]);delete this[_0xb074('0xc')][_0x4621be[_0xb074('0x1c')]];}if(this[_0xb074('0x34')][_0x4621be[_0xb074('0x1c')]]){delete this[_0xb074('0x34')][_0x4621be['uniqueid']];}}}catch(_0x20bc21){logger[_0xb074('0x25')](_0xb074('0x53'),util[_0xb074('0x2e')](_0x20bc21,{'showHidden':![],'depth':null}));}};module[_0xb074('0x54')]=VoiceDialReport;