Built motion from commit (unavailable).|2.4.20
[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 _0x285f=['rtpaudioqosloss','rtpaudioqoslossbridged','rtpaudioqosrttbridged','sipcallid','sipuri','bridgepeer','bridgepvtcallid','membercalls','memberdynamic','memberinterface','memberlastcall','membername','memberpenalty','isNil','endtime','duration','diff','starttime','seconds','complete','total','answered','holdtime','billableseconds','sumHoldTime','sumBillable','sumDuration','voice_outbound:save','info','[DEBUG]\x20Emit\x20voice_outbound_channel:remove\x20event','stringify','voice_outbound_channel:remove','exports','lodash','moment','util','../../../config/environment','../../../config/logger','ami','../ami','redis','defaults','socket.io-emitter','channels','outboundChannels','outbound','dialbegin','syncDialBegin','bind','dialend','syncDialEnd','varset','syncHangup','isUndefined','emit','prototype','uniqueid','merge','format','YYYY-MM-DD\x20HH:mm:ss','called','channel','substring','lastIndexOf','omit','event','voice:outbound','voice_outbound_channel:save','custom:dialbegin','error','[syncDialBegin][VoiceDialReport]','inspect','isNotNull','dialstatus','ANSWER','connectedlinenum','connectedlinename','answertime','lastevent','connect','syncVarSet','addVariable','keys','variable','value','outboundrouteid','variables','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqosjitterbridged'];(function(_0xdb951d,_0x1dc42b){var _0x5e789e=function(_0x1056cd){while(--_0x1056cd){_0xdb951d['push'](_0xdb951d['shift']());}};_0x5e789e(++_0x1dc42b);}(_0x285f,0x18d));var _0xf285=function(_0x204bf5,_0xc18559){_0x204bf5=_0x204bf5-0x0;var _0x30081e=_0x285f[_0x204bf5];return _0x30081e;};'use strict';var _=require(_0xf285('0x0'));var moment=require(_0xf285('0x1'));var util=require(_0xf285('0x2'));var Redis=require('ioredis');var config=require(_0xf285('0x3'));var logger=require(_0xf285('0x4'))(_0xf285('0x5'));var ami=require(_0xf285('0x6'));config[_0xf285('0x7')]=_[_0xf285('0x8')](config['redis'],{'host':'localhost','port':0x18eb});var io=require(_0xf285('0x9'))(new Redis(config[_0xf285('0x7')]));function VoiceDialReport(_0x4b586f){this[_0xf285('0xa')]=_0x4b586f[_0xf285('0xb')];this[_0xf285('0xc')]=_0x4b586f[_0xf285('0xc')];this['variables']={};ami['on'](_0xf285('0xd'),this[_0xf285('0xe')][_0xf285('0xf')](this));ami['on'](_0xf285('0x10'),this[_0xf285('0x11')][_0xf285('0xf')](this));ami['on'](_0xf285('0x12'),this['syncVarSet'][_0xf285('0xf')](this));ami['on']('hangup',this[_0xf285('0x13')][_0xf285('0xf')](this));}VoiceDialReport['prototype']['isNotNull']=function(_0x50f625){return _0x50f625!==null&&!_[_0xf285('0x14')](_0x50f625);};VoiceDialReport['prototype'][_0xf285('0x15')]=function(_0x556f58,_0x43e201,_0xcfea45){io['to'](_0x556f58)[_0xf285('0x15')](_0x43e201,_0xcfea45);};VoiceDialReport[_0xf285('0x16')][_0xf285('0xe')]=function(_0x1d1342){try{if(this['isNotNull'](_0x1d1342)){if(this[_0xf285('0xa')][_0x1d1342[_0xf285('0x17')]]){_[_0xf285('0x18')](this[_0xf285('0xa')][_0x1d1342[_0xf285('0x17')]],{'starttime':moment()[_0xf285('0x19')](_0xf285('0x1a')),'lastevent':_0xf285('0x1b'),'interface':_0x1d1342[_0xf285('0x1c')][_0xf285('0x1d')](0x0,_0x1d1342[_0xf285('0x1c')][_0xf285('0x1e')]('-')),'membername':_0x1d1342[_0xf285('0x1c')][_0xf285('0x1d')](_0x1d1342[_0xf285('0x1c')][_0xf285('0x1e')]('/')+0x1,_0x1d1342['channel'][_0xf285('0x1e')]('-'))},_[_0xf285('0x1f')](_0x1d1342,[_0xf285('0x20'),'privilege']));this[_0xf285('0x15')](_0xf285('0x21'),_0xf285('0x22'),this['channels'][_0x1d1342['uniqueid']]);ami['emit'](_0xf285('0x23'),this[_0xf285('0xa')][_0x1d1342[_0xf285('0x17')]]);}}}catch(_0x5d38ec){logger[_0xf285('0x24')](_0xf285('0x25'),util[_0xf285('0x26')](_0x5d38ec,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0xf285('0x16')][_0xf285('0x11')]=function(_0x4196a8){try{if(this[_0xf285('0x27')](_0x4196a8)){if(this['channels'][_0x4196a8[_0xf285('0x17')]]){this[_0xf285('0xa')][_0x4196a8[_0xf285('0x17')]][_0xf285('0x28')]=_0x4196a8[_0xf285('0x28')];if(_0x4196a8['dialstatus']===_0xf285('0x29')){this[_0xf285('0xa')][_0x4196a8['uniqueid']][_0xf285('0x2a')]=_0x4196a8[_0xf285('0x2a')];this[_0xf285('0xa')][_0x4196a8[_0xf285('0x17')]][_0xf285('0x2b')]=_0x4196a8[_0xf285('0x2b')];this[_0xf285('0xa')][_0x4196a8[_0xf285('0x17')]][_0xf285('0x2c')]=moment()[_0xf285('0x19')](_0xf285('0x1a'));this['channels'][_0x4196a8[_0xf285('0x17')]][_0xf285('0x2d')]=_0xf285('0x2e');ami[_0xf285('0x15')]('custom:dialconnect',this[_0xf285('0xa')][_0x4196a8[_0xf285('0x17')]]);}this['emit'](_0xf285('0x21'),_0xf285('0x22'),this[_0xf285('0xa')][_0x4196a8[_0xf285('0x17')]]);}}}catch(_0x48327c){logger[_0xf285('0x24')]('[syncDialEnd][VoiceDialReport]',util[_0xf285('0x26')](_0x48327c,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0xf285('0x16')][_0xf285('0x2f')]=function(_0x4651e0){try{if(this[_0xf285('0x27')](_0x4651e0)){this[_0xf285('0x30')](_0x4651e0[_0xf285('0x17')],_[_0xf285('0x31')](_0x4651e0[_0xf285('0x32')])[0x0],_0x4651e0[_0xf285('0x33')]);if(this['isNotNull'](_0x4651e0[_0xf285('0x32')])&&this[_0xf285('0x27')](_0x4651e0['variable'][_0xf285('0x34')])){if(_[_0xf285('0x14')](this['channels'][_0x4651e0[_0xf285('0x17')]])){this[_0xf285('0xa')][_0x4651e0[_0xf285('0x17')]]={'routeId':_0x4651e0[_0xf285('0x33')],'variables':this[_0xf285('0x35')][_0x4651e0['uniqueid']]};this[_0xf285('0x15')](_0xf285('0x21'),_0xf285('0x22'),this[_0xf285('0xa')][_0x4651e0[_0xf285('0x17')]]);}}}}catch(_0x5943ea){logger['error']('[syncVarSet][VoiceDialReport]',util[_0xf285('0x26')](_0x5943ea,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0xf285('0x16')][_0xf285('0x30')]=function(_0x9d0678,_0x35d357,_0x4a32bc){var _0x1089a6=[_0xf285('0x36'),_0xf285('0x37'),_0xf285('0x38'),_0xf285('0x39'),_0xf285('0x3a'),_0xf285('0x3b'),'rtpaudioqosrtt',_0xf285('0x3c'),_0xf285('0x3d'),_0xf285('0x3e'),_0xf285('0x3f'),_0xf285('0x40'),_0xf285('0x41'),_0xf285('0x42'),_0xf285('0x43'),_0xf285('0x44'),_0xf285('0x45'),_0xf285('0x46'),'memberrealtime'];if(!_[_0xf285('0x47')](_0x35d357)&&!_['includes'](_0x1089a6,_0x35d357)){if(_[_0xf285('0x14')](this[_0xf285('0x35')][_0x9d0678])){this[_0xf285('0x35')][_0x9d0678]={};}this[_0xf285('0x35')][_0x9d0678][_0x35d357]=_0x4a32bc;}};VoiceDialReport[_0xf285('0x16')][_0xf285('0x13')]=function(_0x2abc5d){try{if(this[_0xf285('0x27')](_0x2abc5d)){if(this[_0xf285('0xa')][_0x2abc5d[_0xf285('0x17')]]){this['channels'][_0x2abc5d[_0xf285('0x17')]][_0xf285('0x48')]=moment()[_0xf285('0x19')]('YYYY-MM-DD\x20HH:mm:ss');this[_0xf285('0xa')][_0x2abc5d[_0xf285('0x17')]][_0xf285('0x49')]=moment(this[_0xf285('0xa')][_0x2abc5d[_0xf285('0x17')]]['endtime'])[_0xf285('0x4a')](this[_0xf285('0xa')][_0x2abc5d[_0xf285('0x17')]][_0xf285('0x4b')],_0xf285('0x4c'));this[_0xf285('0xa')][_0x2abc5d[_0xf285('0x17')]][_0xf285('0x2d')]=_0xf285('0x4d');this[_0xf285('0xc')][_0xf285('0x4e')]+=0x1;if(this[_0xf285('0xa')][_0x2abc5d[_0xf285('0x17')]][_0xf285('0x2c')]){this[_0xf285('0xc')][_0xf285('0x4f')]+=0x1;this[_0xf285('0xa')][_0x2abc5d[_0xf285('0x17')]][_0xf285('0x50')]=moment(this[_0xf285('0xa')][_0x2abc5d[_0xf285('0x17')]][_0xf285('0x2c')])[_0xf285('0x4a')](this[_0xf285('0xa')][_0x2abc5d['uniqueid']]['starttime'],_0xf285('0x4c'));this[_0xf285('0xa')][_0x2abc5d[_0xf285('0x17')]][_0xf285('0x51')]=moment(this['channels'][_0x2abc5d[_0xf285('0x17')]][_0xf285('0x48')])[_0xf285('0x4a')](this[_0xf285('0xa')][_0x2abc5d[_0xf285('0x17')]][_0xf285('0x2c')],_0xf285('0x4c'));this[_0xf285('0xc')][_0xf285('0x52')]+=this[_0xf285('0xa')][_0x2abc5d[_0xf285('0x17')]][_0xf285('0x50')]||0x0;this['outbound'][_0xf285('0x53')]+=this['channels'][_0x2abc5d['uniqueid']][_0xf285('0x51')];}this[_0xf285('0xc')][_0xf285('0x54')]+=this['channels'][_0x2abc5d[_0xf285('0x17')]][_0xf285('0x49')];ami[_0xf285('0x15')]('custom:voiceDialReport',this['channels'][_0x2abc5d['uniqueid']]);ami[_0xf285('0x15')]('custom:dialend',this[_0xf285('0xa')][_0x2abc5d[_0xf285('0x17')]]);this['emit'](_0xf285('0x21'),_0xf285('0x55'),this[_0xf285('0xc')]);logger[_0xf285('0x56')](_0xf285('0x57'),JSON[_0xf285('0x58')](this[_0xf285('0xa')][_0x2abc5d[_0xf285('0x17')]]));this[_0xf285('0x15')](_0xf285('0x21'),_0xf285('0x59'),this[_0xf285('0xa')][_0x2abc5d['uniqueid']]);delete this[_0xf285('0xa')][_0x2abc5d[_0xf285('0x17')]];}if(this[_0xf285('0x35')][_0x2abc5d['uniqueid']]){delete this[_0xf285('0x35')][_0x2abc5d['uniqueid']];}}}catch(_0x9420c3){logger[_0xf285('0x24')]('[syncHangup][VoiceDialReport]',util[_0xf285('0x26')](_0x9420c3,{'showHidden':![],'depth':null}));}};module[_0xf285('0x5a')]=VoiceDialReport;