Built motion from commit 44b1f254.|2.6.26
[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 _0xbe49=['type','CDR(type)=','context','exten','alias','Set','NoOp','CDR(routeAlias)=','No\x20alias\x20set','inbound','push','CDR(routeid)=','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','CDR(type)=outbound','outbound','cutdigits','${EXTEN:','${EXTEN}','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','outboundrouteid=','hasOwnProperty','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','wav','trunk','options','split','length','param','phone','prefix','join','indexOf','U(xcally-mixmonitor-context)','replace','findAll','interval','IntervalId','then','intervals','filter','toLowerCase','tag','callerID','Set(CALLERID(all)=','NoOp(No\x20number\x20available)','queue','playback','includes','app','appType','answer','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','GotoIfTime',',${EXTEN},','outboundDial','appdata','XMCS-UNIQUEID=${CHANNEL(LINKEDID)}','priority','concat','last','define','voice_extensions','get','Hangup','lodash','./voiceExtension.attributes','exports'];(function(_0x520744,_0x5a7171){var _0x161d33=function(_0x4c7794){while(--_0x4c7794){_0x520744['push'](_0x520744['shift']());}};_0x161d33(++_0x5a7171);}(_0xbe49,0x135));var _0x9be4=function(_0x239d38,_0x3e7fef){_0x239d38=_0x239d38-0x0;var _0x397d0a=_0xbe49[_0x239d38];return _0x397d0a;};'use strict';var _=require(_0x9be4('0x0'));var attributes=require(_0x9be4('0x1'));module[_0x9be4('0x2')]=function(_0x2a98e4){var _0x37d576=_0x2a98e4['models'];function _0x369e03(_0x5d05e0){var _0x56a615=0x2;var _0x286790=[{'type':_0x5d05e0[_0x9be4('0x3')],'app':'Set','appdata':_0x9be4('0x4')+_0x5d05e0['type'],'context':_0x5d05e0[_0x9be4('0x5')],'exten':_0x5d05e0[_0x9be4('0x6')],'priority':_0x56a615++,'VoiceExtensionId':_0x5d05e0['id']},{'type':_0x5d05e0[_0x9be4('0x3')],'app':_0x5d05e0[_0x9be4('0x7')]?_0x9be4('0x8'):_0x9be4('0x9'),'appdata':_0x5d05e0['alias']?_0x9be4('0xa')+_0x5d05e0[_0x9be4('0x7')]:_0x9be4('0xb'),'context':_0x5d05e0['context'],'exten':_0x5d05e0[_0x9be4('0x6')],'priority':_0x56a615++,'VoiceExtensionId':_0x5d05e0['id']}];if(_0x5d05e0[_0x9be4('0x3')]===_0x9be4('0xc')){_0x286790[_0x9be4('0xd')]({'type':_0x9be4('0xc'),'app':_0x9be4('0x8'),'appdata':_0x9be4('0xe')+_0x5d05e0['id'],'context':_0x5d05e0['context'],'exten':_0x5d05e0[_0x9be4('0x6')],'priority':_0x56a615++,'VoiceExtensionId':_0x5d05e0['id']});}_0x286790[_0x9be4('0xd')]({'type':_0x5d05e0[_0x9be4('0x3')],'app':_0x9be4('0x8'),'appdata':_0x9be4('0xf'),'context':_0x5d05e0[_0x9be4('0x5')],'exten':_0x5d05e0['exten'],'priority':_0x56a615++,'VoiceExtensionId':_0x5d05e0['id']},{'type':_0x5d05e0[_0x9be4('0x3')],'app':'Set','appdata':_0x9be4('0x10'),'context':_0x5d05e0[_0x9be4('0x5')],'exten':_0x5d05e0['exten'],'priority':_0x56a615++,'VoiceExtensionId':_0x5d05e0['id']},{'type':_0x5d05e0[_0x9be4('0x3')],'app':_0x9be4('0x8'),'appdata':_0x9be4('0x11'),'context':_0x5d05e0['context'],'exten':_0x5d05e0[_0x9be4('0x6')],'priority':_0x56a615++,'VoiceExtensionId':_0x5d05e0['id']});return _0x286790;}function _0x55ea1b(_0x26cab4){var _0x26d93e=0x2;var _0x4be2f6=[{'type':'outbound','app':_0x9be4('0x8'),'appdata':_0x9be4('0x12'),'context':_0x26cab4[_0x9be4('0x5')],'exten':_0x26cab4['exten'],'priority':_0x26d93e++,'VoiceExtensionId':_0x26cab4['id']},{'type':'outbound','app':_0x26cab4[_0x9be4('0x7')]?_0x9be4('0x8'):_0x9be4('0x9'),'appdata':_0x26cab4[_0x9be4('0x7')]?_0x9be4('0xa')+_0x26cab4[_0x9be4('0x7')]:_0x9be4('0xb'),'context':_0x26cab4['context'],'exten':_0x26cab4[_0x9be4('0x6')],'priority':_0x26d93e++,'VoiceExtensionId':_0x26cab4['id']},{'type':_0x9be4('0x13'),'app':_0x9be4('0x8'),'appdata':'CDR(destination)='+(_0x26cab4[_0x9be4('0x14')]?_0x9be4('0x15')+_0x26cab4['cutdigits']+'}':_0x9be4('0x16')),'context':_0x26cab4[_0x9be4('0x5')],'exten':_0x26cab4[_0x9be4('0x6')],'priority':_0x26d93e++,'VoiceExtensionId':_0x26cab4['id']},{'type':_0x9be4('0x13'),'app':_0x9be4('0x8'),'appdata':'CDR(routeid)='+_0x26cab4['id'],'context':_0x26cab4[_0x9be4('0x5')],'exten':_0x26cab4['exten'],'priority':_0x26d93e++,'VoiceExtensionId':_0x26cab4['id']},{'type':'outbound','app':_0x9be4('0x17'),'appdata':_0x9be4('0x18')+(_0x26d93e+0x2)+'):Goto('+(_0x26d93e+0x1)+')','context':_0x26cab4[_0x9be4('0x5')],'exten':_0x26cab4[_0x9be4('0x6')],'priority':_0x26d93e++,'VoiceExtensionId':_0x26cab4['id']},{'type':'outbound','app':_0x9be4('0x8'),'appdata':_0x26cab4[_0x9be4('0x14')]?_0x9be4('0x19')+_0x26cab4[_0x9be4('0x14')]+'}':_0x9be4('0x1a'),'context':_0x26cab4[_0x9be4('0x5')],'exten':_0x26cab4[_0x9be4('0x6')],'priority':_0x26d93e++,'VoiceExtensionId':_0x26cab4['id']},{'type':_0x9be4('0x13'),'app':_0x9be4('0x8'),'appdata':_0x9be4('0xf'),'context':_0x26cab4[_0x9be4('0x5')],'exten':_0x26cab4[_0x9be4('0x6')],'priority':_0x26d93e++,'VoiceExtensionId':_0x26cab4['id']},{'type':_0x9be4('0x13'),'app':_0x9be4('0x8'),'appdata':_0x9be4('0x10'),'context':_0x26cab4['context'],'exten':_0x26cab4[_0x9be4('0x6')],'priority':_0x26d93e++,'VoiceExtensionId':_0x26cab4['id']},{'type':_0x9be4('0x13'),'app':_0x9be4('0x8'),'appdata':_0x9be4('0x11'),'context':_0x26cab4[_0x9be4('0x5')],'exten':_0x26cab4['exten'],'priority':_0x26d93e++,'VoiceExtensionId':_0x26cab4['id']},{'type':_0x9be4('0x13'),'app':_0x9be4('0x8'),'appdata':_0x9be4('0x1b')+_0x26cab4['id'],'context':_0x26cab4[_0x9be4('0x5')],'exten':_0x26cab4[_0x9be4('0x6')],'priority':_0x26d93e++,'VoiceExtensionId':_0x26cab4['id']}];if(_0x26cab4[_0x9be4('0x1c')](_0x9be4('0x1d'))&&_0x26cab4[_0x9be4('0x1d')]!==_0x9be4('0x1e')){_0x4be2f6[_0x9be4('0xd')]({'type':_0x9be4('0x13'),'app':_0x9be4('0x8'),'appdata':_0x9be4('0x1f'),'context':_0x26cab4[_0x9be4('0x5')],'exten':_0x26cab4[_0x9be4('0x6')],'priority':_0x26d93e++,'VoiceExtensionId':_0x26cab4['id']},{'type':_0x9be4('0x13'),'app':_0x9be4('0x8'),'appdata':_0x9be4('0x20')+_0x26cab4['recordingFormat']||_0x9be4('0x21'),'context':_0x26cab4[_0x9be4('0x5')],'exten':_0x26cab4[_0x9be4('0x6')],'priority':_0x26d93e++,'VoiceExtensionId':_0x26cab4['id']});}return _0x4be2f6;}function _0x47a207(_0x6f6e3e,_0x4cf603){var _0x4623a5=[{'name':_0x9be4('0x22'),'param':0x0},{'name':'timeout','param':0x1},{'name':_0x9be4('0x23'),'param':0x2},{'name':'url','param':0x3}];var _0x1fc2c9={};var _0x291179=_0x4cf603[_0x9be4('0x24')](',');var _0x2e911a=[];for(var _0x270bb5=0x0;_0x270bb5<_0x4623a5[_0x9be4('0x25')];_0x270bb5++){switch(_0x4623a5[_0x270bb5]['name']){case'trunk':_0x1fc2c9['trunk']=_0x291179[_0x4623a5[_0x270bb5][_0x9be4('0x26')]][_0x9be4('0x24')]('/')[0x1];_0x1fc2c9[_0x9be4('0x27')]=_0x291179[_0x4623a5[_0x270bb5][_0x9be4('0x26')]][_0x9be4('0x24')]('/')[0x2];_0x1fc2c9[_0x9be4('0x28')]=_0x1fc2c9[_0x9be4('0x27')]?_0x1fc2c9['phone'][_0x9be4('0x24')]('$')[0x0]:undefined;_0x1fc2c9[_0x9be4('0x27')]=_0x6f6e3e[_0x9be4('0x14')]?(_0x1fc2c9[_0x9be4('0x28')]||'')+_0x9be4('0x15')+_0x6f6e3e[_0x9be4('0x14')]+'}':(_0x1fc2c9[_0x9be4('0x28')]||'')+_0x9be4('0x16');_0x2e911a[_0x4623a5[_0x270bb5][_0x9be4('0x26')]]=['SIP',_0x1fc2c9[_0x9be4('0x22')],_0x1fc2c9[_0x9be4('0x27')]][_0x9be4('0x29')]('/');break;case _0x9be4('0x23'):_0x1fc2c9[_0x9be4('0x23')]=_0x291179[_0x4623a5[_0x270bb5][_0x9be4('0x26')]];if(_0x6f6e3e[_0x9be4('0x1d')]!==_0x9be4('0x1e')){if(_0x1fc2c9[_0x9be4('0x23')][_0x9be4('0x2a')]('U(xcally-mixmonitor-context)')<0x0){_0x1fc2c9[_0x9be4('0x23')]+=_0x9be4('0x2b');}}else{_0x1fc2c9['options']=_0x1fc2c9[_0x9be4('0x23')][_0x9be4('0x2c')](_0x9be4('0x2b'),'');}_0x2e911a[_0x4623a5[_0x270bb5][_0x9be4('0x26')]]=_0x1fc2c9['options'];break;default:_0x2e911a[_0x4623a5[_0x270bb5][_0x9be4('0x26')]]=_0x291179[_0x4623a5[_0x270bb5][_0x9be4('0x26')]];}}return _0x2e911a[_0x9be4('0x29')](',');}function _0xf94992(_0x70b624,_0xd89f3e,_0x4660c1){return new Promise(function(_0x408ebc,_0x4cef80){var _0x16496a=[];if(_['isEmpty'](_0xd89f3e))return _0x408ebc(_0x16496a);_0x37d576['Interval'][_0x9be4('0x2d')]({'attributes':['id',_0x9be4('0x2e'),_0x9be4('0x2f')],'raw':!![]})[_0x9be4('0x30')](function(_0x1b2d36){for(var _0x5025e5=0x0,_0x5763d=0x0;_0x5025e5<_0xd89f3e[_0x9be4('0x25')];_0x5025e5++,_0x5763d=0x0){var _0x249bbc=_0xd89f3e[_0x5025e5];var _0x1e179a=[];var _0x4c7276=[];delete _0x249bbc['id'];if(_0x249bbc[_0x9be4('0x2e')]!=='*,*,*,*'){_0x249bbc[_0x9be4('0x31')]=[_0x249bbc[_0x9be4('0x2e')]];}else{_0x249bbc[_0x9be4('0x31')]=_0x249bbc['IntervalId']?_['map'](_[_0x9be4('0x32')](_0x1b2d36,{'IntervalId':_0x249bbc[_0x9be4('0x2f')]}),'interval'):[];}_0x249bbc[_0x9be4('0x5')]=_0x70b624['context'];_0x249bbc[_0x9be4('0x6')]=_0x70b624[_0x9be4('0x6')];if(_0x249bbc[_0x9be4('0x3')])_0x249bbc[_0x9be4('0x3')]=_0x249bbc[_0x9be4('0x3')][_0x9be4('0x33')]();if(_0x70b624[_0x9be4('0x3')]===_0x9be4('0x13')){if(_0x249bbc['hasOwnProperty'](_0x9be4('0x34'))&&_0x249bbc[_0x9be4('0x34')]&&_0x249bbc[_0x9be4('0x34')]!=='--'){_0x1e179a[_0x9be4('0xd')]({'type':_0x249bbc['type'][_0x9be4('0x33')](),'app':_0x9be4('0x8'),'appdata':'CDR(tag)='+_0x249bbc[_0x9be4('0x34')],'context':_0x70b624[_0x9be4('0x5')],'exten':_0x70b624['exten'],'priority':_0x249bbc[_0x9be4('0x31')]['length']+_0x4660c1+_0x5763d++,'VoiceExtensionId':_0x70b624['id']});}_0x1e179a[_0x9be4('0xd')]({'type':_0x249bbc[_0x9be4('0x3')]['toLowerCase'](),'app':_0x9be4('0x17'),'appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):'+(_0x249bbc[_0x9be4('0x35')]?_0x9be4('0x36')+_0x249bbc[_0x9be4('0x35')]+')':_0x9be4('0x37')),'context':_0x70b624[_0x9be4('0x5')],'exten':_0x70b624['exten'],'priority':_0x249bbc[_0x9be4('0x31')][_0x9be4('0x25')]+_0x4660c1+_0x5763d++,'VoiceExtensionId':_0x70b624['id']});}else{if(_0x249bbc[_0x9be4('0x1c')]('answer')){if([_0x9be4('0x38'),_0x9be4('0x39')][_0x9be4('0x3a')](_0x249bbc[_0x9be4('0x3b')]['toLowerCase']())&&_0x249bbc[_0x9be4('0x3c')]!=='custom'){if(_0x249bbc[_0x9be4('0x3d')]){_0x1e179a[_0x9be4('0xd')]({'type':_0x249bbc[_0x9be4('0x3')][_0x9be4('0x33')](),'app':_0x9be4('0x17'),'appdata':_0x9be4('0x3e'),'context':_0x70b624[_0x9be4('0x5')],'exten':_0x70b624['exten'],'priority':_0x249bbc[_0x9be4('0x31')][_0x9be4('0x25')]+_0x4660c1+_0x5763d++,'VoiceExtensionId':_0x70b624['id']});_0x1e179a[_0x9be4('0xd')]({'type':_0x249bbc[_0x9be4('0x3')][_0x9be4('0x33')](),'app':_0x9be4('0x8'),'appdata':_0x9be4('0x3f'),'context':_0x70b624[_0x9be4('0x5')],'exten':_0x70b624[_0x9be4('0x6')],'priority':_0x249bbc[_0x9be4('0x31')][_0x9be4('0x25')]+_0x4660c1+_0x5763d++,'VoiceExtensionId':_0x70b624['id']});}else{_0x1e179a['push']({'type':_0x249bbc['type']['toLowerCase'](),'app':_0x9be4('0x17'),'appdata':_0x9be4('0x40'),'context':_0x70b624[_0x9be4('0x5')],'exten':_0x70b624[_0x9be4('0x6')],'priority':_0x249bbc[_0x9be4('0x31')]['length']+_0x4660c1+_0x5763d++,'VoiceExtensionId':_0x70b624['id']});_0x1e179a[_0x9be4('0xd')]({'type':_0x249bbc[_0x9be4('0x3')]['toLowerCase'](),'app':_0x9be4('0x8'),'appdata':_0x9be4('0x41'),'context':_0x70b624[_0x9be4('0x5')],'exten':_0x70b624[_0x9be4('0x6')],'priority':_0x249bbc[_0x9be4('0x31')][_0x9be4('0x25')]+_0x4660c1+_0x5763d++,'VoiceExtensionId':_0x70b624['id']});}}}}for(var _0x4bf263=0x0;_0x4bf263<_0x249bbc[_0x9be4('0x31')][_0x9be4('0x25')];_0x4bf263++){var _0x1241c8=_0x4660c1+_0x249bbc['intervals'][_0x9be4('0x25')];var _0x4157c4=_0x4bf263===_0x249bbc[_0x9be4('0x31')][_0x9be4('0x25')]-0x1?_0x4660c1+_0x1e179a[_0x9be4('0x25')]+_0x4c7276[_0x9be4('0x25')]+0x2:_0x4660c1+_0x4bf263+0x1;_0x1e179a['splice'](_0x4bf263,0x0,{'type':_0x70b624['type'],'app':_0x9be4('0x42'),'appdata':_0x249bbc[_0x9be4('0x31')][_0x4bf263]+'?'+_0x70b624['context']+_0x9be4('0x43')+_0x1241c8+':'+_0x70b624[_0x9be4('0x5')]+_0x9be4('0x43')+_0x4157c4,'exten':_0x70b624[_0x9be4('0x6')],'context':_0x70b624['context'],'priority':_0x4660c1+_0x4bf263,'VoiceExtensionId':_0x70b624['id']});}if(_0x249bbc[_0x9be4('0x3c')]===_0x9be4('0x44')){_0x249bbc[_0x9be4('0x45')]=_0x47a207(_0x70b624,_0x249bbc[_0x9be4('0x45')]);}if(_0x249bbc[_0x9be4('0x3c')]==='agi'){_0x1e179a[_0x9be4('0xd')]({'type':_0x249bbc[_0x9be4('0x3')]['toLowerCase'](),'app':'Set','appdata':_0x9be4('0x46'),'context':_0x70b624[_0x9be4('0x5')],'exten':_0x70b624[_0x9be4('0x6')],'priority':_0x249bbc[_0x9be4('0x31')][_0x9be4('0x25')]+_0x4660c1+_0x5763d++,'VoiceExtensionId':_0x70b624['id']});}_0x249bbc[_0x9be4('0x47')]=_0x1e179a['length']?_['last'](_0x1e179a)[_0x9be4('0x47')]+0x1:_0x4660c1;_0x16496a=_[_0x9be4('0x48')](_0x16496a,_0x1e179a,[_0x249bbc],_0x4c7276);_0x4660c1=_[_0x9be4('0x49')](_0x16496a)['priority']+0x1;}return _0x408ebc(_0x16496a);})['catch'](function(_0xaae169){_0x4cef80(_0xaae169);});});}return _0x2a98e4[_0x9be4('0x4a')]('VoiceExtension',attributes,{'tableName':_0x9be4('0x4b'),'paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x386381){var _0x2690e6=this[_0x9be4('0x4c')]({'plain':!![]});var _0x28f2a7=_0x2690e6[_0x9be4('0x3')]===_0x9be4('0x13')?_0x55ea1b(_0x2690e6):_0x369e03(_0x2690e6);return _0xf94992(_0x2690e6,_0x386381,_[_0x9be4('0x49')](_0x28f2a7)[_0x9be4('0x47')]+0x1)[_0x9be4('0x30')](function(_0x1d3ba8){var _0x28eee1=_[_0x9be4('0x48')](_0x28f2a7,_0x1d3ba8);_0x28eee1['push']({'type':_0x2690e6[_0x9be4('0x3')],'app':_0x9be4('0x4d'),'exten':_0x2690e6[_0x9be4('0x6')],'context':_0x2690e6[_0x9be4('0x5')],'priority':_[_0x9be4('0x49')](_0x28eee1)[_0x9be4('0x47')]+0x1,'VoiceExtensionId':_0x2690e6['id']});return _0x28eee1;});}}});};