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