5cbb656b3b3bc06af1b784dc0e0aacc419b2e3a7
[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 _0xb2ea=['param','phone','prefix','SIP','indexOf','U(xcally-mixmonitor-context)','isEmpty','Interval','findAll','IntervalId','then','interval','*,*,*,*','intervals','map','filter','tag','toLowerCase','ExecIf','callerID','Set(CALLERID(all)=','answer','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},','outboundDial','appdata','agi','XMCS-UNIQUEID=${CHANNEL(LINKEDID)}','priority','concat','last','catch','define','voice_extensions','lodash','./voiceExtension.attributes','type','Set','CDR(type)=','context','exten','inbound','push','CDR(routeid)=','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','CDR(type)=outbound','outbound','CDR(destination)=','cutdigits','${EXTEN:','${EXTEN}','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','hasOwnProperty','recordingFormat','none','_XCALLY_MIXMONITOR_FORMAT=','wav','timeout','options','split','length','trunk'];(function(_0x4a9fb1,_0x273043){var _0x348672=function(_0x142b69){while(--_0x142b69){_0x4a9fb1['push'](_0x4a9fb1['shift']());}};_0x348672(++_0x273043);}(_0xb2ea,0x109));var _0xab2e=function(_0x59ee91,_0x5ca1ef){_0x59ee91=_0x59ee91-0x0;var _0x51b0b7=_0xb2ea[_0x59ee91];return _0x51b0b7;};'use strict';var _=require(_0xab2e('0x0'));var attributes=require(_0xab2e('0x1'));module['exports']=function(_0x4bb86c){var _0x4ad916=_0x4bb86c['models'];function _0x12c941(_0x1989e9){var _0x1260db=0x2;var _0x4209c0=[{'type':_0x1989e9[_0xab2e('0x2')],'app':_0xab2e('0x3'),'appdata':_0xab2e('0x4')+_0x1989e9[_0xab2e('0x2')],'context':_0x1989e9[_0xab2e('0x5')],'exten':_0x1989e9[_0xab2e('0x6')],'priority':_0x1260db++,'VoiceExtensionId':_0x1989e9['id']}];if(_0x1989e9[_0xab2e('0x2')]===_0xab2e('0x7')){_0x4209c0[_0xab2e('0x8')]({'type':_0xab2e('0x7'),'app':_0xab2e('0x3'),'appdata':_0xab2e('0x9')+_0x1989e9['id'],'context':_0x1989e9[_0xab2e('0x5')],'exten':_0x1989e9[_0xab2e('0x6')],'priority':_0x1260db++,'VoiceExtensionId':_0x1989e9['id']});}_0x4209c0[_0xab2e('0x8')]({'type':_0x1989e9['type'],'app':_0xab2e('0x3'),'appdata':_0xab2e('0xa'),'context':_0x1989e9['context'],'exten':_0x1989e9[_0xab2e('0x6')],'priority':_0x1260db++,'VoiceExtensionId':_0x1989e9['id']},{'type':_0x1989e9[_0xab2e('0x2')],'app':_0xab2e('0x3'),'appdata':_0xab2e('0xb'),'context':_0x1989e9[_0xab2e('0x5')],'exten':_0x1989e9[_0xab2e('0x6')],'priority':_0x1260db++,'VoiceExtensionId':_0x1989e9['id']},{'type':_0x1989e9[_0xab2e('0x2')],'app':_0xab2e('0x3'),'appdata':_0xab2e('0xc'),'context':_0x1989e9[_0xab2e('0x5')],'exten':_0x1989e9[_0xab2e('0x6')],'priority':_0x1260db++,'VoiceExtensionId':_0x1989e9['id']});return _0x4209c0;}function _0x212492(_0x454451){var _0x511d4b=0x2;var _0x51989c=[{'type':'outbound','app':_0xab2e('0x3'),'appdata':_0xab2e('0xd'),'context':_0x454451[_0xab2e('0x5')],'exten':_0x454451[_0xab2e('0x6')],'priority':_0x511d4b++,'VoiceExtensionId':_0x454451['id']},{'type':_0xab2e('0xe'),'app':_0xab2e('0x3'),'appdata':_0xab2e('0xf')+(_0x454451[_0xab2e('0x10')]?_0xab2e('0x11')+_0x454451['cutdigits']+'}':_0xab2e('0x12')),'context':_0x454451['context'],'exten':_0x454451[_0xab2e('0x6')],'priority':_0x511d4b++,'VoiceExtensionId':_0x454451['id']},{'type':_0xab2e('0xe'),'app':_0xab2e('0x3'),'appdata':'CDR(routeid)='+_0x454451['id'],'context':_0x454451['context'],'exten':_0x454451['exten'],'priority':_0x511d4b++,'VoiceExtensionId':_0x454451['id']},{'type':_0xab2e('0xe'),'app':'ExecIf','appdata':_0xab2e('0x13')+(_0x511d4b+0x2)+_0xab2e('0x14')+(_0x511d4b+0x1)+')','context':_0x454451[_0xab2e('0x5')],'exten':_0x454451[_0xab2e('0x6')],'priority':_0x511d4b++,'VoiceExtensionId':_0x454451['id']},{'type':_0xab2e('0xe'),'app':_0xab2e('0x3'),'appdata':_0x454451['cutdigits']?'CDR(prefix)=${EXTEN:0:'+_0x454451[_0xab2e('0x10')]+'}':'CDR(prefix)=noprefix','context':_0x454451[_0xab2e('0x5')],'exten':_0x454451[_0xab2e('0x6')],'priority':_0x511d4b++,'VoiceExtensionId':_0x454451['id']},{'type':_0xab2e('0xe'),'app':_0xab2e('0x3'),'appdata':'XCALLY-MOTION-ANSWER=0','context':_0x454451['context'],'exten':_0x454451[_0xab2e('0x6')],'priority':_0x511d4b++,'VoiceExtensionId':_0x454451['id']},{'type':_0xab2e('0xe'),'app':_0xab2e('0x3'),'appdata':'XCALLY-MOTION-PROGRESS=0','context':_0x454451['context'],'exten':_0x454451['exten'],'priority':_0x511d4b++,'VoiceExtensionId':_0x454451['id']},{'type':_0xab2e('0xe'),'app':_0xab2e('0x3'),'appdata':_0xab2e('0xc'),'context':_0x454451[_0xab2e('0x5')],'exten':_0x454451[_0xab2e('0x6')],'priority':_0x511d4b++,'VoiceExtensionId':_0x454451['id']},{'type':_0xab2e('0xe'),'app':_0xab2e('0x3'),'appdata':'outboundrouteid='+_0x454451['id'],'context':_0x454451['context'],'exten':_0x454451['exten'],'priority':_0x511d4b++,'VoiceExtensionId':_0x454451['id']}];if(_0x454451[_0xab2e('0x15')](_0xab2e('0x16'))&&_0x454451[_0xab2e('0x16')]!==_0xab2e('0x17')){_0x51989c[_0xab2e('0x8')]({'type':_0xab2e('0xe'),'app':_0xab2e('0x3'),'appdata':'_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','context':_0x454451[_0xab2e('0x5')],'exten':_0x454451[_0xab2e('0x6')],'priority':_0x511d4b++,'VoiceExtensionId':_0x454451['id']},{'type':_0xab2e('0xe'),'app':_0xab2e('0x3'),'appdata':_0xab2e('0x18')+_0x454451[_0xab2e('0x16')]||_0xab2e('0x19'),'context':_0x454451[_0xab2e('0x5')],'exten':_0x454451[_0xab2e('0x6')],'priority':_0x511d4b++,'VoiceExtensionId':_0x454451['id']});}return _0x51989c;}function _0x49ee18(_0x4ad84d,_0x51fd37){var _0x10fa0d=[{'name':'trunk','param':0x0},{'name':_0xab2e('0x1a'),'param':0x1},{'name':_0xab2e('0x1b'),'param':0x2},{'name':'url','param':0x3}];var _0x47fbf1={};var _0x30a110=_0x51fd37[_0xab2e('0x1c')](',');var _0x21398b=[];for(var _0x205102=0x0;_0x205102<_0x10fa0d[_0xab2e('0x1d')];_0x205102++){switch(_0x10fa0d[_0x205102]['name']){case'trunk':_0x47fbf1[_0xab2e('0x1e')]=_0x30a110[_0x10fa0d[_0x205102][_0xab2e('0x1f')]]['split']('/')[0x1];_0x47fbf1[_0xab2e('0x20')]=_0x30a110[_0x10fa0d[_0x205102][_0xab2e('0x1f')]][_0xab2e('0x1c')]('/')[0x2];_0x47fbf1[_0xab2e('0x21')]=_0x47fbf1[_0xab2e('0x20')]?_0x47fbf1[_0xab2e('0x20')][_0xab2e('0x1c')]('$')[0x0]:undefined;_0x47fbf1['phone']=_0x4ad84d['cutdigits']?(_0x47fbf1[_0xab2e('0x21')]||'')+_0xab2e('0x11')+_0x4ad84d[_0xab2e('0x10')]+'}':(_0x47fbf1[_0xab2e('0x21')]||'')+_0xab2e('0x12');_0x21398b[_0x10fa0d[_0x205102]['param']]=[_0xab2e('0x22'),_0x47fbf1['trunk'],_0x47fbf1[_0xab2e('0x20')]]['join']('/');break;case _0xab2e('0x1b'):_0x47fbf1['options']=_0x30a110[_0x10fa0d[_0x205102][_0xab2e('0x1f')]];if(_0x4ad84d[_0xab2e('0x16')]!==_0xab2e('0x17')){if(_0x47fbf1[_0xab2e('0x1b')][_0xab2e('0x23')](_0xab2e('0x24'))<0x0){_0x47fbf1[_0xab2e('0x1b')]+=_0xab2e('0x24');}}else{_0x47fbf1[_0xab2e('0x1b')]=_0x47fbf1[_0xab2e('0x1b')]['replace'](_0xab2e('0x24'),'');}_0x21398b[_0x10fa0d[_0x205102][_0xab2e('0x1f')]]=_0x47fbf1[_0xab2e('0x1b')];break;default:_0x21398b[_0x10fa0d[_0x205102][_0xab2e('0x1f')]]=_0x30a110[_0x10fa0d[_0x205102][_0xab2e('0x1f')]];}}return _0x21398b['join'](',');}function _0x40ace9(_0x14b7ca,_0x9ee339,_0x17b4dc){return new Promise(function(_0x535a1c,_0x5abb9d){var _0x1ff6af=[];if(_[_0xab2e('0x25')](_0x9ee339))return _0x535a1c(_0x1ff6af);_0x4ad916[_0xab2e('0x26')][_0xab2e('0x27')]({'attributes':['id','interval',_0xab2e('0x28')],'raw':!![]})[_0xab2e('0x29')](function(_0x57d735){for(var _0x5da492=0x0,_0x772725=0x0;_0x5da492<_0x9ee339[_0xab2e('0x1d')];_0x5da492++,_0x772725=0x0){var _0x26280d=_0x9ee339[_0x5da492];var _0x2c4cf4=[];var _0x1fa4af=[];delete _0x26280d['id'];if(_0x26280d[_0xab2e('0x2a')]!==_0xab2e('0x2b')){_0x26280d[_0xab2e('0x2c')]=[_0x26280d[_0xab2e('0x2a')]];}else{_0x26280d['intervals']=_0x26280d[_0xab2e('0x28')]?_[_0xab2e('0x2d')](_[_0xab2e('0x2e')](_0x57d735,{'IntervalId':_0x26280d[_0xab2e('0x28')]}),_0xab2e('0x2a')):[];}_0x26280d[_0xab2e('0x5')]=_0x14b7ca['context'];_0x26280d['exten']=_0x14b7ca[_0xab2e('0x6')];if(_0x26280d[_0xab2e('0x2')])_0x26280d[_0xab2e('0x2')]=_0x26280d[_0xab2e('0x2')]['toLowerCase']();if(_0x14b7ca[_0xab2e('0x2')]==='outbound'){if(_0x26280d[_0xab2e('0x15')](_0xab2e('0x2f'))&&_0x26280d[_0xab2e('0x2f')]&&_0x26280d[_0xab2e('0x2f')]!=='--'){_0x2c4cf4[_0xab2e('0x8')]({'type':_0x26280d[_0xab2e('0x2')][_0xab2e('0x30')](),'app':_0xab2e('0x3'),'appdata':'CDR(tag)='+_0x26280d['tag'],'context':_0x14b7ca['context'],'exten':_0x14b7ca['exten'],'priority':_0x26280d[_0xab2e('0x2c')][_0xab2e('0x1d')]+_0x17b4dc+_0x772725++,'VoiceExtensionId':_0x14b7ca['id']});}_0x2c4cf4[_0xab2e('0x8')]({'type':_0x26280d[_0xab2e('0x2')][_0xab2e('0x30')](),'app':_0xab2e('0x31'),'appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):'+(_0x26280d[_0xab2e('0x32')]?_0xab2e('0x33')+_0x26280d[_0xab2e('0x32')]+')':'NoOp(No\x20number\x20available)'),'context':_0x14b7ca[_0xab2e('0x5')],'exten':_0x14b7ca[_0xab2e('0x6')],'priority':_0x26280d[_0xab2e('0x2c')][_0xab2e('0x1d')]+_0x17b4dc+_0x772725++,'VoiceExtensionId':_0x14b7ca['id']});}else{if(_0x26280d['hasOwnProperty'](_0xab2e('0x34'))){if(['queue',_0xab2e('0x35')][_0xab2e('0x36')](_0x26280d[_0xab2e('0x37')]['toLowerCase']())&&_0x26280d[_0xab2e('0x38')]!==_0xab2e('0x39')){if(_0x26280d[_0xab2e('0x34')]){_0x2c4cf4['push']({'type':_0x26280d[_0xab2e('0x2')][_0xab2e('0x30')](),'app':_0xab2e('0x31'),'appdata':_0xab2e('0x3a'),'context':_0x14b7ca[_0xab2e('0x5')],'exten':_0x14b7ca[_0xab2e('0x6')],'priority':_0x26280d[_0xab2e('0x2c')][_0xab2e('0x1d')]+_0x17b4dc+_0x772725++,'VoiceExtensionId':_0x14b7ca['id']});_0x2c4cf4['push']({'type':_0x26280d[_0xab2e('0x2')][_0xab2e('0x30')](),'app':_0xab2e('0x3'),'appdata':_0xab2e('0x3b'),'context':_0x14b7ca[_0xab2e('0x5')],'exten':_0x14b7ca[_0xab2e('0x6')],'priority':_0x26280d[_0xab2e('0x2c')]['length']+_0x17b4dc+_0x772725++,'VoiceExtensionId':_0x14b7ca['id']});}else{_0x2c4cf4[_0xab2e('0x8')]({'type':_0x26280d['type']['toLowerCase'](),'app':_0xab2e('0x31'),'appdata':_0xab2e('0x3c'),'context':_0x14b7ca[_0xab2e('0x5')],'exten':_0x14b7ca[_0xab2e('0x6')],'priority':_0x26280d[_0xab2e('0x2c')]['length']+_0x17b4dc+_0x772725++,'VoiceExtensionId':_0x14b7ca['id']});_0x2c4cf4[_0xab2e('0x8')]({'type':_0x26280d[_0xab2e('0x2')][_0xab2e('0x30')](),'app':'Set','appdata':_0xab2e('0x3d'),'context':_0x14b7ca['context'],'exten':_0x14b7ca['exten'],'priority':_0x26280d[_0xab2e('0x2c')][_0xab2e('0x1d')]+_0x17b4dc+_0x772725++,'VoiceExtensionId':_0x14b7ca['id']});}}}}for(var _0x24751f=0x0;_0x24751f<_0x26280d[_0xab2e('0x2c')][_0xab2e('0x1d')];_0x24751f++){var _0x49b76c=_0x17b4dc+_0x26280d[_0xab2e('0x2c')][_0xab2e('0x1d')];var _0x3a162c=_0x24751f===_0x26280d[_0xab2e('0x2c')][_0xab2e('0x1d')]-0x1?_0x17b4dc+_0x2c4cf4[_0xab2e('0x1d')]+_0x1fa4af['length']+0x2:_0x17b4dc+_0x24751f+0x1;_0x2c4cf4[_0xab2e('0x3e')](_0x24751f,0x0,{'type':_0x14b7ca[_0xab2e('0x2')],'app':'GotoIfTime','appdata':_0x26280d['intervals'][_0x24751f]+'?'+_0x14b7ca[_0xab2e('0x5')]+_0xab2e('0x3f')+_0x49b76c+':'+_0x14b7ca['context']+_0xab2e('0x3f')+_0x3a162c,'exten':_0x14b7ca[_0xab2e('0x6')],'context':_0x14b7ca[_0xab2e('0x5')],'priority':_0x17b4dc+_0x24751f,'VoiceExtensionId':_0x14b7ca['id']});}if(_0x26280d[_0xab2e('0x38')]===_0xab2e('0x40')){_0x26280d['appdata']=_0x49ee18(_0x14b7ca,_0x26280d[_0xab2e('0x41')]);}if(_0x26280d['appType']===_0xab2e('0x42')){_0x2c4cf4[_0xab2e('0x8')]({'type':_0x26280d[_0xab2e('0x2')]['toLowerCase'](),'app':_0xab2e('0x3'),'appdata':_0xab2e('0x43'),'context':_0x14b7ca['context'],'exten':_0x14b7ca[_0xab2e('0x6')],'priority':_0x26280d['intervals'][_0xab2e('0x1d')]+_0x17b4dc+_0x772725++,'VoiceExtensionId':_0x14b7ca['id']});}_0x26280d['priority']=_0x2c4cf4[_0xab2e('0x1d')]?_['last'](_0x2c4cf4)[_0xab2e('0x44')]+0x1:_0x17b4dc;_0x1ff6af=_[_0xab2e('0x45')](_0x1ff6af,_0x2c4cf4,[_0x26280d],_0x1fa4af);_0x17b4dc=_[_0xab2e('0x46')](_0x1ff6af)[_0xab2e('0x44')]+0x1;}return _0x535a1c(_0x1ff6af);})[_0xab2e('0x47')](function(_0x28b515){_0x5abb9d(_0x28b515);});});}return _0x4bb86c[_0xab2e('0x48')]('VoiceExtension',attributes,{'tableName':_0xab2e('0x49'),'paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x7f701f){var _0x5dfe86=this['get']({'plain':!![]});var _0x1fe7fd=_0x5dfe86[_0xab2e('0x2')]===_0xab2e('0xe')?_0x212492(_0x5dfe86):_0x12c941(_0x5dfe86);return _0x40ace9(_0x5dfe86,_0x7f701f,_[_0xab2e('0x46')](_0x1fe7fd)[_0xab2e('0x44')]+0x1)[_0xab2e('0x29')](function(_0x41d803){var _0x5d03ed=_[_0xab2e('0x45')](_0x1fe7fd,_0x41d803);_0x5d03ed['push']({'type':_0x5dfe86[_0xab2e('0x2')],'app':'Hangup','exten':_0x5dfe86[_0xab2e('0x6')],'context':_0x5dfe86['context'],'priority':_[_0xab2e('0x46')](_0x5d03ed)['priority']+0x1,'VoiceExtensionId':_0x5dfe86['id']});return _0x5d03ed;});}}});};