Built motion from commit d9028345.|2.5.43
[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 _0x3561=['${EXTEN:','CDR(routeid)=','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','outboundrouteid=','hasOwnProperty','recordingFormat','none','_XCALLY_MIXMONITOR_FORMAT=','wav','trunk','timeout','url','split','name','param','phone','prefix','${EXTEN}','SIP','join','options','indexOf','U(xcally-mixmonitor-context)','replace','Interval','interval','IntervalId','then','*,*,*,*','intervals','filter','tag','toLowerCase','CDR(tag)=','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):','callerID','NoOp(No\x20number\x20available)','length','queue','playback','includes','app','appType','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','XCALLY-MOTION-PROGRESS=1','splice','GotoIfTime',',${EXTEN},','outboundDial','appdata','priority','last','concat','catch','define','VoiceExtension','voice_extensions','get','lodash','exports','models','type','Set','CDR(type)=','context','alias','CDR(routeAlias)=','inbound','exten','push','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','outbound','CDR(type)=outbound','NoOp','CDR(destination)=','cutdigits'];(function(_0x3c062c,_0x46fd84){var _0x7fe956=function(_0xcd611a){while(--_0xcd611a){_0x3c062c['push'](_0x3c062c['shift']());}};_0x7fe956(++_0x46fd84);}(_0x3561,0x94));var _0x1356=function(_0x335070,_0x228ae9){_0x335070=_0x335070-0x0;var _0xbd9325=_0x3561[_0x335070];return _0xbd9325;};'use strict';var _=require(_0x1356('0x0'));var attributes=require('./voiceExtension.attributes');module[_0x1356('0x1')]=function(_0x23a086){var _0x8ef5f=_0x23a086[_0x1356('0x2')];function _0x442fbc(_0x313999){var _0x1634de=0x2;var _0x116ff0=[{'type':_0x313999[_0x1356('0x3')],'app':_0x1356('0x4'),'appdata':_0x1356('0x5')+_0x313999[_0x1356('0x3')],'context':_0x313999[_0x1356('0x6')],'exten':_0x313999['exten'],'priority':_0x1634de++,'VoiceExtensionId':_0x313999['id']},{'type':_0x313999[_0x1356('0x3')],'app':_0x313999[_0x1356('0x7')]?_0x1356('0x4'):'NoOp','appdata':_0x313999['alias']?_0x1356('0x8')+_0x313999[_0x1356('0x7')]:'No\x20alias\x20set','context':_0x313999[_0x1356('0x6')],'exten':_0x313999['exten'],'priority':_0x1634de++,'VoiceExtensionId':_0x313999['id']}];if(_0x313999[_0x1356('0x3')]===_0x1356('0x9')){_0x116ff0['push']({'type':_0x1356('0x9'),'app':_0x1356('0x4'),'appdata':'CDR(routeid)='+_0x313999['id'],'context':_0x313999[_0x1356('0x6')],'exten':_0x313999[_0x1356('0xa')],'priority':_0x1634de++,'VoiceExtensionId':_0x313999['id']});}_0x116ff0[_0x1356('0xb')]({'type':_0x313999[_0x1356('0x3')],'app':_0x1356('0x4'),'appdata':_0x1356('0xc'),'context':_0x313999[_0x1356('0x6')],'exten':_0x313999[_0x1356('0xa')],'priority':_0x1634de++,'VoiceExtensionId':_0x313999['id']},{'type':_0x313999[_0x1356('0x3')],'app':_0x1356('0x4'),'appdata':_0x1356('0xd'),'context':_0x313999[_0x1356('0x6')],'exten':_0x313999[_0x1356('0xa')],'priority':_0x1634de++,'VoiceExtensionId':_0x313999['id']},{'type':_0x313999['type'],'app':'Set','appdata':_0x1356('0xe'),'context':_0x313999[_0x1356('0x6')],'exten':_0x313999[_0x1356('0xa')],'priority':_0x1634de++,'VoiceExtensionId':_0x313999['id']});return _0x116ff0;}function _0x5cecb2(_0x23a1ef){var _0x3645c0=0x2;var _0x39f708=[{'type':_0x1356('0xf'),'app':_0x1356('0x4'),'appdata':_0x1356('0x10'),'context':_0x23a1ef[_0x1356('0x6')],'exten':_0x23a1ef[_0x1356('0xa')],'priority':_0x3645c0++,'VoiceExtensionId':_0x23a1ef['id']},{'type':_0x1356('0xf'),'app':_0x23a1ef[_0x1356('0x7')]?_0x1356('0x4'):_0x1356('0x11'),'appdata':_0x23a1ef[_0x1356('0x7')]?'CDR(routeAlias)='+_0x23a1ef[_0x1356('0x7')]:'No\x20alias\x20set','context':_0x23a1ef[_0x1356('0x6')],'exten':_0x23a1ef['exten'],'priority':_0x3645c0++,'VoiceExtensionId':_0x23a1ef['id']},{'type':_0x1356('0xf'),'app':_0x1356('0x4'),'appdata':_0x1356('0x12')+(_0x23a1ef[_0x1356('0x13')]?_0x1356('0x14')+_0x23a1ef[_0x1356('0x13')]+'}':'${EXTEN}'),'context':_0x23a1ef[_0x1356('0x6')],'exten':_0x23a1ef[_0x1356('0xa')],'priority':_0x3645c0++,'VoiceExtensionId':_0x23a1ef['id']},{'type':'outbound','app':_0x1356('0x4'),'appdata':_0x1356('0x15')+_0x23a1ef['id'],'context':_0x23a1ef[_0x1356('0x6')],'exten':_0x23a1ef['exten'],'priority':_0x3645c0++,'VoiceExtensionId':_0x23a1ef['id']},{'type':_0x1356('0xf'),'app':_0x1356('0x16'),'appdata':_0x1356('0x17')+(_0x3645c0+0x2)+_0x1356('0x18')+(_0x3645c0+0x1)+')','context':_0x23a1ef['context'],'exten':_0x23a1ef['exten'],'priority':_0x3645c0++,'VoiceExtensionId':_0x23a1ef['id']},{'type':_0x1356('0xf'),'app':'Set','appdata':_0x23a1ef[_0x1356('0x13')]?_0x1356('0x19')+_0x23a1ef[_0x1356('0x13')]+'}':_0x1356('0x1a'),'context':_0x23a1ef[_0x1356('0x6')],'exten':_0x23a1ef['exten'],'priority':_0x3645c0++,'VoiceExtensionId':_0x23a1ef['id']},{'type':_0x1356('0xf'),'app':_0x1356('0x4'),'appdata':_0x1356('0xc'),'context':_0x23a1ef[_0x1356('0x6')],'exten':_0x23a1ef[_0x1356('0xa')],'priority':_0x3645c0++,'VoiceExtensionId':_0x23a1ef['id']},{'type':_0x1356('0xf'),'app':'Set','appdata':_0x1356('0xd'),'context':_0x23a1ef['context'],'exten':_0x23a1ef[_0x1356('0xa')],'priority':_0x3645c0++,'VoiceExtensionId':_0x23a1ef['id']},{'type':'outbound','app':'Set','appdata':_0x1356('0xe'),'context':_0x23a1ef[_0x1356('0x6')],'exten':_0x23a1ef['exten'],'priority':_0x3645c0++,'VoiceExtensionId':_0x23a1ef['id']},{'type':_0x1356('0xf'),'app':_0x1356('0x4'),'appdata':_0x1356('0x1b')+_0x23a1ef['id'],'context':_0x23a1ef[_0x1356('0x6')],'exten':_0x23a1ef[_0x1356('0xa')],'priority':_0x3645c0++,'VoiceExtensionId':_0x23a1ef['id']}];if(_0x23a1ef[_0x1356('0x1c')](_0x1356('0x1d'))&&_0x23a1ef['recordingFormat']!==_0x1356('0x1e')){_0x39f708[_0x1356('0xb')]({'type':_0x1356('0xf'),'app':_0x1356('0x4'),'appdata':'_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','context':_0x23a1ef[_0x1356('0x6')],'exten':_0x23a1ef[_0x1356('0xa')],'priority':_0x3645c0++,'VoiceExtensionId':_0x23a1ef['id']},{'type':_0x1356('0xf'),'app':_0x1356('0x4'),'appdata':_0x1356('0x1f')+_0x23a1ef['recordingFormat']||_0x1356('0x20'),'context':_0x23a1ef['context'],'exten':_0x23a1ef[_0x1356('0xa')],'priority':_0x3645c0++,'VoiceExtensionId':_0x23a1ef['id']});}return _0x39f708;}function _0x438260(_0x36ee41,_0x2acf0d){var _0x39e321=[{'name':_0x1356('0x21'),'param':0x0},{'name':_0x1356('0x22'),'param':0x1},{'name':'options','param':0x2},{'name':_0x1356('0x23'),'param':0x3}];var _0x1d206d={};var _0x198291=_0x2acf0d[_0x1356('0x24')](',');var _0x57c1ff=[];for(var _0x1ea4b4=0x0;_0x1ea4b4<_0x39e321['length'];_0x1ea4b4++){switch(_0x39e321[_0x1ea4b4][_0x1356('0x25')]){case'trunk':_0x1d206d[_0x1356('0x21')]=_0x198291[_0x39e321[_0x1ea4b4][_0x1356('0x26')]]['split']('/')[0x1];_0x1d206d[_0x1356('0x27')]=_0x198291[_0x39e321[_0x1ea4b4]['param']][_0x1356('0x24')]('/')[0x2];_0x1d206d[_0x1356('0x28')]=_0x1d206d[_0x1356('0x27')]?_0x1d206d[_0x1356('0x27')]['split']('$')[0x0]:undefined;_0x1d206d[_0x1356('0x27')]=_0x36ee41['cutdigits']?(_0x1d206d[_0x1356('0x28')]||'')+_0x1356('0x14')+_0x36ee41[_0x1356('0x13')]+'}':(_0x1d206d[_0x1356('0x28')]||'')+_0x1356('0x29');_0x57c1ff[_0x39e321[_0x1ea4b4][_0x1356('0x26')]]=[_0x1356('0x2a'),_0x1d206d[_0x1356('0x21')],_0x1d206d[_0x1356('0x27')]][_0x1356('0x2b')]('/');break;case _0x1356('0x2c'):_0x1d206d[_0x1356('0x2c')]=_0x198291[_0x39e321[_0x1ea4b4][_0x1356('0x26')]];if(_0x36ee41[_0x1356('0x1d')]!=='none'){if(_0x1d206d[_0x1356('0x2c')][_0x1356('0x2d')](_0x1356('0x2e'))<0x0){_0x1d206d[_0x1356('0x2c')]+=_0x1356('0x2e');}}else{_0x1d206d[_0x1356('0x2c')]=_0x1d206d[_0x1356('0x2c')][_0x1356('0x2f')]('U(xcally-mixmonitor-context)','');}_0x57c1ff[_0x39e321[_0x1ea4b4]['param']]=_0x1d206d[_0x1356('0x2c')];break;default:_0x57c1ff[_0x39e321[_0x1ea4b4][_0x1356('0x26')]]=_0x198291[_0x39e321[_0x1ea4b4]['param']];}}return _0x57c1ff[_0x1356('0x2b')](',');}function _0x3615b9(_0x2aaddb,_0x185116,_0x2c608c){return new Promise(function(_0x4ab592,_0x30d2c3){var _0x2680d7=[];if(_['isEmpty'](_0x185116))return _0x4ab592(_0x2680d7);_0x8ef5f[_0x1356('0x30')]['findAll']({'attributes':['id',_0x1356('0x31'),_0x1356('0x32')],'raw':!![]})[_0x1356('0x33')](function(_0x1ead19){for(var _0x443d49=0x0,_0x5e39fe=0x0;_0x443d49<_0x185116['length'];_0x443d49++,_0x5e39fe=0x0){var _0x3338f1=_0x185116[_0x443d49];var _0x186908=[];var _0x416708=[];delete _0x3338f1['id'];if(_0x3338f1[_0x1356('0x31')]!==_0x1356('0x34')){_0x3338f1[_0x1356('0x35')]=[_0x3338f1['interval']];}else{_0x3338f1[_0x1356('0x35')]=_0x3338f1['IntervalId']?_['map'](_[_0x1356('0x36')](_0x1ead19,{'IntervalId':_0x3338f1[_0x1356('0x32')]}),_0x1356('0x31')):[];}_0x3338f1[_0x1356('0x6')]=_0x2aaddb['context'];_0x3338f1[_0x1356('0xa')]=_0x2aaddb[_0x1356('0xa')];if(_0x3338f1[_0x1356('0x3')])_0x3338f1[_0x1356('0x3')]=_0x3338f1['type']['toLowerCase']();if(_0x2aaddb[_0x1356('0x3')]===_0x1356('0xf')){if(_0x3338f1[_0x1356('0x1c')](_0x1356('0x37'))&&_0x3338f1[_0x1356('0x37')]&&_0x3338f1[_0x1356('0x37')]!=='--'){_0x186908['push']({'type':_0x3338f1[_0x1356('0x3')][_0x1356('0x38')](),'app':'Set','appdata':_0x1356('0x39')+_0x3338f1[_0x1356('0x37')],'context':_0x2aaddb[_0x1356('0x6')],'exten':_0x2aaddb[_0x1356('0xa')],'priority':_0x3338f1['intervals']['length']+_0x2c608c+_0x5e39fe++,'VoiceExtensionId':_0x2aaddb['id']});}_0x186908['push']({'type':_0x3338f1[_0x1356('0x3')]['toLowerCase'](),'app':_0x1356('0x16'),'appdata':_0x1356('0x3a')+(_0x3338f1[_0x1356('0x3b')]?'Set(CALLERID(all)='+_0x3338f1[_0x1356('0x3b')]+')':_0x1356('0x3c')),'context':_0x2aaddb[_0x1356('0x6')],'exten':_0x2aaddb[_0x1356('0xa')],'priority':_0x3338f1[_0x1356('0x35')][_0x1356('0x3d')]+_0x2c608c+_0x5e39fe++,'VoiceExtensionId':_0x2aaddb['id']});}else{if(_0x3338f1['hasOwnProperty']('answer')){if([_0x1356('0x3e'),_0x1356('0x3f')][_0x1356('0x40')](_0x3338f1[_0x1356('0x41')][_0x1356('0x38')]())&&_0x3338f1[_0x1356('0x42')]!==_0x1356('0x43')){if(_0x3338f1['answer']){_0x186908[_0x1356('0xb')]({'type':_0x3338f1[_0x1356('0x3')]['toLowerCase'](),'app':'ExecIf','appdata':_0x1356('0x44'),'context':_0x2aaddb[_0x1356('0x6')],'exten':_0x2aaddb[_0x1356('0xa')],'priority':_0x3338f1[_0x1356('0x35')][_0x1356('0x3d')]+_0x2c608c+_0x5e39fe++,'VoiceExtensionId':_0x2aaddb['id']});_0x186908[_0x1356('0xb')]({'type':_0x3338f1[_0x1356('0x3')]['toLowerCase'](),'app':'Set','appdata':_0x1356('0x45'),'context':_0x2aaddb[_0x1356('0x6')],'exten':_0x2aaddb[_0x1356('0xa')],'priority':_0x3338f1[_0x1356('0x35')]['length']+_0x2c608c+_0x5e39fe++,'VoiceExtensionId':_0x2aaddb['id']});}else{_0x186908[_0x1356('0xb')]({'type':_0x3338f1[_0x1356('0x3')][_0x1356('0x38')](),'app':_0x1356('0x16'),'appdata':'$[${XCALLY-MOTION-PROGRESS}=0]?Progress','context':_0x2aaddb[_0x1356('0x6')],'exten':_0x2aaddb['exten'],'priority':_0x3338f1[_0x1356('0x35')][_0x1356('0x3d')]+_0x2c608c+_0x5e39fe++,'VoiceExtensionId':_0x2aaddb['id']});_0x186908[_0x1356('0xb')]({'type':_0x3338f1[_0x1356('0x3')][_0x1356('0x38')](),'app':_0x1356('0x4'),'appdata':_0x1356('0x46'),'context':_0x2aaddb[_0x1356('0x6')],'exten':_0x2aaddb[_0x1356('0xa')],'priority':_0x3338f1['intervals'][_0x1356('0x3d')]+_0x2c608c+_0x5e39fe++,'VoiceExtensionId':_0x2aaddb['id']});}}}}for(var _0x21d280=0x0;_0x21d280<_0x3338f1[_0x1356('0x35')]['length'];_0x21d280++){var _0x3f2a4d=_0x2c608c+_0x3338f1[_0x1356('0x35')][_0x1356('0x3d')];var _0xc852e8=_0x21d280===_0x3338f1['intervals'][_0x1356('0x3d')]-0x1?_0x2c608c+_0x186908[_0x1356('0x3d')]+_0x416708[_0x1356('0x3d')]+0x2:_0x2c608c+_0x21d280+0x1;_0x186908[_0x1356('0x47')](_0x21d280,0x0,{'type':_0x2aaddb[_0x1356('0x3')],'app':_0x1356('0x48'),'appdata':_0x3338f1[_0x1356('0x35')][_0x21d280]+'?'+_0x2aaddb[_0x1356('0x6')]+',${EXTEN},'+_0x3f2a4d+':'+_0x2aaddb['context']+_0x1356('0x49')+_0xc852e8,'exten':_0x2aaddb['exten'],'context':_0x2aaddb[_0x1356('0x6')],'priority':_0x2c608c+_0x21d280,'VoiceExtensionId':_0x2aaddb['id']});}if(_0x3338f1['appType']===_0x1356('0x4a'))_0x3338f1[_0x1356('0x4b')]=_0x438260(_0x2aaddb,_0x3338f1['appdata']);_0x3338f1[_0x1356('0x4c')]=_0x186908[_0x1356('0x3d')]?_[_0x1356('0x4d')](_0x186908)[_0x1356('0x4c')]+0x1:_0x2c608c;_0x2680d7=_[_0x1356('0x4e')](_0x2680d7,_0x186908,[_0x3338f1],_0x416708);_0x2c608c=_[_0x1356('0x4d')](_0x2680d7)[_0x1356('0x4c')]+0x1;}return _0x4ab592(_0x2680d7);})[_0x1356('0x4f')](function(_0x594792){_0x30d2c3(_0x594792);});});}return _0x23a086[_0x1356('0x50')](_0x1356('0x51'),attributes,{'tableName':_0x1356('0x52'),'paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x20ab6e){var _0x139072=this[_0x1356('0x53')]({'plain':!![]});var _0x590483=_0x139072[_0x1356('0x3')]===_0x1356('0xf')?_0x5cecb2(_0x139072):_0x442fbc(_0x139072);return _0x3615b9(_0x139072,_0x20ab6e,_['last'](_0x590483)[_0x1356('0x4c')]+0x1)[_0x1356('0x33')](function(_0x54a3c5){var _0x13174b=_[_0x1356('0x4e')](_0x590483,_0x54a3c5);_0x13174b[_0x1356('0xb')]({'type':_0x139072['type'],'app':'Hangup','exten':_0x139072[_0x1356('0xa')],'context':_0x139072['context'],'priority':_[_0x1356('0x4d')](_0x13174b)['priority']+0x1,'VoiceExtensionId':_0x139072['id']});return _0x13174b;});}}});};