2606833fd483a35b1110fc56ffff18bb6077aefc
[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 _0x433a=['Set','NoOp','CDR(routeAlias)=','alias','No\x20alias\x20set','inbound','push','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','outbound','CDR(type)=outbound','CDR(destination)=','cutdigits','${EXTEN}','CDR(routeid)=','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','MONITOR_OPTIONS=ab','hasOwnProperty','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','wav','trunk','timeout','options','split','length','name','phone','prefix','${EXTEN:','param','SIP','join','indexOf','U(xcally-mixmonitor-context)','replace','isEmpty','findAll','interval','IntervalId','then','*,*,*,*','intervals','map','filter','tag','CDR(tag)=','toLowerCase','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):','Set(CALLERID(all)=','NoOp(No\x20number\x20available)','answer','queue','includes','app','appType','custom','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','splice',',${EXTEN},','outboundDial','appdata','last','priority','concat','catch','define','VoiceExtension','Hangup','lodash','./voiceExtension.attributes','exports','models','type','CDR(type)=','context','exten'];(function(_0x36914e,_0x320aab){var _0x311165=function(_0x63c6b0){while(--_0x63c6b0){_0x36914e['push'](_0x36914e['shift']());}};_0x311165(++_0x320aab);}(_0x433a,0x14c));var _0xa433=function(_0x3882a5,_0x27af1f){_0x3882a5=_0x3882a5-0x0;var _0x223f53=_0x433a[_0x3882a5];return _0x223f53;};'use strict';var _=require(_0xa433('0x0'));var attributes=require(_0xa433('0x1'));module[_0xa433('0x2')]=function(_0x57aaa9){var _0x29307f=_0x57aaa9[_0xa433('0x3')];function _0x22ac7b(_0x1fcf09){var _0x4a4d5c=0x2;var _0x22f282=[{'type':_0x1fcf09[_0xa433('0x4')],'app':'Set','appdata':_0xa433('0x5')+_0x1fcf09[_0xa433('0x4')],'context':_0x1fcf09[_0xa433('0x6')],'exten':_0x1fcf09[_0xa433('0x7')],'priority':_0x4a4d5c++,'VoiceExtensionId':_0x1fcf09['id']},{'type':_0x1fcf09[_0xa433('0x4')],'app':_0x1fcf09['alias']?_0xa433('0x8'):_0xa433('0x9'),'appdata':_0x1fcf09['alias']?_0xa433('0xa')+_0x1fcf09[_0xa433('0xb')]:_0xa433('0xc'),'context':_0x1fcf09[_0xa433('0x6')],'exten':_0x1fcf09[_0xa433('0x7')],'priority':_0x4a4d5c++,'VoiceExtensionId':_0x1fcf09['id']}];if(_0x1fcf09[_0xa433('0x4')]===_0xa433('0xd')){_0x22f282[_0xa433('0xe')]({'type':_0xa433('0xd'),'app':_0xa433('0x8'),'appdata':'CDR(routeid)='+_0x1fcf09['id'],'context':_0x1fcf09[_0xa433('0x6')],'exten':_0x1fcf09[_0xa433('0x7')],'priority':_0x4a4d5c++,'VoiceExtensionId':_0x1fcf09['id']});}_0x22f282[_0xa433('0xe')]({'type':_0x1fcf09[_0xa433('0x4')],'app':'Set','appdata':_0xa433('0xf'),'context':_0x1fcf09[_0xa433('0x6')],'exten':_0x1fcf09[_0xa433('0x7')],'priority':_0x4a4d5c++,'VoiceExtensionId':_0x1fcf09['id']},{'type':_0x1fcf09[_0xa433('0x4')],'app':_0xa433('0x8'),'appdata':_0xa433('0x10'),'context':_0x1fcf09[_0xa433('0x6')],'exten':_0x1fcf09[_0xa433('0x7')],'priority':_0x4a4d5c++,'VoiceExtensionId':_0x1fcf09['id']},{'type':_0x1fcf09['type'],'app':_0xa433('0x8'),'appdata':'MONITOR_OPTIONS=ab','context':_0x1fcf09[_0xa433('0x6')],'exten':_0x1fcf09[_0xa433('0x7')],'priority':_0x4a4d5c++,'VoiceExtensionId':_0x1fcf09['id']});return _0x22f282;}function _0x3b8323(_0x3a580e){var _0x3c5db6=0x2;var _0x1bc01f=[{'type':_0xa433('0x11'),'app':_0xa433('0x8'),'appdata':_0xa433('0x12'),'context':_0x3a580e[_0xa433('0x6')],'exten':_0x3a580e[_0xa433('0x7')],'priority':_0x3c5db6++,'VoiceExtensionId':_0x3a580e['id']},{'type':_0xa433('0x11'),'app':_0x3a580e[_0xa433('0xb')]?_0xa433('0x8'):'NoOp','appdata':_0x3a580e['alias']?_0xa433('0xa')+_0x3a580e[_0xa433('0xb')]:_0xa433('0xc'),'context':_0x3a580e[_0xa433('0x6')],'exten':_0x3a580e[_0xa433('0x7')],'priority':_0x3c5db6++,'VoiceExtensionId':_0x3a580e['id']},{'type':_0xa433('0x11'),'app':_0xa433('0x8'),'appdata':_0xa433('0x13')+(_0x3a580e[_0xa433('0x14')]?'${EXTEN:'+_0x3a580e[_0xa433('0x14')]+'}':_0xa433('0x15')),'context':_0x3a580e[_0xa433('0x6')],'exten':_0x3a580e[_0xa433('0x7')],'priority':_0x3c5db6++,'VoiceExtensionId':_0x3a580e['id']},{'type':_0xa433('0x11'),'app':_0xa433('0x8'),'appdata':_0xa433('0x16')+_0x3a580e['id'],'context':_0x3a580e[_0xa433('0x6')],'exten':_0x3a580e['exten'],'priority':_0x3c5db6++,'VoiceExtensionId':_0x3a580e['id']},{'type':'outbound','app':_0xa433('0x17'),'appdata':_0xa433('0x18')+(_0x3c5db6+0x2)+_0xa433('0x19')+(_0x3c5db6+0x1)+')','context':_0x3a580e['context'],'exten':_0x3a580e[_0xa433('0x7')],'priority':_0x3c5db6++,'VoiceExtensionId':_0x3a580e['id']},{'type':_0xa433('0x11'),'app':_0xa433('0x8'),'appdata':_0x3a580e[_0xa433('0x14')]?_0xa433('0x1a')+_0x3a580e[_0xa433('0x14')]+'}':_0xa433('0x1b'),'context':_0x3a580e[_0xa433('0x6')],'exten':_0x3a580e[_0xa433('0x7')],'priority':_0x3c5db6++,'VoiceExtensionId':_0x3a580e['id']},{'type':_0xa433('0x11'),'app':_0xa433('0x8'),'appdata':_0xa433('0xf'),'context':_0x3a580e[_0xa433('0x6')],'exten':_0x3a580e[_0xa433('0x7')],'priority':_0x3c5db6++,'VoiceExtensionId':_0x3a580e['id']},{'type':_0xa433('0x11'),'app':_0xa433('0x8'),'appdata':_0xa433('0x10'),'context':_0x3a580e[_0xa433('0x6')],'exten':_0x3a580e[_0xa433('0x7')],'priority':_0x3c5db6++,'VoiceExtensionId':_0x3a580e['id']},{'type':'outbound','app':_0xa433('0x8'),'appdata':_0xa433('0x1c'),'context':_0x3a580e['context'],'exten':_0x3a580e[_0xa433('0x7')],'priority':_0x3c5db6++,'VoiceExtensionId':_0x3a580e['id']},{'type':_0xa433('0x11'),'app':_0xa433('0x8'),'appdata':'outboundrouteid='+_0x3a580e['id'],'context':_0x3a580e[_0xa433('0x6')],'exten':_0x3a580e[_0xa433('0x7')],'priority':_0x3c5db6++,'VoiceExtensionId':_0x3a580e['id']}];if(_0x3a580e[_0xa433('0x1d')](_0xa433('0x1e'))&&_0x3a580e[_0xa433('0x1e')]!==_0xa433('0x1f')){_0x1bc01f[_0xa433('0xe')]({'type':_0xa433('0x11'),'app':'Set','appdata':_0xa433('0x20'),'context':_0x3a580e['context'],'exten':_0x3a580e[_0xa433('0x7')],'priority':_0x3c5db6++,'VoiceExtensionId':_0x3a580e['id']},{'type':_0xa433('0x11'),'app':_0xa433('0x8'),'appdata':_0xa433('0x21')+_0x3a580e[_0xa433('0x1e')]||_0xa433('0x22'),'context':_0x3a580e['context'],'exten':_0x3a580e['exten'],'priority':_0x3c5db6++,'VoiceExtensionId':_0x3a580e['id']});}return _0x1bc01f;}function _0x115f84(_0x560281,_0x32b9fb){var _0x138b60=[{'name':_0xa433('0x23'),'param':0x0},{'name':_0xa433('0x24'),'param':0x1},{'name':_0xa433('0x25'),'param':0x2},{'name':'url','param':0x3}];var _0x126223={};var _0x5a829c=_0x32b9fb[_0xa433('0x26')](',');var _0x48f571=[];for(var _0x47ce7d=0x0;_0x47ce7d<_0x138b60[_0xa433('0x27')];_0x47ce7d++){switch(_0x138b60[_0x47ce7d][_0xa433('0x28')]){case _0xa433('0x23'):_0x126223[_0xa433('0x23')]=_0x5a829c[_0x138b60[_0x47ce7d]['param']][_0xa433('0x26')]('/')[0x1];_0x126223[_0xa433('0x29')]=_0x5a829c[_0x138b60[_0x47ce7d]['param']]['split']('/')[0x2];_0x126223[_0xa433('0x2a')]=_0x126223[_0xa433('0x29')]?_0x126223['phone'][_0xa433('0x26')]('$')[0x0]:undefined;_0x126223[_0xa433('0x29')]=_0x560281[_0xa433('0x14')]?(_0x126223[_0xa433('0x2a')]||'')+_0xa433('0x2b')+_0x560281['cutdigits']+'}':(_0x126223[_0xa433('0x2a')]||'')+'${EXTEN}';_0x48f571[_0x138b60[_0x47ce7d][_0xa433('0x2c')]]=[_0xa433('0x2d'),_0x126223[_0xa433('0x23')],_0x126223[_0xa433('0x29')]][_0xa433('0x2e')]('/');break;case _0xa433('0x25'):_0x126223[_0xa433('0x25')]=_0x5a829c[_0x138b60[_0x47ce7d][_0xa433('0x2c')]];if(_0x560281[_0xa433('0x1e')]!==_0xa433('0x1f')){if(_0x126223[_0xa433('0x25')][_0xa433('0x2f')](_0xa433('0x30'))<0x0){_0x126223[_0xa433('0x25')]+=_0xa433('0x30');}}else{_0x126223['options']=_0x126223[_0xa433('0x25')][_0xa433('0x31')](_0xa433('0x30'),'');}_0x48f571[_0x138b60[_0x47ce7d][_0xa433('0x2c')]]=_0x126223['options'];break;default:_0x48f571[_0x138b60[_0x47ce7d][_0xa433('0x2c')]]=_0x5a829c[_0x138b60[_0x47ce7d][_0xa433('0x2c')]];}}return _0x48f571[_0xa433('0x2e')](',');}function _0x38aafe(_0x420c74,_0x1462b7,_0x35555c){return new Promise(function(_0x584506,_0x96c81c){var _0x45ff00=[];if(_[_0xa433('0x32')](_0x1462b7))return _0x584506(_0x45ff00);_0x29307f['Interval'][_0xa433('0x33')]({'attributes':['id',_0xa433('0x34'),_0xa433('0x35')],'raw':!![]})[_0xa433('0x36')](function(_0x2dba36){for(var _0x5ce562=0x0,_0xab35cc=0x0;_0x5ce562<_0x1462b7[_0xa433('0x27')];_0x5ce562++,_0xab35cc=0x0){var _0x3dbf4d=_0x1462b7[_0x5ce562];var _0x566815=[];var _0x5b2d04=[];delete _0x3dbf4d['id'];if(_0x3dbf4d[_0xa433('0x34')]!==_0xa433('0x37')){_0x3dbf4d[_0xa433('0x38')]=[_0x3dbf4d['interval']];}else{_0x3dbf4d['intervals']=_0x3dbf4d[_0xa433('0x35')]?_[_0xa433('0x39')](_[_0xa433('0x3a')](_0x2dba36,{'IntervalId':_0x3dbf4d['IntervalId']}),_0xa433('0x34')):[];}_0x3dbf4d['context']=_0x420c74[_0xa433('0x6')];_0x3dbf4d[_0xa433('0x7')]=_0x420c74[_0xa433('0x7')];if(_0x3dbf4d[_0xa433('0x4')])_0x3dbf4d[_0xa433('0x4')]=_0x3dbf4d[_0xa433('0x4')]['toLowerCase']();if(_0x420c74[_0xa433('0x4')]==='outbound'){if(_0x3dbf4d[_0xa433('0x1d')](_0xa433('0x3b'))&&_0x3dbf4d[_0xa433('0x3b')]&&_0x3dbf4d[_0xa433('0x3b')]!=='--'){_0x566815[_0xa433('0xe')]({'type':_0x3dbf4d['type']['toLowerCase'](),'app':_0xa433('0x8'),'appdata':_0xa433('0x3c')+_0x3dbf4d[_0xa433('0x3b')],'context':_0x420c74[_0xa433('0x6')],'exten':_0x420c74[_0xa433('0x7')],'priority':_0x3dbf4d[_0xa433('0x38')][_0xa433('0x27')]+_0x35555c+_0xab35cc++,'VoiceExtensionId':_0x420c74['id']});}_0x566815[_0xa433('0xe')]({'type':_0x3dbf4d[_0xa433('0x4')][_0xa433('0x3d')](),'app':_0xa433('0x17'),'appdata':_0xa433('0x3e')+(_0x3dbf4d['callerID']?_0xa433('0x3f')+_0x3dbf4d['callerID']+')':_0xa433('0x40')),'context':_0x420c74['context'],'exten':_0x420c74[_0xa433('0x7')],'priority':_0x3dbf4d[_0xa433('0x38')][_0xa433('0x27')]+_0x35555c+_0xab35cc++,'VoiceExtensionId':_0x420c74['id']});}else{if(_0x3dbf4d[_0xa433('0x1d')](_0xa433('0x41'))){if([_0xa433('0x42'),'playback'][_0xa433('0x43')](_0x3dbf4d[_0xa433('0x44')][_0xa433('0x3d')]())&&_0x3dbf4d[_0xa433('0x45')]!==_0xa433('0x46')){if(_0x3dbf4d[_0xa433('0x41')]){_0x566815[_0xa433('0xe')]({'type':_0x3dbf4d[_0xa433('0x4')][_0xa433('0x3d')](),'app':_0xa433('0x17'),'appdata':'$[${XCALLY-MOTION-ANSWER}=0]?Answer','context':_0x420c74[_0xa433('0x6')],'exten':_0x420c74['exten'],'priority':_0x3dbf4d['intervals']['length']+_0x35555c+_0xab35cc++,'VoiceExtensionId':_0x420c74['id']});_0x566815[_0xa433('0xe')]({'type':_0x3dbf4d[_0xa433('0x4')][_0xa433('0x3d')](),'app':_0xa433('0x8'),'appdata':_0xa433('0x47'),'context':_0x420c74[_0xa433('0x6')],'exten':_0x420c74[_0xa433('0x7')],'priority':_0x3dbf4d['intervals'][_0xa433('0x27')]+_0x35555c+_0xab35cc++,'VoiceExtensionId':_0x420c74['id']});}else{_0x566815[_0xa433('0xe')]({'type':_0x3dbf4d['type'][_0xa433('0x3d')](),'app':'ExecIf','appdata':_0xa433('0x48'),'context':_0x420c74[_0xa433('0x6')],'exten':_0x420c74[_0xa433('0x7')],'priority':_0x3dbf4d[_0xa433('0x38')][_0xa433('0x27')]+_0x35555c+_0xab35cc++,'VoiceExtensionId':_0x420c74['id']});_0x566815[_0xa433('0xe')]({'type':_0x3dbf4d[_0xa433('0x4')]['toLowerCase'](),'app':_0xa433('0x8'),'appdata':_0xa433('0x49'),'context':_0x420c74[_0xa433('0x6')],'exten':_0x420c74['exten'],'priority':_0x3dbf4d['intervals'][_0xa433('0x27')]+_0x35555c+_0xab35cc++,'VoiceExtensionId':_0x420c74['id']});}}}}for(var _0x3cbcdb=0x0;_0x3cbcdb<_0x3dbf4d['intervals'][_0xa433('0x27')];_0x3cbcdb++){var _0x5e5e89=_0x35555c+_0x3dbf4d[_0xa433('0x38')][_0xa433('0x27')];var _0x378b78=_0x3cbcdb===_0x3dbf4d[_0xa433('0x38')][_0xa433('0x27')]-0x1?_0x35555c+_0x566815[_0xa433('0x27')]+_0x5b2d04[_0xa433('0x27')]+0x2:_0x35555c+_0x3cbcdb+0x1;_0x566815[_0xa433('0x4a')](_0x3cbcdb,0x0,{'type':_0x420c74[_0xa433('0x4')],'app':'GotoIfTime','appdata':_0x3dbf4d[_0xa433('0x38')][_0x3cbcdb]+'?'+_0x420c74[_0xa433('0x6')]+_0xa433('0x4b')+_0x5e5e89+':'+_0x420c74[_0xa433('0x6')]+_0xa433('0x4b')+_0x378b78,'exten':_0x420c74[_0xa433('0x7')],'context':_0x420c74[_0xa433('0x6')],'priority':_0x35555c+_0x3cbcdb,'VoiceExtensionId':_0x420c74['id']});}if(_0x3dbf4d[_0xa433('0x45')]===_0xa433('0x4c'))_0x3dbf4d[_0xa433('0x4d')]=_0x115f84(_0x420c74,_0x3dbf4d[_0xa433('0x4d')]);_0x3dbf4d['priority']=_0x566815[_0xa433('0x27')]?_[_0xa433('0x4e')](_0x566815)[_0xa433('0x4f')]+0x1:_0x35555c;_0x45ff00=_[_0xa433('0x50')](_0x45ff00,_0x566815,[_0x3dbf4d],_0x5b2d04);_0x35555c=_[_0xa433('0x4e')](_0x45ff00)[_0xa433('0x4f')]+0x1;}return _0x584506(_0x45ff00);})[_0xa433('0x51')](function(_0x27f74a){_0x96c81c(_0x27f74a);});});}return _0x57aaa9[_0xa433('0x52')](_0xa433('0x53'),attributes,{'tableName':'voice_extensions','paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x41ee8a){var _0x2dedf2=this['get']({'plain':!![]});var _0xa4aeec=_0x2dedf2[_0xa433('0x4')]===_0xa433('0x11')?_0x3b8323(_0x2dedf2):_0x22ac7b(_0x2dedf2);return _0x38aafe(_0x2dedf2,_0x41ee8a,_[_0xa433('0x4e')](_0xa4aeec)[_0xa433('0x4f')]+0x1)[_0xa433('0x36')](function(_0x132df4){var _0x1e29c4=_[_0xa433('0x50')](_0xa4aeec,_0x132df4);_0x1e29c4[_0xa433('0xe')]({'type':_0x2dedf2[_0xa433('0x4')],'app':_0xa433('0x54'),'exten':_0x2dedf2['exten'],'context':_0x2dedf2[_0xa433('0x6')],'priority':_[_0xa433('0x4e')](_0x1e29c4)[_0xa433('0x4f')]+0x1,'VoiceExtensionId':_0x2dedf2['id']});return _0x1e29c4;});}}});};