Built motion from commit (unavailable).|2.5.27
[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 _0x7473=['createdAt','connectedlinename','xcally-motion-dialer','isArray','forEach','create','startsWith','substring','indexOf','phone','lastIndexOf','membername','transfererlinkedid','exports','moment','util','../../../config/environment','../ami','../rpc/voiceAgentReport','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceRecording','./voiceQueueReport','./voiceCallReport','./voiceAgentReport','./voiceDialReport','realtime','agents','telephones','prototype','sync','xdr','disabled','voiceQueueReport','bind','custom:voiceCallReport','voiceCallReport','custom:voiceAgentReport','voiceAgentReport','custom:voiceDialReport','voiceDialReport','blindtransfer','attendedTransfer','findAgent','find','accountcode','name','format','SIP/%s','length','connectedlinenum','assigned','isNil','interface','queuecallercompleteAt','YYYY-MM-DD\x20HH:mm:ss','queuecallerexit','queuecallerexitAt','match','destination','exten','type','lastdata','queue','context','callerid','from-sip','xcally-motion-preview','calleridpreview','calleridnum','originatecalleridnum','destinationchannel','channel','disposition','calleridname','linkedid','transfers','transfereelinkedid','uniqueid','blindTransfer','monitor','monitors','monitorFilename','filename'];(function(_0x47c457,_0x1c4057){var _0x502e53=function(_0x2635bc){while(--_0x2635bc){_0x47c457['push'](_0x47c457['shift']());}};_0x502e53(++_0x1c4057);}(_0x7473,0x1b7));var _0x3747=function(_0x31c48b,_0x2bbf66){_0x31c48b=_0x31c48b-0x0;var _0x465ec0=_0x7473[_0x31c48b];return _0x465ec0;};'use strict';var _=require('lodash');var moment=require(_0x3747('0x0'));var util=require(_0x3747('0x1'));var config=require(_0x3747('0x2'));var ami=require(_0x3747('0x3'));var RpcVoiceAgentReport=require(_0x3747('0x4'));var RpcVoiceCallReport=require(_0x3747('0x5'));var RpcVoiceDialReport=require(_0x3747('0x6'));var RpcMemberReport=require(_0x3747('0x7'));var RpcVoiceQueueReport=require('../rpc/voiceQueueReport');var RpcVoiceRecording=require(_0x3747('0x8'));var RpcVoiceTransferReport=require('../rpc/voiceTransferReport');var VoiceQueueReport=require(_0x3747('0x9'));var VoiceCallReport=require(_0x3747('0xa'));var VoiceAgentReport=require(_0x3747('0xb'));var VoiceDialReport=require(_0x3747('0xc'));var UserReport=require('./userReport');function Report(_0x11b006){this[_0x3747('0xd')]=_0x11b006;this[_0x3747('0xe')]=_0x11b006['agents'];this[_0x3747('0xf')]=_0x11b006[_0x3747('0xf')];}Report[_0x3747('0x10')][_0x3747('0x11')]=function(_0x6cd764){var _0xefa953=new VoiceQueueReport(this[_0x3747('0xd')]);var _0x3d34d2=new VoiceAgentReport(this[_0x3747('0xd')]);var _0x6ad916=new VoiceDialReport(this[_0x3747('0xd')]);var _0x379215=new VoiceCallReport(this[_0x3747('0xd')]);var _0x533555=new UserReport(this['realtime']);if(config['xdr']&&config[_0x3747('0x12')][_0x3747('0x13')]){ami['on']('custom:voiceQueueReport',this[_0x3747('0x14')][_0x3747('0x15')](this));ami['on'](_0x3747('0x16'),this[_0x3747('0x17')][_0x3747('0x15')](this));ami['on'](_0x3747('0x18'),this[_0x3747('0x19')][_0x3747('0x15')](this));ami['on'](_0x3747('0x1a'),this[_0x3747('0x1b')][_0x3747('0x15')](this));ami['on'](_0x3747('0x1c'),this['blindTransfer']['bind'](this));ami['on']('attendedtransfer',this[_0x3747('0x1d')][_0x3747('0x15')](this));}};Report[_0x3747('0x10')][_0x3747('0x1e')]=function(_0xbc4cb2){var _0x519b8e;_0x519b8e=_[_0x3747('0x1f')](this[_0x3747('0xe')],function(_0x1903c4){return _0x1903c4[_0x3747('0x20')]==_0xbc4cb2||_0x1903c4[_0x3747('0x21')]==_0xbc4cb2;});if(_['isNil'](_0x519b8e)){var _0x45fbcb=_[_0x3747('0x1f')](this[_0x3747('0xf')],function(_0xef849a){return _0xef849a[_0x3747('0x20')]==_0xbc4cb2||_0xef849a[_0x3747('0x21')]==_0xbc4cb2;});if(_0x45fbcb){_0x519b8e=_['find'](this[_0x3747('0xe')],function(_0x44e226){return _0x44e226['interface']==util[_0x3747('0x22')](_0x3747('0x23'),_0x45fbcb['name']);});}}return _0x519b8e;};Report[_0x3747('0x10')][_0x3747('0x14')]=function(_0x1b0034){for(var _0x589dec=0x0;_0x589dec<_0x1b0034[_0x3747('0x24')];_0x589dec+=0x1){var _0x532366=this['findAgent'](_0x1b0034[_0x589dec][_0x3747('0x25')]);if(_0x532366){_0x1b0034[_0x589dec]['accountcode']=_0x532366[_0x3747('0x20')];_0x1b0034[_0x589dec][_0x3747('0x26')]=!![];_0x1b0034[_0x589dec]['lastAssignedTo']=_0x532366[_0x3747('0x21')];_0x1b0034[_0x589dec]['interface']=_[_0x3747('0x27')](_0x532366[_0x3747('0x28')])?util[_0x3747('0x22')](_0x3747('0x23'),_0x532366[_0x3747('0x21')]):_0x532366[_0x3747('0x28')];if(_0x1b0034[_0x589dec]['queuecallercomplete']){_0x1b0034[_0x589dec][_0x3747('0x29')]=moment()[_0x3747('0x22')](_0x3747('0x2a'));}if(_0x1b0034[_0x589dec][_0x3747('0x2b')]){_0x1b0034[_0x589dec][_0x3747('0x2c')]=moment()[_0x3747('0x22')](_0x3747('0x2a'));}RpcMemberReport[_0x3747('0x14')](_0x1b0034[_0x589dec]);}RpcVoiceQueueReport['create'](_0x1b0034[_0x589dec]);}};function extractCalleridNumber(_0xa4c7d0){var _0x54f308=_0xa4c7d0[_0x3747('0x2d')](/<(.*?)>/);return _0x54f308?_0x54f308[0x1]:_0xa4c7d0;}Report[_0x3747('0x10')]['voiceCallReport']=function(_0x1c7572){_0x1c7572[_0x3747('0x2e')]=_0x1c7572[_0x3747('0x2e')]||_0x1c7572[_0x3747('0x2f')];if(_0x1c7572[_0x3747('0x30')]=='dialer'){_0x1c7572['lastapplication']='queue';_0x1c7572[_0x3747('0x31')]=_0x1c7572[_0x3747('0x32')];if(_0x1c7572[_0x3747('0x33')]=='from-voip-provider'){_0x1c7572[_0x3747('0x20')]='';_0x1c7572[_0x3747('0x2e')]=extractCalleridNumber(_0x1c7572[_0x3747('0x34')]);}else if(_0x1c7572[_0x3747('0x33')]==_0x3747('0x35')){if(_0x1c7572[_0x3747('0x2e')]==_0x3747('0x36')){_0x1c7572[_0x3747('0x2e')]=extractCalleridNumber(_0x1c7572[_0x3747('0x37')]);_0x1c7572[_0x3747('0x38')]=_0x1c7572[_0x3747('0x39')];_0x1c7572[_0x3747('0x3a')]=[_0x1c7572[_0x3747('0x3b')],_0x1c7572[_0x3747('0x3b')]=_0x1c7572[_0x3747('0x3a')]][0x0];_0x1c7572[_0x3747('0x34')]=_0x1c7572[_0x3747('0x37')];}else{_0x1c7572[_0x3747('0x2e')]=_0x1c7572[_0x3747('0x38')];_0x1c7572['calleridnum']=_0x1c7572[_0x3747('0x39')];if(_0x1c7572[_0x3747('0x3c')]=='ANSWERED'){_0x1c7572[_0x3747('0x20')]=_0x1c7572[_0x3747('0x25')];}else{_0x1c7572[_0x3747('0x20')]='';}}}}else{_0x1c7572[_0x3747('0x34')]=util[_0x3747('0x22')]('\x22%s\x22\x20<%s>',_0x1c7572[_0x3747('0x3d')],_0x1c7572[_0x3747('0x38')]);}if(RpcVoiceTransferReport['transfers'][_0x1c7572[_0x3747('0x3e')]]){var _0x547504=RpcVoiceTransferReport[_0x3747('0x3f')][_0x1c7572[_0x3747('0x3e')]];_0x547504[_0x3747('0x40')]=_0x1c7572[_0x3747('0x41')];RpcVoiceTransferReport[_0x3747('0x42')](_0x547504);delete RpcVoiceTransferReport[_0x3747('0x3f')][_0x1c7572[_0x3747('0x3e')]];}RpcVoiceCallReport['create'](_0x1c7572);if(_0x1c7572[_0x3747('0x43')]){for(var _0x3b1a71=0x0;_0x3b1a71<_0x1c7572[_0x3747('0x44')][_0x3747('0x24')];_0x3b1a71+=0x1){_0x1c7572[_0x3747('0x45')]=_0x1c7572[_0x3747('0x44')][_0x3b1a71][_0x3747('0x46')];_0x1c7572[_0x3747('0x47')]=_0x1c7572[_0x3747('0x44')][_0x3b1a71][_0x3747('0x47')];if(_0x1c7572[_0x3747('0x2f')]=='xcally-motion-preview'){_0x1c7572[_0x3747('0x38')]=_0x1c7572[_0x3747('0x25')];_0x1c7572[_0x3747('0x3d')]=_0x1c7572[_0x3747('0x48')];_0x1c7572[_0x3747('0x25')]=_0x1c7572['accountcode'];_0x1c7572[_0x3747('0x48')]=_0x1c7572['membername'];_0x1c7572[_0x3747('0x2f')]=_0x1c7572[_0x3747('0x39')];}else if(_0x1c7572[_0x3747('0x2f')]==_0x3747('0x49')){_0x1c7572[_0x3747('0x38')]=_0x1c7572[_0x3747('0x2e')];_0x1c7572[_0x3747('0x2f')]=_0x1c7572[_0x3747('0x39')];}RpcVoiceRecording['create'](_0x1c7572);}}};Report[_0x3747('0x10')]['voiceAgentReport']=function(_0x3f2f75){if(_[_0x3747('0x4a')](_0x3f2f75)){_0x3f2f75[_0x3747('0x4b')](function(_0x52d985){RpcVoiceAgentReport[_0x3747('0x4c')](_0x52d985);});}else{RpcVoiceAgentReport[_0x3747('0x4c')](_0x3f2f75);}};Report[_0x3747('0x10')]['voiceDialReport']=function(_0x55ed6e){RpcVoiceDialReport[_0x3747('0x4c')](_0x55ed6e);var _0x1f76c4;var _0x232899;var _0x4e6b59=_0x55ed6e[_0x3747('0x3b')];if(_[_0x3747('0x4d')](_0x4e6b59,'Local')){_0x232899=_0x4e6b59[_0x3747('0x4e')](_0x4e6b59[_0x3747('0x4f')]('/')+0x1,_0x4e6b59[_0x3747('0x4f')]('@'));_0x1f76c4=_['find'](this['agents'],function(_0x35892b){return _0x35892b['mobile']==_0x232899||_0x35892b[_0x3747('0x50')]==_0x232899||_0x35892b[_0x3747('0x20')]==_0x232899;});}else{_0x232899=_0x4e6b59[_0x3747('0x4e')](_0x4e6b59[_0x3747('0x4f')]('/')+0x1,_0x4e6b59[_0x3747('0x51')]('-'));_0x1f76c4=this[_0x3747('0x1e')](_0x232899);}if(_0x1f76c4){_0x55ed6e[_0x3747('0x28')]=_[_0x3747('0x27')](_0x1f76c4[_0x3747('0x28')])?util[_0x3747('0x22')](_0x3747('0x23'),_0x1f76c4[_0x3747('0x21')]):_0x1f76c4['interface'];_0x55ed6e[_0x3747('0x52')]=_0x1f76c4['name'];_0x55ed6e[_0x3747('0x20')]=_0x1f76c4[_0x3747('0x20')];RpcMemberReport[_0x3747('0x1b')](_0x55ed6e);}};Report[_0x3747('0x10')][_0x3747('0x42')]=function(_0x15a0d0){RpcVoiceTransferReport[_0x3747('0x3f')][_0x15a0d0[_0x3747('0x53')]]=_0x15a0d0;};Report[_0x3747('0x10')]['attendedTransfer']=function(_0x591899){RpcVoiceTransferReport['attendedTransfer'](_0x591899);};module[_0x3747('0x54')]=Report;