b7ff07f0f9263da07da311d445fe80c4307dd3c3
[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 _0xc180=['$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):','Set(CALLERID(all)=','callerID','NoOp(No\x20number\x20available)','answer','queue','playback','includes','app','appType','custom','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','splice','GotoIfTime',',${EXTEN},','appdata','agi','XMCS-UNIQUEID=${CHANNEL(LINKEDID)}','priority','last','catch','define','VoiceExtension','voice_extensions','get','then','Hangup','lodash','./voiceExtension.attributes','exports','models','type','CDR(type)=','context','exten','alias','Set','NoOp','No\x20alias\x20set','inbound','push','CDR(routeid)=','XCALLY-MOTION-PROGRESS=0','outbound','CDR(type)=outbound','CDR(routeAlias)=','CDR(destination)=','cutdigits','${EXTEN:','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=noprefix','XCALLY-MOTION-ANSWER=0','outboundrouteid=','hasOwnProperty','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','wav','trunk','timeout','options','url','split','name','param','phone','prefix','${EXTEN}','SIP','join','indexOf','U(xcally-mixmonitor-context)','replace','isEmpty','findAll','interval','IntervalId','length','*,*,*,*','intervals','map','filter','toLowerCase','CDR(tag)=','tag'];(function(_0x435a63,_0x2672e0){var _0x3f1b85=function(_0x500689){while(--_0x500689){_0x435a63['push'](_0x435a63['shift']());}};_0x3f1b85(++_0x2672e0);}(_0xc180,0x185));var _0x0c18=function(_0x22b643,_0x43ff1a){_0x22b643=_0x22b643-0x0;var _0x2d518a=_0xc180[_0x22b643];return _0x2d518a;};'use strict';var _=require(_0x0c18('0x0'));var attributes=require(_0x0c18('0x1'));module[_0x0c18('0x2')]=function(_0x5764a7){var _0x585e63=_0x5764a7[_0x0c18('0x3')];function _0x51de07(_0x4549a2){var _0x1428f2=0x2;var _0xca65b4=[{'type':_0x4549a2[_0x0c18('0x4')],'app':'Set','appdata':_0x0c18('0x5')+_0x4549a2[_0x0c18('0x4')],'context':_0x4549a2[_0x0c18('0x6')],'exten':_0x4549a2[_0x0c18('0x7')],'priority':_0x1428f2++,'VoiceExtensionId':_0x4549a2['id']},{'type':_0x4549a2[_0x0c18('0x4')],'app':_0x4549a2[_0x0c18('0x8')]?_0x0c18('0x9'):_0x0c18('0xa'),'appdata':_0x4549a2['alias']?'CDR(routeAlias)='+_0x4549a2[_0x0c18('0x8')]:_0x0c18('0xb'),'context':_0x4549a2[_0x0c18('0x6')],'exten':_0x4549a2['exten'],'priority':_0x1428f2++,'VoiceExtensionId':_0x4549a2['id']}];if(_0x4549a2[_0x0c18('0x4')]===_0x0c18('0xc')){_0xca65b4[_0x0c18('0xd')]({'type':_0x0c18('0xc'),'app':_0x0c18('0x9'),'appdata':_0x0c18('0xe')+_0x4549a2['id'],'context':_0x4549a2[_0x0c18('0x6')],'exten':_0x4549a2[_0x0c18('0x7')],'priority':_0x1428f2++,'VoiceExtensionId':_0x4549a2['id']});}_0xca65b4[_0x0c18('0xd')]({'type':_0x4549a2[_0x0c18('0x4')],'app':'Set','appdata':'XCALLY-MOTION-ANSWER=0','context':_0x4549a2[_0x0c18('0x6')],'exten':_0x4549a2[_0x0c18('0x7')],'priority':_0x1428f2++,'VoiceExtensionId':_0x4549a2['id']},{'type':_0x4549a2['type'],'app':'Set','appdata':_0x0c18('0xf'),'context':_0x4549a2[_0x0c18('0x6')],'exten':_0x4549a2[_0x0c18('0x7')],'priority':_0x1428f2++,'VoiceExtensionId':_0x4549a2['id']},{'type':_0x4549a2[_0x0c18('0x4')],'app':'Set','appdata':'MONITOR_OPTIONS=ab','context':_0x4549a2[_0x0c18('0x6')],'exten':_0x4549a2[_0x0c18('0x7')],'priority':_0x1428f2++,'VoiceExtensionId':_0x4549a2['id']});return _0xca65b4;}function _0xb983f6(_0x3aef94){var _0x4cab0e=0x2;var _0x1cfcea=[{'type':_0x0c18('0x10'),'app':_0x0c18('0x9'),'appdata':_0x0c18('0x11'),'context':_0x3aef94[_0x0c18('0x6')],'exten':_0x3aef94[_0x0c18('0x7')],'priority':_0x4cab0e++,'VoiceExtensionId':_0x3aef94['id']},{'type':'outbound','app':_0x3aef94[_0x0c18('0x8')]?_0x0c18('0x9'):'NoOp','appdata':_0x3aef94[_0x0c18('0x8')]?_0x0c18('0x12')+_0x3aef94[_0x0c18('0x8')]:'No\x20alias\x20set','context':_0x3aef94['context'],'exten':_0x3aef94['exten'],'priority':_0x4cab0e++,'VoiceExtensionId':_0x3aef94['id']},{'type':_0x0c18('0x10'),'app':_0x0c18('0x9'),'appdata':_0x0c18('0x13')+(_0x3aef94[_0x0c18('0x14')]?_0x0c18('0x15')+_0x3aef94[_0x0c18('0x14')]+'}':'${EXTEN}'),'context':_0x3aef94['context'],'exten':_0x3aef94[_0x0c18('0x7')],'priority':_0x4cab0e++,'VoiceExtensionId':_0x3aef94['id']},{'type':_0x0c18('0x10'),'app':'Set','appdata':'CDR(routeid)='+_0x3aef94['id'],'context':_0x3aef94['context'],'exten':_0x3aef94[_0x0c18('0x7')],'priority':_0x4cab0e++,'VoiceExtensionId':_0x3aef94['id']},{'type':_0x0c18('0x10'),'app':_0x0c18('0x16'),'appdata':_0x0c18('0x17')+(_0x4cab0e+0x2)+_0x0c18('0x18')+(_0x4cab0e+0x1)+')','context':_0x3aef94[_0x0c18('0x6')],'exten':_0x3aef94[_0x0c18('0x7')],'priority':_0x4cab0e++,'VoiceExtensionId':_0x3aef94['id']},{'type':'outbound','app':_0x0c18('0x9'),'appdata':_0x3aef94[_0x0c18('0x14')]?'CDR(prefix)=${EXTEN:0:'+_0x3aef94['cutdigits']+'}':_0x0c18('0x19'),'context':_0x3aef94[_0x0c18('0x6')],'exten':_0x3aef94[_0x0c18('0x7')],'priority':_0x4cab0e++,'VoiceExtensionId':_0x3aef94['id']},{'type':'outbound','app':_0x0c18('0x9'),'appdata':_0x0c18('0x1a'),'context':_0x3aef94[_0x0c18('0x6')],'exten':_0x3aef94[_0x0c18('0x7')],'priority':_0x4cab0e++,'VoiceExtensionId':_0x3aef94['id']},{'type':_0x0c18('0x10'),'app':_0x0c18('0x9'),'appdata':_0x0c18('0xf'),'context':_0x3aef94[_0x0c18('0x6')],'exten':_0x3aef94[_0x0c18('0x7')],'priority':_0x4cab0e++,'VoiceExtensionId':_0x3aef94['id']},{'type':_0x0c18('0x10'),'app':'Set','appdata':'MONITOR_OPTIONS=ab','context':_0x3aef94[_0x0c18('0x6')],'exten':_0x3aef94[_0x0c18('0x7')],'priority':_0x4cab0e++,'VoiceExtensionId':_0x3aef94['id']},{'type':_0x0c18('0x10'),'app':'Set','appdata':_0x0c18('0x1b')+_0x3aef94['id'],'context':_0x3aef94[_0x0c18('0x6')],'exten':_0x3aef94['exten'],'priority':_0x4cab0e++,'VoiceExtensionId':_0x3aef94['id']}];if(_0x3aef94[_0x0c18('0x1c')](_0x0c18('0x1d'))&&_0x3aef94[_0x0c18('0x1d')]!==_0x0c18('0x1e')){_0x1cfcea[_0x0c18('0xd')]({'type':_0x0c18('0x10'),'app':'Set','appdata':_0x0c18('0x1f'),'context':_0x3aef94[_0x0c18('0x6')],'exten':_0x3aef94[_0x0c18('0x7')],'priority':_0x4cab0e++,'VoiceExtensionId':_0x3aef94['id']},{'type':'outbound','app':'Set','appdata':_0x0c18('0x20')+_0x3aef94[_0x0c18('0x1d')]||_0x0c18('0x21'),'context':_0x3aef94[_0x0c18('0x6')],'exten':_0x3aef94[_0x0c18('0x7')],'priority':_0x4cab0e++,'VoiceExtensionId':_0x3aef94['id']});}return _0x1cfcea;}function _0x15d77c(_0x47b1fd,_0x393abc){var _0x22387c=[{'name':_0x0c18('0x22'),'param':0x0},{'name':_0x0c18('0x23'),'param':0x1},{'name':_0x0c18('0x24'),'param':0x2},{'name':_0x0c18('0x25'),'param':0x3}];var _0x13dbb6={};var _0x1638bd=_0x393abc[_0x0c18('0x26')](',');var _0x46daa4=[];for(var _0xd79c96=0x0;_0xd79c96<_0x22387c['length'];_0xd79c96++){switch(_0x22387c[_0xd79c96][_0x0c18('0x27')]){case _0x0c18('0x22'):_0x13dbb6['trunk']=_0x1638bd[_0x22387c[_0xd79c96][_0x0c18('0x28')]][_0x0c18('0x26')]('/')[0x1];_0x13dbb6[_0x0c18('0x29')]=_0x1638bd[_0x22387c[_0xd79c96]['param']][_0x0c18('0x26')]('/')[0x2];_0x13dbb6[_0x0c18('0x2a')]=_0x13dbb6[_0x0c18('0x29')]?_0x13dbb6[_0x0c18('0x29')][_0x0c18('0x26')]('$')[0x0]:undefined;_0x13dbb6[_0x0c18('0x29')]=_0x47b1fd[_0x0c18('0x14')]?(_0x13dbb6['prefix']||'')+_0x0c18('0x15')+_0x47b1fd[_0x0c18('0x14')]+'}':(_0x13dbb6[_0x0c18('0x2a')]||'')+_0x0c18('0x2b');_0x46daa4[_0x22387c[_0xd79c96][_0x0c18('0x28')]]=[_0x0c18('0x2c'),_0x13dbb6['trunk'],_0x13dbb6[_0x0c18('0x29')]][_0x0c18('0x2d')]('/');break;case'options':_0x13dbb6['options']=_0x1638bd[_0x22387c[_0xd79c96][_0x0c18('0x28')]];if(_0x47b1fd[_0x0c18('0x1d')]!==_0x0c18('0x1e')){if(_0x13dbb6['options'][_0x0c18('0x2e')](_0x0c18('0x2f'))<0x0){_0x13dbb6[_0x0c18('0x24')]+='U(xcally-mixmonitor-context)';}}else{_0x13dbb6['options']=_0x13dbb6[_0x0c18('0x24')][_0x0c18('0x30')](_0x0c18('0x2f'),'');}_0x46daa4[_0x22387c[_0xd79c96]['param']]=_0x13dbb6[_0x0c18('0x24')];break;default:_0x46daa4[_0x22387c[_0xd79c96][_0x0c18('0x28')]]=_0x1638bd[_0x22387c[_0xd79c96][_0x0c18('0x28')]];}}return _0x46daa4[_0x0c18('0x2d')](',');}function _0x570f63(_0x59f9ea,_0x40be9a,_0x3ce9c1){return new Promise(function(_0xe77e86,_0xd26d48){var _0x204d00=[];if(_[_0x0c18('0x31')](_0x40be9a))return _0xe77e86(_0x204d00);_0x585e63['Interval'][_0x0c18('0x32')]({'attributes':['id',_0x0c18('0x33'),_0x0c18('0x34')],'raw':!![]})['then'](function(_0x19bce5){for(var _0x55a55f=0x0,_0x531d17=0x0;_0x55a55f<_0x40be9a[_0x0c18('0x35')];_0x55a55f++,_0x531d17=0x0){var _0x36d01c=_0x40be9a[_0x55a55f];var _0x2ada67=[];var _0x491a23=[];delete _0x36d01c['id'];if(_0x36d01c[_0x0c18('0x33')]!==_0x0c18('0x36')){_0x36d01c[_0x0c18('0x37')]=[_0x36d01c[_0x0c18('0x33')]];}else{_0x36d01c['intervals']=_0x36d01c[_0x0c18('0x34')]?_[_0x0c18('0x38')](_[_0x0c18('0x39')](_0x19bce5,{'IntervalId':_0x36d01c[_0x0c18('0x34')]}),_0x0c18('0x33')):[];}_0x36d01c[_0x0c18('0x6')]=_0x59f9ea[_0x0c18('0x6')];_0x36d01c[_0x0c18('0x7')]=_0x59f9ea['exten'];if(_0x36d01c[_0x0c18('0x4')])_0x36d01c[_0x0c18('0x4')]=_0x36d01c['type'][_0x0c18('0x3a')]();if(_0x59f9ea[_0x0c18('0x4')]===_0x0c18('0x10')){if(_0x36d01c[_0x0c18('0x1c')]('tag')&&_0x36d01c['tag']&&_0x36d01c['tag']!=='--'){_0x2ada67[_0x0c18('0xd')]({'type':_0x36d01c[_0x0c18('0x4')][_0x0c18('0x3a')](),'app':_0x0c18('0x9'),'appdata':_0x0c18('0x3b')+_0x36d01c[_0x0c18('0x3c')],'context':_0x59f9ea[_0x0c18('0x6')],'exten':_0x59f9ea[_0x0c18('0x7')],'priority':_0x36d01c['intervals'][_0x0c18('0x35')]+_0x3ce9c1+_0x531d17++,'VoiceExtensionId':_0x59f9ea['id']});}_0x2ada67['push']({'type':_0x36d01c[_0x0c18('0x4')]['toLowerCase'](),'app':_0x0c18('0x16'),'appdata':_0x0c18('0x3d')+(_0x36d01c['callerID']?_0x0c18('0x3e')+_0x36d01c[_0x0c18('0x3f')]+')':_0x0c18('0x40')),'context':_0x59f9ea[_0x0c18('0x6')],'exten':_0x59f9ea['exten'],'priority':_0x36d01c[_0x0c18('0x37')]['length']+_0x3ce9c1+_0x531d17++,'VoiceExtensionId':_0x59f9ea['id']});}else{if(_0x36d01c[_0x0c18('0x1c')](_0x0c18('0x41'))){if([_0x0c18('0x42'),_0x0c18('0x43')][_0x0c18('0x44')](_0x36d01c[_0x0c18('0x45')]['toLowerCase']())&&_0x36d01c[_0x0c18('0x46')]!==_0x0c18('0x47')){if(_0x36d01c[_0x0c18('0x41')]){_0x2ada67[_0x0c18('0xd')]({'type':_0x36d01c[_0x0c18('0x4')]['toLowerCase'](),'app':_0x0c18('0x16'),'appdata':'$[${XCALLY-MOTION-ANSWER}=0]?Answer','context':_0x59f9ea[_0x0c18('0x6')],'exten':_0x59f9ea[_0x0c18('0x7')],'priority':_0x36d01c[_0x0c18('0x37')][_0x0c18('0x35')]+_0x3ce9c1+_0x531d17++,'VoiceExtensionId':_0x59f9ea['id']});_0x2ada67[_0x0c18('0xd')]({'type':_0x36d01c['type']['toLowerCase'](),'app':_0x0c18('0x9'),'appdata':_0x0c18('0x48'),'context':_0x59f9ea[_0x0c18('0x6')],'exten':_0x59f9ea[_0x0c18('0x7')],'priority':_0x36d01c[_0x0c18('0x37')]['length']+_0x3ce9c1+_0x531d17++,'VoiceExtensionId':_0x59f9ea['id']});}else{_0x2ada67[_0x0c18('0xd')]({'type':_0x36d01c['type'][_0x0c18('0x3a')](),'app':_0x0c18('0x16'),'appdata':_0x0c18('0x49'),'context':_0x59f9ea['context'],'exten':_0x59f9ea['exten'],'priority':_0x36d01c[_0x0c18('0x37')][_0x0c18('0x35')]+_0x3ce9c1+_0x531d17++,'VoiceExtensionId':_0x59f9ea['id']});_0x2ada67[_0x0c18('0xd')]({'type':_0x36d01c[_0x0c18('0x4')]['toLowerCase'](),'app':_0x0c18('0x9'),'appdata':_0x0c18('0x4a'),'context':_0x59f9ea[_0x0c18('0x6')],'exten':_0x59f9ea[_0x0c18('0x7')],'priority':_0x36d01c[_0x0c18('0x37')]['length']+_0x3ce9c1+_0x531d17++,'VoiceExtensionId':_0x59f9ea['id']});}}}}for(var _0x433a53=0x0;_0x433a53<_0x36d01c[_0x0c18('0x37')]['length'];_0x433a53++){var _0x3c712a=_0x3ce9c1+_0x36d01c[_0x0c18('0x37')]['length'];var _0x26f0fc=_0x433a53===_0x36d01c['intervals'][_0x0c18('0x35')]-0x1?_0x3ce9c1+_0x2ada67[_0x0c18('0x35')]+_0x491a23[_0x0c18('0x35')]+0x2:_0x3ce9c1+_0x433a53+0x1;_0x2ada67[_0x0c18('0x4b')](_0x433a53,0x0,{'type':_0x59f9ea[_0x0c18('0x4')],'app':_0x0c18('0x4c'),'appdata':_0x36d01c[_0x0c18('0x37')][_0x433a53]+'?'+_0x59f9ea['context']+_0x0c18('0x4d')+_0x3c712a+':'+_0x59f9ea[_0x0c18('0x6')]+_0x0c18('0x4d')+_0x26f0fc,'exten':_0x59f9ea[_0x0c18('0x7')],'context':_0x59f9ea['context'],'priority':_0x3ce9c1+_0x433a53,'VoiceExtensionId':_0x59f9ea['id']});}if(_0x36d01c['appType']==='outboundDial'){_0x36d01c['appdata']=_0x15d77c(_0x59f9ea,_0x36d01c[_0x0c18('0x4e')]);}if(_0x36d01c[_0x0c18('0x46')]===_0x0c18('0x4f')){_0x2ada67['push']({'type':_0x36d01c['type'][_0x0c18('0x3a')](),'app':_0x0c18('0x9'),'appdata':_0x0c18('0x50'),'context':_0x59f9ea[_0x0c18('0x6')],'exten':_0x59f9ea[_0x0c18('0x7')],'priority':_0x36d01c[_0x0c18('0x37')]['length']+_0x3ce9c1+_0x531d17++,'VoiceExtensionId':_0x59f9ea['id']});}_0x36d01c[_0x0c18('0x51')]=_0x2ada67[_0x0c18('0x35')]?_[_0x0c18('0x52')](_0x2ada67)[_0x0c18('0x51')]+0x1:_0x3ce9c1;_0x204d00=_['concat'](_0x204d00,_0x2ada67,[_0x36d01c],_0x491a23);_0x3ce9c1=_['last'](_0x204d00)[_0x0c18('0x51')]+0x1;}return _0xe77e86(_0x204d00);})[_0x0c18('0x53')](function(_0x45af5a){_0xd26d48(_0x45af5a);});});}return _0x5764a7[_0x0c18('0x54')](_0x0c18('0x55'),attributes,{'tableName':_0x0c18('0x56'),'paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x292403){var _0x488d7f=this[_0x0c18('0x57')]({'plain':!![]});var _0x44f454=_0x488d7f[_0x0c18('0x4')]==='outbound'?_0xb983f6(_0x488d7f):_0x51de07(_0x488d7f);return _0x570f63(_0x488d7f,_0x292403,_[_0x0c18('0x52')](_0x44f454)['priority']+0x1)[_0x0c18('0x58')](function(_0x3037eb){var _0x51bf58=_['concat'](_0x44f454,_0x3037eb);_0x51bf58['push']({'type':_0x488d7f['type'],'app':_0x0c18('0x59'),'exten':_0x488d7f['exten'],'context':_0x488d7f[_0x0c18('0x6')],'priority':_[_0x0c18('0x52')](_0x51bf58)[_0x0c18('0x51')]+0x1,'VoiceExtensionId':_0x488d7f['id']});return _0x51bf58;});}}});};