Built motion from commit (unavailable).|2.5.28
[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 _0x81e5=['voice_outbound:save','[DEBUG]\x20Emit\x20voice_outbound_channel:remove\x20event','stringify','[%s][voiceDialReport][hangup]\x20sending\x20voice_outbound_channel:remove\x20event:','voice_outbound_channel:remove','linkedid','destuniqueid','[%s][voiceDialReport][hangup]','exports','lodash','moment','ioredis','../../../config/environment','../../../config/logger','../ami','redis','defaults','localhost','socket.io-emitter','channels','outboundChannels','outbound','bind','dialend','syncDialEnd','varset','syncVarSet','hangup','prototype','isNotNull','isUndefined','emit','syncDialBegin','debug','[%s][voiceDialReport][dialbegin]\x20event:','uniqueid','inspect','merge','format','YYYY-MM-DD\x20HH:mm:ss','substring','lastIndexOf','channel','omit','event','privilege','membername','interface','[%s][voiceDialReport][dialbegin]\x20sending\x20voice_outbound_channel:save\x20event:','voice:outbound','[%s][voiceDialReport][dialbegin]\x20sending\x20dialbegin\x20event:','custom:dialbegin','error','[%s][voiceDialReport][dialbegin]','[%s][voiceDialReport][dialend]\x20event:','dialstatus','ANSWER','connectedlinenum','connectedlinename','lastevent','connect','custom:dialconnect','[%s][voiceDialReport][dialend]\x20sending\x20voice_outbound_channel:save\x20event:','voice_outbound_channel:save','[%s][voiceDialReport][dialend]','[%s][voiceDialReport][varset]\x20event:','keys','variable','outboundrouteid','info','value','[%s][voiceDialReport][varset]','addVariable','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqosjitterbridged','rtpaudioqosloss','rtpaudioqosrtt','rtpaudioqosrttbridged','sipcallid','bridgepeer','bridgepvtcallid','membercalls','memberdynamic','memberinterface','memberlastcall','memberpenalty','memberrealtime','includes','variables','syncHangup','[%s][voiceDialReport][hangup]\x20event:','cause-txt','duration','endtime','diff','starttime','seconds','answertime','answered','holdtime','billableseconds','sumBillable','sumDuration','[%s][voiceDialReport][hangup]\x20sending\x20voiceDialReport\x20event:','[%s][voiceDialReport][hangup]\x20sending\x20dialend\x20event:','custom:dialend','[%s][voiceDialReport][hangup]\x20sending\x20voice_outbound:save\x20event:'];(function(_0x6588ed,_0x11b8ac){var _0x338030=function(_0xa38304){while(--_0xa38304){_0x6588ed['push'](_0x6588ed['shift']());}};_0x338030(++_0x11b8ac);}(_0x81e5,0x76));var _0x581e=function(_0x830a58,_0x58f96b){_0x830a58=_0x830a58-0x0;var _0x507967=_0x81e5[_0x830a58];return _0x507967;};'use strict';var _=require(_0x581e('0x0'));var moment=require(_0x581e('0x1'));var util=require('util');var Redis=require(_0x581e('0x2'));var config=require(_0x581e('0x3'));var logger=require(_0x581e('0x4'))('ami');var ami=require(_0x581e('0x5'));config[_0x581e('0x6')]=_[_0x581e('0x7')](config[_0x581e('0x6')],{'host':_0x581e('0x8'),'port':0x18eb});var io=require(_0x581e('0x9'))(new Redis(config[_0x581e('0x6')]));function VoiceDialReport(_0x309c80){this[_0x581e('0xa')]=_0x309c80[_0x581e('0xb')];this[_0x581e('0xc')]=_0x309c80['outbound'];this['variables']={};ami['on']('dialbegin',this['syncDialBegin'][_0x581e('0xd')](this));ami['on'](_0x581e('0xe'),this[_0x581e('0xf')][_0x581e('0xd')](this));ami['on'](_0x581e('0x10'),this[_0x581e('0x11')][_0x581e('0xd')](this));ami['on'](_0x581e('0x12'),this['syncHangup'][_0x581e('0xd')](this));}VoiceDialReport[_0x581e('0x13')][_0x581e('0x14')]=function(_0x2d2404){return _0x2d2404!==null&&!_[_0x581e('0x15')](_0x2d2404);};VoiceDialReport['prototype'][_0x581e('0x16')]=function(_0x50068a,_0x252652,_0x1a2a9e){io['to'](_0x50068a)[_0x581e('0x16')](_0x252652,_0x1a2a9e);};VoiceDialReport[_0x581e('0x13')][_0x581e('0x17')]=function(_0x1c581c){try{if(this[_0x581e('0x14')](_0x1c581c)){logger[_0x581e('0x18')](_0x581e('0x19'),_0x1c581c[_0x581e('0x1a')],util[_0x581e('0x1b')](_0x1c581c,{'showHidden':![],'depth':null}));if(this[_0x581e('0xa')][_0x1c581c[_0x581e('0x1a')]]){_[_0x581e('0x1c')](this[_0x581e('0xa')][_0x1c581c[_0x581e('0x1a')]],{'starttime':moment()[_0x581e('0x1d')](_0x581e('0x1e')),'lastevent':'called','interface':_0x1c581c['channel'][_0x581e('0x1f')](0x0,_0x1c581c['channel'][_0x581e('0x20')]('-')),'membername':_0x1c581c[_0x581e('0x21')]['substring'](_0x1c581c[_0x581e('0x21')]['lastIndexOf']('/')+0x1,_0x1c581c[_0x581e('0x21')][_0x581e('0x20')]('-'))},_[_0x581e('0x22')](_0x1c581c,[_0x581e('0x23'),_0x581e('0x24')]));logger['info']('[%s][voiceDialReport][dialbegin]\x20agent:%s\x20interface:%s\x20lastevent:called',_0x1c581c[_0x581e('0x1a')],this[_0x581e('0xa')][_0x1c581c[_0x581e('0x1a')]][_0x581e('0x25')],this[_0x581e('0xa')][_0x1c581c[_0x581e('0x1a')]][_0x581e('0x26')]);logger[_0x581e('0x18')](_0x581e('0x27'),_0x1c581c[_0x581e('0x1a')],util[_0x581e('0x1b')](this[_0x581e('0xa')][_0x1c581c['uniqueid']],{'showHidden':![],'depth':null}));this[_0x581e('0x16')](_0x581e('0x28'),'voice_outbound_channel:save',this[_0x581e('0xa')][_0x1c581c[_0x581e('0x1a')]]);logger[_0x581e('0x18')](_0x581e('0x29'),_0x1c581c[_0x581e('0x1a')],util['inspect'](this[_0x581e('0xa')][_0x1c581c[_0x581e('0x1a')]],{'showHidden':![],'depth':null}));ami[_0x581e('0x16')](_0x581e('0x2a'),this[_0x581e('0xa')][_0x1c581c['uniqueid']]);}}}catch(_0x23345c){logger[_0x581e('0x2b')](_0x581e('0x2c'),_0x1c581c[_0x581e('0x1a')],util[_0x581e('0x1b')](_0x23345c,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0x581e('0x13')][_0x581e('0xf')]=function(_0x6a29b8){try{if(this[_0x581e('0x14')](_0x6a29b8)){logger[_0x581e('0x18')](_0x581e('0x2d'),_0x6a29b8[_0x581e('0x1a')],util['inspect'](_0x6a29b8,{'showHidden':![],'depth':null}));if(this[_0x581e('0xa')][_0x6a29b8[_0x581e('0x1a')]]){this[_0x581e('0xa')][_0x6a29b8[_0x581e('0x1a')]][_0x581e('0x2e')]=_0x6a29b8[_0x581e('0x2e')];if(_0x6a29b8[_0x581e('0x2e')]===_0x581e('0x2f')){this[_0x581e('0xa')][_0x6a29b8[_0x581e('0x1a')]][_0x581e('0x30')]=_0x6a29b8[_0x581e('0x30')];this['channels'][_0x6a29b8[_0x581e('0x1a')]]['connectedlinename']=_0x6a29b8[_0x581e('0x31')];this[_0x581e('0xa')][_0x6a29b8['uniqueid']]['answertime']=moment()[_0x581e('0x1d')](_0x581e('0x1e'));this[_0x581e('0xa')][_0x6a29b8[_0x581e('0x1a')]][_0x581e('0x32')]=_0x581e('0x33');logger['info']('[%s][voiceDialReport][dialend]\x20agent:%s\x20lastevent:connect',_0x6a29b8[_0x581e('0x1a')],_0x6a29b8['channel'][_0x581e('0x1f')](_0x6a29b8[_0x581e('0x21')][_0x581e('0x20')]('/')+0x1,_0x6a29b8[_0x581e('0x21')][_0x581e('0x20')]('-')));logger[_0x581e('0x18')]('[%s][voiceDialReport][dialend]\x20sending\x20dialconnect\x20event:',_0x6a29b8[_0x581e('0x1a')],util[_0x581e('0x1b')](this[_0x581e('0xa')][_0x6a29b8[_0x581e('0x1a')]],{'showHidden':![],'depth':null}));ami[_0x581e('0x16')](_0x581e('0x34'),this[_0x581e('0xa')][_0x6a29b8[_0x581e('0x1a')]]);}logger[_0x581e('0x18')](_0x581e('0x35'),_0x6a29b8[_0x581e('0x1a')],util[_0x581e('0x1b')](this[_0x581e('0xa')][_0x6a29b8[_0x581e('0x1a')]],{'showHidden':![],'depth':null}));this[_0x581e('0x16')](_0x581e('0x28'),_0x581e('0x36'),this[_0x581e('0xa')][_0x6a29b8[_0x581e('0x1a')]]);}}}catch(_0x35c63c){logger[_0x581e('0x2b')](_0x581e('0x37'),_0x6a29b8['uniqueid'],util[_0x581e('0x1b')](_0x35c63c,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0x581e('0x13')][_0x581e('0x11')]=function(_0x3fbebe){try{if(this[_0x581e('0x14')](_0x3fbebe)){logger[_0x581e('0x18')](_0x581e('0x38'),_0x3fbebe['uniqueid'],util['inspect'](_0x3fbebe,{'showHidden':![],'depth':null}));this['addVariable'](_0x3fbebe[_0x581e('0x1a')],_[_0x581e('0x39')](_0x3fbebe['variable'])[0x0],_0x3fbebe['value']);if(this[_0x581e('0x14')](_0x3fbebe[_0x581e('0x3a')])&&this[_0x581e('0x14')](_0x3fbebe[_0x581e('0x3a')][_0x581e('0x3b')])){if(_['isUndefined'](this[_0x581e('0xa')][_0x3fbebe['uniqueid']])){this[_0x581e('0xa')][_0x3fbebe[_0x581e('0x1a')]]={'routeId':_0x3fbebe['value'],'variables':this['variables'][_0x3fbebe['uniqueid']]};logger[_0x581e('0x3c')]('[%s][voiceDialReport][varset]\x20outboundrouteid:%s\x20variable:%s\x20value:%s',_0x3fbebe['uniqueid'],_0x3fbebe['variable'][_0x581e('0x3b')],_['keys'](_0x3fbebe[_0x581e('0x3a')])[0x0],_0x3fbebe[_0x581e('0x3d')]);logger['debug']('[%s][voiceDialReport][varset]\x20sending\x20voice_outbound_channel:save\x20event:',_0x3fbebe[_0x581e('0x1a')],util[_0x581e('0x1b')](this[_0x581e('0xa')][_0x3fbebe['uniqueid']],{'showHidden':![],'depth':null}));this[_0x581e('0x16')](_0x581e('0x28'),_0x581e('0x36'),this[_0x581e('0xa')][_0x3fbebe[_0x581e('0x1a')]]);}}}}catch(_0xdc5187){logger[_0x581e('0x2b')](_0x581e('0x3e'),_0x3fbebe['uniqueid'],util[_0x581e('0x1b')](_0xdc5187,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0x581e('0x13')][_0x581e('0x3f')]=function(_0x55f17f,_0x2af80b,_0x12c0ef){var _0x314ccf=[_0x581e('0x40'),_0x581e('0x41'),_0x581e('0x42'),_0x581e('0x43'),_0x581e('0x44'),'rtpaudioqoslossbridged',_0x581e('0x45'),_0x581e('0x46'),_0x581e('0x47'),'sipuri',_0x581e('0x48'),_0x581e('0x49'),_0x581e('0x4a'),_0x581e('0x4b'),_0x581e('0x4c'),_0x581e('0x4d'),_0x581e('0x25'),_0x581e('0x4e'),_0x581e('0x4f')];if(!_['isNil'](_0x2af80b)&&!_[_0x581e('0x50')](_0x314ccf,_0x2af80b)){if(_[_0x581e('0x15')](this[_0x581e('0x51')][_0x55f17f])){this[_0x581e('0x51')][_0x55f17f]={};}this[_0x581e('0x51')][_0x55f17f][_0x2af80b]=_0x12c0ef;}};VoiceDialReport[_0x581e('0x13')][_0x581e('0x52')]=function(_0x2dcf2f){try{if(this[_0x581e('0x14')](_0x2dcf2f)){logger[_0x581e('0x18')](_0x581e('0x53'),_0x2dcf2f[_0x581e('0x1a')],util[_0x581e('0x1b')](_0x2dcf2f,{'showHidden':![],'depth':null}));if(this[_0x581e('0xa')][_0x2dcf2f[_0x581e('0x1a')]]){logger[_0x581e('0x3c')]('[%s][voiceDialReport][hangup]\x20reason:%s\x20lasteevent:complete',_0x2dcf2f[_0x581e('0x1a')],_0x2dcf2f[_0x581e('0x54')]);this[_0x581e('0xa')][_0x2dcf2f['uniqueid']]['endtime']=moment()[_0x581e('0x1d')](_0x581e('0x1e'));this['channels'][_0x2dcf2f[_0x581e('0x1a')]][_0x581e('0x55')]=moment(this[_0x581e('0xa')][_0x2dcf2f[_0x581e('0x1a')]][_0x581e('0x56')])[_0x581e('0x57')](this['channels'][_0x2dcf2f[_0x581e('0x1a')]][_0x581e('0x58')],_0x581e('0x59'));this[_0x581e('0xa')][_0x2dcf2f[_0x581e('0x1a')]][_0x581e('0x32')]='complete';this[_0x581e('0xc')]['total']+=0x1;if(this[_0x581e('0xa')][_0x2dcf2f[_0x581e('0x1a')]][_0x581e('0x5a')]){this[_0x581e('0xc')][_0x581e('0x5b')]+=0x1;this[_0x581e('0xa')][_0x2dcf2f['uniqueid']][_0x581e('0x5c')]=moment(this[_0x581e('0xa')][_0x2dcf2f[_0x581e('0x1a')]]['answertime'])[_0x581e('0x57')](this[_0x581e('0xa')][_0x2dcf2f[_0x581e('0x1a')]]['starttime'],'seconds');this[_0x581e('0xa')][_0x2dcf2f[_0x581e('0x1a')]][_0x581e('0x5d')]=moment(this[_0x581e('0xa')][_0x2dcf2f['uniqueid']]['endtime'])[_0x581e('0x57')](this[_0x581e('0xa')][_0x2dcf2f[_0x581e('0x1a')]]['answertime'],'seconds');this[_0x581e('0xc')]['sumHoldTime']+=this['channels'][_0x2dcf2f['uniqueid']][_0x581e('0x5c')]||0x0;this[_0x581e('0xc')][_0x581e('0x5e')]+=this['channels'][_0x2dcf2f[_0x581e('0x1a')]][_0x581e('0x5d')];}this['outbound'][_0x581e('0x5f')]+=this['channels'][_0x2dcf2f['uniqueid']]['duration'];logger[_0x581e('0x18')](_0x581e('0x60'),_0x2dcf2f['uniqueid'],util['inspect'](this[_0x581e('0xa')][_0x2dcf2f[_0x581e('0x1a')]],{'showHidden':![],'depth':null}));ami[_0x581e('0x16')]('custom:voiceDialReport',this['channels'][_0x2dcf2f[_0x581e('0x1a')]]);logger[_0x581e('0x18')](_0x581e('0x61'),_0x2dcf2f[_0x581e('0x1a')],util[_0x581e('0x1b')](this[_0x581e('0xa')][_0x2dcf2f[_0x581e('0x1a')]],{'showHidden':![],'depth':null}));ami[_0x581e('0x16')](_0x581e('0x62'),this[_0x581e('0xa')][_0x2dcf2f[_0x581e('0x1a')]]);logger[_0x581e('0x18')](_0x581e('0x63'),_0x2dcf2f[_0x581e('0x1a')],util[_0x581e('0x1b')](this[_0x581e('0xa')][_0x2dcf2f[_0x581e('0x1a')]],{'showHidden':![],'depth':null}));this[_0x581e('0x16')](_0x581e('0x28'),_0x581e('0x64'),this[_0x581e('0xc')]);logger[_0x581e('0x3c')](_0x581e('0x65'),JSON[_0x581e('0x66')](this[_0x581e('0xa')][_0x2dcf2f[_0x581e('0x1a')]]));logger[_0x581e('0x18')](_0x581e('0x67'),_0x2dcf2f['uniqueid'],util['inspect'](this[_0x581e('0xa')][_0x2dcf2f['uniqueid']],{'showHidden':![],'depth':null}));this[_0x581e('0x16')](_0x581e('0x28'),_0x581e('0x68'),this[_0x581e('0xa')][_0x2dcf2f[_0x581e('0x1a')]]);delete this[_0x581e('0xa')][_0x2dcf2f[_0x581e('0x1a')]];}else if(this['channels'][_0x2dcf2f[_0x581e('0x69')]]){this[_0x581e('0xa')][_0x2dcf2f[_0x581e('0x69')]][_0x581e('0x1a')]=this[_0x581e('0xa')][_0x2dcf2f[_0x581e('0x69')]][_0x581e('0x6a')];}if(this[_0x581e('0x51')][_0x2dcf2f['uniqueid']]){delete this[_0x581e('0x51')][_0x2dcf2f[_0x581e('0x1a')]];}}}catch(_0x36db86){logger[_0x581e('0x2b')](_0x581e('0x6b'),_0x2dcf2f[_0x581e('0x1a')],util[_0x581e('0x1b')](_0x36db86,{'showHidden':![],'depth':null}));}};module[_0x581e('0x6c')]=VoiceDialReport;