da725897e4be25133c6fbd3aa703451406843b44
[motion2.git] / server / services / xdr / recordings.controller.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 _0xa7a9=['linkedid','context','channel','error','newstate','[%s][recordings][newstate]','isNil','channelstate','transfer','[%s][recordings][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s','varset','variable','mixmonitor_filename','[%s][recordings][varset]','[%s][recordings][varset]\x20variable:%s\x20value:%s','value','endsWith','.wav49','.WAV','monitors','hangup','[%s][recordings][hangup]','[%s][recordings][hangup]\x20calleridnum:%s\x20calleridname:%s\x20reason:%s','calleridnum','calleridname','cause-txt','connectedlinename','outbound','connectedlinenum','forEach','[%s][recordings][newexten]','appdata','cdr','split','substring','lastIndexOf','queuecallerjoin','queue','[%s][recordings][queuecallerjoin]','lodash','util','./utils','info','format','[%s][recordings][writeDB]','uniqueid','accountcode','then','membername','UserId','request','CreateVoiceRecording','newchannel','debug','[%s][recordings][newchannel]'];(function(_0x263a74,_0xc31414){var _0x2aa86c=function(_0x382896){while(--_0x382896){_0x263a74['push'](_0x263a74['shift']());}};_0x2aa86c(++_0xc31414);}(_0xa7a9,0x1df));var _0x9a7a=function(_0x2f9bd4,_0x1bd5fb){_0x2f9bd4=_0x2f9bd4-0x0;var _0x533ea2=_0xa7a9[_0x2f9bd4];return _0x533ea2;};'use strict';var _=require(_0x9a7a('0x0'));var util=require(_0x9a7a('0x1'));var utils=require(_0x9a7a('0x2'));var recordings={};function writeDB(_0x3a4971){utils[_0x9a7a('0x3')](util[_0x9a7a('0x4')](_0x9a7a('0x5'),_0x3a4971[_0x9a7a('0x6')]));if(_0x3a4971[_0x9a7a('0x7')]){utils['getUserByInternal'](_0x3a4971['accountcode'])[_0x9a7a('0x8')](function(_0x343121){if(_0x343121){_0x3a4971[_0x9a7a('0x9')]=_0x343121['name'];_0x3a4971[_0x9a7a('0xa')]=_0x343121['id'];}utils[_0x9a7a('0xb')](_0x9a7a('0xc'),_0x3a4971);});}else{utils['request']('CreateVoiceRecording',_0x3a4971);}}exports[_0x9a7a('0xd')]=function(_0x3ab00b){try{utils[_0x9a7a('0xe')](util[_0x9a7a('0x4')](_0x9a7a('0xf'),_0x3ab00b['uniqueid']),_0x3ab00b);if(_0x3ab00b[_0x9a7a('0x6')]==_0x3ab00b[_0x9a7a('0x10')]){utils['info'](util[_0x9a7a('0x4')]('[%s][recordings][newchannel]\x20context:%s\x20exten:%s',_0x3ab00b['uniqueid'],_0x3ab00b[_0x9a7a('0x11')],_0x3ab00b['exten']));recordings[_0x3ab00b['uniqueid']]={'uniqueid':_0x3ab00b[_0x9a7a('0x6')],'accountcode':_0x3ab00b[_0x9a7a('0x7')],'exten':_0x3ab00b['exten'],'context':_0x3ab00b[_0x9a7a('0x11')],'channel':_0x3ab00b[_0x9a7a('0x12')],'monitors':[]};}}catch(_0x181900){utils[_0x9a7a('0x13')](util[_0x9a7a('0x4')]('[%s][recordings][newchannel]',_0x3ab00b[_0x9a7a('0x6')]),_0x181900);}};exports[_0x9a7a('0x14')]=function(_0x59ff9f){try{utils['debug'](util[_0x9a7a('0x4')](_0x9a7a('0x15'),_0x59ff9f[_0x9a7a('0x6')]),_0x59ff9f);if(!_[_0x9a7a('0x16')](recordings[_0x59ff9f[_0x9a7a('0x6')]])&&_0x59ff9f[_0x9a7a('0x17')]==0x6){utils[_0x9a7a('0x3')](util['format']('[%s][recordings][newstate]\x20context:%s\x20channel:%s',_0x59ff9f['uniqueid'],_0x59ff9f[_0x9a7a('0x11')],_0x59ff9f['channel']));}else if(!_[_0x9a7a('0x16')](recordings[_0x59ff9f[_0x9a7a('0x10')]])&&_0x59ff9f[_0x9a7a('0x17')]==0x6&&_0x59ff9f[_0x9a7a('0x11')]!=_0x9a7a('0x18')){utils[_0x9a7a('0x3')](util[_0x9a7a('0x4')](_0x9a7a('0x19'),_0x59ff9f['uniqueid'],_0x59ff9f[_0x9a7a('0x10')],_0x59ff9f[_0x9a7a('0x11')],_0x59ff9f[_0x9a7a('0x12')]));recordings[_0x59ff9f[_0x9a7a('0x10')]][_0x9a7a('0x7')]=_0x59ff9f['accountcode'];}}catch(_0x3b40cc){utils[_0x9a7a('0x13')](util[_0x9a7a('0x4')](_0x9a7a('0x15'),_0x59ff9f[_0x9a7a('0x6')]),_0x3b40cc);}};exports[_0x9a7a('0x1a')]=function(_0x12acd9){try{if(!_[_0x9a7a('0x16')](_0x12acd9[_0x9a7a('0x1b')])&&!_[_0x9a7a('0x16')](_0x12acd9[_0x9a7a('0x1b')][_0x9a7a('0x1c')])){utils[_0x9a7a('0xe')](util[_0x9a7a('0x4')](_0x9a7a('0x1d'),_0x12acd9[_0x9a7a('0x6')]),_0x12acd9);utils['info'](util[_0x9a7a('0x4')](_0x9a7a('0x1e'),_0x12acd9[_0x9a7a('0x6')],_0x12acd9[_0x9a7a('0x1b')],_0x12acd9[_0x9a7a('0x1f')]));if(_[_0x9a7a('0x20')](_0x12acd9['value'],_0x9a7a('0x21'))){_0x12acd9[_0x9a7a('0x1f')]=_0x12acd9['value']['replace']('.wav49',_0x9a7a('0x22'));}if(recordings[_0x12acd9[_0x9a7a('0x10')]]){var _0x154616=_['find'](recordings[_0x12acd9[_0x9a7a('0x10')]][_0x9a7a('0x23')],{'value':_0x12acd9[_0x9a7a('0x1f')]});if(_['isNil'](_0x154616)){recordings[_0x12acd9[_0x9a7a('0x10')]][_0x9a7a('0x23')]['push']({'value':_0x12acd9[_0x9a7a('0x1f')]});}}}}catch(_0x21d0b5){utils[_0x9a7a('0x13')](util['format'](_0x9a7a('0x1d'),_0x12acd9[_0x9a7a('0x6')]),_0x21d0b5);}};exports[_0x9a7a('0x24')]=function(_0x4379b4){try{if(!_['isNil'](recordings[_0x4379b4[_0x9a7a('0x6')]])){utils[_0x9a7a('0xe')](util[_0x9a7a('0x4')](_0x9a7a('0x25'),_0x4379b4[_0x9a7a('0x6')]),_0x4379b4);utils['info'](util[_0x9a7a('0x4')](_0x9a7a('0x26'),_0x4379b4[_0x9a7a('0x6')],_0x4379b4[_0x9a7a('0x27')],_0x4379b4[_0x9a7a('0x28')],_0x4379b4[_0x9a7a('0x29')]));recordings[_0x4379b4[_0x9a7a('0x6')]][_0x9a7a('0x27')]=_0x4379b4['calleridnum'];recordings[_0x4379b4['uniqueid']][_0x9a7a('0x28')]=_0x4379b4[_0x9a7a('0x28')];recordings[_0x4379b4[_0x9a7a('0x6')]]['connectedlinenum']=_0x4379b4['connectedlinenum'];recordings[_0x4379b4[_0x9a7a('0x6')]][_0x9a7a('0x2a')]=_0x4379b4['connectedlinename'];if(recordings[_0x4379b4[_0x9a7a('0x6')]]['type']==_0x9a7a('0x2b')&&recordings[_0x4379b4[_0x9a7a('0x6')]][_0x9a7a('0x7')]){recordings[_0x4379b4[_0x9a7a('0x6')]][_0x9a7a('0x2c')]=recordings[_0x4379b4[_0x9a7a('0x6')]][_0x9a7a('0x7')];recordings[_0x4379b4[_0x9a7a('0x6')]][_0x9a7a('0x2a')]='';}recordings[_0x4379b4[_0x9a7a('0x6')]][_0x9a7a('0x23')][_0x9a7a('0x2d')](function(_0x34ccf7){var _0x269fc4=_['clone'](recordings[_0x4379b4[_0x9a7a('0x6')]]);_0x269fc4[_0x9a7a('0x1f')]=_0x34ccf7['value'];writeDB(_0x269fc4);});delete recordings[_0x4379b4[_0x9a7a('0x6')]];}}catch(_0x1defaf){utils['error'](util[_0x9a7a('0x4')]('[%s][recordings][hangup]',_0x4379b4[_0x9a7a('0x6')]),_0x1defaf);}};exports['newexten']=function(_0x39f877){try{if(!_[_0x9a7a('0x16')](recordings[_0x39f877[_0x9a7a('0x6')]])){utils[_0x9a7a('0xe')](util['format'](_0x9a7a('0x2e'),_0x39f877[_0x9a7a('0x6')]),_0x39f877);utils[_0x9a7a('0x3')](util[_0x9a7a('0x4')]('[%s][recordings][newexten]\x20application:%s\x20appdata:%s',_0x39f877[_0x9a7a('0x6')],_0x39f877['application'],_0x39f877[_0x9a7a('0x2f')]));if(_0x39f877['application']['toLowerCase']()=='set'&&_['startsWith'](_0x39f877[_0x9a7a('0x2f')]['toLowerCase'](),_0x9a7a('0x30'))){var _0xc93bb5=_0x39f877[_0x9a7a('0x2f')][_0x9a7a('0x31')]('=');var _0x38f781=_0xc93bb5[0x0][_0x9a7a('0x32')](_0xc93bb5[0x0]['lastIndexOf']('(')+0x1,_0xc93bb5[0x0][_0x9a7a('0x33')](')'));var _0x157897=_0xc93bb5[0x1];recordings[_0x39f877[_0x9a7a('0x6')]][_0x38f781]=_0x157897;}}}catch(_0x4b3143){utils['error'](util[_0x9a7a('0x4')](_0x9a7a('0x2e'),_0x39f877['uniqueid']),_0x4b3143);}};exports[_0x9a7a('0x34')]=function(_0x46f4f4){try{if(!_['isNil'](recordings[_0x46f4f4[_0x9a7a('0x6')]])){utils[_0x9a7a('0xe')](util['format']('[%s][recordings][queuecallerjoin]',_0x46f4f4[_0x9a7a('0x6')]),_0x46f4f4);utils[_0x9a7a('0x3')](util[_0x9a7a('0x4')]('[%s][recordings][queuecallerjoin]\x20queue:%s',_0x46f4f4[_0x9a7a('0x6')],_0x46f4f4[_0x9a7a('0x35')]));recordings[_0x46f4f4[_0x9a7a('0x6')]][_0x9a7a('0x35')]=_0x46f4f4['queue'];}}catch(_0x2ecb47){utils[_0x9a7a('0x13')](util['format'](_0x9a7a('0x36'),_0x46f4f4[_0x9a7a('0x6')]),_0x2ecb47);}};