1015206853510075f68ad8a07c4a8b619c1145fe
[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 _0xb542=['exports','models','Set','CDR(type)=','context','type','inbound','push','exten','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','outbound','CDR(type)=outbound','CDR(destination)=','cutdigits','${EXTEN:','${EXTEN}','CDR(routeid)=','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=noprefix','hasOwnProperty','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','wav','trunk','split','length','param','phone','prefix','SIP','join','options','U(xcally-mixmonitor-context)','replace','isEmpty','Interval','IntervalId','then','interval','*,*,*,*','intervals','map','filter','tag','CDR(tag)=','toLowerCase','callerID','Set(CALLERID(all)=','NoOp(No\x20number\x20available)','answer','queue','playback','includes','app','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','splice','GotoIfTime',',${EXTEN},','appType','outboundDial','appdata','XMCS-UNIQUEID=${CHANNEL(LINKEDID)}','priority','last','concat','catch','define','VoiceExtension','get','./voiceExtension.attributes'];(function(_0xbca1b1,_0x33f0ce){var _0x4e1686=function(_0x58a80c){while(--_0x58a80c){_0xbca1b1['push'](_0xbca1b1['shift']());}};_0x4e1686(++_0x33f0ce);}(_0xb542,0x9b));var _0x2b54=function(_0x48e348,_0x3e7b30){_0x48e348=_0x48e348-0x0;var _0x29016a=_0xb542[_0x48e348];return _0x29016a;};'use strict';var _=require('lodash');var attributes=require(_0x2b54('0x0'));module[_0x2b54('0x1')]=function(_0x4451ae){var _0x52a943=_0x4451ae[_0x2b54('0x2')];function _0x5bbdfe(_0x21f904){var _0x32ae93=0x2;var _0x311cc3=[{'type':_0x21f904['type'],'app':_0x2b54('0x3'),'appdata':_0x2b54('0x4')+_0x21f904['type'],'context':_0x21f904[_0x2b54('0x5')],'exten':_0x21f904['exten'],'priority':_0x32ae93++,'VoiceExtensionId':_0x21f904['id']}];if(_0x21f904[_0x2b54('0x6')]===_0x2b54('0x7')){_0x311cc3[_0x2b54('0x8')]({'type':_0x2b54('0x7'),'app':_0x2b54('0x3'),'appdata':'CDR(routeid)='+_0x21f904['id'],'context':_0x21f904['context'],'exten':_0x21f904[_0x2b54('0x9')],'priority':_0x32ae93++,'VoiceExtensionId':_0x21f904['id']});}_0x311cc3['push']({'type':_0x21f904[_0x2b54('0x6')],'app':_0x2b54('0x3'),'appdata':'XCALLY-MOTION-ANSWER=0','context':_0x21f904['context'],'exten':_0x21f904[_0x2b54('0x9')],'priority':_0x32ae93++,'VoiceExtensionId':_0x21f904['id']},{'type':_0x21f904['type'],'app':_0x2b54('0x3'),'appdata':_0x2b54('0xa'),'context':_0x21f904[_0x2b54('0x5')],'exten':_0x21f904[_0x2b54('0x9')],'priority':_0x32ae93++,'VoiceExtensionId':_0x21f904['id']},{'type':_0x21f904[_0x2b54('0x6')],'app':_0x2b54('0x3'),'appdata':_0x2b54('0xb'),'context':_0x21f904[_0x2b54('0x5')],'exten':_0x21f904[_0x2b54('0x9')],'priority':_0x32ae93++,'VoiceExtensionId':_0x21f904['id']});return _0x311cc3;}function _0x2da815(_0x59119f){var _0x159a9=0x2;var _0x53f871=[{'type':_0x2b54('0xc'),'app':_0x2b54('0x3'),'appdata':_0x2b54('0xd'),'context':_0x59119f[_0x2b54('0x5')],'exten':_0x59119f[_0x2b54('0x9')],'priority':_0x159a9++,'VoiceExtensionId':_0x59119f['id']},{'type':'outbound','app':_0x2b54('0x3'),'appdata':_0x2b54('0xe')+(_0x59119f[_0x2b54('0xf')]?_0x2b54('0x10')+_0x59119f[_0x2b54('0xf')]+'}':_0x2b54('0x11')),'context':_0x59119f['context'],'exten':_0x59119f[_0x2b54('0x9')],'priority':_0x159a9++,'VoiceExtensionId':_0x59119f['id']},{'type':'outbound','app':_0x2b54('0x3'),'appdata':_0x2b54('0x12')+_0x59119f['id'],'context':_0x59119f[_0x2b54('0x5')],'exten':_0x59119f[_0x2b54('0x9')],'priority':_0x159a9++,'VoiceExtensionId':_0x59119f['id']},{'type':_0x2b54('0xc'),'app':_0x2b54('0x13'),'appdata':_0x2b54('0x14')+(_0x159a9+0x2)+_0x2b54('0x15')+(_0x159a9+0x1)+')','context':_0x59119f[_0x2b54('0x5')],'exten':_0x59119f['exten'],'priority':_0x159a9++,'VoiceExtensionId':_0x59119f['id']},{'type':_0x2b54('0xc'),'app':'Set','appdata':_0x59119f['cutdigits']?'CDR(prefix)=${EXTEN:0:'+_0x59119f['cutdigits']+'}':_0x2b54('0x16'),'context':_0x59119f[_0x2b54('0x5')],'exten':_0x59119f['exten'],'priority':_0x159a9++,'VoiceExtensionId':_0x59119f['id']},{'type':'outbound','app':_0x2b54('0x3'),'appdata':'XCALLY-MOTION-ANSWER=0','context':_0x59119f[_0x2b54('0x5')],'exten':_0x59119f[_0x2b54('0x9')],'priority':_0x159a9++,'VoiceExtensionId':_0x59119f['id']},{'type':_0x2b54('0xc'),'app':_0x2b54('0x3'),'appdata':_0x2b54('0xa'),'context':_0x59119f[_0x2b54('0x5')],'exten':_0x59119f['exten'],'priority':_0x159a9++,'VoiceExtensionId':_0x59119f['id']},{'type':_0x2b54('0xc'),'app':'Set','appdata':_0x2b54('0xb'),'context':_0x59119f['context'],'exten':_0x59119f['exten'],'priority':_0x159a9++,'VoiceExtensionId':_0x59119f['id']},{'type':'outbound','app':_0x2b54('0x3'),'appdata':'outboundrouteid='+_0x59119f['id'],'context':_0x59119f['context'],'exten':_0x59119f[_0x2b54('0x9')],'priority':_0x159a9++,'VoiceExtensionId':_0x59119f['id']}];if(_0x59119f[_0x2b54('0x17')](_0x2b54('0x18'))&&_0x59119f[_0x2b54('0x18')]!==_0x2b54('0x19')){_0x53f871[_0x2b54('0x8')]({'type':_0x2b54('0xc'),'app':_0x2b54('0x3'),'appdata':_0x2b54('0x1a'),'context':_0x59119f[_0x2b54('0x5')],'exten':_0x59119f['exten'],'priority':_0x159a9++,'VoiceExtensionId':_0x59119f['id']},{'type':_0x2b54('0xc'),'app':_0x2b54('0x3'),'appdata':_0x2b54('0x1b')+_0x59119f[_0x2b54('0x18')]||_0x2b54('0x1c'),'context':_0x59119f[_0x2b54('0x5')],'exten':_0x59119f['exten'],'priority':_0x159a9++,'VoiceExtensionId':_0x59119f['id']});}return _0x53f871;}function _0x3e79ca(_0x8b799d,_0x3dbb93){var _0x1b6582=[{'name':_0x2b54('0x1d'),'param':0x0},{'name':'timeout','param':0x1},{'name':'options','param':0x2},{'name':'url','param':0x3}];var _0x42ba2c={};var _0x32c9c7=_0x3dbb93[_0x2b54('0x1e')](',');var _0x507471=[];for(var _0x1321e4=0x0;_0x1321e4<_0x1b6582[_0x2b54('0x1f')];_0x1321e4++){switch(_0x1b6582[_0x1321e4]['name']){case _0x2b54('0x1d'):_0x42ba2c[_0x2b54('0x1d')]=_0x32c9c7[_0x1b6582[_0x1321e4][_0x2b54('0x20')]][_0x2b54('0x1e')]('/')[0x1];_0x42ba2c[_0x2b54('0x21')]=_0x32c9c7[_0x1b6582[_0x1321e4][_0x2b54('0x20')]][_0x2b54('0x1e')]('/')[0x2];_0x42ba2c[_0x2b54('0x22')]=_0x42ba2c['phone']?_0x42ba2c[_0x2b54('0x21')][_0x2b54('0x1e')]('$')[0x0]:undefined;_0x42ba2c['phone']=_0x8b799d[_0x2b54('0xf')]?(_0x42ba2c[_0x2b54('0x22')]||'')+_0x2b54('0x10')+_0x8b799d['cutdigits']+'}':(_0x42ba2c[_0x2b54('0x22')]||'')+_0x2b54('0x11');_0x507471[_0x1b6582[_0x1321e4][_0x2b54('0x20')]]=[_0x2b54('0x23'),_0x42ba2c[_0x2b54('0x1d')],_0x42ba2c[_0x2b54('0x21')]][_0x2b54('0x24')]('/');break;case _0x2b54('0x25'):_0x42ba2c[_0x2b54('0x25')]=_0x32c9c7[_0x1b6582[_0x1321e4][_0x2b54('0x20')]];if(_0x8b799d[_0x2b54('0x18')]!==_0x2b54('0x19')){if(_0x42ba2c[_0x2b54('0x25')]['indexOf'](_0x2b54('0x26'))<0x0){_0x42ba2c['options']+=_0x2b54('0x26');}}else{_0x42ba2c[_0x2b54('0x25')]=_0x42ba2c['options'][_0x2b54('0x27')](_0x2b54('0x26'),'');}_0x507471[_0x1b6582[_0x1321e4][_0x2b54('0x20')]]=_0x42ba2c[_0x2b54('0x25')];break;default:_0x507471[_0x1b6582[_0x1321e4][_0x2b54('0x20')]]=_0x32c9c7[_0x1b6582[_0x1321e4][_0x2b54('0x20')]];}}return _0x507471['join'](',');}function _0x1c886f(_0x1ca78e,_0x5d453b,_0x1ba9c6){return new Promise(function(_0x46afa2,_0x48704b){var _0x339704=[];if(_[_0x2b54('0x28')](_0x5d453b))return _0x46afa2(_0x339704);_0x52a943[_0x2b54('0x29')]['findAll']({'attributes':['id','interval',_0x2b54('0x2a')],'raw':!![]})[_0x2b54('0x2b')](function(_0x24c5c7){for(var _0xa803dd=0x0,_0x251640=0x0;_0xa803dd<_0x5d453b[_0x2b54('0x1f')];_0xa803dd++,_0x251640=0x0){var _0x393cc8=_0x5d453b[_0xa803dd];var _0x8f9957=[];var _0x28a141=[];delete _0x393cc8['id'];if(_0x393cc8[_0x2b54('0x2c')]!==_0x2b54('0x2d')){_0x393cc8[_0x2b54('0x2e')]=[_0x393cc8[_0x2b54('0x2c')]];}else{_0x393cc8[_0x2b54('0x2e')]=_0x393cc8[_0x2b54('0x2a')]?_[_0x2b54('0x2f')](_[_0x2b54('0x30')](_0x24c5c7,{'IntervalId':_0x393cc8[_0x2b54('0x2a')]}),'interval'):[];}_0x393cc8['context']=_0x1ca78e[_0x2b54('0x5')];_0x393cc8['exten']=_0x1ca78e[_0x2b54('0x9')];if(_0x393cc8[_0x2b54('0x6')])_0x393cc8[_0x2b54('0x6')]=_0x393cc8['type']['toLowerCase']();if(_0x1ca78e[_0x2b54('0x6')]===_0x2b54('0xc')){if(_0x393cc8[_0x2b54('0x17')]('tag')&&_0x393cc8['tag']&&_0x393cc8[_0x2b54('0x31')]!=='--'){_0x8f9957[_0x2b54('0x8')]({'type':_0x393cc8[_0x2b54('0x6')]['toLowerCase'](),'app':'Set','appdata':_0x2b54('0x32')+_0x393cc8[_0x2b54('0x31')],'context':_0x1ca78e[_0x2b54('0x5')],'exten':_0x1ca78e[_0x2b54('0x9')],'priority':_0x393cc8['intervals'][_0x2b54('0x1f')]+_0x1ba9c6+_0x251640++,'VoiceExtensionId':_0x1ca78e['id']});}_0x8f9957['push']({'type':_0x393cc8[_0x2b54('0x6')][_0x2b54('0x33')](),'app':'ExecIf','appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):'+(_0x393cc8[_0x2b54('0x34')]?_0x2b54('0x35')+_0x393cc8[_0x2b54('0x34')]+')':_0x2b54('0x36')),'context':_0x1ca78e[_0x2b54('0x5')],'exten':_0x1ca78e[_0x2b54('0x9')],'priority':_0x393cc8[_0x2b54('0x2e')][_0x2b54('0x1f')]+_0x1ba9c6+_0x251640++,'VoiceExtensionId':_0x1ca78e['id']});}else{if(_0x393cc8[_0x2b54('0x17')](_0x2b54('0x37'))){if([_0x2b54('0x38'),_0x2b54('0x39')][_0x2b54('0x3a')](_0x393cc8[_0x2b54('0x3b')]['toLowerCase']())&&_0x393cc8['appType']!==_0x2b54('0x3c')){if(_0x393cc8[_0x2b54('0x37')]){_0x8f9957[_0x2b54('0x8')]({'type':_0x393cc8[_0x2b54('0x6')][_0x2b54('0x33')](),'app':_0x2b54('0x13'),'appdata':_0x2b54('0x3d'),'context':_0x1ca78e[_0x2b54('0x5')],'exten':_0x1ca78e[_0x2b54('0x9')],'priority':_0x393cc8[_0x2b54('0x2e')][_0x2b54('0x1f')]+_0x1ba9c6+_0x251640++,'VoiceExtensionId':_0x1ca78e['id']});_0x8f9957['push']({'type':_0x393cc8[_0x2b54('0x6')][_0x2b54('0x33')](),'app':_0x2b54('0x3'),'appdata':'XCALLY-MOTION-ANSWER=1','context':_0x1ca78e[_0x2b54('0x5')],'exten':_0x1ca78e[_0x2b54('0x9')],'priority':_0x393cc8[_0x2b54('0x2e')][_0x2b54('0x1f')]+_0x1ba9c6+_0x251640++,'VoiceExtensionId':_0x1ca78e['id']});}else{_0x8f9957[_0x2b54('0x8')]({'type':_0x393cc8['type'][_0x2b54('0x33')](),'app':'ExecIf','appdata':_0x2b54('0x3e'),'context':_0x1ca78e[_0x2b54('0x5')],'exten':_0x1ca78e[_0x2b54('0x9')],'priority':_0x393cc8['intervals'][_0x2b54('0x1f')]+_0x1ba9c6+_0x251640++,'VoiceExtensionId':_0x1ca78e['id']});_0x8f9957[_0x2b54('0x8')]({'type':_0x393cc8[_0x2b54('0x6')][_0x2b54('0x33')](),'app':_0x2b54('0x3'),'appdata':_0x2b54('0x3f'),'context':_0x1ca78e[_0x2b54('0x5')],'exten':_0x1ca78e[_0x2b54('0x9')],'priority':_0x393cc8['intervals']['length']+_0x1ba9c6+_0x251640++,'VoiceExtensionId':_0x1ca78e['id']});}}}}for(var _0x32c43b=0x0;_0x32c43b<_0x393cc8['intervals']['length'];_0x32c43b++){var _0x52013c=_0x1ba9c6+_0x393cc8['intervals'][_0x2b54('0x1f')];var _0x1f4e4a=_0x32c43b===_0x393cc8[_0x2b54('0x2e')][_0x2b54('0x1f')]-0x1?_0x1ba9c6+_0x8f9957[_0x2b54('0x1f')]+_0x28a141['length']+0x2:_0x1ba9c6+_0x32c43b+0x1;_0x8f9957[_0x2b54('0x40')](_0x32c43b,0x0,{'type':_0x1ca78e[_0x2b54('0x6')],'app':_0x2b54('0x41'),'appdata':_0x393cc8['intervals'][_0x32c43b]+'?'+_0x1ca78e[_0x2b54('0x5')]+_0x2b54('0x42')+_0x52013c+':'+_0x1ca78e[_0x2b54('0x5')]+_0x2b54('0x42')+_0x1f4e4a,'exten':_0x1ca78e['exten'],'context':_0x1ca78e[_0x2b54('0x5')],'priority':_0x1ba9c6+_0x32c43b,'VoiceExtensionId':_0x1ca78e['id']});}if(_0x393cc8[_0x2b54('0x43')]===_0x2b54('0x44')){_0x393cc8[_0x2b54('0x45')]=_0x3e79ca(_0x1ca78e,_0x393cc8['appdata']);}if(_0x393cc8['appType']==='agi'){_0x8f9957[_0x2b54('0x8')]({'type':_0x393cc8[_0x2b54('0x6')]['toLowerCase'](),'app':'Set','appdata':_0x2b54('0x46'),'context':_0x1ca78e['context'],'exten':_0x1ca78e['exten'],'priority':_0x393cc8['intervals'][_0x2b54('0x1f')]+_0x1ba9c6+_0x251640++,'VoiceExtensionId':_0x1ca78e['id']});}_0x393cc8[_0x2b54('0x47')]=_0x8f9957[_0x2b54('0x1f')]?_[_0x2b54('0x48')](_0x8f9957)['priority']+0x1:_0x1ba9c6;_0x339704=_[_0x2b54('0x49')](_0x339704,_0x8f9957,[_0x393cc8],_0x28a141);_0x1ba9c6=_[_0x2b54('0x48')](_0x339704)['priority']+0x1;}return _0x46afa2(_0x339704);})[_0x2b54('0x4a')](function(_0x2dc626){_0x48704b(_0x2dc626);});});}return _0x4451ae[_0x2b54('0x4b')](_0x2b54('0x4c'),attributes,{'tableName':'voice_extensions','paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x35015a){var _0x3400af=this[_0x2b54('0x4d')]({'plain':!![]});var _0x1ae82c=_0x3400af[_0x2b54('0x6')]===_0x2b54('0xc')?_0x2da815(_0x3400af):_0x5bbdfe(_0x3400af);return _0x1c886f(_0x3400af,_0x35015a,_[_0x2b54('0x48')](_0x1ae82c)[_0x2b54('0x47')]+0x1)['then'](function(_0x1ad918){var _0x13a08a=_[_0x2b54('0x49')](_0x1ae82c,_0x1ad918);_0x13a08a[_0x2b54('0x8')]({'type':_0x3400af['type'],'app':'Hangup','exten':_0x3400af['exten'],'context':_0x3400af[_0x2b54('0x5')],'priority':_['last'](_0x13a08a)[_0x2b54('0x47')]+0x1,'VoiceExtensionId':_0x3400af['id']});return _0x13a08a;});}}});};