Built motion from commit (unavailable).|2.5.19
[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 _0x619c=['phone','lastIndexOf','transfererlinkedid','exports','moment','util','../../../config/environment','../ami','../rpc/voiceAgentReport','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceQueueReport','../rpc/voiceRecording','../rpc/voiceTransferReport','./voiceQueueReport','./voiceCallReport','./voiceAgentReport','./voiceDialReport','./userReport','realtime','agents','telephones','prototype','sync','xdr','disabled','custom:voiceQueueReport','voiceQueueReport','bind','custom:voiceCallReport','custom:voiceAgentReport','voiceAgentReport','custom:voiceDialReport','voiceDialReport','blindTransfer','attendedtransfer','attendedTransfer','findAgent','find','accountcode','name','interface','format','SIP/%s','length','lastAssignedTo','isNil','queuecallercomplete','queuecallercompleteAt','queuecallerexit','queuecallerexitAt','YYYY-MM-DD\x20HH:mm:ss','create','voiceCallReport','destination','exten','dialer','lastapplication','queue','lastdata','context','from-voip-provider','from-sip','xcally-motion-preview','calleridpreview','originatecalleridnum','destinationchannel','channel','calleridnum','disposition','ANSWERED','connectedlinenum','callerid','\x22%s\x22\x20<%s>','calleridname','transfers','linkedid','transfereelinkedid','monitor','monitors','monitorFilename','filename','createdAt','connectedlinename','membername','xcally-motion-dialer','isArray','forEach','startsWith','Local','substring','indexOf'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x619c,0xbe));var _0xc619=function(_0x1fde33,_0x2e7e64){_0x1fde33=_0x1fde33-0x0;var _0x211c74=_0x619c[_0x1fde33];return _0x211c74;};'use strict';var _=require('lodash');var moment=require(_0xc619('0x0'));var util=require(_0xc619('0x1'));var config=require(_0xc619('0x2'));var ami=require(_0xc619('0x3'));var RpcVoiceAgentReport=require(_0xc619('0x4'));var RpcVoiceCallReport=require(_0xc619('0x5'));var RpcVoiceDialReport=require(_0xc619('0x6'));var RpcMemberReport=require(_0xc619('0x7'));var RpcVoiceQueueReport=require(_0xc619('0x8'));var RpcVoiceRecording=require(_0xc619('0x9'));var RpcVoiceTransferReport=require(_0xc619('0xa'));var VoiceQueueReport=require(_0xc619('0xb'));var VoiceCallReport=require(_0xc619('0xc'));var VoiceAgentReport=require(_0xc619('0xd'));var VoiceDialReport=require(_0xc619('0xe'));var UserReport=require(_0xc619('0xf'));function Report(_0x967e6){this[_0xc619('0x10')]=_0x967e6;this[_0xc619('0x11')]=_0x967e6[_0xc619('0x11')];this[_0xc619('0x12')]=_0x967e6[_0xc619('0x12')];}Report[_0xc619('0x13')][_0xc619('0x14')]=function(_0x287af6){var _0x428f25=new VoiceQueueReport(this[_0xc619('0x10')]);var _0x12cdec=new VoiceAgentReport(this[_0xc619('0x10')]);var _0x3f2116=new VoiceDialReport(this[_0xc619('0x10')]);var _0x3f8e8b=new VoiceCallReport(this[_0xc619('0x10')]);var _0x46e68a=new UserReport(this[_0xc619('0x10')]);if(config[_0xc619('0x15')]&&config[_0xc619('0x15')][_0xc619('0x16')]){ami['on'](_0xc619('0x17'),this[_0xc619('0x18')][_0xc619('0x19')](this));ami['on'](_0xc619('0x1a'),this['voiceCallReport'][_0xc619('0x19')](this));ami['on'](_0xc619('0x1b'),this[_0xc619('0x1c')]['bind'](this));ami['on'](_0xc619('0x1d'),this[_0xc619('0x1e')][_0xc619('0x19')](this));ami['on']('blindtransfer',this[_0xc619('0x1f')][_0xc619('0x19')](this));ami['on'](_0xc619('0x20'),this[_0xc619('0x21')][_0xc619('0x19')](this));}};Report['prototype'][_0xc619('0x22')]=function(_0x3c85db){var _0x53503a;_0x53503a=_[_0xc619('0x23')](this[_0xc619('0x11')],function(_0x160c95){return _0x160c95[_0xc619('0x24')]==_0x3c85db||_0x160c95[_0xc619('0x25')]==_0x3c85db;});if(_['isNil'](_0x53503a)){var _0xcd17ee=_['find'](this[_0xc619('0x12')],function(_0x2779ff){return _0x2779ff['accountcode']==_0x3c85db||_0x2779ff['name']==_0x3c85db;});if(_0xcd17ee){_0x53503a=_[_0xc619('0x23')](this['agents'],function(_0x17b832){return _0x17b832[_0xc619('0x26')]==util[_0xc619('0x27')](_0xc619('0x28'),_0xcd17ee['name']);});}}return _0x53503a;};Report[_0xc619('0x13')]['voiceQueueReport']=function(_0x18c1d9){for(var _0x3f24be=0x0;_0x3f24be<_0x18c1d9[_0xc619('0x29')];_0x3f24be+=0x1){var _0x5a8b32=this[_0xc619('0x22')](_0x18c1d9[_0x3f24be]['connectedlinenum']);if(_0x5a8b32){_0x18c1d9[_0x3f24be][_0xc619('0x24')]=_0x5a8b32[_0xc619('0x24')];_0x18c1d9[_0x3f24be]['assigned']=!![];_0x18c1d9[_0x3f24be][_0xc619('0x2a')]=_0x5a8b32['name'];_0x18c1d9[_0x3f24be][_0xc619('0x26')]=_[_0xc619('0x2b')](_0x5a8b32[_0xc619('0x26')])?util[_0xc619('0x27')](_0xc619('0x28'),_0x5a8b32[_0xc619('0x25')]):_0x5a8b32[_0xc619('0x26')];if(_0x18c1d9[_0x3f24be][_0xc619('0x2c')]){_0x18c1d9[_0x3f24be][_0xc619('0x2d')]=moment()[_0xc619('0x27')]('YYYY-MM-DD\x20HH:mm:ss');}if(_0x18c1d9[_0x3f24be][_0xc619('0x2e')]){_0x18c1d9[_0x3f24be][_0xc619('0x2f')]=moment()['format'](_0xc619('0x30'));}RpcMemberReport[_0xc619('0x18')](_0x18c1d9[_0x3f24be]);}RpcVoiceQueueReport[_0xc619('0x31')](_0x18c1d9[_0x3f24be]);}};function extractCalleridNumber(_0x50dd43){var _0x22971f=_0x50dd43['match'](/<(.*?)>/);return _0x22971f?_0x22971f[0x1]:_0x50dd43;}Report['prototype'][_0xc619('0x32')]=function(_0x481909){_0x481909[_0xc619('0x33')]=_0x481909[_0xc619('0x33')]||_0x481909[_0xc619('0x34')];if(_0x481909['type']==_0xc619('0x35')){_0x481909[_0xc619('0x36')]=_0xc619('0x37');_0x481909[_0xc619('0x38')]=_0x481909[_0xc619('0x37')];if(_0x481909[_0xc619('0x39')]==_0xc619('0x3a')){_0x481909['accountcode']='';_0x481909[_0xc619('0x33')]=extractCalleridNumber(_0x481909['callerid']);}else if(_0x481909[_0xc619('0x39')]==_0xc619('0x3b')){if(_0x481909[_0xc619('0x33')]==_0xc619('0x3c')){_0x481909['destination']=extractCalleridNumber(_0x481909[_0xc619('0x3d')]);_0x481909['calleridnum']=_0x481909[_0xc619('0x3e')];_0x481909[_0xc619('0x3f')]=[_0x481909[_0xc619('0x40')],_0x481909[_0xc619('0x40')]=_0x481909[_0xc619('0x3f')]][0x0];_0x481909['callerid']=_0x481909[_0xc619('0x3d')];}else{_0x481909[_0xc619('0x33')]=_0x481909[_0xc619('0x41')];_0x481909[_0xc619('0x41')]=_0x481909[_0xc619('0x3e')];if(_0x481909[_0xc619('0x42')]==_0xc619('0x43')){_0x481909['accountcode']=_0x481909[_0xc619('0x44')];}else{_0x481909['accountcode']='';}}}}else{_0x481909[_0xc619('0x45')]=util[_0xc619('0x27')](_0xc619('0x46'),_0x481909[_0xc619('0x47')],_0x481909[_0xc619('0x41')]);}if(RpcVoiceTransferReport[_0xc619('0x48')][_0x481909[_0xc619('0x49')]]){var _0x5e3e3c=RpcVoiceTransferReport[_0xc619('0x48')][_0x481909[_0xc619('0x49')]];_0x5e3e3c[_0xc619('0x4a')]=_0x481909['uniqueid'];RpcVoiceTransferReport[_0xc619('0x1f')](_0x5e3e3c);delete RpcVoiceTransferReport[_0xc619('0x48')][_0x481909[_0xc619('0x49')]];}RpcVoiceCallReport['create'](_0x481909);if(_0x481909[_0xc619('0x4b')]){for(var _0x17f465=0x0;_0x17f465<_0x481909[_0xc619('0x4c')]['length'];_0x17f465+=0x1){_0x481909[_0xc619('0x4d')]=_0x481909[_0xc619('0x4c')][_0x17f465][_0xc619('0x4e')];_0x481909[_0xc619('0x4f')]=_0x481909[_0xc619('0x4c')][_0x17f465][_0xc619('0x4f')];if(_0x481909[_0xc619('0x34')]=='xcally-motion-preview'){_0x481909[_0xc619('0x41')]=_0x481909[_0xc619('0x44')];_0x481909[_0xc619('0x47')]=_0x481909['connectedlinename'];_0x481909[_0xc619('0x44')]=_0x481909[_0xc619('0x24')];_0x481909[_0xc619('0x50')]=_0x481909[_0xc619('0x51')];_0x481909[_0xc619('0x34')]=_0x481909[_0xc619('0x3e')];}else if(_0x481909[_0xc619('0x34')]==_0xc619('0x52')){_0x481909['calleridnum']=_0x481909[_0xc619('0x33')];_0x481909[_0xc619('0x34')]=_0x481909[_0xc619('0x3e')];}RpcVoiceRecording['create'](_0x481909);}}};Report[_0xc619('0x13')][_0xc619('0x1c')]=function(_0x313560){if(_[_0xc619('0x53')](_0x313560)){_0x313560[_0xc619('0x54')](function(_0x5021eb){RpcVoiceAgentReport[_0xc619('0x31')](_0x5021eb);});}else{RpcVoiceAgentReport[_0xc619('0x31')](_0x313560);}};Report['prototype']['voiceDialReport']=function(_0x187113){RpcVoiceDialReport[_0xc619('0x31')](_0x187113);var _0x15470b;var _0x5d1ef2;var _0x301504=_0x187113['channel'];if(_[_0xc619('0x55')](_0x301504,_0xc619('0x56'))){_0x5d1ef2=_0x301504[_0xc619('0x57')](_0x301504['indexOf']('/')+0x1,_0x301504[_0xc619('0x58')]('@'));_0x15470b=_['find'](this[_0xc619('0x11')],function(_0x24327f){return _0x24327f['mobile']==_0x5d1ef2||_0x24327f[_0xc619('0x59')]==_0x5d1ef2||_0x24327f['accountcode']==_0x5d1ef2;});}else{_0x5d1ef2=_0x301504[_0xc619('0x57')](_0x301504[_0xc619('0x58')]('/')+0x1,_0x301504[_0xc619('0x5a')]('-'));_0x15470b=this[_0xc619('0x22')](_0x5d1ef2);}if(_0x15470b){_0x187113[_0xc619('0x26')]=_[_0xc619('0x2b')](_0x15470b[_0xc619('0x26')])?util[_0xc619('0x27')]('SIP/%s',_0x15470b['name']):_0x15470b['interface'];_0x187113['membername']=_0x15470b[_0xc619('0x25')];_0x187113[_0xc619('0x24')]=_0x15470b[_0xc619('0x24')];RpcMemberReport[_0xc619('0x1e')](_0x187113);}};Report[_0xc619('0x13')][_0xc619('0x1f')]=function(_0x160f69){RpcVoiceTransferReport['transfers'][_0x160f69[_0xc619('0x5b')]]=_0x160f69;};Report[_0xc619('0x13')][_0xc619('0x21')]=function(_0xb8d410){RpcVoiceTransferReport[_0xc619('0x21')](_0xb8d410);};module[_0xc619('0x5c')]=Report;