428049a929ac90962571b2b50c42a9841a4b0d84
[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 _0xdbf5=['CDR(type)=','context','exten','alias','CDR(routeAlias)=','No\x20alias\x20set','push','CDR(routeid)=','XCALLY-MOTION-ANSWER=0','MONITOR_OPTIONS=ab','outbound','CDR(type)=outbound','NoOp','CDR(destination)=','cutdigits','${EXTEN:','${EXTEN}','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','XCALLY-MOTION-PROGRESS=0','outboundrouteid=','hasOwnProperty','recordingFormat','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','wav','trunk','timeout','url','split','length','name','param','phone','prefix','SIP','join','options','indexOf','U(xcally-mixmonitor-context)','replace','isEmpty','Interval','findAll','interval','then','*,*,*,*','intervals','tag','toLowerCase','CDR(tag)=','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):','callerID','Set(CALLERID(all)=','answer','queue','playback','includes','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','splice','GotoIfTime',',${EXTEN},','appType','appdata','priority','last','catch','define','VoiceExtension','voice_extensions','get','concat','Hangup','./voiceExtension.attributes','models','type','Set'];(function(_0x3d603d,_0x7be48){var _0x3c2e4e=function(_0x1d9618){while(--_0x1d9618){_0x3d603d['push'](_0x3d603d['shift']());}};_0x3c2e4e(++_0x7be48);}(_0xdbf5,0x18c));var _0x5dbf=function(_0x19d0c4,_0x1fb678){_0x19d0c4=_0x19d0c4-0x0;var _0x1928ef=_0xdbf5[_0x19d0c4];return _0x1928ef;};'use strict';var _=require('lodash');var attributes=require(_0x5dbf('0x0'));module['exports']=function(_0x4bde73){var _0x19d2b4=_0x4bde73[_0x5dbf('0x1')];function _0x32ec6b(_0x3afe14){var _0x38b629=0x2;var _0x1a1ea9=[{'type':_0x3afe14[_0x5dbf('0x2')],'app':_0x5dbf('0x3'),'appdata':_0x5dbf('0x4')+_0x3afe14[_0x5dbf('0x2')],'context':_0x3afe14[_0x5dbf('0x5')],'exten':_0x3afe14[_0x5dbf('0x6')],'priority':_0x38b629++,'VoiceExtensionId':_0x3afe14['id']},{'type':_0x3afe14[_0x5dbf('0x2')],'app':_0x3afe14['alias']?_0x5dbf('0x3'):'NoOp','appdata':_0x3afe14[_0x5dbf('0x7')]?_0x5dbf('0x8')+_0x3afe14[_0x5dbf('0x7')]:_0x5dbf('0x9'),'context':_0x3afe14['context'],'exten':_0x3afe14[_0x5dbf('0x6')],'priority':_0x38b629++,'VoiceExtensionId':_0x3afe14['id']}];if(_0x3afe14['type']==='inbound'){_0x1a1ea9[_0x5dbf('0xa')]({'type':'inbound','app':'Set','appdata':_0x5dbf('0xb')+_0x3afe14['id'],'context':_0x3afe14['context'],'exten':_0x3afe14[_0x5dbf('0x6')],'priority':_0x38b629++,'VoiceExtensionId':_0x3afe14['id']});}_0x1a1ea9[_0x5dbf('0xa')]({'type':_0x3afe14[_0x5dbf('0x2')],'app':_0x5dbf('0x3'),'appdata':_0x5dbf('0xc'),'context':_0x3afe14['context'],'exten':_0x3afe14['exten'],'priority':_0x38b629++,'VoiceExtensionId':_0x3afe14['id']},{'type':_0x3afe14[_0x5dbf('0x2')],'app':_0x5dbf('0x3'),'appdata':'XCALLY-MOTION-PROGRESS=0','context':_0x3afe14[_0x5dbf('0x5')],'exten':_0x3afe14[_0x5dbf('0x6')],'priority':_0x38b629++,'VoiceExtensionId':_0x3afe14['id']},{'type':_0x3afe14[_0x5dbf('0x2')],'app':_0x5dbf('0x3'),'appdata':_0x5dbf('0xd'),'context':_0x3afe14[_0x5dbf('0x5')],'exten':_0x3afe14[_0x5dbf('0x6')],'priority':_0x38b629++,'VoiceExtensionId':_0x3afe14['id']});return _0x1a1ea9;}function _0x50ef1d(_0x499cd9){var _0x16dc82=0x2;var _0xc4cb1c=[{'type':_0x5dbf('0xe'),'app':_0x5dbf('0x3'),'appdata':_0x5dbf('0xf'),'context':_0x499cd9['context'],'exten':_0x499cd9[_0x5dbf('0x6')],'priority':_0x16dc82++,'VoiceExtensionId':_0x499cd9['id']},{'type':'outbound','app':_0x499cd9['alias']?'Set':_0x5dbf('0x10'),'appdata':_0x499cd9[_0x5dbf('0x7')]?_0x5dbf('0x8')+_0x499cd9[_0x5dbf('0x7')]:_0x5dbf('0x9'),'context':_0x499cd9['context'],'exten':_0x499cd9[_0x5dbf('0x6')],'priority':_0x16dc82++,'VoiceExtensionId':_0x499cd9['id']},{'type':'outbound','app':_0x5dbf('0x3'),'appdata':_0x5dbf('0x11')+(_0x499cd9[_0x5dbf('0x12')]?_0x5dbf('0x13')+_0x499cd9[_0x5dbf('0x12')]+'}':_0x5dbf('0x14')),'context':_0x499cd9['context'],'exten':_0x499cd9[_0x5dbf('0x6')],'priority':_0x16dc82++,'VoiceExtensionId':_0x499cd9['id']},{'type':_0x5dbf('0xe'),'app':_0x5dbf('0x3'),'appdata':_0x5dbf('0xb')+_0x499cd9['id'],'context':_0x499cd9[_0x5dbf('0x5')],'exten':_0x499cd9[_0x5dbf('0x6')],'priority':_0x16dc82++,'VoiceExtensionId':_0x499cd9['id']},{'type':_0x5dbf('0xe'),'app':_0x5dbf('0x15'),'appdata':_0x5dbf('0x16')+(_0x16dc82+0x2)+_0x5dbf('0x17')+(_0x16dc82+0x1)+')','context':_0x499cd9[_0x5dbf('0x5')],'exten':_0x499cd9[_0x5dbf('0x6')],'priority':_0x16dc82++,'VoiceExtensionId':_0x499cd9['id']},{'type':_0x5dbf('0xe'),'app':_0x5dbf('0x3'),'appdata':_0x499cd9[_0x5dbf('0x12')]?_0x5dbf('0x18')+_0x499cd9[_0x5dbf('0x12')]+'}':_0x5dbf('0x19'),'context':_0x499cd9[_0x5dbf('0x5')],'exten':_0x499cd9[_0x5dbf('0x6')],'priority':_0x16dc82++,'VoiceExtensionId':_0x499cd9['id']},{'type':_0x5dbf('0xe'),'app':_0x5dbf('0x3'),'appdata':_0x5dbf('0xc'),'context':_0x499cd9['context'],'exten':_0x499cd9[_0x5dbf('0x6')],'priority':_0x16dc82++,'VoiceExtensionId':_0x499cd9['id']},{'type':_0x5dbf('0xe'),'app':_0x5dbf('0x3'),'appdata':_0x5dbf('0x1a'),'context':_0x499cd9[_0x5dbf('0x5')],'exten':_0x499cd9[_0x5dbf('0x6')],'priority':_0x16dc82++,'VoiceExtensionId':_0x499cd9['id']},{'type':_0x5dbf('0xe'),'app':_0x5dbf('0x3'),'appdata':_0x5dbf('0xd'),'context':_0x499cd9[_0x5dbf('0x5')],'exten':_0x499cd9[_0x5dbf('0x6')],'priority':_0x16dc82++,'VoiceExtensionId':_0x499cd9['id']},{'type':'outbound','app':'Set','appdata':_0x5dbf('0x1b')+_0x499cd9['id'],'context':_0x499cd9[_0x5dbf('0x5')],'exten':_0x499cd9[_0x5dbf('0x6')],'priority':_0x16dc82++,'VoiceExtensionId':_0x499cd9['id']}];if(_0x499cd9[_0x5dbf('0x1c')](_0x5dbf('0x1d'))&&_0x499cd9['recordingFormat']!=='none'){_0xc4cb1c[_0x5dbf('0xa')]({'type':_0x5dbf('0xe'),'app':'Set','appdata':_0x5dbf('0x1e'),'context':_0x499cd9[_0x5dbf('0x5')],'exten':_0x499cd9[_0x5dbf('0x6')],'priority':_0x16dc82++,'VoiceExtensionId':_0x499cd9['id']},{'type':_0x5dbf('0xe'),'app':_0x5dbf('0x3'),'appdata':'_XCALLY_MIXMONITOR_FORMAT='+_0x499cd9[_0x5dbf('0x1d')]||_0x5dbf('0x1f'),'context':_0x499cd9[_0x5dbf('0x5')],'exten':_0x499cd9[_0x5dbf('0x6')],'priority':_0x16dc82++,'VoiceExtensionId':_0x499cd9['id']});}return _0xc4cb1c;}function _0x3a8196(_0x4e4518,_0x252d54){var _0x7dc2da=[{'name':_0x5dbf('0x20'),'param':0x0},{'name':_0x5dbf('0x21'),'param':0x1},{'name':'options','param':0x2},{'name':_0x5dbf('0x22'),'param':0x3}];var _0x1e9a4e={};var _0x302dda=_0x252d54[_0x5dbf('0x23')](',');var _0x3e309a=[];for(var _0x843d9a=0x0;_0x843d9a<_0x7dc2da[_0x5dbf('0x24')];_0x843d9a++){switch(_0x7dc2da[_0x843d9a][_0x5dbf('0x25')]){case _0x5dbf('0x20'):_0x1e9a4e[_0x5dbf('0x20')]=_0x302dda[_0x7dc2da[_0x843d9a][_0x5dbf('0x26')]]['split']('/')[0x1];_0x1e9a4e[_0x5dbf('0x27')]=_0x302dda[_0x7dc2da[_0x843d9a][_0x5dbf('0x26')]][_0x5dbf('0x23')]('/')[0x2];_0x1e9a4e['prefix']=_0x1e9a4e[_0x5dbf('0x27')]?_0x1e9a4e[_0x5dbf('0x27')][_0x5dbf('0x23')]('$')[0x0]:undefined;_0x1e9a4e['phone']=_0x4e4518[_0x5dbf('0x12')]?(_0x1e9a4e[_0x5dbf('0x28')]||'')+_0x5dbf('0x13')+_0x4e4518['cutdigits']+'}':(_0x1e9a4e[_0x5dbf('0x28')]||'')+_0x5dbf('0x14');_0x3e309a[_0x7dc2da[_0x843d9a][_0x5dbf('0x26')]]=[_0x5dbf('0x29'),_0x1e9a4e[_0x5dbf('0x20')],_0x1e9a4e[_0x5dbf('0x27')]][_0x5dbf('0x2a')]('/');break;case _0x5dbf('0x2b'):_0x1e9a4e['options']=_0x302dda[_0x7dc2da[_0x843d9a]['param']];if(_0x4e4518['recordingFormat']!=='none'){if(_0x1e9a4e[_0x5dbf('0x2b')][_0x5dbf('0x2c')]('U(xcally-mixmonitor-context)')<0x0){_0x1e9a4e[_0x5dbf('0x2b')]+=_0x5dbf('0x2d');}}else{_0x1e9a4e['options']=_0x1e9a4e[_0x5dbf('0x2b')][_0x5dbf('0x2e')](_0x5dbf('0x2d'),'');}_0x3e309a[_0x7dc2da[_0x843d9a][_0x5dbf('0x26')]]=_0x1e9a4e[_0x5dbf('0x2b')];break;default:_0x3e309a[_0x7dc2da[_0x843d9a][_0x5dbf('0x26')]]=_0x302dda[_0x7dc2da[_0x843d9a][_0x5dbf('0x26')]];}}return _0x3e309a[_0x5dbf('0x2a')](',');}function _0xf5bdc5(_0x2718e9,_0x50ac70,_0x78aef3){return new Promise(function(_0x22f958,_0xec1d28){var _0x50880d=[];if(_[_0x5dbf('0x2f')](_0x50ac70))return _0x22f958(_0x50880d);_0x19d2b4[_0x5dbf('0x30')][_0x5dbf('0x31')]({'attributes':['id',_0x5dbf('0x32'),'IntervalId'],'raw':!![]})[_0x5dbf('0x33')](function(_0x561a79){for(var _0x336ba5=0x0,_0x14002b=0x0;_0x336ba5<_0x50ac70[_0x5dbf('0x24')];_0x336ba5++,_0x14002b=0x0){var _0xcc1815=_0x50ac70[_0x336ba5];var _0x4c611d=[];var _0x5c10f1=[];delete _0xcc1815['id'];if(_0xcc1815[_0x5dbf('0x32')]!==_0x5dbf('0x34')){_0xcc1815[_0x5dbf('0x35')]=[_0xcc1815['interval']];}else{_0xcc1815[_0x5dbf('0x35')]=_0xcc1815['IntervalId']?_['map'](_['filter'](_0x561a79,{'IntervalId':_0xcc1815['IntervalId']}),_0x5dbf('0x32')):[];}_0xcc1815[_0x5dbf('0x5')]=_0x2718e9['context'];_0xcc1815[_0x5dbf('0x6')]=_0x2718e9[_0x5dbf('0x6')];if(_0xcc1815['type'])_0xcc1815[_0x5dbf('0x2')]=_0xcc1815[_0x5dbf('0x2')]['toLowerCase']();if(_0x2718e9[_0x5dbf('0x2')]==='outbound'){if(_0xcc1815['hasOwnProperty'](_0x5dbf('0x36'))&&_0xcc1815[_0x5dbf('0x36')]&&_0xcc1815[_0x5dbf('0x36')]!=='--'){_0x4c611d['push']({'type':_0xcc1815['type'][_0x5dbf('0x37')](),'app':_0x5dbf('0x3'),'appdata':_0x5dbf('0x38')+_0xcc1815[_0x5dbf('0x36')],'context':_0x2718e9[_0x5dbf('0x5')],'exten':_0x2718e9[_0x5dbf('0x6')],'priority':_0xcc1815[_0x5dbf('0x35')][_0x5dbf('0x24')]+_0x78aef3+_0x14002b++,'VoiceExtensionId':_0x2718e9['id']});}_0x4c611d['push']({'type':_0xcc1815[_0x5dbf('0x2')][_0x5dbf('0x37')](),'app':_0x5dbf('0x15'),'appdata':_0x5dbf('0x39')+(_0xcc1815[_0x5dbf('0x3a')]?_0x5dbf('0x3b')+_0xcc1815[_0x5dbf('0x3a')]+')':'NoOp(No\x20number\x20available)'),'context':_0x2718e9[_0x5dbf('0x5')],'exten':_0x2718e9['exten'],'priority':_0xcc1815[_0x5dbf('0x35')][_0x5dbf('0x24')]+_0x78aef3+_0x14002b++,'VoiceExtensionId':_0x2718e9['id']});}else{if(_0xcc1815[_0x5dbf('0x1c')](_0x5dbf('0x3c'))){if([_0x5dbf('0x3d'),_0x5dbf('0x3e')][_0x5dbf('0x3f')](_0xcc1815['app']['toLowerCase']())&&_0xcc1815['appType']!==_0x5dbf('0x40')){if(_0xcc1815[_0x5dbf('0x3c')]){_0x4c611d[_0x5dbf('0xa')]({'type':_0xcc1815['type']['toLowerCase'](),'app':_0x5dbf('0x15'),'appdata':_0x5dbf('0x41'),'context':_0x2718e9[_0x5dbf('0x5')],'exten':_0x2718e9['exten'],'priority':_0xcc1815[_0x5dbf('0x35')]['length']+_0x78aef3+_0x14002b++,'VoiceExtensionId':_0x2718e9['id']});_0x4c611d[_0x5dbf('0xa')]({'type':_0xcc1815[_0x5dbf('0x2')][_0x5dbf('0x37')](),'app':'Set','appdata':'XCALLY-MOTION-ANSWER=1','context':_0x2718e9[_0x5dbf('0x5')],'exten':_0x2718e9[_0x5dbf('0x6')],'priority':_0xcc1815[_0x5dbf('0x35')][_0x5dbf('0x24')]+_0x78aef3+_0x14002b++,'VoiceExtensionId':_0x2718e9['id']});}else{_0x4c611d['push']({'type':_0xcc1815[_0x5dbf('0x2')][_0x5dbf('0x37')](),'app':'ExecIf','appdata':'$[${XCALLY-MOTION-PROGRESS}=0]?Progress','context':_0x2718e9[_0x5dbf('0x5')],'exten':_0x2718e9[_0x5dbf('0x6')],'priority':_0xcc1815[_0x5dbf('0x35')][_0x5dbf('0x24')]+_0x78aef3+_0x14002b++,'VoiceExtensionId':_0x2718e9['id']});_0x4c611d[_0x5dbf('0xa')]({'type':_0xcc1815[_0x5dbf('0x2')]['toLowerCase'](),'app':_0x5dbf('0x3'),'appdata':'XCALLY-MOTION-PROGRESS=1','context':_0x2718e9['context'],'exten':_0x2718e9['exten'],'priority':_0xcc1815[_0x5dbf('0x35')]['length']+_0x78aef3+_0x14002b++,'VoiceExtensionId':_0x2718e9['id']});}}}}for(var _0x375c7e=0x0;_0x375c7e<_0xcc1815[_0x5dbf('0x35')][_0x5dbf('0x24')];_0x375c7e++){var _0x3cf098=_0x78aef3+_0xcc1815[_0x5dbf('0x35')][_0x5dbf('0x24')];var _0x1400be=_0x375c7e===_0xcc1815[_0x5dbf('0x35')][_0x5dbf('0x24')]-0x1?_0x78aef3+_0x4c611d[_0x5dbf('0x24')]+_0x5c10f1[_0x5dbf('0x24')]+0x2:_0x78aef3+_0x375c7e+0x1;_0x4c611d[_0x5dbf('0x42')](_0x375c7e,0x0,{'type':_0x2718e9[_0x5dbf('0x2')],'app':_0x5dbf('0x43'),'appdata':_0xcc1815[_0x5dbf('0x35')][_0x375c7e]+'?'+_0x2718e9['context']+_0x5dbf('0x44')+_0x3cf098+':'+_0x2718e9['context']+_0x5dbf('0x44')+_0x1400be,'exten':_0x2718e9[_0x5dbf('0x6')],'context':_0x2718e9[_0x5dbf('0x5')],'priority':_0x78aef3+_0x375c7e,'VoiceExtensionId':_0x2718e9['id']});}if(_0xcc1815[_0x5dbf('0x45')]==='outboundDial')_0xcc1815[_0x5dbf('0x46')]=_0x3a8196(_0x2718e9,_0xcc1815[_0x5dbf('0x46')]);_0xcc1815[_0x5dbf('0x47')]=_0x4c611d[_0x5dbf('0x24')]?_[_0x5dbf('0x48')](_0x4c611d)[_0x5dbf('0x47')]+0x1:_0x78aef3;_0x50880d=_['concat'](_0x50880d,_0x4c611d,[_0xcc1815],_0x5c10f1);_0x78aef3=_[_0x5dbf('0x48')](_0x50880d)[_0x5dbf('0x47')]+0x1;}return _0x22f958(_0x50880d);})[_0x5dbf('0x49')](function(_0x18bc53){_0xec1d28(_0x18bc53);});});}return _0x4bde73[_0x5dbf('0x4a')](_0x5dbf('0x4b'),attributes,{'tableName':_0x5dbf('0x4c'),'paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x1cc4eb){var _0x12d69b=this[_0x5dbf('0x4d')]({'plain':!![]});var _0x13c8ab=_0x12d69b[_0x5dbf('0x2')]==='outbound'?_0x50ef1d(_0x12d69b):_0x32ec6b(_0x12d69b);return _0xf5bdc5(_0x12d69b,_0x1cc4eb,_['last'](_0x13c8ab)[_0x5dbf('0x47')]+0x1)[_0x5dbf('0x33')](function(_0x2f0c75){var _0x110713=_[_0x5dbf('0x4e')](_0x13c8ab,_0x2f0c75);_0x110713[_0x5dbf('0xa')]({'type':_0x12d69b[_0x5dbf('0x2')],'app':_0x5dbf('0x4f'),'exten':_0x12d69b[_0x5dbf('0x6')],'context':_0x12d69b['context'],'priority':_['last'](_0x110713)['priority']+0x1,'VoiceExtensionId':_0x12d69b['id']});return _0x110713;});}}});};