Built motion from commit 449495f6.|2.6.27
[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 _0x5b89=['none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','wav','timeout','options','url','split','length','name','trunk','param','phone','prefix','${EXTEN:','SIP','join','indexOf','U(xcally-mixmonitor-context)','replace','isEmpty','Interval','findAll','interval','then','*,*,*,*','IntervalId','map','filter','toLowerCase','tag','intervals','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):','callerID','Set(CALLERID(all)=','hasOwnProperty','answer','playback','app','appType','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','splice','GotoIfTime',',${EXTEN},','outboundDial','appdata','agi','priority','last','concat','catch','define','VoiceExtension','voice_extensions','Hangup','lodash','./voiceExtension.attributes','type','context','exten','alias','Set','NoOp','CDR(routeAlias)=','No\x20alias\x20set','push','inbound','CDR(routeid)=','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','outbound','CDR(destination)=','cutdigits','${EXTEN}','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','recordingFormat'];(function(_0x2641f9,_0x26715f){var _0x585741=function(_0x2d1462){while(--_0x2d1462){_0x2641f9['push'](_0x2641f9['shift']());}};_0x585741(++_0x26715f);}(_0x5b89,0xdd));var _0x95b8=function(_0x15f8ad,_0x5275c3){_0x15f8ad=_0x15f8ad-0x0;var _0xc0238a=_0x5b89[_0x15f8ad];return _0xc0238a;};'use strict';var _=require(_0x95b8('0x0'));var attributes=require(_0x95b8('0x1'));module['exports']=function(_0x299215){var _0x5b6e93=_0x299215['models'];function _0x568b69(_0x50ecdc){var _0x5615b5=0x2;var _0x3aba85=[{'type':_0x50ecdc[_0x95b8('0x2')],'app':'Set','appdata':'CDR(type)='+_0x50ecdc['type'],'context':_0x50ecdc[_0x95b8('0x3')],'exten':_0x50ecdc[_0x95b8('0x4')],'priority':_0x5615b5++,'VoiceExtensionId':_0x50ecdc['id']},{'type':_0x50ecdc['type'],'app':_0x50ecdc[_0x95b8('0x5')]?_0x95b8('0x6'):_0x95b8('0x7'),'appdata':_0x50ecdc[_0x95b8('0x5')]?_0x95b8('0x8')+_0x50ecdc[_0x95b8('0x5')]:_0x95b8('0x9'),'context':_0x50ecdc['context'],'exten':_0x50ecdc[_0x95b8('0x4')],'priority':_0x5615b5++,'VoiceExtensionId':_0x50ecdc['id']}];if(_0x50ecdc['type']==='inbound'){_0x3aba85[_0x95b8('0xa')]({'type':_0x95b8('0xb'),'app':_0x95b8('0x6'),'appdata':_0x95b8('0xc')+_0x50ecdc['id'],'context':_0x50ecdc[_0x95b8('0x3')],'exten':_0x50ecdc[_0x95b8('0x4')],'priority':_0x5615b5++,'VoiceExtensionId':_0x50ecdc['id']});}_0x3aba85['push']({'type':_0x50ecdc[_0x95b8('0x2')],'app':_0x95b8('0x6'),'appdata':_0x95b8('0xd'),'context':_0x50ecdc['context'],'exten':_0x50ecdc[_0x95b8('0x4')],'priority':_0x5615b5++,'VoiceExtensionId':_0x50ecdc['id']},{'type':_0x50ecdc['type'],'app':_0x95b8('0x6'),'appdata':_0x95b8('0xe'),'context':_0x50ecdc[_0x95b8('0x3')],'exten':_0x50ecdc[_0x95b8('0x4')],'priority':_0x5615b5++,'VoiceExtensionId':_0x50ecdc['id']},{'type':_0x50ecdc[_0x95b8('0x2')],'app':_0x95b8('0x6'),'appdata':_0x95b8('0xf'),'context':_0x50ecdc[_0x95b8('0x3')],'exten':_0x50ecdc[_0x95b8('0x4')],'priority':_0x5615b5++,'VoiceExtensionId':_0x50ecdc['id']});return _0x3aba85;}function _0x3cfb99(_0x53cea8){var _0x361baf=0x2;var _0x575cf6=[{'type':_0x95b8('0x10'),'app':_0x95b8('0x6'),'appdata':'CDR(type)=outbound','context':_0x53cea8[_0x95b8('0x3')],'exten':_0x53cea8[_0x95b8('0x4')],'priority':_0x361baf++,'VoiceExtensionId':_0x53cea8['id']},{'type':_0x95b8('0x10'),'app':_0x53cea8[_0x95b8('0x5')]?_0x95b8('0x6'):_0x95b8('0x7'),'appdata':_0x53cea8[_0x95b8('0x5')]?_0x95b8('0x8')+_0x53cea8['alias']:_0x95b8('0x9'),'context':_0x53cea8[_0x95b8('0x3')],'exten':_0x53cea8[_0x95b8('0x4')],'priority':_0x361baf++,'VoiceExtensionId':_0x53cea8['id']},{'type':'outbound','app':_0x95b8('0x6'),'appdata':_0x95b8('0x11')+(_0x53cea8[_0x95b8('0x12')]?'${EXTEN:'+_0x53cea8[_0x95b8('0x12')]+'}':_0x95b8('0x13')),'context':_0x53cea8[_0x95b8('0x3')],'exten':_0x53cea8[_0x95b8('0x4')],'priority':_0x361baf++,'VoiceExtensionId':_0x53cea8['id']},{'type':_0x95b8('0x10'),'app':_0x95b8('0x6'),'appdata':_0x95b8('0xc')+_0x53cea8['id'],'context':_0x53cea8[_0x95b8('0x3')],'exten':_0x53cea8[_0x95b8('0x4')],'priority':_0x361baf++,'VoiceExtensionId':_0x53cea8['id']},{'type':'outbound','app':_0x95b8('0x14'),'appdata':_0x95b8('0x15')+(_0x361baf+0x2)+'):Goto('+(_0x361baf+0x1)+')','context':_0x53cea8['context'],'exten':_0x53cea8[_0x95b8('0x4')],'priority':_0x361baf++,'VoiceExtensionId':_0x53cea8['id']},{'type':_0x95b8('0x10'),'app':_0x95b8('0x6'),'appdata':_0x53cea8[_0x95b8('0x12')]?_0x95b8('0x16')+_0x53cea8[_0x95b8('0x12')]+'}':_0x95b8('0x17'),'context':_0x53cea8['context'],'exten':_0x53cea8[_0x95b8('0x4')],'priority':_0x361baf++,'VoiceExtensionId':_0x53cea8['id']},{'type':_0x95b8('0x10'),'app':_0x95b8('0x6'),'appdata':_0x95b8('0xd'),'context':_0x53cea8['context'],'exten':_0x53cea8['exten'],'priority':_0x361baf++,'VoiceExtensionId':_0x53cea8['id']},{'type':_0x95b8('0x10'),'app':_0x95b8('0x6'),'appdata':'XCALLY-MOTION-PROGRESS=0','context':_0x53cea8['context'],'exten':_0x53cea8[_0x95b8('0x4')],'priority':_0x361baf++,'VoiceExtensionId':_0x53cea8['id']},{'type':_0x95b8('0x10'),'app':_0x95b8('0x6'),'appdata':_0x95b8('0xf'),'context':_0x53cea8[_0x95b8('0x3')],'exten':_0x53cea8[_0x95b8('0x4')],'priority':_0x361baf++,'VoiceExtensionId':_0x53cea8['id']},{'type':_0x95b8('0x10'),'app':'Set','appdata':'outboundrouteid='+_0x53cea8['id'],'context':_0x53cea8[_0x95b8('0x3')],'exten':_0x53cea8[_0x95b8('0x4')],'priority':_0x361baf++,'VoiceExtensionId':_0x53cea8['id']}];if(_0x53cea8['hasOwnProperty'](_0x95b8('0x18'))&&_0x53cea8['recordingFormat']!==_0x95b8('0x19')){_0x575cf6['push']({'type':_0x95b8('0x10'),'app':'Set','appdata':_0x95b8('0x1a'),'context':_0x53cea8[_0x95b8('0x3')],'exten':_0x53cea8[_0x95b8('0x4')],'priority':_0x361baf++,'VoiceExtensionId':_0x53cea8['id']},{'type':_0x95b8('0x10'),'app':_0x95b8('0x6'),'appdata':'_XCALLY_MIXMONITOR_FORMAT='+_0x53cea8[_0x95b8('0x18')]||_0x95b8('0x1b'),'context':_0x53cea8[_0x95b8('0x3')],'exten':_0x53cea8['exten'],'priority':_0x361baf++,'VoiceExtensionId':_0x53cea8['id']});}return _0x575cf6;}function _0x527fcc(_0x16acc5,_0x3e823c){var _0x17f7ef=[{'name':'trunk','param':0x0},{'name':_0x95b8('0x1c'),'param':0x1},{'name':_0x95b8('0x1d'),'param':0x2},{'name':_0x95b8('0x1e'),'param':0x3}];var _0x47fc46={};var _0x41d270=_0x3e823c[_0x95b8('0x1f')](',');var _0x5678d2=[];for(var _0x3dcf5b=0x0;_0x3dcf5b<_0x17f7ef[_0x95b8('0x20')];_0x3dcf5b++){switch(_0x17f7ef[_0x3dcf5b][_0x95b8('0x21')]){case _0x95b8('0x22'):_0x47fc46[_0x95b8('0x22')]=_0x41d270[_0x17f7ef[_0x3dcf5b][_0x95b8('0x23')]][_0x95b8('0x1f')]('/')[0x1];_0x47fc46[_0x95b8('0x24')]=_0x41d270[_0x17f7ef[_0x3dcf5b][_0x95b8('0x23')]]['split']('/')[0x2];_0x47fc46[_0x95b8('0x25')]=_0x47fc46[_0x95b8('0x24')]?_0x47fc46[_0x95b8('0x24')][_0x95b8('0x1f')]('$')[0x0]:undefined;_0x47fc46[_0x95b8('0x24')]=_0x16acc5[_0x95b8('0x12')]?(_0x47fc46[_0x95b8('0x25')]||'')+_0x95b8('0x26')+_0x16acc5[_0x95b8('0x12')]+'}':(_0x47fc46['prefix']||'')+'${EXTEN}';_0x5678d2[_0x17f7ef[_0x3dcf5b][_0x95b8('0x23')]]=[_0x95b8('0x27'),_0x47fc46[_0x95b8('0x22')],_0x47fc46[_0x95b8('0x24')]][_0x95b8('0x28')]('/');break;case'options':_0x47fc46[_0x95b8('0x1d')]=_0x41d270[_0x17f7ef[_0x3dcf5b]['param']];if(_0x16acc5['recordingFormat']!=='none'){if(_0x47fc46[_0x95b8('0x1d')][_0x95b8('0x29')](_0x95b8('0x2a'))<0x0){_0x47fc46[_0x95b8('0x1d')]+='U(xcally-mixmonitor-context)';}}else{_0x47fc46[_0x95b8('0x1d')]=_0x47fc46['options'][_0x95b8('0x2b')]('U(xcally-mixmonitor-context)','');}_0x5678d2[_0x17f7ef[_0x3dcf5b][_0x95b8('0x23')]]=_0x47fc46[_0x95b8('0x1d')];break;default:_0x5678d2[_0x17f7ef[_0x3dcf5b][_0x95b8('0x23')]]=_0x41d270[_0x17f7ef[_0x3dcf5b][_0x95b8('0x23')]];}}return _0x5678d2[_0x95b8('0x28')](',');}function _0x3cc61a(_0x8200b5,_0x1ce718,_0x169028){return new Promise(function(_0x4f9d64,_0x3fccaf){var _0x4c12a4=[];if(_[_0x95b8('0x2c')](_0x1ce718))return _0x4f9d64(_0x4c12a4);_0x5b6e93[_0x95b8('0x2d')][_0x95b8('0x2e')]({'attributes':['id',_0x95b8('0x2f'),'IntervalId'],'raw':!![]})[_0x95b8('0x30')](function(_0x574411){for(var _0x14c2a9=0x0,_0xe9e36=0x0;_0x14c2a9<_0x1ce718[_0x95b8('0x20')];_0x14c2a9++,_0xe9e36=0x0){var _0x529a0c=_0x1ce718[_0x14c2a9];var _0x3287d1=[];var _0x2fb7ec=[];delete _0x529a0c['id'];if(_0x529a0c[_0x95b8('0x2f')]!==_0x95b8('0x31')){_0x529a0c['intervals']=[_0x529a0c[_0x95b8('0x2f')]];}else{_0x529a0c['intervals']=_0x529a0c[_0x95b8('0x32')]?_[_0x95b8('0x33')](_[_0x95b8('0x34')](_0x574411,{'IntervalId':_0x529a0c[_0x95b8('0x32')]}),_0x95b8('0x2f')):[];}_0x529a0c['context']=_0x8200b5[_0x95b8('0x3')];_0x529a0c[_0x95b8('0x4')]=_0x8200b5[_0x95b8('0x4')];if(_0x529a0c[_0x95b8('0x2')])_0x529a0c[_0x95b8('0x2')]=_0x529a0c[_0x95b8('0x2')][_0x95b8('0x35')]();if(_0x8200b5[_0x95b8('0x2')]===_0x95b8('0x10')){if(_0x529a0c['hasOwnProperty'](_0x95b8('0x36'))&&_0x529a0c[_0x95b8('0x36')]&&_0x529a0c[_0x95b8('0x36')]!=='--'){_0x3287d1[_0x95b8('0xa')]({'type':_0x529a0c[_0x95b8('0x2')][_0x95b8('0x35')](),'app':_0x95b8('0x6'),'appdata':'CDR(tag)='+_0x529a0c[_0x95b8('0x36')],'context':_0x8200b5[_0x95b8('0x3')],'exten':_0x8200b5['exten'],'priority':_0x529a0c[_0x95b8('0x37')][_0x95b8('0x20')]+_0x169028+_0xe9e36++,'VoiceExtensionId':_0x8200b5['id']});}_0x3287d1[_0x95b8('0xa')]({'type':_0x529a0c[_0x95b8('0x2')][_0x95b8('0x35')](),'app':'ExecIf','appdata':_0x95b8('0x38')+(_0x529a0c[_0x95b8('0x39')]?_0x95b8('0x3a')+_0x529a0c[_0x95b8('0x39')]+')':'NoOp(No\x20number\x20available)'),'context':_0x8200b5['context'],'exten':_0x8200b5[_0x95b8('0x4')],'priority':_0x529a0c['intervals'][_0x95b8('0x20')]+_0x169028+_0xe9e36++,'VoiceExtensionId':_0x8200b5['id']});}else{if(_0x529a0c[_0x95b8('0x3b')](_0x95b8('0x3c'))){if(['queue',_0x95b8('0x3d')]['includes'](_0x529a0c[_0x95b8('0x3e')][_0x95b8('0x35')]())&&_0x529a0c[_0x95b8('0x3f')]!==_0x95b8('0x40')){if(_0x529a0c[_0x95b8('0x3c')]){_0x3287d1['push']({'type':_0x529a0c[_0x95b8('0x2')][_0x95b8('0x35')](),'app':_0x95b8('0x14'),'appdata':_0x95b8('0x41'),'context':_0x8200b5[_0x95b8('0x3')],'exten':_0x8200b5[_0x95b8('0x4')],'priority':_0x529a0c[_0x95b8('0x37')]['length']+_0x169028+_0xe9e36++,'VoiceExtensionId':_0x8200b5['id']});_0x3287d1[_0x95b8('0xa')]({'type':_0x529a0c[_0x95b8('0x2')]['toLowerCase'](),'app':'Set','appdata':_0x95b8('0x42'),'context':_0x8200b5[_0x95b8('0x3')],'exten':_0x8200b5[_0x95b8('0x4')],'priority':_0x529a0c[_0x95b8('0x37')][_0x95b8('0x20')]+_0x169028+_0xe9e36++,'VoiceExtensionId':_0x8200b5['id']});}else{_0x3287d1[_0x95b8('0xa')]({'type':_0x529a0c[_0x95b8('0x2')][_0x95b8('0x35')](),'app':_0x95b8('0x14'),'appdata':_0x95b8('0x43'),'context':_0x8200b5[_0x95b8('0x3')],'exten':_0x8200b5[_0x95b8('0x4')],'priority':_0x529a0c[_0x95b8('0x37')][_0x95b8('0x20')]+_0x169028+_0xe9e36++,'VoiceExtensionId':_0x8200b5['id']});_0x3287d1[_0x95b8('0xa')]({'type':_0x529a0c[_0x95b8('0x2')][_0x95b8('0x35')](),'app':_0x95b8('0x6'),'appdata':'XCALLY-MOTION-PROGRESS=1','context':_0x8200b5[_0x95b8('0x3')],'exten':_0x8200b5[_0x95b8('0x4')],'priority':_0x529a0c[_0x95b8('0x37')][_0x95b8('0x20')]+_0x169028+_0xe9e36++,'VoiceExtensionId':_0x8200b5['id']});}}}}for(var _0x10ac2c=0x0;_0x10ac2c<_0x529a0c['intervals']['length'];_0x10ac2c++){var _0x17e18b=_0x169028+_0x529a0c[_0x95b8('0x37')][_0x95b8('0x20')];var _0x42ba61=_0x10ac2c===_0x529a0c['intervals'][_0x95b8('0x20')]-0x1?_0x169028+_0x3287d1[_0x95b8('0x20')]+_0x2fb7ec[_0x95b8('0x20')]+0x2:_0x169028+_0x10ac2c+0x1;_0x3287d1[_0x95b8('0x44')](_0x10ac2c,0x0,{'type':_0x8200b5['type'],'app':_0x95b8('0x45'),'appdata':_0x529a0c['intervals'][_0x10ac2c]+'?'+_0x8200b5[_0x95b8('0x3')]+_0x95b8('0x46')+_0x17e18b+':'+_0x8200b5[_0x95b8('0x3')]+',${EXTEN},'+_0x42ba61,'exten':_0x8200b5[_0x95b8('0x4')],'context':_0x8200b5['context'],'priority':_0x169028+_0x10ac2c,'VoiceExtensionId':_0x8200b5['id']});}if(_0x529a0c[_0x95b8('0x3f')]===_0x95b8('0x47')){_0x529a0c[_0x95b8('0x48')]=_0x527fcc(_0x8200b5,_0x529a0c['appdata']);}if(_0x529a0c[_0x95b8('0x3f')]===_0x95b8('0x49')){_0x3287d1[_0x95b8('0xa')]({'type':_0x529a0c[_0x95b8('0x2')]['toLowerCase'](),'app':_0x95b8('0x6'),'appdata':'XMCS-UNIQUEID=${CHANNEL(LINKEDID)}','context':_0x8200b5['context'],'exten':_0x8200b5[_0x95b8('0x4')],'priority':_0x529a0c[_0x95b8('0x37')][_0x95b8('0x20')]+_0x169028+_0xe9e36++,'VoiceExtensionId':_0x8200b5['id']});}_0x529a0c[_0x95b8('0x4a')]=_0x3287d1[_0x95b8('0x20')]?_[_0x95b8('0x4b')](_0x3287d1)['priority']+0x1:_0x169028;_0x4c12a4=_[_0x95b8('0x4c')](_0x4c12a4,_0x3287d1,[_0x529a0c],_0x2fb7ec);_0x169028=_[_0x95b8('0x4b')](_0x4c12a4)['priority']+0x1;}return _0x4f9d64(_0x4c12a4);})[_0x95b8('0x4d')](function(_0x174331){_0x3fccaf(_0x174331);});});}return _0x299215[_0x95b8('0x4e')](_0x95b8('0x4f'),attributes,{'tableName':_0x95b8('0x50'),'paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x36766d){var _0x465279=this['get']({'plain':!![]});var _0x1e7bfd=_0x465279[_0x95b8('0x2')]===_0x95b8('0x10')?_0x3cfb99(_0x465279):_0x568b69(_0x465279);return _0x3cc61a(_0x465279,_0x36766d,_['last'](_0x1e7bfd)[_0x95b8('0x4a')]+0x1)[_0x95b8('0x30')](function(_0x375f0a){var _0x2a93b1=_[_0x95b8('0x4c')](_0x1e7bfd,_0x375f0a);_0x2a93b1[_0x95b8('0xa')]({'type':_0x465279[_0x95b8('0x2')],'app':_0x95b8('0x51'),'exten':_0x465279[_0x95b8('0x4')],'context':_0x465279[_0x95b8('0x3')],'priority':_[_0x95b8('0x4b')](_0x2a93b1)[_0x95b8('0x4a')]+0x1,'VoiceExtensionId':_0x465279['id']});return _0x2a93b1;});}}});};