Built motion from commit 9d1906d1.|2.5.40
[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 _0xff98=['CDR(routeid)=','XCALLY-MOTION-ANSWER=0','MONITOR_OPTIONS=ab','outbound','CDR(type)=outbound','CDR(destination)=','cutdigits','${EXTEN:','${EXTEN}','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','XCALLY-MOTION-PROGRESS=0','outboundrouteid=','recordingFormat','push','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','wav','trunk','timeout','options','length','name','split','phone','param','prefix','SIP','none','indexOf','U(xcally-mixmonitor-context)','replace','join','isEmpty','interval','then','*,*,*,*','IntervalId','map','filter','toLowerCase','hasOwnProperty','tag','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):','callerID','Set(CALLERID(all)=','NoOp(No\x20number\x20available)','intervals','answer','playback','includes','custom','ExecIf','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','GotoIfTime',',${EXTEN},','appType','outboundDial','appdata','priority','last','concat','catch','define','VoiceExtension','voice_extensions','Hangup','./voiceExtension.attributes','exports','type','CDR(type)=','context','exten','alias','Set','NoOp','CDR(routeAlias)=','No\x20alias\x20set','inbound'];(function(_0x3d368a,_0xffbde5){var _0x4fb9cd=function(_0x41dbb8){while(--_0x41dbb8){_0x3d368a['push'](_0x3d368a['shift']());}};_0x4fb9cd(++_0xffbde5);}(_0xff98,0x9c));var _0x8ff9=function(_0x188f9d,_0x3160e2){_0x188f9d=_0x188f9d-0x0;var _0x587fe7=_0xff98[_0x188f9d];return _0x587fe7;};'use strict';var _=require('lodash');var attributes=require(_0x8ff9('0x0'));module[_0x8ff9('0x1')]=function(_0x15dfac){var _0x39299d=_0x15dfac['models'];function _0x247593(_0x4d7d49){var _0x133d7c=0x2;var _0x5be38f=[{'type':_0x4d7d49[_0x8ff9('0x2')],'app':'Set','appdata':_0x8ff9('0x3')+_0x4d7d49[_0x8ff9('0x2')],'context':_0x4d7d49[_0x8ff9('0x4')],'exten':_0x4d7d49[_0x8ff9('0x5')],'priority':_0x133d7c++,'VoiceExtensionId':_0x4d7d49['id']},{'type':_0x4d7d49[_0x8ff9('0x2')],'app':_0x4d7d49[_0x8ff9('0x6')]?_0x8ff9('0x7'):_0x8ff9('0x8'),'appdata':_0x4d7d49['alias']?_0x8ff9('0x9')+_0x4d7d49[_0x8ff9('0x6')]:_0x8ff9('0xa'),'context':_0x4d7d49[_0x8ff9('0x4')],'exten':_0x4d7d49[_0x8ff9('0x5')],'priority':_0x133d7c++,'VoiceExtensionId':_0x4d7d49['id']}];if(_0x4d7d49[_0x8ff9('0x2')]===_0x8ff9('0xb')){_0x5be38f['push']({'type':'inbound','app':'Set','appdata':_0x8ff9('0xc')+_0x4d7d49['id'],'context':_0x4d7d49[_0x8ff9('0x4')],'exten':_0x4d7d49[_0x8ff9('0x5')],'priority':_0x133d7c++,'VoiceExtensionId':_0x4d7d49['id']});}_0x5be38f['push']({'type':_0x4d7d49[_0x8ff9('0x2')],'app':_0x8ff9('0x7'),'appdata':_0x8ff9('0xd'),'context':_0x4d7d49[_0x8ff9('0x4')],'exten':_0x4d7d49[_0x8ff9('0x5')],'priority':_0x133d7c++,'VoiceExtensionId':_0x4d7d49['id']},{'type':_0x4d7d49[_0x8ff9('0x2')],'app':_0x8ff9('0x7'),'appdata':'XCALLY-MOTION-PROGRESS=0','context':_0x4d7d49[_0x8ff9('0x4')],'exten':_0x4d7d49[_0x8ff9('0x5')],'priority':_0x133d7c++,'VoiceExtensionId':_0x4d7d49['id']},{'type':_0x4d7d49[_0x8ff9('0x2')],'app':'Set','appdata':_0x8ff9('0xe'),'context':_0x4d7d49['context'],'exten':_0x4d7d49[_0x8ff9('0x5')],'priority':_0x133d7c++,'VoiceExtensionId':_0x4d7d49['id']});return _0x5be38f;}function _0x578fe3(_0x5f4543){var _0x4b321a=0x2;var _0x5745ff=[{'type':_0x8ff9('0xf'),'app':_0x8ff9('0x7'),'appdata':_0x8ff9('0x10'),'context':_0x5f4543[_0x8ff9('0x4')],'exten':_0x5f4543[_0x8ff9('0x5')],'priority':_0x4b321a++,'VoiceExtensionId':_0x5f4543['id']},{'type':_0x8ff9('0xf'),'app':_0x5f4543[_0x8ff9('0x6')]?'Set':_0x8ff9('0x8'),'appdata':_0x5f4543[_0x8ff9('0x6')]?_0x8ff9('0x9')+_0x5f4543['alias']:_0x8ff9('0xa'),'context':_0x5f4543[_0x8ff9('0x4')],'exten':_0x5f4543[_0x8ff9('0x5')],'priority':_0x4b321a++,'VoiceExtensionId':_0x5f4543['id']},{'type':_0x8ff9('0xf'),'app':_0x8ff9('0x7'),'appdata':_0x8ff9('0x11')+(_0x5f4543[_0x8ff9('0x12')]?_0x8ff9('0x13')+_0x5f4543[_0x8ff9('0x12')]+'}':_0x8ff9('0x14')),'context':_0x5f4543[_0x8ff9('0x4')],'exten':_0x5f4543[_0x8ff9('0x5')],'priority':_0x4b321a++,'VoiceExtensionId':_0x5f4543['id']},{'type':_0x8ff9('0xf'),'app':'Set','appdata':'CDR(routeid)='+_0x5f4543['id'],'context':_0x5f4543[_0x8ff9('0x4')],'exten':_0x5f4543['exten'],'priority':_0x4b321a++,'VoiceExtensionId':_0x5f4543['id']},{'type':_0x8ff9('0xf'),'app':'ExecIf','appdata':_0x8ff9('0x15')+(_0x4b321a+0x2)+_0x8ff9('0x16')+(_0x4b321a+0x1)+')','context':_0x5f4543[_0x8ff9('0x4')],'exten':_0x5f4543[_0x8ff9('0x5')],'priority':_0x4b321a++,'VoiceExtensionId':_0x5f4543['id']},{'type':_0x8ff9('0xf'),'app':_0x8ff9('0x7'),'appdata':_0x5f4543[_0x8ff9('0x12')]?_0x8ff9('0x17')+_0x5f4543[_0x8ff9('0x12')]+'}':_0x8ff9('0x18'),'context':_0x5f4543['context'],'exten':_0x5f4543[_0x8ff9('0x5')],'priority':_0x4b321a++,'VoiceExtensionId':_0x5f4543['id']},{'type':_0x8ff9('0xf'),'app':_0x8ff9('0x7'),'appdata':_0x8ff9('0xd'),'context':_0x5f4543[_0x8ff9('0x4')],'exten':_0x5f4543['exten'],'priority':_0x4b321a++,'VoiceExtensionId':_0x5f4543['id']},{'type':_0x8ff9('0xf'),'app':'Set','appdata':_0x8ff9('0x19'),'context':_0x5f4543[_0x8ff9('0x4')],'exten':_0x5f4543[_0x8ff9('0x5')],'priority':_0x4b321a++,'VoiceExtensionId':_0x5f4543['id']},{'type':_0x8ff9('0xf'),'app':_0x8ff9('0x7'),'appdata':_0x8ff9('0xe'),'context':_0x5f4543['context'],'exten':_0x5f4543[_0x8ff9('0x5')],'priority':_0x4b321a++,'VoiceExtensionId':_0x5f4543['id']},{'type':_0x8ff9('0xf'),'app':_0x8ff9('0x7'),'appdata':_0x8ff9('0x1a')+_0x5f4543['id'],'context':_0x5f4543[_0x8ff9('0x4')],'exten':_0x5f4543[_0x8ff9('0x5')],'priority':_0x4b321a++,'VoiceExtensionId':_0x5f4543['id']}];if(_0x5f4543['hasOwnProperty']('recordingFormat')&&_0x5f4543[_0x8ff9('0x1b')]!=='none'){_0x5745ff[_0x8ff9('0x1c')]({'type':_0x8ff9('0xf'),'app':_0x8ff9('0x7'),'appdata':_0x8ff9('0x1d'),'context':_0x5f4543[_0x8ff9('0x4')],'exten':_0x5f4543[_0x8ff9('0x5')],'priority':_0x4b321a++,'VoiceExtensionId':_0x5f4543['id']},{'type':'outbound','app':_0x8ff9('0x7'),'appdata':_0x8ff9('0x1e')+_0x5f4543[_0x8ff9('0x1b')]||_0x8ff9('0x1f'),'context':_0x5f4543['context'],'exten':_0x5f4543[_0x8ff9('0x5')],'priority':_0x4b321a++,'VoiceExtensionId':_0x5f4543['id']});}return _0x5745ff;}function _0x468d5d(_0x1dc393,_0x41d2a3){var _0x3d4f55=[{'name':_0x8ff9('0x20'),'param':0x0},{'name':_0x8ff9('0x21'),'param':0x1},{'name':_0x8ff9('0x22'),'param':0x2},{'name':'url','param':0x3}];var _0x2a7443={};var _0x28f118=_0x41d2a3['split'](',');var _0x5227ee=[];for(var _0x3f7fee=0x0;_0x3f7fee<_0x3d4f55[_0x8ff9('0x23')];_0x3f7fee++){switch(_0x3d4f55[_0x3f7fee][_0x8ff9('0x24')]){case _0x8ff9('0x20'):_0x2a7443[_0x8ff9('0x20')]=_0x28f118[_0x3d4f55[_0x3f7fee]['param']][_0x8ff9('0x25')]('/')[0x1];_0x2a7443[_0x8ff9('0x26')]=_0x28f118[_0x3d4f55[_0x3f7fee][_0x8ff9('0x27')]][_0x8ff9('0x25')]('/')[0x2];_0x2a7443[_0x8ff9('0x28')]=_0x2a7443[_0x8ff9('0x26')]?_0x2a7443[_0x8ff9('0x26')][_0x8ff9('0x25')]('$')[0x0]:undefined;_0x2a7443[_0x8ff9('0x26')]=_0x1dc393[_0x8ff9('0x12')]?(_0x2a7443[_0x8ff9('0x28')]||'')+_0x8ff9('0x13')+_0x1dc393[_0x8ff9('0x12')]+'}':(_0x2a7443[_0x8ff9('0x28')]||'')+_0x8ff9('0x14');_0x5227ee[_0x3d4f55[_0x3f7fee][_0x8ff9('0x27')]]=[_0x8ff9('0x29'),_0x2a7443[_0x8ff9('0x20')],_0x2a7443[_0x8ff9('0x26')]]['join']('/');break;case'options':_0x2a7443[_0x8ff9('0x22')]=_0x28f118[_0x3d4f55[_0x3f7fee][_0x8ff9('0x27')]];if(_0x1dc393[_0x8ff9('0x1b')]!==_0x8ff9('0x2a')){if(_0x2a7443[_0x8ff9('0x22')][_0x8ff9('0x2b')](_0x8ff9('0x2c'))<0x0){_0x2a7443[_0x8ff9('0x22')]+=_0x8ff9('0x2c');}}else{_0x2a7443[_0x8ff9('0x22')]=_0x2a7443[_0x8ff9('0x22')][_0x8ff9('0x2d')](_0x8ff9('0x2c'),'');}_0x5227ee[_0x3d4f55[_0x3f7fee][_0x8ff9('0x27')]]=_0x2a7443[_0x8ff9('0x22')];break;default:_0x5227ee[_0x3d4f55[_0x3f7fee][_0x8ff9('0x27')]]=_0x28f118[_0x3d4f55[_0x3f7fee][_0x8ff9('0x27')]];}}return _0x5227ee[_0x8ff9('0x2e')](',');}function _0x4e72be(_0x63928,_0x23d5c0,_0x4b8316){return new Promise(function(_0x4d0f50,_0x3d58f3){var _0x59f22f=[];if(_[_0x8ff9('0x2f')](_0x23d5c0))return _0x4d0f50(_0x59f22f);_0x39299d['Interval']['findAll']({'attributes':['id',_0x8ff9('0x30'),'IntervalId'],'raw':!![]})[_0x8ff9('0x31')](function(_0x564478){for(var _0x38c1cd=0x0,_0x32212c=0x0;_0x38c1cd<_0x23d5c0[_0x8ff9('0x23')];_0x38c1cd++,_0x32212c=0x0){var _0x35c5de=_0x23d5c0[_0x38c1cd];var _0x40f5a8=[];var _0x5f5425=[];delete _0x35c5de['id'];if(_0x35c5de['interval']!==_0x8ff9('0x32')){_0x35c5de['intervals']=[_0x35c5de['interval']];}else{_0x35c5de['intervals']=_0x35c5de[_0x8ff9('0x33')]?_[_0x8ff9('0x34')](_[_0x8ff9('0x35')](_0x564478,{'IntervalId':_0x35c5de[_0x8ff9('0x33')]}),'interval'):[];}_0x35c5de[_0x8ff9('0x4')]=_0x63928[_0x8ff9('0x4')];_0x35c5de[_0x8ff9('0x5')]=_0x63928['exten'];if(_0x35c5de[_0x8ff9('0x2')])_0x35c5de['type']=_0x35c5de[_0x8ff9('0x2')][_0x8ff9('0x36')]();if(_0x63928[_0x8ff9('0x2')]==='outbound'){if(_0x35c5de[_0x8ff9('0x37')](_0x8ff9('0x38'))&&_0x35c5de['tag']&&_0x35c5de[_0x8ff9('0x38')]!=='--'){_0x40f5a8['push']({'type':_0x35c5de[_0x8ff9('0x2')][_0x8ff9('0x36')](),'app':_0x8ff9('0x7'),'appdata':'CDR(tag)='+_0x35c5de['tag'],'context':_0x63928[_0x8ff9('0x4')],'exten':_0x63928[_0x8ff9('0x5')],'priority':_0x35c5de['intervals'][_0x8ff9('0x23')]+_0x4b8316+_0x32212c++,'VoiceExtensionId':_0x63928['id']});}_0x40f5a8[_0x8ff9('0x1c')]({'type':_0x35c5de[_0x8ff9('0x2')][_0x8ff9('0x36')](),'app':'ExecIf','appdata':_0x8ff9('0x39')+(_0x35c5de[_0x8ff9('0x3a')]?_0x8ff9('0x3b')+_0x35c5de[_0x8ff9('0x3a')]+')':_0x8ff9('0x3c')),'context':_0x63928[_0x8ff9('0x4')],'exten':_0x63928['exten'],'priority':_0x35c5de[_0x8ff9('0x3d')][_0x8ff9('0x23')]+_0x4b8316+_0x32212c++,'VoiceExtensionId':_0x63928['id']});}else{if(_0x35c5de[_0x8ff9('0x37')](_0x8ff9('0x3e'))){if(['queue',_0x8ff9('0x3f')][_0x8ff9('0x40')](_0x35c5de['app']['toLowerCase']())&&_0x35c5de['appType']!==_0x8ff9('0x41')){if(_0x35c5de[_0x8ff9('0x3e')]){_0x40f5a8[_0x8ff9('0x1c')]({'type':_0x35c5de[_0x8ff9('0x2')][_0x8ff9('0x36')](),'app':_0x8ff9('0x42'),'appdata':_0x8ff9('0x43'),'context':_0x63928[_0x8ff9('0x4')],'exten':_0x63928[_0x8ff9('0x5')],'priority':_0x35c5de['intervals'][_0x8ff9('0x23')]+_0x4b8316+_0x32212c++,'VoiceExtensionId':_0x63928['id']});_0x40f5a8[_0x8ff9('0x1c')]({'type':_0x35c5de['type'][_0x8ff9('0x36')](),'app':_0x8ff9('0x7'),'appdata':_0x8ff9('0x44'),'context':_0x63928[_0x8ff9('0x4')],'exten':_0x63928[_0x8ff9('0x5')],'priority':_0x35c5de[_0x8ff9('0x3d')][_0x8ff9('0x23')]+_0x4b8316+_0x32212c++,'VoiceExtensionId':_0x63928['id']});}else{_0x40f5a8[_0x8ff9('0x1c')]({'type':_0x35c5de[_0x8ff9('0x2')][_0x8ff9('0x36')](),'app':_0x8ff9('0x42'),'appdata':_0x8ff9('0x45'),'context':_0x63928[_0x8ff9('0x4')],'exten':_0x63928[_0x8ff9('0x5')],'priority':_0x35c5de[_0x8ff9('0x3d')][_0x8ff9('0x23')]+_0x4b8316+_0x32212c++,'VoiceExtensionId':_0x63928['id']});_0x40f5a8[_0x8ff9('0x1c')]({'type':_0x35c5de[_0x8ff9('0x2')]['toLowerCase'](),'app':_0x8ff9('0x7'),'appdata':_0x8ff9('0x46'),'context':_0x63928[_0x8ff9('0x4')],'exten':_0x63928[_0x8ff9('0x5')],'priority':_0x35c5de['intervals'][_0x8ff9('0x23')]+_0x4b8316+_0x32212c++,'VoiceExtensionId':_0x63928['id']});}}}}for(var _0x508711=0x0;_0x508711<_0x35c5de[_0x8ff9('0x3d')][_0x8ff9('0x23')];_0x508711++){var _0x51a0e8=_0x4b8316+_0x35c5de['intervals'][_0x8ff9('0x23')];var _0x563d18=_0x508711===_0x35c5de[_0x8ff9('0x3d')][_0x8ff9('0x23')]-0x1?_0x4b8316+_0x40f5a8[_0x8ff9('0x23')]+_0x5f5425['length']+0x2:_0x4b8316+_0x508711+0x1;_0x40f5a8['splice'](_0x508711,0x0,{'type':_0x63928[_0x8ff9('0x2')],'app':_0x8ff9('0x47'),'appdata':_0x35c5de[_0x8ff9('0x3d')][_0x508711]+'?'+_0x63928[_0x8ff9('0x4')]+_0x8ff9('0x48')+_0x51a0e8+':'+_0x63928[_0x8ff9('0x4')]+_0x8ff9('0x48')+_0x563d18,'exten':_0x63928['exten'],'context':_0x63928[_0x8ff9('0x4')],'priority':_0x4b8316+_0x508711,'VoiceExtensionId':_0x63928['id']});}if(_0x35c5de[_0x8ff9('0x49')]===_0x8ff9('0x4a'))_0x35c5de[_0x8ff9('0x4b')]=_0x468d5d(_0x63928,_0x35c5de['appdata']);_0x35c5de[_0x8ff9('0x4c')]=_0x40f5a8[_0x8ff9('0x23')]?_[_0x8ff9('0x4d')](_0x40f5a8)[_0x8ff9('0x4c')]+0x1:_0x4b8316;_0x59f22f=_[_0x8ff9('0x4e')](_0x59f22f,_0x40f5a8,[_0x35c5de],_0x5f5425);_0x4b8316=_[_0x8ff9('0x4d')](_0x59f22f)[_0x8ff9('0x4c')]+0x1;}return _0x4d0f50(_0x59f22f);})[_0x8ff9('0x4f')](function(_0x2369a9){_0x3d58f3(_0x2369a9);});});}return _0x15dfac[_0x8ff9('0x50')](_0x8ff9('0x51'),attributes,{'tableName':_0x8ff9('0x52'),'paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x48fe9f){var _0x58f02c=this['get']({'plain':!![]});var _0x17d157=_0x58f02c[_0x8ff9('0x2')]===_0x8ff9('0xf')?_0x578fe3(_0x58f02c):_0x247593(_0x58f02c);return _0x4e72be(_0x58f02c,_0x48fe9f,_[_0x8ff9('0x4d')](_0x17d157)['priority']+0x1)[_0x8ff9('0x31')](function(_0x399db7){var _0x56a567=_['concat'](_0x17d157,_0x399db7);_0x56a567[_0x8ff9('0x1c')]({'type':_0x58f02c[_0x8ff9('0x2')],'app':_0x8ff9('0x53'),'exten':_0x58f02c[_0x8ff9('0x5')],'context':_0x58f02c['context'],'priority':_[_0x8ff9('0x4d')](_0x56a567)[_0x8ff9('0x4c')]+0x1,'VoiceExtensionId':_0x58f02c['id']});return _0x56a567;});}}});};