Built motion from commit 9d1906d1.|2.5.40
[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 _0x1222=['getAgentByInternal','calleridnum','outbound','internal','destination','exten','type','dialer','lastapplication','queue','context','from-voip-provider','callerid','from-sip','xcally-motion-preview','calleridpreview','originatecalleridnum','destinationchannel','ANSWERED','\x22%s\x22\x20<%s>','calleridname','transfers','linkedid','transfereelinkedid','UserId','membername','create','monitor','monitors','monitorFilename','filename','createdAt','connectedlinename','xcally-motion-dialer','forEach','voiceDialReport','Local','substring','indexOf','mobile','phone','lastIndexOf','exports','moment','util','../../../config/environment','../ami','../rpc/voiceAgentReport','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceQueueReport','../rpc/voiceRecording','../rpc/voiceTransferReport','./voiceQueueReport','./voiceCallReport','./voiceAgentReport','realtime','agents','telephones','prototype','sync','xdr','custom:voiceQueueReport','bind','custom:voiceCallReport','voiceCallReport','custom:voiceAgentReport','voiceAgentReport','custom:voiceDialReport','blindtransfer','blindTransfer','attendedtransfer','attendedTransfer','findAgent','find','accountcode','name','isNil','interface','format','SIP/%s','voiceQueueReport','connectedlinenum','lastAssignedTo','queuecallercomplete','queuecallercompleteAt','YYYY-MM-DD\x20HH:mm:ss','queuecallerexit','match','keys','length','channel','split'];(function(_0x377f50,_0x5589ba){var _0x14a9d2=function(_0x4ab38b){while(--_0x4ab38b){_0x377f50['push'](_0x377f50['shift']());}};_0x14a9d2(++_0x5589ba);}(_0x1222,0xe7));var _0x2122=function(_0x588a5b,_0x52e790){_0x588a5b=_0x588a5b-0x0;var _0x5531dd=_0x1222[_0x588a5b];return _0x5531dd;};'use strict';var _=require('lodash');var moment=require(_0x2122('0x0'));var util=require(_0x2122('0x1'));var config=require(_0x2122('0x2'));var ami=require(_0x2122('0x3'));var RpcVoiceAgentReport=require(_0x2122('0x4'));var RpcVoiceCallReport=require(_0x2122('0x5'));var RpcVoiceDialReport=require(_0x2122('0x6'));var RpcMemberReport=require(_0x2122('0x7'));var RpcVoiceQueueReport=require(_0x2122('0x8'));var RpcVoiceRecording=require(_0x2122('0x9'));var RpcVoiceTransferReport=require(_0x2122('0xa'));var VoiceQueueReport=require(_0x2122('0xb'));var VoiceCallReport=require(_0x2122('0xc'));var VoiceAgentReport=require(_0x2122('0xd'));var VoiceDialReport=require('./voiceDialReport');var UserReport=require('./userReport');function Report(_0x5004e4){this[_0x2122('0xe')]=_0x5004e4;this[_0x2122('0xf')]=_0x5004e4['agents'];this['telephones']=_0x5004e4[_0x2122('0x10')];}Report[_0x2122('0x11')][_0x2122('0x12')]=function(_0x4a4f10){var _0x1f4e96=new VoiceQueueReport(this[_0x2122('0xe')]);var _0x3a2413=new VoiceAgentReport(this['realtime']);var _0x340c18=new VoiceDialReport(this[_0x2122('0xe')]);var _0x26495a=new VoiceCallReport(this[_0x2122('0xe')]);var _0x26ebe1=new UserReport(this[_0x2122('0xe')]);if(config[_0x2122('0x13')]&&config[_0x2122('0x13')]['disabled']){ami['on'](_0x2122('0x14'),this['voiceQueueReport'][_0x2122('0x15')](this));ami['on'](_0x2122('0x16'),this[_0x2122('0x17')][_0x2122('0x15')](this));ami['on'](_0x2122('0x18'),this[_0x2122('0x19')]['bind'](this));ami['on'](_0x2122('0x1a'),this['voiceDialReport']['bind'](this));ami['on'](_0x2122('0x1b'),this[_0x2122('0x1c')][_0x2122('0x15')](this));ami['on'](_0x2122('0x1d'),this[_0x2122('0x1e')][_0x2122('0x15')](this));}};Report['prototype'][_0x2122('0x1f')]=function(_0x1f1864){var _0x3c6455;_0x3c6455=_[_0x2122('0x20')](this['agents'],function(_0x303c2f){return _0x303c2f[_0x2122('0x21')]==_0x1f1864||_0x303c2f[_0x2122('0x22')]==_0x1f1864;});if(_[_0x2122('0x23')](_0x3c6455)){var _0x2b800c=_[_0x2122('0x20')](this['telephones'],function(_0x4d320d){return _0x4d320d[_0x2122('0x21')]==_0x1f1864||_0x4d320d[_0x2122('0x22')]==_0x1f1864;});if(_0x2b800c){_0x3c6455=_[_0x2122('0x20')](this[_0x2122('0xf')],function(_0x3bad69){return _0x3bad69[_0x2122('0x24')]==util[_0x2122('0x25')](_0x2122('0x26'),_0x2b800c['name']);});}}return _0x3c6455;};Report[_0x2122('0x11')][_0x2122('0x27')]=function(_0x4ca112){for(var _0x158a39=0x0;_0x158a39<_0x4ca112['length'];_0x158a39+=0x1){var _0x5087de=this[_0x2122('0x1f')](_0x4ca112[_0x158a39][_0x2122('0x28')]);if(_0x5087de){_0x4ca112[_0x158a39]['accountcode']=_0x5087de[_0x2122('0x21')];_0x4ca112[_0x158a39]['assigned']=!![];_0x4ca112[_0x158a39][_0x2122('0x29')]=_0x5087de[_0x2122('0x22')];_0x4ca112[_0x158a39][_0x2122('0x24')]=_[_0x2122('0x23')](_0x5087de['interface'])?util[_0x2122('0x25')](_0x2122('0x26'),_0x5087de[_0x2122('0x22')]):_0x5087de[_0x2122('0x24')];if(_0x4ca112[_0x158a39][_0x2122('0x2a')]){_0x4ca112[_0x158a39][_0x2122('0x2b')]=moment()[_0x2122('0x25')](_0x2122('0x2c'));}if(_0x4ca112[_0x158a39][_0x2122('0x2d')]){_0x4ca112[_0x158a39]['queuecallerexitAt']=moment()['format'](_0x2122('0x2c'));}RpcMemberReport[_0x2122('0x27')](_0x4ca112[_0x158a39]);}RpcVoiceQueueReport['create'](_0x4ca112[_0x158a39]);}};function extractCalleridNumber(_0x685db4){var _0x53f499=_0x685db4[_0x2122('0x2e')](/<(.*?)>/);return _0x53f499?_0x53f499[0x1]:_0x685db4;}Report['prototype']['getAgentByInternal']=function(_0x1b8a01){for(var _0x25f460=0x0;_0x25f460<Object[_0x2122('0x2f')](this[_0x2122('0xf')])[_0x2122('0x30')];_0x25f460++){var _0x406f2=Object['keys'](this[_0x2122('0xf')])[_0x25f460];var _0x1e65f3=this[_0x2122('0xf')][_0x406f2];if(_0x1e65f3[_0x2122('0x21')]===Number(_0x1b8a01))return _0x1e65f3;}return null;};Report[_0x2122('0x11')]['getCallType']=function(_0x3f6095){var _0x4901b1=_0x3f6095[_0x2122('0x31')][_0x2122('0x32')]('-')[0x0];var _0xae08ac=this[_0x2122('0xf')][_0x4901b1];if(!_0xae08ac)_0xae08ac=this[_0x2122('0x33')](_0x3f6095[_0x2122('0x34')]);return!_0xae08ac?_0x2122('0x35'):_0x2122('0x36');};Report[_0x2122('0x11')]['voiceCallReport']=function(_0x2d8a06){_0x2d8a06['destination']=_0x2d8a06[_0x2122('0x37')]||_0x2d8a06[_0x2122('0x38')];if(_0x2d8a06[_0x2122('0x39')]==_0x2122('0x3a')){_0x2d8a06[_0x2122('0x3b')]=_0x2122('0x3c');_0x2d8a06['lastdata']=_0x2d8a06[_0x2122('0x3c')];if(_0x2d8a06[_0x2122('0x3d')]==_0x2122('0x3e')){_0x2d8a06[_0x2122('0x21')]='';_0x2d8a06[_0x2122('0x37')]=extractCalleridNumber(_0x2d8a06[_0x2122('0x3f')]);}else if(_0x2d8a06[_0x2122('0x3d')]==_0x2122('0x40')){if(_0x2d8a06[_0x2122('0x37')]==_0x2122('0x41')){_0x2d8a06[_0x2122('0x37')]=extractCalleridNumber(_0x2d8a06[_0x2122('0x42')]);_0x2d8a06['calleridnum']=_0x2d8a06[_0x2122('0x43')];_0x2d8a06[_0x2122('0x44')]=[_0x2d8a06[_0x2122('0x31')],_0x2d8a06['channel']=_0x2d8a06[_0x2122('0x44')]][0x0];_0x2d8a06[_0x2122('0x3f')]=_0x2d8a06['calleridpreview'];}else{_0x2d8a06[_0x2122('0x37')]=_0x2d8a06[_0x2122('0x34')];_0x2d8a06[_0x2122('0x34')]=_0x2d8a06[_0x2122('0x43')];if(_0x2d8a06['disposition']==_0x2122('0x45')){_0x2d8a06[_0x2122('0x21')]=_0x2d8a06[_0x2122('0x28')];}else{_0x2d8a06[_0x2122('0x21')]='';}}}}else{_0x2d8a06['callerid']=util[_0x2122('0x25')](_0x2122('0x46'),_0x2d8a06[_0x2122('0x47')],_0x2d8a06['calleridnum']);}if(RpcVoiceTransferReport[_0x2122('0x48')][_0x2d8a06['linkedid']]){var _0x4309d8=RpcVoiceTransferReport[_0x2122('0x48')][_0x2d8a06[_0x2122('0x49')]];_0x4309d8[_0x2122('0x4a')]=_0x2d8a06['uniqueid'];RpcVoiceTransferReport['blindTransfer'](_0x4309d8);delete RpcVoiceTransferReport[_0x2122('0x48')][_0x2d8a06[_0x2122('0x49')]];}if(_['isNil'](_0x2d8a06[_0x2122('0x39')])){_0x2d8a06['type']=this['getCallType'](_0x2d8a06);}if(_[_0x2122('0x23')](_0x2d8a06['UserId'])){var _0x21f621=_0x2d8a06[_0x2122('0x31')][_0x2122('0x32')]('-')[0x0];var _0x2849ed=this[_0x2122('0xf')][_0x21f621];if(!_0x2849ed)_0x2849ed=this['getAgentByInternal'](_0x2d8a06['accountcode']);if(_0x2849ed){_0x2d8a06[_0x2122('0x4b')]=_0x2849ed['id'];_0x2d8a06[_0x2122('0x4c')]=_0x2849ed[_0x2122('0x22')];}}RpcVoiceCallReport[_0x2122('0x4d')](_0x2d8a06);if(_0x2d8a06[_0x2122('0x4e')]){for(var _0x370a42=0x0;_0x370a42<_0x2d8a06[_0x2122('0x4f')][_0x2122('0x30')];_0x370a42+=0x1){_0x2d8a06[_0x2122('0x50')]=_0x2d8a06[_0x2122('0x4f')][_0x370a42][_0x2122('0x51')];_0x2d8a06[_0x2122('0x52')]=_0x2d8a06[_0x2122('0x4f')][_0x370a42][_0x2122('0x52')];if(_0x2d8a06['exten']==_0x2122('0x41')){_0x2d8a06[_0x2122('0x34')]=_0x2d8a06[_0x2122('0x28')];_0x2d8a06[_0x2122('0x47')]=_0x2d8a06[_0x2122('0x53')];_0x2d8a06[_0x2122('0x28')]=_0x2d8a06[_0x2122('0x21')];_0x2d8a06[_0x2122('0x53')]=_0x2d8a06['membername'];_0x2d8a06['exten']=_0x2d8a06[_0x2122('0x43')];}else if(_0x2d8a06[_0x2122('0x38')]==_0x2122('0x54')){_0x2d8a06[_0x2122('0x34')]=_0x2d8a06[_0x2122('0x37')];_0x2d8a06[_0x2122('0x38')]=_0x2d8a06[_0x2122('0x43')];}RpcVoiceRecording[_0x2122('0x4d')](_0x2d8a06);}}};Report['prototype'][_0x2122('0x19')]=function(_0x578e75){if(_['isArray'](_0x578e75)){_0x578e75[_0x2122('0x55')](function(_0x4df2a7){RpcVoiceAgentReport['create'](_0x4df2a7);});}else{RpcVoiceAgentReport[_0x2122('0x4d')](_0x578e75);}};Report[_0x2122('0x11')][_0x2122('0x56')]=function(_0x53eb71){RpcVoiceDialReport[_0x2122('0x4d')](_0x53eb71);var _0x344840;var _0x3ac688;var _0x360170=_0x53eb71[_0x2122('0x31')];if(_['startsWith'](_0x360170,_0x2122('0x57'))){_0x3ac688=_0x360170[_0x2122('0x58')](_0x360170['indexOf']('/')+0x1,_0x360170[_0x2122('0x59')]('@'));_0x344840=_['find'](this[_0x2122('0xf')],function(_0x2bbf48){return _0x2bbf48[_0x2122('0x5a')]==_0x3ac688||_0x2bbf48[_0x2122('0x5b')]==_0x3ac688||_0x2bbf48['accountcode']==_0x3ac688;});}else{_0x3ac688=_0x360170['substring'](_0x360170['indexOf']('/')+0x1,_0x360170[_0x2122('0x5c')]('-'));_0x344840=this['findAgent'](_0x3ac688);}if(_0x344840){_0x53eb71[_0x2122('0x24')]=_['isNil'](_0x344840['interface'])?util[_0x2122('0x25')](_0x2122('0x26'),_0x344840[_0x2122('0x22')]):_0x344840[_0x2122('0x24')];_0x53eb71[_0x2122('0x4c')]=_0x344840[_0x2122('0x22')];_0x53eb71[_0x2122('0x21')]=_0x344840[_0x2122('0x21')];RpcMemberReport[_0x2122('0x56')](_0x53eb71);}};Report[_0x2122('0x11')][_0x2122('0x1c')]=function(_0x585151){RpcVoiceTransferReport['transfers'][_0x585151['transfererlinkedid']]=_0x585151;};Report['prototype'][_0x2122('0x1e')]=function(_0x11b8b4){RpcVoiceTransferReport[_0x2122('0x1e')](_0x11b8b4);};module[_0x2122('0x5d')]=Report;