Built motion from commit 85328c08.|2.5.50
[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 _0x945e=['disposition','ANSWERED','connectedlinenum','\x22%s\x22\x20<%s>','calleridname','transfers','linkedid','transfereelinkedid','UserId','membername','monitor','monitors','createdAt','connectedlinename','xcally-motion-dialer','isArray','forEach','startsWith','Local','indexOf','phone','substring','lastIndexOf','voiceDialReport','transfererlinkedid','attendedTransfer','moment','util','../../../config/environment','../ami','../rpc/voiceAgentReport','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceRecording','../rpc/voiceTransferReport','./voiceQueueReport','./voiceCallReport','./voiceDialReport','./userReport','agents','telephones','prototype','realtime','xdr','disabled','custom:voiceQueueReport','bind','custom:voiceCallReport','voiceCallReport','custom:voiceAgentReport','voiceAgentReport','custom:voiceDialReport','blindTransfer','attendedtransfer','name','find','accountcode','interface','format','SIP/%s','voiceQueueReport','length','findAgent','lastAssignedTo','isNil','queuecallercompleteAt','YYYY-MM-DD\x20HH:mm:ss','create','match','getAgentByInternal','keys','getCallType','channel','split','calleridnum','outbound','internal','destination','exten','type','dialer','lastapplication','lastdata','queue','from-voip-provider','callerid','context','from-sip','xcally-motion-preview','calleridpreview','originatecalleridnum','destinationchannel'];(function(_0x49bdc4,_0x1e2507){var _0x1f7437=function(_0x25a9f9){while(--_0x25a9f9){_0x49bdc4['push'](_0x49bdc4['shift']());}};_0x1f7437(++_0x1e2507);}(_0x945e,0xd4));var _0xe945=function(_0x273c39,_0x1052e6){_0x273c39=_0x273c39-0x0;var _0x46d6b5=_0x945e[_0x273c39];return _0x46d6b5;};'use strict';var _=require('lodash');var moment=require(_0xe945('0x0'));var util=require(_0xe945('0x1'));var config=require(_0xe945('0x2'));var ami=require(_0xe945('0x3'));var RpcVoiceAgentReport=require(_0xe945('0x4'));var RpcVoiceCallReport=require(_0xe945('0x5'));var RpcVoiceDialReport=require(_0xe945('0x6'));var RpcMemberReport=require(_0xe945('0x7'));var RpcVoiceQueueReport=require('../rpc/voiceQueueReport');var RpcVoiceRecording=require(_0xe945('0x8'));var RpcVoiceTransferReport=require(_0xe945('0x9'));var VoiceQueueReport=require(_0xe945('0xa'));var VoiceCallReport=require(_0xe945('0xb'));var VoiceAgentReport=require('./voiceAgentReport');var VoiceDialReport=require(_0xe945('0xc'));var UserReport=require(_0xe945('0xd'));function Report(_0x3fc21b){this['realtime']=_0x3fc21b;this[_0xe945('0xe')]=_0x3fc21b[_0xe945('0xe')];this[_0xe945('0xf')]=_0x3fc21b[_0xe945('0xf')];}Report[_0xe945('0x10')]['sync']=function(_0x25d9fd){var _0x1b6f54=new VoiceQueueReport(this['realtime']);var _0x2c2508=new VoiceAgentReport(this[_0xe945('0x11')]);var _0x22c2c5=new VoiceDialReport(this['realtime']);var _0x187a93=new VoiceCallReport(this['realtime']);var _0x1873f0=new UserReport(this['realtime']);if(config['xdr']&&config[_0xe945('0x12')][_0xe945('0x13')]){ami['on'](_0xe945('0x14'),this['voiceQueueReport'][_0xe945('0x15')](this));ami['on'](_0xe945('0x16'),this[_0xe945('0x17')][_0xe945('0x15')](this));ami['on'](_0xe945('0x18'),this[_0xe945('0x19')]['bind'](this));ami['on'](_0xe945('0x1a'),this['voiceDialReport'][_0xe945('0x15')](this));ami['on']('blindtransfer',this[_0xe945('0x1b')][_0xe945('0x15')](this));ami['on'](_0xe945('0x1c'),this['attendedTransfer'][_0xe945('0x15')](this));}};Report['prototype']['findAgent']=function(_0x3ddc0a){var _0x4b28cb;_0x4b28cb=_['find'](this[_0xe945('0xe')],function(_0x165ea3){return _0x165ea3['accountcode']==_0x3ddc0a||_0x165ea3[_0xe945('0x1d')]==_0x3ddc0a;});if(_['isNil'](_0x4b28cb)){var _0xd3d7c8=_[_0xe945('0x1e')](this[_0xe945('0xf')],function(_0xb4f79f){return _0xb4f79f[_0xe945('0x1f')]==_0x3ddc0a||_0xb4f79f[_0xe945('0x1d')]==_0x3ddc0a;});if(_0xd3d7c8){_0x4b28cb=_[_0xe945('0x1e')](this['agents'],function(_0x478d8a){return _0x478d8a[_0xe945('0x20')]==util[_0xe945('0x21')](_0xe945('0x22'),_0xd3d7c8['name']);});}}return _0x4b28cb;};Report[_0xe945('0x10')][_0xe945('0x23')]=function(_0x2e8761){for(var _0x51e000=0x0;_0x51e000<_0x2e8761[_0xe945('0x24')];_0x51e000+=0x1){var _0x2b4306=this[_0xe945('0x25')](_0x2e8761[_0x51e000]['connectedlinenum']);if(_0x2b4306){_0x2e8761[_0x51e000][_0xe945('0x1f')]=_0x2b4306[_0xe945('0x1f')];_0x2e8761[_0x51e000]['assigned']=!![];_0x2e8761[_0x51e000][_0xe945('0x26')]=_0x2b4306[_0xe945('0x1d')];_0x2e8761[_0x51e000][_0xe945('0x20')]=_[_0xe945('0x27')](_0x2b4306['interface'])?util['format']('SIP/%s',_0x2b4306['name']):_0x2b4306[_0xe945('0x20')];if(_0x2e8761[_0x51e000]['queuecallercomplete']){_0x2e8761[_0x51e000][_0xe945('0x28')]=moment()[_0xe945('0x21')]('YYYY-MM-DD\x20HH:mm:ss');}if(_0x2e8761[_0x51e000]['queuecallerexit']){_0x2e8761[_0x51e000]['queuecallerexitAt']=moment()[_0xe945('0x21')](_0xe945('0x29'));}RpcMemberReport[_0xe945('0x23')](_0x2e8761[_0x51e000]);}RpcVoiceQueueReport[_0xe945('0x2a')](_0x2e8761[_0x51e000]);}};function extractCalleridNumber(_0x7de48d){var _0x269c23=_0x7de48d[_0xe945('0x2b')](/<(.*?)>/);return _0x269c23?_0x269c23[0x1]:_0x7de48d;}Report[_0xe945('0x10')][_0xe945('0x2c')]=function(_0x248fe2){for(var _0x1b6374=0x0;_0x1b6374<Object[_0xe945('0x2d')](this['agents'])['length'];_0x1b6374++){var _0x399fe2=Object['keys'](this['agents'])[_0x1b6374];var _0x20e992=this[_0xe945('0xe')][_0x399fe2];if(_0x20e992[_0xe945('0x1f')]===Number(_0x248fe2))return _0x20e992;}return null;};Report['prototype'][_0xe945('0x2e')]=function(_0x5971ae){var _0x5093e3=_0x5971ae[_0xe945('0x2f')][_0xe945('0x30')]('-')[0x0];var _0x294163=this[_0xe945('0xe')][_0x5093e3];if(!_0x294163)_0x294163=this[_0xe945('0x2c')](_0x5971ae[_0xe945('0x31')]);return!_0x294163?_0xe945('0x32'):_0xe945('0x33');};Report[_0xe945('0x10')][_0xe945('0x17')]=function(_0xc82f0a){_0xc82f0a[_0xe945('0x34')]=_0xc82f0a[_0xe945('0x34')]||_0xc82f0a[_0xe945('0x35')];if(_0xc82f0a[_0xe945('0x36')]==_0xe945('0x37')){_0xc82f0a[_0xe945('0x38')]='queue';_0xc82f0a[_0xe945('0x39')]=_0xc82f0a[_0xe945('0x3a')];if(_0xc82f0a['context']==_0xe945('0x3b')){_0xc82f0a[_0xe945('0x1f')]='';_0xc82f0a[_0xe945('0x34')]=extractCalleridNumber(_0xc82f0a[_0xe945('0x3c')]);}else if(_0xc82f0a[_0xe945('0x3d')]==_0xe945('0x3e')){if(_0xc82f0a['destination']==_0xe945('0x3f')){_0xc82f0a['destination']=extractCalleridNumber(_0xc82f0a[_0xe945('0x40')]);_0xc82f0a[_0xe945('0x31')]=_0xc82f0a[_0xe945('0x41')];_0xc82f0a[_0xe945('0x42')]=[_0xc82f0a['channel'],_0xc82f0a[_0xe945('0x2f')]=_0xc82f0a[_0xe945('0x42')]][0x0];_0xc82f0a[_0xe945('0x3c')]=_0xc82f0a[_0xe945('0x40')];}else{_0xc82f0a[_0xe945('0x34')]=_0xc82f0a[_0xe945('0x31')];_0xc82f0a[_0xe945('0x31')]=_0xc82f0a[_0xe945('0x41')];if(_0xc82f0a[_0xe945('0x43')]==_0xe945('0x44')){_0xc82f0a[_0xe945('0x1f')]=_0xc82f0a[_0xe945('0x45')];}else{_0xc82f0a['accountcode']='';}}}}else{_0xc82f0a[_0xe945('0x3c')]=util[_0xe945('0x21')](_0xe945('0x46'),_0xc82f0a[_0xe945('0x47')],_0xc82f0a[_0xe945('0x31')]);}if(RpcVoiceTransferReport[_0xe945('0x48')][_0xc82f0a['linkedid']]){var _0x3e900d=RpcVoiceTransferReport[_0xe945('0x48')][_0xc82f0a[_0xe945('0x49')]];_0x3e900d[_0xe945('0x4a')]=_0xc82f0a['uniqueid'];RpcVoiceTransferReport[_0xe945('0x1b')](_0x3e900d);delete RpcVoiceTransferReport[_0xe945('0x48')][_0xc82f0a[_0xe945('0x49')]];}if(_['isNil'](_0xc82f0a[_0xe945('0x36')])){_0xc82f0a[_0xe945('0x36')]=this[_0xe945('0x2e')](_0xc82f0a);}if(_[_0xe945('0x27')](_0xc82f0a[_0xe945('0x4b')])){var _0x445ab4=_0xc82f0a[_0xe945('0x2f')][_0xe945('0x30')]('-')[0x0];var _0xad8271=this[_0xe945('0xe')][_0x445ab4];if(!_0xad8271)_0xad8271=this[_0xe945('0x2c')](_0xc82f0a[_0xe945('0x1f')]);if(_0xad8271){_0xc82f0a[_0xe945('0x4b')]=_0xad8271['id'];_0xc82f0a[_0xe945('0x4c')]=_0xad8271[_0xe945('0x1d')];}}RpcVoiceCallReport[_0xe945('0x2a')](_0xc82f0a);if(_0xc82f0a[_0xe945('0x4d')]){for(var _0x5268ac=0x0;_0x5268ac<_0xc82f0a[_0xe945('0x4e')]['length'];_0x5268ac+=0x1){_0xc82f0a['monitorFilename']=_0xc82f0a[_0xe945('0x4e')][_0x5268ac]['filename'];_0xc82f0a['createdAt']=_0xc82f0a['monitors'][_0x5268ac][_0xe945('0x4f')];if(_0xc82f0a[_0xe945('0x35')]==_0xe945('0x3f')){_0xc82f0a['calleridnum']=_0xc82f0a[_0xe945('0x45')];_0xc82f0a[_0xe945('0x47')]=_0xc82f0a[_0xe945('0x50')];_0xc82f0a[_0xe945('0x45')]=_0xc82f0a[_0xe945('0x1f')];_0xc82f0a[_0xe945('0x50')]=_0xc82f0a[_0xe945('0x4c')];_0xc82f0a[_0xe945('0x35')]=_0xc82f0a['originatecalleridnum'];}else if(_0xc82f0a[_0xe945('0x35')]==_0xe945('0x51')){_0xc82f0a['calleridnum']=_0xc82f0a[_0xe945('0x34')];_0xc82f0a['exten']=_0xc82f0a['originatecalleridnum'];}RpcVoiceRecording[_0xe945('0x2a')](_0xc82f0a);}}};Report[_0xe945('0x10')][_0xe945('0x19')]=function(_0x3b30c0){if(_[_0xe945('0x52')](_0x3b30c0)){_0x3b30c0[_0xe945('0x53')](function(_0x25c239){RpcVoiceAgentReport[_0xe945('0x2a')](_0x25c239);});}else{RpcVoiceAgentReport[_0xe945('0x2a')](_0x3b30c0);}};Report[_0xe945('0x10')]['voiceDialReport']=function(_0x54ac14){RpcVoiceDialReport['create'](_0x54ac14);var _0x139b66;var _0x4f1b6a;var _0x813654=_0x54ac14[_0xe945('0x2f')];if(_[_0xe945('0x54')](_0x813654,_0xe945('0x55'))){_0x4f1b6a=_0x813654['substring'](_0x813654[_0xe945('0x56')]('/')+0x1,_0x813654['indexOf']('@'));_0x139b66=_[_0xe945('0x1e')](this['agents'],function(_0x279749){return _0x279749['mobile']==_0x4f1b6a||_0x279749[_0xe945('0x57')]==_0x4f1b6a||_0x279749[_0xe945('0x1f')]==_0x4f1b6a;});}else{_0x4f1b6a=_0x813654[_0xe945('0x58')](_0x813654[_0xe945('0x56')]('/')+0x1,_0x813654[_0xe945('0x59')]('-'));_0x139b66=this[_0xe945('0x25')](_0x4f1b6a);}if(_0x139b66){_0x54ac14['interface']=_[_0xe945('0x27')](_0x139b66[_0xe945('0x20')])?util[_0xe945('0x21')]('SIP/%s',_0x139b66[_0xe945('0x1d')]):_0x139b66[_0xe945('0x20')];_0x54ac14['membername']=_0x139b66[_0xe945('0x1d')];_0x54ac14[_0xe945('0x1f')]=_0x139b66[_0xe945('0x1f')];RpcMemberReport[_0xe945('0x5a')](_0x54ac14);}};Report[_0xe945('0x10')][_0xe945('0x1b')]=function(_0xf9ac4e){RpcVoiceTransferReport[_0xe945('0x48')][_0xf9ac4e[_0xe945('0x5b')]]=_0xf9ac4e;};Report[_0xe945('0x10')]['attendedTransfer']=function(_0x3484e3){RpcVoiceTransferReport[_0xe945('0x5c')](_0x3484e3);};module['exports']=Report;