5767342f30e6906f0e3db26d22e6c400fab603b6
[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 _0x1bce=['interval','*,*,*,*','intervals','IntervalId','map','toLowerCase','tag','CDR(tag)=','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):','Set(CALLERID(all)=','NoOp(No\x20number\x20available)','answer','playback','includes','app','appType','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','XCALLY-MOTION-PROGRESS=1','splice','GotoIfTime',',${EXTEN},','outboundDial','appdata','priority','concat','catch','define','VoiceExtension','get','Hangup','last','lodash','./voiceExtension.attributes','models','type','Set','context','exten','alias','NoOp','CDR(routeAlias)=','No\x20alias\x20set','inbound','push','CDR(routeid)=','outbound','CDR(type)=outbound','CDR(destination)=','cutdigits','${EXTEN}','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','hasOwnProperty','recordingFormat','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','wav','trunk','timeout','url','split','name','param','phone','prefix','${EXTEN:','SIP','join','options','none','indexOf','U(xcally-mixmonitor-context)','replace','then','length'];(function(_0x3d20d4,_0x34e3cf){var _0x12fbc5=function(_0x3584f7){while(--_0x3584f7){_0x3d20d4['push'](_0x3d20d4['shift']());}};_0x12fbc5(++_0x34e3cf);}(_0x1bce,0x73));var _0xe1bc=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x1bce[_0x321bb2];return _0x9c12ed;};'use strict';var _=require(_0xe1bc('0x0'));var attributes=require(_0xe1bc('0x1'));module['exports']=function(_0x29839d){var _0x302400=_0x29839d[_0xe1bc('0x2')];function _0x37ad98(_0xc1ee3e){var _0x31a5e=0x2;var _0x2cc947=[{'type':_0xc1ee3e[_0xe1bc('0x3')],'app':_0xe1bc('0x4'),'appdata':'CDR(type)='+_0xc1ee3e['type'],'context':_0xc1ee3e[_0xe1bc('0x5')],'exten':_0xc1ee3e[_0xe1bc('0x6')],'priority':_0x31a5e++,'VoiceExtensionId':_0xc1ee3e['id']},{'type':_0xc1ee3e[_0xe1bc('0x3')],'app':_0xc1ee3e[_0xe1bc('0x7')]?_0xe1bc('0x4'):_0xe1bc('0x8'),'appdata':_0xc1ee3e['alias']?_0xe1bc('0x9')+_0xc1ee3e['alias']:_0xe1bc('0xa'),'context':_0xc1ee3e[_0xe1bc('0x5')],'exten':_0xc1ee3e[_0xe1bc('0x6')],'priority':_0x31a5e++,'VoiceExtensionId':_0xc1ee3e['id']}];if(_0xc1ee3e['type']===_0xe1bc('0xb')){_0x2cc947[_0xe1bc('0xc')]({'type':'inbound','app':_0xe1bc('0x4'),'appdata':_0xe1bc('0xd')+_0xc1ee3e['id'],'context':_0xc1ee3e['context'],'exten':_0xc1ee3e['exten'],'priority':_0x31a5e++,'VoiceExtensionId':_0xc1ee3e['id']});}_0x2cc947[_0xe1bc('0xc')]({'type':_0xc1ee3e[_0xe1bc('0x3')],'app':_0xe1bc('0x4'),'appdata':'XCALLY-MOTION-ANSWER=0','context':_0xc1ee3e['context'],'exten':_0xc1ee3e[_0xe1bc('0x6')],'priority':_0x31a5e++,'VoiceExtensionId':_0xc1ee3e['id']},{'type':_0xc1ee3e[_0xe1bc('0x3')],'app':_0xe1bc('0x4'),'appdata':'XCALLY-MOTION-PROGRESS=0','context':_0xc1ee3e[_0xe1bc('0x5')],'exten':_0xc1ee3e[_0xe1bc('0x6')],'priority':_0x31a5e++,'VoiceExtensionId':_0xc1ee3e['id']},{'type':_0xc1ee3e[_0xe1bc('0x3')],'app':_0xe1bc('0x4'),'appdata':'MONITOR_OPTIONS=ab','context':_0xc1ee3e[_0xe1bc('0x5')],'exten':_0xc1ee3e['exten'],'priority':_0x31a5e++,'VoiceExtensionId':_0xc1ee3e['id']});return _0x2cc947;}function _0x306165(_0x121f19){var _0x4acd5b=0x2;var _0x30deda=[{'type':_0xe1bc('0xe'),'app':_0xe1bc('0x4'),'appdata':_0xe1bc('0xf'),'context':_0x121f19[_0xe1bc('0x5')],'exten':_0x121f19[_0xe1bc('0x6')],'priority':_0x4acd5b++,'VoiceExtensionId':_0x121f19['id']},{'type':'outbound','app':_0x121f19[_0xe1bc('0x7')]?'Set':_0xe1bc('0x8'),'appdata':_0x121f19[_0xe1bc('0x7')]?_0xe1bc('0x9')+_0x121f19[_0xe1bc('0x7')]:_0xe1bc('0xa'),'context':_0x121f19['context'],'exten':_0x121f19[_0xe1bc('0x6')],'priority':_0x4acd5b++,'VoiceExtensionId':_0x121f19['id']},{'type':'outbound','app':'Set','appdata':_0xe1bc('0x10')+(_0x121f19[_0xe1bc('0x11')]?'${EXTEN:'+_0x121f19['cutdigits']+'}':_0xe1bc('0x12')),'context':_0x121f19[_0xe1bc('0x5')],'exten':_0x121f19[_0xe1bc('0x6')],'priority':_0x4acd5b++,'VoiceExtensionId':_0x121f19['id']},{'type':_0xe1bc('0xe'),'app':_0xe1bc('0x4'),'appdata':_0xe1bc('0xd')+_0x121f19['id'],'context':_0x121f19[_0xe1bc('0x5')],'exten':_0x121f19[_0xe1bc('0x6')],'priority':_0x4acd5b++,'VoiceExtensionId':_0x121f19['id']},{'type':_0xe1bc('0xe'),'app':_0xe1bc('0x13'),'appdata':_0xe1bc('0x14')+(_0x4acd5b+0x2)+_0xe1bc('0x15')+(_0x4acd5b+0x1)+')','context':_0x121f19[_0xe1bc('0x5')],'exten':_0x121f19['exten'],'priority':_0x4acd5b++,'VoiceExtensionId':_0x121f19['id']},{'type':'outbound','app':_0xe1bc('0x4'),'appdata':_0x121f19['cutdigits']?_0xe1bc('0x16')+_0x121f19['cutdigits']+'}':_0xe1bc('0x17'),'context':_0x121f19['context'],'exten':_0x121f19['exten'],'priority':_0x4acd5b++,'VoiceExtensionId':_0x121f19['id']},{'type':_0xe1bc('0xe'),'app':_0xe1bc('0x4'),'appdata':'XCALLY-MOTION-ANSWER=0','context':_0x121f19['context'],'exten':_0x121f19[_0xe1bc('0x6')],'priority':_0x4acd5b++,'VoiceExtensionId':_0x121f19['id']},{'type':_0xe1bc('0xe'),'app':_0xe1bc('0x4'),'appdata':_0xe1bc('0x18'),'context':_0x121f19[_0xe1bc('0x5')],'exten':_0x121f19[_0xe1bc('0x6')],'priority':_0x4acd5b++,'VoiceExtensionId':_0x121f19['id']},{'type':_0xe1bc('0xe'),'app':_0xe1bc('0x4'),'appdata':_0xe1bc('0x19'),'context':_0x121f19['context'],'exten':_0x121f19[_0xe1bc('0x6')],'priority':_0x4acd5b++,'VoiceExtensionId':_0x121f19['id']},{'type':_0xe1bc('0xe'),'app':_0xe1bc('0x4'),'appdata':'outboundrouteid='+_0x121f19['id'],'context':_0x121f19[_0xe1bc('0x5')],'exten':_0x121f19[_0xe1bc('0x6')],'priority':_0x4acd5b++,'VoiceExtensionId':_0x121f19['id']}];if(_0x121f19[_0xe1bc('0x1a')](_0xe1bc('0x1b'))&&_0x121f19[_0xe1bc('0x1b')]!=='none'){_0x30deda[_0xe1bc('0xc')]({'type':'outbound','app':'Set','appdata':_0xe1bc('0x1c'),'context':_0x121f19[_0xe1bc('0x5')],'exten':_0x121f19[_0xe1bc('0x6')],'priority':_0x4acd5b++,'VoiceExtensionId':_0x121f19['id']},{'type':'outbound','app':_0xe1bc('0x4'),'appdata':_0xe1bc('0x1d')+_0x121f19['recordingFormat']||_0xe1bc('0x1e'),'context':_0x121f19[_0xe1bc('0x5')],'exten':_0x121f19[_0xe1bc('0x6')],'priority':_0x4acd5b++,'VoiceExtensionId':_0x121f19['id']});}return _0x30deda;}function _0x2eb04c(_0x12455c,_0x334796){var _0x55586b=[{'name':_0xe1bc('0x1f'),'param':0x0},{'name':_0xe1bc('0x20'),'param':0x1},{'name':'options','param':0x2},{'name':_0xe1bc('0x21'),'param':0x3}];var _0x47a5f8={};var _0x2a0efa=_0x334796[_0xe1bc('0x22')](',');var _0x3046e6=[];for(var _0x309e32=0x0;_0x309e32<_0x55586b['length'];_0x309e32++){switch(_0x55586b[_0x309e32][_0xe1bc('0x23')]){case _0xe1bc('0x1f'):_0x47a5f8[_0xe1bc('0x1f')]=_0x2a0efa[_0x55586b[_0x309e32][_0xe1bc('0x24')]][_0xe1bc('0x22')]('/')[0x1];_0x47a5f8[_0xe1bc('0x25')]=_0x2a0efa[_0x55586b[_0x309e32][_0xe1bc('0x24')]][_0xe1bc('0x22')]('/')[0x2];_0x47a5f8[_0xe1bc('0x26')]=_0x47a5f8[_0xe1bc('0x25')]?_0x47a5f8[_0xe1bc('0x25')][_0xe1bc('0x22')]('$')[0x0]:undefined;_0x47a5f8[_0xe1bc('0x25')]=_0x12455c[_0xe1bc('0x11')]?(_0x47a5f8['prefix']||'')+_0xe1bc('0x27')+_0x12455c[_0xe1bc('0x11')]+'}':(_0x47a5f8['prefix']||'')+_0xe1bc('0x12');_0x3046e6[_0x55586b[_0x309e32]['param']]=[_0xe1bc('0x28'),_0x47a5f8[_0xe1bc('0x1f')],_0x47a5f8[_0xe1bc('0x25')]][_0xe1bc('0x29')]('/');break;case _0xe1bc('0x2a'):_0x47a5f8['options']=_0x2a0efa[_0x55586b[_0x309e32]['param']];if(_0x12455c[_0xe1bc('0x1b')]!==_0xe1bc('0x2b')){if(_0x47a5f8[_0xe1bc('0x2a')][_0xe1bc('0x2c')](_0xe1bc('0x2d'))<0x0){_0x47a5f8[_0xe1bc('0x2a')]+='U(xcally-mixmonitor-context)';}}else{_0x47a5f8[_0xe1bc('0x2a')]=_0x47a5f8[_0xe1bc('0x2a')][_0xe1bc('0x2e')]('U(xcally-mixmonitor-context)','');}_0x3046e6[_0x55586b[_0x309e32][_0xe1bc('0x24')]]=_0x47a5f8['options'];break;default:_0x3046e6[_0x55586b[_0x309e32][_0xe1bc('0x24')]]=_0x2a0efa[_0x55586b[_0x309e32][_0xe1bc('0x24')]];}}return _0x3046e6[_0xe1bc('0x29')](',');}function _0x5a93d0(_0x16b1b9,_0x2e216e,_0x34fed2){return new Promise(function(_0x59be59,_0x473a44){var _0x5b0c25=[];if(_['isEmpty'](_0x2e216e))return _0x59be59(_0x5b0c25);_0x302400['Interval']['findAll']({'attributes':['id','interval','IntervalId'],'raw':!![]})[_0xe1bc('0x2f')](function(_0x914f3){for(var _0x594ab5=0x0,_0x3ffe9f=0x0;_0x594ab5<_0x2e216e[_0xe1bc('0x30')];_0x594ab5++,_0x3ffe9f=0x0){var _0x243277=_0x2e216e[_0x594ab5];var _0x47b1b8=[];var _0x15c01a=[];delete _0x243277['id'];if(_0x243277[_0xe1bc('0x31')]!==_0xe1bc('0x32')){_0x243277[_0xe1bc('0x33')]=[_0x243277[_0xe1bc('0x31')]];}else{_0x243277['intervals']=_0x243277[_0xe1bc('0x34')]?_[_0xe1bc('0x35')](_['filter'](_0x914f3,{'IntervalId':_0x243277[_0xe1bc('0x34')]}),_0xe1bc('0x31')):[];}_0x243277['context']=_0x16b1b9[_0xe1bc('0x5')];_0x243277['exten']=_0x16b1b9[_0xe1bc('0x6')];if(_0x243277['type'])_0x243277['type']=_0x243277[_0xe1bc('0x3')][_0xe1bc('0x36')]();if(_0x16b1b9[_0xe1bc('0x3')]===_0xe1bc('0xe')){if(_0x243277[_0xe1bc('0x1a')](_0xe1bc('0x37'))&&_0x243277['tag']&&_0x243277[_0xe1bc('0x37')]!=='--'){_0x47b1b8[_0xe1bc('0xc')]({'type':_0x243277['type'][_0xe1bc('0x36')](),'app':'Set','appdata':_0xe1bc('0x38')+_0x243277['tag'],'context':_0x16b1b9[_0xe1bc('0x5')],'exten':_0x16b1b9[_0xe1bc('0x6')],'priority':_0x243277[_0xe1bc('0x33')]['length']+_0x34fed2+_0x3ffe9f++,'VoiceExtensionId':_0x16b1b9['id']});}_0x47b1b8[_0xe1bc('0xc')]({'type':_0x243277['type'][_0xe1bc('0x36')](),'app':_0xe1bc('0x13'),'appdata':_0xe1bc('0x39')+(_0x243277['callerID']?_0xe1bc('0x3a')+_0x243277['callerID']+')':_0xe1bc('0x3b')),'context':_0x16b1b9[_0xe1bc('0x5')],'exten':_0x16b1b9['exten'],'priority':_0x243277[_0xe1bc('0x33')]['length']+_0x34fed2+_0x3ffe9f++,'VoiceExtensionId':_0x16b1b9['id']});}else{if(_0x243277[_0xe1bc('0x1a')](_0xe1bc('0x3c'))){if(['queue',_0xe1bc('0x3d')][_0xe1bc('0x3e')](_0x243277[_0xe1bc('0x3f')][_0xe1bc('0x36')]())&&_0x243277[_0xe1bc('0x40')]!==_0xe1bc('0x41')){if(_0x243277[_0xe1bc('0x3c')]){_0x47b1b8[_0xe1bc('0xc')]({'type':_0x243277[_0xe1bc('0x3')]['toLowerCase'](),'app':'ExecIf','appdata':_0xe1bc('0x42'),'context':_0x16b1b9[_0xe1bc('0x5')],'exten':_0x16b1b9[_0xe1bc('0x6')],'priority':_0x243277[_0xe1bc('0x33')][_0xe1bc('0x30')]+_0x34fed2+_0x3ffe9f++,'VoiceExtensionId':_0x16b1b9['id']});_0x47b1b8[_0xe1bc('0xc')]({'type':_0x243277['type'][_0xe1bc('0x36')](),'app':_0xe1bc('0x4'),'appdata':_0xe1bc('0x43'),'context':_0x16b1b9[_0xe1bc('0x5')],'exten':_0x16b1b9['exten'],'priority':_0x243277[_0xe1bc('0x33')][_0xe1bc('0x30')]+_0x34fed2+_0x3ffe9f++,'VoiceExtensionId':_0x16b1b9['id']});}else{_0x47b1b8[_0xe1bc('0xc')]({'type':_0x243277[_0xe1bc('0x3')]['toLowerCase'](),'app':_0xe1bc('0x13'),'appdata':'$[${XCALLY-MOTION-PROGRESS}=0]?Progress','context':_0x16b1b9[_0xe1bc('0x5')],'exten':_0x16b1b9['exten'],'priority':_0x243277[_0xe1bc('0x33')][_0xe1bc('0x30')]+_0x34fed2+_0x3ffe9f++,'VoiceExtensionId':_0x16b1b9['id']});_0x47b1b8[_0xe1bc('0xc')]({'type':_0x243277[_0xe1bc('0x3')][_0xe1bc('0x36')](),'app':'Set','appdata':_0xe1bc('0x44'),'context':_0x16b1b9['context'],'exten':_0x16b1b9[_0xe1bc('0x6')],'priority':_0x243277[_0xe1bc('0x33')][_0xe1bc('0x30')]+_0x34fed2+_0x3ffe9f++,'VoiceExtensionId':_0x16b1b9['id']});}}}}for(var _0x6a43c5=0x0;_0x6a43c5<_0x243277[_0xe1bc('0x33')][_0xe1bc('0x30')];_0x6a43c5++){var _0x385b54=_0x34fed2+_0x243277[_0xe1bc('0x33')][_0xe1bc('0x30')];var _0x3fc3cb=_0x6a43c5===_0x243277[_0xe1bc('0x33')]['length']-0x1?_0x34fed2+_0x47b1b8[_0xe1bc('0x30')]+_0x15c01a['length']+0x2:_0x34fed2+_0x6a43c5+0x1;_0x47b1b8[_0xe1bc('0x45')](_0x6a43c5,0x0,{'type':_0x16b1b9[_0xe1bc('0x3')],'app':_0xe1bc('0x46'),'appdata':_0x243277[_0xe1bc('0x33')][_0x6a43c5]+'?'+_0x16b1b9[_0xe1bc('0x5')]+',${EXTEN},'+_0x385b54+':'+_0x16b1b9[_0xe1bc('0x5')]+_0xe1bc('0x47')+_0x3fc3cb,'exten':_0x16b1b9[_0xe1bc('0x6')],'context':_0x16b1b9[_0xe1bc('0x5')],'priority':_0x34fed2+_0x6a43c5,'VoiceExtensionId':_0x16b1b9['id']});}if(_0x243277[_0xe1bc('0x40')]===_0xe1bc('0x48'))_0x243277[_0xe1bc('0x49')]=_0x2eb04c(_0x16b1b9,_0x243277['appdata']);_0x243277[_0xe1bc('0x4a')]=_0x47b1b8[_0xe1bc('0x30')]?_['last'](_0x47b1b8)[_0xe1bc('0x4a')]+0x1:_0x34fed2;_0x5b0c25=_[_0xe1bc('0x4b')](_0x5b0c25,_0x47b1b8,[_0x243277],_0x15c01a);_0x34fed2=_['last'](_0x5b0c25)['priority']+0x1;}return _0x59be59(_0x5b0c25);})[_0xe1bc('0x4c')](function(_0x16d62a){_0x473a44(_0x16d62a);});});}return _0x29839d[_0xe1bc('0x4d')](_0xe1bc('0x4e'),attributes,{'tableName':'voice_extensions','paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0xb4e7ad){var _0x114859=this[_0xe1bc('0x4f')]({'plain':!![]});var _0x176fa1=_0x114859[_0xe1bc('0x3')]===_0xe1bc('0xe')?_0x306165(_0x114859):_0x37ad98(_0x114859);return _0x5a93d0(_0x114859,_0xb4e7ad,_['last'](_0x176fa1)[_0xe1bc('0x4a')]+0x1)[_0xe1bc('0x2f')](function(_0x2154af){var _0x75bf7c=_[_0xe1bc('0x4b')](_0x176fa1,_0x2154af);_0x75bf7c[_0xe1bc('0xc')]({'type':_0x114859[_0xe1bc('0x3')],'app':_0xe1bc('0x50'),'exten':_0x114859[_0xe1bc('0x6')],'context':_0x114859['context'],'priority':_[_0xe1bc('0x51')](_0x75bf7c)[_0xe1bc('0x4a')]+0x1,'VoiceExtensionId':_0x114859['id']});return _0x75bf7c;});}}});};