b60b96db5cf7fff8dbd425ffb55b44bea860a88b
[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 _0x5aaa=['IntervalId','then','*,*,*,*','intervals','map','toLowerCase','hasOwnProperty','tag','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):','callerID','NoOp(No\x20number\x20available)','queue','playback','includes','app','appType','custom','answer','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','GotoIfTime',',${EXTEN},','appdata','priority','last','catch','define','VoiceExtension','concat','lodash','type','Set','context','exten','NoOp','alias','CDR(routeAlias)=','inbound','push','CDR(routeid)=','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','outbound','CDR(type)=outbound','No\x20alias\x20set','CDR(destination)=','cutdigits','${EXTEN:','${EXTEN}','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','wav','timeout','options','split','length','param','phone','prefix','trunk','join','indexOf','U(xcally-mixmonitor-context)','replace','isEmpty','Interval','findAll','interval'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x5aaa,0xff));var _0xa5aa=function(_0x461d21,_0x2465ba){_0x461d21=_0x461d21-0x0;var _0x1b0935=_0x5aaa[_0x461d21];return _0x1b0935;};'use strict';var _=require(_0xa5aa('0x0'));var attributes=require('./voiceExtension.attributes');module['exports']=function(_0x4d2ac2){var _0x59ccda=_0x4d2ac2['models'];function _0x128d2a(_0x21f5d9){var _0x473061=0x2;var _0x54ca19=[{'type':_0x21f5d9[_0xa5aa('0x1')],'app':_0xa5aa('0x2'),'appdata':'CDR(type)='+_0x21f5d9[_0xa5aa('0x1')],'context':_0x21f5d9[_0xa5aa('0x3')],'exten':_0x21f5d9[_0xa5aa('0x4')],'priority':_0x473061++,'VoiceExtensionId':_0x21f5d9['id']},{'type':_0x21f5d9[_0xa5aa('0x1')],'app':_0x21f5d9['alias']?'Set':_0xa5aa('0x5'),'appdata':_0x21f5d9[_0xa5aa('0x6')]?_0xa5aa('0x7')+_0x21f5d9['alias']:'No\x20alias\x20set','context':_0x21f5d9['context'],'exten':_0x21f5d9[_0xa5aa('0x4')],'priority':_0x473061++,'VoiceExtensionId':_0x21f5d9['id']}];if(_0x21f5d9['type']===_0xa5aa('0x8')){_0x54ca19[_0xa5aa('0x9')]({'type':_0xa5aa('0x8'),'app':_0xa5aa('0x2'),'appdata':_0xa5aa('0xa')+_0x21f5d9['id'],'context':_0x21f5d9['context'],'exten':_0x21f5d9[_0xa5aa('0x4')],'priority':_0x473061++,'VoiceExtensionId':_0x21f5d9['id']});}_0x54ca19[_0xa5aa('0x9')]({'type':_0x21f5d9[_0xa5aa('0x1')],'app':_0xa5aa('0x2'),'appdata':'XCALLY-MOTION-ANSWER=0','context':_0x21f5d9[_0xa5aa('0x3')],'exten':_0x21f5d9[_0xa5aa('0x4')],'priority':_0x473061++,'VoiceExtensionId':_0x21f5d9['id']},{'type':_0x21f5d9[_0xa5aa('0x1')],'app':'Set','appdata':_0xa5aa('0xb'),'context':_0x21f5d9[_0xa5aa('0x3')],'exten':_0x21f5d9[_0xa5aa('0x4')],'priority':_0x473061++,'VoiceExtensionId':_0x21f5d9['id']},{'type':_0x21f5d9[_0xa5aa('0x1')],'app':_0xa5aa('0x2'),'appdata':_0xa5aa('0xc'),'context':_0x21f5d9[_0xa5aa('0x3')],'exten':_0x21f5d9['exten'],'priority':_0x473061++,'VoiceExtensionId':_0x21f5d9['id']});return _0x54ca19;}function _0x219532(_0x5b1559){var _0x5bb59d=0x2;var _0x248ee8=[{'type':_0xa5aa('0xd'),'app':_0xa5aa('0x2'),'appdata':_0xa5aa('0xe'),'context':_0x5b1559[_0xa5aa('0x3')],'exten':_0x5b1559[_0xa5aa('0x4')],'priority':_0x5bb59d++,'VoiceExtensionId':_0x5b1559['id']},{'type':_0xa5aa('0xd'),'app':_0x5b1559[_0xa5aa('0x6')]?'Set':_0xa5aa('0x5'),'appdata':_0x5b1559[_0xa5aa('0x6')]?'CDR(routeAlias)='+_0x5b1559[_0xa5aa('0x6')]:_0xa5aa('0xf'),'context':_0x5b1559['context'],'exten':_0x5b1559[_0xa5aa('0x4')],'priority':_0x5bb59d++,'VoiceExtensionId':_0x5b1559['id']},{'type':_0xa5aa('0xd'),'app':_0xa5aa('0x2'),'appdata':_0xa5aa('0x10')+(_0x5b1559[_0xa5aa('0x11')]?_0xa5aa('0x12')+_0x5b1559[_0xa5aa('0x11')]+'}':_0xa5aa('0x13')),'context':_0x5b1559[_0xa5aa('0x3')],'exten':_0x5b1559[_0xa5aa('0x4')],'priority':_0x5bb59d++,'VoiceExtensionId':_0x5b1559['id']},{'type':'outbound','app':_0xa5aa('0x2'),'appdata':_0xa5aa('0xa')+_0x5b1559['id'],'context':_0x5b1559[_0xa5aa('0x3')],'exten':_0x5b1559[_0xa5aa('0x4')],'priority':_0x5bb59d++,'VoiceExtensionId':_0x5b1559['id']},{'type':_0xa5aa('0xd'),'app':_0xa5aa('0x14'),'appdata':_0xa5aa('0x15')+(_0x5bb59d+0x2)+_0xa5aa('0x16')+(_0x5bb59d+0x1)+')','context':_0x5b1559[_0xa5aa('0x3')],'exten':_0x5b1559[_0xa5aa('0x4')],'priority':_0x5bb59d++,'VoiceExtensionId':_0x5b1559['id']},{'type':_0xa5aa('0xd'),'app':_0xa5aa('0x2'),'appdata':_0x5b1559[_0xa5aa('0x11')]?_0xa5aa('0x17')+_0x5b1559[_0xa5aa('0x11')]+'}':_0xa5aa('0x18'),'context':_0x5b1559[_0xa5aa('0x3')],'exten':_0x5b1559['exten'],'priority':_0x5bb59d++,'VoiceExtensionId':_0x5b1559['id']},{'type':'outbound','app':'Set','appdata':'XCALLY-MOTION-ANSWER=0','context':_0x5b1559[_0xa5aa('0x3')],'exten':_0x5b1559['exten'],'priority':_0x5bb59d++,'VoiceExtensionId':_0x5b1559['id']},{'type':'outbound','app':'Set','appdata':_0xa5aa('0xb'),'context':_0x5b1559[_0xa5aa('0x3')],'exten':_0x5b1559[_0xa5aa('0x4')],'priority':_0x5bb59d++,'VoiceExtensionId':_0x5b1559['id']},{'type':_0xa5aa('0xd'),'app':'Set','appdata':'MONITOR_OPTIONS=ab','context':_0x5b1559[_0xa5aa('0x3')],'exten':_0x5b1559['exten'],'priority':_0x5bb59d++,'VoiceExtensionId':_0x5b1559['id']},{'type':_0xa5aa('0xd'),'app':_0xa5aa('0x2'),'appdata':'outboundrouteid='+_0x5b1559['id'],'context':_0x5b1559['context'],'exten':_0x5b1559[_0xa5aa('0x4')],'priority':_0x5bb59d++,'VoiceExtensionId':_0x5b1559['id']}];if(_0x5b1559['hasOwnProperty'](_0xa5aa('0x19'))&&_0x5b1559[_0xa5aa('0x19')]!==_0xa5aa('0x1a')){_0x248ee8[_0xa5aa('0x9')]({'type':_0xa5aa('0xd'),'app':_0xa5aa('0x2'),'appdata':_0xa5aa('0x1b'),'context':_0x5b1559['context'],'exten':_0x5b1559['exten'],'priority':_0x5bb59d++,'VoiceExtensionId':_0x5b1559['id']},{'type':_0xa5aa('0xd'),'app':'Set','appdata':'_XCALLY_MIXMONITOR_FORMAT='+_0x5b1559[_0xa5aa('0x19')]||_0xa5aa('0x1c'),'context':_0x5b1559[_0xa5aa('0x3')],'exten':_0x5b1559['exten'],'priority':_0x5bb59d++,'VoiceExtensionId':_0x5b1559['id']});}return _0x248ee8;}function _0x2840d2(_0x53b8dd,_0x22d110){var _0x37944c=[{'name':'trunk','param':0x0},{'name':_0xa5aa('0x1d'),'param':0x1},{'name':_0xa5aa('0x1e'),'param':0x2},{'name':'url','param':0x3}];var _0x2592af={};var _0x435a93=_0x22d110[_0xa5aa('0x1f')](',');var _0x1cc374=[];for(var _0x4d09ab=0x0;_0x4d09ab<_0x37944c[_0xa5aa('0x20')];_0x4d09ab++){switch(_0x37944c[_0x4d09ab]['name']){case'trunk':_0x2592af['trunk']=_0x435a93[_0x37944c[_0x4d09ab][_0xa5aa('0x21')]][_0xa5aa('0x1f')]('/')[0x1];_0x2592af[_0xa5aa('0x22')]=_0x435a93[_0x37944c[_0x4d09ab][_0xa5aa('0x21')]][_0xa5aa('0x1f')]('/')[0x2];_0x2592af[_0xa5aa('0x23')]=_0x2592af[_0xa5aa('0x22')]?_0x2592af[_0xa5aa('0x22')][_0xa5aa('0x1f')]('$')[0x0]:undefined;_0x2592af['phone']=_0x53b8dd['cutdigits']?(_0x2592af[_0xa5aa('0x23')]||'')+_0xa5aa('0x12')+_0x53b8dd[_0xa5aa('0x11')]+'}':(_0x2592af[_0xa5aa('0x23')]||'')+_0xa5aa('0x13');_0x1cc374[_0x37944c[_0x4d09ab][_0xa5aa('0x21')]]=['SIP',_0x2592af[_0xa5aa('0x24')],_0x2592af[_0xa5aa('0x22')]][_0xa5aa('0x25')]('/');break;case'options':_0x2592af[_0xa5aa('0x1e')]=_0x435a93[_0x37944c[_0x4d09ab]['param']];if(_0x53b8dd[_0xa5aa('0x19')]!=='none'){if(_0x2592af[_0xa5aa('0x1e')][_0xa5aa('0x26')](_0xa5aa('0x27'))<0x0){_0x2592af[_0xa5aa('0x1e')]+=_0xa5aa('0x27');}}else{_0x2592af[_0xa5aa('0x1e')]=_0x2592af[_0xa5aa('0x1e')][_0xa5aa('0x28')](_0xa5aa('0x27'),'');}_0x1cc374[_0x37944c[_0x4d09ab][_0xa5aa('0x21')]]=_0x2592af['options'];break;default:_0x1cc374[_0x37944c[_0x4d09ab][_0xa5aa('0x21')]]=_0x435a93[_0x37944c[_0x4d09ab]['param']];}}return _0x1cc374[_0xa5aa('0x25')](',');}function _0x225dab(_0x271db8,_0x129efc,_0x1f6421){return new Promise(function(_0x23b86f,_0x14ac91){var _0x3dfa0c=[];if(_[_0xa5aa('0x29')](_0x129efc))return _0x23b86f(_0x3dfa0c);_0x59ccda[_0xa5aa('0x2a')][_0xa5aa('0x2b')]({'attributes':['id',_0xa5aa('0x2c'),_0xa5aa('0x2d')],'raw':!![]})[_0xa5aa('0x2e')](function(_0x127824){for(var _0x15bf7e=0x0,_0x5a28fb=0x0;_0x15bf7e<_0x129efc[_0xa5aa('0x20')];_0x15bf7e++,_0x5a28fb=0x0){var _0x59e629=_0x129efc[_0x15bf7e];var _0x52c68d=[];var _0x2bb967=[];delete _0x59e629['id'];if(_0x59e629[_0xa5aa('0x2c')]!==_0xa5aa('0x2f')){_0x59e629[_0xa5aa('0x30')]=[_0x59e629[_0xa5aa('0x2c')]];}else{_0x59e629[_0xa5aa('0x30')]=_0x59e629['IntervalId']?_[_0xa5aa('0x31')](_['filter'](_0x127824,{'IntervalId':_0x59e629[_0xa5aa('0x2d')]}),_0xa5aa('0x2c')):[];}_0x59e629[_0xa5aa('0x3')]=_0x271db8['context'];_0x59e629[_0xa5aa('0x4')]=_0x271db8[_0xa5aa('0x4')];if(_0x59e629[_0xa5aa('0x1')])_0x59e629[_0xa5aa('0x1')]=_0x59e629[_0xa5aa('0x1')][_0xa5aa('0x32')]();if(_0x271db8[_0xa5aa('0x1')]===_0xa5aa('0xd')){if(_0x59e629[_0xa5aa('0x33')](_0xa5aa('0x34'))&&_0x59e629[_0xa5aa('0x34')]&&_0x59e629[_0xa5aa('0x34')]!=='--'){_0x52c68d[_0xa5aa('0x9')]({'type':_0x59e629[_0xa5aa('0x1')][_0xa5aa('0x32')](),'app':'Set','appdata':'CDR(tag)='+_0x59e629[_0xa5aa('0x34')],'context':_0x271db8[_0xa5aa('0x3')],'exten':_0x271db8[_0xa5aa('0x4')],'priority':_0x59e629[_0xa5aa('0x30')][_0xa5aa('0x20')]+_0x1f6421+_0x5a28fb++,'VoiceExtensionId':_0x271db8['id']});}_0x52c68d[_0xa5aa('0x9')]({'type':_0x59e629[_0xa5aa('0x1')][_0xa5aa('0x32')](),'app':_0xa5aa('0x14'),'appdata':_0xa5aa('0x35')+(_0x59e629[_0xa5aa('0x36')]?'Set(CALLERID(all)='+_0x59e629[_0xa5aa('0x36')]+')':_0xa5aa('0x37')),'context':_0x271db8['context'],'exten':_0x271db8['exten'],'priority':_0x59e629[_0xa5aa('0x30')][_0xa5aa('0x20')]+_0x1f6421+_0x5a28fb++,'VoiceExtensionId':_0x271db8['id']});}else{if(_0x59e629[_0xa5aa('0x33')]('answer')){if([_0xa5aa('0x38'),_0xa5aa('0x39')][_0xa5aa('0x3a')](_0x59e629[_0xa5aa('0x3b')][_0xa5aa('0x32')]())&&_0x59e629[_0xa5aa('0x3c')]!==_0xa5aa('0x3d')){if(_0x59e629[_0xa5aa('0x3e')]){_0x52c68d[_0xa5aa('0x9')]({'type':_0x59e629['type'][_0xa5aa('0x32')](),'app':_0xa5aa('0x14'),'appdata':'$[${XCALLY-MOTION-ANSWER}=0]?Answer','context':_0x271db8[_0xa5aa('0x3')],'exten':_0x271db8[_0xa5aa('0x4')],'priority':_0x59e629['intervals']['length']+_0x1f6421+_0x5a28fb++,'VoiceExtensionId':_0x271db8['id']});_0x52c68d[_0xa5aa('0x9')]({'type':_0x59e629['type'][_0xa5aa('0x32')](),'app':_0xa5aa('0x2'),'appdata':_0xa5aa('0x3f'),'context':_0x271db8['context'],'exten':_0x271db8[_0xa5aa('0x4')],'priority':_0x59e629[_0xa5aa('0x30')][_0xa5aa('0x20')]+_0x1f6421+_0x5a28fb++,'VoiceExtensionId':_0x271db8['id']});}else{_0x52c68d[_0xa5aa('0x9')]({'type':_0x59e629[_0xa5aa('0x1')][_0xa5aa('0x32')](),'app':_0xa5aa('0x14'),'appdata':_0xa5aa('0x40'),'context':_0x271db8[_0xa5aa('0x3')],'exten':_0x271db8[_0xa5aa('0x4')],'priority':_0x59e629[_0xa5aa('0x30')][_0xa5aa('0x20')]+_0x1f6421+_0x5a28fb++,'VoiceExtensionId':_0x271db8['id']});_0x52c68d[_0xa5aa('0x9')]({'type':_0x59e629[_0xa5aa('0x1')][_0xa5aa('0x32')](),'app':'Set','appdata':_0xa5aa('0x41'),'context':_0x271db8[_0xa5aa('0x3')],'exten':_0x271db8[_0xa5aa('0x4')],'priority':_0x59e629[_0xa5aa('0x30')][_0xa5aa('0x20')]+_0x1f6421+_0x5a28fb++,'VoiceExtensionId':_0x271db8['id']});}}}}for(var _0x46a968=0x0;_0x46a968<_0x59e629[_0xa5aa('0x30')][_0xa5aa('0x20')];_0x46a968++){var _0x304f84=_0x1f6421+_0x59e629[_0xa5aa('0x30')][_0xa5aa('0x20')];var _0x21f2e5=_0x46a968===_0x59e629[_0xa5aa('0x30')][_0xa5aa('0x20')]-0x1?_0x1f6421+_0x52c68d[_0xa5aa('0x20')]+_0x2bb967[_0xa5aa('0x20')]+0x2:_0x1f6421+_0x46a968+0x1;_0x52c68d['splice'](_0x46a968,0x0,{'type':_0x271db8[_0xa5aa('0x1')],'app':_0xa5aa('0x42'),'appdata':_0x59e629['intervals'][_0x46a968]+'?'+_0x271db8['context']+_0xa5aa('0x43')+_0x304f84+':'+_0x271db8[_0xa5aa('0x3')]+',${EXTEN},'+_0x21f2e5,'exten':_0x271db8['exten'],'context':_0x271db8['context'],'priority':_0x1f6421+_0x46a968,'VoiceExtensionId':_0x271db8['id']});}if(_0x59e629[_0xa5aa('0x3c')]==='outboundDial')_0x59e629[_0xa5aa('0x44')]=_0x2840d2(_0x271db8,_0x59e629[_0xa5aa('0x44')]);_0x59e629[_0xa5aa('0x45')]=_0x52c68d[_0xa5aa('0x20')]?_[_0xa5aa('0x46')](_0x52c68d)[_0xa5aa('0x45')]+0x1:_0x1f6421;_0x3dfa0c=_['concat'](_0x3dfa0c,_0x52c68d,[_0x59e629],_0x2bb967);_0x1f6421=_['last'](_0x3dfa0c)[_0xa5aa('0x45')]+0x1;}return _0x23b86f(_0x3dfa0c);})[_0xa5aa('0x47')](function(_0x3f2119){_0x14ac91(_0x3f2119);});});}return _0x4d2ac2[_0xa5aa('0x48')](_0xa5aa('0x49'),attributes,{'tableName':'voice_extensions','paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x223bd8){var _0x6ca185=this['get']({'plain':!![]});var _0x593f5e=_0x6ca185[_0xa5aa('0x1')]===_0xa5aa('0xd')?_0x219532(_0x6ca185):_0x128d2a(_0x6ca185);return _0x225dab(_0x6ca185,_0x223bd8,_['last'](_0x593f5e)[_0xa5aa('0x45')]+0x1)['then'](function(_0x473b7c){var _0x30151d=_[_0xa5aa('0x4a')](_0x593f5e,_0x473b7c);_0x30151d['push']({'type':_0x6ca185[_0xa5aa('0x1')],'app':'Hangup','exten':_0x6ca185[_0xa5aa('0x4')],'context':_0x6ca185[_0xa5aa('0x3')],'priority':_[_0xa5aa('0x46')](_0x30151d)[_0xa5aa('0x45')]+0x1,'VoiceExtensionId':_0x6ca185['id']});return _0x30151d;});}}});};