Built motion from commit (unavailable).|2.5.15
[motion2.git] / server / services / ami / report / index.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 _0x8ebf=['createdAt','xcally-motion-preview','connectedlinenum','calleridname','connectedlinename','membername','xcally-motion-dialer','isArray','forEach','startsWith','Local','substring','indexOf','mobile','phone','lastIndexOf','blindTransfer','transfererlinkedid','exports','lodash','moment','../rpc/voiceAgentReport','../rpc/voiceDialReport','../rpc/voiceQueueReport','../rpc/voiceRecording','../rpc/voiceTransferReport','./voiceQueueReport','./voiceAgentReport','./voiceDialReport','./userReport','agents','telephones','prototype','sync','realtime','xdr','disabled','voiceQueueReport','bind','custom:voiceCallReport','voiceCallReport','voiceAgentReport','voiceDialReport','blindtransfer','attendedtransfer','attendedTransfer','findAgent','find','accountcode','name','isNil','interface','SIP/%s','length','assigned','lastAssignedTo','format','queuecallercomplete','queuecallercompleteAt','queuecallerexit','queuecallerexitAt','YYYY-MM-DD\x20HH:mm:ss','create','match','destination','exten','type','dialer','queue','lastdata','context','from-voip-provider','callerid','from-sip','calleridpreview','calleridnum','originatecalleridnum','destinationchannel','channel','disposition','ANSWERED','linkedid','transfers','transfereelinkedid','monitor','monitors','monitorFilename','filename'];(function(_0x1e2c4b,_0x19939a){var _0x2df1a8=function(_0x5bcf71){while(--_0x5bcf71){_0x1e2c4b['push'](_0x1e2c4b['shift']());}};_0x2df1a8(++_0x19939a);}(_0x8ebf,0xc3));var _0xf8eb=function(_0x5192de,_0x4e91cd){_0x5192de=_0x5192de-0x0;var _0x4e287e=_0x8ebf[_0x5192de];return _0x4e287e;};'use strict';var _=require(_0xf8eb('0x0'));var moment=require(_0xf8eb('0x1'));var util=require('util');var config=require('../../../config/environment');var ami=require('../ami');var RpcVoiceAgentReport=require(_0xf8eb('0x2'));var RpcVoiceCallReport=require('../rpc/voiceCallReport');var RpcVoiceDialReport=require(_0xf8eb('0x3'));var RpcMemberReport=require('../rpc/memberReport');var RpcVoiceQueueReport=require(_0xf8eb('0x4'));var RpcVoiceRecording=require(_0xf8eb('0x5'));var RpcVoiceTransferReport=require(_0xf8eb('0x6'));var VoiceQueueReport=require(_0xf8eb('0x7'));var VoiceCallReport=require('./voiceCallReport');var VoiceAgentReport=require(_0xf8eb('0x8'));var VoiceDialReport=require(_0xf8eb('0x9'));var UserReport=require(_0xf8eb('0xa'));function Report(_0x345a40){this['realtime']=_0x345a40;this[_0xf8eb('0xb')]=_0x345a40[_0xf8eb('0xb')];this[_0xf8eb('0xc')]=_0x345a40[_0xf8eb('0xc')];}Report[_0xf8eb('0xd')][_0xf8eb('0xe')]=function(_0x4be209){var _0xb6ef3e=new VoiceQueueReport(this[_0xf8eb('0xf')]);var _0xef7e46=new VoiceAgentReport(this['realtime']);var _0x3fed6f=new VoiceDialReport(this[_0xf8eb('0xf')]);var _0x391b67=new VoiceCallReport(this[_0xf8eb('0xf')]);var _0x423aa4=new UserReport(this['realtime']);if(config[_0xf8eb('0x10')]&&config[_0xf8eb('0x10')][_0xf8eb('0x11')]){ami['on']('custom:voiceQueueReport',this[_0xf8eb('0x12')][_0xf8eb('0x13')](this));ami['on'](_0xf8eb('0x14'),this[_0xf8eb('0x15')][_0xf8eb('0x13')](this));ami['on']('custom:voiceAgentReport',this[_0xf8eb('0x16')][_0xf8eb('0x13')](this));ami['on']('custom:voiceDialReport',this[_0xf8eb('0x17')][_0xf8eb('0x13')](this));ami['on'](_0xf8eb('0x18'),this['blindTransfer']['bind'](this));ami['on'](_0xf8eb('0x19'),this[_0xf8eb('0x1a')]['bind'](this));}};Report[_0xf8eb('0xd')][_0xf8eb('0x1b')]=function(_0x3b1edc){var _0xb454a7;_0xb454a7=_[_0xf8eb('0x1c')](this[_0xf8eb('0xb')],function(_0x229ed3){return _0x229ed3[_0xf8eb('0x1d')]==_0x3b1edc||_0x229ed3[_0xf8eb('0x1e')]==_0x3b1edc;});if(_[_0xf8eb('0x1f')](_0xb454a7)){var _0x4a8efa=_[_0xf8eb('0x1c')](this[_0xf8eb('0xc')],function(_0x1371b2){return _0x1371b2['accountcode']==_0x3b1edc||_0x1371b2[_0xf8eb('0x1e')]==_0x3b1edc;});if(_0x4a8efa){_0xb454a7=_['find'](this['agents'],function(_0x45a827){return _0x45a827[_0xf8eb('0x20')]==util['format'](_0xf8eb('0x21'),_0x4a8efa[_0xf8eb('0x1e')]);});}}return _0xb454a7;};Report[_0xf8eb('0xd')]['voiceQueueReport']=function(_0x3e66a6){for(var _0x8a81b3=0x0;_0x8a81b3<_0x3e66a6[_0xf8eb('0x22')];_0x8a81b3+=0x1){var _0x3a8fd5=this['findAgent'](_0x3e66a6[_0x8a81b3]['connectedlinenum']);if(_0x3a8fd5){_0x3e66a6[_0x8a81b3][_0xf8eb('0x1d')]=_0x3a8fd5['accountcode'];_0x3e66a6[_0x8a81b3][_0xf8eb('0x23')]=!![];_0x3e66a6[_0x8a81b3][_0xf8eb('0x24')]=_0x3a8fd5['name'];_0x3e66a6[_0x8a81b3][_0xf8eb('0x20')]=_[_0xf8eb('0x1f')](_0x3a8fd5['interface'])?util[_0xf8eb('0x25')]('SIP/%s',_0x3a8fd5['name']):_0x3a8fd5[_0xf8eb('0x20')];if(_0x3e66a6[_0x8a81b3][_0xf8eb('0x26')]){_0x3e66a6[_0x8a81b3][_0xf8eb('0x27')]=moment()[_0xf8eb('0x25')]('YYYY-MM-DD\x20HH:mm:ss');}if(_0x3e66a6[_0x8a81b3][_0xf8eb('0x28')]){_0x3e66a6[_0x8a81b3][_0xf8eb('0x29')]=moment()['format'](_0xf8eb('0x2a'));}RpcMemberReport[_0xf8eb('0x12')](_0x3e66a6[_0x8a81b3]);}RpcVoiceQueueReport[_0xf8eb('0x2b')](_0x3e66a6[_0x8a81b3]);}};function extractCalleridNumber(_0x1a293f){var _0x169582=_0x1a293f[_0xf8eb('0x2c')](/<(.*?)>/);return _0x169582?_0x169582[0x1]:_0x1a293f;}Report[_0xf8eb('0xd')][_0xf8eb('0x15')]=function(_0x37dee9){_0x37dee9[_0xf8eb('0x2d')]=_0x37dee9['destination']||_0x37dee9[_0xf8eb('0x2e')];if(_0x37dee9[_0xf8eb('0x2f')]==_0xf8eb('0x30')){_0x37dee9['lastapplication']=_0xf8eb('0x31');_0x37dee9[_0xf8eb('0x32')]=_0x37dee9['queue'];if(_0x37dee9[_0xf8eb('0x33')]==_0xf8eb('0x34')){_0x37dee9[_0xf8eb('0x1d')]='';_0x37dee9[_0xf8eb('0x2d')]=extractCalleridNumber(_0x37dee9[_0xf8eb('0x35')]);}else if(_0x37dee9[_0xf8eb('0x33')]==_0xf8eb('0x36')){if(_0x37dee9[_0xf8eb('0x2d')]=='xcally-motion-preview'){_0x37dee9[_0xf8eb('0x2d')]=extractCalleridNumber(_0x37dee9[_0xf8eb('0x37')]);_0x37dee9[_0xf8eb('0x38')]=_0x37dee9[_0xf8eb('0x39')];_0x37dee9[_0xf8eb('0x3a')]=[_0x37dee9['channel'],_0x37dee9[_0xf8eb('0x3b')]=_0x37dee9[_0xf8eb('0x3a')]][0x0];_0x37dee9[_0xf8eb('0x35')]=_0x37dee9[_0xf8eb('0x37')];}else{_0x37dee9[_0xf8eb('0x2d')]=_0x37dee9[_0xf8eb('0x38')];_0x37dee9[_0xf8eb('0x38')]=_0x37dee9[_0xf8eb('0x39')];if(_0x37dee9[_0xf8eb('0x3c')]==_0xf8eb('0x3d')){_0x37dee9['accountcode']=_0x37dee9['connectedlinenum'];}else{_0x37dee9['accountcode']='';}}}}else{_0x37dee9[_0xf8eb('0x35')]=util[_0xf8eb('0x25')]('\x22%s\x22\x20<%s>',_0x37dee9['calleridname'],_0x37dee9[_0xf8eb('0x38')]);}if(RpcVoiceTransferReport['transfers'][_0x37dee9[_0xf8eb('0x3e')]]){var _0x3c28b7=RpcVoiceTransferReport[_0xf8eb('0x3f')][_0x37dee9[_0xf8eb('0x3e')]];_0x3c28b7[_0xf8eb('0x40')]=_0x37dee9['uniqueid'];RpcVoiceTransferReport['blindTransfer'](_0x3c28b7);delete RpcVoiceTransferReport[_0xf8eb('0x3f')][_0x37dee9[_0xf8eb('0x3e')]];}RpcVoiceCallReport['create'](_0x37dee9);if(_0x37dee9[_0xf8eb('0x41')]){for(var _0xcf8cb6=0x0;_0xcf8cb6<_0x37dee9[_0xf8eb('0x42')][_0xf8eb('0x22')];_0xcf8cb6+=0x1){_0x37dee9[_0xf8eb('0x43')]=_0x37dee9[_0xf8eb('0x42')][_0xcf8cb6][_0xf8eb('0x44')];_0x37dee9['createdAt']=_0x37dee9[_0xf8eb('0x42')][_0xcf8cb6][_0xf8eb('0x45')];if(_0x37dee9[_0xf8eb('0x2e')]==_0xf8eb('0x46')){_0x37dee9[_0xf8eb('0x38')]=_0x37dee9[_0xf8eb('0x47')];_0x37dee9[_0xf8eb('0x48')]=_0x37dee9[_0xf8eb('0x49')];_0x37dee9['connectedlinenum']=_0x37dee9[_0xf8eb('0x1d')];_0x37dee9['connectedlinename']=_0x37dee9[_0xf8eb('0x4a')];_0x37dee9[_0xf8eb('0x2e')]=_0x37dee9[_0xf8eb('0x39')];}else if(_0x37dee9[_0xf8eb('0x2e')]==_0xf8eb('0x4b')){_0x37dee9[_0xf8eb('0x38')]=_0x37dee9['destination'];_0x37dee9[_0xf8eb('0x2e')]=_0x37dee9[_0xf8eb('0x39')];}RpcVoiceRecording[_0xf8eb('0x2b')](_0x37dee9);}}};Report['prototype']['voiceAgentReport']=function(_0x459d6d){if(_[_0xf8eb('0x4c')](_0x459d6d)){_0x459d6d[_0xf8eb('0x4d')](function(_0xd10116){RpcVoiceAgentReport[_0xf8eb('0x2b')](_0xd10116);});}else{RpcVoiceAgentReport[_0xf8eb('0x2b')](_0x459d6d);}};Report[_0xf8eb('0xd')][_0xf8eb('0x17')]=function(_0x13d7dc){RpcVoiceDialReport[_0xf8eb('0x2b')](_0x13d7dc);var _0x47016f;var _0x45635d;var _0x21c044=_0x13d7dc[_0xf8eb('0x3b')];if(_[_0xf8eb('0x4e')](_0x21c044,_0xf8eb('0x4f'))){_0x45635d=_0x21c044[_0xf8eb('0x50')](_0x21c044['indexOf']('/')+0x1,_0x21c044[_0xf8eb('0x51')]('@'));_0x47016f=_['find'](this[_0xf8eb('0xb')],function(_0x3b4bf7){return _0x3b4bf7[_0xf8eb('0x52')]==_0x45635d||_0x3b4bf7[_0xf8eb('0x53')]==_0x45635d||_0x3b4bf7[_0xf8eb('0x1d')]==_0x45635d;});}else{_0x45635d=_0x21c044[_0xf8eb('0x50')](_0x21c044[_0xf8eb('0x51')]('/')+0x1,_0x21c044[_0xf8eb('0x54')]('-'));_0x47016f=this[_0xf8eb('0x1b')](_0x45635d);}if(_0x47016f){_0x13d7dc[_0xf8eb('0x20')]=_[_0xf8eb('0x1f')](_0x47016f[_0xf8eb('0x20')])?util[_0xf8eb('0x25')](_0xf8eb('0x21'),_0x47016f[_0xf8eb('0x1e')]):_0x47016f['interface'];_0x13d7dc[_0xf8eb('0x4a')]=_0x47016f[_0xf8eb('0x1e')];_0x13d7dc['accountcode']=_0x47016f['accountcode'];RpcMemberReport['voiceDialReport'](_0x13d7dc);}};Report[_0xf8eb('0xd')][_0xf8eb('0x55')]=function(_0x3e769a){RpcVoiceTransferReport['transfers'][_0x3e769a[_0xf8eb('0x56')]]=_0x3e769a;};Report['prototype'][_0xf8eb('0x1a')]=function(_0x57d9b6){RpcVoiceTransferReport['attendedTransfer'](_0x57d9b6);};module[_0xf8eb('0x57')]=Report;