Built motion from commit 43538d75.|2.5.35
[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 _0x848e=['MONITOR_OPTIONS=ab','outbound','CDR(destination)=','cutdigits','${EXTEN:','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','CDR(prefix)=${EXTEN:0:','outboundrouteid=','hasOwnProperty','recordingFormat','_XCALLY_MIXMONITOR_FORMAT=','wav','timeout','options','url','length','name','trunk','param','phone','prefix','split','${EXTEN}','SIP','join','indexOf','U(xcally-mixmonitor-context)','replace','isEmpty','findAll','interval','then','*,*,*,*','map','filter','IntervalId','toLowerCase','tag','intervals','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):','callerID','Set(CALLERID(all)=','answer','queue','playback','includes','app','appType','custom','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','splice','GotoIfTime',',${EXTEN},','outboundDial','appdata','last','priority','concat','catch','define','VoiceExtension','voice_extensions','get','Hangup','lodash','exports','models','type','Set','CDR(type)=','context','exten','NoOp','alias','CDR(routeAlias)=','inbound','push','CDR(routeid)=','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0'];(function(_0xaf29da,_0x117f5a){var _0x295c51=function(_0x3feaf4){while(--_0x3feaf4){_0xaf29da['push'](_0xaf29da['shift']());}};_0x295c51(++_0x117f5a);}(_0x848e,0x1e2));var _0xe848=function(_0x5d897d,_0x8f648e){_0x5d897d=_0x5d897d-0x0;var _0x21a626=_0x848e[_0x5d897d];return _0x21a626;};'use strict';var _=require(_0xe848('0x0'));var attributes=require('./voiceExtension.attributes');module[_0xe848('0x1')]=function(_0x3ec7c5){var _0x5ab8ee=_0x3ec7c5[_0xe848('0x2')];function _0xd37df3(_0x1b2e39){var _0x14871a=0x2;var _0x3347a0=[{'type':_0x1b2e39[_0xe848('0x3')],'app':_0xe848('0x4'),'appdata':_0xe848('0x5')+_0x1b2e39['type'],'context':_0x1b2e39[_0xe848('0x6')],'exten':_0x1b2e39[_0xe848('0x7')],'priority':_0x14871a++,'VoiceExtensionId':_0x1b2e39['id']},{'type':_0x1b2e39[_0xe848('0x3')],'app':_0x1b2e39['alias']?'Set':_0xe848('0x8'),'appdata':_0x1b2e39[_0xe848('0x9')]?_0xe848('0xa')+_0x1b2e39[_0xe848('0x9')]:'No\x20alias\x20set','context':_0x1b2e39[_0xe848('0x6')],'exten':_0x1b2e39[_0xe848('0x7')],'priority':_0x14871a++,'VoiceExtensionId':_0x1b2e39['id']}];if(_0x1b2e39['type']===_0xe848('0xb')){_0x3347a0[_0xe848('0xc')]({'type':_0xe848('0xb'),'app':_0xe848('0x4'),'appdata':_0xe848('0xd')+_0x1b2e39['id'],'context':_0x1b2e39[_0xe848('0x6')],'exten':_0x1b2e39[_0xe848('0x7')],'priority':_0x14871a++,'VoiceExtensionId':_0x1b2e39['id']});}_0x3347a0[_0xe848('0xc')]({'type':_0x1b2e39['type'],'app':_0xe848('0x4'),'appdata':_0xe848('0xe'),'context':_0x1b2e39[_0xe848('0x6')],'exten':_0x1b2e39[_0xe848('0x7')],'priority':_0x14871a++,'VoiceExtensionId':_0x1b2e39['id']},{'type':_0x1b2e39[_0xe848('0x3')],'app':_0xe848('0x4'),'appdata':_0xe848('0xf'),'context':_0x1b2e39['context'],'exten':_0x1b2e39[_0xe848('0x7')],'priority':_0x14871a++,'VoiceExtensionId':_0x1b2e39['id']},{'type':_0x1b2e39['type'],'app':'Set','appdata':_0xe848('0x10'),'context':_0x1b2e39[_0xe848('0x6')],'exten':_0x1b2e39[_0xe848('0x7')],'priority':_0x14871a++,'VoiceExtensionId':_0x1b2e39['id']});return _0x3347a0;}function _0x3a3a72(_0x2b957f){var _0x4119e8=0x2;var _0x18dada=[{'type':'outbound','app':'Set','appdata':'CDR(type)=outbound','context':_0x2b957f[_0xe848('0x6')],'exten':_0x2b957f['exten'],'priority':_0x4119e8++,'VoiceExtensionId':_0x2b957f['id']},{'type':'outbound','app':_0x2b957f[_0xe848('0x9')]?_0xe848('0x4'):_0xe848('0x8'),'appdata':_0x2b957f[_0xe848('0x9')]?_0xe848('0xa')+_0x2b957f[_0xe848('0x9')]:'No\x20alias\x20set','context':_0x2b957f[_0xe848('0x6')],'exten':_0x2b957f[_0xe848('0x7')],'priority':_0x4119e8++,'VoiceExtensionId':_0x2b957f['id']},{'type':_0xe848('0x11'),'app':_0xe848('0x4'),'appdata':_0xe848('0x12')+(_0x2b957f[_0xe848('0x13')]?_0xe848('0x14')+_0x2b957f[_0xe848('0x13')]+'}':'${EXTEN}'),'context':_0x2b957f['context'],'exten':_0x2b957f[_0xe848('0x7')],'priority':_0x4119e8++,'VoiceExtensionId':_0x2b957f['id']},{'type':_0xe848('0x11'),'app':_0xe848('0x4'),'appdata':'CDR(routeid)='+_0x2b957f['id'],'context':_0x2b957f[_0xe848('0x6')],'exten':_0x2b957f[_0xe848('0x7')],'priority':_0x4119e8++,'VoiceExtensionId':_0x2b957f['id']},{'type':'outbound','app':_0xe848('0x15'),'appdata':_0xe848('0x16')+(_0x4119e8+0x2)+'):Goto('+(_0x4119e8+0x1)+')','context':_0x2b957f[_0xe848('0x6')],'exten':_0x2b957f[_0xe848('0x7')],'priority':_0x4119e8++,'VoiceExtensionId':_0x2b957f['id']},{'type':_0xe848('0x11'),'app':_0xe848('0x4'),'appdata':_0x2b957f[_0xe848('0x13')]?_0xe848('0x17')+_0x2b957f[_0xe848('0x13')]+'}':'CDR(prefix)=noprefix','context':_0x2b957f[_0xe848('0x6')],'exten':_0x2b957f[_0xe848('0x7')],'priority':_0x4119e8++,'VoiceExtensionId':_0x2b957f['id']},{'type':'outbound','app':_0xe848('0x4'),'appdata':_0xe848('0xe'),'context':_0x2b957f[_0xe848('0x6')],'exten':_0x2b957f['exten'],'priority':_0x4119e8++,'VoiceExtensionId':_0x2b957f['id']},{'type':_0xe848('0x11'),'app':_0xe848('0x4'),'appdata':_0xe848('0xf'),'context':_0x2b957f[_0xe848('0x6')],'exten':_0x2b957f[_0xe848('0x7')],'priority':_0x4119e8++,'VoiceExtensionId':_0x2b957f['id']},{'type':_0xe848('0x11'),'app':_0xe848('0x4'),'appdata':'MONITOR_OPTIONS=ab','context':_0x2b957f[_0xe848('0x6')],'exten':_0x2b957f[_0xe848('0x7')],'priority':_0x4119e8++,'VoiceExtensionId':_0x2b957f['id']},{'type':'outbound','app':_0xe848('0x4'),'appdata':_0xe848('0x18')+_0x2b957f['id'],'context':_0x2b957f[_0xe848('0x6')],'exten':_0x2b957f[_0xe848('0x7')],'priority':_0x4119e8++,'VoiceExtensionId':_0x2b957f['id']}];if(_0x2b957f[_0xe848('0x19')](_0xe848('0x1a'))&&_0x2b957f[_0xe848('0x1a')]!=='none'){_0x18dada[_0xe848('0xc')]({'type':_0xe848('0x11'),'app':_0xe848('0x4'),'appdata':'_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','context':_0x2b957f[_0xe848('0x6')],'exten':_0x2b957f['exten'],'priority':_0x4119e8++,'VoiceExtensionId':_0x2b957f['id']},{'type':'outbound','app':_0xe848('0x4'),'appdata':_0xe848('0x1b')+_0x2b957f[_0xe848('0x1a')]||_0xe848('0x1c'),'context':_0x2b957f[_0xe848('0x6')],'exten':_0x2b957f[_0xe848('0x7')],'priority':_0x4119e8++,'VoiceExtensionId':_0x2b957f['id']});}return _0x18dada;}function _0x535990(_0x5866b2,_0x4ed220){var _0x3c746d=[{'name':'trunk','param':0x0},{'name':_0xe848('0x1d'),'param':0x1},{'name':_0xe848('0x1e'),'param':0x2},{'name':_0xe848('0x1f'),'param':0x3}];var _0x3dd8d6={};var _0x558902=_0x4ed220['split'](',');var _0x43572d=[];for(var _0x5e1795=0x0;_0x5e1795<_0x3c746d[_0xe848('0x20')];_0x5e1795++){switch(_0x3c746d[_0x5e1795][_0xe848('0x21')]){case _0xe848('0x22'):_0x3dd8d6[_0xe848('0x22')]=_0x558902[_0x3c746d[_0x5e1795][_0xe848('0x23')]]['split']('/')[0x1];_0x3dd8d6[_0xe848('0x24')]=_0x558902[_0x3c746d[_0x5e1795][_0xe848('0x23')]]['split']('/')[0x2];_0x3dd8d6[_0xe848('0x25')]=_0x3dd8d6[_0xe848('0x24')]?_0x3dd8d6[_0xe848('0x24')][_0xe848('0x26')]('$')[0x0]:undefined;_0x3dd8d6[_0xe848('0x24')]=_0x5866b2[_0xe848('0x13')]?(_0x3dd8d6[_0xe848('0x25')]||'')+'${EXTEN:'+_0x5866b2[_0xe848('0x13')]+'}':(_0x3dd8d6[_0xe848('0x25')]||'')+_0xe848('0x27');_0x43572d[_0x3c746d[_0x5e1795]['param']]=[_0xe848('0x28'),_0x3dd8d6['trunk'],_0x3dd8d6[_0xe848('0x24')]][_0xe848('0x29')]('/');break;case _0xe848('0x1e'):_0x3dd8d6[_0xe848('0x1e')]=_0x558902[_0x3c746d[_0x5e1795]['param']];if(_0x5866b2['recordingFormat']!=='none'){if(_0x3dd8d6['options'][_0xe848('0x2a')]('U(xcally-mixmonitor-context)')<0x0){_0x3dd8d6[_0xe848('0x1e')]+=_0xe848('0x2b');}}else{_0x3dd8d6[_0xe848('0x1e')]=_0x3dd8d6[_0xe848('0x1e')][_0xe848('0x2c')](_0xe848('0x2b'),'');}_0x43572d[_0x3c746d[_0x5e1795][_0xe848('0x23')]]=_0x3dd8d6[_0xe848('0x1e')];break;default:_0x43572d[_0x3c746d[_0x5e1795]['param']]=_0x558902[_0x3c746d[_0x5e1795]['param']];}}return _0x43572d[_0xe848('0x29')](',');}function _0x1b3b84(_0x2d0094,_0x9ab113,_0x580ae4){return new Promise(function(_0xa2ceb2,_0x27cdcb){var _0x352be6=[];if(_[_0xe848('0x2d')](_0x9ab113))return _0xa2ceb2(_0x352be6);_0x5ab8ee['Interval'][_0xe848('0x2e')]({'attributes':['id',_0xe848('0x2f'),'IntervalId'],'raw':!![]})[_0xe848('0x30')](function(_0x1327b1){for(var _0xbe5564=0x0,_0x3bb570=0x0;_0xbe5564<_0x9ab113[_0xe848('0x20')];_0xbe5564++,_0x3bb570=0x0){var _0x58bcb2=_0x9ab113[_0xbe5564];var _0x105e14=[];var _0x2c737a=[];delete _0x58bcb2['id'];if(_0x58bcb2[_0xe848('0x2f')]!==_0xe848('0x31')){_0x58bcb2['intervals']=[_0x58bcb2[_0xe848('0x2f')]];}else{_0x58bcb2['intervals']=_0x58bcb2['IntervalId']?_[_0xe848('0x32')](_[_0xe848('0x33')](_0x1327b1,{'IntervalId':_0x58bcb2[_0xe848('0x34')]}),'interval'):[];}_0x58bcb2[_0xe848('0x6')]=_0x2d0094[_0xe848('0x6')];_0x58bcb2['exten']=_0x2d0094[_0xe848('0x7')];if(_0x58bcb2[_0xe848('0x3')])_0x58bcb2['type']=_0x58bcb2[_0xe848('0x3')][_0xe848('0x35')]();if(_0x2d0094[_0xe848('0x3')]==='outbound'){if(_0x58bcb2['hasOwnProperty'](_0xe848('0x36'))&&_0x58bcb2[_0xe848('0x36')]&&_0x58bcb2['tag']!=='--'){_0x105e14[_0xe848('0xc')]({'type':_0x58bcb2[_0xe848('0x3')][_0xe848('0x35')](),'app':'Set','appdata':'CDR(tag)='+_0x58bcb2[_0xe848('0x36')],'context':_0x2d0094['context'],'exten':_0x2d0094['exten'],'priority':_0x58bcb2[_0xe848('0x37')][_0xe848('0x20')]+_0x580ae4+_0x3bb570++,'VoiceExtensionId':_0x2d0094['id']});}_0x105e14[_0xe848('0xc')]({'type':_0x58bcb2[_0xe848('0x3')]['toLowerCase'](),'app':_0xe848('0x15'),'appdata':_0xe848('0x38')+(_0x58bcb2[_0xe848('0x39')]?_0xe848('0x3a')+_0x58bcb2[_0xe848('0x39')]+')':'NoOp(No\x20number\x20available)'),'context':_0x2d0094[_0xe848('0x6')],'exten':_0x2d0094[_0xe848('0x7')],'priority':_0x58bcb2['intervals'][_0xe848('0x20')]+_0x580ae4+_0x3bb570++,'VoiceExtensionId':_0x2d0094['id']});}else{if(_0x58bcb2[_0xe848('0x19')](_0xe848('0x3b'))){if([_0xe848('0x3c'),_0xe848('0x3d')][_0xe848('0x3e')](_0x58bcb2[_0xe848('0x3f')][_0xe848('0x35')]())&&_0x58bcb2[_0xe848('0x40')]!==_0xe848('0x41')){if(_0x58bcb2[_0xe848('0x3b')]){_0x105e14['push']({'type':_0x58bcb2[_0xe848('0x3')][_0xe848('0x35')](),'app':_0xe848('0x15'),'appdata':'$[${XCALLY-MOTION-ANSWER}=0]?Answer','context':_0x2d0094[_0xe848('0x6')],'exten':_0x2d0094[_0xe848('0x7')],'priority':_0x58bcb2['intervals'][_0xe848('0x20')]+_0x580ae4+_0x3bb570++,'VoiceExtensionId':_0x2d0094['id']});_0x105e14[_0xe848('0xc')]({'type':_0x58bcb2['type'][_0xe848('0x35')](),'app':_0xe848('0x4'),'appdata':_0xe848('0x42'),'context':_0x2d0094[_0xe848('0x6')],'exten':_0x2d0094[_0xe848('0x7')],'priority':_0x58bcb2[_0xe848('0x37')][_0xe848('0x20')]+_0x580ae4+_0x3bb570++,'VoiceExtensionId':_0x2d0094['id']});}else{_0x105e14[_0xe848('0xc')]({'type':_0x58bcb2[_0xe848('0x3')][_0xe848('0x35')](),'app':'ExecIf','appdata':_0xe848('0x43'),'context':_0x2d0094[_0xe848('0x6')],'exten':_0x2d0094[_0xe848('0x7')],'priority':_0x58bcb2[_0xe848('0x37')][_0xe848('0x20')]+_0x580ae4+_0x3bb570++,'VoiceExtensionId':_0x2d0094['id']});_0x105e14['push']({'type':_0x58bcb2[_0xe848('0x3')]['toLowerCase'](),'app':_0xe848('0x4'),'appdata':_0xe848('0x44'),'context':_0x2d0094[_0xe848('0x6')],'exten':_0x2d0094[_0xe848('0x7')],'priority':_0x58bcb2[_0xe848('0x37')][_0xe848('0x20')]+_0x580ae4+_0x3bb570++,'VoiceExtensionId':_0x2d0094['id']});}}}}for(var _0x42ced8=0x0;_0x42ced8<_0x58bcb2[_0xe848('0x37')]['length'];_0x42ced8++){var _0x1dafa1=_0x580ae4+_0x58bcb2['intervals'][_0xe848('0x20')];var _0xd3657f=_0x42ced8===_0x58bcb2[_0xe848('0x37')][_0xe848('0x20')]-0x1?_0x580ae4+_0x105e14[_0xe848('0x20')]+_0x2c737a[_0xe848('0x20')]+0x2:_0x580ae4+_0x42ced8+0x1;_0x105e14[_0xe848('0x45')](_0x42ced8,0x0,{'type':_0x2d0094[_0xe848('0x3')],'app':_0xe848('0x46'),'appdata':_0x58bcb2[_0xe848('0x37')][_0x42ced8]+'?'+_0x2d0094['context']+_0xe848('0x47')+_0x1dafa1+':'+_0x2d0094['context']+_0xe848('0x47')+_0xd3657f,'exten':_0x2d0094[_0xe848('0x7')],'context':_0x2d0094['context'],'priority':_0x580ae4+_0x42ced8,'VoiceExtensionId':_0x2d0094['id']});}if(_0x58bcb2['appType']===_0xe848('0x48'))_0x58bcb2[_0xe848('0x49')]=_0x535990(_0x2d0094,_0x58bcb2[_0xe848('0x49')]);_0x58bcb2['priority']=_0x105e14['length']?_[_0xe848('0x4a')](_0x105e14)[_0xe848('0x4b')]+0x1:_0x580ae4;_0x352be6=_[_0xe848('0x4c')](_0x352be6,_0x105e14,[_0x58bcb2],_0x2c737a);_0x580ae4=_[_0xe848('0x4a')](_0x352be6)[_0xe848('0x4b')]+0x1;}return _0xa2ceb2(_0x352be6);})[_0xe848('0x4d')](function(_0x3ef1ff){_0x27cdcb(_0x3ef1ff);});});}return _0x3ec7c5[_0xe848('0x4e')](_0xe848('0x4f'),attributes,{'tableName':_0xe848('0x50'),'paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x5d94d3){var _0x121867=this[_0xe848('0x51')]({'plain':!![]});var _0x2eff83=_0x121867['type']==='outbound'?_0x3a3a72(_0x121867):_0xd37df3(_0x121867);return _0x1b3b84(_0x121867,_0x5d94d3,_[_0xe848('0x4a')](_0x2eff83)[_0xe848('0x4b')]+0x1)[_0xe848('0x30')](function(_0x223cfd){var _0x215077=_[_0xe848('0x4c')](_0x2eff83,_0x223cfd);_0x215077[_0xe848('0xc')]({'type':_0x121867[_0xe848('0x3')],'app':_0xe848('0x52'),'exten':_0x121867[_0xe848('0x7')],'context':_0x121867['context'],'priority':_[_0xe848('0x4a')](_0x215077)[_0xe848('0x4b')]+0x1,'VoiceExtensionId':_0x121867['id']});return _0x215077;});}}});};