Built motion from commit 85328c08.|2.5.50
[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 _0xe685=['push','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','outbound','CDR(type)=outbound','CDR(routeAlias)=','cutdigits','${EXTEN}','ExecIf','):Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','outboundrouteid=','hasOwnProperty','recordingFormat','wav','trunk','timeout','options','url','split','length','name','phone','param','${EXTEN:','SIP','join','none','U(xcally-mixmonitor-context)','isEmpty','findAll','interval','IntervalId','then','*,*,*,*','map','filter','toLowerCase','tag','CDR(tag)=','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):','callerID','Set(CALLERID(all)=','intervals','includes','app','appType','custom','answer','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','splice',',${EXTEN},','outboundDial','appdata','last','priority','concat','catch','define','VoiceExtension','voice_extensions','./voiceExtension.attributes','exports','models','Set','CDR(type)=','type','context','alias','NoOp','No\x20alias\x20set','exten','inbound','CDR(routeid)='];(function(_0x2390be,_0x30f806){var _0x581dfe=function(_0x102f17){while(--_0x102f17){_0x2390be['push'](_0x2390be['shift']());}};_0x581dfe(++_0x30f806);}(_0xe685,0xe0));var _0x5e68=function(_0x216a7a,_0x530b5c){_0x216a7a=_0x216a7a-0x0;var _0x2bd92a=_0xe685[_0x216a7a];return _0x2bd92a;};'use strict';var _=require('lodash');var attributes=require(_0x5e68('0x0'));module[_0x5e68('0x1')]=function(_0x1a6382){var _0x4173ff=_0x1a6382[_0x5e68('0x2')];function _0xd1426(_0x126247){var _0xb3a1d0=0x2;var _0x36653c=[{'type':_0x126247['type'],'app':_0x5e68('0x3'),'appdata':_0x5e68('0x4')+_0x126247[_0x5e68('0x5')],'context':_0x126247[_0x5e68('0x6')],'exten':_0x126247['exten'],'priority':_0xb3a1d0++,'VoiceExtensionId':_0x126247['id']},{'type':_0x126247[_0x5e68('0x5')],'app':_0x126247[_0x5e68('0x7')]?_0x5e68('0x3'):_0x5e68('0x8'),'appdata':_0x126247[_0x5e68('0x7')]?'CDR(routeAlias)='+_0x126247['alias']:_0x5e68('0x9'),'context':_0x126247[_0x5e68('0x6')],'exten':_0x126247[_0x5e68('0xa')],'priority':_0xb3a1d0++,'VoiceExtensionId':_0x126247['id']}];if(_0x126247[_0x5e68('0x5')]===_0x5e68('0xb')){_0x36653c['push']({'type':_0x5e68('0xb'),'app':_0x5e68('0x3'),'appdata':_0x5e68('0xc')+_0x126247['id'],'context':_0x126247[_0x5e68('0x6')],'exten':_0x126247['exten'],'priority':_0xb3a1d0++,'VoiceExtensionId':_0x126247['id']});}_0x36653c[_0x5e68('0xd')]({'type':_0x126247[_0x5e68('0x5')],'app':_0x5e68('0x3'),'appdata':_0x5e68('0xe'),'context':_0x126247[_0x5e68('0x6')],'exten':_0x126247[_0x5e68('0xa')],'priority':_0xb3a1d0++,'VoiceExtensionId':_0x126247['id']},{'type':_0x126247[_0x5e68('0x5')],'app':_0x5e68('0x3'),'appdata':_0x5e68('0xf'),'context':_0x126247['context'],'exten':_0x126247[_0x5e68('0xa')],'priority':_0xb3a1d0++,'VoiceExtensionId':_0x126247['id']},{'type':_0x126247[_0x5e68('0x5')],'app':'Set','appdata':_0x5e68('0x10'),'context':_0x126247['context'],'exten':_0x126247[_0x5e68('0xa')],'priority':_0xb3a1d0++,'VoiceExtensionId':_0x126247['id']});return _0x36653c;}function _0xd82104(_0x3e5bfb){var _0x3d29be=0x2;var _0x3c29a8=[{'type':_0x5e68('0x11'),'app':'Set','appdata':_0x5e68('0x12'),'context':_0x3e5bfb[_0x5e68('0x6')],'exten':_0x3e5bfb[_0x5e68('0xa')],'priority':_0x3d29be++,'VoiceExtensionId':_0x3e5bfb['id']},{'type':_0x5e68('0x11'),'app':_0x3e5bfb['alias']?_0x5e68('0x3'):'NoOp','appdata':_0x3e5bfb[_0x5e68('0x7')]?_0x5e68('0x13')+_0x3e5bfb[_0x5e68('0x7')]:_0x5e68('0x9'),'context':_0x3e5bfb[_0x5e68('0x6')],'exten':_0x3e5bfb[_0x5e68('0xa')],'priority':_0x3d29be++,'VoiceExtensionId':_0x3e5bfb['id']},{'type':_0x5e68('0x11'),'app':_0x5e68('0x3'),'appdata':'CDR(destination)='+(_0x3e5bfb[_0x5e68('0x14')]?'${EXTEN:'+_0x3e5bfb[_0x5e68('0x14')]+'}':_0x5e68('0x15')),'context':_0x3e5bfb[_0x5e68('0x6')],'exten':_0x3e5bfb[_0x5e68('0xa')],'priority':_0x3d29be++,'VoiceExtensionId':_0x3e5bfb['id']},{'type':_0x5e68('0x11'),'app':'Set','appdata':_0x5e68('0xc')+_0x3e5bfb['id'],'context':_0x3e5bfb[_0x5e68('0x6')],'exten':_0x3e5bfb[_0x5e68('0xa')],'priority':_0x3d29be++,'VoiceExtensionId':_0x3e5bfb['id']},{'type':'outbound','app':_0x5e68('0x16'),'appdata':'$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto('+(_0x3d29be+0x2)+_0x5e68('0x17')+(_0x3d29be+0x1)+')','context':_0x3e5bfb[_0x5e68('0x6')],'exten':_0x3e5bfb[_0x5e68('0xa')],'priority':_0x3d29be++,'VoiceExtensionId':_0x3e5bfb['id']},{'type':'outbound','app':_0x5e68('0x3'),'appdata':_0x3e5bfb[_0x5e68('0x14')]?_0x5e68('0x18')+_0x3e5bfb[_0x5e68('0x14')]+'}':_0x5e68('0x19'),'context':_0x3e5bfb[_0x5e68('0x6')],'exten':_0x3e5bfb['exten'],'priority':_0x3d29be++,'VoiceExtensionId':_0x3e5bfb['id']},{'type':_0x5e68('0x11'),'app':_0x5e68('0x3'),'appdata':_0x5e68('0xe'),'context':_0x3e5bfb[_0x5e68('0x6')],'exten':_0x3e5bfb['exten'],'priority':_0x3d29be++,'VoiceExtensionId':_0x3e5bfb['id']},{'type':_0x5e68('0x11'),'app':_0x5e68('0x3'),'appdata':'XCALLY-MOTION-PROGRESS=0','context':_0x3e5bfb[_0x5e68('0x6')],'exten':_0x3e5bfb[_0x5e68('0xa')],'priority':_0x3d29be++,'VoiceExtensionId':_0x3e5bfb['id']},{'type':'outbound','app':'Set','appdata':'MONITOR_OPTIONS=ab','context':_0x3e5bfb[_0x5e68('0x6')],'exten':_0x3e5bfb[_0x5e68('0xa')],'priority':_0x3d29be++,'VoiceExtensionId':_0x3e5bfb['id']},{'type':_0x5e68('0x11'),'app':_0x5e68('0x3'),'appdata':_0x5e68('0x1a')+_0x3e5bfb['id'],'context':_0x3e5bfb[_0x5e68('0x6')],'exten':_0x3e5bfb[_0x5e68('0xa')],'priority':_0x3d29be++,'VoiceExtensionId':_0x3e5bfb['id']}];if(_0x3e5bfb[_0x5e68('0x1b')](_0x5e68('0x1c'))&&_0x3e5bfb[_0x5e68('0x1c')]!=='none'){_0x3c29a8[_0x5e68('0xd')]({'type':_0x5e68('0x11'),'app':_0x5e68('0x3'),'appdata':'_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','context':_0x3e5bfb[_0x5e68('0x6')],'exten':_0x3e5bfb[_0x5e68('0xa')],'priority':_0x3d29be++,'VoiceExtensionId':_0x3e5bfb['id']},{'type':_0x5e68('0x11'),'app':_0x5e68('0x3'),'appdata':'_XCALLY_MIXMONITOR_FORMAT='+_0x3e5bfb[_0x5e68('0x1c')]||_0x5e68('0x1d'),'context':_0x3e5bfb[_0x5e68('0x6')],'exten':_0x3e5bfb[_0x5e68('0xa')],'priority':_0x3d29be++,'VoiceExtensionId':_0x3e5bfb['id']});}return _0x3c29a8;}function _0x1e1e3d(_0x51d6ec,_0x18d08b){var _0x37a8ae=[{'name':_0x5e68('0x1e'),'param':0x0},{'name':_0x5e68('0x1f'),'param':0x1},{'name':_0x5e68('0x20'),'param':0x2},{'name':_0x5e68('0x21'),'param':0x3}];var _0x5c2dcf={};var _0x5db5d8=_0x18d08b[_0x5e68('0x22')](',');var _0x5a2116=[];for(var _0x21169d=0x0;_0x21169d<_0x37a8ae[_0x5e68('0x23')];_0x21169d++){switch(_0x37a8ae[_0x21169d][_0x5e68('0x24')]){case'trunk':_0x5c2dcf['trunk']=_0x5db5d8[_0x37a8ae[_0x21169d]['param']]['split']('/')[0x1];_0x5c2dcf[_0x5e68('0x25')]=_0x5db5d8[_0x37a8ae[_0x21169d][_0x5e68('0x26')]]['split']('/')[0x2];_0x5c2dcf['prefix']=_0x5c2dcf['phone']?_0x5c2dcf[_0x5e68('0x25')][_0x5e68('0x22')]('$')[0x0]:undefined;_0x5c2dcf[_0x5e68('0x25')]=_0x51d6ec[_0x5e68('0x14')]?(_0x5c2dcf['prefix']||'')+_0x5e68('0x27')+_0x51d6ec[_0x5e68('0x14')]+'}':(_0x5c2dcf['prefix']||'')+_0x5e68('0x15');_0x5a2116[_0x37a8ae[_0x21169d][_0x5e68('0x26')]]=[_0x5e68('0x28'),_0x5c2dcf['trunk'],_0x5c2dcf['phone']][_0x5e68('0x29')]('/');break;case _0x5e68('0x20'):_0x5c2dcf['options']=_0x5db5d8[_0x37a8ae[_0x21169d][_0x5e68('0x26')]];if(_0x51d6ec['recordingFormat']!==_0x5e68('0x2a')){if(_0x5c2dcf[_0x5e68('0x20')]['indexOf'](_0x5e68('0x2b'))<0x0){_0x5c2dcf[_0x5e68('0x20')]+=_0x5e68('0x2b');}}else{_0x5c2dcf[_0x5e68('0x20')]=_0x5c2dcf[_0x5e68('0x20')]['replace'](_0x5e68('0x2b'),'');}_0x5a2116[_0x37a8ae[_0x21169d]['param']]=_0x5c2dcf['options'];break;default:_0x5a2116[_0x37a8ae[_0x21169d][_0x5e68('0x26')]]=_0x5db5d8[_0x37a8ae[_0x21169d][_0x5e68('0x26')]];}}return _0x5a2116[_0x5e68('0x29')](',');}function _0xa7159b(_0x23b337,_0x5132b6,_0x17c8fd){return new Promise(function(_0x1b5ef2,_0x1cf466){var _0x3c8e00=[];if(_[_0x5e68('0x2c')](_0x5132b6))return _0x1b5ef2(_0x3c8e00);_0x4173ff['Interval'][_0x5e68('0x2d')]({'attributes':['id',_0x5e68('0x2e'),_0x5e68('0x2f')],'raw':!![]})[_0x5e68('0x30')](function(_0x29ec79){for(var _0x156856=0x0,_0x1e56ed=0x0;_0x156856<_0x5132b6['length'];_0x156856++,_0x1e56ed=0x0){var _0x2cc3f9=_0x5132b6[_0x156856];var _0x4fcf98=[];var _0x16be6e=[];delete _0x2cc3f9['id'];if(_0x2cc3f9[_0x5e68('0x2e')]!==_0x5e68('0x31')){_0x2cc3f9['intervals']=[_0x2cc3f9['interval']];}else{_0x2cc3f9['intervals']=_0x2cc3f9[_0x5e68('0x2f')]?_[_0x5e68('0x32')](_[_0x5e68('0x33')](_0x29ec79,{'IntervalId':_0x2cc3f9['IntervalId']}),_0x5e68('0x2e')):[];}_0x2cc3f9['context']=_0x23b337[_0x5e68('0x6')];_0x2cc3f9['exten']=_0x23b337[_0x5e68('0xa')];if(_0x2cc3f9[_0x5e68('0x5')])_0x2cc3f9['type']=_0x2cc3f9[_0x5e68('0x5')][_0x5e68('0x34')]();if(_0x23b337[_0x5e68('0x5')]==='outbound'){if(_0x2cc3f9[_0x5e68('0x1b')](_0x5e68('0x35'))&&_0x2cc3f9[_0x5e68('0x35')]&&_0x2cc3f9[_0x5e68('0x35')]!=='--'){_0x4fcf98[_0x5e68('0xd')]({'type':_0x2cc3f9[_0x5e68('0x5')]['toLowerCase'](),'app':_0x5e68('0x3'),'appdata':_0x5e68('0x36')+_0x2cc3f9['tag'],'context':_0x23b337[_0x5e68('0x6')],'exten':_0x23b337['exten'],'priority':_0x2cc3f9['intervals'][_0x5e68('0x23')]+_0x17c8fd+_0x1e56ed++,'VoiceExtensionId':_0x23b337['id']});}_0x4fcf98[_0x5e68('0xd')]({'type':_0x2cc3f9[_0x5e68('0x5')]['toLowerCase'](),'app':_0x5e68('0x16'),'appdata':_0x5e68('0x37')+(_0x2cc3f9[_0x5e68('0x38')]?_0x5e68('0x39')+_0x2cc3f9[_0x5e68('0x38')]+')':'NoOp(No\x20number\x20available)'),'context':_0x23b337['context'],'exten':_0x23b337[_0x5e68('0xa')],'priority':_0x2cc3f9[_0x5e68('0x3a')][_0x5e68('0x23')]+_0x17c8fd+_0x1e56ed++,'VoiceExtensionId':_0x23b337['id']});}else{if(_0x2cc3f9['hasOwnProperty']('answer')){if(['queue','playback'][_0x5e68('0x3b')](_0x2cc3f9[_0x5e68('0x3c')][_0x5e68('0x34')]())&&_0x2cc3f9[_0x5e68('0x3d')]!==_0x5e68('0x3e')){if(_0x2cc3f9[_0x5e68('0x3f')]){_0x4fcf98[_0x5e68('0xd')]({'type':_0x2cc3f9[_0x5e68('0x5')]['toLowerCase'](),'app':_0x5e68('0x16'),'appdata':_0x5e68('0x40'),'context':_0x23b337[_0x5e68('0x6')],'exten':_0x23b337[_0x5e68('0xa')],'priority':_0x2cc3f9[_0x5e68('0x3a')][_0x5e68('0x23')]+_0x17c8fd+_0x1e56ed++,'VoiceExtensionId':_0x23b337['id']});_0x4fcf98[_0x5e68('0xd')]({'type':_0x2cc3f9['type']['toLowerCase'](),'app':_0x5e68('0x3'),'appdata':_0x5e68('0x41'),'context':_0x23b337[_0x5e68('0x6')],'exten':_0x23b337[_0x5e68('0xa')],'priority':_0x2cc3f9['intervals']['length']+_0x17c8fd+_0x1e56ed++,'VoiceExtensionId':_0x23b337['id']});}else{_0x4fcf98['push']({'type':_0x2cc3f9[_0x5e68('0x5')][_0x5e68('0x34')](),'app':_0x5e68('0x16'),'appdata':_0x5e68('0x42'),'context':_0x23b337[_0x5e68('0x6')],'exten':_0x23b337['exten'],'priority':_0x2cc3f9[_0x5e68('0x3a')][_0x5e68('0x23')]+_0x17c8fd+_0x1e56ed++,'VoiceExtensionId':_0x23b337['id']});_0x4fcf98[_0x5e68('0xd')]({'type':_0x2cc3f9[_0x5e68('0x5')][_0x5e68('0x34')](),'app':_0x5e68('0x3'),'appdata':_0x5e68('0x43'),'context':_0x23b337[_0x5e68('0x6')],'exten':_0x23b337[_0x5e68('0xa')],'priority':_0x2cc3f9['intervals'][_0x5e68('0x23')]+_0x17c8fd+_0x1e56ed++,'VoiceExtensionId':_0x23b337['id']});}}}}for(var _0x5ca837=0x0;_0x5ca837<_0x2cc3f9[_0x5e68('0x3a')][_0x5e68('0x23')];_0x5ca837++){var _0x4f230f=_0x17c8fd+_0x2cc3f9[_0x5e68('0x3a')][_0x5e68('0x23')];var _0x5509d2=_0x5ca837===_0x2cc3f9[_0x5e68('0x3a')][_0x5e68('0x23')]-0x1?_0x17c8fd+_0x4fcf98[_0x5e68('0x23')]+_0x16be6e['length']+0x2:_0x17c8fd+_0x5ca837+0x1;_0x4fcf98[_0x5e68('0x44')](_0x5ca837,0x0,{'type':_0x23b337[_0x5e68('0x5')],'app':'GotoIfTime','appdata':_0x2cc3f9[_0x5e68('0x3a')][_0x5ca837]+'?'+_0x23b337['context']+_0x5e68('0x45')+_0x4f230f+':'+_0x23b337[_0x5e68('0x6')]+_0x5e68('0x45')+_0x5509d2,'exten':_0x23b337[_0x5e68('0xa')],'context':_0x23b337[_0x5e68('0x6')],'priority':_0x17c8fd+_0x5ca837,'VoiceExtensionId':_0x23b337['id']});}if(_0x2cc3f9[_0x5e68('0x3d')]===_0x5e68('0x46'))_0x2cc3f9[_0x5e68('0x47')]=_0x1e1e3d(_0x23b337,_0x2cc3f9[_0x5e68('0x47')]);_0x2cc3f9['priority']=_0x4fcf98[_0x5e68('0x23')]?_[_0x5e68('0x48')](_0x4fcf98)[_0x5e68('0x49')]+0x1:_0x17c8fd;_0x3c8e00=_[_0x5e68('0x4a')](_0x3c8e00,_0x4fcf98,[_0x2cc3f9],_0x16be6e);_0x17c8fd=_['last'](_0x3c8e00)[_0x5e68('0x49')]+0x1;}return _0x1b5ef2(_0x3c8e00);})[_0x5e68('0x4b')](function(_0x8584f0){_0x1cf466(_0x8584f0);});});}return _0x1a6382[_0x5e68('0x4c')](_0x5e68('0x4d'),attributes,{'tableName':_0x5e68('0x4e'),'paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x186b07){var _0x123af9=this['get']({'plain':!![]});var _0x1b393a=_0x123af9[_0x5e68('0x5')]==='outbound'?_0xd82104(_0x123af9):_0xd1426(_0x123af9);return _0xa7159b(_0x123af9,_0x186b07,_[_0x5e68('0x48')](_0x1b393a)[_0x5e68('0x49')]+0x1)[_0x5e68('0x30')](function(_0x456707){var _0x1ad911=_[_0x5e68('0x4a')](_0x1b393a,_0x456707);_0x1ad911[_0x5e68('0xd')]({'type':_0x123af9['type'],'app':'Hangup','exten':_0x123af9['exten'],'context':_0x123af9[_0x5e68('0x6')],'priority':_[_0x5e68('0x48')](_0x1ad911)[_0x5e68('0x49')]+0x1,'VoiceExtensionId':_0x123af9['id']});return _0x1ad911;});}}});};