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