Built motion from commit 3c2ce842.|2.6.31
[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 _0x9b65=['lodash','./voiceExtension.attributes','models','type','Set','context','exten','inbound','push','CDR(routeid)=','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','CDR(type)=outbound','outbound','CDR(destination)=','cutdigits','${EXTEN:','ExecIf','):Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','XCALLY-MOTION-ANSWER=0','outboundrouteid=','hasOwnProperty','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','wav','trunk','timeout','url','split','length','name','param','prefix','phone','${EXTEN}','join','options','indexOf','U(xcally-mixmonitor-context)','Interval','interval','IntervalId','intervals','map','filter','toLowerCase','tag','CDR(tag)=','callerID','NoOp(No\x20number\x20available)','answer','queue','playback','includes','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1',',${EXTEN},','appType','outboundDial','appdata','agi','XMCS-UNIQUEID=${CHANNEL(LINKEDID)}','priority','last','concat','catch','define','VoiceExtension','get','then','Hangup'];(function(_0x33e2ec,_0xa04eb){var _0x5f031f=function(_0xa35e32){while(--_0xa35e32){_0x33e2ec['push'](_0x33e2ec['shift']());}};_0x5f031f(++_0xa04eb);}(_0x9b65,0x130));var _0x59b6=function(_0x183fac,_0x5c4b00){_0x183fac=_0x183fac-0x0;var _0x5ee86a=_0x9b65[_0x183fac];return _0x5ee86a;};'use strict';var _=require(_0x59b6('0x0'));var attributes=require(_0x59b6('0x1'));module['exports']=function(_0x3fd59d){var _0x2010f4=_0x3fd59d[_0x59b6('0x2')];function _0x5cd97c(_0x300882){var _0x32dbca=0x2;var _0xdc4b7=[{'type':_0x300882[_0x59b6('0x3')],'app':_0x59b6('0x4'),'appdata':'CDR(type)='+_0x300882[_0x59b6('0x3')],'context':_0x300882[_0x59b6('0x5')],'exten':_0x300882[_0x59b6('0x6')],'priority':_0x32dbca++,'VoiceExtensionId':_0x300882['id']}];if(_0x300882['type']===_0x59b6('0x7')){_0xdc4b7[_0x59b6('0x8')]({'type':_0x59b6('0x7'),'app':'Set','appdata':_0x59b6('0x9')+_0x300882['id'],'context':_0x300882[_0x59b6('0x5')],'exten':_0x300882[_0x59b6('0x6')],'priority':_0x32dbca++,'VoiceExtensionId':_0x300882['id']});}_0xdc4b7['push']({'type':_0x300882[_0x59b6('0x3')],'app':_0x59b6('0x4'),'appdata':'XCALLY-MOTION-ANSWER=0','context':_0x300882['context'],'exten':_0x300882[_0x59b6('0x6')],'priority':_0x32dbca++,'VoiceExtensionId':_0x300882['id']},{'type':_0x300882[_0x59b6('0x3')],'app':_0x59b6('0x4'),'appdata':_0x59b6('0xa'),'context':_0x300882[_0x59b6('0x5')],'exten':_0x300882[_0x59b6('0x6')],'priority':_0x32dbca++,'VoiceExtensionId':_0x300882['id']},{'type':_0x300882[_0x59b6('0x3')],'app':_0x59b6('0x4'),'appdata':_0x59b6('0xb'),'context':_0x300882['context'],'exten':_0x300882['exten'],'priority':_0x32dbca++,'VoiceExtensionId':_0x300882['id']});return _0xdc4b7;}function _0x17cb25(_0x2e9232){var _0x7d8be=0x2;var _0x32c8b8=[{'type':'outbound','app':'Set','appdata':_0x59b6('0xc'),'context':_0x2e9232[_0x59b6('0x5')],'exten':_0x2e9232[_0x59b6('0x6')],'priority':_0x7d8be++,'VoiceExtensionId':_0x2e9232['id']},{'type':_0x59b6('0xd'),'app':_0x59b6('0x4'),'appdata':_0x59b6('0xe')+(_0x2e9232[_0x59b6('0xf')]?_0x59b6('0x10')+_0x2e9232[_0x59b6('0xf')]+'}':'${EXTEN}'),'context':_0x2e9232[_0x59b6('0x5')],'exten':_0x2e9232['exten'],'priority':_0x7d8be++,'VoiceExtensionId':_0x2e9232['id']},{'type':_0x59b6('0xd'),'app':_0x59b6('0x4'),'appdata':_0x59b6('0x9')+_0x2e9232['id'],'context':_0x2e9232[_0x59b6('0x5')],'exten':_0x2e9232['exten'],'priority':_0x7d8be++,'VoiceExtensionId':_0x2e9232['id']},{'type':_0x59b6('0xd'),'app':_0x59b6('0x11'),'appdata':'$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto('+(_0x7d8be+0x2)+_0x59b6('0x12')+(_0x7d8be+0x1)+')','context':_0x2e9232['context'],'exten':_0x2e9232['exten'],'priority':_0x7d8be++,'VoiceExtensionId':_0x2e9232['id']},{'type':_0x59b6('0xd'),'app':_0x59b6('0x4'),'appdata':_0x2e9232[_0x59b6('0xf')]?_0x59b6('0x13')+_0x2e9232[_0x59b6('0xf')]+'}':_0x59b6('0x14'),'context':_0x2e9232[_0x59b6('0x5')],'exten':_0x2e9232[_0x59b6('0x6')],'priority':_0x7d8be++,'VoiceExtensionId':_0x2e9232['id']},{'type':_0x59b6('0xd'),'app':'Set','appdata':_0x59b6('0x15'),'context':_0x2e9232[_0x59b6('0x5')],'exten':_0x2e9232[_0x59b6('0x6')],'priority':_0x7d8be++,'VoiceExtensionId':_0x2e9232['id']},{'type':_0x59b6('0xd'),'app':_0x59b6('0x4'),'appdata':_0x59b6('0xa'),'context':_0x2e9232[_0x59b6('0x5')],'exten':_0x2e9232[_0x59b6('0x6')],'priority':_0x7d8be++,'VoiceExtensionId':_0x2e9232['id']},{'type':_0x59b6('0xd'),'app':_0x59b6('0x4'),'appdata':_0x59b6('0xb'),'context':_0x2e9232[_0x59b6('0x5')],'exten':_0x2e9232[_0x59b6('0x6')],'priority':_0x7d8be++,'VoiceExtensionId':_0x2e9232['id']},{'type':_0x59b6('0xd'),'app':_0x59b6('0x4'),'appdata':_0x59b6('0x16')+_0x2e9232['id'],'context':_0x2e9232[_0x59b6('0x5')],'exten':_0x2e9232['exten'],'priority':_0x7d8be++,'VoiceExtensionId':_0x2e9232['id']}];if(_0x2e9232[_0x59b6('0x17')](_0x59b6('0x18'))&&_0x2e9232[_0x59b6('0x18')]!==_0x59b6('0x19')){_0x32c8b8[_0x59b6('0x8')]({'type':'outbound','app':_0x59b6('0x4'),'appdata':_0x59b6('0x1a'),'context':_0x2e9232[_0x59b6('0x5')],'exten':_0x2e9232[_0x59b6('0x6')],'priority':_0x7d8be++,'VoiceExtensionId':_0x2e9232['id']},{'type':'outbound','app':_0x59b6('0x4'),'appdata':_0x59b6('0x1b')+_0x2e9232[_0x59b6('0x18')]||_0x59b6('0x1c'),'context':_0x2e9232['context'],'exten':_0x2e9232[_0x59b6('0x6')],'priority':_0x7d8be++,'VoiceExtensionId':_0x2e9232['id']});}return _0x32c8b8;}function _0x3cb21c(_0x70a7f0,_0x42f3d6){var _0x52c553=[{'name':_0x59b6('0x1d'),'param':0x0},{'name':_0x59b6('0x1e'),'param':0x1},{'name':'options','param':0x2},{'name':_0x59b6('0x1f'),'param':0x3}];var _0x51f1bb={};var _0x167bbe=_0x42f3d6[_0x59b6('0x20')](',');var _0x4d4261=[];for(var _0x15c77c=0x0;_0x15c77c<_0x52c553[_0x59b6('0x21')];_0x15c77c++){switch(_0x52c553[_0x15c77c][_0x59b6('0x22')]){case _0x59b6('0x1d'):_0x51f1bb[_0x59b6('0x1d')]=_0x167bbe[_0x52c553[_0x15c77c][_0x59b6('0x23')]][_0x59b6('0x20')]('/')[0x1];_0x51f1bb['phone']=_0x167bbe[_0x52c553[_0x15c77c][_0x59b6('0x23')]][_0x59b6('0x20')]('/')[0x2];_0x51f1bb[_0x59b6('0x24')]=_0x51f1bb[_0x59b6('0x25')]?_0x51f1bb[_0x59b6('0x25')][_0x59b6('0x20')]('$')[0x0]:undefined;_0x51f1bb[_0x59b6('0x25')]=_0x70a7f0[_0x59b6('0xf')]?(_0x51f1bb[_0x59b6('0x24')]||'')+_0x59b6('0x10')+_0x70a7f0['cutdigits']+'}':(_0x51f1bb[_0x59b6('0x24')]||'')+_0x59b6('0x26');_0x4d4261[_0x52c553[_0x15c77c][_0x59b6('0x23')]]=['SIP',_0x51f1bb[_0x59b6('0x1d')],_0x51f1bb[_0x59b6('0x25')]][_0x59b6('0x27')]('/');break;case _0x59b6('0x28'):_0x51f1bb[_0x59b6('0x28')]=_0x167bbe[_0x52c553[_0x15c77c][_0x59b6('0x23')]];if(_0x70a7f0[_0x59b6('0x18')]!==_0x59b6('0x19')){if(_0x51f1bb[_0x59b6('0x28')][_0x59b6('0x29')]('U(xcally-mixmonitor-context)')<0x0){_0x51f1bb[_0x59b6('0x28')]+=_0x59b6('0x2a');}}else{_0x51f1bb[_0x59b6('0x28')]=_0x51f1bb[_0x59b6('0x28')]['replace']('U(xcally-mixmonitor-context)','');}_0x4d4261[_0x52c553[_0x15c77c][_0x59b6('0x23')]]=_0x51f1bb[_0x59b6('0x28')];break;default:_0x4d4261[_0x52c553[_0x15c77c][_0x59b6('0x23')]]=_0x167bbe[_0x52c553[_0x15c77c][_0x59b6('0x23')]];}}return _0x4d4261[_0x59b6('0x27')](',');}function _0x5267e2(_0x587723,_0x3703cc,_0x5ef40d){return new Promise(function(_0x27149a,_0x19de88){var _0xbd21bc=[];if(_['isEmpty'](_0x3703cc))return _0x27149a(_0xbd21bc);_0x2010f4[_0x59b6('0x2b')]['findAll']({'attributes':['id',_0x59b6('0x2c'),_0x59b6('0x2d')],'raw':!![]})['then'](function(_0x37a0ce){for(var _0x17b71f=0x0,_0x56d712=0x0;_0x17b71f<_0x3703cc[_0x59b6('0x21')];_0x17b71f++,_0x56d712=0x0){var _0x3e8ce8=_0x3703cc[_0x17b71f];var _0x3bad58=[];var _0xa7a2f2=[];delete _0x3e8ce8['id'];if(_0x3e8ce8[_0x59b6('0x2c')]!=='*,*,*,*'){_0x3e8ce8[_0x59b6('0x2e')]=[_0x3e8ce8['interval']];}else{_0x3e8ce8[_0x59b6('0x2e')]=_0x3e8ce8[_0x59b6('0x2d')]?_[_0x59b6('0x2f')](_[_0x59b6('0x30')](_0x37a0ce,{'IntervalId':_0x3e8ce8[_0x59b6('0x2d')]}),'interval'):[];}_0x3e8ce8[_0x59b6('0x5')]=_0x587723[_0x59b6('0x5')];_0x3e8ce8[_0x59b6('0x6')]=_0x587723[_0x59b6('0x6')];if(_0x3e8ce8[_0x59b6('0x3')])_0x3e8ce8[_0x59b6('0x3')]=_0x3e8ce8['type'][_0x59b6('0x31')]();if(_0x587723[_0x59b6('0x3')]==='outbound'){if(_0x3e8ce8[_0x59b6('0x17')](_0x59b6('0x32'))&&_0x3e8ce8[_0x59b6('0x32')]&&_0x3e8ce8[_0x59b6('0x32')]!=='--'){_0x3bad58['push']({'type':_0x3e8ce8['type'][_0x59b6('0x31')](),'app':_0x59b6('0x4'),'appdata':_0x59b6('0x33')+_0x3e8ce8['tag'],'context':_0x587723[_0x59b6('0x5')],'exten':_0x587723['exten'],'priority':_0x3e8ce8[_0x59b6('0x2e')]['length']+_0x5ef40d+_0x56d712++,'VoiceExtensionId':_0x587723['id']});}_0x3bad58[_0x59b6('0x8')]({'type':_0x3e8ce8['type'][_0x59b6('0x31')](),'app':_0x59b6('0x11'),'appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):'+(_0x3e8ce8[_0x59b6('0x34')]?'Set(CALLERID(all)='+_0x3e8ce8['callerID']+')':_0x59b6('0x35')),'context':_0x587723['context'],'exten':_0x587723[_0x59b6('0x6')],'priority':_0x3e8ce8['intervals'][_0x59b6('0x21')]+_0x5ef40d+_0x56d712++,'VoiceExtensionId':_0x587723['id']});}else{if(_0x3e8ce8[_0x59b6('0x17')](_0x59b6('0x36'))){if([_0x59b6('0x37'),_0x59b6('0x38')][_0x59b6('0x39')](_0x3e8ce8['app'][_0x59b6('0x31')]())&&_0x3e8ce8['appType']!=='custom'){if(_0x3e8ce8[_0x59b6('0x36')]){_0x3bad58['push']({'type':_0x3e8ce8[_0x59b6('0x3')][_0x59b6('0x31')](),'app':'ExecIf','appdata':'$[${XCALLY-MOTION-ANSWER}=0]?Answer','context':_0x587723[_0x59b6('0x5')],'exten':_0x587723[_0x59b6('0x6')],'priority':_0x3e8ce8[_0x59b6('0x2e')][_0x59b6('0x21')]+_0x5ef40d+_0x56d712++,'VoiceExtensionId':_0x587723['id']});_0x3bad58[_0x59b6('0x8')]({'type':_0x3e8ce8[_0x59b6('0x3')][_0x59b6('0x31')](),'app':_0x59b6('0x4'),'appdata':_0x59b6('0x3a'),'context':_0x587723[_0x59b6('0x5')],'exten':_0x587723[_0x59b6('0x6')],'priority':_0x3e8ce8[_0x59b6('0x2e')][_0x59b6('0x21')]+_0x5ef40d+_0x56d712++,'VoiceExtensionId':_0x587723['id']});}else{_0x3bad58[_0x59b6('0x8')]({'type':_0x3e8ce8[_0x59b6('0x3')][_0x59b6('0x31')](),'app':'ExecIf','appdata':_0x59b6('0x3b'),'context':_0x587723[_0x59b6('0x5')],'exten':_0x587723['exten'],'priority':_0x3e8ce8[_0x59b6('0x2e')][_0x59b6('0x21')]+_0x5ef40d+_0x56d712++,'VoiceExtensionId':_0x587723['id']});_0x3bad58[_0x59b6('0x8')]({'type':_0x3e8ce8[_0x59b6('0x3')]['toLowerCase'](),'app':'Set','appdata':_0x59b6('0x3c'),'context':_0x587723[_0x59b6('0x5')],'exten':_0x587723[_0x59b6('0x6')],'priority':_0x3e8ce8[_0x59b6('0x2e')][_0x59b6('0x21')]+_0x5ef40d+_0x56d712++,'VoiceExtensionId':_0x587723['id']});}}}}for(var _0x37b930=0x0;_0x37b930<_0x3e8ce8[_0x59b6('0x2e')]['length'];_0x37b930++){var _0x4d0e4c=_0x5ef40d+_0x3e8ce8[_0x59b6('0x2e')][_0x59b6('0x21')];var _0x54e983=_0x37b930===_0x3e8ce8[_0x59b6('0x2e')][_0x59b6('0x21')]-0x1?_0x5ef40d+_0x3bad58[_0x59b6('0x21')]+_0xa7a2f2[_0x59b6('0x21')]+0x2:_0x5ef40d+_0x37b930+0x1;_0x3bad58['splice'](_0x37b930,0x0,{'type':_0x587723['type'],'app':'GotoIfTime','appdata':_0x3e8ce8[_0x59b6('0x2e')][_0x37b930]+'?'+_0x587723['context']+_0x59b6('0x3d')+_0x4d0e4c+':'+_0x587723[_0x59b6('0x5')]+_0x59b6('0x3d')+_0x54e983,'exten':_0x587723[_0x59b6('0x6')],'context':_0x587723[_0x59b6('0x5')],'priority':_0x5ef40d+_0x37b930,'VoiceExtensionId':_0x587723['id']});}if(_0x3e8ce8[_0x59b6('0x3e')]===_0x59b6('0x3f')){_0x3e8ce8[_0x59b6('0x40')]=_0x3cb21c(_0x587723,_0x3e8ce8[_0x59b6('0x40')]);}if(_0x3e8ce8[_0x59b6('0x3e')]===_0x59b6('0x41')){_0x3bad58['push']({'type':_0x3e8ce8[_0x59b6('0x3')][_0x59b6('0x31')](),'app':_0x59b6('0x4'),'appdata':_0x59b6('0x42'),'context':_0x587723[_0x59b6('0x5')],'exten':_0x587723['exten'],'priority':_0x3e8ce8['intervals'][_0x59b6('0x21')]+_0x5ef40d+_0x56d712++,'VoiceExtensionId':_0x587723['id']});}_0x3e8ce8[_0x59b6('0x43')]=_0x3bad58['length']?_[_0x59b6('0x44')](_0x3bad58)[_0x59b6('0x43')]+0x1:_0x5ef40d;_0xbd21bc=_[_0x59b6('0x45')](_0xbd21bc,_0x3bad58,[_0x3e8ce8],_0xa7a2f2);_0x5ef40d=_[_0x59b6('0x44')](_0xbd21bc)[_0x59b6('0x43')]+0x1;}return _0x27149a(_0xbd21bc);})[_0x59b6('0x46')](function(_0x4b14ed){_0x19de88(_0x4b14ed);});});}return _0x3fd59d[_0x59b6('0x47')](_0x59b6('0x48'),attributes,{'tableName':'voice_extensions','paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x5643b1){var _0x4df047=this[_0x59b6('0x49')]({'plain':!![]});var _0x18435f=_0x4df047[_0x59b6('0x3')]===_0x59b6('0xd')?_0x17cb25(_0x4df047):_0x5cd97c(_0x4df047);return _0x5267e2(_0x4df047,_0x5643b1,_[_0x59b6('0x44')](_0x18435f)[_0x59b6('0x43')]+0x1)[_0x59b6('0x4a')](function(_0x461d87){var _0x5c29b0=_[_0x59b6('0x45')](_0x18435f,_0x461d87);_0x5c29b0[_0x59b6('0x8')]({'type':_0x4df047[_0x59b6('0x3')],'app':_0x59b6('0x4b'),'exten':_0x4df047[_0x59b6('0x6')],'context':_0x4df047[_0x59b6('0x5')],'priority':_['last'](_0x5c29b0)['priority']+0x1,'VoiceExtensionId':_0x4df047['id']});return _0x5c29b0;});}}});};