f9bb6d3e5b90ceb6e4274e4dfdd00296ef30263e
[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 _0x6e15=['XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','outbound','CDR(type)=outbound','CDR(destination)=','cutdigits','${EXTEN:','${EXTEN}','CDR(routeid)=','ExecIf','):Goto(','CDR(prefix)=${EXTEN:0:','MONITOR_OPTIONS=ab','hasOwnProperty','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','wav','trunk','timeout','options','url','split','name','param','phone','prefix','SIP','join','indexOf','U(xcally-mixmonitor-context)','replace','isEmpty','interval','IntervalId','then','length','*,*,*,*','intervals','map','filter','toLowerCase','tag','CDR(tag)=','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):','callerID','Set(CALLERID(all)=','NoOp(No\x20number\x20available)','queue','app','answer','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-PROGRESS=1','splice',',${EXTEN},','outboundDial','appdata','priority','last','concat','catch','define','Hangup','models','type','Set','CDR(type)=','context','exten','push','inbound'];(function(_0x1d558c,_0x1e497c){var _0x15767d=function(_0x26326d){while(--_0x26326d){_0x1d558c['push'](_0x1d558c['shift']());}};_0x15767d(++_0x1e497c);}(_0x6e15,0x114));var _0x56e1=function(_0x3f53b0,_0x39258f){_0x3f53b0=_0x3f53b0-0x0;var _0x539c67=_0x6e15[_0x3f53b0];return _0x539c67;};'use strict';var _=require('lodash');var attributes=require('./voiceExtension.attributes');module['exports']=function(_0x1e2803){var _0x4a0e3f=_0x1e2803[_0x56e1('0x0')];function _0x1cf908(_0x3b9bdf){var _0x2b1b23=0x2;var _0x3138ed=[{'type':_0x3b9bdf[_0x56e1('0x1')],'app':_0x56e1('0x2'),'appdata':_0x56e1('0x3')+_0x3b9bdf[_0x56e1('0x1')],'context':_0x3b9bdf[_0x56e1('0x4')],'exten':_0x3b9bdf[_0x56e1('0x5')],'priority':_0x2b1b23++,'VoiceExtensionId':_0x3b9bdf['id']}];if(_0x3b9bdf[_0x56e1('0x1')]==='inbound'){_0x3138ed[_0x56e1('0x6')]({'type':_0x56e1('0x7'),'app':_0x56e1('0x2'),'appdata':'CDR(routeid)='+_0x3b9bdf['id'],'context':_0x3b9bdf[_0x56e1('0x4')],'exten':_0x3b9bdf[_0x56e1('0x5')],'priority':_0x2b1b23++,'VoiceExtensionId':_0x3b9bdf['id']});}_0x3138ed[_0x56e1('0x6')]({'type':_0x3b9bdf['type'],'app':_0x56e1('0x2'),'appdata':_0x56e1('0x8'),'context':_0x3b9bdf['context'],'exten':_0x3b9bdf[_0x56e1('0x5')],'priority':_0x2b1b23++,'VoiceExtensionId':_0x3b9bdf['id']},{'type':_0x3b9bdf[_0x56e1('0x1')],'app':_0x56e1('0x2'),'appdata':_0x56e1('0x9'),'context':_0x3b9bdf['context'],'exten':_0x3b9bdf[_0x56e1('0x5')],'priority':_0x2b1b23++,'VoiceExtensionId':_0x3b9bdf['id']},{'type':_0x3b9bdf['type'],'app':_0x56e1('0x2'),'appdata':'MONITOR_OPTIONS=ab','context':_0x3b9bdf[_0x56e1('0x4')],'exten':_0x3b9bdf['exten'],'priority':_0x2b1b23++,'VoiceExtensionId':_0x3b9bdf['id']});return _0x3138ed;}function _0x5f3a24(_0x19ddbf){var _0x213dbf=0x2;var _0x40e270=[{'type':_0x56e1('0xa'),'app':_0x56e1('0x2'),'appdata':_0x56e1('0xb'),'context':_0x19ddbf[_0x56e1('0x4')],'exten':_0x19ddbf[_0x56e1('0x5')],'priority':_0x213dbf++,'VoiceExtensionId':_0x19ddbf['id']},{'type':_0x56e1('0xa'),'app':_0x56e1('0x2'),'appdata':_0x56e1('0xc')+(_0x19ddbf[_0x56e1('0xd')]?_0x56e1('0xe')+_0x19ddbf[_0x56e1('0xd')]+'}':_0x56e1('0xf')),'context':_0x19ddbf[_0x56e1('0x4')],'exten':_0x19ddbf['exten'],'priority':_0x213dbf++,'VoiceExtensionId':_0x19ddbf['id']},{'type':_0x56e1('0xa'),'app':'Set','appdata':_0x56e1('0x10')+_0x19ddbf['id'],'context':_0x19ddbf[_0x56e1('0x4')],'exten':_0x19ddbf[_0x56e1('0x5')],'priority':_0x213dbf++,'VoiceExtensionId':_0x19ddbf['id']},{'type':_0x56e1('0xa'),'app':_0x56e1('0x11'),'appdata':'$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto('+(_0x213dbf+0x2)+_0x56e1('0x12')+(_0x213dbf+0x1)+')','context':_0x19ddbf['context'],'exten':_0x19ddbf[_0x56e1('0x5')],'priority':_0x213dbf++,'VoiceExtensionId':_0x19ddbf['id']},{'type':_0x56e1('0xa'),'app':_0x56e1('0x2'),'appdata':_0x19ddbf[_0x56e1('0xd')]?_0x56e1('0x13')+_0x19ddbf[_0x56e1('0xd')]+'}':'CDR(prefix)=noprefix','context':_0x19ddbf[_0x56e1('0x4')],'exten':_0x19ddbf[_0x56e1('0x5')],'priority':_0x213dbf++,'VoiceExtensionId':_0x19ddbf['id']},{'type':'outbound','app':_0x56e1('0x2'),'appdata':'XCALLY-MOTION-ANSWER=0','context':_0x19ddbf[_0x56e1('0x4')],'exten':_0x19ddbf[_0x56e1('0x5')],'priority':_0x213dbf++,'VoiceExtensionId':_0x19ddbf['id']},{'type':_0x56e1('0xa'),'app':_0x56e1('0x2'),'appdata':_0x56e1('0x9'),'context':_0x19ddbf['context'],'exten':_0x19ddbf['exten'],'priority':_0x213dbf++,'VoiceExtensionId':_0x19ddbf['id']},{'type':_0x56e1('0xa'),'app':_0x56e1('0x2'),'appdata':_0x56e1('0x14'),'context':_0x19ddbf[_0x56e1('0x4')],'exten':_0x19ddbf[_0x56e1('0x5')],'priority':_0x213dbf++,'VoiceExtensionId':_0x19ddbf['id']},{'type':_0x56e1('0xa'),'app':_0x56e1('0x2'),'appdata':'outboundrouteid='+_0x19ddbf['id'],'context':_0x19ddbf[_0x56e1('0x4')],'exten':_0x19ddbf['exten'],'priority':_0x213dbf++,'VoiceExtensionId':_0x19ddbf['id']}];if(_0x19ddbf[_0x56e1('0x15')](_0x56e1('0x16'))&&_0x19ddbf[_0x56e1('0x16')]!==_0x56e1('0x17')){_0x40e270[_0x56e1('0x6')]({'type':_0x56e1('0xa'),'app':_0x56e1('0x2'),'appdata':_0x56e1('0x18'),'context':_0x19ddbf[_0x56e1('0x4')],'exten':_0x19ddbf[_0x56e1('0x5')],'priority':_0x213dbf++,'VoiceExtensionId':_0x19ddbf['id']},{'type':_0x56e1('0xa'),'app':_0x56e1('0x2'),'appdata':'_XCALLY_MIXMONITOR_FORMAT='+_0x19ddbf['recordingFormat']||_0x56e1('0x19'),'context':_0x19ddbf[_0x56e1('0x4')],'exten':_0x19ddbf[_0x56e1('0x5')],'priority':_0x213dbf++,'VoiceExtensionId':_0x19ddbf['id']});}return _0x40e270;}function _0x3c2941(_0x4effd0,_0x1a2232){var _0x1f9e29=[{'name':_0x56e1('0x1a'),'param':0x0},{'name':_0x56e1('0x1b'),'param':0x1},{'name':_0x56e1('0x1c'),'param':0x2},{'name':_0x56e1('0x1d'),'param':0x3}];var _0x15b2a0={};var _0x21c8a8=_0x1a2232[_0x56e1('0x1e')](',');var _0xbbdf72=[];for(var _0x2fc9f9=0x0;_0x2fc9f9<_0x1f9e29['length'];_0x2fc9f9++){switch(_0x1f9e29[_0x2fc9f9][_0x56e1('0x1f')]){case'trunk':_0x15b2a0[_0x56e1('0x1a')]=_0x21c8a8[_0x1f9e29[_0x2fc9f9][_0x56e1('0x20')]][_0x56e1('0x1e')]('/')[0x1];_0x15b2a0[_0x56e1('0x21')]=_0x21c8a8[_0x1f9e29[_0x2fc9f9][_0x56e1('0x20')]][_0x56e1('0x1e')]('/')[0x2];_0x15b2a0[_0x56e1('0x22')]=_0x15b2a0[_0x56e1('0x21')]?_0x15b2a0[_0x56e1('0x21')][_0x56e1('0x1e')]('$')[0x0]:undefined;_0x15b2a0[_0x56e1('0x21')]=_0x4effd0[_0x56e1('0xd')]?(_0x15b2a0[_0x56e1('0x22')]||'')+'${EXTEN:'+_0x4effd0[_0x56e1('0xd')]+'}':(_0x15b2a0[_0x56e1('0x22')]||'')+'${EXTEN}';_0xbbdf72[_0x1f9e29[_0x2fc9f9][_0x56e1('0x20')]]=[_0x56e1('0x23'),_0x15b2a0[_0x56e1('0x1a')],_0x15b2a0[_0x56e1('0x21')]][_0x56e1('0x24')]('/');break;case _0x56e1('0x1c'):_0x15b2a0[_0x56e1('0x1c')]=_0x21c8a8[_0x1f9e29[_0x2fc9f9][_0x56e1('0x20')]];if(_0x4effd0[_0x56e1('0x16')]!==_0x56e1('0x17')){if(_0x15b2a0[_0x56e1('0x1c')][_0x56e1('0x25')](_0x56e1('0x26'))<0x0){_0x15b2a0[_0x56e1('0x1c')]+=_0x56e1('0x26');}}else{_0x15b2a0[_0x56e1('0x1c')]=_0x15b2a0[_0x56e1('0x1c')][_0x56e1('0x27')](_0x56e1('0x26'),'');}_0xbbdf72[_0x1f9e29[_0x2fc9f9][_0x56e1('0x20')]]=_0x15b2a0[_0x56e1('0x1c')];break;default:_0xbbdf72[_0x1f9e29[_0x2fc9f9][_0x56e1('0x20')]]=_0x21c8a8[_0x1f9e29[_0x2fc9f9]['param']];}}return _0xbbdf72['join'](',');}function _0x1873e3(_0x328e30,_0x1d4b0d,_0x19986a){return new Promise(function(_0x30e6fa,_0x55b05e){var _0x4a2a1e=[];if(_[_0x56e1('0x28')](_0x1d4b0d))return _0x30e6fa(_0x4a2a1e);_0x4a0e3f['Interval']['findAll']({'attributes':['id',_0x56e1('0x29'),_0x56e1('0x2a')],'raw':!![]})[_0x56e1('0x2b')](function(_0x258e73){for(var _0x662a7=0x0,_0x31f33a=0x0;_0x662a7<_0x1d4b0d[_0x56e1('0x2c')];_0x662a7++,_0x31f33a=0x0){var _0x26a841=_0x1d4b0d[_0x662a7];var _0x229341=[];var _0x2745aa=[];delete _0x26a841['id'];if(_0x26a841[_0x56e1('0x29')]!==_0x56e1('0x2d')){_0x26a841['intervals']=[_0x26a841['interval']];}else{_0x26a841[_0x56e1('0x2e')]=_0x26a841[_0x56e1('0x2a')]?_[_0x56e1('0x2f')](_[_0x56e1('0x30')](_0x258e73,{'IntervalId':_0x26a841['IntervalId']}),_0x56e1('0x29')):[];}_0x26a841[_0x56e1('0x4')]=_0x328e30[_0x56e1('0x4')];_0x26a841[_0x56e1('0x5')]=_0x328e30[_0x56e1('0x5')];if(_0x26a841[_0x56e1('0x1')])_0x26a841[_0x56e1('0x1')]=_0x26a841[_0x56e1('0x1')][_0x56e1('0x31')]();if(_0x328e30[_0x56e1('0x1')]===_0x56e1('0xa')){if(_0x26a841['hasOwnProperty'](_0x56e1('0x32'))&&_0x26a841[_0x56e1('0x32')]&&_0x26a841[_0x56e1('0x32')]!=='--'){_0x229341[_0x56e1('0x6')]({'type':_0x26a841[_0x56e1('0x1')][_0x56e1('0x31')](),'app':_0x56e1('0x2'),'appdata':_0x56e1('0x33')+_0x26a841[_0x56e1('0x32')],'context':_0x328e30[_0x56e1('0x4')],'exten':_0x328e30[_0x56e1('0x5')],'priority':_0x26a841['intervals'][_0x56e1('0x2c')]+_0x19986a+_0x31f33a++,'VoiceExtensionId':_0x328e30['id']});}_0x229341[_0x56e1('0x6')]({'type':_0x26a841[_0x56e1('0x1')][_0x56e1('0x31')](),'app':'ExecIf','appdata':_0x56e1('0x34')+(_0x26a841[_0x56e1('0x35')]?_0x56e1('0x36')+_0x26a841[_0x56e1('0x35')]+')':_0x56e1('0x37')),'context':_0x328e30[_0x56e1('0x4')],'exten':_0x328e30[_0x56e1('0x5')],'priority':_0x26a841[_0x56e1('0x2e')][_0x56e1('0x2c')]+_0x19986a+_0x31f33a++,'VoiceExtensionId':_0x328e30['id']});}else{if(_0x26a841[_0x56e1('0x15')]('answer')){if([_0x56e1('0x38'),'playback']['includes'](_0x26a841[_0x56e1('0x39')]['toLowerCase']())&&_0x26a841['appType']!=='custom'){if(_0x26a841[_0x56e1('0x3a')]){_0x229341[_0x56e1('0x6')]({'type':_0x26a841[_0x56e1('0x1')]['toLowerCase'](),'app':_0x56e1('0x11'),'appdata':_0x56e1('0x3b'),'context':_0x328e30[_0x56e1('0x4')],'exten':_0x328e30[_0x56e1('0x5')],'priority':_0x26a841[_0x56e1('0x2e')][_0x56e1('0x2c')]+_0x19986a+_0x31f33a++,'VoiceExtensionId':_0x328e30['id']});_0x229341[_0x56e1('0x6')]({'type':_0x26a841[_0x56e1('0x1')]['toLowerCase'](),'app':_0x56e1('0x2'),'appdata':'XCALLY-MOTION-ANSWER=1','context':_0x328e30[_0x56e1('0x4')],'exten':_0x328e30[_0x56e1('0x5')],'priority':_0x26a841[_0x56e1('0x2e')][_0x56e1('0x2c')]+_0x19986a+_0x31f33a++,'VoiceExtensionId':_0x328e30['id']});}else{_0x229341[_0x56e1('0x6')]({'type':_0x26a841[_0x56e1('0x1')][_0x56e1('0x31')](),'app':'ExecIf','appdata':'$[${XCALLY-MOTION-PROGRESS}=0]?Progress','context':_0x328e30[_0x56e1('0x4')],'exten':_0x328e30[_0x56e1('0x5')],'priority':_0x26a841['intervals'][_0x56e1('0x2c')]+_0x19986a+_0x31f33a++,'VoiceExtensionId':_0x328e30['id']});_0x229341[_0x56e1('0x6')]({'type':_0x26a841['type']['toLowerCase'](),'app':_0x56e1('0x2'),'appdata':_0x56e1('0x3c'),'context':_0x328e30['context'],'exten':_0x328e30[_0x56e1('0x5')],'priority':_0x26a841[_0x56e1('0x2e')][_0x56e1('0x2c')]+_0x19986a+_0x31f33a++,'VoiceExtensionId':_0x328e30['id']});}}}}for(var _0x17681c=0x0;_0x17681c<_0x26a841[_0x56e1('0x2e')][_0x56e1('0x2c')];_0x17681c++){var _0x437fea=_0x19986a+_0x26a841[_0x56e1('0x2e')]['length'];var _0x26770c=_0x17681c===_0x26a841['intervals'][_0x56e1('0x2c')]-0x1?_0x19986a+_0x229341['length']+_0x2745aa[_0x56e1('0x2c')]+0x2:_0x19986a+_0x17681c+0x1;_0x229341[_0x56e1('0x3d')](_0x17681c,0x0,{'type':_0x328e30[_0x56e1('0x1')],'app':'GotoIfTime','appdata':_0x26a841[_0x56e1('0x2e')][_0x17681c]+'?'+_0x328e30[_0x56e1('0x4')]+_0x56e1('0x3e')+_0x437fea+':'+_0x328e30['context']+_0x56e1('0x3e')+_0x26770c,'exten':_0x328e30[_0x56e1('0x5')],'context':_0x328e30[_0x56e1('0x4')],'priority':_0x19986a+_0x17681c,'VoiceExtensionId':_0x328e30['id']});}if(_0x26a841['appType']===_0x56e1('0x3f')){_0x26a841['appdata']=_0x3c2941(_0x328e30,_0x26a841[_0x56e1('0x40')]);}if(_0x26a841['appType']==='agi'){_0x229341[_0x56e1('0x6')]({'type':_0x26a841['type'][_0x56e1('0x31')](),'app':_0x56e1('0x2'),'appdata':'XMCS-UNIQUEID=${CHANNEL(LINKEDID)}','context':_0x328e30['context'],'exten':_0x328e30[_0x56e1('0x5')],'priority':_0x26a841['intervals'][_0x56e1('0x2c')]+_0x19986a+_0x31f33a++,'VoiceExtensionId':_0x328e30['id']});}_0x26a841[_0x56e1('0x41')]=_0x229341[_0x56e1('0x2c')]?_[_0x56e1('0x42')](_0x229341)['priority']+0x1:_0x19986a;_0x4a2a1e=_[_0x56e1('0x43')](_0x4a2a1e,_0x229341,[_0x26a841],_0x2745aa);_0x19986a=_['last'](_0x4a2a1e)[_0x56e1('0x41')]+0x1;}return _0x30e6fa(_0x4a2a1e);})[_0x56e1('0x44')](function(_0x1f69a5){_0x55b05e(_0x1f69a5);});});}return _0x1e2803[_0x56e1('0x45')]('VoiceExtension',attributes,{'tableName':'voice_extensions','paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x56193f){var _0x45d054=this['get']({'plain':!![]});var _0x310499=_0x45d054[_0x56e1('0x1')]===_0x56e1('0xa')?_0x5f3a24(_0x45d054):_0x1cf908(_0x45d054);return _0x1873e3(_0x45d054,_0x56193f,_[_0x56e1('0x42')](_0x310499)['priority']+0x1)[_0x56e1('0x2b')](function(_0x1c2ec7){var _0x5a2cf5=_['concat'](_0x310499,_0x1c2ec7);_0x5a2cf5[_0x56e1('0x6')]({'type':_0x45d054[_0x56e1('0x1')],'app':_0x56e1('0x46'),'exten':_0x45d054['exten'],'context':_0x45d054[_0x56e1('0x4')],'priority':_[_0x56e1('0x42')](_0x5a2cf5)['priority']+0x1,'VoiceExtensionId':_0x45d054['id']});return _0x5a2cf5;});}}});};