Built motion from commit 1fa89557.|2.6.10
[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 _0xc765=['CDR(type)=outbound','alias','CDR(routeAlias)=','No\x20alias\x20set','cutdigits','${EXTEN:','${EXTEN}','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=${EXTEN:0:','outboundrouteid=','hasOwnProperty','recordingFormat','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','wav','trunk','timeout','options','url','split','length','name','param','phone','prefix','SIP','join','none','indexOf','U(xcally-mixmonitor-context)','replace','isEmpty','Interval','findAll','interval','IntervalId','then','*,*,*,*','intervals','map','toLowerCase','tag','CDR(tag)=','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):','callerID','Set(CALLERID(all)=','NoOp(No\x20number\x20available)','answer','playback','includes','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','last','catch','define','VoiceExtension','voice_extensions','concat','Hangup','lodash','./voiceExtension.attributes','exports','models','type','Set','CDR(type)=','context','exten','NoOp','inbound','push','CDR(routeid)=','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','outbound'];(function(_0x4abc67,_0x4ed380){var _0x3c3ae5=function(_0x5b6ffe){while(--_0x5b6ffe){_0x4abc67['push'](_0x4abc67['shift']());}};_0x3c3ae5(++_0x4ed380);}(_0xc765,0xf5));var _0x5c76=function(_0x11d544,_0x3947f2){_0x11d544=_0x11d544-0x0;var _0x2a2883=_0xc765[_0x11d544];return _0x2a2883;};'use strict';var _=require(_0x5c76('0x0'));var attributes=require(_0x5c76('0x1'));module[_0x5c76('0x2')]=function(_0x35da53){var _0x316f04=_0x35da53[_0x5c76('0x3')];function _0x181042(_0x44a2af){var _0x57ec07=0x2;var _0x343854=[{'type':_0x44a2af[_0x5c76('0x4')],'app':_0x5c76('0x5'),'appdata':_0x5c76('0x6')+_0x44a2af[_0x5c76('0x4')],'context':_0x44a2af[_0x5c76('0x7')],'exten':_0x44a2af[_0x5c76('0x8')],'priority':_0x57ec07++,'VoiceExtensionId':_0x44a2af['id']},{'type':_0x44a2af[_0x5c76('0x4')],'app':_0x44a2af['alias']?_0x5c76('0x5'):_0x5c76('0x9'),'appdata':_0x44a2af['alias']?'CDR(routeAlias)='+_0x44a2af['alias']:'No\x20alias\x20set','context':_0x44a2af[_0x5c76('0x7')],'exten':_0x44a2af['exten'],'priority':_0x57ec07++,'VoiceExtensionId':_0x44a2af['id']}];if(_0x44a2af[_0x5c76('0x4')]===_0x5c76('0xa')){_0x343854[_0x5c76('0xb')]({'type':_0x5c76('0xa'),'app':_0x5c76('0x5'),'appdata':_0x5c76('0xc')+_0x44a2af['id'],'context':_0x44a2af[_0x5c76('0x7')],'exten':_0x44a2af[_0x5c76('0x8')],'priority':_0x57ec07++,'VoiceExtensionId':_0x44a2af['id']});}_0x343854[_0x5c76('0xb')]({'type':_0x44a2af[_0x5c76('0x4')],'app':_0x5c76('0x5'),'appdata':'XCALLY-MOTION-ANSWER=0','context':_0x44a2af['context'],'exten':_0x44a2af[_0x5c76('0x8')],'priority':_0x57ec07++,'VoiceExtensionId':_0x44a2af['id']},{'type':_0x44a2af[_0x5c76('0x4')],'app':_0x5c76('0x5'),'appdata':_0x5c76('0xd'),'context':_0x44a2af['context'],'exten':_0x44a2af[_0x5c76('0x8')],'priority':_0x57ec07++,'VoiceExtensionId':_0x44a2af['id']},{'type':_0x44a2af['type'],'app':'Set','appdata':_0x5c76('0xe'),'context':_0x44a2af['context'],'exten':_0x44a2af[_0x5c76('0x8')],'priority':_0x57ec07++,'VoiceExtensionId':_0x44a2af['id']});return _0x343854;}function _0x373f7c(_0x701bcf){var _0x4d2fa2=0x2;var _0xb30624=[{'type':_0x5c76('0xf'),'app':_0x5c76('0x5'),'appdata':_0x5c76('0x10'),'context':_0x701bcf[_0x5c76('0x7')],'exten':_0x701bcf[_0x5c76('0x8')],'priority':_0x4d2fa2++,'VoiceExtensionId':_0x701bcf['id']},{'type':_0x5c76('0xf'),'app':_0x701bcf[_0x5c76('0x11')]?_0x5c76('0x5'):_0x5c76('0x9'),'appdata':_0x701bcf[_0x5c76('0x11')]?_0x5c76('0x12')+_0x701bcf[_0x5c76('0x11')]:_0x5c76('0x13'),'context':_0x701bcf[_0x5c76('0x7')],'exten':_0x701bcf[_0x5c76('0x8')],'priority':_0x4d2fa2++,'VoiceExtensionId':_0x701bcf['id']},{'type':'outbound','app':_0x5c76('0x5'),'appdata':'CDR(destination)='+(_0x701bcf[_0x5c76('0x14')]?_0x5c76('0x15')+_0x701bcf[_0x5c76('0x14')]+'}':_0x5c76('0x16')),'context':_0x701bcf[_0x5c76('0x7')],'exten':_0x701bcf['exten'],'priority':_0x4d2fa2++,'VoiceExtensionId':_0x701bcf['id']},{'type':'outbound','app':_0x5c76('0x5'),'appdata':_0x5c76('0xc')+_0x701bcf['id'],'context':_0x701bcf[_0x5c76('0x7')],'exten':_0x701bcf['exten'],'priority':_0x4d2fa2++,'VoiceExtensionId':_0x701bcf['id']},{'type':_0x5c76('0xf'),'app':_0x5c76('0x17'),'appdata':_0x5c76('0x18')+(_0x4d2fa2+0x2)+_0x5c76('0x19')+(_0x4d2fa2+0x1)+')','context':_0x701bcf['context'],'exten':_0x701bcf[_0x5c76('0x8')],'priority':_0x4d2fa2++,'VoiceExtensionId':_0x701bcf['id']},{'type':'outbound','app':_0x5c76('0x5'),'appdata':_0x701bcf['cutdigits']?_0x5c76('0x1a')+_0x701bcf[_0x5c76('0x14')]+'}':'CDR(prefix)=noprefix','context':_0x701bcf[_0x5c76('0x7')],'exten':_0x701bcf['exten'],'priority':_0x4d2fa2++,'VoiceExtensionId':_0x701bcf['id']},{'type':'outbound','app':_0x5c76('0x5'),'appdata':'XCALLY-MOTION-ANSWER=0','context':_0x701bcf['context'],'exten':_0x701bcf[_0x5c76('0x8')],'priority':_0x4d2fa2++,'VoiceExtensionId':_0x701bcf['id']},{'type':'outbound','app':_0x5c76('0x5'),'appdata':_0x5c76('0xd'),'context':_0x701bcf[_0x5c76('0x7')],'exten':_0x701bcf[_0x5c76('0x8')],'priority':_0x4d2fa2++,'VoiceExtensionId':_0x701bcf['id']},{'type':'outbound','app':_0x5c76('0x5'),'appdata':_0x5c76('0xe'),'context':_0x701bcf[_0x5c76('0x7')],'exten':_0x701bcf['exten'],'priority':_0x4d2fa2++,'VoiceExtensionId':_0x701bcf['id']},{'type':'outbound','app':_0x5c76('0x5'),'appdata':_0x5c76('0x1b')+_0x701bcf['id'],'context':_0x701bcf[_0x5c76('0x7')],'exten':_0x701bcf[_0x5c76('0x8')],'priority':_0x4d2fa2++,'VoiceExtensionId':_0x701bcf['id']}];if(_0x701bcf[_0x5c76('0x1c')](_0x5c76('0x1d'))&&_0x701bcf[_0x5c76('0x1d')]!=='none'){_0xb30624[_0x5c76('0xb')]({'type':_0x5c76('0xf'),'app':_0x5c76('0x5'),'appdata':_0x5c76('0x1e'),'context':_0x701bcf['context'],'exten':_0x701bcf['exten'],'priority':_0x4d2fa2++,'VoiceExtensionId':_0x701bcf['id']},{'type':_0x5c76('0xf'),'app':'Set','appdata':_0x5c76('0x1f')+_0x701bcf[_0x5c76('0x1d')]||_0x5c76('0x20'),'context':_0x701bcf['context'],'exten':_0x701bcf[_0x5c76('0x8')],'priority':_0x4d2fa2++,'VoiceExtensionId':_0x701bcf['id']});}return _0xb30624;}function _0x4e7ca3(_0x255b07,_0x554732){var _0x333572=[{'name':_0x5c76('0x21'),'param':0x0},{'name':_0x5c76('0x22'),'param':0x1},{'name':_0x5c76('0x23'),'param':0x2},{'name':_0x5c76('0x24'),'param':0x3}];var _0x2d7974={};var _0x364bac=_0x554732[_0x5c76('0x25')](',');var _0x8b55f4=[];for(var _0x1c98d4=0x0;_0x1c98d4<_0x333572[_0x5c76('0x26')];_0x1c98d4++){switch(_0x333572[_0x1c98d4][_0x5c76('0x27')]){case'trunk':_0x2d7974['trunk']=_0x364bac[_0x333572[_0x1c98d4][_0x5c76('0x28')]][_0x5c76('0x25')]('/')[0x1];_0x2d7974[_0x5c76('0x29')]=_0x364bac[_0x333572[_0x1c98d4][_0x5c76('0x28')]][_0x5c76('0x25')]('/')[0x2];_0x2d7974[_0x5c76('0x2a')]=_0x2d7974[_0x5c76('0x29')]?_0x2d7974[_0x5c76('0x29')][_0x5c76('0x25')]('$')[0x0]:undefined;_0x2d7974[_0x5c76('0x29')]=_0x255b07[_0x5c76('0x14')]?(_0x2d7974[_0x5c76('0x2a')]||'')+_0x5c76('0x15')+_0x255b07[_0x5c76('0x14')]+'}':(_0x2d7974[_0x5c76('0x2a')]||'')+_0x5c76('0x16');_0x8b55f4[_0x333572[_0x1c98d4][_0x5c76('0x28')]]=[_0x5c76('0x2b'),_0x2d7974[_0x5c76('0x21')],_0x2d7974[_0x5c76('0x29')]][_0x5c76('0x2c')]('/');break;case _0x5c76('0x23'):_0x2d7974[_0x5c76('0x23')]=_0x364bac[_0x333572[_0x1c98d4][_0x5c76('0x28')]];if(_0x255b07[_0x5c76('0x1d')]!==_0x5c76('0x2d')){if(_0x2d7974[_0x5c76('0x23')][_0x5c76('0x2e')](_0x5c76('0x2f'))<0x0){_0x2d7974['options']+=_0x5c76('0x2f');}}else{_0x2d7974[_0x5c76('0x23')]=_0x2d7974[_0x5c76('0x23')][_0x5c76('0x30')](_0x5c76('0x2f'),'');}_0x8b55f4[_0x333572[_0x1c98d4][_0x5c76('0x28')]]=_0x2d7974[_0x5c76('0x23')];break;default:_0x8b55f4[_0x333572[_0x1c98d4][_0x5c76('0x28')]]=_0x364bac[_0x333572[_0x1c98d4][_0x5c76('0x28')]];}}return _0x8b55f4[_0x5c76('0x2c')](',');}function _0x453390(_0x20e5bb,_0x2bce4a,_0x5e205d){return new Promise(function(_0x22254b,_0x5c43d4){var _0x15be67=[];if(_[_0x5c76('0x31')](_0x2bce4a))return _0x22254b(_0x15be67);_0x316f04[_0x5c76('0x32')][_0x5c76('0x33')]({'attributes':['id',_0x5c76('0x34'),_0x5c76('0x35')],'raw':!![]})[_0x5c76('0x36')](function(_0x17d88a){for(var _0x42664f=0x0,_0x200bd8=0x0;_0x42664f<_0x2bce4a['length'];_0x42664f++,_0x200bd8=0x0){var _0x51360d=_0x2bce4a[_0x42664f];var _0x57d419=[];var _0x96a1b6=[];delete _0x51360d['id'];if(_0x51360d['interval']!==_0x5c76('0x37')){_0x51360d[_0x5c76('0x38')]=[_0x51360d[_0x5c76('0x34')]];}else{_0x51360d['intervals']=_0x51360d[_0x5c76('0x35')]?_[_0x5c76('0x39')](_['filter'](_0x17d88a,{'IntervalId':_0x51360d['IntervalId']}),_0x5c76('0x34')):[];}_0x51360d[_0x5c76('0x7')]=_0x20e5bb[_0x5c76('0x7')];_0x51360d['exten']=_0x20e5bb[_0x5c76('0x8')];if(_0x51360d['type'])_0x51360d[_0x5c76('0x4')]=_0x51360d[_0x5c76('0x4')][_0x5c76('0x3a')]();if(_0x20e5bb[_0x5c76('0x4')]==='outbound'){if(_0x51360d[_0x5c76('0x1c')](_0x5c76('0x3b'))&&_0x51360d[_0x5c76('0x3b')]&&_0x51360d['tag']!=='--'){_0x57d419[_0x5c76('0xb')]({'type':_0x51360d[_0x5c76('0x4')]['toLowerCase'](),'app':_0x5c76('0x5'),'appdata':_0x5c76('0x3c')+_0x51360d[_0x5c76('0x3b')],'context':_0x20e5bb[_0x5c76('0x7')],'exten':_0x20e5bb['exten'],'priority':_0x51360d['intervals'][_0x5c76('0x26')]+_0x5e205d+_0x200bd8++,'VoiceExtensionId':_0x20e5bb['id']});}_0x57d419['push']({'type':_0x51360d[_0x5c76('0x4')][_0x5c76('0x3a')](),'app':_0x5c76('0x17'),'appdata':_0x5c76('0x3d')+(_0x51360d[_0x5c76('0x3e')]?_0x5c76('0x3f')+_0x51360d[_0x5c76('0x3e')]+')':_0x5c76('0x40')),'context':_0x20e5bb['context'],'exten':_0x20e5bb[_0x5c76('0x8')],'priority':_0x51360d[_0x5c76('0x38')][_0x5c76('0x26')]+_0x5e205d+_0x200bd8++,'VoiceExtensionId':_0x20e5bb['id']});}else{if(_0x51360d[_0x5c76('0x1c')](_0x5c76('0x41'))){if(['queue',_0x5c76('0x42')][_0x5c76('0x43')](_0x51360d['app'][_0x5c76('0x3a')]())&&_0x51360d[_0x5c76('0x44')]!==_0x5c76('0x45')){if(_0x51360d[_0x5c76('0x41')]){_0x57d419[_0x5c76('0xb')]({'type':_0x51360d['type'][_0x5c76('0x3a')](),'app':_0x5c76('0x17'),'appdata':_0x5c76('0x46'),'context':_0x20e5bb[_0x5c76('0x7')],'exten':_0x20e5bb[_0x5c76('0x8')],'priority':_0x51360d[_0x5c76('0x38')][_0x5c76('0x26')]+_0x5e205d+_0x200bd8++,'VoiceExtensionId':_0x20e5bb['id']});_0x57d419[_0x5c76('0xb')]({'type':_0x51360d[_0x5c76('0x4')][_0x5c76('0x3a')](),'app':_0x5c76('0x5'),'appdata':_0x5c76('0x47'),'context':_0x20e5bb['context'],'exten':_0x20e5bb[_0x5c76('0x8')],'priority':_0x51360d['intervals'][_0x5c76('0x26')]+_0x5e205d+_0x200bd8++,'VoiceExtensionId':_0x20e5bb['id']});}else{_0x57d419[_0x5c76('0xb')]({'type':_0x51360d[_0x5c76('0x4')][_0x5c76('0x3a')](),'app':_0x5c76('0x17'),'appdata':_0x5c76('0x48'),'context':_0x20e5bb[_0x5c76('0x7')],'exten':_0x20e5bb['exten'],'priority':_0x51360d[_0x5c76('0x38')]['length']+_0x5e205d+_0x200bd8++,'VoiceExtensionId':_0x20e5bb['id']});_0x57d419[_0x5c76('0xb')]({'type':_0x51360d[_0x5c76('0x4')][_0x5c76('0x3a')](),'app':_0x5c76('0x5'),'appdata':_0x5c76('0x49'),'context':_0x20e5bb[_0x5c76('0x7')],'exten':_0x20e5bb[_0x5c76('0x8')],'priority':_0x51360d[_0x5c76('0x38')][_0x5c76('0x26')]+_0x5e205d+_0x200bd8++,'VoiceExtensionId':_0x20e5bb['id']});}}}}for(var _0x1cbdfb=0x0;_0x1cbdfb<_0x51360d[_0x5c76('0x38')][_0x5c76('0x26')];_0x1cbdfb++){var _0x60f3e4=_0x5e205d+_0x51360d['intervals'][_0x5c76('0x26')];var _0x40d294=_0x1cbdfb===_0x51360d[_0x5c76('0x38')][_0x5c76('0x26')]-0x1?_0x5e205d+_0x57d419[_0x5c76('0x26')]+_0x96a1b6[_0x5c76('0x26')]+0x2:_0x5e205d+_0x1cbdfb+0x1;_0x57d419[_0x5c76('0x4a')](_0x1cbdfb,0x0,{'type':_0x20e5bb['type'],'app':_0x5c76('0x4b'),'appdata':_0x51360d[_0x5c76('0x38')][_0x1cbdfb]+'?'+_0x20e5bb['context']+',${EXTEN},'+_0x60f3e4+':'+_0x20e5bb['context']+_0x5c76('0x4c')+_0x40d294,'exten':_0x20e5bb[_0x5c76('0x8')],'context':_0x20e5bb[_0x5c76('0x7')],'priority':_0x5e205d+_0x1cbdfb,'VoiceExtensionId':_0x20e5bb['id']});}if(_0x51360d[_0x5c76('0x44')]===_0x5c76('0x4d'))_0x51360d[_0x5c76('0x4e')]=_0x4e7ca3(_0x20e5bb,_0x51360d[_0x5c76('0x4e')]);_0x51360d[_0x5c76('0x4f')]=_0x57d419[_0x5c76('0x26')]?_[_0x5c76('0x50')](_0x57d419)['priority']+0x1:_0x5e205d;_0x15be67=_['concat'](_0x15be67,_0x57d419,[_0x51360d],_0x96a1b6);_0x5e205d=_['last'](_0x15be67)[_0x5c76('0x4f')]+0x1;}return _0x22254b(_0x15be67);})[_0x5c76('0x51')](function(_0x17b176){_0x5c43d4(_0x17b176);});});}return _0x35da53[_0x5c76('0x52')](_0x5c76('0x53'),attributes,{'tableName':_0x5c76('0x54'),'paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x28f5f6){var _0x42e0cd=this['get']({'plain':!![]});var _0x280921=_0x42e0cd[_0x5c76('0x4')]===_0x5c76('0xf')?_0x373f7c(_0x42e0cd):_0x181042(_0x42e0cd);return _0x453390(_0x42e0cd,_0x28f5f6,_[_0x5c76('0x50')](_0x280921)['priority']+0x1)['then'](function(_0x505dd6){var _0x48e790=_[_0x5c76('0x55')](_0x280921,_0x505dd6);_0x48e790[_0x5c76('0xb')]({'type':_0x42e0cd['type'],'app':_0x5c76('0x56'),'exten':_0x42e0cd[_0x5c76('0x8')],'context':_0x42e0cd['context'],'priority':_[_0x5c76('0x50')](_0x48e790)[_0x5c76('0x4f')]+0x1,'VoiceExtensionId':_0x42e0cd['id']});return _0x48e790;});}}});};