Built motion from commit (unavailable).|2.5.21
[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 _0x9926=['exten','CAST(priority\x20AS\x20UNSIGNED)','filter','groupBy','queue','playback','hasOwnProperty','priority','extensions','find','push','type','format','CDR(type)=%s','outbound','extension','Set','CDR(destination)=','${EXTEN:','cutdigits','${EXTEN}','CDR(routeid)=','VoiceExtensionId','ExecIf','):Goto(','context','CDR(prefix)=${EXTEN:0:','outboundrouteid=','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','wav','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','updatedAt','interval','*,*,*,*','tag','CDR(tag)=','length','callerID','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(CALLERID(all)=','answer','indexOf','app','toLowerCase','appType','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','splice','last','concat','bulkCreate','catch','error','models','then','intervals','VoiceExtension','findAll','IntervalId','uniq','map'];(function(_0xb3ee71,_0x55cdd1){var _0x4824ed=function(_0x580a34){while(--_0x580a34){_0xb3ee71['push'](_0xb3ee71['shift']());}};_0x4824ed(++_0x55cdd1);}(_0x9926,0x104));var _0x6992=function(_0x4c5342,_0x5b836d){_0x4c5342=_0x4c5342-0x0;var _0x129f64=_0x9926[_0x4c5342];return _0x129f64;};'use strict';var _=require('lodash');var util=require('util');function rewrite(_0x44779d,_0x21462b){var _0xa8409b=this;return _0x44779d[_0x6992('0x0')]['Interval']['findAll']({'raw':!![]})[_0x6992('0x1')](function(_0x534168){_0xa8409b[_0x6992('0x2')]=_0x534168;return _0x44779d[_0x6992('0x0')][_0x6992('0x3')][_0x6992('0x4')]({'where':{'IntervalId':_0x21462b[_0x6992('0x5')]},'raw':!![]});})['then'](function(_0x143717){return _0x44779d[_0x6992('0x0')][_0x6992('0x3')][_0x6992('0x4')]({'where':{'exten':{'$in':_[_0x6992('0x6')](_[_0x6992('0x7')](_0x143717,_0x6992('0x8')))}},'order':[{'raw':_0x6992('0x9')}],'raw':!![]});})[_0x6992('0x1')](function(_0x2c5e02){var _0x3ed78b=_[_0x6992('0xa')](_0x2c5e02,{'priority':'1'});var _0x257aee=_[_0x6992('0xa')](_0x2c5e02,{'isApp':0x1});var _0x1ec5b7=_[_0x6992('0xb')](_0x257aee,'exten');var _0x1d3b8a=[_0x6992('0xc'),_0x6992('0xd')];var _0x11ed8d=[];var _0x4179db=[];for(var _0x5307e6 in _0x1ec5b7){if(_0x1ec5b7[_0x6992('0xe')](_0x5307e6)){_0xa8409b[_0x6992('0xf')]=0x2;_0xa8409b[_0x6992('0x10')]=[];_0xa8409b['extension']=_[_0x6992('0x11')](_0x3ed78b,{'exten':_0x1ec5b7[_0x5307e6][0x0][_0x6992('0x8')]});_0xa8409b[_0x6992('0x10')][_0x6992('0x12')]({'type':_0x1ec5b7[_0x5307e6][0x0][_0x6992('0x13')],'app':'Set','appdata':util[_0x6992('0x14')](_0x6992('0x15'),_0x1ec5b7[_0x5307e6][0x0]['type']),'context':_0x1ec5b7[_0x5307e6][0x0]['context'],'exten':_0x1ec5b7[_0x5307e6][0x0]['exten'],'priority':_0xa8409b['priority']++,'VoiceExtensionId':_0x1ec5b7[_0x5307e6][0x0]['VoiceExtensionId']});if(_0x1ec5b7[_0x5307e6][0x0][_0x6992('0x13')]===_0x6992('0x16')){if(_0xa8409b[_0x6992('0x17')]){_0xa8409b[_0x6992('0x10')][_0x6992('0x12')]({'type':_0x1ec5b7[_0x5307e6][0x0][_0x6992('0x13')],'app':_0x6992('0x18'),'appdata':_0x6992('0x19')+(_0xa8409b[_0x6992('0x17')]['cutdigits']?_0x6992('0x1a')+_0xa8409b[_0x6992('0x17')][_0x6992('0x1b')]+'}':_0x6992('0x1c')),'context':_0x1ec5b7[_0x5307e6][0x0]['context'],'exten':_0x1ec5b7[_0x5307e6][0x0][_0x6992('0x8')],'priority':_0xa8409b[_0x6992('0xf')]++,'VoiceExtensionId':_0x1ec5b7[_0x5307e6][0x0]['VoiceExtensionId']});}_0xa8409b[_0x6992('0x10')][_0x6992('0x12')]({'type':_0x1ec5b7[_0x5307e6][0x0]['type'],'app':_0x6992('0x18'),'appdata':_0x6992('0x1d')+_0x1ec5b7[_0x5307e6][0x0][_0x6992('0x1e')],'context':_0x1ec5b7[_0x5307e6][0x0]['context'],'exten':_0x1ec5b7[_0x5307e6][0x0][_0x6992('0x8')],'priority':_0xa8409b['priority']++,'VoiceExtensionId':_0x1ec5b7[_0x5307e6][0x0][_0x6992('0x1e')]});var _0x36866f=_0xa8409b[_0x6992('0xf')]++;_0xa8409b[_0x6992('0x10')][_0x6992('0x12')]({'type':_0x1ec5b7[_0x5307e6][0x0]['type'],'app':_0x6992('0x1f'),'appdata':'$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto('+(_0x36866f+0x2)+_0x6992('0x20')+(_0x36866f+0x1)+')','context':_0x1ec5b7[_0x5307e6][0x0][_0x6992('0x21')],'exten':_0x1ec5b7[_0x5307e6][0x0][_0x6992('0x8')],'priority':_0x36866f,'VoiceExtensionId':_0x1ec5b7[_0x5307e6][0x0][_0x6992('0x1e')]});if(_0xa8409b[_0x6992('0x17')]){_0xa8409b[_0x6992('0x10')][_0x6992('0x12')]({'type':_0x1ec5b7[_0x5307e6][0x0][_0x6992('0x13')],'app':_0x6992('0x18'),'appdata':_0xa8409b[_0x6992('0x17')][_0x6992('0x1b')]?_0x6992('0x22')+_0xa8409b[_0x6992('0x17')][_0x6992('0x1b')]+'}':'CDR(prefix)=noprefix','context':_0x1ec5b7[_0x5307e6][0x0]['context'],'exten':_0x1ec5b7[_0x5307e6][0x0][_0x6992('0x8')],'priority':_0xa8409b['priority']++,'VoiceExtensionId':_0x1ec5b7[_0x5307e6][0x0][_0x6992('0x1e')]});}_0xa8409b['extensions'][_0x6992('0x12')]({'type':_0x1ec5b7[_0x5307e6][0x0][_0x6992('0x13')],'app':_0x6992('0x18'),'appdata':_0x6992('0x23')+_0x1ec5b7[_0x5307e6][0x0][_0x6992('0x1e')],'context':_0x1ec5b7[_0x5307e6][0x0][_0x6992('0x21')],'exten':_0x1ec5b7[_0x5307e6][0x0]['exten'],'priority':_0xa8409b[_0x6992('0xf')]++,'VoiceExtensionId':_0x1ec5b7[_0x5307e6][0x0]['VoiceExtensionId']});if(_0xa8409b[_0x6992('0x17')]&&_0xa8409b['extension'][_0x6992('0xe')](_0x6992('0x24'))&&_0xa8409b[_0x6992('0x17')][_0x6992('0x24')]!==_0x6992('0x25')){_0xa8409b['extensions']['push']({'type':_0x1ec5b7[_0x5307e6][0x0]['type'],'app':_0x6992('0x18'),'appdata':_0x6992('0x26'),'context':_0x1ec5b7[_0x5307e6][0x0][_0x6992('0x21')],'exten':_0x1ec5b7[_0x5307e6][0x0][_0x6992('0x8')],'priority':_0xa8409b[_0x6992('0xf')]++,'VoiceExtensionId':_0x1ec5b7[_0x5307e6][0x0]['VoiceExtensionId']});_0xa8409b[_0x6992('0x10')]['push']({'type':_0x1ec5b7[_0x5307e6][0x0][_0x6992('0x13')],'app':_0x6992('0x18'),'appdata':_0x6992('0x27')+_0xa8409b[_0x6992('0x17')]['recordingFormat']||_0x6992('0x28'),'context':_0x1ec5b7[_0x5307e6][0x0][_0x6992('0x21')],'exten':_0x1ec5b7[_0x5307e6][0x0]['exten'],'priority':_0xa8409b[_0x6992('0xf')]++,'VoiceExtensionId':_0x1ec5b7[_0x5307e6][0x0]['VoiceExtensionId']});}}_0xa8409b[_0x6992('0x10')]['push']({'type':_0x1ec5b7[_0x5307e6][0x0][_0x6992('0x13')],'app':_0x6992('0x18'),'appdata':_0x6992('0x29'),'context':_0x1ec5b7[_0x5307e6][0x0]['context'],'exten':_0x1ec5b7[_0x5307e6][0x0][_0x6992('0x8')],'priority':_0xa8409b['priority']++,'VoiceExtensionId':_0x1ec5b7[_0x5307e6][0x0][_0x6992('0x1e')]});_0xa8409b['extensions'][_0x6992('0x12')]({'type':_0x1ec5b7[_0x5307e6][0x0][_0x6992('0x13')],'app':_0x6992('0x18'),'appdata':_0x6992('0x2a'),'context':_0x1ec5b7[_0x5307e6][0x0][_0x6992('0x21')],'exten':_0x1ec5b7[_0x5307e6][0x0][_0x6992('0x8')],'priority':_0xa8409b['priority']++,'VoiceExtensionId':_0x1ec5b7[_0x5307e6][0x0][_0x6992('0x1e')]});_0xa8409b[_0x6992('0x10')][_0x6992('0x12')]({'type':_0x1ec5b7[_0x5307e6][0x0][_0x6992('0x13')],'app':_0x6992('0x18'),'appdata':_0x6992('0x2b'),'context':_0x1ec5b7[_0x5307e6][0x0]['context'],'exten':_0x1ec5b7[_0x5307e6][0x0]['exten'],'priority':_0xa8409b[_0x6992('0xf')]++,'VoiceExtensionId':_0x1ec5b7[_0x5307e6][0x0][_0x6992('0x1e')]});for(var _0x5bb445=0x0,_0x1330f1=0x0;_0x5bb445<_0x1ec5b7[_0x5307e6]['length'];_0x5bb445+=0x1,_0x1330f1=0x0){var _0x30fdc4=_0x1ec5b7[_0x5307e6][_0x5bb445];if(_0x30fdc4['type']){_0x30fdc4[_0x6992('0x13')]=_0x30fdc4[_0x6992('0x13')]['toLowerCase']();}var _0x524d59=[];var _0xb314f1=[];delete _0x30fdc4['id'];delete _0x30fdc4['createdAt'];delete _0x30fdc4[_0x6992('0x2c')];var _0x52b440=_0x30fdc4[_0x6992('0x2d')]!==_0x6992('0x2e')?[_0x30fdc4[_0x6992('0x2d')]]:_0x30fdc4[_0x6992('0x5')]?_[_0x6992('0x7')](_[_0x6992('0xa')](_0xa8409b[_0x6992('0x2')],{'IntervalId':_0x30fdc4[_0x6992('0x5')]}),_0x6992('0x2d')):[];if(_0x30fdc4['hasOwnProperty'](_0x6992('0x2f'))){if(_0x30fdc4['tag']&&_0x30fdc4[_0x6992('0x2f')]!=='--'){_0x524d59['push']({'type':_0x30fdc4[_0x6992('0x13')],'app':_0x6992('0x18'),'appdata':_0x6992('0x30')+_0x30fdc4[_0x6992('0x2f')],'context':_0x30fdc4[_0x6992('0x21')],'exten':_0x30fdc4['exten'],'priority':_0x52b440[_0x6992('0x31')]+_0xa8409b[_0x6992('0xf')]+_0x1330f1++,'VoiceExtensionId':_0x30fdc4[_0x6992('0x1e')]});}}if(_0x30fdc4[_0x6992('0x13')]==='outbound'&&_0x30fdc4[_0x6992('0xe')](_0x6992('0x32'))){if(_0x30fdc4[_0x6992('0x32')]){_0x524d59[_0x6992('0x12')]({'type':_0x30fdc4['type'],'app':_0x6992('0x1f'),'appdata':_0x6992('0x33')+_0x30fdc4[_0x6992('0x32')]+')','context':_0x30fdc4[_0x6992('0x21')],'exten':_0x30fdc4[_0x6992('0x8')],'priority':_0x52b440[_0x6992('0x31')]+_0xa8409b[_0x6992('0xf')]+_0x1330f1++,'VoiceExtensionId':_0x30fdc4[_0x6992('0x1e')]});}else{_0x524d59[_0x6992('0x12')]({'type':_0x30fdc4[_0x6992('0x13')],'app':_0x6992('0x1f'),'appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No\x20number\x20available)','context':_0x30fdc4[_0x6992('0x21')],'exten':_0x30fdc4[_0x6992('0x8')],'priority':_0x52b440[_0x6992('0x31')]+_0xa8409b[_0x6992('0xf')]+_0x1330f1++,'VoiceExtensionId':_0x30fdc4[_0x6992('0x1e')]});}}if(_0x30fdc4[_0x6992('0xe')](_0x6992('0x34'))){if(_0x1d3b8a[_0x6992('0x35')](_0x30fdc4[_0x6992('0x36')][_0x6992('0x37')]())>=0x0&&_0x30fdc4[_0x6992('0x38')]!==_0x6992('0x39')){if(_0x30fdc4[_0x6992('0x34')]){_0x524d59[_0x6992('0x12')]({'type':_0x30fdc4['type'],'app':_0x6992('0x1f'),'appdata':_0x6992('0x3a'),'context':_0x30fdc4[_0x6992('0x21')],'exten':_0x30fdc4[_0x6992('0x8')],'priority':_0x52b440[_0x6992('0x31')]+_0xa8409b[_0x6992('0xf')]+_0x1330f1++,'VoiceExtensionId':_0x30fdc4[_0x6992('0x1e')]});_0x524d59[_0x6992('0x12')]({'type':_0x30fdc4[_0x6992('0x13')],'app':_0x6992('0x18'),'appdata':'XCALLY-MOTION-ANSWER=1','context':_0x30fdc4[_0x6992('0x21')],'exten':_0x30fdc4[_0x6992('0x8')],'priority':_0x52b440[_0x6992('0x31')]+_0xa8409b[_0x6992('0xf')]+_0x1330f1++,'VoiceExtensionId':_0x30fdc4[_0x6992('0x1e')]});}else{_0x524d59[_0x6992('0x12')]({'type':_0x30fdc4['type'],'app':_0x6992('0x1f'),'appdata':_0x6992('0x3b'),'context':_0x30fdc4[_0x6992('0x21')],'exten':_0x30fdc4[_0x6992('0x8')],'priority':_0x52b440['length']+_0xa8409b[_0x6992('0xf')]+_0x1330f1++,'VoiceExtensionId':_0x30fdc4[_0x6992('0x1e')]});_0x524d59[_0x6992('0x12')]({'type':_0x30fdc4['type'],'app':_0x6992('0x18'),'appdata':_0x6992('0x3c'),'context':_0x30fdc4[_0x6992('0x21')],'exten':_0x30fdc4['exten'],'priority':_0x52b440[_0x6992('0x31')]+_0xa8409b['priority']+_0x1330f1++,'VoiceExtensionId':_0x30fdc4[_0x6992('0x1e')]});}}}for(var _0x464263=0x0;_0x464263<_0x52b440['length'];_0x464263+=0x1){var _0x28ef3d=_0xa8409b['priority']+_0x52b440[_0x6992('0x31')];var _0x29e4b8=_0x464263===_0x52b440[_0x6992('0x31')]-0x1?_0xa8409b[_0x6992('0xf')]+_0x524d59[_0x6992('0x31')]+_0xb314f1[_0x6992('0x31')]+0x2:_0xa8409b[_0x6992('0xf')]+_0x464263+0x1;_0x524d59[_0x6992('0x3d')](_0x464263,0x0,{'type':_0x30fdc4[_0x6992('0x13')],'app':'GotoIfTime','appdata':_0x52b440[_0x464263]+'?'+_0x30fdc4['context']+',${EXTEN},'+_0x28ef3d+':'+_0x30fdc4['context']+',${EXTEN},'+_0x29e4b8,'exten':_0x30fdc4[_0x6992('0x8')],'context':_0x30fdc4[_0x6992('0x21')],'priority':_0xa8409b[_0x6992('0xf')]+_0x464263,'VoiceExtensionId':_0x1ec5b7[_0x5307e6][0x0][_0x6992('0x1e')]});}_0x30fdc4[_0x6992('0xf')]=_0x524d59[_0x6992('0x31')]?_[_0x6992('0x3e')](_0x524d59)['priority']+0x1:_0xa8409b[_0x6992('0xf')];_0xa8409b[_0x6992('0xf')]=(_0xb314f1[_0x6992('0x31')]?_[_0x6992('0x3e')](_0xb314f1)[_0x6992('0xf')]:_0x30fdc4['priority'])+0x1;_0xa8409b['extensions']=_[_0x6992('0x3f')](_0xa8409b[_0x6992('0x10')],_0x524d59,[_0x30fdc4],_0xb314f1);}_0xa8409b['extensions'][_0x6992('0x12')]({'type':_0x1ec5b7[_0x5307e6][0x0][_0x6992('0x13')],'app':'Hangup','exten':_0x1ec5b7[_0x5307e6][0x0][_0x6992('0x8')],'context':_0x1ec5b7[_0x5307e6][0x0]['context'],'priority':_0xa8409b[_0x6992('0xf')],'VoiceExtensionId':_0x1ec5b7[_0x5307e6][0x0]['VoiceExtensionId']});_0x11ed8d[_0x6992('0x12')](_0x1ec5b7[_0x5307e6][0x0]['VoiceExtensionId']);_0x4179db=_['concat'](_0x4179db,_0xa8409b[_0x6992('0x10')]);}}return _0x44779d['transaction'](function(_0x315778){return _0x44779d['models'][_0x6992('0x3')]['destroy']({'where':{'VoiceExtensionId':{'$in':_0x11ed8d}},'transaction':_0x315778})[_0x6992('0x1')](function(_0x37b8b8){return _0x44779d[_0x6992('0x0')][_0x6992('0x3')][_0x6992('0x40')](_['sortBy'](_0x4179db,_0x6992('0xf')),{'transaction':_0x315778});});});})[_0x6992('0x41')](function(_0x4073e8){console[_0x6992('0x42')](_0x4073e8);});}exports['rewrite']=rewrite;