Built motion from commit 753c950e.|2.5.42
[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 _0xecd9=['inbound','CDR(routeid)=','push','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','outbound','CDR(type)=outbound','CDR(destination)=','cutdigits','${EXTEN:','${EXTEN}','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','hasOwnProperty','recordingFormat','none','wav','trunk','timeout','options','url','name','param','split','prefix','phone','SIP','join','indexOf','U(xcally-mixmonitor-context)','isEmpty','Interval','findAll','interval','IntervalId','then','length','*,*,*,*','filter','toLowerCase','tag','intervals','callerID','Set(CALLERID(all)=','answer','queue','playback','includes','app','appType','custom','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','splice','GotoIfTime',',${EXTEN},','outboundDial','appdata','last','priority','define','VoiceExtension','get','concat','Hangup','lodash','./voiceExtension.attributes','exports','models','type','Set','CDR(type)=','exten','alias','NoOp','CDR(routeAlias)=','No\x20alias\x20set','context'];(function(_0x4565bf,_0x5ad9d6){var _0x5610ba=function(_0x170988){while(--_0x170988){_0x4565bf['push'](_0x4565bf['shift']());}};_0x5610ba(++_0x5ad9d6);}(_0xecd9,0x13f));var _0x9ecd=function(_0x52c336,_0x120cec){_0x52c336=_0x52c336-0x0;var _0x491e73=_0xecd9[_0x52c336];return _0x491e73;};'use strict';var _=require(_0x9ecd('0x0'));var attributes=require(_0x9ecd('0x1'));module[_0x9ecd('0x2')]=function(_0xb2c5a3){var _0x8cd66=_0xb2c5a3[_0x9ecd('0x3')];function _0x20c114(_0x290270){var _0x4abf6e=0x2;var _0x5e6bf1=[{'type':_0x290270[_0x9ecd('0x4')],'app':_0x9ecd('0x5'),'appdata':_0x9ecd('0x6')+_0x290270[_0x9ecd('0x4')],'context':_0x290270['context'],'exten':_0x290270[_0x9ecd('0x7')],'priority':_0x4abf6e++,'VoiceExtensionId':_0x290270['id']},{'type':_0x290270[_0x9ecd('0x4')],'app':_0x290270[_0x9ecd('0x8')]?_0x9ecd('0x5'):_0x9ecd('0x9'),'appdata':_0x290270[_0x9ecd('0x8')]?_0x9ecd('0xa')+_0x290270[_0x9ecd('0x8')]:_0x9ecd('0xb'),'context':_0x290270[_0x9ecd('0xc')],'exten':_0x290270[_0x9ecd('0x7')],'priority':_0x4abf6e++,'VoiceExtensionId':_0x290270['id']}];if(_0x290270[_0x9ecd('0x4')]==='inbound'){_0x5e6bf1['push']({'type':_0x9ecd('0xd'),'app':'Set','appdata':_0x9ecd('0xe')+_0x290270['id'],'context':_0x290270[_0x9ecd('0xc')],'exten':_0x290270[_0x9ecd('0x7')],'priority':_0x4abf6e++,'VoiceExtensionId':_0x290270['id']});}_0x5e6bf1[_0x9ecd('0xf')]({'type':_0x290270['type'],'app':_0x9ecd('0x5'),'appdata':_0x9ecd('0x10'),'context':_0x290270[_0x9ecd('0xc')],'exten':_0x290270[_0x9ecd('0x7')],'priority':_0x4abf6e++,'VoiceExtensionId':_0x290270['id']},{'type':_0x290270['type'],'app':_0x9ecd('0x5'),'appdata':_0x9ecd('0x11'),'context':_0x290270[_0x9ecd('0xc')],'exten':_0x290270['exten'],'priority':_0x4abf6e++,'VoiceExtensionId':_0x290270['id']},{'type':_0x290270[_0x9ecd('0x4')],'app':_0x9ecd('0x5'),'appdata':_0x9ecd('0x12'),'context':_0x290270[_0x9ecd('0xc')],'exten':_0x290270[_0x9ecd('0x7')],'priority':_0x4abf6e++,'VoiceExtensionId':_0x290270['id']});return _0x5e6bf1;}function _0x483fd3(_0x215726){var _0x13c029=0x2;var _0xff44f5=[{'type':_0x9ecd('0x13'),'app':_0x9ecd('0x5'),'appdata':_0x9ecd('0x14'),'context':_0x215726[_0x9ecd('0xc')],'exten':_0x215726[_0x9ecd('0x7')],'priority':_0x13c029++,'VoiceExtensionId':_0x215726['id']},{'type':_0x9ecd('0x13'),'app':_0x215726[_0x9ecd('0x8')]?_0x9ecd('0x5'):_0x9ecd('0x9'),'appdata':_0x215726['alias']?_0x9ecd('0xa')+_0x215726[_0x9ecd('0x8')]:'No\x20alias\x20set','context':_0x215726[_0x9ecd('0xc')],'exten':_0x215726[_0x9ecd('0x7')],'priority':_0x13c029++,'VoiceExtensionId':_0x215726['id']},{'type':_0x9ecd('0x13'),'app':'Set','appdata':_0x9ecd('0x15')+(_0x215726[_0x9ecd('0x16')]?_0x9ecd('0x17')+_0x215726[_0x9ecd('0x16')]+'}':_0x9ecd('0x18')),'context':_0x215726[_0x9ecd('0xc')],'exten':_0x215726[_0x9ecd('0x7')],'priority':_0x13c029++,'VoiceExtensionId':_0x215726['id']},{'type':_0x9ecd('0x13'),'app':'Set','appdata':_0x9ecd('0xe')+_0x215726['id'],'context':_0x215726[_0x9ecd('0xc')],'exten':_0x215726['exten'],'priority':_0x13c029++,'VoiceExtensionId':_0x215726['id']},{'type':_0x9ecd('0x13'),'app':_0x9ecd('0x19'),'appdata':_0x9ecd('0x1a')+(_0x13c029+0x2)+_0x9ecd('0x1b')+(_0x13c029+0x1)+')','context':_0x215726['context'],'exten':_0x215726[_0x9ecd('0x7')],'priority':_0x13c029++,'VoiceExtensionId':_0x215726['id']},{'type':'outbound','app':'Set','appdata':_0x215726[_0x9ecd('0x16')]?_0x9ecd('0x1c')+_0x215726[_0x9ecd('0x16')]+'}':_0x9ecd('0x1d'),'context':_0x215726[_0x9ecd('0xc')],'exten':_0x215726[_0x9ecd('0x7')],'priority':_0x13c029++,'VoiceExtensionId':_0x215726['id']},{'type':_0x9ecd('0x13'),'app':_0x9ecd('0x5'),'appdata':_0x9ecd('0x10'),'context':_0x215726['context'],'exten':_0x215726[_0x9ecd('0x7')],'priority':_0x13c029++,'VoiceExtensionId':_0x215726['id']},{'type':_0x9ecd('0x13'),'app':_0x9ecd('0x5'),'appdata':'XCALLY-MOTION-PROGRESS=0','context':_0x215726[_0x9ecd('0xc')],'exten':_0x215726[_0x9ecd('0x7')],'priority':_0x13c029++,'VoiceExtensionId':_0x215726['id']},{'type':_0x9ecd('0x13'),'app':_0x9ecd('0x5'),'appdata':'MONITOR_OPTIONS=ab','context':_0x215726['context'],'exten':_0x215726[_0x9ecd('0x7')],'priority':_0x13c029++,'VoiceExtensionId':_0x215726['id']},{'type':_0x9ecd('0x13'),'app':_0x9ecd('0x5'),'appdata':'outboundrouteid='+_0x215726['id'],'context':_0x215726[_0x9ecd('0xc')],'exten':_0x215726['exten'],'priority':_0x13c029++,'VoiceExtensionId':_0x215726['id']}];if(_0x215726[_0x9ecd('0x1e')]('recordingFormat')&&_0x215726[_0x9ecd('0x1f')]!==_0x9ecd('0x20')){_0xff44f5['push']({'type':'outbound','app':_0x9ecd('0x5'),'appdata':'_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','context':_0x215726[_0x9ecd('0xc')],'exten':_0x215726[_0x9ecd('0x7')],'priority':_0x13c029++,'VoiceExtensionId':_0x215726['id']},{'type':'outbound','app':'Set','appdata':'_XCALLY_MIXMONITOR_FORMAT='+_0x215726['recordingFormat']||_0x9ecd('0x21'),'context':_0x215726[_0x9ecd('0xc')],'exten':_0x215726[_0x9ecd('0x7')],'priority':_0x13c029++,'VoiceExtensionId':_0x215726['id']});}return _0xff44f5;}function _0x5bcdae(_0xcdb832,_0x5231b0){var _0x31cad1=[{'name':_0x9ecd('0x22'),'param':0x0},{'name':_0x9ecd('0x23'),'param':0x1},{'name':_0x9ecd('0x24'),'param':0x2},{'name':_0x9ecd('0x25'),'param':0x3}];var _0x376a70={};var _0x42cede=_0x5231b0['split'](',');var _0x5a2e19=[];for(var _0x1ffb23=0x0;_0x1ffb23<_0x31cad1['length'];_0x1ffb23++){switch(_0x31cad1[_0x1ffb23][_0x9ecd('0x26')]){case _0x9ecd('0x22'):_0x376a70[_0x9ecd('0x22')]=_0x42cede[_0x31cad1[_0x1ffb23][_0x9ecd('0x27')]][_0x9ecd('0x28')]('/')[0x1];_0x376a70['phone']=_0x42cede[_0x31cad1[_0x1ffb23][_0x9ecd('0x27')]][_0x9ecd('0x28')]('/')[0x2];_0x376a70[_0x9ecd('0x29')]=_0x376a70[_0x9ecd('0x2a')]?_0x376a70[_0x9ecd('0x2a')][_0x9ecd('0x28')]('$')[0x0]:undefined;_0x376a70[_0x9ecd('0x2a')]=_0xcdb832[_0x9ecd('0x16')]?(_0x376a70[_0x9ecd('0x29')]||'')+'${EXTEN:'+_0xcdb832[_0x9ecd('0x16')]+'}':(_0x376a70[_0x9ecd('0x29')]||'')+_0x9ecd('0x18');_0x5a2e19[_0x31cad1[_0x1ffb23]['param']]=[_0x9ecd('0x2b'),_0x376a70[_0x9ecd('0x22')],_0x376a70[_0x9ecd('0x2a')]][_0x9ecd('0x2c')]('/');break;case'options':_0x376a70[_0x9ecd('0x24')]=_0x42cede[_0x31cad1[_0x1ffb23][_0x9ecd('0x27')]];if(_0xcdb832[_0x9ecd('0x1f')]!==_0x9ecd('0x20')){if(_0x376a70['options'][_0x9ecd('0x2d')]('U(xcally-mixmonitor-context)')<0x0){_0x376a70[_0x9ecd('0x24')]+='U(xcally-mixmonitor-context)';}}else{_0x376a70[_0x9ecd('0x24')]=_0x376a70['options']['replace'](_0x9ecd('0x2e'),'');}_0x5a2e19[_0x31cad1[_0x1ffb23][_0x9ecd('0x27')]]=_0x376a70[_0x9ecd('0x24')];break;default:_0x5a2e19[_0x31cad1[_0x1ffb23]['param']]=_0x42cede[_0x31cad1[_0x1ffb23][_0x9ecd('0x27')]];}}return _0x5a2e19[_0x9ecd('0x2c')](',');}function _0x119422(_0x10c17a,_0x42f32b,_0x28a6b0){return new Promise(function(_0x18bc09,_0x5c8c59){var _0xd27490=[];if(_[_0x9ecd('0x2f')](_0x42f32b))return _0x18bc09(_0xd27490);_0x8cd66[_0x9ecd('0x30')][_0x9ecd('0x31')]({'attributes':['id',_0x9ecd('0x32'),_0x9ecd('0x33')],'raw':!![]})[_0x9ecd('0x34')](function(_0xcb9830){for(var _0x1089bc=0x0,_0x4e6390=0x0;_0x1089bc<_0x42f32b[_0x9ecd('0x35')];_0x1089bc++,_0x4e6390=0x0){var _0x4b680a=_0x42f32b[_0x1089bc];var _0x1730be=[];var _0x266d9d=[];delete _0x4b680a['id'];if(_0x4b680a[_0x9ecd('0x32')]!==_0x9ecd('0x36')){_0x4b680a['intervals']=[_0x4b680a[_0x9ecd('0x32')]];}else{_0x4b680a['intervals']=_0x4b680a['IntervalId']?_['map'](_[_0x9ecd('0x37')](_0xcb9830,{'IntervalId':_0x4b680a[_0x9ecd('0x33')]}),'interval'):[];}_0x4b680a[_0x9ecd('0xc')]=_0x10c17a[_0x9ecd('0xc')];_0x4b680a['exten']=_0x10c17a[_0x9ecd('0x7')];if(_0x4b680a[_0x9ecd('0x4')])_0x4b680a['type']=_0x4b680a['type'][_0x9ecd('0x38')]();if(_0x10c17a['type']===_0x9ecd('0x13')){if(_0x4b680a['hasOwnProperty'](_0x9ecd('0x39'))&&_0x4b680a[_0x9ecd('0x39')]&&_0x4b680a['tag']!=='--'){_0x1730be[_0x9ecd('0xf')]({'type':_0x4b680a['type'][_0x9ecd('0x38')](),'app':_0x9ecd('0x5'),'appdata':'CDR(tag)='+_0x4b680a[_0x9ecd('0x39')],'context':_0x10c17a[_0x9ecd('0xc')],'exten':_0x10c17a[_0x9ecd('0x7')],'priority':_0x4b680a[_0x9ecd('0x3a')]['length']+_0x28a6b0+_0x4e6390++,'VoiceExtensionId':_0x10c17a['id']});}_0x1730be[_0x9ecd('0xf')]({'type':_0x4b680a['type'][_0x9ecd('0x38')](),'app':_0x9ecd('0x19'),'appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):'+(_0x4b680a[_0x9ecd('0x3b')]?_0x9ecd('0x3c')+_0x4b680a[_0x9ecd('0x3b')]+')':'NoOp(No\x20number\x20available)'),'context':_0x10c17a[_0x9ecd('0xc')],'exten':_0x10c17a[_0x9ecd('0x7')],'priority':_0x4b680a[_0x9ecd('0x3a')][_0x9ecd('0x35')]+_0x28a6b0+_0x4e6390++,'VoiceExtensionId':_0x10c17a['id']});}else{if(_0x4b680a['hasOwnProperty'](_0x9ecd('0x3d'))){if([_0x9ecd('0x3e'),_0x9ecd('0x3f')][_0x9ecd('0x40')](_0x4b680a[_0x9ecd('0x41')][_0x9ecd('0x38')]())&&_0x4b680a[_0x9ecd('0x42')]!==_0x9ecd('0x43')){if(_0x4b680a[_0x9ecd('0x3d')]){_0x1730be[_0x9ecd('0xf')]({'type':_0x4b680a[_0x9ecd('0x4')][_0x9ecd('0x38')](),'app':_0x9ecd('0x19'),'appdata':'$[${XCALLY-MOTION-ANSWER}=0]?Answer','context':_0x10c17a[_0x9ecd('0xc')],'exten':_0x10c17a[_0x9ecd('0x7')],'priority':_0x4b680a[_0x9ecd('0x3a')]['length']+_0x28a6b0+_0x4e6390++,'VoiceExtensionId':_0x10c17a['id']});_0x1730be[_0x9ecd('0xf')]({'type':_0x4b680a[_0x9ecd('0x4')][_0x9ecd('0x38')](),'app':_0x9ecd('0x5'),'appdata':_0x9ecd('0x44'),'context':_0x10c17a[_0x9ecd('0xc')],'exten':_0x10c17a[_0x9ecd('0x7')],'priority':_0x4b680a[_0x9ecd('0x3a')]['length']+_0x28a6b0+_0x4e6390++,'VoiceExtensionId':_0x10c17a['id']});}else{_0x1730be[_0x9ecd('0xf')]({'type':_0x4b680a[_0x9ecd('0x4')]['toLowerCase'](),'app':_0x9ecd('0x19'),'appdata':_0x9ecd('0x45'),'context':_0x10c17a[_0x9ecd('0xc')],'exten':_0x10c17a['exten'],'priority':_0x4b680a[_0x9ecd('0x3a')]['length']+_0x28a6b0+_0x4e6390++,'VoiceExtensionId':_0x10c17a['id']});_0x1730be[_0x9ecd('0xf')]({'type':_0x4b680a[_0x9ecd('0x4')][_0x9ecd('0x38')](),'app':'Set','appdata':_0x9ecd('0x46'),'context':_0x10c17a[_0x9ecd('0xc')],'exten':_0x10c17a[_0x9ecd('0x7')],'priority':_0x4b680a['intervals']['length']+_0x28a6b0+_0x4e6390++,'VoiceExtensionId':_0x10c17a['id']});}}}}for(var _0x20bb91=0x0;_0x20bb91<_0x4b680a['intervals'][_0x9ecd('0x35')];_0x20bb91++){var _0x394aaa=_0x28a6b0+_0x4b680a[_0x9ecd('0x3a')][_0x9ecd('0x35')];var _0x5e703d=_0x20bb91===_0x4b680a['intervals'][_0x9ecd('0x35')]-0x1?_0x28a6b0+_0x1730be[_0x9ecd('0x35')]+_0x266d9d[_0x9ecd('0x35')]+0x2:_0x28a6b0+_0x20bb91+0x1;_0x1730be[_0x9ecd('0x47')](_0x20bb91,0x0,{'type':_0x10c17a[_0x9ecd('0x4')],'app':_0x9ecd('0x48'),'appdata':_0x4b680a[_0x9ecd('0x3a')][_0x20bb91]+'?'+_0x10c17a[_0x9ecd('0xc')]+_0x9ecd('0x49')+_0x394aaa+':'+_0x10c17a[_0x9ecd('0xc')]+_0x9ecd('0x49')+_0x5e703d,'exten':_0x10c17a[_0x9ecd('0x7')],'context':_0x10c17a[_0x9ecd('0xc')],'priority':_0x28a6b0+_0x20bb91,'VoiceExtensionId':_0x10c17a['id']});}if(_0x4b680a[_0x9ecd('0x42')]===_0x9ecd('0x4a'))_0x4b680a[_0x9ecd('0x4b')]=_0x5bcdae(_0x10c17a,_0x4b680a[_0x9ecd('0x4b')]);_0x4b680a['priority']=_0x1730be[_0x9ecd('0x35')]?_[_0x9ecd('0x4c')](_0x1730be)[_0x9ecd('0x4d')]+0x1:_0x28a6b0;_0xd27490=_['concat'](_0xd27490,_0x1730be,[_0x4b680a],_0x266d9d);_0x28a6b0=_[_0x9ecd('0x4c')](_0xd27490)[_0x9ecd('0x4d')]+0x1;}return _0x18bc09(_0xd27490);})['catch'](function(_0x576d4f){_0x5c8c59(_0x576d4f);});});}return _0xb2c5a3[_0x9ecd('0x4e')](_0x9ecd('0x4f'),attributes,{'tableName':'voice_extensions','paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x14fda6){var _0x29c962=this[_0x9ecd('0x50')]({'plain':!![]});var _0xb06c43=_0x29c962[_0x9ecd('0x4')]===_0x9ecd('0x13')?_0x483fd3(_0x29c962):_0x20c114(_0x29c962);return _0x119422(_0x29c962,_0x14fda6,_[_0x9ecd('0x4c')](_0xb06c43)[_0x9ecd('0x4d')]+0x1)[_0x9ecd('0x34')](function(_0x437b30){var _0x3b69e9=_[_0x9ecd('0x51')](_0xb06c43,_0x437b30);_0x3b69e9[_0x9ecd('0xf')]({'type':_0x29c962[_0x9ecd('0x4')],'app':_0x9ecd('0x52'),'exten':_0x29c962[_0x9ecd('0x7')],'context':_0x29c962['context'],'priority':_['last'](_0x3b69e9)[_0x9ecd('0x4d')]+0x1,'VoiceExtensionId':_0x29c962['id']});return _0x3b69e9;});}}});};