Built motion from commit d1eab355.|2.6.28
[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 _0xedc0=['ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','outboundrouteid=','recordingFormat','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','wav','trunk','timeout','options','url','split','length','name','param','prefix','phone','SIP','join','none','indexOf','U(xcally-mixmonitor-context)','replace','isEmpty','findAll','interval','IntervalId','*,*,*,*','intervals','map','toLowerCase','hasOwnProperty','tag','CDR(tag)=','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):','Set(CALLERID(all)=','callerID','NoOp(No\x20number\x20available)','queue','playback','includes','app','custom','answer','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','XCALLY-MOTION-PROGRESS=1','splice','GotoIfTime',',${EXTEN},','outboundDial','appdata','appType','priority','last','concat','catch','define','voice_extensions','get','Hangup','exports','models','Set','CDR(type)=','type','context','alias','NoOp','CDR(routeAlias)=','No\x20alias\x20set','exten','inbound','push','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','outbound','CDR(type)=outbound','CDR(destination)=','${EXTEN:','cutdigits'];(function(_0x4a8aee,_0x1996a1){var _0x480e01=function(_0x464e14){while(--_0x464e14){_0x4a8aee['push'](_0x4a8aee['shift']());}};_0x480e01(++_0x1996a1);}(_0xedc0,0x18f));var _0x0edc=function(_0x20a4dc,_0x2bd7c7){_0x20a4dc=_0x20a4dc-0x0;var _0x49000f=_0xedc0[_0x20a4dc];return _0x49000f;};'use strict';var _=require('lodash');var attributes=require('./voiceExtension.attributes');module[_0x0edc('0x0')]=function(_0x522db8){var _0x47ed85=_0x522db8[_0x0edc('0x1')];function _0x11171f(_0x4547a7){var _0x5fb351=0x2;var _0x18184b=[{'type':_0x4547a7['type'],'app':_0x0edc('0x2'),'appdata':_0x0edc('0x3')+_0x4547a7[_0x0edc('0x4')],'context':_0x4547a7[_0x0edc('0x5')],'exten':_0x4547a7['exten'],'priority':_0x5fb351++,'VoiceExtensionId':_0x4547a7['id']},{'type':_0x4547a7['type'],'app':_0x4547a7[_0x0edc('0x6')]?'Set':_0x0edc('0x7'),'appdata':_0x4547a7['alias']?_0x0edc('0x8')+_0x4547a7['alias']:_0x0edc('0x9'),'context':_0x4547a7[_0x0edc('0x5')],'exten':_0x4547a7[_0x0edc('0xa')],'priority':_0x5fb351++,'VoiceExtensionId':_0x4547a7['id']}];if(_0x4547a7[_0x0edc('0x4')]===_0x0edc('0xb')){_0x18184b['push']({'type':'inbound','app':_0x0edc('0x2'),'appdata':'CDR(routeid)='+_0x4547a7['id'],'context':_0x4547a7[_0x0edc('0x5')],'exten':_0x4547a7['exten'],'priority':_0x5fb351++,'VoiceExtensionId':_0x4547a7['id']});}_0x18184b[_0x0edc('0xc')]({'type':_0x4547a7[_0x0edc('0x4')],'app':_0x0edc('0x2'),'appdata':_0x0edc('0xd'),'context':_0x4547a7[_0x0edc('0x5')],'exten':_0x4547a7[_0x0edc('0xa')],'priority':_0x5fb351++,'VoiceExtensionId':_0x4547a7['id']},{'type':_0x4547a7[_0x0edc('0x4')],'app':_0x0edc('0x2'),'appdata':_0x0edc('0xe'),'context':_0x4547a7[_0x0edc('0x5')],'exten':_0x4547a7[_0x0edc('0xa')],'priority':_0x5fb351++,'VoiceExtensionId':_0x4547a7['id']},{'type':_0x4547a7[_0x0edc('0x4')],'app':_0x0edc('0x2'),'appdata':_0x0edc('0xf'),'context':_0x4547a7[_0x0edc('0x5')],'exten':_0x4547a7[_0x0edc('0xa')],'priority':_0x5fb351++,'VoiceExtensionId':_0x4547a7['id']});return _0x18184b;}function _0x52d193(_0x29021c){var _0x117c08=0x2;var _0x46acf2=[{'type':_0x0edc('0x10'),'app':'Set','appdata':_0x0edc('0x11'),'context':_0x29021c[_0x0edc('0x5')],'exten':_0x29021c[_0x0edc('0xa')],'priority':_0x117c08++,'VoiceExtensionId':_0x29021c['id']},{'type':_0x0edc('0x10'),'app':_0x29021c['alias']?_0x0edc('0x2'):'NoOp','appdata':_0x29021c[_0x0edc('0x6')]?'CDR(routeAlias)='+_0x29021c[_0x0edc('0x6')]:_0x0edc('0x9'),'context':_0x29021c['context'],'exten':_0x29021c[_0x0edc('0xa')],'priority':_0x117c08++,'VoiceExtensionId':_0x29021c['id']},{'type':_0x0edc('0x10'),'app':_0x0edc('0x2'),'appdata':_0x0edc('0x12')+(_0x29021c['cutdigits']?_0x0edc('0x13')+_0x29021c[_0x0edc('0x14')]+'}':'${EXTEN}'),'context':_0x29021c[_0x0edc('0x5')],'exten':_0x29021c[_0x0edc('0xa')],'priority':_0x117c08++,'VoiceExtensionId':_0x29021c['id']},{'type':_0x0edc('0x10'),'app':'Set','appdata':'CDR(routeid)='+_0x29021c['id'],'context':_0x29021c[_0x0edc('0x5')],'exten':_0x29021c[_0x0edc('0xa')],'priority':_0x117c08++,'VoiceExtensionId':_0x29021c['id']},{'type':_0x0edc('0x10'),'app':_0x0edc('0x15'),'appdata':_0x0edc('0x16')+(_0x117c08+0x2)+_0x0edc('0x17')+(_0x117c08+0x1)+')','context':_0x29021c[_0x0edc('0x5')],'exten':_0x29021c['exten'],'priority':_0x117c08++,'VoiceExtensionId':_0x29021c['id']},{'type':_0x0edc('0x10'),'app':_0x0edc('0x2'),'appdata':_0x29021c[_0x0edc('0x14')]?_0x0edc('0x18')+_0x29021c[_0x0edc('0x14')]+'}':_0x0edc('0x19'),'context':_0x29021c[_0x0edc('0x5')],'exten':_0x29021c['exten'],'priority':_0x117c08++,'VoiceExtensionId':_0x29021c['id']},{'type':_0x0edc('0x10'),'app':_0x0edc('0x2'),'appdata':_0x0edc('0xd'),'context':_0x29021c[_0x0edc('0x5')],'exten':_0x29021c['exten'],'priority':_0x117c08++,'VoiceExtensionId':_0x29021c['id']},{'type':_0x0edc('0x10'),'app':_0x0edc('0x2'),'appdata':'XCALLY-MOTION-PROGRESS=0','context':_0x29021c[_0x0edc('0x5')],'exten':_0x29021c[_0x0edc('0xa')],'priority':_0x117c08++,'VoiceExtensionId':_0x29021c['id']},{'type':_0x0edc('0x10'),'app':_0x0edc('0x2'),'appdata':_0x0edc('0xf'),'context':_0x29021c[_0x0edc('0x5')],'exten':_0x29021c[_0x0edc('0xa')],'priority':_0x117c08++,'VoiceExtensionId':_0x29021c['id']},{'type':_0x0edc('0x10'),'app':_0x0edc('0x2'),'appdata':_0x0edc('0x1a')+_0x29021c['id'],'context':_0x29021c[_0x0edc('0x5')],'exten':_0x29021c[_0x0edc('0xa')],'priority':_0x117c08++,'VoiceExtensionId':_0x29021c['id']}];if(_0x29021c['hasOwnProperty'](_0x0edc('0x1b'))&&_0x29021c['recordingFormat']!=='none'){_0x46acf2[_0x0edc('0xc')]({'type':'outbound','app':'Set','appdata':_0x0edc('0x1c'),'context':_0x29021c[_0x0edc('0x5')],'exten':_0x29021c[_0x0edc('0xa')],'priority':_0x117c08++,'VoiceExtensionId':_0x29021c['id']},{'type':_0x0edc('0x10'),'app':_0x0edc('0x2'),'appdata':'_XCALLY_MIXMONITOR_FORMAT='+_0x29021c['recordingFormat']||_0x0edc('0x1d'),'context':_0x29021c[_0x0edc('0x5')],'exten':_0x29021c[_0x0edc('0xa')],'priority':_0x117c08++,'VoiceExtensionId':_0x29021c['id']});}return _0x46acf2;}function _0x5c5c65(_0x58d850,_0x59fd6c){var _0x461a65=[{'name':_0x0edc('0x1e'),'param':0x0},{'name':_0x0edc('0x1f'),'param':0x1},{'name':_0x0edc('0x20'),'param':0x2},{'name':_0x0edc('0x21'),'param':0x3}];var _0x445f5f={};var _0x52ef48=_0x59fd6c[_0x0edc('0x22')](',');var _0x348f0f=[];for(var _0x431a0f=0x0;_0x431a0f<_0x461a65[_0x0edc('0x23')];_0x431a0f++){switch(_0x461a65[_0x431a0f][_0x0edc('0x24')]){case _0x0edc('0x1e'):_0x445f5f[_0x0edc('0x1e')]=_0x52ef48[_0x461a65[_0x431a0f][_0x0edc('0x25')]][_0x0edc('0x22')]('/')[0x1];_0x445f5f['phone']=_0x52ef48[_0x461a65[_0x431a0f]['param']][_0x0edc('0x22')]('/')[0x2];_0x445f5f[_0x0edc('0x26')]=_0x445f5f[_0x0edc('0x27')]?_0x445f5f[_0x0edc('0x27')]['split']('$')[0x0]:undefined;_0x445f5f[_0x0edc('0x27')]=_0x58d850[_0x0edc('0x14')]?(_0x445f5f[_0x0edc('0x26')]||'')+_0x0edc('0x13')+_0x58d850[_0x0edc('0x14')]+'}':(_0x445f5f[_0x0edc('0x26')]||'')+'${EXTEN}';_0x348f0f[_0x461a65[_0x431a0f][_0x0edc('0x25')]]=[_0x0edc('0x28'),_0x445f5f[_0x0edc('0x1e')],_0x445f5f[_0x0edc('0x27')]][_0x0edc('0x29')]('/');break;case _0x0edc('0x20'):_0x445f5f[_0x0edc('0x20')]=_0x52ef48[_0x461a65[_0x431a0f][_0x0edc('0x25')]];if(_0x58d850['recordingFormat']!==_0x0edc('0x2a')){if(_0x445f5f[_0x0edc('0x20')][_0x0edc('0x2b')](_0x0edc('0x2c'))<0x0){_0x445f5f[_0x0edc('0x20')]+=_0x0edc('0x2c');}}else{_0x445f5f[_0x0edc('0x20')]=_0x445f5f[_0x0edc('0x20')][_0x0edc('0x2d')](_0x0edc('0x2c'),'');}_0x348f0f[_0x461a65[_0x431a0f][_0x0edc('0x25')]]=_0x445f5f[_0x0edc('0x20')];break;default:_0x348f0f[_0x461a65[_0x431a0f][_0x0edc('0x25')]]=_0x52ef48[_0x461a65[_0x431a0f][_0x0edc('0x25')]];}}return _0x348f0f['join'](',');}function _0x50c697(_0xdaf6a1,_0x4815d1,_0x14bb4d){return new Promise(function(_0x489870,_0x3332fd){var _0x2cf594=[];if(_[_0x0edc('0x2e')](_0x4815d1))return _0x489870(_0x2cf594);_0x47ed85['Interval'][_0x0edc('0x2f')]({'attributes':['id',_0x0edc('0x30'),_0x0edc('0x31')],'raw':!![]})['then'](function(_0x30d29f){for(var _0x33827c=0x0,_0x1f5fa1=0x0;_0x33827c<_0x4815d1[_0x0edc('0x23')];_0x33827c++,_0x1f5fa1=0x0){var _0x576579=_0x4815d1[_0x33827c];var _0x33ae04=[];var _0xa843a9=[];delete _0x576579['id'];if(_0x576579[_0x0edc('0x30')]!==_0x0edc('0x32')){_0x576579['intervals']=[_0x576579['interval']];}else{_0x576579[_0x0edc('0x33')]=_0x576579[_0x0edc('0x31')]?_[_0x0edc('0x34')](_['filter'](_0x30d29f,{'IntervalId':_0x576579[_0x0edc('0x31')]}),_0x0edc('0x30')):[];}_0x576579[_0x0edc('0x5')]=_0xdaf6a1[_0x0edc('0x5')];_0x576579[_0x0edc('0xa')]=_0xdaf6a1[_0x0edc('0xa')];if(_0x576579[_0x0edc('0x4')])_0x576579[_0x0edc('0x4')]=_0x576579[_0x0edc('0x4')][_0x0edc('0x35')]();if(_0xdaf6a1[_0x0edc('0x4')]==='outbound'){if(_0x576579[_0x0edc('0x36')](_0x0edc('0x37'))&&_0x576579['tag']&&_0x576579['tag']!=='--'){_0x33ae04[_0x0edc('0xc')]({'type':_0x576579[_0x0edc('0x4')]['toLowerCase'](),'app':_0x0edc('0x2'),'appdata':_0x0edc('0x38')+_0x576579[_0x0edc('0x37')],'context':_0xdaf6a1[_0x0edc('0x5')],'exten':_0xdaf6a1[_0x0edc('0xa')],'priority':_0x576579['intervals'][_0x0edc('0x23')]+_0x14bb4d+_0x1f5fa1++,'VoiceExtensionId':_0xdaf6a1['id']});}_0x33ae04['push']({'type':_0x576579[_0x0edc('0x4')][_0x0edc('0x35')](),'app':_0x0edc('0x15'),'appdata':_0x0edc('0x39')+(_0x576579['callerID']?_0x0edc('0x3a')+_0x576579[_0x0edc('0x3b')]+')':_0x0edc('0x3c')),'context':_0xdaf6a1[_0x0edc('0x5')],'exten':_0xdaf6a1[_0x0edc('0xa')],'priority':_0x576579[_0x0edc('0x33')][_0x0edc('0x23')]+_0x14bb4d+_0x1f5fa1++,'VoiceExtensionId':_0xdaf6a1['id']});}else{if(_0x576579[_0x0edc('0x36')]('answer')){if([_0x0edc('0x3d'),_0x0edc('0x3e')][_0x0edc('0x3f')](_0x576579[_0x0edc('0x40')]['toLowerCase']())&&_0x576579['appType']!==_0x0edc('0x41')){if(_0x576579[_0x0edc('0x42')]){_0x33ae04[_0x0edc('0xc')]({'type':_0x576579[_0x0edc('0x4')]['toLowerCase'](),'app':_0x0edc('0x15'),'appdata':_0x0edc('0x43'),'context':_0xdaf6a1[_0x0edc('0x5')],'exten':_0xdaf6a1[_0x0edc('0xa')],'priority':_0x576579[_0x0edc('0x33')][_0x0edc('0x23')]+_0x14bb4d+_0x1f5fa1++,'VoiceExtensionId':_0xdaf6a1['id']});_0x33ae04[_0x0edc('0xc')]({'type':_0x576579['type'][_0x0edc('0x35')](),'app':_0x0edc('0x2'),'appdata':_0x0edc('0x44'),'context':_0xdaf6a1['context'],'exten':_0xdaf6a1[_0x0edc('0xa')],'priority':_0x576579[_0x0edc('0x33')][_0x0edc('0x23')]+_0x14bb4d+_0x1f5fa1++,'VoiceExtensionId':_0xdaf6a1['id']});}else{_0x33ae04[_0x0edc('0xc')]({'type':_0x576579[_0x0edc('0x4')][_0x0edc('0x35')](),'app':_0x0edc('0x15'),'appdata':'$[${XCALLY-MOTION-PROGRESS}=0]?Progress','context':_0xdaf6a1[_0x0edc('0x5')],'exten':_0xdaf6a1[_0x0edc('0xa')],'priority':_0x576579[_0x0edc('0x33')][_0x0edc('0x23')]+_0x14bb4d+_0x1f5fa1++,'VoiceExtensionId':_0xdaf6a1['id']});_0x33ae04['push']({'type':_0x576579[_0x0edc('0x4')]['toLowerCase'](),'app':_0x0edc('0x2'),'appdata':_0x0edc('0x45'),'context':_0xdaf6a1[_0x0edc('0x5')],'exten':_0xdaf6a1['exten'],'priority':_0x576579[_0x0edc('0x33')][_0x0edc('0x23')]+_0x14bb4d+_0x1f5fa1++,'VoiceExtensionId':_0xdaf6a1['id']});}}}}for(var _0x5495f6=0x0;_0x5495f6<_0x576579[_0x0edc('0x33')]['length'];_0x5495f6++){var _0x11b6a6=_0x14bb4d+_0x576579[_0x0edc('0x33')]['length'];var _0xacb50e=_0x5495f6===_0x576579[_0x0edc('0x33')][_0x0edc('0x23')]-0x1?_0x14bb4d+_0x33ae04[_0x0edc('0x23')]+_0xa843a9['length']+0x2:_0x14bb4d+_0x5495f6+0x1;_0x33ae04[_0x0edc('0x46')](_0x5495f6,0x0,{'type':_0xdaf6a1[_0x0edc('0x4')],'app':_0x0edc('0x47'),'appdata':_0x576579[_0x0edc('0x33')][_0x5495f6]+'?'+_0xdaf6a1['context']+_0x0edc('0x48')+_0x11b6a6+':'+_0xdaf6a1[_0x0edc('0x5')]+_0x0edc('0x48')+_0xacb50e,'exten':_0xdaf6a1[_0x0edc('0xa')],'context':_0xdaf6a1['context'],'priority':_0x14bb4d+_0x5495f6,'VoiceExtensionId':_0xdaf6a1['id']});}if(_0x576579['appType']===_0x0edc('0x49')){_0x576579[_0x0edc('0x4a')]=_0x5c5c65(_0xdaf6a1,_0x576579[_0x0edc('0x4a')]);}if(_0x576579[_0x0edc('0x4b')]==='agi'){_0x33ae04[_0x0edc('0xc')]({'type':_0x576579[_0x0edc('0x4')]['toLowerCase'](),'app':_0x0edc('0x2'),'appdata':'XMCS-UNIQUEID=${CHANNEL(LINKEDID)}','context':_0xdaf6a1[_0x0edc('0x5')],'exten':_0xdaf6a1[_0x0edc('0xa')],'priority':_0x576579[_0x0edc('0x33')][_0x0edc('0x23')]+_0x14bb4d+_0x1f5fa1++,'VoiceExtensionId':_0xdaf6a1['id']});}_0x576579[_0x0edc('0x4c')]=_0x33ae04[_0x0edc('0x23')]?_[_0x0edc('0x4d')](_0x33ae04)[_0x0edc('0x4c')]+0x1:_0x14bb4d;_0x2cf594=_[_0x0edc('0x4e')](_0x2cf594,_0x33ae04,[_0x576579],_0xa843a9);_0x14bb4d=_['last'](_0x2cf594)[_0x0edc('0x4c')]+0x1;}return _0x489870(_0x2cf594);})[_0x0edc('0x4f')](function(_0x40756b){_0x3332fd(_0x40756b);});});}return _0x522db8[_0x0edc('0x50')]('VoiceExtension',attributes,{'tableName':_0x0edc('0x51'),'paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x7757a1){var _0x5e5053=this[_0x0edc('0x52')]({'plain':!![]});var _0x2c8898=_0x5e5053[_0x0edc('0x4')]===_0x0edc('0x10')?_0x52d193(_0x5e5053):_0x11171f(_0x5e5053);return _0x50c697(_0x5e5053,_0x7757a1,_[_0x0edc('0x4d')](_0x2c8898)[_0x0edc('0x4c')]+0x1)['then'](function(_0x5047b6){var _0x50c63a=_[_0x0edc('0x4e')](_0x2c8898,_0x5047b6);_0x50c63a[_0x0edc('0xc')]({'type':_0x5e5053['type'],'app':_0x0edc('0x53'),'exten':_0x5e5053[_0x0edc('0xa')],'context':_0x5e5053[_0x0edc('0x5')],'priority':_[_0x0edc('0x4d')](_0x50c63a)['priority']+0x1,'VoiceExtensionId':_0x5e5053['id']});return _0x50c63a;});}}});};