Built motion from commit e02f907f.|2.6.14
[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 _0xf2b3=['appType','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','splice','GotoIfTime',',${EXTEN},','last','concat','Hangup','transaction','catch','error','lodash','Interval','findAll','intervals','models','VoiceExtension','IntervalId','then','filter','groupBy','queue','playback','hasOwnProperty','priority','extensions','extension','find','push','type','CDR(type)=%s','context','exten','Set','CDR(routeid)=','VoiceExtensionId','outbound','${EXTEN:','cutdigits','ExecIf','):Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','length','toLowerCase','createdAt','updatedAt','interval','tag','callerID','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(CALLERID(all)=','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No\x20number\x20available)','answer','indexOf','app'];(function(_0x5aa430,_0x4af94b){var _0x4eba19=function(_0x2724f5){while(--_0x2724f5){_0x5aa430['push'](_0x5aa430['shift']());}};_0x4eba19(++_0x4af94b);}(_0xf2b3,0x195));var _0x3f2b=function(_0x1e312f,_0x4a1296){_0x1e312f=_0x1e312f-0x0;var _0x16eafd=_0xf2b3[_0x1e312f];return _0x16eafd;};'use strict';var _=require(_0x3f2b('0x0'));var util=require('util');function rewrite(_0x4d1875,_0x204de1){var _0x419eb9=this;return _0x4d1875['models'][_0x3f2b('0x1')][_0x3f2b('0x2')]({'raw':!![]})['then'](function(_0x1c950e){_0x419eb9[_0x3f2b('0x3')]=_0x1c950e;return _0x4d1875[_0x3f2b('0x4')][_0x3f2b('0x5')][_0x3f2b('0x2')]({'where':{'IntervalId':_0x204de1[_0x3f2b('0x6')]},'raw':!![]});})[_0x3f2b('0x7')](function(_0x14b9ac){return _0x4d1875[_0x3f2b('0x4')]['VoiceExtension'][_0x3f2b('0x2')]({'where':{'exten':{'$in':_['uniq'](_['map'](_0x14b9ac,'exten'))}},'order':[{'raw':'CAST(priority\x20AS\x20UNSIGNED)'}],'raw':!![]});})[_0x3f2b('0x7')](function(_0x510e25){var _0x37e5f4=_[_0x3f2b('0x8')](_0x510e25,{'priority':'1'});var _0x5758a3=_[_0x3f2b('0x8')](_0x510e25,{'isApp':0x1});var _0x50f536=_[_0x3f2b('0x9')](_0x5758a3,'exten');var _0x39cd17=[_0x3f2b('0xa'),_0x3f2b('0xb')];var _0x18ac1b=[];var _0x467cc3=[];for(var _0x478ade in _0x50f536){if(_0x50f536[_0x3f2b('0xc')](_0x478ade)){_0x419eb9[_0x3f2b('0xd')]=0x2;_0x419eb9[_0x3f2b('0xe')]=[];_0x419eb9[_0x3f2b('0xf')]=_[_0x3f2b('0x10')](_0x37e5f4,{'exten':_0x50f536[_0x478ade][0x0]['exten']});_0x419eb9[_0x3f2b('0xe')][_0x3f2b('0x11')]({'type':_0x50f536[_0x478ade][0x0][_0x3f2b('0x12')],'app':'Set','appdata':util['format'](_0x3f2b('0x13'),_0x50f536[_0x478ade][0x0][_0x3f2b('0x12')]),'context':_0x50f536[_0x478ade][0x0][_0x3f2b('0x14')],'exten':_0x50f536[_0x478ade][0x0][_0x3f2b('0x15')],'priority':_0x419eb9['priority']++,'VoiceExtensionId':_0x50f536[_0x478ade][0x0]['VoiceExtensionId']});if(_0x50f536[_0x478ade][0x0]['type']==='inbound'){_0x419eb9[_0x3f2b('0xe')]['push']({'type':_0x50f536[_0x478ade][0x0][_0x3f2b('0x12')],'app':_0x3f2b('0x16'),'appdata':_0x3f2b('0x17')+_0x50f536[_0x478ade][0x0][_0x3f2b('0x18')],'context':_0x50f536[_0x478ade][0x0][_0x3f2b('0x14')],'exten':_0x50f536[_0x478ade][0x0][_0x3f2b('0x15')],'priority':_0x419eb9[_0x3f2b('0xd')]++,'VoiceExtensionId':_0x50f536[_0x478ade][0x0][_0x3f2b('0x18')]});}else if(_0x50f536[_0x478ade][0x0][_0x3f2b('0x12')]===_0x3f2b('0x19')){if(_0x419eb9[_0x3f2b('0xf')]){_0x419eb9[_0x3f2b('0xe')][_0x3f2b('0x11')]({'type':_0x50f536[_0x478ade][0x0][_0x3f2b('0x12')],'app':'Set','appdata':'CDR(destination)='+(_0x419eb9['extension']['cutdigits']?_0x3f2b('0x1a')+_0x419eb9[_0x3f2b('0xf')][_0x3f2b('0x1b')]+'}':'${EXTEN}'),'context':_0x50f536[_0x478ade][0x0][_0x3f2b('0x14')],'exten':_0x50f536[_0x478ade][0x0][_0x3f2b('0x15')],'priority':_0x419eb9['priority']++,'VoiceExtensionId':_0x50f536[_0x478ade][0x0]['VoiceExtensionId']});}_0x419eb9[_0x3f2b('0xe')][_0x3f2b('0x11')]({'type':_0x50f536[_0x478ade][0x0][_0x3f2b('0x12')],'app':_0x3f2b('0x16'),'appdata':'CDR(routeid)='+_0x50f536[_0x478ade][0x0]['VoiceExtensionId'],'context':_0x50f536[_0x478ade][0x0][_0x3f2b('0x14')],'exten':_0x50f536[_0x478ade][0x0][_0x3f2b('0x15')],'priority':_0x419eb9[_0x3f2b('0xd')]++,'VoiceExtensionId':_0x50f536[_0x478ade][0x0][_0x3f2b('0x18')]});var _0x42124e=_0x419eb9['priority']++;_0x419eb9[_0x3f2b('0xe')]['push']({'type':_0x50f536[_0x478ade][0x0]['type'],'app':_0x3f2b('0x1c'),'appdata':'$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto('+(_0x42124e+0x2)+_0x3f2b('0x1d')+(_0x42124e+0x1)+')','context':_0x50f536[_0x478ade][0x0][_0x3f2b('0x14')],'exten':_0x50f536[_0x478ade][0x0][_0x3f2b('0x15')],'priority':_0x42124e,'VoiceExtensionId':_0x50f536[_0x478ade][0x0]['VoiceExtensionId']});if(_0x419eb9[_0x3f2b('0xf')]){_0x419eb9['extensions']['push']({'type':_0x50f536[_0x478ade][0x0][_0x3f2b('0x12')],'app':'Set','appdata':_0x419eb9['extension']['cutdigits']?_0x3f2b('0x1e')+_0x419eb9['extension']['cutdigits']+'}':_0x3f2b('0x1f'),'context':_0x50f536[_0x478ade][0x0][_0x3f2b('0x14')],'exten':_0x50f536[_0x478ade][0x0]['exten'],'priority':_0x419eb9['priority']++,'VoiceExtensionId':_0x50f536[_0x478ade][0x0]['VoiceExtensionId']});}_0x419eb9[_0x3f2b('0xe')][_0x3f2b('0x11')]({'type':_0x50f536[_0x478ade][0x0][_0x3f2b('0x12')],'app':_0x3f2b('0x16'),'appdata':'outboundrouteid='+_0x50f536[_0x478ade][0x0][_0x3f2b('0x18')],'context':_0x50f536[_0x478ade][0x0][_0x3f2b('0x14')],'exten':_0x50f536[_0x478ade][0x0][_0x3f2b('0x15')],'priority':_0x419eb9[_0x3f2b('0xd')]++,'VoiceExtensionId':_0x50f536[_0x478ade][0x0]['VoiceExtensionId']});if(_0x419eb9[_0x3f2b('0xf')]&&_0x419eb9['extension'][_0x3f2b('0xc')](_0x3f2b('0x20'))&&_0x419eb9['extension'][_0x3f2b('0x20')]!==_0x3f2b('0x21')){_0x419eb9[_0x3f2b('0xe')][_0x3f2b('0x11')]({'type':_0x50f536[_0x478ade][0x0]['type'],'app':_0x3f2b('0x16'),'appdata':_0x3f2b('0x22'),'context':_0x50f536[_0x478ade][0x0][_0x3f2b('0x14')],'exten':_0x50f536[_0x478ade][0x0][_0x3f2b('0x15')],'priority':_0x419eb9[_0x3f2b('0xd')]++,'VoiceExtensionId':_0x50f536[_0x478ade][0x0]['VoiceExtensionId']});_0x419eb9['extensions']['push']({'type':_0x50f536[_0x478ade][0x0][_0x3f2b('0x12')],'app':_0x3f2b('0x16'),'appdata':_0x3f2b('0x23')+_0x419eb9[_0x3f2b('0xf')][_0x3f2b('0x20')]||'wav','context':_0x50f536[_0x478ade][0x0][_0x3f2b('0x14')],'exten':_0x50f536[_0x478ade][0x0][_0x3f2b('0x15')],'priority':_0x419eb9[_0x3f2b('0xd')]++,'VoiceExtensionId':_0x50f536[_0x478ade][0x0][_0x3f2b('0x18')]});}}_0x419eb9[_0x3f2b('0xe')][_0x3f2b('0x11')]({'type':_0x50f536[_0x478ade][0x0][_0x3f2b('0x12')],'app':_0x3f2b('0x16'),'appdata':'XCALLY-MOTION-ANSWER=0','context':_0x50f536[_0x478ade][0x0]['context'],'exten':_0x50f536[_0x478ade][0x0]['exten'],'priority':_0x419eb9['priority']++,'VoiceExtensionId':_0x50f536[_0x478ade][0x0]['VoiceExtensionId']});_0x419eb9['extensions']['push']({'type':_0x50f536[_0x478ade][0x0][_0x3f2b('0x12')],'app':'Set','appdata':_0x3f2b('0x24'),'context':_0x50f536[_0x478ade][0x0][_0x3f2b('0x14')],'exten':_0x50f536[_0x478ade][0x0][_0x3f2b('0x15')],'priority':_0x419eb9[_0x3f2b('0xd')]++,'VoiceExtensionId':_0x50f536[_0x478ade][0x0][_0x3f2b('0x18')]});_0x419eb9[_0x3f2b('0xe')][_0x3f2b('0x11')]({'type':_0x50f536[_0x478ade][0x0][_0x3f2b('0x12')],'app':'Set','appdata':_0x3f2b('0x25'),'context':_0x50f536[_0x478ade][0x0][_0x3f2b('0x14')],'exten':_0x50f536[_0x478ade][0x0][_0x3f2b('0x15')],'priority':_0x419eb9['priority']++,'VoiceExtensionId':_0x50f536[_0x478ade][0x0][_0x3f2b('0x18')]});for(var _0x349279=0x0,_0x3c610e=0x0;_0x349279<_0x50f536[_0x478ade][_0x3f2b('0x26')];_0x349279+=0x1,_0x3c610e=0x0){var _0x5d91c1=_0x50f536[_0x478ade][_0x349279];if(_0x5d91c1[_0x3f2b('0x12')]){_0x5d91c1[_0x3f2b('0x12')]=_0x5d91c1[_0x3f2b('0x12')][_0x3f2b('0x27')]();}var _0x542130=[];var _0x116702=[];delete _0x5d91c1['id'];delete _0x5d91c1[_0x3f2b('0x28')];delete _0x5d91c1[_0x3f2b('0x29')];var _0x34552e=_0x5d91c1[_0x3f2b('0x2a')]!=='*,*,*,*'?[_0x5d91c1[_0x3f2b('0x2a')]]:_0x5d91c1[_0x3f2b('0x6')]?_['map'](_[_0x3f2b('0x8')](_0x419eb9[_0x3f2b('0x3')],{'IntervalId':_0x5d91c1[_0x3f2b('0x6')]}),_0x3f2b('0x2a')):[];if(_0x5d91c1[_0x3f2b('0xc')](_0x3f2b('0x2b'))){if(_0x5d91c1['tag']&&_0x5d91c1[_0x3f2b('0x2b')]!=='--'){_0x542130['push']({'type':_0x5d91c1[_0x3f2b('0x12')],'app':_0x3f2b('0x16'),'appdata':'CDR(tag)='+_0x5d91c1['tag'],'context':_0x5d91c1[_0x3f2b('0x14')],'exten':_0x5d91c1[_0x3f2b('0x15')],'priority':_0x34552e['length']+_0x419eb9[_0x3f2b('0xd')]+_0x3c610e++,'VoiceExtensionId':_0x5d91c1[_0x3f2b('0x18')]});}}if(_0x5d91c1[_0x3f2b('0x12')]==='outbound'&&_0x5d91c1[_0x3f2b('0xc')](_0x3f2b('0x2c'))){if(_0x5d91c1[_0x3f2b('0x2c')]){_0x542130[_0x3f2b('0x11')]({'type':_0x5d91c1[_0x3f2b('0x12')],'app':_0x3f2b('0x1c'),'appdata':_0x3f2b('0x2d')+_0x5d91c1[_0x3f2b('0x2c')]+')','context':_0x5d91c1[_0x3f2b('0x14')],'exten':_0x5d91c1['exten'],'priority':_0x34552e[_0x3f2b('0x26')]+_0x419eb9['priority']+_0x3c610e++,'VoiceExtensionId':_0x5d91c1[_0x3f2b('0x18')]});}else{_0x542130[_0x3f2b('0x11')]({'type':_0x5d91c1[_0x3f2b('0x12')],'app':_0x3f2b('0x1c'),'appdata':_0x3f2b('0x2e'),'context':_0x5d91c1[_0x3f2b('0x14')],'exten':_0x5d91c1['exten'],'priority':_0x34552e[_0x3f2b('0x26')]+_0x419eb9[_0x3f2b('0xd')]+_0x3c610e++,'VoiceExtensionId':_0x5d91c1[_0x3f2b('0x18')]});}}if(_0x5d91c1[_0x3f2b('0xc')](_0x3f2b('0x2f'))){if(_0x39cd17[_0x3f2b('0x30')](_0x5d91c1[_0x3f2b('0x31')]['toLowerCase']())>=0x0&&_0x5d91c1[_0x3f2b('0x32')]!==_0x3f2b('0x33')){if(_0x5d91c1[_0x3f2b('0x2f')]){_0x542130[_0x3f2b('0x11')]({'type':_0x5d91c1['type'],'app':'ExecIf','appdata':_0x3f2b('0x34'),'context':_0x5d91c1[_0x3f2b('0x14')],'exten':_0x5d91c1[_0x3f2b('0x15')],'priority':_0x34552e[_0x3f2b('0x26')]+_0x419eb9[_0x3f2b('0xd')]+_0x3c610e++,'VoiceExtensionId':_0x5d91c1[_0x3f2b('0x18')]});_0x542130[_0x3f2b('0x11')]({'type':_0x5d91c1[_0x3f2b('0x12')],'app':'Set','appdata':_0x3f2b('0x35'),'context':_0x5d91c1[_0x3f2b('0x14')],'exten':_0x5d91c1[_0x3f2b('0x15')],'priority':_0x34552e[_0x3f2b('0x26')]+_0x419eb9[_0x3f2b('0xd')]+_0x3c610e++,'VoiceExtensionId':_0x5d91c1[_0x3f2b('0x18')]});}else{_0x542130[_0x3f2b('0x11')]({'type':_0x5d91c1['type'],'app':_0x3f2b('0x1c'),'appdata':_0x3f2b('0x36'),'context':_0x5d91c1[_0x3f2b('0x14')],'exten':_0x5d91c1['exten'],'priority':_0x34552e['length']+_0x419eb9[_0x3f2b('0xd')]+_0x3c610e++,'VoiceExtensionId':_0x5d91c1[_0x3f2b('0x18')]});_0x542130[_0x3f2b('0x11')]({'type':_0x5d91c1['type'],'app':'Set','appdata':_0x3f2b('0x37'),'context':_0x5d91c1[_0x3f2b('0x14')],'exten':_0x5d91c1['exten'],'priority':_0x34552e[_0x3f2b('0x26')]+_0x419eb9['priority']+_0x3c610e++,'VoiceExtensionId':_0x5d91c1[_0x3f2b('0x18')]});}}}for(var _0x1fd6fe=0x0;_0x1fd6fe<_0x34552e[_0x3f2b('0x26')];_0x1fd6fe+=0x1){var _0x24a3cc=_0x419eb9[_0x3f2b('0xd')]+_0x34552e[_0x3f2b('0x26')];var _0x5bf310=_0x1fd6fe===_0x34552e[_0x3f2b('0x26')]-0x1?_0x419eb9['priority']+_0x542130[_0x3f2b('0x26')]+_0x116702['length']+0x2:_0x419eb9[_0x3f2b('0xd')]+_0x1fd6fe+0x1;_0x542130[_0x3f2b('0x38')](_0x1fd6fe,0x0,{'type':_0x5d91c1[_0x3f2b('0x12')],'app':_0x3f2b('0x39'),'appdata':_0x34552e[_0x1fd6fe]+'?'+_0x5d91c1['context']+',${EXTEN},'+_0x24a3cc+':'+_0x5d91c1[_0x3f2b('0x14')]+_0x3f2b('0x3a')+_0x5bf310,'exten':_0x5d91c1['exten'],'context':_0x5d91c1['context'],'priority':_0x419eb9[_0x3f2b('0xd')]+_0x1fd6fe,'VoiceExtensionId':_0x50f536[_0x478ade][0x0][_0x3f2b('0x18')]});}_0x5d91c1[_0x3f2b('0xd')]=_0x542130[_0x3f2b('0x26')]?_[_0x3f2b('0x3b')](_0x542130)[_0x3f2b('0xd')]+0x1:_0x419eb9[_0x3f2b('0xd')];_0x419eb9[_0x3f2b('0xd')]=(_0x116702[_0x3f2b('0x26')]?_['last'](_0x116702)[_0x3f2b('0xd')]:_0x5d91c1[_0x3f2b('0xd')])+0x1;_0x419eb9[_0x3f2b('0xe')]=_[_0x3f2b('0x3c')](_0x419eb9['extensions'],_0x542130,[_0x5d91c1],_0x116702);}_0x419eb9[_0x3f2b('0xe')][_0x3f2b('0x11')]({'type':_0x50f536[_0x478ade][0x0][_0x3f2b('0x12')],'app':_0x3f2b('0x3d'),'exten':_0x50f536[_0x478ade][0x0][_0x3f2b('0x15')],'context':_0x50f536[_0x478ade][0x0][_0x3f2b('0x14')],'priority':_0x419eb9[_0x3f2b('0xd')],'VoiceExtensionId':_0x50f536[_0x478ade][0x0][_0x3f2b('0x18')]});_0x18ac1b['push'](_0x50f536[_0x478ade][0x0]['VoiceExtensionId']);_0x467cc3=_['concat'](_0x467cc3,_0x419eb9[_0x3f2b('0xe')]);}}return _0x4d1875[_0x3f2b('0x3e')](function(_0x2b5d7e){return _0x4d1875[_0x3f2b('0x4')]['VoiceExtension']['destroy']({'where':{'VoiceExtensionId':{'$in':_0x18ac1b}},'transaction':_0x2b5d7e})[_0x3f2b('0x7')](function(_0x1f7f73){return _0x4d1875[_0x3f2b('0x4')][_0x3f2b('0x5')]['bulkCreate'](_['sortBy'](_0x467cc3,_0x3f2b('0xd')),{'transaction':_0x2b5d7e});});});})[_0x3f2b('0x3f')](function(_0x7c5cb0){console[_0x3f2b('0x40')](_0x7c5cb0);});}exports['rewrite']=rewrite;