0134c71e2e5be0ee85c9be760f17d5451c5c489b
[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 _0xa037=['indexOf','U(xcally-mixmonitor-context)','replace','Interval','findAll','IntervalId','interval','*,*,*,*','intervals','map','filter','tag','toLowerCase','CDR(tag)=','callerID','Set(CALLERID(all)=','NoOp(No\x20number\x20available)','answer','playback','includes','app','appType','custom','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','splice','GotoIfTime',',${EXTEN},','appdata','agi','XMCS-UNIQUEID=${CHANNEL(LINKEDID)}','priority','last','concat','catch','define','get','then','lodash','./voiceExtension.attributes','type','Set','CDR(type)=','exten','NoOp','alias','CDR(routeAlias)=','inbound','push','CDR(routeid)=','context','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','CDR(type)=outbound','outbound','No\x20alias\x20set','CDR(destination)=','cutdigits','${EXTEN}','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','outboundrouteid=','hasOwnProperty','recordingFormat','none','wav','trunk','timeout','options','split','length','param','phone','prefix','${EXTEN:','SIP','join'];(function(_0x594757,_0x2338e5){var _0x4706f4=function(_0x1616d3){while(--_0x1616d3){_0x594757['push'](_0x594757['shift']());}};_0x4706f4(++_0x2338e5);}(_0xa037,0x11d));var _0x7a03=function(_0x6f1197,_0x5e6a87){_0x6f1197=_0x6f1197-0x0;var _0x8f20c5=_0xa037[_0x6f1197];return _0x8f20c5;};'use strict';var _=require(_0x7a03('0x0'));var attributes=require(_0x7a03('0x1'));module['exports']=function(_0x16bce1){var _0x4144d5=_0x16bce1['models'];function _0xc7f783(_0x8a34aa){var _0x26514b=0x2;var _0x43ee60=[{'type':_0x8a34aa[_0x7a03('0x2')],'app':_0x7a03('0x3'),'appdata':_0x7a03('0x4')+_0x8a34aa['type'],'context':_0x8a34aa['context'],'exten':_0x8a34aa[_0x7a03('0x5')],'priority':_0x26514b++,'VoiceExtensionId':_0x8a34aa['id']},{'type':_0x8a34aa[_0x7a03('0x2')],'app':_0x8a34aa['alias']?_0x7a03('0x3'):_0x7a03('0x6'),'appdata':_0x8a34aa[_0x7a03('0x7')]?_0x7a03('0x8')+_0x8a34aa[_0x7a03('0x7')]:'No\x20alias\x20set','context':_0x8a34aa['context'],'exten':_0x8a34aa['exten'],'priority':_0x26514b++,'VoiceExtensionId':_0x8a34aa['id']}];if(_0x8a34aa[_0x7a03('0x2')]===_0x7a03('0x9')){_0x43ee60[_0x7a03('0xa')]({'type':_0x7a03('0x9'),'app':_0x7a03('0x3'),'appdata':_0x7a03('0xb')+_0x8a34aa['id'],'context':_0x8a34aa[_0x7a03('0xc')],'exten':_0x8a34aa['exten'],'priority':_0x26514b++,'VoiceExtensionId':_0x8a34aa['id']});}_0x43ee60[_0x7a03('0xa')]({'type':_0x8a34aa['type'],'app':'Set','appdata':_0x7a03('0xd'),'context':_0x8a34aa[_0x7a03('0xc')],'exten':_0x8a34aa[_0x7a03('0x5')],'priority':_0x26514b++,'VoiceExtensionId':_0x8a34aa['id']},{'type':_0x8a34aa['type'],'app':_0x7a03('0x3'),'appdata':_0x7a03('0xe'),'context':_0x8a34aa[_0x7a03('0xc')],'exten':_0x8a34aa['exten'],'priority':_0x26514b++,'VoiceExtensionId':_0x8a34aa['id']},{'type':_0x8a34aa['type'],'app':_0x7a03('0x3'),'appdata':_0x7a03('0xf'),'context':_0x8a34aa[_0x7a03('0xc')],'exten':_0x8a34aa['exten'],'priority':_0x26514b++,'VoiceExtensionId':_0x8a34aa['id']});return _0x43ee60;}function _0x4edcfc(_0x3772c7){var _0x2a00b5=0x2;var _0x836b45=[{'type':'outbound','app':_0x7a03('0x3'),'appdata':_0x7a03('0x10'),'context':_0x3772c7['context'],'exten':_0x3772c7[_0x7a03('0x5')],'priority':_0x2a00b5++,'VoiceExtensionId':_0x3772c7['id']},{'type':_0x7a03('0x11'),'app':_0x3772c7[_0x7a03('0x7')]?_0x7a03('0x3'):_0x7a03('0x6'),'appdata':_0x3772c7[_0x7a03('0x7')]?_0x7a03('0x8')+_0x3772c7[_0x7a03('0x7')]:_0x7a03('0x12'),'context':_0x3772c7[_0x7a03('0xc')],'exten':_0x3772c7[_0x7a03('0x5')],'priority':_0x2a00b5++,'VoiceExtensionId':_0x3772c7['id']},{'type':'outbound','app':'Set','appdata':_0x7a03('0x13')+(_0x3772c7[_0x7a03('0x14')]?'${EXTEN:'+_0x3772c7[_0x7a03('0x14')]+'}':_0x7a03('0x15')),'context':_0x3772c7['context'],'exten':_0x3772c7[_0x7a03('0x5')],'priority':_0x2a00b5++,'VoiceExtensionId':_0x3772c7['id']},{'type':_0x7a03('0x11'),'app':_0x7a03('0x3'),'appdata':_0x7a03('0xb')+_0x3772c7['id'],'context':_0x3772c7[_0x7a03('0xc')],'exten':_0x3772c7[_0x7a03('0x5')],'priority':_0x2a00b5++,'VoiceExtensionId':_0x3772c7['id']},{'type':_0x7a03('0x11'),'app':_0x7a03('0x16'),'appdata':_0x7a03('0x17')+(_0x2a00b5+0x2)+_0x7a03('0x18')+(_0x2a00b5+0x1)+')','context':_0x3772c7[_0x7a03('0xc')],'exten':_0x3772c7[_0x7a03('0x5')],'priority':_0x2a00b5++,'VoiceExtensionId':_0x3772c7['id']},{'type':_0x7a03('0x11'),'app':_0x7a03('0x3'),'appdata':_0x3772c7[_0x7a03('0x14')]?_0x7a03('0x19')+_0x3772c7['cutdigits']+'}':_0x7a03('0x1a'),'context':_0x3772c7['context'],'exten':_0x3772c7[_0x7a03('0x5')],'priority':_0x2a00b5++,'VoiceExtensionId':_0x3772c7['id']},{'type':_0x7a03('0x11'),'app':'Set','appdata':_0x7a03('0xd'),'context':_0x3772c7['context'],'exten':_0x3772c7[_0x7a03('0x5')],'priority':_0x2a00b5++,'VoiceExtensionId':_0x3772c7['id']},{'type':'outbound','app':'Set','appdata':_0x7a03('0xe'),'context':_0x3772c7[_0x7a03('0xc')],'exten':_0x3772c7[_0x7a03('0x5')],'priority':_0x2a00b5++,'VoiceExtensionId':_0x3772c7['id']},{'type':'outbound','app':_0x7a03('0x3'),'appdata':'MONITOR_OPTIONS=ab','context':_0x3772c7[_0x7a03('0xc')],'exten':_0x3772c7[_0x7a03('0x5')],'priority':_0x2a00b5++,'VoiceExtensionId':_0x3772c7['id']},{'type':'outbound','app':_0x7a03('0x3'),'appdata':_0x7a03('0x1b')+_0x3772c7['id'],'context':_0x3772c7['context'],'exten':_0x3772c7['exten'],'priority':_0x2a00b5++,'VoiceExtensionId':_0x3772c7['id']}];if(_0x3772c7[_0x7a03('0x1c')](_0x7a03('0x1d'))&&_0x3772c7['recordingFormat']!==_0x7a03('0x1e')){_0x836b45[_0x7a03('0xa')]({'type':_0x7a03('0x11'),'app':_0x7a03('0x3'),'appdata':'_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','context':_0x3772c7[_0x7a03('0xc')],'exten':_0x3772c7['exten'],'priority':_0x2a00b5++,'VoiceExtensionId':_0x3772c7['id']},{'type':_0x7a03('0x11'),'app':_0x7a03('0x3'),'appdata':'_XCALLY_MIXMONITOR_FORMAT='+_0x3772c7[_0x7a03('0x1d')]||_0x7a03('0x1f'),'context':_0x3772c7[_0x7a03('0xc')],'exten':_0x3772c7[_0x7a03('0x5')],'priority':_0x2a00b5++,'VoiceExtensionId':_0x3772c7['id']});}return _0x836b45;}function _0x412e2d(_0x1336d3,_0xff9972){var _0x1663a5=[{'name':_0x7a03('0x20'),'param':0x0},{'name':_0x7a03('0x21'),'param':0x1},{'name':_0x7a03('0x22'),'param':0x2},{'name':'url','param':0x3}];var _0x5e12a3={};var _0x55f1b4=_0xff9972[_0x7a03('0x23')](',');var _0x3aecd0=[];for(var _0x12f48a=0x0;_0x12f48a<_0x1663a5[_0x7a03('0x24')];_0x12f48a++){switch(_0x1663a5[_0x12f48a]['name']){case _0x7a03('0x20'):_0x5e12a3[_0x7a03('0x20')]=_0x55f1b4[_0x1663a5[_0x12f48a][_0x7a03('0x25')]][_0x7a03('0x23')]('/')[0x1];_0x5e12a3[_0x7a03('0x26')]=_0x55f1b4[_0x1663a5[_0x12f48a][_0x7a03('0x25')]][_0x7a03('0x23')]('/')[0x2];_0x5e12a3[_0x7a03('0x27')]=_0x5e12a3[_0x7a03('0x26')]?_0x5e12a3[_0x7a03('0x26')][_0x7a03('0x23')]('$')[0x0]:undefined;_0x5e12a3[_0x7a03('0x26')]=_0x1336d3[_0x7a03('0x14')]?(_0x5e12a3[_0x7a03('0x27')]||'')+_0x7a03('0x28')+_0x1336d3[_0x7a03('0x14')]+'}':(_0x5e12a3[_0x7a03('0x27')]||'')+_0x7a03('0x15');_0x3aecd0[_0x1663a5[_0x12f48a][_0x7a03('0x25')]]=[_0x7a03('0x29'),_0x5e12a3[_0x7a03('0x20')],_0x5e12a3['phone']][_0x7a03('0x2a')]('/');break;case _0x7a03('0x22'):_0x5e12a3[_0x7a03('0x22')]=_0x55f1b4[_0x1663a5[_0x12f48a][_0x7a03('0x25')]];if(_0x1336d3[_0x7a03('0x1d')]!==_0x7a03('0x1e')){if(_0x5e12a3[_0x7a03('0x22')][_0x7a03('0x2b')](_0x7a03('0x2c'))<0x0){_0x5e12a3[_0x7a03('0x22')]+='U(xcally-mixmonitor-context)';}}else{_0x5e12a3[_0x7a03('0x22')]=_0x5e12a3[_0x7a03('0x22')][_0x7a03('0x2d')](_0x7a03('0x2c'),'');}_0x3aecd0[_0x1663a5[_0x12f48a][_0x7a03('0x25')]]=_0x5e12a3[_0x7a03('0x22')];break;default:_0x3aecd0[_0x1663a5[_0x12f48a][_0x7a03('0x25')]]=_0x55f1b4[_0x1663a5[_0x12f48a][_0x7a03('0x25')]];}}return _0x3aecd0[_0x7a03('0x2a')](',');}function _0x762fd3(_0x432f68,_0x5e3e14,_0x19398d){return new Promise(function(_0x310a36,_0x418774){var _0x58830=[];if(_['isEmpty'](_0x5e3e14))return _0x310a36(_0x58830);_0x4144d5[_0x7a03('0x2e')][_0x7a03('0x2f')]({'attributes':['id','interval',_0x7a03('0x30')],'raw':!![]})['then'](function(_0x434b83){for(var _0xf1cc09=0x0,_0x29213d=0x0;_0xf1cc09<_0x5e3e14['length'];_0xf1cc09++,_0x29213d=0x0){var _0x36a68d=_0x5e3e14[_0xf1cc09];var _0x14706e=[];var _0x209383=[];delete _0x36a68d['id'];if(_0x36a68d[_0x7a03('0x31')]!==_0x7a03('0x32')){_0x36a68d[_0x7a03('0x33')]=[_0x36a68d['interval']];}else{_0x36a68d[_0x7a03('0x33')]=_0x36a68d[_0x7a03('0x30')]?_[_0x7a03('0x34')](_[_0x7a03('0x35')](_0x434b83,{'IntervalId':_0x36a68d['IntervalId']}),'interval'):[];}_0x36a68d[_0x7a03('0xc')]=_0x432f68['context'];_0x36a68d[_0x7a03('0x5')]=_0x432f68[_0x7a03('0x5')];if(_0x36a68d[_0x7a03('0x2')])_0x36a68d['type']=_0x36a68d[_0x7a03('0x2')]['toLowerCase']();if(_0x432f68[_0x7a03('0x2')]===_0x7a03('0x11')){if(_0x36a68d['hasOwnProperty'](_0x7a03('0x36'))&&_0x36a68d['tag']&&_0x36a68d['tag']!=='--'){_0x14706e[_0x7a03('0xa')]({'type':_0x36a68d['type'][_0x7a03('0x37')](),'app':_0x7a03('0x3'),'appdata':_0x7a03('0x38')+_0x36a68d[_0x7a03('0x36')],'context':_0x432f68['context'],'exten':_0x432f68['exten'],'priority':_0x36a68d['intervals'][_0x7a03('0x24')]+_0x19398d+_0x29213d++,'VoiceExtensionId':_0x432f68['id']});}_0x14706e[_0x7a03('0xa')]({'type':_0x36a68d[_0x7a03('0x2')][_0x7a03('0x37')](),'app':_0x7a03('0x16'),'appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):'+(_0x36a68d[_0x7a03('0x39')]?_0x7a03('0x3a')+_0x36a68d[_0x7a03('0x39')]+')':_0x7a03('0x3b')),'context':_0x432f68[_0x7a03('0xc')],'exten':_0x432f68[_0x7a03('0x5')],'priority':_0x36a68d[_0x7a03('0x33')]['length']+_0x19398d+_0x29213d++,'VoiceExtensionId':_0x432f68['id']});}else{if(_0x36a68d[_0x7a03('0x1c')](_0x7a03('0x3c'))){if(['queue',_0x7a03('0x3d')][_0x7a03('0x3e')](_0x36a68d[_0x7a03('0x3f')][_0x7a03('0x37')]())&&_0x36a68d[_0x7a03('0x40')]!==_0x7a03('0x41')){if(_0x36a68d[_0x7a03('0x3c')]){_0x14706e['push']({'type':_0x36a68d[_0x7a03('0x2')]['toLowerCase'](),'app':'ExecIf','appdata':'$[${XCALLY-MOTION-ANSWER}=0]?Answer','context':_0x432f68[_0x7a03('0xc')],'exten':_0x432f68[_0x7a03('0x5')],'priority':_0x36a68d[_0x7a03('0x33')][_0x7a03('0x24')]+_0x19398d+_0x29213d++,'VoiceExtensionId':_0x432f68['id']});_0x14706e['push']({'type':_0x36a68d[_0x7a03('0x2')]['toLowerCase'](),'app':_0x7a03('0x3'),'appdata':_0x7a03('0x42'),'context':_0x432f68[_0x7a03('0xc')],'exten':_0x432f68[_0x7a03('0x5')],'priority':_0x36a68d['intervals']['length']+_0x19398d+_0x29213d++,'VoiceExtensionId':_0x432f68['id']});}else{_0x14706e[_0x7a03('0xa')]({'type':_0x36a68d[_0x7a03('0x2')]['toLowerCase'](),'app':'ExecIf','appdata':_0x7a03('0x43'),'context':_0x432f68['context'],'exten':_0x432f68[_0x7a03('0x5')],'priority':_0x36a68d[_0x7a03('0x33')][_0x7a03('0x24')]+_0x19398d+_0x29213d++,'VoiceExtensionId':_0x432f68['id']});_0x14706e[_0x7a03('0xa')]({'type':_0x36a68d['type']['toLowerCase'](),'app':_0x7a03('0x3'),'appdata':_0x7a03('0x44'),'context':_0x432f68[_0x7a03('0xc')],'exten':_0x432f68['exten'],'priority':_0x36a68d[_0x7a03('0x33')][_0x7a03('0x24')]+_0x19398d+_0x29213d++,'VoiceExtensionId':_0x432f68['id']});}}}}for(var _0x18a23e=0x0;_0x18a23e<_0x36a68d[_0x7a03('0x33')][_0x7a03('0x24')];_0x18a23e++){var _0x1e59bc=_0x19398d+_0x36a68d[_0x7a03('0x33')][_0x7a03('0x24')];var _0x117704=_0x18a23e===_0x36a68d['intervals'][_0x7a03('0x24')]-0x1?_0x19398d+_0x14706e[_0x7a03('0x24')]+_0x209383[_0x7a03('0x24')]+0x2:_0x19398d+_0x18a23e+0x1;_0x14706e[_0x7a03('0x45')](_0x18a23e,0x0,{'type':_0x432f68[_0x7a03('0x2')],'app':_0x7a03('0x46'),'appdata':_0x36a68d['intervals'][_0x18a23e]+'?'+_0x432f68[_0x7a03('0xc')]+',${EXTEN},'+_0x1e59bc+':'+_0x432f68[_0x7a03('0xc')]+_0x7a03('0x47')+_0x117704,'exten':_0x432f68[_0x7a03('0x5')],'context':_0x432f68['context'],'priority':_0x19398d+_0x18a23e,'VoiceExtensionId':_0x432f68['id']});}if(_0x36a68d[_0x7a03('0x40')]==='outboundDial'){_0x36a68d[_0x7a03('0x48')]=_0x412e2d(_0x432f68,_0x36a68d[_0x7a03('0x48')]);}if(_0x36a68d[_0x7a03('0x40')]===_0x7a03('0x49')){_0x14706e[_0x7a03('0xa')]({'type':_0x36a68d[_0x7a03('0x2')]['toLowerCase'](),'app':_0x7a03('0x3'),'appdata':_0x7a03('0x4a'),'context':_0x432f68[_0x7a03('0xc')],'exten':_0x432f68[_0x7a03('0x5')],'priority':_0x36a68d[_0x7a03('0x33')][_0x7a03('0x24')]+_0x19398d+_0x29213d++,'VoiceExtensionId':_0x432f68['id']});}_0x36a68d[_0x7a03('0x4b')]=_0x14706e[_0x7a03('0x24')]?_[_0x7a03('0x4c')](_0x14706e)[_0x7a03('0x4b')]+0x1:_0x19398d;_0x58830=_[_0x7a03('0x4d')](_0x58830,_0x14706e,[_0x36a68d],_0x209383);_0x19398d=_[_0x7a03('0x4c')](_0x58830)[_0x7a03('0x4b')]+0x1;}return _0x310a36(_0x58830);})[_0x7a03('0x4e')](function(_0x5cf94e){_0x418774(_0x5cf94e);});});}return _0x16bce1[_0x7a03('0x4f')]('VoiceExtension',attributes,{'tableName':'voice_extensions','paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x5c1470){var _0x44ed6f=this[_0x7a03('0x50')]({'plain':!![]});var _0x1a5ef5=_0x44ed6f[_0x7a03('0x2')]==='outbound'?_0x4edcfc(_0x44ed6f):_0xc7f783(_0x44ed6f);return _0x762fd3(_0x44ed6f,_0x5c1470,_['last'](_0x1a5ef5)[_0x7a03('0x4b')]+0x1)[_0x7a03('0x51')](function(_0x1ba7f5){var _0x5e2688=_[_0x7a03('0x4d')](_0x1a5ef5,_0x1ba7f5);_0x5e2688[_0x7a03('0xa')]({'type':_0x44ed6f['type'],'app':'Hangup','exten':_0x44ed6f['exten'],'context':_0x44ed6f[_0x7a03('0xc')],'priority':_[_0x7a03('0x4c')](_0x5e2688)[_0x7a03('0x4b')]+0x1,'VoiceExtensionId':_0x44ed6f['id']});return _0x5e2688;});}}});};