4e208fc9667eae119b8f365443e15001a420bde2
[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 _0xb71d=['interval','IntervalId','*,*,*,*','intervals','map','filter','toLowerCase','tag','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):','callerID','NoOp(No\x20number\x20available)','answer','includes','app','appType','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','GotoIfTime',',${EXTEN},','outboundDial','appdata','priority','concat','last','catch','define','VoiceExtension','voice_extensions','get','then','lodash','./voiceExtension.attributes','exports','models','CDR(type)=','context','alias','NoOp','No\x20alias\x20set','exten','inbound','Set','CDR(routeid)=','push','type','XCALLY-MOTION-PROGRESS=0','outbound','CDR(type)=outbound','CDR(routeAlias)=','CDR(destination)=','cutdigits','${EXTEN:','${EXTEN}','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=${EXTEN:0:','XCALLY-MOTION-ANSWER=0','outboundrouteid=','hasOwnProperty','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','trunk','options','url','split','length','name','param','phone','prefix','join','indexOf','U(xcally-mixmonitor-context)','isEmpty','Interval'];(function(_0x5f09c5,_0x2bfca0){var _0x426ad9=function(_0x18fe5f){while(--_0x18fe5f){_0x5f09c5['push'](_0x5f09c5['shift']());}};_0x426ad9(++_0x2bfca0);}(_0xb71d,0xc0));var _0xdb71=function(_0xfae23b,_0x2be4ba){_0xfae23b=_0xfae23b-0x0;var _0x200640=_0xb71d[_0xfae23b];return _0x200640;};'use strict';var _=require(_0xdb71('0x0'));var attributes=require(_0xdb71('0x1'));module[_0xdb71('0x2')]=function(_0xa51c1f){var _0x1d747d=_0xa51c1f[_0xdb71('0x3')];function _0x52f5c3(_0x45f52e){var _0x5ec3b6=0x2;var _0x1d6029=[{'type':_0x45f52e['type'],'app':'Set','appdata':_0xdb71('0x4')+_0x45f52e['type'],'context':_0x45f52e[_0xdb71('0x5')],'exten':_0x45f52e['exten'],'priority':_0x5ec3b6++,'VoiceExtensionId':_0x45f52e['id']},{'type':_0x45f52e['type'],'app':_0x45f52e[_0xdb71('0x6')]?'Set':_0xdb71('0x7'),'appdata':_0x45f52e[_0xdb71('0x6')]?'CDR(routeAlias)='+_0x45f52e[_0xdb71('0x6')]:_0xdb71('0x8'),'context':_0x45f52e[_0xdb71('0x5')],'exten':_0x45f52e[_0xdb71('0x9')],'priority':_0x5ec3b6++,'VoiceExtensionId':_0x45f52e['id']}];if(_0x45f52e['type']===_0xdb71('0xa')){_0x1d6029['push']({'type':_0xdb71('0xa'),'app':_0xdb71('0xb'),'appdata':_0xdb71('0xc')+_0x45f52e['id'],'context':_0x45f52e[_0xdb71('0x5')],'exten':_0x45f52e['exten'],'priority':_0x5ec3b6++,'VoiceExtensionId':_0x45f52e['id']});}_0x1d6029[_0xdb71('0xd')]({'type':_0x45f52e['type'],'app':_0xdb71('0xb'),'appdata':'XCALLY-MOTION-ANSWER=0','context':_0x45f52e[_0xdb71('0x5')],'exten':_0x45f52e[_0xdb71('0x9')],'priority':_0x5ec3b6++,'VoiceExtensionId':_0x45f52e['id']},{'type':_0x45f52e[_0xdb71('0xe')],'app':'Set','appdata':_0xdb71('0xf'),'context':_0x45f52e[_0xdb71('0x5')],'exten':_0x45f52e[_0xdb71('0x9')],'priority':_0x5ec3b6++,'VoiceExtensionId':_0x45f52e['id']},{'type':_0x45f52e[_0xdb71('0xe')],'app':'Set','appdata':'MONITOR_OPTIONS=ab','context':_0x45f52e[_0xdb71('0x5')],'exten':_0x45f52e['exten'],'priority':_0x5ec3b6++,'VoiceExtensionId':_0x45f52e['id']});return _0x1d6029;}function _0x1b5315(_0x427b67){var _0xe441b2=0x2;var _0x2f2a86=[{'type':_0xdb71('0x10'),'app':'Set','appdata':_0xdb71('0x11'),'context':_0x427b67[_0xdb71('0x5')],'exten':_0x427b67['exten'],'priority':_0xe441b2++,'VoiceExtensionId':_0x427b67['id']},{'type':_0xdb71('0x10'),'app':_0x427b67[_0xdb71('0x6')]?_0xdb71('0xb'):_0xdb71('0x7'),'appdata':_0x427b67['alias']?_0xdb71('0x12')+_0x427b67[_0xdb71('0x6')]:'No\x20alias\x20set','context':_0x427b67['context'],'exten':_0x427b67[_0xdb71('0x9')],'priority':_0xe441b2++,'VoiceExtensionId':_0x427b67['id']},{'type':_0xdb71('0x10'),'app':_0xdb71('0xb'),'appdata':_0xdb71('0x13')+(_0x427b67[_0xdb71('0x14')]?_0xdb71('0x15')+_0x427b67[_0xdb71('0x14')]+'}':_0xdb71('0x16')),'context':_0x427b67[_0xdb71('0x5')],'exten':_0x427b67[_0xdb71('0x9')],'priority':_0xe441b2++,'VoiceExtensionId':_0x427b67['id']},{'type':_0xdb71('0x10'),'app':_0xdb71('0xb'),'appdata':'CDR(routeid)='+_0x427b67['id'],'context':_0x427b67[_0xdb71('0x5')],'exten':_0x427b67[_0xdb71('0x9')],'priority':_0xe441b2++,'VoiceExtensionId':_0x427b67['id']},{'type':'outbound','app':_0xdb71('0x17'),'appdata':_0xdb71('0x18')+(_0xe441b2+0x2)+_0xdb71('0x19')+(_0xe441b2+0x1)+')','context':_0x427b67['context'],'exten':_0x427b67[_0xdb71('0x9')],'priority':_0xe441b2++,'VoiceExtensionId':_0x427b67['id']},{'type':_0xdb71('0x10'),'app':_0xdb71('0xb'),'appdata':_0x427b67[_0xdb71('0x14')]?_0xdb71('0x1a')+_0x427b67[_0xdb71('0x14')]+'}':'CDR(prefix)=noprefix','context':_0x427b67[_0xdb71('0x5')],'exten':_0x427b67['exten'],'priority':_0xe441b2++,'VoiceExtensionId':_0x427b67['id']},{'type':_0xdb71('0x10'),'app':_0xdb71('0xb'),'appdata':_0xdb71('0x1b'),'context':_0x427b67['context'],'exten':_0x427b67[_0xdb71('0x9')],'priority':_0xe441b2++,'VoiceExtensionId':_0x427b67['id']},{'type':_0xdb71('0x10'),'app':_0xdb71('0xb'),'appdata':_0xdb71('0xf'),'context':_0x427b67['context'],'exten':_0x427b67[_0xdb71('0x9')],'priority':_0xe441b2++,'VoiceExtensionId':_0x427b67['id']},{'type':_0xdb71('0x10'),'app':_0xdb71('0xb'),'appdata':'MONITOR_OPTIONS=ab','context':_0x427b67[_0xdb71('0x5')],'exten':_0x427b67['exten'],'priority':_0xe441b2++,'VoiceExtensionId':_0x427b67['id']},{'type':_0xdb71('0x10'),'app':'Set','appdata':_0xdb71('0x1c')+_0x427b67['id'],'context':_0x427b67[_0xdb71('0x5')],'exten':_0x427b67[_0xdb71('0x9')],'priority':_0xe441b2++,'VoiceExtensionId':_0x427b67['id']}];if(_0x427b67[_0xdb71('0x1d')](_0xdb71('0x1e'))&&_0x427b67[_0xdb71('0x1e')]!==_0xdb71('0x1f')){_0x2f2a86[_0xdb71('0xd')]({'type':_0xdb71('0x10'),'app':_0xdb71('0xb'),'appdata':_0xdb71('0x20'),'context':_0x427b67[_0xdb71('0x5')],'exten':_0x427b67['exten'],'priority':_0xe441b2++,'VoiceExtensionId':_0x427b67['id']},{'type':'outbound','app':'Set','appdata':_0xdb71('0x21')+_0x427b67[_0xdb71('0x1e')]||'wav','context':_0x427b67['context'],'exten':_0x427b67[_0xdb71('0x9')],'priority':_0xe441b2++,'VoiceExtensionId':_0x427b67['id']});}return _0x2f2a86;}function _0x18d9d7(_0x31bee5,_0x28a339){var _0x1cb96b=[{'name':_0xdb71('0x22'),'param':0x0},{'name':'timeout','param':0x1},{'name':_0xdb71('0x23'),'param':0x2},{'name':_0xdb71('0x24'),'param':0x3}];var _0x1c4a5b={};var _0x305e92=_0x28a339[_0xdb71('0x25')](',');var _0x9914a0=[];for(var _0x413d89=0x0;_0x413d89<_0x1cb96b[_0xdb71('0x26')];_0x413d89++){switch(_0x1cb96b[_0x413d89][_0xdb71('0x27')]){case _0xdb71('0x22'):_0x1c4a5b['trunk']=_0x305e92[_0x1cb96b[_0x413d89][_0xdb71('0x28')]]['split']('/')[0x1];_0x1c4a5b[_0xdb71('0x29')]=_0x305e92[_0x1cb96b[_0x413d89][_0xdb71('0x28')]]['split']('/')[0x2];_0x1c4a5b[_0xdb71('0x2a')]=_0x1c4a5b[_0xdb71('0x29')]?_0x1c4a5b[_0xdb71('0x29')][_0xdb71('0x25')]('$')[0x0]:undefined;_0x1c4a5b['phone']=_0x31bee5[_0xdb71('0x14')]?(_0x1c4a5b[_0xdb71('0x2a')]||'')+_0xdb71('0x15')+_0x31bee5['cutdigits']+'}':(_0x1c4a5b[_0xdb71('0x2a')]||'')+_0xdb71('0x16');_0x9914a0[_0x1cb96b[_0x413d89][_0xdb71('0x28')]]=['SIP',_0x1c4a5b[_0xdb71('0x22')],_0x1c4a5b[_0xdb71('0x29')]][_0xdb71('0x2b')]('/');break;case _0xdb71('0x23'):_0x1c4a5b[_0xdb71('0x23')]=_0x305e92[_0x1cb96b[_0x413d89][_0xdb71('0x28')]];if(_0x31bee5[_0xdb71('0x1e')]!=='none'){if(_0x1c4a5b[_0xdb71('0x23')][_0xdb71('0x2c')](_0xdb71('0x2d'))<0x0){_0x1c4a5b[_0xdb71('0x23')]+=_0xdb71('0x2d');}}else{_0x1c4a5b[_0xdb71('0x23')]=_0x1c4a5b[_0xdb71('0x23')]['replace'](_0xdb71('0x2d'),'');}_0x9914a0[_0x1cb96b[_0x413d89][_0xdb71('0x28')]]=_0x1c4a5b[_0xdb71('0x23')];break;default:_0x9914a0[_0x1cb96b[_0x413d89][_0xdb71('0x28')]]=_0x305e92[_0x1cb96b[_0x413d89][_0xdb71('0x28')]];}}return _0x9914a0[_0xdb71('0x2b')](',');}function _0x562238(_0x1f7c5c,_0x29a03b,_0x1eb16d){return new Promise(function(_0x4c1a7b,_0x1a6f20){var _0x3c1507=[];if(_[_0xdb71('0x2e')](_0x29a03b))return _0x4c1a7b(_0x3c1507);_0x1d747d[_0xdb71('0x2f')]['findAll']({'attributes':['id',_0xdb71('0x30'),_0xdb71('0x31')],'raw':!![]})['then'](function(_0x3f3e72){for(var _0x52fe8d=0x0,_0x9f5a6=0x0;_0x52fe8d<_0x29a03b[_0xdb71('0x26')];_0x52fe8d++,_0x9f5a6=0x0){var _0x4729af=_0x29a03b[_0x52fe8d];var _0x253e1b=[];var _0xd79c3c=[];delete _0x4729af['id'];if(_0x4729af[_0xdb71('0x30')]!==_0xdb71('0x32')){_0x4729af[_0xdb71('0x33')]=[_0x4729af[_0xdb71('0x30')]];}else{_0x4729af[_0xdb71('0x33')]=_0x4729af[_0xdb71('0x31')]?_[_0xdb71('0x34')](_[_0xdb71('0x35')](_0x3f3e72,{'IntervalId':_0x4729af[_0xdb71('0x31')]}),_0xdb71('0x30')):[];}_0x4729af[_0xdb71('0x5')]=_0x1f7c5c[_0xdb71('0x5')];_0x4729af['exten']=_0x1f7c5c[_0xdb71('0x9')];if(_0x4729af[_0xdb71('0xe')])_0x4729af[_0xdb71('0xe')]=_0x4729af[_0xdb71('0xe')][_0xdb71('0x36')]();if(_0x1f7c5c[_0xdb71('0xe')]===_0xdb71('0x10')){if(_0x4729af['hasOwnProperty'](_0xdb71('0x37'))&&_0x4729af['tag']&&_0x4729af[_0xdb71('0x37')]!=='--'){_0x253e1b[_0xdb71('0xd')]({'type':_0x4729af['type']['toLowerCase'](),'app':'Set','appdata':'CDR(tag)='+_0x4729af[_0xdb71('0x37')],'context':_0x1f7c5c[_0xdb71('0x5')],'exten':_0x1f7c5c['exten'],'priority':_0x4729af[_0xdb71('0x33')][_0xdb71('0x26')]+_0x1eb16d+_0x9f5a6++,'VoiceExtensionId':_0x1f7c5c['id']});}_0x253e1b['push']({'type':_0x4729af[_0xdb71('0xe')][_0xdb71('0x36')](),'app':'ExecIf','appdata':_0xdb71('0x38')+(_0x4729af[_0xdb71('0x39')]?'Set(CALLERID(all)='+_0x4729af['callerID']+')':_0xdb71('0x3a')),'context':_0x1f7c5c['context'],'exten':_0x1f7c5c[_0xdb71('0x9')],'priority':_0x4729af[_0xdb71('0x33')]['length']+_0x1eb16d+_0x9f5a6++,'VoiceExtensionId':_0x1f7c5c['id']});}else{if(_0x4729af['hasOwnProperty'](_0xdb71('0x3b'))){if(['queue','playback'][_0xdb71('0x3c')](_0x4729af[_0xdb71('0x3d')]['toLowerCase']())&&_0x4729af[_0xdb71('0x3e')]!==_0xdb71('0x3f')){if(_0x4729af[_0xdb71('0x3b')]){_0x253e1b[_0xdb71('0xd')]({'type':_0x4729af['type'][_0xdb71('0x36')](),'app':'ExecIf','appdata':_0xdb71('0x40'),'context':_0x1f7c5c['context'],'exten':_0x1f7c5c[_0xdb71('0x9')],'priority':_0x4729af['intervals'][_0xdb71('0x26')]+_0x1eb16d+_0x9f5a6++,'VoiceExtensionId':_0x1f7c5c['id']});_0x253e1b[_0xdb71('0xd')]({'type':_0x4729af[_0xdb71('0xe')][_0xdb71('0x36')](),'app':_0xdb71('0xb'),'appdata':'XCALLY-MOTION-ANSWER=1','context':_0x1f7c5c[_0xdb71('0x5')],'exten':_0x1f7c5c[_0xdb71('0x9')],'priority':_0x4729af[_0xdb71('0x33')]['length']+_0x1eb16d+_0x9f5a6++,'VoiceExtensionId':_0x1f7c5c['id']});}else{_0x253e1b[_0xdb71('0xd')]({'type':_0x4729af['type'][_0xdb71('0x36')](),'app':_0xdb71('0x17'),'appdata':_0xdb71('0x41'),'context':_0x1f7c5c[_0xdb71('0x5')],'exten':_0x1f7c5c[_0xdb71('0x9')],'priority':_0x4729af[_0xdb71('0x33')][_0xdb71('0x26')]+_0x1eb16d+_0x9f5a6++,'VoiceExtensionId':_0x1f7c5c['id']});_0x253e1b[_0xdb71('0xd')]({'type':_0x4729af[_0xdb71('0xe')]['toLowerCase'](),'app':_0xdb71('0xb'),'appdata':_0xdb71('0x42'),'context':_0x1f7c5c[_0xdb71('0x5')],'exten':_0x1f7c5c[_0xdb71('0x9')],'priority':_0x4729af[_0xdb71('0x33')]['length']+_0x1eb16d+_0x9f5a6++,'VoiceExtensionId':_0x1f7c5c['id']});}}}}for(var _0x119e6d=0x0;_0x119e6d<_0x4729af['intervals'][_0xdb71('0x26')];_0x119e6d++){var _0x3e43ae=_0x1eb16d+_0x4729af[_0xdb71('0x33')]['length'];var _0x410415=_0x119e6d===_0x4729af[_0xdb71('0x33')][_0xdb71('0x26')]-0x1?_0x1eb16d+_0x253e1b['length']+_0xd79c3c[_0xdb71('0x26')]+0x2:_0x1eb16d+_0x119e6d+0x1;_0x253e1b['splice'](_0x119e6d,0x0,{'type':_0x1f7c5c[_0xdb71('0xe')],'app':_0xdb71('0x43'),'appdata':_0x4729af[_0xdb71('0x33')][_0x119e6d]+'?'+_0x1f7c5c['context']+',${EXTEN},'+_0x3e43ae+':'+_0x1f7c5c['context']+_0xdb71('0x44')+_0x410415,'exten':_0x1f7c5c[_0xdb71('0x9')],'context':_0x1f7c5c['context'],'priority':_0x1eb16d+_0x119e6d,'VoiceExtensionId':_0x1f7c5c['id']});}if(_0x4729af[_0xdb71('0x3e')]===_0xdb71('0x45'))_0x4729af[_0xdb71('0x46')]=_0x18d9d7(_0x1f7c5c,_0x4729af[_0xdb71('0x46')]);_0x4729af[_0xdb71('0x47')]=_0x253e1b[_0xdb71('0x26')]?_['last'](_0x253e1b)[_0xdb71('0x47')]+0x1:_0x1eb16d;_0x3c1507=_[_0xdb71('0x48')](_0x3c1507,_0x253e1b,[_0x4729af],_0xd79c3c);_0x1eb16d=_[_0xdb71('0x49')](_0x3c1507)[_0xdb71('0x47')]+0x1;}return _0x4c1a7b(_0x3c1507);})[_0xdb71('0x4a')](function(_0x233df6){_0x1a6f20(_0x233df6);});});}return _0xa51c1f[_0xdb71('0x4b')](_0xdb71('0x4c'),attributes,{'tableName':_0xdb71('0x4d'),'paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x3f8e34){var _0x39d1f6=this[_0xdb71('0x4e')]({'plain':!![]});var _0x41635d=_0x39d1f6[_0xdb71('0xe')]==='outbound'?_0x1b5315(_0x39d1f6):_0x52f5c3(_0x39d1f6);return _0x562238(_0x39d1f6,_0x3f8e34,_[_0xdb71('0x49')](_0x41635d)[_0xdb71('0x47')]+0x1)[_0xdb71('0x4f')](function(_0xf00bf5){var _0x242764=_[_0xdb71('0x48')](_0x41635d,_0xf00bf5);_0x242764['push']({'type':_0x39d1f6[_0xdb71('0xe')],'app':'Hangup','exten':_0x39d1f6[_0xdb71('0x9')],'context':_0x39d1f6[_0xdb71('0x5')],'priority':_[_0xdb71('0x49')](_0x242764)[_0xdb71('0x47')]+0x1,'VoiceExtensionId':_0x39d1f6['id']});return _0x242764;});}}});};