Built motion from commit c738b9ac.|2.6.25
[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 _0x4001=['app','appType','custom','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','splice','GotoIfTime',',${EXTEN},','last','concat','Hangup','transaction','destroy','bulkCreate','catch','rewrite','lodash','util','models','Interval','findAll','then','intervals','VoiceExtension','uniq','map','CAST(priority\x20AS\x20UNSIGNED)','filter','groupBy','exten','queue','hasOwnProperty','priority','extensions','extension','find','type','Set','format','CDR(type)=%s','context','VoiceExtensionId','push','CDR(routeid)=','CDR(destination)=','cutdigits','${EXTEN:','${EXTEN}','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=noprefix','outboundrouteid=','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','wav','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','length','toLowerCase','createdAt','updatedAt','*,*,*,*','interval','IntervalId','tag','CDR(tag)=','callerID','ExecIf','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(CALLERID(all)=','answer','indexOf'];(function(_0xea81a1,_0xb28e9e){var _0x2cd030=function(_0x3f8ea5){while(--_0x3f8ea5){_0xea81a1['push'](_0xea81a1['shift']());}};_0x2cd030(++_0xb28e9e);}(_0x4001,0x134));var _0x1400=function(_0x3f6107,_0x514051){_0x3f6107=_0x3f6107-0x0;var _0x4f6b8f=_0x4001[_0x3f6107];return _0x4f6b8f;};'use strict';var _=require(_0x1400('0x0'));var util=require(_0x1400('0x1'));function rewrite(_0x104ff7,_0x4691f7){var _0x5f5cde=this;return _0x104ff7[_0x1400('0x2')][_0x1400('0x3')][_0x1400('0x4')]({'raw':!![]})[_0x1400('0x5')](function(_0xf80a67){_0x5f5cde[_0x1400('0x6')]=_0xf80a67;return _0x104ff7['models'][_0x1400('0x7')][_0x1400('0x4')]({'where':{'IntervalId':_0x4691f7['IntervalId']},'raw':!![]});})[_0x1400('0x5')](function(_0x1108f7){return _0x104ff7[_0x1400('0x2')]['VoiceExtension']['findAll']({'where':{'exten':{'$in':_[_0x1400('0x8')](_[_0x1400('0x9')](_0x1108f7,'exten'))}},'order':[{'raw':_0x1400('0xa')}],'raw':!![]});})['then'](function(_0x1b2833){var _0x3957e9=_['filter'](_0x1b2833,{'priority':'1'});var _0x544d4c=_[_0x1400('0xb')](_0x1b2833,{'isApp':0x1});var _0xc76f05=_[_0x1400('0xc')](_0x544d4c,_0x1400('0xd'));var _0x4f955d=[_0x1400('0xe'),'playback'];var _0x5a05f9=[];var _0x12a2bd=[];for(var _0x53d70e in _0xc76f05){if(_0xc76f05[_0x1400('0xf')](_0x53d70e)){_0x5f5cde[_0x1400('0x10')]=0x2;_0x5f5cde[_0x1400('0x11')]=[];_0x5f5cde[_0x1400('0x12')]=_[_0x1400('0x13')](_0x3957e9,{'exten':_0xc76f05[_0x53d70e][0x0]['exten']});_0x5f5cde['extensions']['push']({'type':_0xc76f05[_0x53d70e][0x0][_0x1400('0x14')],'app':_0x1400('0x15'),'appdata':util[_0x1400('0x16')](_0x1400('0x17'),_0xc76f05[_0x53d70e][0x0][_0x1400('0x14')]),'context':_0xc76f05[_0x53d70e][0x0][_0x1400('0x18')],'exten':_0xc76f05[_0x53d70e][0x0][_0x1400('0xd')],'priority':_0x5f5cde[_0x1400('0x10')]++,'VoiceExtensionId':_0xc76f05[_0x53d70e][0x0][_0x1400('0x19')]});if(_0xc76f05[_0x53d70e][0x0][_0x1400('0x14')]==='inbound'){_0x5f5cde['extensions'][_0x1400('0x1a')]({'type':_0xc76f05[_0x53d70e][0x0][_0x1400('0x14')],'app':'Set','appdata':_0x1400('0x1b')+_0xc76f05[_0x53d70e][0x0]['VoiceExtensionId'],'context':_0xc76f05[_0x53d70e][0x0]['context'],'exten':_0xc76f05[_0x53d70e][0x0][_0x1400('0xd')],'priority':_0x5f5cde['priority']++,'VoiceExtensionId':_0xc76f05[_0x53d70e][0x0][_0x1400('0x19')]});}else if(_0xc76f05[_0x53d70e][0x0][_0x1400('0x14')]==='outbound'){if(_0x5f5cde[_0x1400('0x12')]){_0x5f5cde[_0x1400('0x11')][_0x1400('0x1a')]({'type':_0xc76f05[_0x53d70e][0x0][_0x1400('0x14')],'app':_0x1400('0x15'),'appdata':_0x1400('0x1c')+(_0x5f5cde[_0x1400('0x12')][_0x1400('0x1d')]?_0x1400('0x1e')+_0x5f5cde[_0x1400('0x12')][_0x1400('0x1d')]+'}':_0x1400('0x1f')),'context':_0xc76f05[_0x53d70e][0x0][_0x1400('0x18')],'exten':_0xc76f05[_0x53d70e][0x0][_0x1400('0xd')],'priority':_0x5f5cde['priority']++,'VoiceExtensionId':_0xc76f05[_0x53d70e][0x0][_0x1400('0x19')]});}_0x5f5cde['extensions']['push']({'type':_0xc76f05[_0x53d70e][0x0]['type'],'app':'Set','appdata':_0x1400('0x1b')+_0xc76f05[_0x53d70e][0x0][_0x1400('0x19')],'context':_0xc76f05[_0x53d70e][0x0][_0x1400('0x18')],'exten':_0xc76f05[_0x53d70e][0x0][_0x1400('0xd')],'priority':_0x5f5cde[_0x1400('0x10')]++,'VoiceExtensionId':_0xc76f05[_0x53d70e][0x0][_0x1400('0x19')]});var _0x4ebb5e=_0x5f5cde[_0x1400('0x10')]++;_0x5f5cde[_0x1400('0x11')][_0x1400('0x1a')]({'type':_0xc76f05[_0x53d70e][0x0]['type'],'app':'ExecIf','appdata':_0x1400('0x20')+(_0x4ebb5e+0x2)+_0x1400('0x21')+(_0x4ebb5e+0x1)+')','context':_0xc76f05[_0x53d70e][0x0]['context'],'exten':_0xc76f05[_0x53d70e][0x0][_0x1400('0xd')],'priority':_0x4ebb5e,'VoiceExtensionId':_0xc76f05[_0x53d70e][0x0][_0x1400('0x19')]});if(_0x5f5cde[_0x1400('0x12')]){_0x5f5cde[_0x1400('0x11')][_0x1400('0x1a')]({'type':_0xc76f05[_0x53d70e][0x0]['type'],'app':_0x1400('0x15'),'appdata':_0x5f5cde[_0x1400('0x12')][_0x1400('0x1d')]?'CDR(prefix)=${EXTEN:0:'+_0x5f5cde[_0x1400('0x12')][_0x1400('0x1d')]+'}':_0x1400('0x22'),'context':_0xc76f05[_0x53d70e][0x0][_0x1400('0x18')],'exten':_0xc76f05[_0x53d70e][0x0][_0x1400('0xd')],'priority':_0x5f5cde['priority']++,'VoiceExtensionId':_0xc76f05[_0x53d70e][0x0][_0x1400('0x19')]});}_0x5f5cde['extensions'][_0x1400('0x1a')]({'type':_0xc76f05[_0x53d70e][0x0][_0x1400('0x14')],'app':_0x1400('0x15'),'appdata':_0x1400('0x23')+_0xc76f05[_0x53d70e][0x0][_0x1400('0x19')],'context':_0xc76f05[_0x53d70e][0x0]['context'],'exten':_0xc76f05[_0x53d70e][0x0][_0x1400('0xd')],'priority':_0x5f5cde[_0x1400('0x10')]++,'VoiceExtensionId':_0xc76f05[_0x53d70e][0x0]['VoiceExtensionId']});if(_0x5f5cde['extension']&&_0x5f5cde['extension'][_0x1400('0xf')](_0x1400('0x24'))&&_0x5f5cde[_0x1400('0x12')][_0x1400('0x24')]!==_0x1400('0x25')){_0x5f5cde['extensions'][_0x1400('0x1a')]({'type':_0xc76f05[_0x53d70e][0x0][_0x1400('0x14')],'app':_0x1400('0x15'),'appdata':_0x1400('0x26'),'context':_0xc76f05[_0x53d70e][0x0][_0x1400('0x18')],'exten':_0xc76f05[_0x53d70e][0x0][_0x1400('0xd')],'priority':_0x5f5cde[_0x1400('0x10')]++,'VoiceExtensionId':_0xc76f05[_0x53d70e][0x0]['VoiceExtensionId']});_0x5f5cde[_0x1400('0x11')][_0x1400('0x1a')]({'type':_0xc76f05[_0x53d70e][0x0][_0x1400('0x14')],'app':_0x1400('0x15'),'appdata':_0x1400('0x27')+_0x5f5cde[_0x1400('0x12')][_0x1400('0x24')]||_0x1400('0x28'),'context':_0xc76f05[_0x53d70e][0x0]['context'],'exten':_0xc76f05[_0x53d70e][0x0]['exten'],'priority':_0x5f5cde[_0x1400('0x10')]++,'VoiceExtensionId':_0xc76f05[_0x53d70e][0x0][_0x1400('0x19')]});}}_0x5f5cde[_0x1400('0x11')][_0x1400('0x1a')]({'type':_0xc76f05[_0x53d70e][0x0][_0x1400('0x14')],'app':_0x1400('0x15'),'appdata':'XCALLY-MOTION-ANSWER=0','context':_0xc76f05[_0x53d70e][0x0]['context'],'exten':_0xc76f05[_0x53d70e][0x0][_0x1400('0xd')],'priority':_0x5f5cde[_0x1400('0x10')]++,'VoiceExtensionId':_0xc76f05[_0x53d70e][0x0]['VoiceExtensionId']});_0x5f5cde[_0x1400('0x11')]['push']({'type':_0xc76f05[_0x53d70e][0x0][_0x1400('0x14')],'app':_0x1400('0x15'),'appdata':_0x1400('0x29'),'context':_0xc76f05[_0x53d70e][0x0][_0x1400('0x18')],'exten':_0xc76f05[_0x53d70e][0x0][_0x1400('0xd')],'priority':_0x5f5cde[_0x1400('0x10')]++,'VoiceExtensionId':_0xc76f05[_0x53d70e][0x0][_0x1400('0x19')]});_0x5f5cde[_0x1400('0x11')][_0x1400('0x1a')]({'type':_0xc76f05[_0x53d70e][0x0][_0x1400('0x14')],'app':_0x1400('0x15'),'appdata':_0x1400('0x2a'),'context':_0xc76f05[_0x53d70e][0x0]['context'],'exten':_0xc76f05[_0x53d70e][0x0][_0x1400('0xd')],'priority':_0x5f5cde[_0x1400('0x10')]++,'VoiceExtensionId':_0xc76f05[_0x53d70e][0x0][_0x1400('0x19')]});for(var _0x3768c1=0x0,_0x36e07a=0x0;_0x3768c1<_0xc76f05[_0x53d70e][_0x1400('0x2b')];_0x3768c1+=0x1,_0x36e07a=0x0){var _0xabd44b=_0xc76f05[_0x53d70e][_0x3768c1];if(_0xabd44b['type']){_0xabd44b[_0x1400('0x14')]=_0xabd44b[_0x1400('0x14')][_0x1400('0x2c')]();}var _0x3cfb58=[];var _0x30fe7e=[];delete _0xabd44b['id'];delete _0xabd44b[_0x1400('0x2d')];delete _0xabd44b[_0x1400('0x2e')];var _0x11ef57=_0xabd44b['interval']!==_0x1400('0x2f')?[_0xabd44b[_0x1400('0x30')]]:_0xabd44b[_0x1400('0x31')]?_[_0x1400('0x9')](_[_0x1400('0xb')](_0x5f5cde[_0x1400('0x6')],{'IntervalId':_0xabd44b[_0x1400('0x31')]}),_0x1400('0x30')):[];if(_0xabd44b[_0x1400('0xf')]('tag')){if(_0xabd44b[_0x1400('0x32')]&&_0xabd44b['tag']!=='--'){_0x3cfb58[_0x1400('0x1a')]({'type':_0xabd44b[_0x1400('0x14')],'app':_0x1400('0x15'),'appdata':_0x1400('0x33')+_0xabd44b[_0x1400('0x32')],'context':_0xabd44b['context'],'exten':_0xabd44b[_0x1400('0xd')],'priority':_0x11ef57[_0x1400('0x2b')]+_0x5f5cde[_0x1400('0x10')]+_0x36e07a++,'VoiceExtensionId':_0xabd44b[_0x1400('0x19')]});}}if(_0xabd44b[_0x1400('0x14')]==='outbound'&&_0xabd44b[_0x1400('0xf')](_0x1400('0x34'))){if(_0xabd44b[_0x1400('0x34')]){_0x3cfb58[_0x1400('0x1a')]({'type':_0xabd44b[_0x1400('0x14')],'app':_0x1400('0x35'),'appdata':_0x1400('0x36')+_0xabd44b[_0x1400('0x34')]+')','context':_0xabd44b[_0x1400('0x18')],'exten':_0xabd44b[_0x1400('0xd')],'priority':_0x11ef57['length']+_0x5f5cde[_0x1400('0x10')]+_0x36e07a++,'VoiceExtensionId':_0xabd44b[_0x1400('0x19')]});}else{_0x3cfb58[_0x1400('0x1a')]({'type':_0xabd44b['type'],'app':_0x1400('0x35'),'appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No\x20number\x20available)','context':_0xabd44b[_0x1400('0x18')],'exten':_0xabd44b[_0x1400('0xd')],'priority':_0x11ef57[_0x1400('0x2b')]+_0x5f5cde[_0x1400('0x10')]+_0x36e07a++,'VoiceExtensionId':_0xabd44b[_0x1400('0x19')]});}}if(_0xabd44b[_0x1400('0xf')](_0x1400('0x37'))){if(_0x4f955d[_0x1400('0x38')](_0xabd44b[_0x1400('0x39')][_0x1400('0x2c')]())>=0x0&&_0xabd44b[_0x1400('0x3a')]!==_0x1400('0x3b')){if(_0xabd44b[_0x1400('0x37')]){_0x3cfb58[_0x1400('0x1a')]({'type':_0xabd44b[_0x1400('0x14')],'app':_0x1400('0x35'),'appdata':'$[${XCALLY-MOTION-ANSWER}=0]?Answer','context':_0xabd44b[_0x1400('0x18')],'exten':_0xabd44b[_0x1400('0xd')],'priority':_0x11ef57[_0x1400('0x2b')]+_0x5f5cde[_0x1400('0x10')]+_0x36e07a++,'VoiceExtensionId':_0xabd44b[_0x1400('0x19')]});_0x3cfb58[_0x1400('0x1a')]({'type':_0xabd44b['type'],'app':_0x1400('0x15'),'appdata':_0x1400('0x3c'),'context':_0xabd44b[_0x1400('0x18')],'exten':_0xabd44b[_0x1400('0xd')],'priority':_0x11ef57[_0x1400('0x2b')]+_0x5f5cde['priority']+_0x36e07a++,'VoiceExtensionId':_0xabd44b[_0x1400('0x19')]});}else{_0x3cfb58[_0x1400('0x1a')]({'type':_0xabd44b['type'],'app':'ExecIf','appdata':_0x1400('0x3d'),'context':_0xabd44b['context'],'exten':_0xabd44b[_0x1400('0xd')],'priority':_0x11ef57['length']+_0x5f5cde[_0x1400('0x10')]+_0x36e07a++,'VoiceExtensionId':_0xabd44b['VoiceExtensionId']});_0x3cfb58['push']({'type':_0xabd44b[_0x1400('0x14')],'app':_0x1400('0x15'),'appdata':'XCALLY-MOTION-PROGRESS=1','context':_0xabd44b['context'],'exten':_0xabd44b[_0x1400('0xd')],'priority':_0x11ef57[_0x1400('0x2b')]+_0x5f5cde['priority']+_0x36e07a++,'VoiceExtensionId':_0xabd44b[_0x1400('0x19')]});}}}for(var _0x558d69=0x0;_0x558d69<_0x11ef57[_0x1400('0x2b')];_0x558d69+=0x1){var _0x240555=_0x5f5cde[_0x1400('0x10')]+_0x11ef57[_0x1400('0x2b')];var _0x5b42fd=_0x558d69===_0x11ef57[_0x1400('0x2b')]-0x1?_0x5f5cde[_0x1400('0x10')]+_0x3cfb58[_0x1400('0x2b')]+_0x30fe7e[_0x1400('0x2b')]+0x2:_0x5f5cde[_0x1400('0x10')]+_0x558d69+0x1;_0x3cfb58[_0x1400('0x3e')](_0x558d69,0x0,{'type':_0xabd44b[_0x1400('0x14')],'app':_0x1400('0x3f'),'appdata':_0x11ef57[_0x558d69]+'?'+_0xabd44b[_0x1400('0x18')]+',${EXTEN},'+_0x240555+':'+_0xabd44b[_0x1400('0x18')]+_0x1400('0x40')+_0x5b42fd,'exten':_0xabd44b[_0x1400('0xd')],'context':_0xabd44b[_0x1400('0x18')],'priority':_0x5f5cde[_0x1400('0x10')]+_0x558d69,'VoiceExtensionId':_0xc76f05[_0x53d70e][0x0][_0x1400('0x19')]});}_0xabd44b['priority']=_0x3cfb58[_0x1400('0x2b')]?_[_0x1400('0x41')](_0x3cfb58)[_0x1400('0x10')]+0x1:_0x5f5cde['priority'];_0x5f5cde[_0x1400('0x10')]=(_0x30fe7e[_0x1400('0x2b')]?_['last'](_0x30fe7e)[_0x1400('0x10')]:_0xabd44b['priority'])+0x1;_0x5f5cde[_0x1400('0x11')]=_[_0x1400('0x42')](_0x5f5cde['extensions'],_0x3cfb58,[_0xabd44b],_0x30fe7e);}_0x5f5cde[_0x1400('0x11')][_0x1400('0x1a')]({'type':_0xc76f05[_0x53d70e][0x0]['type'],'app':_0x1400('0x43'),'exten':_0xc76f05[_0x53d70e][0x0][_0x1400('0xd')],'context':_0xc76f05[_0x53d70e][0x0][_0x1400('0x18')],'priority':_0x5f5cde[_0x1400('0x10')],'VoiceExtensionId':_0xc76f05[_0x53d70e][0x0][_0x1400('0x19')]});_0x5a05f9[_0x1400('0x1a')](_0xc76f05[_0x53d70e][0x0]['VoiceExtensionId']);_0x12a2bd=_[_0x1400('0x42')](_0x12a2bd,_0x5f5cde[_0x1400('0x11')]);}}return _0x104ff7[_0x1400('0x44')](function(_0x406d8a){return _0x104ff7['models'][_0x1400('0x7')][_0x1400('0x45')]({'where':{'VoiceExtensionId':{'$in':_0x5a05f9}},'transaction':_0x406d8a})['then'](function(_0x5ba367){return _0x104ff7['models']['VoiceExtension'][_0x1400('0x46')](_['sortBy'](_0x12a2bd,'priority'),{'transaction':_0x406d8a});});});})[_0x1400('0x47')](function(_0x5b63d7){console['error'](_0x5b63d7);});}exports[_0x1400('0x48')]=rewrite;