df158dd378cd851bdbf16889a1344d63f9f27302
[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 _0x65ac=['XCALLY-MOTION-PROGRESS=1','splice','GotoIfTime',',${EXTEN},','appdata','priority','last','concat','catch','define','VoiceExtension','voice_extensions','Hangup','./voiceExtension.attributes','exports','models','type','Set','CDR(type)=','context','exten','alias','NoOp','CDR(routeAlias)=','No\x20alias\x20set','inbound','push','CDR(routeid)=','XCALLY-MOTION-ANSWER=0','outbound','CDR(type)=outbound','CDR(destination)=','${EXTEN:','${EXTEN}','ExecIf','):Goto(','cutdigits','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','outboundrouteid=','hasOwnProperty','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','wav','trunk','timeout','options','url','split','length','param','prefix','phone','SIP','join','indexOf','U(xcally-mixmonitor-context)','replace','isEmpty','interval','IntervalId','then','intervals','map','filter','toLowerCase','tag','CDR(tag)=','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):','callerID','Set(CALLERID(all)=','NoOp(No\x20number\x20available)','answer','playback','includes','appType','$[${XCALLY-MOTION-PROGRESS}=0]?Progress'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x65ac,0x100));var _0xc65a=function(_0x58afd5,_0x534a48){_0x58afd5=_0x58afd5-0x0;var _0x3e503b=_0x65ac[_0x58afd5];return _0x3e503b;};'use strict';var _=require('lodash');var attributes=require(_0xc65a('0x0'));module[_0xc65a('0x1')]=function(_0x23bc6a){var _0x513bbe=_0x23bc6a[_0xc65a('0x2')];function _0x4ac309(_0x21b561){var _0x5d98ec=0x2;var _0x3d84d6=[{'type':_0x21b561[_0xc65a('0x3')],'app':_0xc65a('0x4'),'appdata':_0xc65a('0x5')+_0x21b561[_0xc65a('0x3')],'context':_0x21b561[_0xc65a('0x6')],'exten':_0x21b561[_0xc65a('0x7')],'priority':_0x5d98ec++,'VoiceExtensionId':_0x21b561['id']},{'type':_0x21b561[_0xc65a('0x3')],'app':_0x21b561[_0xc65a('0x8')]?_0xc65a('0x4'):_0xc65a('0x9'),'appdata':_0x21b561[_0xc65a('0x8')]?_0xc65a('0xa')+_0x21b561[_0xc65a('0x8')]:_0xc65a('0xb'),'context':_0x21b561[_0xc65a('0x6')],'exten':_0x21b561[_0xc65a('0x7')],'priority':_0x5d98ec++,'VoiceExtensionId':_0x21b561['id']}];if(_0x21b561[_0xc65a('0x3')]===_0xc65a('0xc')){_0x3d84d6[_0xc65a('0xd')]({'type':_0xc65a('0xc'),'app':_0xc65a('0x4'),'appdata':_0xc65a('0xe')+_0x21b561['id'],'context':_0x21b561[_0xc65a('0x6')],'exten':_0x21b561[_0xc65a('0x7')],'priority':_0x5d98ec++,'VoiceExtensionId':_0x21b561['id']});}_0x3d84d6['push']({'type':_0x21b561[_0xc65a('0x3')],'app':_0xc65a('0x4'),'appdata':_0xc65a('0xf'),'context':_0x21b561['context'],'exten':_0x21b561['exten'],'priority':_0x5d98ec++,'VoiceExtensionId':_0x21b561['id']},{'type':_0x21b561[_0xc65a('0x3')],'app':_0xc65a('0x4'),'appdata':'XCALLY-MOTION-PROGRESS=0','context':_0x21b561[_0xc65a('0x6')],'exten':_0x21b561['exten'],'priority':_0x5d98ec++,'VoiceExtensionId':_0x21b561['id']},{'type':_0x21b561[_0xc65a('0x3')],'app':_0xc65a('0x4'),'appdata':'MONITOR_OPTIONS=ab','context':_0x21b561[_0xc65a('0x6')],'exten':_0x21b561['exten'],'priority':_0x5d98ec++,'VoiceExtensionId':_0x21b561['id']});return _0x3d84d6;}function _0x1b6821(_0x54f76e){var _0x40e039=0x2;var _0x4aae84=[{'type':_0xc65a('0x10'),'app':_0xc65a('0x4'),'appdata':_0xc65a('0x11'),'context':_0x54f76e[_0xc65a('0x6')],'exten':_0x54f76e[_0xc65a('0x7')],'priority':_0x40e039++,'VoiceExtensionId':_0x54f76e['id']},{'type':_0xc65a('0x10'),'app':_0x54f76e[_0xc65a('0x8')]?_0xc65a('0x4'):_0xc65a('0x9'),'appdata':_0x54f76e[_0xc65a('0x8')]?_0xc65a('0xa')+_0x54f76e[_0xc65a('0x8')]:'No\x20alias\x20set','context':_0x54f76e[_0xc65a('0x6')],'exten':_0x54f76e[_0xc65a('0x7')],'priority':_0x40e039++,'VoiceExtensionId':_0x54f76e['id']},{'type':_0xc65a('0x10'),'app':_0xc65a('0x4'),'appdata':_0xc65a('0x12')+(_0x54f76e['cutdigits']?_0xc65a('0x13')+_0x54f76e['cutdigits']+'}':_0xc65a('0x14')),'context':_0x54f76e[_0xc65a('0x6')],'exten':_0x54f76e[_0xc65a('0x7')],'priority':_0x40e039++,'VoiceExtensionId':_0x54f76e['id']},{'type':_0xc65a('0x10'),'app':_0xc65a('0x4'),'appdata':_0xc65a('0xe')+_0x54f76e['id'],'context':_0x54f76e[_0xc65a('0x6')],'exten':_0x54f76e[_0xc65a('0x7')],'priority':_0x40e039++,'VoiceExtensionId':_0x54f76e['id']},{'type':_0xc65a('0x10'),'app':_0xc65a('0x15'),'appdata':'$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto('+(_0x40e039+0x2)+_0xc65a('0x16')+(_0x40e039+0x1)+')','context':_0x54f76e[_0xc65a('0x6')],'exten':_0x54f76e['exten'],'priority':_0x40e039++,'VoiceExtensionId':_0x54f76e['id']},{'type':_0xc65a('0x10'),'app':_0xc65a('0x4'),'appdata':_0x54f76e[_0xc65a('0x17')]?_0xc65a('0x18')+_0x54f76e['cutdigits']+'}':_0xc65a('0x19'),'context':_0x54f76e[_0xc65a('0x6')],'exten':_0x54f76e['exten'],'priority':_0x40e039++,'VoiceExtensionId':_0x54f76e['id']},{'type':_0xc65a('0x10'),'app':_0xc65a('0x4'),'appdata':_0xc65a('0xf'),'context':_0x54f76e[_0xc65a('0x6')],'exten':_0x54f76e[_0xc65a('0x7')],'priority':_0x40e039++,'VoiceExtensionId':_0x54f76e['id']},{'type':'outbound','app':_0xc65a('0x4'),'appdata':_0xc65a('0x1a'),'context':_0x54f76e[_0xc65a('0x6')],'exten':_0x54f76e[_0xc65a('0x7')],'priority':_0x40e039++,'VoiceExtensionId':_0x54f76e['id']},{'type':_0xc65a('0x10'),'app':_0xc65a('0x4'),'appdata':_0xc65a('0x1b'),'context':_0x54f76e['context'],'exten':_0x54f76e[_0xc65a('0x7')],'priority':_0x40e039++,'VoiceExtensionId':_0x54f76e['id']},{'type':_0xc65a('0x10'),'app':_0xc65a('0x4'),'appdata':_0xc65a('0x1c')+_0x54f76e['id'],'context':_0x54f76e[_0xc65a('0x6')],'exten':_0x54f76e[_0xc65a('0x7')],'priority':_0x40e039++,'VoiceExtensionId':_0x54f76e['id']}];if(_0x54f76e[_0xc65a('0x1d')](_0xc65a('0x1e'))&&_0x54f76e['recordingFormat']!==_0xc65a('0x1f')){_0x4aae84[_0xc65a('0xd')]({'type':_0xc65a('0x10'),'app':_0xc65a('0x4'),'appdata':_0xc65a('0x20'),'context':_0x54f76e[_0xc65a('0x6')],'exten':_0x54f76e[_0xc65a('0x7')],'priority':_0x40e039++,'VoiceExtensionId':_0x54f76e['id']},{'type':_0xc65a('0x10'),'app':_0xc65a('0x4'),'appdata':_0xc65a('0x21')+_0x54f76e[_0xc65a('0x1e')]||_0xc65a('0x22'),'context':_0x54f76e[_0xc65a('0x6')],'exten':_0x54f76e[_0xc65a('0x7')],'priority':_0x40e039++,'VoiceExtensionId':_0x54f76e['id']});}return _0x4aae84;}function _0x1340db(_0x2c95af,_0x770f35){var _0x5ab435=[{'name':_0xc65a('0x23'),'param':0x0},{'name':_0xc65a('0x24'),'param':0x1},{'name':_0xc65a('0x25'),'param':0x2},{'name':_0xc65a('0x26'),'param':0x3}];var _0x141466={};var _0x2dbca4=_0x770f35[_0xc65a('0x27')](',');var _0x396ef5=[];for(var _0xa1e762=0x0;_0xa1e762<_0x5ab435[_0xc65a('0x28')];_0xa1e762++){switch(_0x5ab435[_0xa1e762]['name']){case _0xc65a('0x23'):_0x141466[_0xc65a('0x23')]=_0x2dbca4[_0x5ab435[_0xa1e762][_0xc65a('0x29')]][_0xc65a('0x27')]('/')[0x1];_0x141466['phone']=_0x2dbca4[_0x5ab435[_0xa1e762][_0xc65a('0x29')]][_0xc65a('0x27')]('/')[0x2];_0x141466[_0xc65a('0x2a')]=_0x141466[_0xc65a('0x2b')]?_0x141466[_0xc65a('0x2b')][_0xc65a('0x27')]('$')[0x0]:undefined;_0x141466[_0xc65a('0x2b')]=_0x2c95af['cutdigits']?(_0x141466[_0xc65a('0x2a')]||'')+_0xc65a('0x13')+_0x2c95af[_0xc65a('0x17')]+'}':(_0x141466[_0xc65a('0x2a')]||'')+_0xc65a('0x14');_0x396ef5[_0x5ab435[_0xa1e762]['param']]=[_0xc65a('0x2c'),_0x141466[_0xc65a('0x23')],_0x141466[_0xc65a('0x2b')]][_0xc65a('0x2d')]('/');break;case _0xc65a('0x25'):_0x141466[_0xc65a('0x25')]=_0x2dbca4[_0x5ab435[_0xa1e762][_0xc65a('0x29')]];if(_0x2c95af[_0xc65a('0x1e')]!==_0xc65a('0x1f')){if(_0x141466['options'][_0xc65a('0x2e')](_0xc65a('0x2f'))<0x0){_0x141466[_0xc65a('0x25')]+=_0xc65a('0x2f');}}else{_0x141466['options']=_0x141466[_0xc65a('0x25')][_0xc65a('0x30')](_0xc65a('0x2f'),'');}_0x396ef5[_0x5ab435[_0xa1e762][_0xc65a('0x29')]]=_0x141466[_0xc65a('0x25')];break;default:_0x396ef5[_0x5ab435[_0xa1e762][_0xc65a('0x29')]]=_0x2dbca4[_0x5ab435[_0xa1e762]['param']];}}return _0x396ef5['join'](',');}function _0x378973(_0x4ce800,_0x12a100,_0x5eef5e){return new Promise(function(_0x13adb2,_0x2df8a5){var _0x4db4ac=[];if(_[_0xc65a('0x31')](_0x12a100))return _0x13adb2(_0x4db4ac);_0x513bbe['Interval']['findAll']({'attributes':['id',_0xc65a('0x32'),_0xc65a('0x33')],'raw':!![]})[_0xc65a('0x34')](function(_0x40116d){for(var _0x950c56=0x0,_0x193af7=0x0;_0x950c56<_0x12a100[_0xc65a('0x28')];_0x950c56++,_0x193af7=0x0){var _0x24baeb=_0x12a100[_0x950c56];var _0x25992d=[];var _0x41696b=[];delete _0x24baeb['id'];if(_0x24baeb[_0xc65a('0x32')]!=='*,*,*,*'){_0x24baeb[_0xc65a('0x35')]=[_0x24baeb[_0xc65a('0x32')]];}else{_0x24baeb['intervals']=_0x24baeb[_0xc65a('0x33')]?_[_0xc65a('0x36')](_[_0xc65a('0x37')](_0x40116d,{'IntervalId':_0x24baeb[_0xc65a('0x33')]}),_0xc65a('0x32')):[];}_0x24baeb[_0xc65a('0x6')]=_0x4ce800[_0xc65a('0x6')];_0x24baeb[_0xc65a('0x7')]=_0x4ce800[_0xc65a('0x7')];if(_0x24baeb[_0xc65a('0x3')])_0x24baeb['type']=_0x24baeb[_0xc65a('0x3')][_0xc65a('0x38')]();if(_0x4ce800[_0xc65a('0x3')]==='outbound'){if(_0x24baeb[_0xc65a('0x1d')]('tag')&&_0x24baeb[_0xc65a('0x39')]&&_0x24baeb[_0xc65a('0x39')]!=='--'){_0x25992d['push']({'type':_0x24baeb[_0xc65a('0x3')][_0xc65a('0x38')](),'app':'Set','appdata':_0xc65a('0x3a')+_0x24baeb[_0xc65a('0x39')],'context':_0x4ce800['context'],'exten':_0x4ce800[_0xc65a('0x7')],'priority':_0x24baeb[_0xc65a('0x35')][_0xc65a('0x28')]+_0x5eef5e+_0x193af7++,'VoiceExtensionId':_0x4ce800['id']});}_0x25992d['push']({'type':_0x24baeb['type'][_0xc65a('0x38')](),'app':_0xc65a('0x15'),'appdata':_0xc65a('0x3b')+(_0x24baeb[_0xc65a('0x3c')]?_0xc65a('0x3d')+_0x24baeb[_0xc65a('0x3c')]+')':_0xc65a('0x3e')),'context':_0x4ce800['context'],'exten':_0x4ce800[_0xc65a('0x7')],'priority':_0x24baeb[_0xc65a('0x35')][_0xc65a('0x28')]+_0x5eef5e+_0x193af7++,'VoiceExtensionId':_0x4ce800['id']});}else{if(_0x24baeb[_0xc65a('0x1d')](_0xc65a('0x3f'))){if(['queue',_0xc65a('0x40')][_0xc65a('0x41')](_0x24baeb['app'][_0xc65a('0x38')]())&&_0x24baeb[_0xc65a('0x42')]!=='custom'){if(_0x24baeb[_0xc65a('0x3f')]){_0x25992d['push']({'type':_0x24baeb[_0xc65a('0x3')][_0xc65a('0x38')](),'app':'ExecIf','appdata':'$[${XCALLY-MOTION-ANSWER}=0]?Answer','context':_0x4ce800[_0xc65a('0x6')],'exten':_0x4ce800[_0xc65a('0x7')],'priority':_0x24baeb[_0xc65a('0x35')]['length']+_0x5eef5e+_0x193af7++,'VoiceExtensionId':_0x4ce800['id']});_0x25992d['push']({'type':_0x24baeb['type'][_0xc65a('0x38')](),'app':_0xc65a('0x4'),'appdata':'XCALLY-MOTION-ANSWER=1','context':_0x4ce800[_0xc65a('0x6')],'exten':_0x4ce800[_0xc65a('0x7')],'priority':_0x24baeb[_0xc65a('0x35')]['length']+_0x5eef5e+_0x193af7++,'VoiceExtensionId':_0x4ce800['id']});}else{_0x25992d[_0xc65a('0xd')]({'type':_0x24baeb[_0xc65a('0x3')][_0xc65a('0x38')](),'app':_0xc65a('0x15'),'appdata':_0xc65a('0x43'),'context':_0x4ce800[_0xc65a('0x6')],'exten':_0x4ce800['exten'],'priority':_0x24baeb['intervals'][_0xc65a('0x28')]+_0x5eef5e+_0x193af7++,'VoiceExtensionId':_0x4ce800['id']});_0x25992d[_0xc65a('0xd')]({'type':_0x24baeb['type'][_0xc65a('0x38')](),'app':_0xc65a('0x4'),'appdata':_0xc65a('0x44'),'context':_0x4ce800['context'],'exten':_0x4ce800[_0xc65a('0x7')],'priority':_0x24baeb[_0xc65a('0x35')][_0xc65a('0x28')]+_0x5eef5e+_0x193af7++,'VoiceExtensionId':_0x4ce800['id']});}}}}for(var _0x287c91=0x0;_0x287c91<_0x24baeb[_0xc65a('0x35')][_0xc65a('0x28')];_0x287c91++){var _0x56a19e=_0x5eef5e+_0x24baeb[_0xc65a('0x35')][_0xc65a('0x28')];var _0x5db8c5=_0x287c91===_0x24baeb[_0xc65a('0x35')][_0xc65a('0x28')]-0x1?_0x5eef5e+_0x25992d[_0xc65a('0x28')]+_0x41696b[_0xc65a('0x28')]+0x2:_0x5eef5e+_0x287c91+0x1;_0x25992d[_0xc65a('0x45')](_0x287c91,0x0,{'type':_0x4ce800['type'],'app':_0xc65a('0x46'),'appdata':_0x24baeb['intervals'][_0x287c91]+'?'+_0x4ce800[_0xc65a('0x6')]+',${EXTEN},'+_0x56a19e+':'+_0x4ce800[_0xc65a('0x6')]+_0xc65a('0x47')+_0x5db8c5,'exten':_0x4ce800[_0xc65a('0x7')],'context':_0x4ce800['context'],'priority':_0x5eef5e+_0x287c91,'VoiceExtensionId':_0x4ce800['id']});}if(_0x24baeb[_0xc65a('0x42')]==='outboundDial')_0x24baeb[_0xc65a('0x48')]=_0x1340db(_0x4ce800,_0x24baeb[_0xc65a('0x48')]);_0x24baeb[_0xc65a('0x49')]=_0x25992d[_0xc65a('0x28')]?_[_0xc65a('0x4a')](_0x25992d)[_0xc65a('0x49')]+0x1:_0x5eef5e;_0x4db4ac=_[_0xc65a('0x4b')](_0x4db4ac,_0x25992d,[_0x24baeb],_0x41696b);_0x5eef5e=_['last'](_0x4db4ac)[_0xc65a('0x49')]+0x1;}return _0x13adb2(_0x4db4ac);})[_0xc65a('0x4c')](function(_0x23b73d){_0x2df8a5(_0x23b73d);});});}return _0x23bc6a[_0xc65a('0x4d')](_0xc65a('0x4e'),attributes,{'tableName':_0xc65a('0x4f'),'paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x12d4df){var _0xd29bef=this['get']({'plain':!![]});var _0x4f377f=_0xd29bef['type']===_0xc65a('0x10')?_0x1b6821(_0xd29bef):_0x4ac309(_0xd29bef);return _0x378973(_0xd29bef,_0x12d4df,_['last'](_0x4f377f)['priority']+0x1)[_0xc65a('0x34')](function(_0x45c1b7){var _0x45356b=_[_0xc65a('0x4b')](_0x4f377f,_0x45c1b7);_0x45356b['push']({'type':_0xd29bef[_0xc65a('0x3')],'app':_0xc65a('0x50'),'exten':_0xd29bef['exten'],'context':_0xd29bef[_0xc65a('0x6')],'priority':_[_0xc65a('0x4a')](_0x45356b)[_0xc65a('0x49')]+0x1,'VoiceExtensionId':_0xd29bef['id']});return _0x45356b;});}}});};