Built motion from commit 3e059bc2.|2.5.32
[motion2.git] / server / components / extensions / rewrite.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 _0x2d03=['last','concat','Hangup','transaction','sortBy','catch','error','rewrite','util','models','Interval','then','intervals','VoiceExtension','IntervalId','findAll','uniq','exten','filter','groupBy','queue','playback','hasOwnProperty','priority','extensions','find','push','type','Set','format','CDR(type)=%s','context','extension','CDR(destination)=','cutdigits','${EXTEN:','${EXTEN}','VoiceExtensionId','CDR(routeid)=','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','outboundrouteid=','recordingFormat','_XCALLY_MIXMONITOR_FORMAT=','wav','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','updatedAt','*,*,*,*','map','interval','tag','CDR(tag)=','length','outbound','callerID','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(CALLERID(all)=','ExecIf','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No\x20number\x20available)','answer','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','splice','GotoIfTime',',${EXTEN},'];(function(_0x45fa99,_0x559b73){var _0x259e99=function(_0x19f3f0){while(--_0x19f3f0){_0x45fa99['push'](_0x45fa99['shift']());}};_0x259e99(++_0x559b73);}(_0x2d03,0x120));var _0x32d0=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x2d03[_0x14add3];return _0x4a174f;};'use strict';var _=require('lodash');var util=require(_0x32d0('0x0'));function rewrite(_0x11ff57,_0x5dd858){var _0x2443f7=this;return _0x11ff57[_0x32d0('0x1')][_0x32d0('0x2')]['findAll']({'raw':!![]})[_0x32d0('0x3')](function(_0x213b89){_0x2443f7[_0x32d0('0x4')]=_0x213b89;return _0x11ff57[_0x32d0('0x1')][_0x32d0('0x5')]['findAll']({'where':{'IntervalId':_0x5dd858[_0x32d0('0x6')]},'raw':!![]});})[_0x32d0('0x3')](function(_0xf8cf23){return _0x11ff57['models'][_0x32d0('0x5')][_0x32d0('0x7')]({'where':{'exten':{'$in':_[_0x32d0('0x8')](_['map'](_0xf8cf23,_0x32d0('0x9')))}},'order':[{'raw':'CAST(priority\x20AS\x20UNSIGNED)'}],'raw':!![]});})[_0x32d0('0x3')](function(_0x48a7d5){var _0x4ed895=_['filter'](_0x48a7d5,{'priority':'1'});var _0x444e80=_[_0x32d0('0xa')](_0x48a7d5,{'isApp':0x1});var _0x300487=_[_0x32d0('0xb')](_0x444e80,'exten');var _0x450353=[_0x32d0('0xc'),_0x32d0('0xd')];var _0x1af58d=[];var _0x1b8bf1=[];for(var _0x9c6af9 in _0x300487){if(_0x300487[_0x32d0('0xe')](_0x9c6af9)){_0x2443f7[_0x32d0('0xf')]=0x2;_0x2443f7[_0x32d0('0x10')]=[];_0x2443f7['extension']=_[_0x32d0('0x11')](_0x4ed895,{'exten':_0x300487[_0x9c6af9][0x0][_0x32d0('0x9')]});_0x2443f7[_0x32d0('0x10')][_0x32d0('0x12')]({'type':_0x300487[_0x9c6af9][0x0][_0x32d0('0x13')],'app':_0x32d0('0x14'),'appdata':util[_0x32d0('0x15')](_0x32d0('0x16'),_0x300487[_0x9c6af9][0x0][_0x32d0('0x13')]),'context':_0x300487[_0x9c6af9][0x0][_0x32d0('0x17')],'exten':_0x300487[_0x9c6af9][0x0]['exten'],'priority':_0x2443f7['priority']++,'VoiceExtensionId':_0x300487[_0x9c6af9][0x0]['VoiceExtensionId']});if(_0x300487[_0x9c6af9][0x0]['type']==='outbound'){if(_0x2443f7[_0x32d0('0x18')]){_0x2443f7[_0x32d0('0x10')]['push']({'type':_0x300487[_0x9c6af9][0x0][_0x32d0('0x13')],'app':'Set','appdata':_0x32d0('0x19')+(_0x2443f7[_0x32d0('0x18')][_0x32d0('0x1a')]?_0x32d0('0x1b')+_0x2443f7[_0x32d0('0x18')][_0x32d0('0x1a')]+'}':_0x32d0('0x1c')),'context':_0x300487[_0x9c6af9][0x0][_0x32d0('0x17')],'exten':_0x300487[_0x9c6af9][0x0][_0x32d0('0x9')],'priority':_0x2443f7[_0x32d0('0xf')]++,'VoiceExtensionId':_0x300487[_0x9c6af9][0x0][_0x32d0('0x1d')]});}_0x2443f7[_0x32d0('0x10')]['push']({'type':_0x300487[_0x9c6af9][0x0][_0x32d0('0x13')],'app':_0x32d0('0x14'),'appdata':_0x32d0('0x1e')+_0x300487[_0x9c6af9][0x0][_0x32d0('0x1d')],'context':_0x300487[_0x9c6af9][0x0][_0x32d0('0x17')],'exten':_0x300487[_0x9c6af9][0x0][_0x32d0('0x9')],'priority':_0x2443f7[_0x32d0('0xf')]++,'VoiceExtensionId':_0x300487[_0x9c6af9][0x0][_0x32d0('0x1d')]});var _0x11f275=_0x2443f7['priority']++;_0x2443f7[_0x32d0('0x10')][_0x32d0('0x12')]({'type':_0x300487[_0x9c6af9][0x0][_0x32d0('0x13')],'app':'ExecIf','appdata':_0x32d0('0x1f')+(_0x11f275+0x2)+'):Goto('+(_0x11f275+0x1)+')','context':_0x300487[_0x9c6af9][0x0][_0x32d0('0x17')],'exten':_0x300487[_0x9c6af9][0x0][_0x32d0('0x9')],'priority':_0x11f275,'VoiceExtensionId':_0x300487[_0x9c6af9][0x0][_0x32d0('0x1d')]});if(_0x2443f7[_0x32d0('0x18')]){_0x2443f7[_0x32d0('0x10')]['push']({'type':_0x300487[_0x9c6af9][0x0][_0x32d0('0x13')],'app':_0x32d0('0x14'),'appdata':_0x2443f7[_0x32d0('0x18')][_0x32d0('0x1a')]?_0x32d0('0x20')+_0x2443f7[_0x32d0('0x18')][_0x32d0('0x1a')]+'}':_0x32d0('0x21'),'context':_0x300487[_0x9c6af9][0x0][_0x32d0('0x17')],'exten':_0x300487[_0x9c6af9][0x0]['exten'],'priority':_0x2443f7['priority']++,'VoiceExtensionId':_0x300487[_0x9c6af9][0x0][_0x32d0('0x1d')]});}_0x2443f7['extensions']['push']({'type':_0x300487[_0x9c6af9][0x0]['type'],'app':_0x32d0('0x14'),'appdata':_0x32d0('0x22')+_0x300487[_0x9c6af9][0x0][_0x32d0('0x1d')],'context':_0x300487[_0x9c6af9][0x0]['context'],'exten':_0x300487[_0x9c6af9][0x0][_0x32d0('0x9')],'priority':_0x2443f7[_0x32d0('0xf')]++,'VoiceExtensionId':_0x300487[_0x9c6af9][0x0][_0x32d0('0x1d')]});if(_0x2443f7[_0x32d0('0x18')]&&_0x2443f7[_0x32d0('0x18')]['hasOwnProperty'](_0x32d0('0x23'))&&_0x2443f7['extension'][_0x32d0('0x23')]!=='none'){_0x2443f7[_0x32d0('0x10')]['push']({'type':_0x300487[_0x9c6af9][0x0][_0x32d0('0x13')],'app':_0x32d0('0x14'),'appdata':'_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','context':_0x300487[_0x9c6af9][0x0][_0x32d0('0x17')],'exten':_0x300487[_0x9c6af9][0x0][_0x32d0('0x9')],'priority':_0x2443f7[_0x32d0('0xf')]++,'VoiceExtensionId':_0x300487[_0x9c6af9][0x0]['VoiceExtensionId']});_0x2443f7[_0x32d0('0x10')][_0x32d0('0x12')]({'type':_0x300487[_0x9c6af9][0x0][_0x32d0('0x13')],'app':'Set','appdata':_0x32d0('0x24')+_0x2443f7[_0x32d0('0x18')][_0x32d0('0x23')]||_0x32d0('0x25'),'context':_0x300487[_0x9c6af9][0x0]['context'],'exten':_0x300487[_0x9c6af9][0x0][_0x32d0('0x9')],'priority':_0x2443f7['priority']++,'VoiceExtensionId':_0x300487[_0x9c6af9][0x0][_0x32d0('0x1d')]});}}_0x2443f7['extensions'][_0x32d0('0x12')]({'type':_0x300487[_0x9c6af9][0x0][_0x32d0('0x13')],'app':_0x32d0('0x14'),'appdata':_0x32d0('0x26'),'context':_0x300487[_0x9c6af9][0x0][_0x32d0('0x17')],'exten':_0x300487[_0x9c6af9][0x0][_0x32d0('0x9')],'priority':_0x2443f7[_0x32d0('0xf')]++,'VoiceExtensionId':_0x300487[_0x9c6af9][0x0][_0x32d0('0x1d')]});_0x2443f7[_0x32d0('0x10')][_0x32d0('0x12')]({'type':_0x300487[_0x9c6af9][0x0][_0x32d0('0x13')],'app':_0x32d0('0x14'),'appdata':_0x32d0('0x27'),'context':_0x300487[_0x9c6af9][0x0][_0x32d0('0x17')],'exten':_0x300487[_0x9c6af9][0x0]['exten'],'priority':_0x2443f7['priority']++,'VoiceExtensionId':_0x300487[_0x9c6af9][0x0]['VoiceExtensionId']});_0x2443f7[_0x32d0('0x10')][_0x32d0('0x12')]({'type':_0x300487[_0x9c6af9][0x0]['type'],'app':_0x32d0('0x14'),'appdata':_0x32d0('0x28'),'context':_0x300487[_0x9c6af9][0x0][_0x32d0('0x17')],'exten':_0x300487[_0x9c6af9][0x0][_0x32d0('0x9')],'priority':_0x2443f7['priority']++,'VoiceExtensionId':_0x300487[_0x9c6af9][0x0][_0x32d0('0x1d')]});for(var _0x36cc62=0x0,_0x1ff8b8=0x0;_0x36cc62<_0x300487[_0x9c6af9]['length'];_0x36cc62+=0x1,_0x1ff8b8=0x0){var _0x291431=_0x300487[_0x9c6af9][_0x36cc62];if(_0x291431[_0x32d0('0x13')]){_0x291431['type']=_0x291431['type']['toLowerCase']();}var _0x536a18=[];var _0x4de745=[];delete _0x291431['id'];delete _0x291431['createdAt'];delete _0x291431[_0x32d0('0x29')];var _0x48207f=_0x291431['interval']!==_0x32d0('0x2a')?[_0x291431['interval']]:_0x291431[_0x32d0('0x6')]?_[_0x32d0('0x2b')](_[_0x32d0('0xa')](_0x2443f7['intervals'],{'IntervalId':_0x291431[_0x32d0('0x6')]}),_0x32d0('0x2c')):[];if(_0x291431[_0x32d0('0xe')]('tag')){if(_0x291431[_0x32d0('0x2d')]&&_0x291431[_0x32d0('0x2d')]!=='--'){_0x536a18['push']({'type':_0x291431['type'],'app':_0x32d0('0x14'),'appdata':_0x32d0('0x2e')+_0x291431[_0x32d0('0x2d')],'context':_0x291431['context'],'exten':_0x291431[_0x32d0('0x9')],'priority':_0x48207f[_0x32d0('0x2f')]+_0x2443f7[_0x32d0('0xf')]+_0x1ff8b8++,'VoiceExtensionId':_0x291431[_0x32d0('0x1d')]});}}if(_0x291431[_0x32d0('0x13')]===_0x32d0('0x30')&&_0x291431[_0x32d0('0xe')](_0x32d0('0x31'))){if(_0x291431[_0x32d0('0x31')]){_0x536a18[_0x32d0('0x12')]({'type':_0x291431[_0x32d0('0x13')],'app':'ExecIf','appdata':_0x32d0('0x32')+_0x291431[_0x32d0('0x31')]+')','context':_0x291431[_0x32d0('0x17')],'exten':_0x291431[_0x32d0('0x9')],'priority':_0x48207f[_0x32d0('0x2f')]+_0x2443f7[_0x32d0('0xf')]+_0x1ff8b8++,'VoiceExtensionId':_0x291431[_0x32d0('0x1d')]});}else{_0x536a18[_0x32d0('0x12')]({'type':_0x291431[_0x32d0('0x13')],'app':_0x32d0('0x33'),'appdata':_0x32d0('0x34'),'context':_0x291431[_0x32d0('0x17')],'exten':_0x291431[_0x32d0('0x9')],'priority':_0x48207f[_0x32d0('0x2f')]+_0x2443f7[_0x32d0('0xf')]+_0x1ff8b8++,'VoiceExtensionId':_0x291431[_0x32d0('0x1d')]});}}if(_0x291431['hasOwnProperty'](_0x32d0('0x35'))){if(_0x450353['indexOf'](_0x291431['app']['toLowerCase']())>=0x0&&_0x291431['appType']!==_0x32d0('0x36')){if(_0x291431['answer']){_0x536a18['push']({'type':_0x291431[_0x32d0('0x13')],'app':_0x32d0('0x33'),'appdata':_0x32d0('0x37'),'context':_0x291431[_0x32d0('0x17')],'exten':_0x291431[_0x32d0('0x9')],'priority':_0x48207f['length']+_0x2443f7[_0x32d0('0xf')]+_0x1ff8b8++,'VoiceExtensionId':_0x291431['VoiceExtensionId']});_0x536a18[_0x32d0('0x12')]({'type':_0x291431['type'],'app':_0x32d0('0x14'),'appdata':_0x32d0('0x38'),'context':_0x291431[_0x32d0('0x17')],'exten':_0x291431[_0x32d0('0x9')],'priority':_0x48207f['length']+_0x2443f7[_0x32d0('0xf')]+_0x1ff8b8++,'VoiceExtensionId':_0x291431['VoiceExtensionId']});}else{_0x536a18[_0x32d0('0x12')]({'type':_0x291431[_0x32d0('0x13')],'app':_0x32d0('0x33'),'appdata':_0x32d0('0x39'),'context':_0x291431['context'],'exten':_0x291431[_0x32d0('0x9')],'priority':_0x48207f[_0x32d0('0x2f')]+_0x2443f7[_0x32d0('0xf')]+_0x1ff8b8++,'VoiceExtensionId':_0x291431[_0x32d0('0x1d')]});_0x536a18['push']({'type':_0x291431[_0x32d0('0x13')],'app':'Set','appdata':_0x32d0('0x3a'),'context':_0x291431['context'],'exten':_0x291431[_0x32d0('0x9')],'priority':_0x48207f['length']+_0x2443f7[_0x32d0('0xf')]+_0x1ff8b8++,'VoiceExtensionId':_0x291431[_0x32d0('0x1d')]});}}}for(var _0x30d754=0x0;_0x30d754<_0x48207f[_0x32d0('0x2f')];_0x30d754+=0x1){var _0x41e802=_0x2443f7[_0x32d0('0xf')]+_0x48207f[_0x32d0('0x2f')];var _0x27234d=_0x30d754===_0x48207f[_0x32d0('0x2f')]-0x1?_0x2443f7[_0x32d0('0xf')]+_0x536a18[_0x32d0('0x2f')]+_0x4de745['length']+0x2:_0x2443f7[_0x32d0('0xf')]+_0x30d754+0x1;_0x536a18[_0x32d0('0x3b')](_0x30d754,0x0,{'type':_0x291431['type'],'app':_0x32d0('0x3c'),'appdata':_0x48207f[_0x30d754]+'?'+_0x291431['context']+_0x32d0('0x3d')+_0x41e802+':'+_0x291431[_0x32d0('0x17')]+',${EXTEN},'+_0x27234d,'exten':_0x291431[_0x32d0('0x9')],'context':_0x291431[_0x32d0('0x17')],'priority':_0x2443f7['priority']+_0x30d754,'VoiceExtensionId':_0x300487[_0x9c6af9][0x0][_0x32d0('0x1d')]});}_0x291431['priority']=_0x536a18[_0x32d0('0x2f')]?_[_0x32d0('0x3e')](_0x536a18)['priority']+0x1:_0x2443f7[_0x32d0('0xf')];_0x2443f7[_0x32d0('0xf')]=(_0x4de745[_0x32d0('0x2f')]?_[_0x32d0('0x3e')](_0x4de745)[_0x32d0('0xf')]:_0x291431[_0x32d0('0xf')])+0x1;_0x2443f7[_0x32d0('0x10')]=_[_0x32d0('0x3f')](_0x2443f7[_0x32d0('0x10')],_0x536a18,[_0x291431],_0x4de745);}_0x2443f7[_0x32d0('0x10')][_0x32d0('0x12')]({'type':_0x300487[_0x9c6af9][0x0][_0x32d0('0x13')],'app':_0x32d0('0x40'),'exten':_0x300487[_0x9c6af9][0x0][_0x32d0('0x9')],'context':_0x300487[_0x9c6af9][0x0][_0x32d0('0x17')],'priority':_0x2443f7[_0x32d0('0xf')],'VoiceExtensionId':_0x300487[_0x9c6af9][0x0][_0x32d0('0x1d')]});_0x1af58d[_0x32d0('0x12')](_0x300487[_0x9c6af9][0x0][_0x32d0('0x1d')]);_0x1b8bf1=_[_0x32d0('0x3f')](_0x1b8bf1,_0x2443f7[_0x32d0('0x10')]);}}return _0x11ff57[_0x32d0('0x41')](function(_0x20ff69){return _0x11ff57[_0x32d0('0x1')][_0x32d0('0x5')]['destroy']({'where':{'VoiceExtensionId':{'$in':_0x1af58d}},'transaction':_0x20ff69})[_0x32d0('0x3')](function(_0x5c45bf){return _0x11ff57[_0x32d0('0x1')][_0x32d0('0x5')]['bulkCreate'](_[_0x32d0('0x42')](_0x1b8bf1,_0x32d0('0xf')),{'transaction':_0x20ff69});});});})[_0x32d0('0x43')](function(_0x107a47){console[_0x32d0('0x44')](_0x107a47);});}exports[_0x32d0('0x45')]=rewrite;