2f879974f2e86c45a292291d1d12bbae9fda8009
[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 _0x5d87=['split','prefix','${EXTEN}','SIP','join','U(xcally-mixmonitor-context)','isEmpty','findAll','interval','*,*,*,*','filter','IntervalId','toLowerCase','CDR(tag)=','tag','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):','callerID','Set(CALLERID(all)=','NoOp(No\x20number\x20available)','intervals','answer','queue','playback','includes','app','appType','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','splice',',${EXTEN},','appdata','last','concat','priority','catch','define','VoiceExtension','voice_extensions','get','then','lodash','./voiceExtension.attributes','exports','models','type','Set','CDR(type)=','context','exten','alias','CDR(routeAlias)=','inbound','push','CDR(routeid)=','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','outbound','CDR(type)=outbound','CDR(destination)=','cutdigits','${EXTEN:','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=${EXTEN:0:','hasOwnProperty','recordingFormat','none','_XCALLY_MIXMONITOR_FORMAT=','wav','options','url','length','name','trunk','param','phone'];(function(_0x3df3ea,_0x2ba8b9){var _0x24ef0c=function(_0x5d9c5c){while(--_0x5d9c5c){_0x3df3ea['push'](_0x3df3ea['shift']());}};_0x24ef0c(++_0x2ba8b9);}(_0x5d87,0x16b));var _0x75d8=function(_0x23fce0,_0x1d55a6){_0x23fce0=_0x23fce0-0x0;var _0xd06946=_0x5d87[_0x23fce0];return _0xd06946;};'use strict';var _=require(_0x75d8('0x0'));var attributes=require(_0x75d8('0x1'));module[_0x75d8('0x2')]=function(_0x20f009){var _0x244b76=_0x20f009[_0x75d8('0x3')];function _0x59aced(_0x286986){var _0x2c7f0e=0x2;var _0x498621=[{'type':_0x286986[_0x75d8('0x4')],'app':_0x75d8('0x5'),'appdata':_0x75d8('0x6')+_0x286986[_0x75d8('0x4')],'context':_0x286986[_0x75d8('0x7')],'exten':_0x286986[_0x75d8('0x8')],'priority':_0x2c7f0e++,'VoiceExtensionId':_0x286986['id']},{'type':_0x286986[_0x75d8('0x4')],'app':_0x286986[_0x75d8('0x9')]?'Set':'NoOp','appdata':_0x286986['alias']?_0x75d8('0xa')+_0x286986[_0x75d8('0x9')]:'No\x20alias\x20set','context':_0x286986[_0x75d8('0x7')],'exten':_0x286986[_0x75d8('0x8')],'priority':_0x2c7f0e++,'VoiceExtensionId':_0x286986['id']}];if(_0x286986[_0x75d8('0x4')]===_0x75d8('0xb')){_0x498621[_0x75d8('0xc')]({'type':_0x75d8('0xb'),'app':_0x75d8('0x5'),'appdata':_0x75d8('0xd')+_0x286986['id'],'context':_0x286986[_0x75d8('0x7')],'exten':_0x286986[_0x75d8('0x8')],'priority':_0x2c7f0e++,'VoiceExtensionId':_0x286986['id']});}_0x498621['push']({'type':_0x286986[_0x75d8('0x4')],'app':'Set','appdata':_0x75d8('0xe'),'context':_0x286986[_0x75d8('0x7')],'exten':_0x286986['exten'],'priority':_0x2c7f0e++,'VoiceExtensionId':_0x286986['id']},{'type':_0x286986['type'],'app':_0x75d8('0x5'),'appdata':_0x75d8('0xf'),'context':_0x286986['context'],'exten':_0x286986['exten'],'priority':_0x2c7f0e++,'VoiceExtensionId':_0x286986['id']},{'type':_0x286986[_0x75d8('0x4')],'app':'Set','appdata':'MONITOR_OPTIONS=ab','context':_0x286986[_0x75d8('0x7')],'exten':_0x286986['exten'],'priority':_0x2c7f0e++,'VoiceExtensionId':_0x286986['id']});return _0x498621;}function _0x180916(_0x346f38){var _0x216201=0x2;var _0x23350b=[{'type':_0x75d8('0x10'),'app':'Set','appdata':_0x75d8('0x11'),'context':_0x346f38['context'],'exten':_0x346f38[_0x75d8('0x8')],'priority':_0x216201++,'VoiceExtensionId':_0x346f38['id']},{'type':_0x75d8('0x10'),'app':_0x346f38[_0x75d8('0x9')]?_0x75d8('0x5'):'NoOp','appdata':_0x346f38[_0x75d8('0x9')]?_0x75d8('0xa')+_0x346f38[_0x75d8('0x9')]:'No\x20alias\x20set','context':_0x346f38[_0x75d8('0x7')],'exten':_0x346f38[_0x75d8('0x8')],'priority':_0x216201++,'VoiceExtensionId':_0x346f38['id']},{'type':_0x75d8('0x10'),'app':_0x75d8('0x5'),'appdata':_0x75d8('0x12')+(_0x346f38[_0x75d8('0x13')]?_0x75d8('0x14')+_0x346f38['cutdigits']+'}':'${EXTEN}'),'context':_0x346f38[_0x75d8('0x7')],'exten':_0x346f38['exten'],'priority':_0x216201++,'VoiceExtensionId':_0x346f38['id']},{'type':'outbound','app':_0x75d8('0x5'),'appdata':_0x75d8('0xd')+_0x346f38['id'],'context':_0x346f38['context'],'exten':_0x346f38['exten'],'priority':_0x216201++,'VoiceExtensionId':_0x346f38['id']},{'type':'outbound','app':_0x75d8('0x15'),'appdata':_0x75d8('0x16')+(_0x216201+0x2)+_0x75d8('0x17')+(_0x216201+0x1)+')','context':_0x346f38[_0x75d8('0x7')],'exten':_0x346f38[_0x75d8('0x8')],'priority':_0x216201++,'VoiceExtensionId':_0x346f38['id']},{'type':'outbound','app':'Set','appdata':_0x346f38[_0x75d8('0x13')]?_0x75d8('0x18')+_0x346f38[_0x75d8('0x13')]+'}':'CDR(prefix)=noprefix','context':_0x346f38[_0x75d8('0x7')],'exten':_0x346f38[_0x75d8('0x8')],'priority':_0x216201++,'VoiceExtensionId':_0x346f38['id']},{'type':_0x75d8('0x10'),'app':_0x75d8('0x5'),'appdata':'XCALLY-MOTION-ANSWER=0','context':_0x346f38[_0x75d8('0x7')],'exten':_0x346f38[_0x75d8('0x8')],'priority':_0x216201++,'VoiceExtensionId':_0x346f38['id']},{'type':_0x75d8('0x10'),'app':_0x75d8('0x5'),'appdata':_0x75d8('0xf'),'context':_0x346f38['context'],'exten':_0x346f38[_0x75d8('0x8')],'priority':_0x216201++,'VoiceExtensionId':_0x346f38['id']},{'type':_0x75d8('0x10'),'app':_0x75d8('0x5'),'appdata':'MONITOR_OPTIONS=ab','context':_0x346f38[_0x75d8('0x7')],'exten':_0x346f38[_0x75d8('0x8')],'priority':_0x216201++,'VoiceExtensionId':_0x346f38['id']},{'type':_0x75d8('0x10'),'app':_0x75d8('0x5'),'appdata':'outboundrouteid='+_0x346f38['id'],'context':_0x346f38['context'],'exten':_0x346f38[_0x75d8('0x8')],'priority':_0x216201++,'VoiceExtensionId':_0x346f38['id']}];if(_0x346f38[_0x75d8('0x19')](_0x75d8('0x1a'))&&_0x346f38['recordingFormat']!==_0x75d8('0x1b')){_0x23350b[_0x75d8('0xc')]({'type':_0x75d8('0x10'),'app':_0x75d8('0x5'),'appdata':'_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','context':_0x346f38['context'],'exten':_0x346f38[_0x75d8('0x8')],'priority':_0x216201++,'VoiceExtensionId':_0x346f38['id']},{'type':'outbound','app':'Set','appdata':_0x75d8('0x1c')+_0x346f38[_0x75d8('0x1a')]||_0x75d8('0x1d'),'context':_0x346f38[_0x75d8('0x7')],'exten':_0x346f38[_0x75d8('0x8')],'priority':_0x216201++,'VoiceExtensionId':_0x346f38['id']});}return _0x23350b;}function _0x51bbb1(_0x4b45a7,_0x27a910){var _0x5acee0=[{'name':'trunk','param':0x0},{'name':'timeout','param':0x1},{'name':_0x75d8('0x1e'),'param':0x2},{'name':_0x75d8('0x1f'),'param':0x3}];var _0xdca5b={};var _0x223074=_0x27a910['split'](',');var _0x20e670=[];for(var _0x22af19=0x0;_0x22af19<_0x5acee0[_0x75d8('0x20')];_0x22af19++){switch(_0x5acee0[_0x22af19][_0x75d8('0x21')]){case _0x75d8('0x22'):_0xdca5b[_0x75d8('0x22')]=_0x223074[_0x5acee0[_0x22af19][_0x75d8('0x23')]]['split']('/')[0x1];_0xdca5b[_0x75d8('0x24')]=_0x223074[_0x5acee0[_0x22af19]['param']][_0x75d8('0x25')]('/')[0x2];_0xdca5b[_0x75d8('0x26')]=_0xdca5b['phone']?_0xdca5b['phone'][_0x75d8('0x25')]('$')[0x0]:undefined;_0xdca5b[_0x75d8('0x24')]=_0x4b45a7[_0x75d8('0x13')]?(_0xdca5b[_0x75d8('0x26')]||'')+_0x75d8('0x14')+_0x4b45a7[_0x75d8('0x13')]+'}':(_0xdca5b['prefix']||'')+_0x75d8('0x27');_0x20e670[_0x5acee0[_0x22af19][_0x75d8('0x23')]]=[_0x75d8('0x28'),_0xdca5b[_0x75d8('0x22')],_0xdca5b[_0x75d8('0x24')]][_0x75d8('0x29')]('/');break;case _0x75d8('0x1e'):_0xdca5b[_0x75d8('0x1e')]=_0x223074[_0x5acee0[_0x22af19][_0x75d8('0x23')]];if(_0x4b45a7['recordingFormat']!==_0x75d8('0x1b')){if(_0xdca5b['options']['indexOf'](_0x75d8('0x2a'))<0x0){_0xdca5b[_0x75d8('0x1e')]+=_0x75d8('0x2a');}}else{_0xdca5b[_0x75d8('0x1e')]=_0xdca5b[_0x75d8('0x1e')]['replace']('U(xcally-mixmonitor-context)','');}_0x20e670[_0x5acee0[_0x22af19][_0x75d8('0x23')]]=_0xdca5b[_0x75d8('0x1e')];break;default:_0x20e670[_0x5acee0[_0x22af19][_0x75d8('0x23')]]=_0x223074[_0x5acee0[_0x22af19][_0x75d8('0x23')]];}}return _0x20e670[_0x75d8('0x29')](',');}function _0x367c4b(_0x127833,_0x11f19e,_0x3df811){return new Promise(function(_0x28098a,_0x3d2574){var _0xd73f2c=[];if(_[_0x75d8('0x2b')](_0x11f19e))return _0x28098a(_0xd73f2c);_0x244b76['Interval'][_0x75d8('0x2c')]({'attributes':['id',_0x75d8('0x2d'),'IntervalId'],'raw':!![]})['then'](function(_0x2893ef){for(var _0x46d4a2=0x0,_0x209398=0x0;_0x46d4a2<_0x11f19e[_0x75d8('0x20')];_0x46d4a2++,_0x209398=0x0){var _0x31e26d=_0x11f19e[_0x46d4a2];var _0x181131=[];var _0x1632f7=[];delete _0x31e26d['id'];if(_0x31e26d[_0x75d8('0x2d')]!==_0x75d8('0x2e')){_0x31e26d['intervals']=[_0x31e26d['interval']];}else{_0x31e26d['intervals']=_0x31e26d['IntervalId']?_['map'](_[_0x75d8('0x2f')](_0x2893ef,{'IntervalId':_0x31e26d[_0x75d8('0x30')]}),_0x75d8('0x2d')):[];}_0x31e26d['context']=_0x127833[_0x75d8('0x7')];_0x31e26d[_0x75d8('0x8')]=_0x127833[_0x75d8('0x8')];if(_0x31e26d[_0x75d8('0x4')])_0x31e26d[_0x75d8('0x4')]=_0x31e26d[_0x75d8('0x4')][_0x75d8('0x31')]();if(_0x127833[_0x75d8('0x4')]===_0x75d8('0x10')){if(_0x31e26d[_0x75d8('0x19')]('tag')&&_0x31e26d['tag']&&_0x31e26d['tag']!=='--'){_0x181131[_0x75d8('0xc')]({'type':_0x31e26d[_0x75d8('0x4')]['toLowerCase'](),'app':'Set','appdata':_0x75d8('0x32')+_0x31e26d[_0x75d8('0x33')],'context':_0x127833[_0x75d8('0x7')],'exten':_0x127833['exten'],'priority':_0x31e26d['intervals'][_0x75d8('0x20')]+_0x3df811+_0x209398++,'VoiceExtensionId':_0x127833['id']});}_0x181131[_0x75d8('0xc')]({'type':_0x31e26d[_0x75d8('0x4')][_0x75d8('0x31')](),'app':_0x75d8('0x15'),'appdata':_0x75d8('0x34')+(_0x31e26d[_0x75d8('0x35')]?_0x75d8('0x36')+_0x31e26d[_0x75d8('0x35')]+')':_0x75d8('0x37')),'context':_0x127833[_0x75d8('0x7')],'exten':_0x127833[_0x75d8('0x8')],'priority':_0x31e26d[_0x75d8('0x38')][_0x75d8('0x20')]+_0x3df811+_0x209398++,'VoiceExtensionId':_0x127833['id']});}else{if(_0x31e26d[_0x75d8('0x19')](_0x75d8('0x39'))){if([_0x75d8('0x3a'),_0x75d8('0x3b')][_0x75d8('0x3c')](_0x31e26d[_0x75d8('0x3d')][_0x75d8('0x31')]())&&_0x31e26d[_0x75d8('0x3e')]!==_0x75d8('0x3f')){if(_0x31e26d[_0x75d8('0x39')]){_0x181131[_0x75d8('0xc')]({'type':_0x31e26d[_0x75d8('0x4')]['toLowerCase'](),'app':'ExecIf','appdata':_0x75d8('0x40'),'context':_0x127833['context'],'exten':_0x127833['exten'],'priority':_0x31e26d[_0x75d8('0x38')][_0x75d8('0x20')]+_0x3df811+_0x209398++,'VoiceExtensionId':_0x127833['id']});_0x181131[_0x75d8('0xc')]({'type':_0x31e26d[_0x75d8('0x4')][_0x75d8('0x31')](),'app':_0x75d8('0x5'),'appdata':_0x75d8('0x41'),'context':_0x127833[_0x75d8('0x7')],'exten':_0x127833[_0x75d8('0x8')],'priority':_0x31e26d[_0x75d8('0x38')]['length']+_0x3df811+_0x209398++,'VoiceExtensionId':_0x127833['id']});}else{_0x181131[_0x75d8('0xc')]({'type':_0x31e26d['type'][_0x75d8('0x31')](),'app':'ExecIf','appdata':_0x75d8('0x42'),'context':_0x127833[_0x75d8('0x7')],'exten':_0x127833['exten'],'priority':_0x31e26d[_0x75d8('0x38')][_0x75d8('0x20')]+_0x3df811+_0x209398++,'VoiceExtensionId':_0x127833['id']});_0x181131[_0x75d8('0xc')]({'type':_0x31e26d[_0x75d8('0x4')][_0x75d8('0x31')](),'app':'Set','appdata':_0x75d8('0x43'),'context':_0x127833[_0x75d8('0x7')],'exten':_0x127833[_0x75d8('0x8')],'priority':_0x31e26d[_0x75d8('0x38')][_0x75d8('0x20')]+_0x3df811+_0x209398++,'VoiceExtensionId':_0x127833['id']});}}}}for(var _0x59230e=0x0;_0x59230e<_0x31e26d[_0x75d8('0x38')][_0x75d8('0x20')];_0x59230e++){var _0x4079b0=_0x3df811+_0x31e26d[_0x75d8('0x38')][_0x75d8('0x20')];var _0x271af0=_0x59230e===_0x31e26d[_0x75d8('0x38')]['length']-0x1?_0x3df811+_0x181131[_0x75d8('0x20')]+_0x1632f7[_0x75d8('0x20')]+0x2:_0x3df811+_0x59230e+0x1;_0x181131[_0x75d8('0x44')](_0x59230e,0x0,{'type':_0x127833[_0x75d8('0x4')],'app':'GotoIfTime','appdata':_0x31e26d['intervals'][_0x59230e]+'?'+_0x127833[_0x75d8('0x7')]+_0x75d8('0x45')+_0x4079b0+':'+_0x127833[_0x75d8('0x7')]+',${EXTEN},'+_0x271af0,'exten':_0x127833[_0x75d8('0x8')],'context':_0x127833[_0x75d8('0x7')],'priority':_0x3df811+_0x59230e,'VoiceExtensionId':_0x127833['id']});}if(_0x31e26d['appType']==='outboundDial')_0x31e26d[_0x75d8('0x46')]=_0x51bbb1(_0x127833,_0x31e26d[_0x75d8('0x46')]);_0x31e26d['priority']=_0x181131[_0x75d8('0x20')]?_[_0x75d8('0x47')](_0x181131)['priority']+0x1:_0x3df811;_0xd73f2c=_[_0x75d8('0x48')](_0xd73f2c,_0x181131,[_0x31e26d],_0x1632f7);_0x3df811=_['last'](_0xd73f2c)[_0x75d8('0x49')]+0x1;}return _0x28098a(_0xd73f2c);})[_0x75d8('0x4a')](function(_0x219de5){_0x3d2574(_0x219de5);});});}return _0x20f009[_0x75d8('0x4b')](_0x75d8('0x4c'),attributes,{'tableName':_0x75d8('0x4d'),'paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x194799){var _0x43468a=this[_0x75d8('0x4e')]({'plain':!![]});var _0x280073=_0x43468a['type']===_0x75d8('0x10')?_0x180916(_0x43468a):_0x59aced(_0x43468a);return _0x367c4b(_0x43468a,_0x194799,_['last'](_0x280073)[_0x75d8('0x49')]+0x1)[_0x75d8('0x4f')](function(_0x77877d){var _0x372f3a=_[_0x75d8('0x48')](_0x280073,_0x77877d);_0x372f3a['push']({'type':_0x43468a[_0x75d8('0x4')],'app':'Hangup','exten':_0x43468a[_0x75d8('0x8')],'context':_0x43468a[_0x75d8('0x7')],'priority':_[_0x75d8('0x47')](_0x372f3a)['priority']+0x1,'VoiceExtensionId':_0x43468a['id']});return _0x372f3a;});}}});};