ff9a5cf82e66348875e514f2172b53c78bec7dc0
[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 _0xe704=['name','length','findAgent','assigned','lastAssignedTo','queuecallercomplete','queuecallercompleteAt','YYYY-MM-DD\x20HH:mm:ss','queuecallerexit','queuecallerexitAt','create','match','destination','exten','lastapplication','queue','lastdata','context','from-voip-provider','callerid','from-sip','xcally-motion-preview','calleridpreview','calleridnum','destinationchannel','channel','disposition','connectedlinenum','\x22%s\x22\x20<%s>','calleridname','transfers','linkedid','uniqueid','monitor','monitors','monitorFilename','filename','createdAt','connectedlinename','originatecalleridnum','xcally-motion-dialer','isArray','forEach','startsWith','indexOf','mobile','phone','substring','membername','util','../../../config/environment','../rpc/voiceAgentReport','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceQueueReport','../rpc/voiceRecording','../rpc/voiceTransferReport','./voiceQueueReport','./voiceCallReport','./voiceAgentReport','./voiceDialReport','realtime','agents','telephones','sync','xdr','disabled','custom:voiceQueueReport','voiceQueueReport','bind','custom:voiceCallReport','voiceCallReport','custom:voiceAgentReport','voiceAgentReport','custom:voiceDialReport','voiceDialReport','blindTransfer','attendedtransfer','attendedTransfer','prototype','find','accountcode','isNil','interface','format','SIP/%s'];(function(_0x58f0a6,_0x47dfbe){var _0x3dd93e=function(_0x2e01f8){while(--_0x2e01f8){_0x58f0a6['push'](_0x58f0a6['shift']());}};_0x3dd93e(++_0x47dfbe);}(_0xe704,0x136));var _0x4e70=function(_0x46f6ce,_0x2b12d8){_0x46f6ce=_0x46f6ce-0x0;var _0x57f8d1=_0xe704[_0x46f6ce];return _0x57f8d1;};'use strict';var _=require('lodash');var moment=require('moment');var util=require(_0x4e70('0x0'));var config=require(_0x4e70('0x1'));var ami=require('../ami');var RpcVoiceAgentReport=require(_0x4e70('0x2'));var RpcVoiceCallReport=require(_0x4e70('0x3'));var RpcVoiceDialReport=require(_0x4e70('0x4'));var RpcMemberReport=require(_0x4e70('0x5'));var RpcVoiceQueueReport=require(_0x4e70('0x6'));var RpcVoiceRecording=require(_0x4e70('0x7'));var RpcVoiceTransferReport=require(_0x4e70('0x8'));var VoiceQueueReport=require(_0x4e70('0x9'));var VoiceCallReport=require(_0x4e70('0xa'));var VoiceAgentReport=require(_0x4e70('0xb'));var VoiceDialReport=require(_0x4e70('0xc'));var UserReport=require('./userReport');function Report(_0x5cbc47){this[_0x4e70('0xd')]=_0x5cbc47;this[_0x4e70('0xe')]=_0x5cbc47['agents'];this[_0x4e70('0xf')]=_0x5cbc47[_0x4e70('0xf')];}Report['prototype'][_0x4e70('0x10')]=function(_0x3401c5){var _0x43de17=new VoiceQueueReport(this['realtime']);var _0x56ebe4=new VoiceAgentReport(this[_0x4e70('0xd')]);var _0x3d380d=new VoiceDialReport(this[_0x4e70('0xd')]);var _0xd98ad2=new VoiceCallReport(this['realtime']);var _0x44464c=new UserReport(this['realtime']);if(config[_0x4e70('0x11')]&&config[_0x4e70('0x11')][_0x4e70('0x12')]){ami['on'](_0x4e70('0x13'),this[_0x4e70('0x14')][_0x4e70('0x15')](this));ami['on'](_0x4e70('0x16'),this[_0x4e70('0x17')][_0x4e70('0x15')](this));ami['on'](_0x4e70('0x18'),this[_0x4e70('0x19')][_0x4e70('0x15')](this));ami['on'](_0x4e70('0x1a'),this[_0x4e70('0x1b')]['bind'](this));ami['on']('blindtransfer',this[_0x4e70('0x1c')][_0x4e70('0x15')](this));ami['on'](_0x4e70('0x1d'),this[_0x4e70('0x1e')][_0x4e70('0x15')](this));}};Report[_0x4e70('0x1f')]['findAgent']=function(_0x52a595){var _0x4b5d71;_0x4b5d71=_[_0x4e70('0x20')](this[_0x4e70('0xe')],function(_0x1e30c3){return _0x1e30c3[_0x4e70('0x21')]==_0x52a595||_0x1e30c3['name']==_0x52a595;});if(_[_0x4e70('0x22')](_0x4b5d71)){var _0x4521ab=_[_0x4e70('0x20')](this[_0x4e70('0xf')],function(_0x16b68a){return _0x16b68a[_0x4e70('0x21')]==_0x52a595||_0x16b68a['name']==_0x52a595;});if(_0x4521ab){_0x4b5d71=_['find'](this[_0x4e70('0xe')],function(_0x49f1c2){return _0x49f1c2[_0x4e70('0x23')]==util[_0x4e70('0x24')](_0x4e70('0x25'),_0x4521ab[_0x4e70('0x26')]);});}}return _0x4b5d71;};Report[_0x4e70('0x1f')]['voiceQueueReport']=function(_0x319fa5){for(var _0x3cc984=0x0;_0x3cc984<_0x319fa5[_0x4e70('0x27')];_0x3cc984+=0x1){var _0x38325e=this[_0x4e70('0x28')](_0x319fa5[_0x3cc984]['connectedlinenum']);if(_0x38325e){_0x319fa5[_0x3cc984]['accountcode']=_0x38325e['accountcode'];_0x319fa5[_0x3cc984][_0x4e70('0x29')]=!![];_0x319fa5[_0x3cc984][_0x4e70('0x2a')]=_0x38325e['name'];_0x319fa5[_0x3cc984]['interface']=_[_0x4e70('0x22')](_0x38325e[_0x4e70('0x23')])?util[_0x4e70('0x24')]('SIP/%s',_0x38325e[_0x4e70('0x26')]):_0x38325e[_0x4e70('0x23')];if(_0x319fa5[_0x3cc984][_0x4e70('0x2b')]){_0x319fa5[_0x3cc984][_0x4e70('0x2c')]=moment()['format'](_0x4e70('0x2d'));}if(_0x319fa5[_0x3cc984][_0x4e70('0x2e')]){_0x319fa5[_0x3cc984][_0x4e70('0x2f')]=moment()[_0x4e70('0x24')](_0x4e70('0x2d'));}RpcMemberReport[_0x4e70('0x14')](_0x319fa5[_0x3cc984]);}RpcVoiceQueueReport[_0x4e70('0x30')](_0x319fa5[_0x3cc984]);}};function extractCalleridNumber(_0x123b1f){var _0x354a16=_0x123b1f[_0x4e70('0x31')](/<(.*?)>/);return _0x354a16?_0x354a16[0x1]:_0x123b1f;}Report['prototype']['voiceCallReport']=function(_0x6fcbe6){_0x6fcbe6[_0x4e70('0x32')]=_0x6fcbe6[_0x4e70('0x32')]||_0x6fcbe6[_0x4e70('0x33')];if(_0x6fcbe6['type']=='dialer'){_0x6fcbe6[_0x4e70('0x34')]=_0x4e70('0x35');_0x6fcbe6[_0x4e70('0x36')]=_0x6fcbe6[_0x4e70('0x35')];if(_0x6fcbe6[_0x4e70('0x37')]==_0x4e70('0x38')){_0x6fcbe6[_0x4e70('0x21')]='';_0x6fcbe6['destination']=extractCalleridNumber(_0x6fcbe6[_0x4e70('0x39')]);}else if(_0x6fcbe6['context']==_0x4e70('0x3a')){if(_0x6fcbe6[_0x4e70('0x32')]==_0x4e70('0x3b')){_0x6fcbe6[_0x4e70('0x32')]=extractCalleridNumber(_0x6fcbe6[_0x4e70('0x3c')]);_0x6fcbe6[_0x4e70('0x3d')]=_0x6fcbe6['originatecalleridnum'];_0x6fcbe6[_0x4e70('0x3e')]=[_0x6fcbe6[_0x4e70('0x3f')],_0x6fcbe6['channel']=_0x6fcbe6['destinationchannel']][0x0];_0x6fcbe6[_0x4e70('0x39')]=_0x6fcbe6[_0x4e70('0x3c')];}else{_0x6fcbe6[_0x4e70('0x32')]=_0x6fcbe6[_0x4e70('0x3d')];_0x6fcbe6[_0x4e70('0x3d')]=_0x6fcbe6['originatecalleridnum'];if(_0x6fcbe6[_0x4e70('0x40')]=='ANSWERED'){_0x6fcbe6[_0x4e70('0x21')]=_0x6fcbe6[_0x4e70('0x41')];}else{_0x6fcbe6[_0x4e70('0x21')]='';}}}}else{_0x6fcbe6['callerid']=util['format'](_0x4e70('0x42'),_0x6fcbe6[_0x4e70('0x43')],_0x6fcbe6['calleridnum']);}if(RpcVoiceTransferReport[_0x4e70('0x44')][_0x6fcbe6[_0x4e70('0x45')]]){var _0x3ef213=RpcVoiceTransferReport[_0x4e70('0x44')][_0x6fcbe6[_0x4e70('0x45')]];_0x3ef213['transfereelinkedid']=_0x6fcbe6[_0x4e70('0x46')];RpcVoiceTransferReport[_0x4e70('0x1c')](_0x3ef213);delete RpcVoiceTransferReport['transfers'][_0x6fcbe6[_0x4e70('0x45')]];}RpcVoiceCallReport[_0x4e70('0x30')](_0x6fcbe6);if(_0x6fcbe6[_0x4e70('0x47')]){for(var _0x4d1c8c=0x0;_0x4d1c8c<_0x6fcbe6[_0x4e70('0x48')][_0x4e70('0x27')];_0x4d1c8c+=0x1){_0x6fcbe6[_0x4e70('0x49')]=_0x6fcbe6[_0x4e70('0x48')][_0x4d1c8c][_0x4e70('0x4a')];_0x6fcbe6[_0x4e70('0x4b')]=_0x6fcbe6['monitors'][_0x4d1c8c][_0x4e70('0x4b')];if(_0x6fcbe6['exten']==_0x4e70('0x3b')){_0x6fcbe6[_0x4e70('0x3d')]=_0x6fcbe6[_0x4e70('0x41')];_0x6fcbe6[_0x4e70('0x43')]=_0x6fcbe6[_0x4e70('0x4c')];_0x6fcbe6[_0x4e70('0x41')]=_0x6fcbe6['accountcode'];_0x6fcbe6[_0x4e70('0x4c')]=_0x6fcbe6['membername'];_0x6fcbe6[_0x4e70('0x33')]=_0x6fcbe6[_0x4e70('0x4d')];}else if(_0x6fcbe6[_0x4e70('0x33')]==_0x4e70('0x4e')){_0x6fcbe6[_0x4e70('0x3d')]=_0x6fcbe6['destination'];_0x6fcbe6[_0x4e70('0x33')]=_0x6fcbe6['originatecalleridnum'];}RpcVoiceRecording['create'](_0x6fcbe6);}}};Report['prototype'][_0x4e70('0x19')]=function(_0x50f613){if(_[_0x4e70('0x4f')](_0x50f613)){_0x50f613[_0x4e70('0x50')](function(_0x1b681d){RpcVoiceAgentReport[_0x4e70('0x30')](_0x1b681d);});}else{RpcVoiceAgentReport['create'](_0x50f613);}};Report['prototype']['voiceDialReport']=function(_0x126f37){RpcVoiceDialReport[_0x4e70('0x30')](_0x126f37);var _0x173e1b;var _0x30f4b7;var _0x1eff57=_0x126f37[_0x4e70('0x3f')];if(_[_0x4e70('0x51')](_0x1eff57,'Local')){_0x30f4b7=_0x1eff57['substring'](_0x1eff57[_0x4e70('0x52')]('/')+0x1,_0x1eff57[_0x4e70('0x52')]('@'));_0x173e1b=_[_0x4e70('0x20')](this[_0x4e70('0xe')],function(_0x5b289a){return _0x5b289a[_0x4e70('0x53')]==_0x30f4b7||_0x5b289a[_0x4e70('0x54')]==_0x30f4b7||_0x5b289a[_0x4e70('0x21')]==_0x30f4b7;});}else{_0x30f4b7=_0x1eff57[_0x4e70('0x55')](_0x1eff57[_0x4e70('0x52')]('/')+0x1,_0x1eff57['lastIndexOf']('-'));_0x173e1b=this['findAgent'](_0x30f4b7);}if(_0x173e1b){_0x126f37[_0x4e70('0x23')]=_[_0x4e70('0x22')](_0x173e1b['interface'])?util[_0x4e70('0x24')]('SIP/%s',_0x173e1b[_0x4e70('0x26')]):_0x173e1b[_0x4e70('0x23')];_0x126f37[_0x4e70('0x56')]=_0x173e1b[_0x4e70('0x26')];_0x126f37['accountcode']=_0x173e1b[_0x4e70('0x21')];RpcMemberReport[_0x4e70('0x1b')](_0x126f37);}};Report[_0x4e70('0x1f')]['blindTransfer']=function(_0x1245a0){RpcVoiceTransferReport[_0x4e70('0x44')][_0x1245a0['transfererlinkedid']]=_0x1245a0;};Report[_0x4e70('0x1f')]['attendedTransfer']=function(_0x14b266){RpcVoiceTransferReport[_0x4e70('0x1e')](_0x14b266);};module['exports']=Report;