Built motion from commit e1760111.|2.6.18
[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 _0xf27b=['recordingFormat','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','wav','timeout','options','url','split','length','name','trunk','param','phone','prefix','SIP','join','none','U(xcally-mixmonitor-context)','replace','isEmpty','Interval','findAll','interval','IntervalId','intervals','map','filter','tag','push','toLowerCase','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):','callerID','queue','playback','includes','app','appType','custom','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','last','concat','catch','define','VoiceExtension','get','then','Hangup','lodash','./voiceExtension.attributes','exports','models','Set','CDR(type)=','type','context','NoOp','alias','No\x20alias\x20set','inbound','exten','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','outbound','CDR(routeAlias)=','CDR(destination)=','cutdigits','${EXTEN:','${EXTEN}','CDR(routeid)=','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','XCALLY-MOTION-ANSWER=0','outboundrouteid=','hasOwnProperty'];(function(_0x2dafbe,_0x5d04de){var _0x58a45a=function(_0x50ac96){while(--_0x50ac96){_0x2dafbe['push'](_0x2dafbe['shift']());}};_0x58a45a(++_0x5d04de);}(_0xf27b,0x189));var _0xbf27=function(_0x596f6e,_0x3f8857){_0x596f6e=_0x596f6e-0x0;var _0x1e0803=_0xf27b[_0x596f6e];return _0x1e0803;};'use strict';var _=require(_0xbf27('0x0'));var attributes=require(_0xbf27('0x1'));module[_0xbf27('0x2')]=function(_0x1bcc5c){var _0x74b603=_0x1bcc5c[_0xbf27('0x3')];function _0x49e125(_0x554bfc){var _0x43daee=0x2;var _0x52153d=[{'type':_0x554bfc['type'],'app':_0xbf27('0x4'),'appdata':_0xbf27('0x5')+_0x554bfc[_0xbf27('0x6')],'context':_0x554bfc[_0xbf27('0x7')],'exten':_0x554bfc['exten'],'priority':_0x43daee++,'VoiceExtensionId':_0x554bfc['id']},{'type':_0x554bfc[_0xbf27('0x6')],'app':_0x554bfc['alias']?_0xbf27('0x4'):_0xbf27('0x8'),'appdata':_0x554bfc['alias']?'CDR(routeAlias)='+_0x554bfc[_0xbf27('0x9')]:_0xbf27('0xa'),'context':_0x554bfc['context'],'exten':_0x554bfc['exten'],'priority':_0x43daee++,'VoiceExtensionId':_0x554bfc['id']}];if(_0x554bfc['type']==='inbound'){_0x52153d['push']({'type':_0xbf27('0xb'),'app':_0xbf27('0x4'),'appdata':'CDR(routeid)='+_0x554bfc['id'],'context':_0x554bfc[_0xbf27('0x7')],'exten':_0x554bfc[_0xbf27('0xc')],'priority':_0x43daee++,'VoiceExtensionId':_0x554bfc['id']});}_0x52153d['push']({'type':_0x554bfc['type'],'app':'Set','appdata':'XCALLY-MOTION-ANSWER=0','context':_0x554bfc[_0xbf27('0x7')],'exten':_0x554bfc[_0xbf27('0xc')],'priority':_0x43daee++,'VoiceExtensionId':_0x554bfc['id']},{'type':_0x554bfc[_0xbf27('0x6')],'app':_0xbf27('0x4'),'appdata':_0xbf27('0xd'),'context':_0x554bfc[_0xbf27('0x7')],'exten':_0x554bfc[_0xbf27('0xc')],'priority':_0x43daee++,'VoiceExtensionId':_0x554bfc['id']},{'type':_0x554bfc[_0xbf27('0x6')],'app':_0xbf27('0x4'),'appdata':_0xbf27('0xe'),'context':_0x554bfc[_0xbf27('0x7')],'exten':_0x554bfc[_0xbf27('0xc')],'priority':_0x43daee++,'VoiceExtensionId':_0x554bfc['id']});return _0x52153d;}function _0x3448c5(_0x315457){var _0x3cc3b5=0x2;var _0x119db0=[{'type':_0xbf27('0xf'),'app':'Set','appdata':'CDR(type)=outbound','context':_0x315457['context'],'exten':_0x315457[_0xbf27('0xc')],'priority':_0x3cc3b5++,'VoiceExtensionId':_0x315457['id']},{'type':_0xbf27('0xf'),'app':_0x315457[_0xbf27('0x9')]?'Set':_0xbf27('0x8'),'appdata':_0x315457['alias']?_0xbf27('0x10')+_0x315457[_0xbf27('0x9')]:_0xbf27('0xa'),'context':_0x315457[_0xbf27('0x7')],'exten':_0x315457[_0xbf27('0xc')],'priority':_0x3cc3b5++,'VoiceExtensionId':_0x315457['id']},{'type':_0xbf27('0xf'),'app':_0xbf27('0x4'),'appdata':_0xbf27('0x11')+(_0x315457[_0xbf27('0x12')]?_0xbf27('0x13')+_0x315457[_0xbf27('0x12')]+'}':_0xbf27('0x14')),'context':_0x315457['context'],'exten':_0x315457[_0xbf27('0xc')],'priority':_0x3cc3b5++,'VoiceExtensionId':_0x315457['id']},{'type':'outbound','app':'Set','appdata':_0xbf27('0x15')+_0x315457['id'],'context':_0x315457[_0xbf27('0x7')],'exten':_0x315457[_0xbf27('0xc')],'priority':_0x3cc3b5++,'VoiceExtensionId':_0x315457['id']},{'type':'outbound','app':_0xbf27('0x16'),'appdata':_0xbf27('0x17')+(_0x3cc3b5+0x2)+'):Goto('+(_0x3cc3b5+0x1)+')','context':_0x315457['context'],'exten':_0x315457[_0xbf27('0xc')],'priority':_0x3cc3b5++,'VoiceExtensionId':_0x315457['id']},{'type':_0xbf27('0xf'),'app':_0xbf27('0x4'),'appdata':_0x315457[_0xbf27('0x12')]?'CDR(prefix)=${EXTEN:0:'+_0x315457[_0xbf27('0x12')]+'}':'CDR(prefix)=noprefix','context':_0x315457[_0xbf27('0x7')],'exten':_0x315457[_0xbf27('0xc')],'priority':_0x3cc3b5++,'VoiceExtensionId':_0x315457['id']},{'type':_0xbf27('0xf'),'app':'Set','appdata':_0xbf27('0x18'),'context':_0x315457['context'],'exten':_0x315457[_0xbf27('0xc')],'priority':_0x3cc3b5++,'VoiceExtensionId':_0x315457['id']},{'type':_0xbf27('0xf'),'app':'Set','appdata':_0xbf27('0xd'),'context':_0x315457[_0xbf27('0x7')],'exten':_0x315457['exten'],'priority':_0x3cc3b5++,'VoiceExtensionId':_0x315457['id']},{'type':_0xbf27('0xf'),'app':_0xbf27('0x4'),'appdata':_0xbf27('0xe'),'context':_0x315457[_0xbf27('0x7')],'exten':_0x315457[_0xbf27('0xc')],'priority':_0x3cc3b5++,'VoiceExtensionId':_0x315457['id']},{'type':_0xbf27('0xf'),'app':_0xbf27('0x4'),'appdata':_0xbf27('0x19')+_0x315457['id'],'context':_0x315457[_0xbf27('0x7')],'exten':_0x315457['exten'],'priority':_0x3cc3b5++,'VoiceExtensionId':_0x315457['id']}];if(_0x315457[_0xbf27('0x1a')](_0xbf27('0x1b'))&&_0x315457[_0xbf27('0x1b')]!=='none'){_0x119db0['push']({'type':_0xbf27('0xf'),'app':_0xbf27('0x4'),'appdata':_0xbf27('0x1c'),'context':_0x315457[_0xbf27('0x7')],'exten':_0x315457['exten'],'priority':_0x3cc3b5++,'VoiceExtensionId':_0x315457['id']},{'type':_0xbf27('0xf'),'app':_0xbf27('0x4'),'appdata':_0xbf27('0x1d')+_0x315457['recordingFormat']||_0xbf27('0x1e'),'context':_0x315457[_0xbf27('0x7')],'exten':_0x315457[_0xbf27('0xc')],'priority':_0x3cc3b5++,'VoiceExtensionId':_0x315457['id']});}return _0x119db0;}function _0x546ae1(_0xee415,_0x1797d5){var _0xee7dce=[{'name':'trunk','param':0x0},{'name':_0xbf27('0x1f'),'param':0x1},{'name':_0xbf27('0x20'),'param':0x2},{'name':_0xbf27('0x21'),'param':0x3}];var _0x5db8ba={};var _0x288574=_0x1797d5[_0xbf27('0x22')](',');var _0x1d5490=[];for(var _0x212fc3=0x0;_0x212fc3<_0xee7dce[_0xbf27('0x23')];_0x212fc3++){switch(_0xee7dce[_0x212fc3][_0xbf27('0x24')]){case _0xbf27('0x25'):_0x5db8ba[_0xbf27('0x25')]=_0x288574[_0xee7dce[_0x212fc3][_0xbf27('0x26')]]['split']('/')[0x1];_0x5db8ba[_0xbf27('0x27')]=_0x288574[_0xee7dce[_0x212fc3][_0xbf27('0x26')]][_0xbf27('0x22')]('/')[0x2];_0x5db8ba[_0xbf27('0x28')]=_0x5db8ba[_0xbf27('0x27')]?_0x5db8ba[_0xbf27('0x27')][_0xbf27('0x22')]('$')[0x0]:undefined;_0x5db8ba[_0xbf27('0x27')]=_0xee415[_0xbf27('0x12')]?(_0x5db8ba['prefix']||'')+_0xbf27('0x13')+_0xee415[_0xbf27('0x12')]+'}':(_0x5db8ba[_0xbf27('0x28')]||'')+'${EXTEN}';_0x1d5490[_0xee7dce[_0x212fc3]['param']]=[_0xbf27('0x29'),_0x5db8ba['trunk'],_0x5db8ba[_0xbf27('0x27')]][_0xbf27('0x2a')]('/');break;case _0xbf27('0x20'):_0x5db8ba[_0xbf27('0x20')]=_0x288574[_0xee7dce[_0x212fc3][_0xbf27('0x26')]];if(_0xee415[_0xbf27('0x1b')]!==_0xbf27('0x2b')){if(_0x5db8ba[_0xbf27('0x20')]['indexOf']('U(xcally-mixmonitor-context)')<0x0){_0x5db8ba[_0xbf27('0x20')]+=_0xbf27('0x2c');}}else{_0x5db8ba['options']=_0x5db8ba[_0xbf27('0x20')][_0xbf27('0x2d')]('U(xcally-mixmonitor-context)','');}_0x1d5490[_0xee7dce[_0x212fc3][_0xbf27('0x26')]]=_0x5db8ba['options'];break;default:_0x1d5490[_0xee7dce[_0x212fc3][_0xbf27('0x26')]]=_0x288574[_0xee7dce[_0x212fc3][_0xbf27('0x26')]];}}return _0x1d5490[_0xbf27('0x2a')](',');}function _0x44863d(_0x457198,_0x160286,_0x185e23){return new Promise(function(_0x470f50,_0x27dd2d){var _0x36bcc0=[];if(_[_0xbf27('0x2e')](_0x160286))return _0x470f50(_0x36bcc0);_0x74b603[_0xbf27('0x2f')][_0xbf27('0x30')]({'attributes':['id',_0xbf27('0x31'),_0xbf27('0x32')],'raw':!![]})['then'](function(_0x31900b){for(var _0xb5daa0=0x0,_0x304c4e=0x0;_0xb5daa0<_0x160286[_0xbf27('0x23')];_0xb5daa0++,_0x304c4e=0x0){var _0x24b926=_0x160286[_0xb5daa0];var _0x18700d=[];var _0x6cb5b4=[];delete _0x24b926['id'];if(_0x24b926[_0xbf27('0x31')]!=='*,*,*,*'){_0x24b926[_0xbf27('0x33')]=[_0x24b926[_0xbf27('0x31')]];}else{_0x24b926[_0xbf27('0x33')]=_0x24b926[_0xbf27('0x32')]?_[_0xbf27('0x34')](_[_0xbf27('0x35')](_0x31900b,{'IntervalId':_0x24b926[_0xbf27('0x32')]}),_0xbf27('0x31')):[];}_0x24b926['context']=_0x457198['context'];_0x24b926[_0xbf27('0xc')]=_0x457198[_0xbf27('0xc')];if(_0x24b926[_0xbf27('0x6')])_0x24b926[_0xbf27('0x6')]=_0x24b926[_0xbf27('0x6')]['toLowerCase']();if(_0x457198[_0xbf27('0x6')]===_0xbf27('0xf')){if(_0x24b926[_0xbf27('0x1a')](_0xbf27('0x36'))&&_0x24b926['tag']&&_0x24b926[_0xbf27('0x36')]!=='--'){_0x18700d[_0xbf27('0x37')]({'type':_0x24b926[_0xbf27('0x6')]['toLowerCase'](),'app':'Set','appdata':'CDR(tag)='+_0x24b926[_0xbf27('0x36')],'context':_0x457198[_0xbf27('0x7')],'exten':_0x457198['exten'],'priority':_0x24b926['intervals'][_0xbf27('0x23')]+_0x185e23+_0x304c4e++,'VoiceExtensionId':_0x457198['id']});}_0x18700d['push']({'type':_0x24b926[_0xbf27('0x6')][_0xbf27('0x38')](),'app':'ExecIf','appdata':_0xbf27('0x39')+(_0x24b926[_0xbf27('0x3a')]?'Set(CALLERID(all)='+_0x24b926['callerID']+')':'NoOp(No\x20number\x20available)'),'context':_0x457198[_0xbf27('0x7')],'exten':_0x457198[_0xbf27('0xc')],'priority':_0x24b926[_0xbf27('0x33')][_0xbf27('0x23')]+_0x185e23+_0x304c4e++,'VoiceExtensionId':_0x457198['id']});}else{if(_0x24b926[_0xbf27('0x1a')]('answer')){if([_0xbf27('0x3b'),_0xbf27('0x3c')][_0xbf27('0x3d')](_0x24b926[_0xbf27('0x3e')]['toLowerCase']())&&_0x24b926[_0xbf27('0x3f')]!==_0xbf27('0x40')){if(_0x24b926[_0xbf27('0x41')]){_0x18700d[_0xbf27('0x37')]({'type':_0x24b926[_0xbf27('0x6')][_0xbf27('0x38')](),'app':_0xbf27('0x16'),'appdata':_0xbf27('0x42'),'context':_0x457198['context'],'exten':_0x457198[_0xbf27('0xc')],'priority':_0x24b926[_0xbf27('0x33')][_0xbf27('0x23')]+_0x185e23+_0x304c4e++,'VoiceExtensionId':_0x457198['id']});_0x18700d[_0xbf27('0x37')]({'type':_0x24b926[_0xbf27('0x6')][_0xbf27('0x38')](),'app':_0xbf27('0x4'),'appdata':_0xbf27('0x43'),'context':_0x457198[_0xbf27('0x7')],'exten':_0x457198['exten'],'priority':_0x24b926[_0xbf27('0x33')][_0xbf27('0x23')]+_0x185e23+_0x304c4e++,'VoiceExtensionId':_0x457198['id']});}else{_0x18700d[_0xbf27('0x37')]({'type':_0x24b926[_0xbf27('0x6')]['toLowerCase'](),'app':_0xbf27('0x16'),'appdata':_0xbf27('0x44'),'context':_0x457198['context'],'exten':_0x457198[_0xbf27('0xc')],'priority':_0x24b926[_0xbf27('0x33')][_0xbf27('0x23')]+_0x185e23+_0x304c4e++,'VoiceExtensionId':_0x457198['id']});_0x18700d[_0xbf27('0x37')]({'type':_0x24b926[_0xbf27('0x6')][_0xbf27('0x38')](),'app':_0xbf27('0x4'),'appdata':_0xbf27('0x45'),'context':_0x457198[_0xbf27('0x7')],'exten':_0x457198[_0xbf27('0xc')],'priority':_0x24b926[_0xbf27('0x33')][_0xbf27('0x23')]+_0x185e23+_0x304c4e++,'VoiceExtensionId':_0x457198['id']});}}}}for(var _0x5cc2e6=0x0;_0x5cc2e6<_0x24b926[_0xbf27('0x33')][_0xbf27('0x23')];_0x5cc2e6++){var _0x41ea5b=_0x185e23+_0x24b926[_0xbf27('0x33')][_0xbf27('0x23')];var _0x498ba9=_0x5cc2e6===_0x24b926[_0xbf27('0x33')]['length']-0x1?_0x185e23+_0x18700d[_0xbf27('0x23')]+_0x6cb5b4[_0xbf27('0x23')]+0x2:_0x185e23+_0x5cc2e6+0x1;_0x18700d['splice'](_0x5cc2e6,0x0,{'type':_0x457198[_0xbf27('0x6')],'app':_0xbf27('0x46'),'appdata':_0x24b926[_0xbf27('0x33')][_0x5cc2e6]+'?'+_0x457198['context']+_0xbf27('0x47')+_0x41ea5b+':'+_0x457198[_0xbf27('0x7')]+_0xbf27('0x47')+_0x498ba9,'exten':_0x457198[_0xbf27('0xc')],'context':_0x457198[_0xbf27('0x7')],'priority':_0x185e23+_0x5cc2e6,'VoiceExtensionId':_0x457198['id']});}if(_0x24b926[_0xbf27('0x3f')]===_0xbf27('0x48')){_0x24b926['appdata']=_0x546ae1(_0x457198,_0x24b926[_0xbf27('0x49')]);}if(_0x24b926['appType']==='agi'){_0x18700d[_0xbf27('0x37')]({'type':_0x24b926['type'][_0xbf27('0x38')](),'app':_0xbf27('0x4'),'appdata':_0xbf27('0x4a'),'context':_0x457198[_0xbf27('0x7')],'exten':_0x457198[_0xbf27('0xc')],'priority':_0x24b926[_0xbf27('0x33')][_0xbf27('0x23')]+_0x185e23+_0x304c4e++,'VoiceExtensionId':_0x457198['id']});}_0x24b926[_0xbf27('0x4b')]=_0x18700d[_0xbf27('0x23')]?_[_0xbf27('0x4c')](_0x18700d)[_0xbf27('0x4b')]+0x1:_0x185e23;_0x36bcc0=_[_0xbf27('0x4d')](_0x36bcc0,_0x18700d,[_0x24b926],_0x6cb5b4);_0x185e23=_[_0xbf27('0x4c')](_0x36bcc0)[_0xbf27('0x4b')]+0x1;}return _0x470f50(_0x36bcc0);})[_0xbf27('0x4e')](function(_0x447107){_0x27dd2d(_0x447107);});});}return _0x1bcc5c[_0xbf27('0x4f')](_0xbf27('0x50'),attributes,{'tableName':'voice_extensions','paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0xd3eadc){var _0x3ceab2=this[_0xbf27('0x51')]({'plain':!![]});var _0x4199fa=_0x3ceab2['type']==='outbound'?_0x3448c5(_0x3ceab2):_0x49e125(_0x3ceab2);return _0x44863d(_0x3ceab2,_0xd3eadc,_[_0xbf27('0x4c')](_0x4199fa)[_0xbf27('0x4b')]+0x1)[_0xbf27('0x52')](function(_0x20f2be){var _0x577171=_['concat'](_0x4199fa,_0x20f2be);_0x577171[_0xbf27('0x37')]({'type':_0x3ceab2[_0xbf27('0x6')],'app':_0xbf27('0x53'),'exten':_0x3ceab2[_0xbf27('0xc')],'context':_0x3ceab2['context'],'priority':_['last'](_0x577171)['priority']+0x1,'VoiceExtensionId':_0x3ceab2['id']});return _0x577171;});}}});};