48dae2da0dd62beb4e0fd0e78f9a232a8822d67e
[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 _0xf3cc=['length','GotoIfTime',',${EXTEN},','outboundDial','appdata','priority','last','concat','catch','define','VoiceExtension','voice_extensions','get','Hangup','lodash','./voiceExtension.attributes','exports','models','type','CDR(type)=','context','exten','alias','Set','NoOp','CDR(routeAlias)=','inbound','push','CDR(routeid)=','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','outbound','CDR(type)=outbound','No\x20alias\x20set','CDR(destination)=','cutdigits','${EXTEN}','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','outboundrouteid=','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','wav','trunk','timeout','options','url','split','name','phone','param','prefix','${EXTEN:','indexOf','U(xcally-mixmonitor-context)','replace','join','isEmpty','Interval','findAll','interval','IntervalId','then','*,*,*,*','intervals','filter','toLowerCase','hasOwnProperty','tag','CDR(tag)=','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):','callerID','Set(CALLERID(all)=','answer','playback','app','appType','custom','ExecIf','$[${XCALLY-MOTION-ANSWER}=0]?Answer','$[${XCALLY-MOTION-PROGRESS}=0]?Progress'];(function(_0x1df290,_0x239d7e){var _0x30ba44=function(_0x107b7c){while(--_0x107b7c){_0x1df290['push'](_0x1df290['shift']());}};_0x30ba44(++_0x239d7e);}(_0xf3cc,0x10d));var _0xcf3c=function(_0x2c3e1c,_0x2130a5){_0x2c3e1c=_0x2c3e1c-0x0;var _0x4e34eb=_0xf3cc[_0x2c3e1c];return _0x4e34eb;};'use strict';var _=require(_0xcf3c('0x0'));var attributes=require(_0xcf3c('0x1'));module[_0xcf3c('0x2')]=function(_0x38c9f6){var _0x48d2a6=_0x38c9f6[_0xcf3c('0x3')];function _0x14ec9a(_0x2bc6a3){var _0x582153=0x2;var _0x2e0b47=[{'type':_0x2bc6a3[_0xcf3c('0x4')],'app':'Set','appdata':_0xcf3c('0x5')+_0x2bc6a3[_0xcf3c('0x4')],'context':_0x2bc6a3[_0xcf3c('0x6')],'exten':_0x2bc6a3[_0xcf3c('0x7')],'priority':_0x582153++,'VoiceExtensionId':_0x2bc6a3['id']},{'type':_0x2bc6a3[_0xcf3c('0x4')],'app':_0x2bc6a3[_0xcf3c('0x8')]?_0xcf3c('0x9'):_0xcf3c('0xa'),'appdata':_0x2bc6a3[_0xcf3c('0x8')]?_0xcf3c('0xb')+_0x2bc6a3['alias']:'No\x20alias\x20set','context':_0x2bc6a3[_0xcf3c('0x6')],'exten':_0x2bc6a3[_0xcf3c('0x7')],'priority':_0x582153++,'VoiceExtensionId':_0x2bc6a3['id']}];if(_0x2bc6a3[_0xcf3c('0x4')]===_0xcf3c('0xc')){_0x2e0b47[_0xcf3c('0xd')]({'type':_0xcf3c('0xc'),'app':_0xcf3c('0x9'),'appdata':_0xcf3c('0xe')+_0x2bc6a3['id'],'context':_0x2bc6a3['context'],'exten':_0x2bc6a3[_0xcf3c('0x7')],'priority':_0x582153++,'VoiceExtensionId':_0x2bc6a3['id']});}_0x2e0b47[_0xcf3c('0xd')]({'type':_0x2bc6a3['type'],'app':_0xcf3c('0x9'),'appdata':'XCALLY-MOTION-ANSWER=0','context':_0x2bc6a3['context'],'exten':_0x2bc6a3['exten'],'priority':_0x582153++,'VoiceExtensionId':_0x2bc6a3['id']},{'type':_0x2bc6a3[_0xcf3c('0x4')],'app':'Set','appdata':_0xcf3c('0xf'),'context':_0x2bc6a3[_0xcf3c('0x6')],'exten':_0x2bc6a3['exten'],'priority':_0x582153++,'VoiceExtensionId':_0x2bc6a3['id']},{'type':_0x2bc6a3[_0xcf3c('0x4')],'app':'Set','appdata':_0xcf3c('0x10'),'context':_0x2bc6a3[_0xcf3c('0x6')],'exten':_0x2bc6a3[_0xcf3c('0x7')],'priority':_0x582153++,'VoiceExtensionId':_0x2bc6a3['id']});return _0x2e0b47;}function _0x5157d8(_0xd4d472){var _0x190c8c=0x2;var _0x395159=[{'type':_0xcf3c('0x11'),'app':'Set','appdata':_0xcf3c('0x12'),'context':_0xd4d472[_0xcf3c('0x6')],'exten':_0xd4d472[_0xcf3c('0x7')],'priority':_0x190c8c++,'VoiceExtensionId':_0xd4d472['id']},{'type':_0xcf3c('0x11'),'app':_0xd4d472[_0xcf3c('0x8')]?_0xcf3c('0x9'):_0xcf3c('0xa'),'appdata':_0xd4d472[_0xcf3c('0x8')]?_0xcf3c('0xb')+_0xd4d472[_0xcf3c('0x8')]:_0xcf3c('0x13'),'context':_0xd4d472[_0xcf3c('0x6')],'exten':_0xd4d472['exten'],'priority':_0x190c8c++,'VoiceExtensionId':_0xd4d472['id']},{'type':_0xcf3c('0x11'),'app':'Set','appdata':_0xcf3c('0x14')+(_0xd4d472[_0xcf3c('0x15')]?'${EXTEN:'+_0xd4d472[_0xcf3c('0x15')]+'}':_0xcf3c('0x16')),'context':_0xd4d472[_0xcf3c('0x6')],'exten':_0xd4d472[_0xcf3c('0x7')],'priority':_0x190c8c++,'VoiceExtensionId':_0xd4d472['id']},{'type':_0xcf3c('0x11'),'app':_0xcf3c('0x9'),'appdata':_0xcf3c('0xe')+_0xd4d472['id'],'context':_0xd4d472[_0xcf3c('0x6')],'exten':_0xd4d472['exten'],'priority':_0x190c8c++,'VoiceExtensionId':_0xd4d472['id']},{'type':_0xcf3c('0x11'),'app':'ExecIf','appdata':_0xcf3c('0x17')+(_0x190c8c+0x2)+_0xcf3c('0x18')+(_0x190c8c+0x1)+')','context':_0xd4d472[_0xcf3c('0x6')],'exten':_0xd4d472[_0xcf3c('0x7')],'priority':_0x190c8c++,'VoiceExtensionId':_0xd4d472['id']},{'type':_0xcf3c('0x11'),'app':_0xcf3c('0x9'),'appdata':_0xd4d472['cutdigits']?_0xcf3c('0x19')+_0xd4d472['cutdigits']+'}':_0xcf3c('0x1a'),'context':_0xd4d472[_0xcf3c('0x6')],'exten':_0xd4d472[_0xcf3c('0x7')],'priority':_0x190c8c++,'VoiceExtensionId':_0xd4d472['id']},{'type':'outbound','app':_0xcf3c('0x9'),'appdata':'XCALLY-MOTION-ANSWER=0','context':_0xd4d472[_0xcf3c('0x6')],'exten':_0xd4d472[_0xcf3c('0x7')],'priority':_0x190c8c++,'VoiceExtensionId':_0xd4d472['id']},{'type':_0xcf3c('0x11'),'app':_0xcf3c('0x9'),'appdata':'XCALLY-MOTION-PROGRESS=0','context':_0xd4d472[_0xcf3c('0x6')],'exten':_0xd4d472[_0xcf3c('0x7')],'priority':_0x190c8c++,'VoiceExtensionId':_0xd4d472['id']},{'type':_0xcf3c('0x11'),'app':_0xcf3c('0x9'),'appdata':'MONITOR_OPTIONS=ab','context':_0xd4d472[_0xcf3c('0x6')],'exten':_0xd4d472[_0xcf3c('0x7')],'priority':_0x190c8c++,'VoiceExtensionId':_0xd4d472['id']},{'type':_0xcf3c('0x11'),'app':'Set','appdata':_0xcf3c('0x1b')+_0xd4d472['id'],'context':_0xd4d472[_0xcf3c('0x6')],'exten':_0xd4d472[_0xcf3c('0x7')],'priority':_0x190c8c++,'VoiceExtensionId':_0xd4d472['id']}];if(_0xd4d472['hasOwnProperty'](_0xcf3c('0x1c'))&&_0xd4d472[_0xcf3c('0x1c')]!==_0xcf3c('0x1d')){_0x395159[_0xcf3c('0xd')]({'type':_0xcf3c('0x11'),'app':'Set','appdata':_0xcf3c('0x1e'),'context':_0xd4d472['context'],'exten':_0xd4d472[_0xcf3c('0x7')],'priority':_0x190c8c++,'VoiceExtensionId':_0xd4d472['id']},{'type':'outbound','app':_0xcf3c('0x9'),'appdata':_0xcf3c('0x1f')+_0xd4d472[_0xcf3c('0x1c')]||_0xcf3c('0x20'),'context':_0xd4d472[_0xcf3c('0x6')],'exten':_0xd4d472[_0xcf3c('0x7')],'priority':_0x190c8c++,'VoiceExtensionId':_0xd4d472['id']});}return _0x395159;}function _0x7933ca(_0x36a42b,_0x4844f2){var _0xbc118e=[{'name':_0xcf3c('0x21'),'param':0x0},{'name':_0xcf3c('0x22'),'param':0x1},{'name':_0xcf3c('0x23'),'param':0x2},{'name':_0xcf3c('0x24'),'param':0x3}];var _0x161ef9={};var _0x9a64be=_0x4844f2[_0xcf3c('0x25')](',');var _0x16f81d=[];for(var _0x22fed3=0x0;_0x22fed3<_0xbc118e['length'];_0x22fed3++){switch(_0xbc118e[_0x22fed3][_0xcf3c('0x26')]){case'trunk':_0x161ef9['trunk']=_0x9a64be[_0xbc118e[_0x22fed3]['param']][_0xcf3c('0x25')]('/')[0x1];_0x161ef9[_0xcf3c('0x27')]=_0x9a64be[_0xbc118e[_0x22fed3][_0xcf3c('0x28')]][_0xcf3c('0x25')]('/')[0x2];_0x161ef9['prefix']=_0x161ef9['phone']?_0x161ef9[_0xcf3c('0x27')][_0xcf3c('0x25')]('$')[0x0]:undefined;_0x161ef9[_0xcf3c('0x27')]=_0x36a42b[_0xcf3c('0x15')]?(_0x161ef9[_0xcf3c('0x29')]||'')+_0xcf3c('0x2a')+_0x36a42b['cutdigits']+'}':(_0x161ef9[_0xcf3c('0x29')]||'')+_0xcf3c('0x16');_0x16f81d[_0xbc118e[_0x22fed3][_0xcf3c('0x28')]]=['SIP',_0x161ef9[_0xcf3c('0x21')],_0x161ef9['phone']]['join']('/');break;case _0xcf3c('0x23'):_0x161ef9[_0xcf3c('0x23')]=_0x9a64be[_0xbc118e[_0x22fed3][_0xcf3c('0x28')]];if(_0x36a42b[_0xcf3c('0x1c')]!==_0xcf3c('0x1d')){if(_0x161ef9[_0xcf3c('0x23')][_0xcf3c('0x2b')](_0xcf3c('0x2c'))<0x0){_0x161ef9[_0xcf3c('0x23')]+='U(xcally-mixmonitor-context)';}}else{_0x161ef9['options']=_0x161ef9[_0xcf3c('0x23')][_0xcf3c('0x2d')]('U(xcally-mixmonitor-context)','');}_0x16f81d[_0xbc118e[_0x22fed3][_0xcf3c('0x28')]]=_0x161ef9['options'];break;default:_0x16f81d[_0xbc118e[_0x22fed3][_0xcf3c('0x28')]]=_0x9a64be[_0xbc118e[_0x22fed3][_0xcf3c('0x28')]];}}return _0x16f81d[_0xcf3c('0x2e')](',');}function _0x1c5060(_0x22c735,_0x2c8c96,_0x21cc7e){return new Promise(function(_0x13121b,_0x44573e){var _0x195bf3=[];if(_[_0xcf3c('0x2f')](_0x2c8c96))return _0x13121b(_0x195bf3);_0x48d2a6[_0xcf3c('0x30')][_0xcf3c('0x31')]({'attributes':['id',_0xcf3c('0x32'),_0xcf3c('0x33')],'raw':!![]})[_0xcf3c('0x34')](function(_0x3407a7){for(var _0xf7b7a4=0x0,_0x49fc77=0x0;_0xf7b7a4<_0x2c8c96['length'];_0xf7b7a4++,_0x49fc77=0x0){var _0x36846f=_0x2c8c96[_0xf7b7a4];var _0x53db80=[];var _0x17523b=[];delete _0x36846f['id'];if(_0x36846f[_0xcf3c('0x32')]!==_0xcf3c('0x35')){_0x36846f[_0xcf3c('0x36')]=[_0x36846f[_0xcf3c('0x32')]];}else{_0x36846f['intervals']=_0x36846f['IntervalId']?_['map'](_[_0xcf3c('0x37')](_0x3407a7,{'IntervalId':_0x36846f[_0xcf3c('0x33')]}),'interval'):[];}_0x36846f[_0xcf3c('0x6')]=_0x22c735[_0xcf3c('0x6')];_0x36846f[_0xcf3c('0x7')]=_0x22c735[_0xcf3c('0x7')];if(_0x36846f[_0xcf3c('0x4')])_0x36846f[_0xcf3c('0x4')]=_0x36846f[_0xcf3c('0x4')][_0xcf3c('0x38')]();if(_0x22c735[_0xcf3c('0x4')]===_0xcf3c('0x11')){if(_0x36846f[_0xcf3c('0x39')](_0xcf3c('0x3a'))&&_0x36846f['tag']&&_0x36846f[_0xcf3c('0x3a')]!=='--'){_0x53db80[_0xcf3c('0xd')]({'type':_0x36846f[_0xcf3c('0x4')][_0xcf3c('0x38')](),'app':'Set','appdata':_0xcf3c('0x3b')+_0x36846f['tag'],'context':_0x22c735[_0xcf3c('0x6')],'exten':_0x22c735['exten'],'priority':_0x36846f['intervals']['length']+_0x21cc7e+_0x49fc77++,'VoiceExtensionId':_0x22c735['id']});}_0x53db80['push']({'type':_0x36846f[_0xcf3c('0x4')][_0xcf3c('0x38')](),'app':'ExecIf','appdata':_0xcf3c('0x3c')+(_0x36846f[_0xcf3c('0x3d')]?_0xcf3c('0x3e')+_0x36846f['callerID']+')':'NoOp(No\x20number\x20available)'),'context':_0x22c735[_0xcf3c('0x6')],'exten':_0x22c735[_0xcf3c('0x7')],'priority':_0x36846f['intervals']['length']+_0x21cc7e+_0x49fc77++,'VoiceExtensionId':_0x22c735['id']});}else{if(_0x36846f['hasOwnProperty'](_0xcf3c('0x3f'))){if(['queue',_0xcf3c('0x40')]['includes'](_0x36846f[_0xcf3c('0x41')][_0xcf3c('0x38')]())&&_0x36846f[_0xcf3c('0x42')]!==_0xcf3c('0x43')){if(_0x36846f[_0xcf3c('0x3f')]){_0x53db80['push']({'type':_0x36846f[_0xcf3c('0x4')][_0xcf3c('0x38')](),'app':_0xcf3c('0x44'),'appdata':_0xcf3c('0x45'),'context':_0x22c735[_0xcf3c('0x6')],'exten':_0x22c735[_0xcf3c('0x7')],'priority':_0x36846f[_0xcf3c('0x36')]['length']+_0x21cc7e+_0x49fc77++,'VoiceExtensionId':_0x22c735['id']});_0x53db80['push']({'type':_0x36846f['type'][_0xcf3c('0x38')](),'app':'Set','appdata':'XCALLY-MOTION-ANSWER=1','context':_0x22c735[_0xcf3c('0x6')],'exten':_0x22c735[_0xcf3c('0x7')],'priority':_0x36846f[_0xcf3c('0x36')]['length']+_0x21cc7e+_0x49fc77++,'VoiceExtensionId':_0x22c735['id']});}else{_0x53db80[_0xcf3c('0xd')]({'type':_0x36846f['type'][_0xcf3c('0x38')](),'app':_0xcf3c('0x44'),'appdata':_0xcf3c('0x46'),'context':_0x22c735[_0xcf3c('0x6')],'exten':_0x22c735[_0xcf3c('0x7')],'priority':_0x36846f[_0xcf3c('0x36')][_0xcf3c('0x47')]+_0x21cc7e+_0x49fc77++,'VoiceExtensionId':_0x22c735['id']});_0x53db80[_0xcf3c('0xd')]({'type':_0x36846f[_0xcf3c('0x4')][_0xcf3c('0x38')](),'app':_0xcf3c('0x9'),'appdata':'XCALLY-MOTION-PROGRESS=1','context':_0x22c735[_0xcf3c('0x6')],'exten':_0x22c735[_0xcf3c('0x7')],'priority':_0x36846f[_0xcf3c('0x36')][_0xcf3c('0x47')]+_0x21cc7e+_0x49fc77++,'VoiceExtensionId':_0x22c735['id']});}}}}for(var _0x127856=0x0;_0x127856<_0x36846f[_0xcf3c('0x36')]['length'];_0x127856++){var _0xfe4294=_0x21cc7e+_0x36846f['intervals'][_0xcf3c('0x47')];var _0x53639e=_0x127856===_0x36846f['intervals']['length']-0x1?_0x21cc7e+_0x53db80[_0xcf3c('0x47')]+_0x17523b[_0xcf3c('0x47')]+0x2:_0x21cc7e+_0x127856+0x1;_0x53db80['splice'](_0x127856,0x0,{'type':_0x22c735[_0xcf3c('0x4')],'app':_0xcf3c('0x48'),'appdata':_0x36846f[_0xcf3c('0x36')][_0x127856]+'?'+_0x22c735[_0xcf3c('0x6')]+_0xcf3c('0x49')+_0xfe4294+':'+_0x22c735[_0xcf3c('0x6')]+',${EXTEN},'+_0x53639e,'exten':_0x22c735[_0xcf3c('0x7')],'context':_0x22c735[_0xcf3c('0x6')],'priority':_0x21cc7e+_0x127856,'VoiceExtensionId':_0x22c735['id']});}if(_0x36846f[_0xcf3c('0x42')]===_0xcf3c('0x4a'))_0x36846f[_0xcf3c('0x4b')]=_0x7933ca(_0x22c735,_0x36846f[_0xcf3c('0x4b')]);_0x36846f[_0xcf3c('0x4c')]=_0x53db80[_0xcf3c('0x47')]?_[_0xcf3c('0x4d')](_0x53db80)[_0xcf3c('0x4c')]+0x1:_0x21cc7e;_0x195bf3=_[_0xcf3c('0x4e')](_0x195bf3,_0x53db80,[_0x36846f],_0x17523b);_0x21cc7e=_[_0xcf3c('0x4d')](_0x195bf3)[_0xcf3c('0x4c')]+0x1;}return _0x13121b(_0x195bf3);})[_0xcf3c('0x4f')](function(_0x46600f){_0x44573e(_0x46600f);});});}return _0x38c9f6[_0xcf3c('0x50')](_0xcf3c('0x51'),attributes,{'tableName':_0xcf3c('0x52'),'paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x50b802){var _0x19680d=this[_0xcf3c('0x53')]({'plain':!![]});var _0x31ca6e=_0x19680d[_0xcf3c('0x4')]===_0xcf3c('0x11')?_0x5157d8(_0x19680d):_0x14ec9a(_0x19680d);return _0x1c5060(_0x19680d,_0x50b802,_[_0xcf3c('0x4d')](_0x31ca6e)[_0xcf3c('0x4c')]+0x1)[_0xcf3c('0x34')](function(_0x2ddec1){var _0x5b786e=_[_0xcf3c('0x4e')](_0x31ca6e,_0x2ddec1);_0x5b786e['push']({'type':_0x19680d[_0xcf3c('0x4')],'app':_0xcf3c('0x54'),'exten':_0x19680d[_0xcf3c('0x7')],'context':_0x19680d[_0xcf3c('0x6')],'priority':_[_0xcf3c('0x4d')](_0x5b786e)['priority']+0x1,'VoiceExtensionId':_0x19680d['id']});return _0x5b786e;});}}});};