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