38aa36eae222cf61d5d82b119024508b40520b68
[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 _0xc0e1=['alias','NoOp','No\x20alias\x20set','push','inbound','XCALLY-MOTION-ANSWER=0','outbound','CDR(type)=outbound','CDR(destination)=','cutdigits','${EXTEN:','CDR(routeid)=','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','MONITOR_OPTIONS=ab','hasOwnProperty','recordingFormat','none','_XCALLY_MIXMONITOR_FORMAT=','timeout','options','url','split','length','name','trunk','phone','prefix','${EXTEN}','SIP','join','param','indexOf','U(xcally-mixmonitor-context)','replace','isEmpty','Interval','findAll','interval','IntervalId','*,*,*,*','filter','toLowerCase','tag','CDR(tag)=','intervals','Set(CALLERID(all)=','callerID','NoOp(No\x20number\x20available)','answer','queue','includes','app','appType','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','splice','GotoIfTime',',${EXTEN},','outboundDial','appdata','priority','catch','define','VoiceExtension','voice_extensions','get','last','concat','Hangup','lodash','./voiceExtension.attributes','exports','models','type','Set','CDR(type)=','context','exten'];(function(_0x1039eb,_0x2f1513){var _0x15a082=function(_0x1a702c){while(--_0x1a702c){_0x1039eb['push'](_0x1039eb['shift']());}};_0x15a082(++_0x2f1513);}(_0xc0e1,0x147));var _0x1c0e=function(_0x2e5f9c,_0x134a52){_0x2e5f9c=_0x2e5f9c-0x0;var _0x538b44=_0xc0e1[_0x2e5f9c];return _0x538b44;};'use strict';var _=require(_0x1c0e('0x0'));var attributes=require(_0x1c0e('0x1'));module[_0x1c0e('0x2')]=function(_0x5cbf58){var _0x3b4725=_0x5cbf58[_0x1c0e('0x3')];function _0x286c95(_0x2150a5){var _0x157736=0x2;var _0x42606e=[{'type':_0x2150a5[_0x1c0e('0x4')],'app':_0x1c0e('0x5'),'appdata':_0x1c0e('0x6')+_0x2150a5[_0x1c0e('0x4')],'context':_0x2150a5[_0x1c0e('0x7')],'exten':_0x2150a5[_0x1c0e('0x8')],'priority':_0x157736++,'VoiceExtensionId':_0x2150a5['id']},{'type':_0x2150a5[_0x1c0e('0x4')],'app':_0x2150a5[_0x1c0e('0x9')]?'Set':_0x1c0e('0xa'),'appdata':_0x2150a5[_0x1c0e('0x9')]?'CDR(routeAlias)='+_0x2150a5['alias']:_0x1c0e('0xb'),'context':_0x2150a5[_0x1c0e('0x7')],'exten':_0x2150a5[_0x1c0e('0x8')],'priority':_0x157736++,'VoiceExtensionId':_0x2150a5['id']}];if(_0x2150a5['type']==='inbound'){_0x42606e[_0x1c0e('0xc')]({'type':_0x1c0e('0xd'),'app':_0x1c0e('0x5'),'appdata':'CDR(routeid)='+_0x2150a5['id'],'context':_0x2150a5['context'],'exten':_0x2150a5['exten'],'priority':_0x157736++,'VoiceExtensionId':_0x2150a5['id']});}_0x42606e['push']({'type':_0x2150a5[_0x1c0e('0x4')],'app':_0x1c0e('0x5'),'appdata':_0x1c0e('0xe'),'context':_0x2150a5[_0x1c0e('0x7')],'exten':_0x2150a5[_0x1c0e('0x8')],'priority':_0x157736++,'VoiceExtensionId':_0x2150a5['id']},{'type':_0x2150a5[_0x1c0e('0x4')],'app':_0x1c0e('0x5'),'appdata':'XCALLY-MOTION-PROGRESS=0','context':_0x2150a5['context'],'exten':_0x2150a5[_0x1c0e('0x8')],'priority':_0x157736++,'VoiceExtensionId':_0x2150a5['id']},{'type':_0x2150a5['type'],'app':_0x1c0e('0x5'),'appdata':'MONITOR_OPTIONS=ab','context':_0x2150a5[_0x1c0e('0x7')],'exten':_0x2150a5[_0x1c0e('0x8')],'priority':_0x157736++,'VoiceExtensionId':_0x2150a5['id']});return _0x42606e;}function _0x449c7d(_0x2b2fa6){var _0x20fb5b=0x2;var _0x3b0f76=[{'type':_0x1c0e('0xf'),'app':'Set','appdata':_0x1c0e('0x10'),'context':_0x2b2fa6[_0x1c0e('0x7')],'exten':_0x2b2fa6[_0x1c0e('0x8')],'priority':_0x20fb5b++,'VoiceExtensionId':_0x2b2fa6['id']},{'type':_0x1c0e('0xf'),'app':_0x2b2fa6[_0x1c0e('0x9')]?'Set':_0x1c0e('0xa'),'appdata':_0x2b2fa6[_0x1c0e('0x9')]?'CDR(routeAlias)='+_0x2b2fa6[_0x1c0e('0x9')]:_0x1c0e('0xb'),'context':_0x2b2fa6['context'],'exten':_0x2b2fa6[_0x1c0e('0x8')],'priority':_0x20fb5b++,'VoiceExtensionId':_0x2b2fa6['id']},{'type':_0x1c0e('0xf'),'app':_0x1c0e('0x5'),'appdata':_0x1c0e('0x11')+(_0x2b2fa6[_0x1c0e('0x12')]?_0x1c0e('0x13')+_0x2b2fa6[_0x1c0e('0x12')]+'}':'${EXTEN}'),'context':_0x2b2fa6['context'],'exten':_0x2b2fa6['exten'],'priority':_0x20fb5b++,'VoiceExtensionId':_0x2b2fa6['id']},{'type':_0x1c0e('0xf'),'app':_0x1c0e('0x5'),'appdata':_0x1c0e('0x14')+_0x2b2fa6['id'],'context':_0x2b2fa6[_0x1c0e('0x7')],'exten':_0x2b2fa6['exten'],'priority':_0x20fb5b++,'VoiceExtensionId':_0x2b2fa6['id']},{'type':_0x1c0e('0xf'),'app':_0x1c0e('0x15'),'appdata':_0x1c0e('0x16')+(_0x20fb5b+0x2)+'):Goto('+(_0x20fb5b+0x1)+')','context':_0x2b2fa6['context'],'exten':_0x2b2fa6[_0x1c0e('0x8')],'priority':_0x20fb5b++,'VoiceExtensionId':_0x2b2fa6['id']},{'type':_0x1c0e('0xf'),'app':_0x1c0e('0x5'),'appdata':_0x2b2fa6['cutdigits']?_0x1c0e('0x17')+_0x2b2fa6[_0x1c0e('0x12')]+'}':_0x1c0e('0x18'),'context':_0x2b2fa6[_0x1c0e('0x7')],'exten':_0x2b2fa6['exten'],'priority':_0x20fb5b++,'VoiceExtensionId':_0x2b2fa6['id']},{'type':_0x1c0e('0xf'),'app':_0x1c0e('0x5'),'appdata':'XCALLY-MOTION-ANSWER=0','context':_0x2b2fa6['context'],'exten':_0x2b2fa6[_0x1c0e('0x8')],'priority':_0x20fb5b++,'VoiceExtensionId':_0x2b2fa6['id']},{'type':'outbound','app':_0x1c0e('0x5'),'appdata':'XCALLY-MOTION-PROGRESS=0','context':_0x2b2fa6[_0x1c0e('0x7')],'exten':_0x2b2fa6[_0x1c0e('0x8')],'priority':_0x20fb5b++,'VoiceExtensionId':_0x2b2fa6['id']},{'type':_0x1c0e('0xf'),'app':_0x1c0e('0x5'),'appdata':_0x1c0e('0x19'),'context':_0x2b2fa6[_0x1c0e('0x7')],'exten':_0x2b2fa6[_0x1c0e('0x8')],'priority':_0x20fb5b++,'VoiceExtensionId':_0x2b2fa6['id']},{'type':_0x1c0e('0xf'),'app':'Set','appdata':'outboundrouteid='+_0x2b2fa6['id'],'context':_0x2b2fa6[_0x1c0e('0x7')],'exten':_0x2b2fa6[_0x1c0e('0x8')],'priority':_0x20fb5b++,'VoiceExtensionId':_0x2b2fa6['id']}];if(_0x2b2fa6[_0x1c0e('0x1a')]('recordingFormat')&&_0x2b2fa6[_0x1c0e('0x1b')]!==_0x1c0e('0x1c')){_0x3b0f76['push']({'type':_0x1c0e('0xf'),'app':_0x1c0e('0x5'),'appdata':'_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','context':_0x2b2fa6[_0x1c0e('0x7')],'exten':_0x2b2fa6['exten'],'priority':_0x20fb5b++,'VoiceExtensionId':_0x2b2fa6['id']},{'type':_0x1c0e('0xf'),'app':_0x1c0e('0x5'),'appdata':_0x1c0e('0x1d')+_0x2b2fa6[_0x1c0e('0x1b')]||'wav','context':_0x2b2fa6[_0x1c0e('0x7')],'exten':_0x2b2fa6[_0x1c0e('0x8')],'priority':_0x20fb5b++,'VoiceExtensionId':_0x2b2fa6['id']});}return _0x3b0f76;}function _0x4f65b7(_0x5ed582,_0x4bd77c){var _0x3adbcb=[{'name':'trunk','param':0x0},{'name':_0x1c0e('0x1e'),'param':0x1},{'name':_0x1c0e('0x1f'),'param':0x2},{'name':_0x1c0e('0x20'),'param':0x3}];var _0x5abaa1={};var _0x19840f=_0x4bd77c[_0x1c0e('0x21')](',');var _0x681f32=[];for(var _0x464905=0x0;_0x464905<_0x3adbcb[_0x1c0e('0x22')];_0x464905++){switch(_0x3adbcb[_0x464905][_0x1c0e('0x23')]){case'trunk':_0x5abaa1[_0x1c0e('0x24')]=_0x19840f[_0x3adbcb[_0x464905]['param']][_0x1c0e('0x21')]('/')[0x1];_0x5abaa1[_0x1c0e('0x25')]=_0x19840f[_0x3adbcb[_0x464905]['param']]['split']('/')[0x2];_0x5abaa1[_0x1c0e('0x26')]=_0x5abaa1[_0x1c0e('0x25')]?_0x5abaa1[_0x1c0e('0x25')]['split']('$')[0x0]:undefined;_0x5abaa1['phone']=_0x5ed582['cutdigits']?(_0x5abaa1[_0x1c0e('0x26')]||'')+_0x1c0e('0x13')+_0x5ed582[_0x1c0e('0x12')]+'}':(_0x5abaa1[_0x1c0e('0x26')]||'')+_0x1c0e('0x27');_0x681f32[_0x3adbcb[_0x464905]['param']]=[_0x1c0e('0x28'),_0x5abaa1[_0x1c0e('0x24')],_0x5abaa1[_0x1c0e('0x25')]][_0x1c0e('0x29')]('/');break;case _0x1c0e('0x1f'):_0x5abaa1[_0x1c0e('0x1f')]=_0x19840f[_0x3adbcb[_0x464905][_0x1c0e('0x2a')]];if(_0x5ed582[_0x1c0e('0x1b')]!==_0x1c0e('0x1c')){if(_0x5abaa1[_0x1c0e('0x1f')][_0x1c0e('0x2b')](_0x1c0e('0x2c'))<0x0){_0x5abaa1[_0x1c0e('0x1f')]+=_0x1c0e('0x2c');}}else{_0x5abaa1[_0x1c0e('0x1f')]=_0x5abaa1[_0x1c0e('0x1f')][_0x1c0e('0x2d')](_0x1c0e('0x2c'),'');}_0x681f32[_0x3adbcb[_0x464905][_0x1c0e('0x2a')]]=_0x5abaa1[_0x1c0e('0x1f')];break;default:_0x681f32[_0x3adbcb[_0x464905][_0x1c0e('0x2a')]]=_0x19840f[_0x3adbcb[_0x464905]['param']];}}return _0x681f32[_0x1c0e('0x29')](',');}function _0x6a10fb(_0xac4a5b,_0x413b26,_0x226544){return new Promise(function(_0x55a112,_0x3f0931){var _0x5b5b1d=[];if(_[_0x1c0e('0x2e')](_0x413b26))return _0x55a112(_0x5b5b1d);_0x3b4725[_0x1c0e('0x2f')][_0x1c0e('0x30')]({'attributes':['id',_0x1c0e('0x31'),_0x1c0e('0x32')],'raw':!![]})['then'](function(_0x5f522d){for(var _0x39fda0=0x0,_0x452f47=0x0;_0x39fda0<_0x413b26[_0x1c0e('0x22')];_0x39fda0++,_0x452f47=0x0){var _0x111ca8=_0x413b26[_0x39fda0];var _0x1e012d=[];var _0x4097c2=[];delete _0x111ca8['id'];if(_0x111ca8['interval']!==_0x1c0e('0x33')){_0x111ca8['intervals']=[_0x111ca8[_0x1c0e('0x31')]];}else{_0x111ca8['intervals']=_0x111ca8[_0x1c0e('0x32')]?_['map'](_[_0x1c0e('0x34')](_0x5f522d,{'IntervalId':_0x111ca8[_0x1c0e('0x32')]}),_0x1c0e('0x31')):[];}_0x111ca8[_0x1c0e('0x7')]=_0xac4a5b[_0x1c0e('0x7')];_0x111ca8['exten']=_0xac4a5b[_0x1c0e('0x8')];if(_0x111ca8['type'])_0x111ca8[_0x1c0e('0x4')]=_0x111ca8[_0x1c0e('0x4')][_0x1c0e('0x35')]();if(_0xac4a5b[_0x1c0e('0x4')]===_0x1c0e('0xf')){if(_0x111ca8[_0x1c0e('0x1a')](_0x1c0e('0x36'))&&_0x111ca8[_0x1c0e('0x36')]&&_0x111ca8[_0x1c0e('0x36')]!=='--'){_0x1e012d[_0x1c0e('0xc')]({'type':_0x111ca8['type'][_0x1c0e('0x35')](),'app':_0x1c0e('0x5'),'appdata':_0x1c0e('0x37')+_0x111ca8[_0x1c0e('0x36')],'context':_0xac4a5b[_0x1c0e('0x7')],'exten':_0xac4a5b[_0x1c0e('0x8')],'priority':_0x111ca8[_0x1c0e('0x38')][_0x1c0e('0x22')]+_0x226544+_0x452f47++,'VoiceExtensionId':_0xac4a5b['id']});}_0x1e012d[_0x1c0e('0xc')]({'type':_0x111ca8[_0x1c0e('0x4')]['toLowerCase'](),'app':_0x1c0e('0x15'),'appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):'+(_0x111ca8['callerID']?_0x1c0e('0x39')+_0x111ca8[_0x1c0e('0x3a')]+')':_0x1c0e('0x3b')),'context':_0xac4a5b[_0x1c0e('0x7')],'exten':_0xac4a5b[_0x1c0e('0x8')],'priority':_0x111ca8[_0x1c0e('0x38')][_0x1c0e('0x22')]+_0x226544+_0x452f47++,'VoiceExtensionId':_0xac4a5b['id']});}else{if(_0x111ca8[_0x1c0e('0x1a')](_0x1c0e('0x3c'))){if([_0x1c0e('0x3d'),'playback'][_0x1c0e('0x3e')](_0x111ca8[_0x1c0e('0x3f')][_0x1c0e('0x35')]())&&_0x111ca8[_0x1c0e('0x40')]!==_0x1c0e('0x41')){if(_0x111ca8[_0x1c0e('0x3c')]){_0x1e012d[_0x1c0e('0xc')]({'type':_0x111ca8[_0x1c0e('0x4')]['toLowerCase'](),'app':_0x1c0e('0x15'),'appdata':_0x1c0e('0x42'),'context':_0xac4a5b['context'],'exten':_0xac4a5b[_0x1c0e('0x8')],'priority':_0x111ca8[_0x1c0e('0x38')][_0x1c0e('0x22')]+_0x226544+_0x452f47++,'VoiceExtensionId':_0xac4a5b['id']});_0x1e012d[_0x1c0e('0xc')]({'type':_0x111ca8[_0x1c0e('0x4')][_0x1c0e('0x35')](),'app':_0x1c0e('0x5'),'appdata':_0x1c0e('0x43'),'context':_0xac4a5b[_0x1c0e('0x7')],'exten':_0xac4a5b[_0x1c0e('0x8')],'priority':_0x111ca8[_0x1c0e('0x38')][_0x1c0e('0x22')]+_0x226544+_0x452f47++,'VoiceExtensionId':_0xac4a5b['id']});}else{_0x1e012d[_0x1c0e('0xc')]({'type':_0x111ca8[_0x1c0e('0x4')][_0x1c0e('0x35')](),'app':'ExecIf','appdata':_0x1c0e('0x44'),'context':_0xac4a5b[_0x1c0e('0x7')],'exten':_0xac4a5b[_0x1c0e('0x8')],'priority':_0x111ca8[_0x1c0e('0x38')][_0x1c0e('0x22')]+_0x226544+_0x452f47++,'VoiceExtensionId':_0xac4a5b['id']});_0x1e012d[_0x1c0e('0xc')]({'type':_0x111ca8[_0x1c0e('0x4')][_0x1c0e('0x35')](),'app':_0x1c0e('0x5'),'appdata':_0x1c0e('0x45'),'context':_0xac4a5b[_0x1c0e('0x7')],'exten':_0xac4a5b['exten'],'priority':_0x111ca8[_0x1c0e('0x38')]['length']+_0x226544+_0x452f47++,'VoiceExtensionId':_0xac4a5b['id']});}}}}for(var _0x10ad63=0x0;_0x10ad63<_0x111ca8[_0x1c0e('0x38')][_0x1c0e('0x22')];_0x10ad63++){var _0x3916b1=_0x226544+_0x111ca8['intervals'][_0x1c0e('0x22')];var _0x222c5c=_0x10ad63===_0x111ca8[_0x1c0e('0x38')][_0x1c0e('0x22')]-0x1?_0x226544+_0x1e012d['length']+_0x4097c2[_0x1c0e('0x22')]+0x2:_0x226544+_0x10ad63+0x1;_0x1e012d[_0x1c0e('0x46')](_0x10ad63,0x0,{'type':_0xac4a5b['type'],'app':_0x1c0e('0x47'),'appdata':_0x111ca8[_0x1c0e('0x38')][_0x10ad63]+'?'+_0xac4a5b[_0x1c0e('0x7')]+_0x1c0e('0x48')+_0x3916b1+':'+_0xac4a5b['context']+_0x1c0e('0x48')+_0x222c5c,'exten':_0xac4a5b[_0x1c0e('0x8')],'context':_0xac4a5b[_0x1c0e('0x7')],'priority':_0x226544+_0x10ad63,'VoiceExtensionId':_0xac4a5b['id']});}if(_0x111ca8[_0x1c0e('0x40')]===_0x1c0e('0x49'))_0x111ca8[_0x1c0e('0x4a')]=_0x4f65b7(_0xac4a5b,_0x111ca8[_0x1c0e('0x4a')]);_0x111ca8[_0x1c0e('0x4b')]=_0x1e012d['length']?_['last'](_0x1e012d)['priority']+0x1:_0x226544;_0x5b5b1d=_['concat'](_0x5b5b1d,_0x1e012d,[_0x111ca8],_0x4097c2);_0x226544=_['last'](_0x5b5b1d)[_0x1c0e('0x4b')]+0x1;}return _0x55a112(_0x5b5b1d);})[_0x1c0e('0x4c')](function(_0x502214){_0x3f0931(_0x502214);});});}return _0x5cbf58[_0x1c0e('0x4d')](_0x1c0e('0x4e'),attributes,{'tableName':_0x1c0e('0x4f'),'paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x2b1b26){var _0x1cc1d6=this[_0x1c0e('0x50')]({'plain':!![]});var _0x5782f9=_0x1cc1d6[_0x1c0e('0x4')]===_0x1c0e('0xf')?_0x449c7d(_0x1cc1d6):_0x286c95(_0x1cc1d6);return _0x6a10fb(_0x1cc1d6,_0x2b1b26,_[_0x1c0e('0x51')](_0x5782f9)[_0x1c0e('0x4b')]+0x1)['then'](function(_0x55d57e){var _0x4f529b=_[_0x1c0e('0x52')](_0x5782f9,_0x55d57e);_0x4f529b[_0x1c0e('0xc')]({'type':_0x1cc1d6[_0x1c0e('0x4')],'app':_0x1c0e('0x53'),'exten':_0x1cc1d6[_0x1c0e('0x8')],'context':_0x1cc1d6['context'],'priority':_[_0x1c0e('0x51')](_0x4f529b)[_0x1c0e('0x4b')]+0x1,'VoiceExtensionId':_0x1cc1d6['id']});return _0x4f529b;});}}});};