Built motion from commit 5ae82ce5.|2.6.7
[motion2.git] / server / api / voiceExtension / voiceExtension.model.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 _0x5e17=['CDR(type)=outbound','outbound','CDR(routeAlias)=','No\x20alias\x20set','CDR(destination)=','cutdigits','${EXTEN}','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=noprefix','XCALLY-MOTION-PROGRESS=0','outboundrouteid=','hasOwnProperty','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','trunk','timeout','options','url','split','length','name','param','phone','prefix','${EXTEN:','SIP','join','U(xcally-mixmonitor-context)','isEmpty','Interval','findAll','interval','IntervalId','*,*,*,*','intervals','map','filter','toLowerCase','tag','CDR(tag)=','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):','callerID','Set(CALLERID(all)=','NoOp(No\x20number\x20available)','answer','queue','playback','includes','app','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','splice',',${EXTEN},','outboundDial','appdata','priority','concat','last','define','VoiceExtension','voice_extensions','then','Hangup','lodash','type','Set','CDR(type)=','context','exten','alias','NoOp','inbound','push','CDR(routeid)=','MONITOR_OPTIONS=ab'];(function(_0x265e0e,_0x38b2bb){var _0x518157=function(_0x1e3eab){while(--_0x1e3eab){_0x265e0e['push'](_0x265e0e['shift']());}};_0x518157(++_0x38b2bb);}(_0x5e17,0x17a));var _0x75e1=function(_0x33a413,_0xce31ae){_0x33a413=_0x33a413-0x0;var _0x439361=_0x5e17[_0x33a413];return _0x439361;};'use strict';var _=require(_0x75e1('0x0'));var attributes=require('./voiceExtension.attributes');module['exports']=function(_0x4c7527){var _0x55bd67=_0x4c7527['models'];function _0x43afe6(_0x25fc55){var _0x23ec49=0x2;var _0x1e8819=[{'type':_0x25fc55[_0x75e1('0x1')],'app':_0x75e1('0x2'),'appdata':_0x75e1('0x3')+_0x25fc55[_0x75e1('0x1')],'context':_0x25fc55[_0x75e1('0x4')],'exten':_0x25fc55[_0x75e1('0x5')],'priority':_0x23ec49++,'VoiceExtensionId':_0x25fc55['id']},{'type':_0x25fc55[_0x75e1('0x1')],'app':_0x25fc55[_0x75e1('0x6')]?_0x75e1('0x2'):_0x75e1('0x7'),'appdata':_0x25fc55[_0x75e1('0x6')]?'CDR(routeAlias)='+_0x25fc55[_0x75e1('0x6')]:'No\x20alias\x20set','context':_0x25fc55['context'],'exten':_0x25fc55[_0x75e1('0x5')],'priority':_0x23ec49++,'VoiceExtensionId':_0x25fc55['id']}];if(_0x25fc55[_0x75e1('0x1')]===_0x75e1('0x8')){_0x1e8819[_0x75e1('0x9')]({'type':_0x75e1('0x8'),'app':_0x75e1('0x2'),'appdata':_0x75e1('0xa')+_0x25fc55['id'],'context':_0x25fc55[_0x75e1('0x4')],'exten':_0x25fc55['exten'],'priority':_0x23ec49++,'VoiceExtensionId':_0x25fc55['id']});}_0x1e8819[_0x75e1('0x9')]({'type':_0x25fc55[_0x75e1('0x1')],'app':_0x75e1('0x2'),'appdata':'XCALLY-MOTION-ANSWER=0','context':_0x25fc55[_0x75e1('0x4')],'exten':_0x25fc55[_0x75e1('0x5')],'priority':_0x23ec49++,'VoiceExtensionId':_0x25fc55['id']},{'type':_0x25fc55[_0x75e1('0x1')],'app':_0x75e1('0x2'),'appdata':'XCALLY-MOTION-PROGRESS=0','context':_0x25fc55[_0x75e1('0x4')],'exten':_0x25fc55[_0x75e1('0x5')],'priority':_0x23ec49++,'VoiceExtensionId':_0x25fc55['id']},{'type':_0x25fc55[_0x75e1('0x1')],'app':_0x75e1('0x2'),'appdata':_0x75e1('0xb'),'context':_0x25fc55[_0x75e1('0x4')],'exten':_0x25fc55[_0x75e1('0x5')],'priority':_0x23ec49++,'VoiceExtensionId':_0x25fc55['id']});return _0x1e8819;}function _0x56c741(_0x4251ea){var _0x14dc9d=0x2;var _0x2128af=[{'type':'outbound','app':_0x75e1('0x2'),'appdata':_0x75e1('0xc'),'context':_0x4251ea['context'],'exten':_0x4251ea[_0x75e1('0x5')],'priority':_0x14dc9d++,'VoiceExtensionId':_0x4251ea['id']},{'type':_0x75e1('0xd'),'app':_0x4251ea[_0x75e1('0x6')]?'Set':_0x75e1('0x7'),'appdata':_0x4251ea[_0x75e1('0x6')]?_0x75e1('0xe')+_0x4251ea[_0x75e1('0x6')]:_0x75e1('0xf'),'context':_0x4251ea['context'],'exten':_0x4251ea[_0x75e1('0x5')],'priority':_0x14dc9d++,'VoiceExtensionId':_0x4251ea['id']},{'type':'outbound','app':_0x75e1('0x2'),'appdata':_0x75e1('0x10')+(_0x4251ea[_0x75e1('0x11')]?'${EXTEN:'+_0x4251ea['cutdigits']+'}':_0x75e1('0x12')),'context':_0x4251ea[_0x75e1('0x4')],'exten':_0x4251ea[_0x75e1('0x5')],'priority':_0x14dc9d++,'VoiceExtensionId':_0x4251ea['id']},{'type':_0x75e1('0xd'),'app':_0x75e1('0x2'),'appdata':_0x75e1('0xa')+_0x4251ea['id'],'context':_0x4251ea[_0x75e1('0x4')],'exten':_0x4251ea['exten'],'priority':_0x14dc9d++,'VoiceExtensionId':_0x4251ea['id']},{'type':_0x75e1('0xd'),'app':_0x75e1('0x13'),'appdata':_0x75e1('0x14')+(_0x14dc9d+0x2)+_0x75e1('0x15')+(_0x14dc9d+0x1)+')','context':_0x4251ea[_0x75e1('0x4')],'exten':_0x4251ea[_0x75e1('0x5')],'priority':_0x14dc9d++,'VoiceExtensionId':_0x4251ea['id']},{'type':_0x75e1('0xd'),'app':_0x75e1('0x2'),'appdata':_0x4251ea[_0x75e1('0x11')]?'CDR(prefix)=${EXTEN:0:'+_0x4251ea[_0x75e1('0x11')]+'}':_0x75e1('0x16'),'context':_0x4251ea[_0x75e1('0x4')],'exten':_0x4251ea['exten'],'priority':_0x14dc9d++,'VoiceExtensionId':_0x4251ea['id']},{'type':_0x75e1('0xd'),'app':'Set','appdata':'XCALLY-MOTION-ANSWER=0','context':_0x4251ea[_0x75e1('0x4')],'exten':_0x4251ea[_0x75e1('0x5')],'priority':_0x14dc9d++,'VoiceExtensionId':_0x4251ea['id']},{'type':_0x75e1('0xd'),'app':_0x75e1('0x2'),'appdata':_0x75e1('0x17'),'context':_0x4251ea['context'],'exten':_0x4251ea[_0x75e1('0x5')],'priority':_0x14dc9d++,'VoiceExtensionId':_0x4251ea['id']},{'type':_0x75e1('0xd'),'app':_0x75e1('0x2'),'appdata':'MONITOR_OPTIONS=ab','context':_0x4251ea[_0x75e1('0x4')],'exten':_0x4251ea[_0x75e1('0x5')],'priority':_0x14dc9d++,'VoiceExtensionId':_0x4251ea['id']},{'type':'outbound','app':_0x75e1('0x2'),'appdata':_0x75e1('0x18')+_0x4251ea['id'],'context':_0x4251ea[_0x75e1('0x4')],'exten':_0x4251ea[_0x75e1('0x5')],'priority':_0x14dc9d++,'VoiceExtensionId':_0x4251ea['id']}];if(_0x4251ea[_0x75e1('0x19')]('recordingFormat')&&_0x4251ea[_0x75e1('0x1a')]!==_0x75e1('0x1b')){_0x2128af['push']({'type':_0x75e1('0xd'),'app':_0x75e1('0x2'),'appdata':_0x75e1('0x1c'),'context':_0x4251ea[_0x75e1('0x4')],'exten':_0x4251ea[_0x75e1('0x5')],'priority':_0x14dc9d++,'VoiceExtensionId':_0x4251ea['id']},{'type':_0x75e1('0xd'),'app':'Set','appdata':_0x75e1('0x1d')+_0x4251ea['recordingFormat']||'wav','context':_0x4251ea[_0x75e1('0x4')],'exten':_0x4251ea[_0x75e1('0x5')],'priority':_0x14dc9d++,'VoiceExtensionId':_0x4251ea['id']});}return _0x2128af;}function _0xb5b393(_0x33229d,_0x3682e5){var _0x81c069=[{'name':_0x75e1('0x1e'),'param':0x0},{'name':_0x75e1('0x1f'),'param':0x1},{'name':_0x75e1('0x20'),'param':0x2},{'name':_0x75e1('0x21'),'param':0x3}];var _0x3a6840={};var _0x69520b=_0x3682e5[_0x75e1('0x22')](',');var _0x5779c8=[];for(var _0x2ec108=0x0;_0x2ec108<_0x81c069[_0x75e1('0x23')];_0x2ec108++){switch(_0x81c069[_0x2ec108][_0x75e1('0x24')]){case _0x75e1('0x1e'):_0x3a6840[_0x75e1('0x1e')]=_0x69520b[_0x81c069[_0x2ec108][_0x75e1('0x25')]]['split']('/')[0x1];_0x3a6840[_0x75e1('0x26')]=_0x69520b[_0x81c069[_0x2ec108][_0x75e1('0x25')]][_0x75e1('0x22')]('/')[0x2];_0x3a6840[_0x75e1('0x27')]=_0x3a6840[_0x75e1('0x26')]?_0x3a6840[_0x75e1('0x26')]['split']('$')[0x0]:undefined;_0x3a6840[_0x75e1('0x26')]=_0x33229d[_0x75e1('0x11')]?(_0x3a6840['prefix']||'')+_0x75e1('0x28')+_0x33229d[_0x75e1('0x11')]+'}':(_0x3a6840['prefix']||'')+_0x75e1('0x12');_0x5779c8[_0x81c069[_0x2ec108][_0x75e1('0x25')]]=[_0x75e1('0x29'),_0x3a6840[_0x75e1('0x1e')],_0x3a6840[_0x75e1('0x26')]][_0x75e1('0x2a')]('/');break;case _0x75e1('0x20'):_0x3a6840['options']=_0x69520b[_0x81c069[_0x2ec108][_0x75e1('0x25')]];if(_0x33229d[_0x75e1('0x1a')]!=='none'){if(_0x3a6840[_0x75e1('0x20')]['indexOf'](_0x75e1('0x2b'))<0x0){_0x3a6840[_0x75e1('0x20')]+='U(xcally-mixmonitor-context)';}}else{_0x3a6840['options']=_0x3a6840[_0x75e1('0x20')]['replace'](_0x75e1('0x2b'),'');}_0x5779c8[_0x81c069[_0x2ec108][_0x75e1('0x25')]]=_0x3a6840[_0x75e1('0x20')];break;default:_0x5779c8[_0x81c069[_0x2ec108][_0x75e1('0x25')]]=_0x69520b[_0x81c069[_0x2ec108]['param']];}}return _0x5779c8[_0x75e1('0x2a')](',');}function _0x28e964(_0x17f1de,_0x12137b,_0xb50d2e){return new Promise(function(_0x4f9f13,_0x10c0b0){var _0x221c97=[];if(_[_0x75e1('0x2c')](_0x12137b))return _0x4f9f13(_0x221c97);_0x55bd67[_0x75e1('0x2d')][_0x75e1('0x2e')]({'attributes':['id',_0x75e1('0x2f'),_0x75e1('0x30')],'raw':!![]})['then'](function(_0x3b377b){for(var _0x573c38=0x0,_0x24ddce=0x0;_0x573c38<_0x12137b[_0x75e1('0x23')];_0x573c38++,_0x24ddce=0x0){var _0x127b6e=_0x12137b[_0x573c38];var _0x5501d6=[];var _0x239bcd=[];delete _0x127b6e['id'];if(_0x127b6e['interval']!==_0x75e1('0x31')){_0x127b6e[_0x75e1('0x32')]=[_0x127b6e[_0x75e1('0x2f')]];}else{_0x127b6e[_0x75e1('0x32')]=_0x127b6e['IntervalId']?_[_0x75e1('0x33')](_[_0x75e1('0x34')](_0x3b377b,{'IntervalId':_0x127b6e[_0x75e1('0x30')]}),_0x75e1('0x2f')):[];}_0x127b6e[_0x75e1('0x4')]=_0x17f1de[_0x75e1('0x4')];_0x127b6e[_0x75e1('0x5')]=_0x17f1de[_0x75e1('0x5')];if(_0x127b6e[_0x75e1('0x1')])_0x127b6e[_0x75e1('0x1')]=_0x127b6e[_0x75e1('0x1')][_0x75e1('0x35')]();if(_0x17f1de[_0x75e1('0x1')]===_0x75e1('0xd')){if(_0x127b6e['hasOwnProperty'](_0x75e1('0x36'))&&_0x127b6e[_0x75e1('0x36')]&&_0x127b6e[_0x75e1('0x36')]!=='--'){_0x5501d6[_0x75e1('0x9')]({'type':_0x127b6e['type']['toLowerCase'](),'app':'Set','appdata':_0x75e1('0x37')+_0x127b6e[_0x75e1('0x36')],'context':_0x17f1de[_0x75e1('0x4')],'exten':_0x17f1de['exten'],'priority':_0x127b6e['intervals'][_0x75e1('0x23')]+_0xb50d2e+_0x24ddce++,'VoiceExtensionId':_0x17f1de['id']});}_0x5501d6[_0x75e1('0x9')]({'type':_0x127b6e[_0x75e1('0x1')][_0x75e1('0x35')](),'app':_0x75e1('0x13'),'appdata':_0x75e1('0x38')+(_0x127b6e[_0x75e1('0x39')]?_0x75e1('0x3a')+_0x127b6e['callerID']+')':_0x75e1('0x3b')),'context':_0x17f1de[_0x75e1('0x4')],'exten':_0x17f1de['exten'],'priority':_0x127b6e['intervals'][_0x75e1('0x23')]+_0xb50d2e+_0x24ddce++,'VoiceExtensionId':_0x17f1de['id']});}else{if(_0x127b6e[_0x75e1('0x19')](_0x75e1('0x3c'))){if([_0x75e1('0x3d'),_0x75e1('0x3e')][_0x75e1('0x3f')](_0x127b6e[_0x75e1('0x40')][_0x75e1('0x35')]())&&_0x127b6e['appType']!=='custom'){if(_0x127b6e['answer']){_0x5501d6['push']({'type':_0x127b6e[_0x75e1('0x1')][_0x75e1('0x35')](),'app':'ExecIf','appdata':'$[${XCALLY-MOTION-ANSWER}=0]?Answer','context':_0x17f1de['context'],'exten':_0x17f1de['exten'],'priority':_0x127b6e[_0x75e1('0x32')][_0x75e1('0x23')]+_0xb50d2e+_0x24ddce++,'VoiceExtensionId':_0x17f1de['id']});_0x5501d6[_0x75e1('0x9')]({'type':_0x127b6e[_0x75e1('0x1')][_0x75e1('0x35')](),'app':'Set','appdata':'XCALLY-MOTION-ANSWER=1','context':_0x17f1de[_0x75e1('0x4')],'exten':_0x17f1de[_0x75e1('0x5')],'priority':_0x127b6e[_0x75e1('0x32')][_0x75e1('0x23')]+_0xb50d2e+_0x24ddce++,'VoiceExtensionId':_0x17f1de['id']});}else{_0x5501d6['push']({'type':_0x127b6e[_0x75e1('0x1')][_0x75e1('0x35')](),'app':_0x75e1('0x13'),'appdata':_0x75e1('0x41'),'context':_0x17f1de[_0x75e1('0x4')],'exten':_0x17f1de[_0x75e1('0x5')],'priority':_0x127b6e[_0x75e1('0x32')][_0x75e1('0x23')]+_0xb50d2e+_0x24ddce++,'VoiceExtensionId':_0x17f1de['id']});_0x5501d6['push']({'type':_0x127b6e['type']['toLowerCase'](),'app':_0x75e1('0x2'),'appdata':'XCALLY-MOTION-PROGRESS=1','context':_0x17f1de['context'],'exten':_0x17f1de['exten'],'priority':_0x127b6e[_0x75e1('0x32')][_0x75e1('0x23')]+_0xb50d2e+_0x24ddce++,'VoiceExtensionId':_0x17f1de['id']});}}}}for(var _0x9d7a02=0x0;_0x9d7a02<_0x127b6e[_0x75e1('0x32')]['length'];_0x9d7a02++){var _0x527d73=_0xb50d2e+_0x127b6e[_0x75e1('0x32')]['length'];var _0x5551b7=_0x9d7a02===_0x127b6e[_0x75e1('0x32')][_0x75e1('0x23')]-0x1?_0xb50d2e+_0x5501d6[_0x75e1('0x23')]+_0x239bcd[_0x75e1('0x23')]+0x2:_0xb50d2e+_0x9d7a02+0x1;_0x5501d6[_0x75e1('0x42')](_0x9d7a02,0x0,{'type':_0x17f1de[_0x75e1('0x1')],'app':'GotoIfTime','appdata':_0x127b6e[_0x75e1('0x32')][_0x9d7a02]+'?'+_0x17f1de['context']+_0x75e1('0x43')+_0x527d73+':'+_0x17f1de[_0x75e1('0x4')]+_0x75e1('0x43')+_0x5551b7,'exten':_0x17f1de[_0x75e1('0x5')],'context':_0x17f1de[_0x75e1('0x4')],'priority':_0xb50d2e+_0x9d7a02,'VoiceExtensionId':_0x17f1de['id']});}if(_0x127b6e['appType']===_0x75e1('0x44'))_0x127b6e[_0x75e1('0x45')]=_0xb5b393(_0x17f1de,_0x127b6e['appdata']);_0x127b6e[_0x75e1('0x46')]=_0x5501d6['length']?_['last'](_0x5501d6)[_0x75e1('0x46')]+0x1:_0xb50d2e;_0x221c97=_[_0x75e1('0x47')](_0x221c97,_0x5501d6,[_0x127b6e],_0x239bcd);_0xb50d2e=_[_0x75e1('0x48')](_0x221c97)['priority']+0x1;}return _0x4f9f13(_0x221c97);})['catch'](function(_0x3b42a8){_0x10c0b0(_0x3b42a8);});});}return _0x4c7527[_0x75e1('0x49')](_0x75e1('0x4a'),attributes,{'tableName':_0x75e1('0x4b'),'paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x5b9111){var _0x4b1d6e=this['get']({'plain':!![]});var _0x28b141=_0x4b1d6e['type']==='outbound'?_0x56c741(_0x4b1d6e):_0x43afe6(_0x4b1d6e);return _0x28e964(_0x4b1d6e,_0x5b9111,_[_0x75e1('0x48')](_0x28b141)[_0x75e1('0x46')]+0x1)[_0x75e1('0x4c')](function(_0x169cbb){var _0x1012f3=_[_0x75e1('0x47')](_0x28b141,_0x169cbb);_0x1012f3[_0x75e1('0x9')]({'type':_0x4b1d6e[_0x75e1('0x1')],'app':_0x75e1('0x4d'),'exten':_0x4b1d6e[_0x75e1('0x5')],'context':_0x4b1d6e[_0x75e1('0x4')],'priority':_[_0x75e1('0x48')](_0x1012f3)['priority']+0x1,'VoiceExtensionId':_0x4b1d6e['id']});return _0x1012f3;});}}});};