Built motion from commit (unavailable).|2.5.3
[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 _0x1f2b=['queuecallerexit','voiceQueueReport','create','match','destination','exten','type','dialer','queue','lastdata','context','from-voip-provider','calleridpreview','calleridnum','originatecalleridnum','destinationchannel','channel','disposition','ANSWERED','connectedlinenum','callerid','\x22%s\x22\x20<%s>','monitors','length','monitorFilename','filename','createdAt','connectedlinename','xcally-motion-dialer','voiceAgentReport','isArray','forEach','Local','substring','indexOf','mobile','phone','lastIndexOf','isNil','membername','bluebird','moment','util','../../../config/environment','../../../config/logger','ami','../rpc/voiceAgentReport','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceRecording','./voiceQueueReport','./voiceCallReport','./voiceAgentReport','./voiceDialReport','./userReport','realtime','agents','telephones','prototype','sync','xdr','disabled','bind','custom:voiceCallReport','voiceCallReport','custom:voiceAgentReport','voiceDialReport','blindtransfer','blindTransfer','attendedtransfer','attendedTransfer','findAgent','find','accountcode','name','interface','format','lastAssignedTo','queuecallercompleteAt','YYYY-MM-DD\x20HH:mm:ss'];(function(_0x428d8a,_0x2f2ab1){var _0x509caf=function(_0x2a275e){while(--_0x2a275e){_0x428d8a['push'](_0x428d8a['shift']());}};_0x509caf(++_0x2f2ab1);}(_0x1f2b,0x16c));var _0xb1f2=function(_0x88c137,_0x5b256d){_0x88c137=_0x88c137-0x0;var _0x4a288b=_0x1f2b[_0x88c137];return _0x4a288b;};'use strict';var BPromise=require(_0xb1f2('0x0'));var _=require('lodash');var moment=require(_0xb1f2('0x1'));var util=require(_0xb1f2('0x2'));var config=require(_0xb1f2('0x3'));var logger=require(_0xb1f2('0x4'))(_0xb1f2('0x5'));var ami=require('../ami');var RpcVoiceAgentReport=require(_0xb1f2('0x6'));var RpcVoiceCallReport=require(_0xb1f2('0x7'));var RpcVoiceDialReport=require(_0xb1f2('0x8'));var RpcMemberReport=require(_0xb1f2('0x9'));var RpcVoiceQueueReport=require('../rpc/voiceQueueReport');var RpcVoiceRecording=require(_0xb1f2('0xa'));var RpcVoiceTransferReport=require('../rpc/voiceTransferReport');var VoiceQueueReport=require(_0xb1f2('0xb'));var VoiceCallReport=require(_0xb1f2('0xc'));var VoiceAgentReport=require(_0xb1f2('0xd'));var VoiceDialReport=require(_0xb1f2('0xe'));var UserReport=require(_0xb1f2('0xf'));function Report(_0x5bc3c2){this[_0xb1f2('0x10')]=_0x5bc3c2;this[_0xb1f2('0x11')]=_0x5bc3c2[_0xb1f2('0x11')];this[_0xb1f2('0x12')]=_0x5bc3c2['telephones'];}Report[_0xb1f2('0x13')][_0xb1f2('0x14')]=function(_0x3614e6){var _0x270ad3=new VoiceQueueReport(this['realtime']);var _0x3ebd61=new VoiceAgentReport(this['realtime']);var _0x3f5ce4=new VoiceDialReport(this[_0xb1f2('0x10')]);var _0x47bc68=new VoiceCallReport(this[_0xb1f2('0x10')]);var _0x57e4bc=new UserReport(this[_0xb1f2('0x10')]);if(config['xdr']&&config[_0xb1f2('0x15')][_0xb1f2('0x16')]){ami['on']('custom:voiceQueueReport',this['voiceQueueReport'][_0xb1f2('0x17')](this));ami['on'](_0xb1f2('0x18'),this[_0xb1f2('0x19')][_0xb1f2('0x17')](this));ami['on'](_0xb1f2('0x1a'),this['voiceAgentReport'][_0xb1f2('0x17')](this));ami['on']('custom:voiceDialReport',this[_0xb1f2('0x1b')][_0xb1f2('0x17')](this));ami['on'](_0xb1f2('0x1c'),this[_0xb1f2('0x1d')][_0xb1f2('0x17')](this));ami['on'](_0xb1f2('0x1e'),this[_0xb1f2('0x1f')]['bind'](this));}};Report['prototype'][_0xb1f2('0x20')]=function(_0x2dfb6f){var _0x269983=undefined;_0x269983=_[_0xb1f2('0x21')](this[_0xb1f2('0x11')],function(_0x640384){return _0x640384[_0xb1f2('0x22')]==_0x2dfb6f||_0x640384[_0xb1f2('0x23')]==_0x2dfb6f;});if(_['isNil'](_0x269983)){var _0x40ddbf=_[_0xb1f2('0x21')](this['telephones'],function(_0x35ad45){return _0x35ad45[_0xb1f2('0x22')]==_0x2dfb6f||_0x35ad45['name']==_0x2dfb6f;});if(_0x40ddbf){_0x269983=_[_0xb1f2('0x21')](this[_0xb1f2('0x11')],function(_0x14c48c){return _0x14c48c[_0xb1f2('0x24')]==util[_0xb1f2('0x25')]('SIP/%s',_0x40ddbf['name']);});}}return _0x269983;};Report['prototype']['voiceQueueReport']=function(_0x13472e){for(var _0x704531=0x0;_0x704531<_0x13472e['length'];_0x704531+=0x1){var _0x41faab=this[_0xb1f2('0x20')](_0x13472e[_0x704531]['connectedlinenum']);if(_0x41faab){_0x13472e[_0x704531][_0xb1f2('0x22')]=_0x41faab[_0xb1f2('0x22')];_0x13472e[_0x704531]['assigned']=!![];_0x13472e[_0x704531][_0xb1f2('0x26')]=_0x41faab[_0xb1f2('0x23')];_0x13472e[_0x704531][_0xb1f2('0x24')]=_['isNil'](_0x41faab[_0xb1f2('0x24')])?util['format']('SIP/%s',_0x41faab[_0xb1f2('0x23')]):_0x41faab[_0xb1f2('0x24')];if(_0x13472e[_0x704531]['queuecallercomplete']){_0x13472e[_0x704531][_0xb1f2('0x27')]=moment()[_0xb1f2('0x25')](_0xb1f2('0x28'));}if(_0x13472e[_0x704531][_0xb1f2('0x29')]){_0x13472e[_0x704531]['queuecallerexitAt']=moment()[_0xb1f2('0x25')](_0xb1f2('0x28'));}RpcMemberReport[_0xb1f2('0x2a')](_0x13472e[_0x704531]);}RpcVoiceQueueReport[_0xb1f2('0x2b')](_0x13472e[_0x704531]);}};function extractCalleridNumber(_0x163da3){var _0x19e93d=_0x163da3[_0xb1f2('0x2c')](/<(.*?)>/);return _0x19e93d?_0x19e93d[0x1]:_0x163da3;}Report[_0xb1f2('0x13')][_0xb1f2('0x19')]=function(_0xd0d4e5){_0xd0d4e5['destination']=_0xd0d4e5[_0xb1f2('0x2d')]||_0xd0d4e5[_0xb1f2('0x2e')];if(_0xd0d4e5[_0xb1f2('0x2f')]==_0xb1f2('0x30')){_0xd0d4e5['lastapplication']=_0xb1f2('0x31');_0xd0d4e5[_0xb1f2('0x32')]=_0xd0d4e5[_0xb1f2('0x31')];if(_0xd0d4e5[_0xb1f2('0x33')]==_0xb1f2('0x34')){_0xd0d4e5[_0xb1f2('0x22')]='';_0xd0d4e5[_0xb1f2('0x2d')]=extractCalleridNumber(_0xd0d4e5['callerid']);}else if(_0xd0d4e5[_0xb1f2('0x33')]=='from-sip'){if(_0xd0d4e5['destination']=='xcally-motion-preview'){_0xd0d4e5[_0xb1f2('0x2d')]=extractCalleridNumber(_0xd0d4e5[_0xb1f2('0x35')]);_0xd0d4e5[_0xb1f2('0x36')]=_0xd0d4e5[_0xb1f2('0x37')];_0xd0d4e5[_0xb1f2('0x38')]=[_0xd0d4e5[_0xb1f2('0x39')],_0xd0d4e5[_0xb1f2('0x39')]=_0xd0d4e5[_0xb1f2('0x38')]][0x0];_0xd0d4e5['callerid']=_0xd0d4e5[_0xb1f2('0x35')];}else{_0xd0d4e5[_0xb1f2('0x2d')]=_0xd0d4e5[_0xb1f2('0x36')];_0xd0d4e5['calleridnum']=_0xd0d4e5[_0xb1f2('0x37')];if(_0xd0d4e5[_0xb1f2('0x3a')]==_0xb1f2('0x3b')){_0xd0d4e5[_0xb1f2('0x22')]=_0xd0d4e5[_0xb1f2('0x3c')];}else{_0xd0d4e5[_0xb1f2('0x22')]='';}}}}else{_0xd0d4e5[_0xb1f2('0x3d')]=util[_0xb1f2('0x25')](_0xb1f2('0x3e'),_0xd0d4e5['calleridname'],_0xd0d4e5['calleridnum']);}RpcVoiceCallReport['create'](_0xd0d4e5);if(_0xd0d4e5['monitor']){for(var _0x58096a=0x0;_0x58096a<_0xd0d4e5[_0xb1f2('0x3f')][_0xb1f2('0x40')];_0x58096a+=0x1){_0xd0d4e5[_0xb1f2('0x41')]=_0xd0d4e5[_0xb1f2('0x3f')][_0x58096a][_0xb1f2('0x42')];_0xd0d4e5[_0xb1f2('0x43')]=_0xd0d4e5[_0xb1f2('0x3f')][_0x58096a][_0xb1f2('0x43')];if(_0xd0d4e5[_0xb1f2('0x2e')]=='xcally-motion-preview'){_0xd0d4e5['calleridnum']=_0xd0d4e5[_0xb1f2('0x3c')];_0xd0d4e5['calleridname']=_0xd0d4e5['connectedlinename'];_0xd0d4e5[_0xb1f2('0x3c')]=_0xd0d4e5[_0xb1f2('0x22')];_0xd0d4e5[_0xb1f2('0x44')]=_0xd0d4e5['membername'];_0xd0d4e5['exten']=_0xd0d4e5[_0xb1f2('0x37')];}else if(_0xd0d4e5[_0xb1f2('0x2e')]==_0xb1f2('0x45')){_0xd0d4e5['calleridnum']=_0xd0d4e5[_0xb1f2('0x2d')];_0xd0d4e5['exten']=_0xd0d4e5[_0xb1f2('0x37')];}RpcVoiceRecording['create'](_0xd0d4e5);}}};Report[_0xb1f2('0x13')][_0xb1f2('0x46')]=function(_0x32294d){if(_[_0xb1f2('0x47')](_0x32294d)){_0x32294d[_0xb1f2('0x48')](function(_0x21ea31){RpcVoiceAgentReport[_0xb1f2('0x2b')](_0x21ea31);});}else{RpcVoiceAgentReport[_0xb1f2('0x2b')](_0x32294d);}};Report[_0xb1f2('0x13')][_0xb1f2('0x1b')]=function(_0x181155){RpcVoiceDialReport[_0xb1f2('0x2b')](_0x181155);var _0x1175df=undefined;var _0x461349=_0x181155[_0xb1f2('0x39')];if(_['startsWith'](_0x461349,_0xb1f2('0x49'))){var _0x43216f=_0x461349[_0xb1f2('0x4a')](_0x461349[_0xb1f2('0x4b')]('/')+0x1,_0x461349[_0xb1f2('0x4b')]('@'));_0x1175df=_['find'](this[_0xb1f2('0x11')],function(_0x94da85){return _0x94da85[_0xb1f2('0x4c')]==_0x43216f||_0x94da85[_0xb1f2('0x4d')]==_0x43216f||_0x94da85['accountcode']==_0x43216f;});}else{var _0x43216f=_0x461349[_0xb1f2('0x4a')](_0x461349[_0xb1f2('0x4b')]('/')+0x1,_0x461349[_0xb1f2('0x4e')]('-'));_0x1175df=this[_0xb1f2('0x20')](_0x43216f);}if(_0x1175df){_0x181155[_0xb1f2('0x24')]=_[_0xb1f2('0x4f')](_0x1175df[_0xb1f2('0x24')])?util['format']('SIP/%s',_0x1175df[_0xb1f2('0x23')]):_0x1175df[_0xb1f2('0x24')];_0x181155[_0xb1f2('0x50')]=_0x1175df[_0xb1f2('0x23')];_0x181155['accountcode']=_0x1175df[_0xb1f2('0x22')];RpcMemberReport['voiceDialReport'](_0x181155);}};Report['prototype'][_0xb1f2('0x1d')]=function(_0x58852a){RpcVoiceTransferReport['blindTransfer'](_0x58852a);};Report[_0xb1f2('0x13')][_0xb1f2('0x1f')]=function(_0xc062b){RpcVoiceTransferReport[_0xb1f2('0x1f')](_0xc062b);};module['exports']=Report;