Built motion from commit 753c950e.|2.5.42
[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 _0x2297=['replace','isEmpty','Interval','findAll','interval','then','*,*,*,*','intervals','IntervalId','filter','hasOwnProperty','tag','toLowerCase','CDR(tag)=','length','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):','callerID','Set(CALLERID(all)=','playback','appType','answer','$[${XCALLY-MOTION-ANSWER}=0]?Answer','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','splice','GotoIfTime','outboundDial','appdata','priority','concat','last','catch','get','Hangup','lodash','./voiceExtension.attributes','type','Set','CDR(type)=','context','exten','alias','NoOp','inbound','push','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','outbound','CDR(type)=outbound','CDR(destination)=','cutdigits','${EXTEN:','${EXTEN}','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','outboundrouteid=','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','wav','timeout','url','split','name','prefix','phone','param','trunk','join','options','indexOf','U(xcally-mixmonitor-context)'];(function(_0x4b9a8d,_0x12b15b){var _0x19c1d1=function(_0x218fde){while(--_0x218fde){_0x4b9a8d['push'](_0x4b9a8d['shift']());}};_0x19c1d1(++_0x12b15b);}(_0x2297,0x100));var _0x7229=function(_0xcf912,_0x17c335){_0xcf912=_0xcf912-0x0;var _0x483a88=_0x2297[_0xcf912];return _0x483a88;};'use strict';var _=require(_0x7229('0x0'));var attributes=require(_0x7229('0x1'));module['exports']=function(_0x236599){var _0x2a9636=_0x236599['models'];function _0x13b011(_0xeea970){var _0x18c8b5=0x2;var _0xfd6912=[{'type':_0xeea970[_0x7229('0x2')],'app':_0x7229('0x3'),'appdata':_0x7229('0x4')+_0xeea970[_0x7229('0x2')],'context':_0xeea970[_0x7229('0x5')],'exten':_0xeea970[_0x7229('0x6')],'priority':_0x18c8b5++,'VoiceExtensionId':_0xeea970['id']},{'type':_0xeea970[_0x7229('0x2')],'app':_0xeea970[_0x7229('0x7')]?_0x7229('0x3'):_0x7229('0x8'),'appdata':_0xeea970[_0x7229('0x7')]?'CDR(routeAlias)='+_0xeea970[_0x7229('0x7')]:'No\x20alias\x20set','context':_0xeea970[_0x7229('0x5')],'exten':_0xeea970[_0x7229('0x6')],'priority':_0x18c8b5++,'VoiceExtensionId':_0xeea970['id']}];if(_0xeea970['type']===_0x7229('0x9')){_0xfd6912[_0x7229('0xa')]({'type':_0x7229('0x9'),'app':_0x7229('0x3'),'appdata':'CDR(routeid)='+_0xeea970['id'],'context':_0xeea970['context'],'exten':_0xeea970[_0x7229('0x6')],'priority':_0x18c8b5++,'VoiceExtensionId':_0xeea970['id']});}_0xfd6912[_0x7229('0xa')]({'type':_0xeea970[_0x7229('0x2')],'app':_0x7229('0x3'),'appdata':_0x7229('0xb'),'context':_0xeea970[_0x7229('0x5')],'exten':_0xeea970['exten'],'priority':_0x18c8b5++,'VoiceExtensionId':_0xeea970['id']},{'type':_0xeea970[_0x7229('0x2')],'app':_0x7229('0x3'),'appdata':_0x7229('0xc'),'context':_0xeea970['context'],'exten':_0xeea970[_0x7229('0x6')],'priority':_0x18c8b5++,'VoiceExtensionId':_0xeea970['id']},{'type':_0xeea970[_0x7229('0x2')],'app':_0x7229('0x3'),'appdata':'MONITOR_OPTIONS=ab','context':_0xeea970[_0x7229('0x5')],'exten':_0xeea970[_0x7229('0x6')],'priority':_0x18c8b5++,'VoiceExtensionId':_0xeea970['id']});return _0xfd6912;}function _0x561d6e(_0x3590b2){var _0x503a2b=0x2;var _0x4c61f6=[{'type':_0x7229('0xd'),'app':_0x7229('0x3'),'appdata':_0x7229('0xe'),'context':_0x3590b2[_0x7229('0x5')],'exten':_0x3590b2[_0x7229('0x6')],'priority':_0x503a2b++,'VoiceExtensionId':_0x3590b2['id']},{'type':'outbound','app':_0x3590b2[_0x7229('0x7')]?_0x7229('0x3'):_0x7229('0x8'),'appdata':_0x3590b2[_0x7229('0x7')]?'CDR(routeAlias)='+_0x3590b2[_0x7229('0x7')]:'No\x20alias\x20set','context':_0x3590b2[_0x7229('0x5')],'exten':_0x3590b2[_0x7229('0x6')],'priority':_0x503a2b++,'VoiceExtensionId':_0x3590b2['id']},{'type':_0x7229('0xd'),'app':'Set','appdata':_0x7229('0xf')+(_0x3590b2[_0x7229('0x10')]?_0x7229('0x11')+_0x3590b2[_0x7229('0x10')]+'}':_0x7229('0x12')),'context':_0x3590b2[_0x7229('0x5')],'exten':_0x3590b2[_0x7229('0x6')],'priority':_0x503a2b++,'VoiceExtensionId':_0x3590b2['id']},{'type':_0x7229('0xd'),'app':_0x7229('0x3'),'appdata':'CDR(routeid)='+_0x3590b2['id'],'context':_0x3590b2[_0x7229('0x5')],'exten':_0x3590b2[_0x7229('0x6')],'priority':_0x503a2b++,'VoiceExtensionId':_0x3590b2['id']},{'type':_0x7229('0xd'),'app':_0x7229('0x13'),'appdata':_0x7229('0x14')+(_0x503a2b+0x2)+_0x7229('0x15')+(_0x503a2b+0x1)+')','context':_0x3590b2[_0x7229('0x5')],'exten':_0x3590b2['exten'],'priority':_0x503a2b++,'VoiceExtensionId':_0x3590b2['id']},{'type':_0x7229('0xd'),'app':'Set','appdata':_0x3590b2['cutdigits']?'CDR(prefix)=${EXTEN:0:'+_0x3590b2[_0x7229('0x10')]+'}':'CDR(prefix)=noprefix','context':_0x3590b2[_0x7229('0x5')],'exten':_0x3590b2[_0x7229('0x6')],'priority':_0x503a2b++,'VoiceExtensionId':_0x3590b2['id']},{'type':'outbound','app':'Set','appdata':_0x7229('0xb'),'context':_0x3590b2['context'],'exten':_0x3590b2['exten'],'priority':_0x503a2b++,'VoiceExtensionId':_0x3590b2['id']},{'type':_0x7229('0xd'),'app':_0x7229('0x3'),'appdata':_0x7229('0xc'),'context':_0x3590b2['context'],'exten':_0x3590b2[_0x7229('0x6')],'priority':_0x503a2b++,'VoiceExtensionId':_0x3590b2['id']},{'type':_0x7229('0xd'),'app':_0x7229('0x3'),'appdata':'MONITOR_OPTIONS=ab','context':_0x3590b2[_0x7229('0x5')],'exten':_0x3590b2[_0x7229('0x6')],'priority':_0x503a2b++,'VoiceExtensionId':_0x3590b2['id']},{'type':_0x7229('0xd'),'app':'Set','appdata':_0x7229('0x16')+_0x3590b2['id'],'context':_0x3590b2['context'],'exten':_0x3590b2[_0x7229('0x6')],'priority':_0x503a2b++,'VoiceExtensionId':_0x3590b2['id']}];if(_0x3590b2['hasOwnProperty']('recordingFormat')&&_0x3590b2[_0x7229('0x17')]!==_0x7229('0x18')){_0x4c61f6[_0x7229('0xa')]({'type':_0x7229('0xd'),'app':_0x7229('0x3'),'appdata':_0x7229('0x19'),'context':_0x3590b2[_0x7229('0x5')],'exten':_0x3590b2['exten'],'priority':_0x503a2b++,'VoiceExtensionId':_0x3590b2['id']},{'type':_0x7229('0xd'),'app':_0x7229('0x3'),'appdata':_0x7229('0x1a')+_0x3590b2[_0x7229('0x17')]||_0x7229('0x1b'),'context':_0x3590b2[_0x7229('0x5')],'exten':_0x3590b2[_0x7229('0x6')],'priority':_0x503a2b++,'VoiceExtensionId':_0x3590b2['id']});}return _0x4c61f6;}function _0x1617a3(_0x3bc89b,_0x565f6c){var _0x1e675a=[{'name':'trunk','param':0x0},{'name':_0x7229('0x1c'),'param':0x1},{'name':'options','param':0x2},{'name':_0x7229('0x1d'),'param':0x3}];var _0x248563={};var _0x1b4f61=_0x565f6c[_0x7229('0x1e')](',');var _0x495e61=[];for(var _0x3feab2=0x0;_0x3feab2<_0x1e675a['length'];_0x3feab2++){switch(_0x1e675a[_0x3feab2][_0x7229('0x1f')]){case'trunk':_0x248563['trunk']=_0x1b4f61[_0x1e675a[_0x3feab2]['param']][_0x7229('0x1e')]('/')[0x1];_0x248563['phone']=_0x1b4f61[_0x1e675a[_0x3feab2]['param']][_0x7229('0x1e')]('/')[0x2];_0x248563[_0x7229('0x20')]=_0x248563[_0x7229('0x21')]?_0x248563[_0x7229('0x21')][_0x7229('0x1e')]('$')[0x0]:undefined;_0x248563[_0x7229('0x21')]=_0x3bc89b[_0x7229('0x10')]?(_0x248563[_0x7229('0x20')]||'')+_0x7229('0x11')+_0x3bc89b[_0x7229('0x10')]+'}':(_0x248563[_0x7229('0x20')]||'')+'${EXTEN}';_0x495e61[_0x1e675a[_0x3feab2][_0x7229('0x22')]]=['SIP',_0x248563[_0x7229('0x23')],_0x248563[_0x7229('0x21')]][_0x7229('0x24')]('/');break;case _0x7229('0x25'):_0x248563[_0x7229('0x25')]=_0x1b4f61[_0x1e675a[_0x3feab2][_0x7229('0x22')]];if(_0x3bc89b['recordingFormat']!=='none'){if(_0x248563[_0x7229('0x25')][_0x7229('0x26')](_0x7229('0x27'))<0x0){_0x248563['options']+=_0x7229('0x27');}}else{_0x248563[_0x7229('0x25')]=_0x248563[_0x7229('0x25')][_0x7229('0x28')](_0x7229('0x27'),'');}_0x495e61[_0x1e675a[_0x3feab2]['param']]=_0x248563[_0x7229('0x25')];break;default:_0x495e61[_0x1e675a[_0x3feab2][_0x7229('0x22')]]=_0x1b4f61[_0x1e675a[_0x3feab2][_0x7229('0x22')]];}}return _0x495e61[_0x7229('0x24')](',');}function _0x32fa17(_0x2ed927,_0x5654c5,_0x32923a){return new Promise(function(_0x15587c,_0x180831){var _0x21f29f=[];if(_[_0x7229('0x29')](_0x5654c5))return _0x15587c(_0x21f29f);_0x2a9636[_0x7229('0x2a')][_0x7229('0x2b')]({'attributes':['id',_0x7229('0x2c'),'IntervalId'],'raw':!![]})[_0x7229('0x2d')](function(_0x387b73){for(var _0x281896=0x0,_0x4eb717=0x0;_0x281896<_0x5654c5['length'];_0x281896++,_0x4eb717=0x0){var _0xddfe0e=_0x5654c5[_0x281896];var _0x45930e=[];var _0x31a015=[];delete _0xddfe0e['id'];if(_0xddfe0e['interval']!==_0x7229('0x2e')){_0xddfe0e[_0x7229('0x2f')]=[_0xddfe0e[_0x7229('0x2c')]];}else{_0xddfe0e[_0x7229('0x2f')]=_0xddfe0e[_0x7229('0x30')]?_['map'](_[_0x7229('0x31')](_0x387b73,{'IntervalId':_0xddfe0e['IntervalId']}),_0x7229('0x2c')):[];}_0xddfe0e[_0x7229('0x5')]=_0x2ed927[_0x7229('0x5')];_0xddfe0e[_0x7229('0x6')]=_0x2ed927[_0x7229('0x6')];if(_0xddfe0e[_0x7229('0x2')])_0xddfe0e['type']=_0xddfe0e[_0x7229('0x2')]['toLowerCase']();if(_0x2ed927[_0x7229('0x2')]===_0x7229('0xd')){if(_0xddfe0e[_0x7229('0x32')](_0x7229('0x33'))&&_0xddfe0e['tag']&&_0xddfe0e[_0x7229('0x33')]!=='--'){_0x45930e[_0x7229('0xa')]({'type':_0xddfe0e[_0x7229('0x2')][_0x7229('0x34')](),'app':_0x7229('0x3'),'appdata':_0x7229('0x35')+_0xddfe0e[_0x7229('0x33')],'context':_0x2ed927[_0x7229('0x5')],'exten':_0x2ed927[_0x7229('0x6')],'priority':_0xddfe0e[_0x7229('0x2f')][_0x7229('0x36')]+_0x32923a+_0x4eb717++,'VoiceExtensionId':_0x2ed927['id']});}_0x45930e[_0x7229('0xa')]({'type':_0xddfe0e[_0x7229('0x2')]['toLowerCase'](),'app':_0x7229('0x13'),'appdata':_0x7229('0x37')+(_0xddfe0e[_0x7229('0x38')]?_0x7229('0x39')+_0xddfe0e['callerID']+')':'NoOp(No\x20number\x20available)'),'context':_0x2ed927[_0x7229('0x5')],'exten':_0x2ed927[_0x7229('0x6')],'priority':_0xddfe0e[_0x7229('0x2f')]['length']+_0x32923a+_0x4eb717++,'VoiceExtensionId':_0x2ed927['id']});}else{if(_0xddfe0e[_0x7229('0x32')]('answer')){if(['queue',_0x7229('0x3a')]['includes'](_0xddfe0e['app']['toLowerCase']())&&_0xddfe0e[_0x7229('0x3b')]!=='custom'){if(_0xddfe0e[_0x7229('0x3c')]){_0x45930e[_0x7229('0xa')]({'type':_0xddfe0e[_0x7229('0x2')]['toLowerCase'](),'app':_0x7229('0x13'),'appdata':_0x7229('0x3d'),'context':_0x2ed927['context'],'exten':_0x2ed927[_0x7229('0x6')],'priority':_0xddfe0e[_0x7229('0x2f')][_0x7229('0x36')]+_0x32923a+_0x4eb717++,'VoiceExtensionId':_0x2ed927['id']});_0x45930e[_0x7229('0xa')]({'type':_0xddfe0e['type'][_0x7229('0x34')](),'app':_0x7229('0x3'),'appdata':'XCALLY-MOTION-ANSWER=1','context':_0x2ed927[_0x7229('0x5')],'exten':_0x2ed927[_0x7229('0x6')],'priority':_0xddfe0e['intervals'][_0x7229('0x36')]+_0x32923a+_0x4eb717++,'VoiceExtensionId':_0x2ed927['id']});}else{_0x45930e[_0x7229('0xa')]({'type':_0xddfe0e[_0x7229('0x2')][_0x7229('0x34')](),'app':'ExecIf','appdata':_0x7229('0x3e'),'context':_0x2ed927[_0x7229('0x5')],'exten':_0x2ed927[_0x7229('0x6')],'priority':_0xddfe0e['intervals']['length']+_0x32923a+_0x4eb717++,'VoiceExtensionId':_0x2ed927['id']});_0x45930e[_0x7229('0xa')]({'type':_0xddfe0e['type']['toLowerCase'](),'app':'Set','appdata':_0x7229('0x3f'),'context':_0x2ed927['context'],'exten':_0x2ed927[_0x7229('0x6')],'priority':_0xddfe0e[_0x7229('0x2f')][_0x7229('0x36')]+_0x32923a+_0x4eb717++,'VoiceExtensionId':_0x2ed927['id']});}}}}for(var _0x509493=0x0;_0x509493<_0xddfe0e[_0x7229('0x2f')]['length'];_0x509493++){var _0x2b0756=_0x32923a+_0xddfe0e[_0x7229('0x2f')][_0x7229('0x36')];var _0x22728e=_0x509493===_0xddfe0e[_0x7229('0x2f')][_0x7229('0x36')]-0x1?_0x32923a+_0x45930e[_0x7229('0x36')]+_0x31a015[_0x7229('0x36')]+0x2:_0x32923a+_0x509493+0x1;_0x45930e[_0x7229('0x40')](_0x509493,0x0,{'type':_0x2ed927[_0x7229('0x2')],'app':_0x7229('0x41'),'appdata':_0xddfe0e[_0x7229('0x2f')][_0x509493]+'?'+_0x2ed927[_0x7229('0x5')]+',${EXTEN},'+_0x2b0756+':'+_0x2ed927[_0x7229('0x5')]+',${EXTEN},'+_0x22728e,'exten':_0x2ed927[_0x7229('0x6')],'context':_0x2ed927['context'],'priority':_0x32923a+_0x509493,'VoiceExtensionId':_0x2ed927['id']});}if(_0xddfe0e[_0x7229('0x3b')]===_0x7229('0x42'))_0xddfe0e[_0x7229('0x43')]=_0x1617a3(_0x2ed927,_0xddfe0e[_0x7229('0x43')]);_0xddfe0e[_0x7229('0x44')]=_0x45930e['length']?_['last'](_0x45930e)[_0x7229('0x44')]+0x1:_0x32923a;_0x21f29f=_[_0x7229('0x45')](_0x21f29f,_0x45930e,[_0xddfe0e],_0x31a015);_0x32923a=_[_0x7229('0x46')](_0x21f29f)[_0x7229('0x44')]+0x1;}return _0x15587c(_0x21f29f);})[_0x7229('0x47')](function(_0x178e0d){_0x180831(_0x178e0d);});});}return _0x236599['define']('VoiceExtension',attributes,{'tableName':'voice_extensions','paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x1d0c1b){var _0x245ea4=this[_0x7229('0x48')]({'plain':!![]});var _0xc1b75f=_0x245ea4[_0x7229('0x2')]==='outbound'?_0x561d6e(_0x245ea4):_0x13b011(_0x245ea4);return _0x32fa17(_0x245ea4,_0x1d0c1b,_[_0x7229('0x46')](_0xc1b75f)['priority']+0x1)[_0x7229('0x2d')](function(_0x8e69f2){var _0xac2726=_['concat'](_0xc1b75f,_0x8e69f2);_0xac2726[_0x7229('0xa')]({'type':_0x245ea4[_0x7229('0x2')],'app':_0x7229('0x49'),'exten':_0x245ea4[_0x7229('0x6')],'context':_0x245ea4[_0x7229('0x5')],'priority':_['last'](_0xac2726)[_0x7229('0x44')]+0x1,'VoiceExtensionId':_0x245ea4['id']});return _0xac2726;});}}});};