Built motion from commit (unavailable).|2.5.26
[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 _0x7129=['custom:voiceDialReport','voiceDialReport','blindTransfer','attendedtransfer','findAgent','find','accountcode','name','isNil','format','SIP/%s','length','connectedlinenum','lastAssignedTo','interface','queuecallercomplete','queuecallercompleteAt','YYYY-MM-DD\x20HH:mm:ss','queuecallerexit','queuecallerexitAt','destination','type','dialer','lastapplication','queue','context','from-voip-provider','from-sip','xcally-motion-preview','calleridpreview','calleridnum','originatecalleridnum','destinationchannel','channel','callerid','disposition','ANSWERED','\x22%s\x22\x20<%s>','linkedid','transfereelinkedid','uniqueid','transfers','monitors','monitorFilename','filename','createdAt','calleridname','connectedlinename','exten','xcally-motion-dialer','create','voiceAgentReport','isArray','forEach','startsWith','Local','substring','mobile','phone','indexOf','transfererlinkedid','attendedTransfer','moment','util','../ami','../rpc/voiceAgentReport','../rpc/voiceCallReport','../rpc/memberReport','../rpc/voiceQueueReport','../rpc/voiceRecording','../rpc/voiceTransferReport','./voiceQueueReport','./voiceAgentReport','./voiceDialReport','./userReport','realtime','agents','telephones','prototype','sync','xdr','voiceQueueReport','bind','custom:voiceCallReport','voiceCallReport','custom:voiceAgentReport'];(function(_0x5e137d,_0x7eeb8f){var _0x411618=function(_0x2e2820){while(--_0x2e2820){_0x5e137d['push'](_0x5e137d['shift']());}};_0x411618(++_0x7eeb8f);}(_0x7129,0x94));var _0x9712=function(_0x138adb,_0x193fee){_0x138adb=_0x138adb-0x0;var _0x1b27f2=_0x7129[_0x138adb];return _0x1b27f2;};'use strict';var _=require('lodash');var moment=require(_0x9712('0x0'));var util=require(_0x9712('0x1'));var config=require('../../../config/environment');var ami=require(_0x9712('0x2'));var RpcVoiceAgentReport=require(_0x9712('0x3'));var RpcVoiceCallReport=require(_0x9712('0x4'));var RpcVoiceDialReport=require('../rpc/voiceDialReport');var RpcMemberReport=require(_0x9712('0x5'));var RpcVoiceQueueReport=require(_0x9712('0x6'));var RpcVoiceRecording=require(_0x9712('0x7'));var RpcVoiceTransferReport=require(_0x9712('0x8'));var VoiceQueueReport=require(_0x9712('0x9'));var VoiceCallReport=require('./voiceCallReport');var VoiceAgentReport=require(_0x9712('0xa'));var VoiceDialReport=require(_0x9712('0xb'));var UserReport=require(_0x9712('0xc'));function Report(_0x128db6){this[_0x9712('0xd')]=_0x128db6;this['agents']=_0x128db6[_0x9712('0xe')];this[_0x9712('0xf')]=_0x128db6[_0x9712('0xf')];}Report[_0x9712('0x10')][_0x9712('0x11')]=function(_0x540778){var _0x27dc2f=new VoiceQueueReport(this[_0x9712('0xd')]);var _0x3054ed=new VoiceAgentReport(this[_0x9712('0xd')]);var _0x569b00=new VoiceDialReport(this[_0x9712('0xd')]);var _0x22bf73=new VoiceCallReport(this[_0x9712('0xd')]);var _0x5af51f=new UserReport(this['realtime']);if(config['xdr']&&config[_0x9712('0x12')]['disabled']){ami['on']('custom:voiceQueueReport',this[_0x9712('0x13')][_0x9712('0x14')](this));ami['on'](_0x9712('0x15'),this[_0x9712('0x16')][_0x9712('0x14')](this));ami['on'](_0x9712('0x17'),this['voiceAgentReport'][_0x9712('0x14')](this));ami['on'](_0x9712('0x18'),this[_0x9712('0x19')][_0x9712('0x14')](this));ami['on']('blindtransfer',this[_0x9712('0x1a')][_0x9712('0x14')](this));ami['on'](_0x9712('0x1b'),this['attendedTransfer'][_0x9712('0x14')](this));}};Report['prototype'][_0x9712('0x1c')]=function(_0x5628db){var _0xcc6f08;_0xcc6f08=_[_0x9712('0x1d')](this[_0x9712('0xe')],function(_0x2c6339){return _0x2c6339[_0x9712('0x1e')]==_0x5628db||_0x2c6339[_0x9712('0x1f')]==_0x5628db;});if(_[_0x9712('0x20')](_0xcc6f08)){var _0x13f8c3=_[_0x9712('0x1d')](this['telephones'],function(_0xd62054){return _0xd62054[_0x9712('0x1e')]==_0x5628db||_0xd62054['name']==_0x5628db;});if(_0x13f8c3){_0xcc6f08=_[_0x9712('0x1d')](this[_0x9712('0xe')],function(_0x32c957){return _0x32c957['interface']==util[_0x9712('0x21')](_0x9712('0x22'),_0x13f8c3[_0x9712('0x1f')]);});}}return _0xcc6f08;};Report[_0x9712('0x10')][_0x9712('0x13')]=function(_0x7f5e04){for(var _0x3cd7b1=0x0;_0x3cd7b1<_0x7f5e04[_0x9712('0x23')];_0x3cd7b1+=0x1){var _0x3345ab=this['findAgent'](_0x7f5e04[_0x3cd7b1][_0x9712('0x24')]);if(_0x3345ab){_0x7f5e04[_0x3cd7b1]['accountcode']=_0x3345ab[_0x9712('0x1e')];_0x7f5e04[_0x3cd7b1]['assigned']=!![];_0x7f5e04[_0x3cd7b1][_0x9712('0x25')]=_0x3345ab[_0x9712('0x1f')];_0x7f5e04[_0x3cd7b1][_0x9712('0x26')]=_['isNil'](_0x3345ab[_0x9712('0x26')])?util['format'](_0x9712('0x22'),_0x3345ab[_0x9712('0x1f')]):_0x3345ab[_0x9712('0x26')];if(_0x7f5e04[_0x3cd7b1][_0x9712('0x27')]){_0x7f5e04[_0x3cd7b1][_0x9712('0x28')]=moment()[_0x9712('0x21')](_0x9712('0x29'));}if(_0x7f5e04[_0x3cd7b1][_0x9712('0x2a')]){_0x7f5e04[_0x3cd7b1][_0x9712('0x2b')]=moment()[_0x9712('0x21')]('YYYY-MM-DD\x20HH:mm:ss');}RpcMemberReport['voiceQueueReport'](_0x7f5e04[_0x3cd7b1]);}RpcVoiceQueueReport['create'](_0x7f5e04[_0x3cd7b1]);}};function extractCalleridNumber(_0x1459e1){var _0xcaaf84=_0x1459e1['match'](/<(.*?)>/);return _0xcaaf84?_0xcaaf84[0x1]:_0x1459e1;}Report[_0x9712('0x10')][_0x9712('0x16')]=function(_0x51099c){_0x51099c['destination']=_0x51099c[_0x9712('0x2c')]||_0x51099c['exten'];if(_0x51099c[_0x9712('0x2d')]==_0x9712('0x2e')){_0x51099c[_0x9712('0x2f')]=_0x9712('0x30');_0x51099c['lastdata']=_0x51099c[_0x9712('0x30')];if(_0x51099c[_0x9712('0x31')]==_0x9712('0x32')){_0x51099c[_0x9712('0x1e')]='';_0x51099c['destination']=extractCalleridNumber(_0x51099c['callerid']);}else if(_0x51099c[_0x9712('0x31')]==_0x9712('0x33')){if(_0x51099c['destination']==_0x9712('0x34')){_0x51099c[_0x9712('0x2c')]=extractCalleridNumber(_0x51099c[_0x9712('0x35')]);_0x51099c[_0x9712('0x36')]=_0x51099c[_0x9712('0x37')];_0x51099c[_0x9712('0x38')]=[_0x51099c[_0x9712('0x39')],_0x51099c[_0x9712('0x39')]=_0x51099c[_0x9712('0x38')]][0x0];_0x51099c[_0x9712('0x3a')]=_0x51099c[_0x9712('0x35')];}else{_0x51099c[_0x9712('0x2c')]=_0x51099c[_0x9712('0x36')];_0x51099c[_0x9712('0x36')]=_0x51099c[_0x9712('0x37')];if(_0x51099c[_0x9712('0x3b')]==_0x9712('0x3c')){_0x51099c['accountcode']=_0x51099c[_0x9712('0x24')];}else{_0x51099c[_0x9712('0x1e')]='';}}}}else{_0x51099c[_0x9712('0x3a')]=util[_0x9712('0x21')](_0x9712('0x3d'),_0x51099c['calleridname'],_0x51099c[_0x9712('0x36')]);}if(RpcVoiceTransferReport['transfers'][_0x51099c[_0x9712('0x3e')]]){var _0x51b322=RpcVoiceTransferReport['transfers'][_0x51099c['linkedid']];_0x51b322[_0x9712('0x3f')]=_0x51099c[_0x9712('0x40')];RpcVoiceTransferReport[_0x9712('0x1a')](_0x51b322);delete RpcVoiceTransferReport[_0x9712('0x41')][_0x51099c['linkedid']];}RpcVoiceCallReport['create'](_0x51099c);if(_0x51099c['monitor']){for(var _0x41ccca=0x0;_0x41ccca<_0x51099c[_0x9712('0x42')]['length'];_0x41ccca+=0x1){_0x51099c[_0x9712('0x43')]=_0x51099c[_0x9712('0x42')][_0x41ccca][_0x9712('0x44')];_0x51099c[_0x9712('0x45')]=_0x51099c['monitors'][_0x41ccca]['createdAt'];if(_0x51099c['exten']=='xcally-motion-preview'){_0x51099c[_0x9712('0x36')]=_0x51099c['connectedlinenum'];_0x51099c[_0x9712('0x46')]=_0x51099c[_0x9712('0x47')];_0x51099c['connectedlinenum']=_0x51099c[_0x9712('0x1e')];_0x51099c[_0x9712('0x47')]=_0x51099c['membername'];_0x51099c[_0x9712('0x48')]=_0x51099c[_0x9712('0x37')];}else if(_0x51099c[_0x9712('0x48')]==_0x9712('0x49')){_0x51099c[_0x9712('0x36')]=_0x51099c[_0x9712('0x2c')];_0x51099c[_0x9712('0x48')]=_0x51099c['originatecalleridnum'];}RpcVoiceRecording[_0x9712('0x4a')](_0x51099c);}}};Report[_0x9712('0x10')][_0x9712('0x4b')]=function(_0x1c7bc7){if(_[_0x9712('0x4c')](_0x1c7bc7)){_0x1c7bc7[_0x9712('0x4d')](function(_0x1258a3){RpcVoiceAgentReport['create'](_0x1258a3);});}else{RpcVoiceAgentReport[_0x9712('0x4a')](_0x1c7bc7);}};Report[_0x9712('0x10')]['voiceDialReport']=function(_0x4a9143){RpcVoiceDialReport[_0x9712('0x4a')](_0x4a9143);var _0x8a1351;var _0x475c04;var _0x3dee8d=_0x4a9143[_0x9712('0x39')];if(_[_0x9712('0x4e')](_0x3dee8d,_0x9712('0x4f'))){_0x475c04=_0x3dee8d[_0x9712('0x50')](_0x3dee8d['indexOf']('/')+0x1,_0x3dee8d['indexOf']('@'));_0x8a1351=_['find'](this[_0x9712('0xe')],function(_0x2f6275){return _0x2f6275[_0x9712('0x51')]==_0x475c04||_0x2f6275[_0x9712('0x52')]==_0x475c04||_0x2f6275['accountcode']==_0x475c04;});}else{_0x475c04=_0x3dee8d[_0x9712('0x50')](_0x3dee8d[_0x9712('0x53')]('/')+0x1,_0x3dee8d['lastIndexOf']('-'));_0x8a1351=this[_0x9712('0x1c')](_0x475c04);}if(_0x8a1351){_0x4a9143[_0x9712('0x26')]=_[_0x9712('0x20')](_0x8a1351[_0x9712('0x26')])?util[_0x9712('0x21')](_0x9712('0x22'),_0x8a1351[_0x9712('0x1f')]):_0x8a1351[_0x9712('0x26')];_0x4a9143['membername']=_0x8a1351['name'];_0x4a9143[_0x9712('0x1e')]=_0x8a1351['accountcode'];RpcMemberReport[_0x9712('0x19')](_0x4a9143);}};Report['prototype'][_0x9712('0x1a')]=function(_0x1baa69){RpcVoiceTransferReport[_0x9712('0x41')][_0x1baa69[_0x9712('0x54')]]=_0x1baa69;};Report[_0x9712('0x10')][_0x9712('0x55')]=function(_0x4484ea){RpcVoiceTransferReport['attendedTransfer'](_0x4484ea);};module['exports']=Report;