Built motion from commit 14588770.|2.5.38
[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 _0xb55e=['trunk','param','phone','prefix','join','options','indexOf','U(xcally-mixmonitor-context)','replace','isEmpty','findAll','interval','then','*,*,*,*','intervals','IntervalId','toLowerCase','tag','length','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):','callerID','NoOp(No\x20number\x20available)','appType','answer','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','splice',',${EXTEN},','outboundDial','appdata','priority','last','concat','catch','define','VoiceExtension','get','Hangup','lodash','./voiceExtension.attributes','exports','type','context','exten','alias','Set','NoOp','No\x20alias\x20set','push','inbound','CDR(routeid)=','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','outbound','CDR(routeAlias)=','cutdigits','${EXTEN:','${EXTEN}','ExecIf','):Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','hasOwnProperty','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','wav','url','split','name'];(function(_0x34ae76,_0x4cd562){var _0x5325eb=function(_0x29406a){while(--_0x29406a){_0x34ae76['push'](_0x34ae76['shift']());}};_0x5325eb(++_0x4cd562);}(_0xb55e,0x106));var _0xeb55=function(_0x19a5ae,_0x518421){_0x19a5ae=_0x19a5ae-0x0;var _0x36f984=_0xb55e[_0x19a5ae];return _0x36f984;};'use strict';var _=require(_0xeb55('0x0'));var attributes=require(_0xeb55('0x1'));module[_0xeb55('0x2')]=function(_0x8bb640){var _0x559039=_0x8bb640['models'];function _0xd22a98(_0x3d16b1){var _0x4bc06c=0x2;var _0x16ed89=[{'type':_0x3d16b1['type'],'app':'Set','appdata':'CDR(type)='+_0x3d16b1[_0xeb55('0x3')],'context':_0x3d16b1[_0xeb55('0x4')],'exten':_0x3d16b1[_0xeb55('0x5')],'priority':_0x4bc06c++,'VoiceExtensionId':_0x3d16b1['id']},{'type':_0x3d16b1[_0xeb55('0x3')],'app':_0x3d16b1[_0xeb55('0x6')]?_0xeb55('0x7'):_0xeb55('0x8'),'appdata':_0x3d16b1[_0xeb55('0x6')]?'CDR(routeAlias)='+_0x3d16b1['alias']:_0xeb55('0x9'),'context':_0x3d16b1[_0xeb55('0x4')],'exten':_0x3d16b1['exten'],'priority':_0x4bc06c++,'VoiceExtensionId':_0x3d16b1['id']}];if(_0x3d16b1[_0xeb55('0x3')]==='inbound'){_0x16ed89[_0xeb55('0xa')]({'type':_0xeb55('0xb'),'app':'Set','appdata':_0xeb55('0xc')+_0x3d16b1['id'],'context':_0x3d16b1[_0xeb55('0x4')],'exten':_0x3d16b1[_0xeb55('0x5')],'priority':_0x4bc06c++,'VoiceExtensionId':_0x3d16b1['id']});}_0x16ed89[_0xeb55('0xa')]({'type':_0x3d16b1[_0xeb55('0x3')],'app':_0xeb55('0x7'),'appdata':_0xeb55('0xd'),'context':_0x3d16b1[_0xeb55('0x4')],'exten':_0x3d16b1[_0xeb55('0x5')],'priority':_0x4bc06c++,'VoiceExtensionId':_0x3d16b1['id']},{'type':_0x3d16b1[_0xeb55('0x3')],'app':_0xeb55('0x7'),'appdata':_0xeb55('0xe'),'context':_0x3d16b1[_0xeb55('0x4')],'exten':_0x3d16b1[_0xeb55('0x5')],'priority':_0x4bc06c++,'VoiceExtensionId':_0x3d16b1['id']},{'type':_0x3d16b1[_0xeb55('0x3')],'app':_0xeb55('0x7'),'appdata':_0xeb55('0xf'),'context':_0x3d16b1[_0xeb55('0x4')],'exten':_0x3d16b1[_0xeb55('0x5')],'priority':_0x4bc06c++,'VoiceExtensionId':_0x3d16b1['id']});return _0x16ed89;}function _0x506cdb(_0xf9e5ea){var _0x177baf=0x2;var _0x105a9b=[{'type':_0xeb55('0x10'),'app':_0xeb55('0x7'),'appdata':'CDR(type)=outbound','context':_0xf9e5ea[_0xeb55('0x4')],'exten':_0xf9e5ea[_0xeb55('0x5')],'priority':_0x177baf++,'VoiceExtensionId':_0xf9e5ea['id']},{'type':_0xeb55('0x10'),'app':_0xf9e5ea['alias']?_0xeb55('0x7'):_0xeb55('0x8'),'appdata':_0xf9e5ea['alias']?_0xeb55('0x11')+_0xf9e5ea[_0xeb55('0x6')]:_0xeb55('0x9'),'context':_0xf9e5ea[_0xeb55('0x4')],'exten':_0xf9e5ea[_0xeb55('0x5')],'priority':_0x177baf++,'VoiceExtensionId':_0xf9e5ea['id']},{'type':'outbound','app':_0xeb55('0x7'),'appdata':'CDR(destination)='+(_0xf9e5ea[_0xeb55('0x12')]?_0xeb55('0x13')+_0xf9e5ea[_0xeb55('0x12')]+'}':_0xeb55('0x14')),'context':_0xf9e5ea[_0xeb55('0x4')],'exten':_0xf9e5ea['exten'],'priority':_0x177baf++,'VoiceExtensionId':_0xf9e5ea['id']},{'type':'outbound','app':_0xeb55('0x7'),'appdata':'CDR(routeid)='+_0xf9e5ea['id'],'context':_0xf9e5ea[_0xeb55('0x4')],'exten':_0xf9e5ea[_0xeb55('0x5')],'priority':_0x177baf++,'VoiceExtensionId':_0xf9e5ea['id']},{'type':_0xeb55('0x10'),'app':_0xeb55('0x15'),'appdata':'$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto('+(_0x177baf+0x2)+_0xeb55('0x16')+(_0x177baf+0x1)+')','context':_0xf9e5ea[_0xeb55('0x4')],'exten':_0xf9e5ea[_0xeb55('0x5')],'priority':_0x177baf++,'VoiceExtensionId':_0xf9e5ea['id']},{'type':_0xeb55('0x10'),'app':'Set','appdata':_0xf9e5ea[_0xeb55('0x12')]?_0xeb55('0x17')+_0xf9e5ea[_0xeb55('0x12')]+'}':_0xeb55('0x18'),'context':_0xf9e5ea[_0xeb55('0x4')],'exten':_0xf9e5ea[_0xeb55('0x5')],'priority':_0x177baf++,'VoiceExtensionId':_0xf9e5ea['id']},{'type':_0xeb55('0x10'),'app':_0xeb55('0x7'),'appdata':_0xeb55('0xd'),'context':_0xf9e5ea[_0xeb55('0x4')],'exten':_0xf9e5ea['exten'],'priority':_0x177baf++,'VoiceExtensionId':_0xf9e5ea['id']},{'type':'outbound','app':'Set','appdata':_0xeb55('0xe'),'context':_0xf9e5ea['context'],'exten':_0xf9e5ea['exten'],'priority':_0x177baf++,'VoiceExtensionId':_0xf9e5ea['id']},{'type':_0xeb55('0x10'),'app':_0xeb55('0x7'),'appdata':_0xeb55('0xf'),'context':_0xf9e5ea[_0xeb55('0x4')],'exten':_0xf9e5ea[_0xeb55('0x5')],'priority':_0x177baf++,'VoiceExtensionId':_0xf9e5ea['id']},{'type':_0xeb55('0x10'),'app':_0xeb55('0x7'),'appdata':'outboundrouteid='+_0xf9e5ea['id'],'context':_0xf9e5ea['context'],'exten':_0xf9e5ea[_0xeb55('0x5')],'priority':_0x177baf++,'VoiceExtensionId':_0xf9e5ea['id']}];if(_0xf9e5ea[_0xeb55('0x19')](_0xeb55('0x1a'))&&_0xf9e5ea[_0xeb55('0x1a')]!==_0xeb55('0x1b')){_0x105a9b[_0xeb55('0xa')]({'type':_0xeb55('0x10'),'app':'Set','appdata':_0xeb55('0x1c'),'context':_0xf9e5ea['context'],'exten':_0xf9e5ea[_0xeb55('0x5')],'priority':_0x177baf++,'VoiceExtensionId':_0xf9e5ea['id']},{'type':_0xeb55('0x10'),'app':'Set','appdata':_0xeb55('0x1d')+_0xf9e5ea[_0xeb55('0x1a')]||_0xeb55('0x1e'),'context':_0xf9e5ea['context'],'exten':_0xf9e5ea[_0xeb55('0x5')],'priority':_0x177baf++,'VoiceExtensionId':_0xf9e5ea['id']});}return _0x105a9b;}function _0xcb4071(_0x3a72cb,_0x15f54b){var _0x32367b=[{'name':'trunk','param':0x0},{'name':'timeout','param':0x1},{'name':'options','param':0x2},{'name':_0xeb55('0x1f'),'param':0x3}];var _0x13f5ee={};var _0x4c8673=_0x15f54b[_0xeb55('0x20')](',');var _0x214613=[];for(var _0x24469a=0x0;_0x24469a<_0x32367b['length'];_0x24469a++){switch(_0x32367b[_0x24469a][_0xeb55('0x21')]){case _0xeb55('0x22'):_0x13f5ee[_0xeb55('0x22')]=_0x4c8673[_0x32367b[_0x24469a][_0xeb55('0x23')]]['split']('/')[0x1];_0x13f5ee[_0xeb55('0x24')]=_0x4c8673[_0x32367b[_0x24469a][_0xeb55('0x23')]][_0xeb55('0x20')]('/')[0x2];_0x13f5ee[_0xeb55('0x25')]=_0x13f5ee[_0xeb55('0x24')]?_0x13f5ee[_0xeb55('0x24')][_0xeb55('0x20')]('$')[0x0]:undefined;_0x13f5ee[_0xeb55('0x24')]=_0x3a72cb[_0xeb55('0x12')]?(_0x13f5ee[_0xeb55('0x25')]||'')+_0xeb55('0x13')+_0x3a72cb[_0xeb55('0x12')]+'}':(_0x13f5ee[_0xeb55('0x25')]||'')+_0xeb55('0x14');_0x214613[_0x32367b[_0x24469a][_0xeb55('0x23')]]=['SIP',_0x13f5ee['trunk'],_0x13f5ee[_0xeb55('0x24')]][_0xeb55('0x26')]('/');break;case _0xeb55('0x27'):_0x13f5ee[_0xeb55('0x27')]=_0x4c8673[_0x32367b[_0x24469a][_0xeb55('0x23')]];if(_0x3a72cb[_0xeb55('0x1a')]!==_0xeb55('0x1b')){if(_0x13f5ee[_0xeb55('0x27')][_0xeb55('0x28')](_0xeb55('0x29'))<0x0){_0x13f5ee[_0xeb55('0x27')]+=_0xeb55('0x29');}}else{_0x13f5ee[_0xeb55('0x27')]=_0x13f5ee[_0xeb55('0x27')][_0xeb55('0x2a')](_0xeb55('0x29'),'');}_0x214613[_0x32367b[_0x24469a][_0xeb55('0x23')]]=_0x13f5ee['options'];break;default:_0x214613[_0x32367b[_0x24469a][_0xeb55('0x23')]]=_0x4c8673[_0x32367b[_0x24469a]['param']];}}return _0x214613['join'](',');}function _0x12a2bf(_0x349ca7,_0x4e3a9d,_0x341ebc){return new Promise(function(_0x10cc7c,_0x28585b){var _0x635834=[];if(_[_0xeb55('0x2b')](_0x4e3a9d))return _0x10cc7c(_0x635834);_0x559039['Interval'][_0xeb55('0x2c')]({'attributes':['id',_0xeb55('0x2d'),'IntervalId'],'raw':!![]})[_0xeb55('0x2e')](function(_0x1964c7){for(var _0x25b92e=0x0,_0x90098d=0x0;_0x25b92e<_0x4e3a9d['length'];_0x25b92e++,_0x90098d=0x0){var _0x31f968=_0x4e3a9d[_0x25b92e];var _0x421100=[];var _0x470130=[];delete _0x31f968['id'];if(_0x31f968[_0xeb55('0x2d')]!==_0xeb55('0x2f')){_0x31f968['intervals']=[_0x31f968[_0xeb55('0x2d')]];}else{_0x31f968[_0xeb55('0x30')]=_0x31f968[_0xeb55('0x31')]?_['map'](_['filter'](_0x1964c7,{'IntervalId':_0x31f968['IntervalId']}),_0xeb55('0x2d')):[];}_0x31f968[_0xeb55('0x4')]=_0x349ca7[_0xeb55('0x4')];_0x31f968['exten']=_0x349ca7['exten'];if(_0x31f968[_0xeb55('0x3')])_0x31f968['type']=_0x31f968[_0xeb55('0x3')][_0xeb55('0x32')]();if(_0x349ca7['type']==='outbound'){if(_0x31f968[_0xeb55('0x19')](_0xeb55('0x33'))&&_0x31f968[_0xeb55('0x33')]&&_0x31f968[_0xeb55('0x33')]!=='--'){_0x421100[_0xeb55('0xa')]({'type':_0x31f968[_0xeb55('0x3')][_0xeb55('0x32')](),'app':_0xeb55('0x7'),'appdata':'CDR(tag)='+_0x31f968[_0xeb55('0x33')],'context':_0x349ca7[_0xeb55('0x4')],'exten':_0x349ca7[_0xeb55('0x5')],'priority':_0x31f968['intervals'][_0xeb55('0x34')]+_0x341ebc+_0x90098d++,'VoiceExtensionId':_0x349ca7['id']});}_0x421100[_0xeb55('0xa')]({'type':_0x31f968['type']['toLowerCase'](),'app':'ExecIf','appdata':_0xeb55('0x35')+(_0x31f968[_0xeb55('0x36')]?'Set(CALLERID(all)='+_0x31f968[_0xeb55('0x36')]+')':_0xeb55('0x37')),'context':_0x349ca7['context'],'exten':_0x349ca7['exten'],'priority':_0x31f968[_0xeb55('0x30')][_0xeb55('0x34')]+_0x341ebc+_0x90098d++,'VoiceExtensionId':_0x349ca7['id']});}else{if(_0x31f968[_0xeb55('0x19')]('answer')){if(['queue','playback']['includes'](_0x31f968['app'][_0xeb55('0x32')]())&&_0x31f968[_0xeb55('0x38')]!=='custom'){if(_0x31f968[_0xeb55('0x39')]){_0x421100[_0xeb55('0xa')]({'type':_0x31f968[_0xeb55('0x3')][_0xeb55('0x32')](),'app':'ExecIf','appdata':_0xeb55('0x3a'),'context':_0x349ca7[_0xeb55('0x4')],'exten':_0x349ca7[_0xeb55('0x5')],'priority':_0x31f968[_0xeb55('0x30')]['length']+_0x341ebc+_0x90098d++,'VoiceExtensionId':_0x349ca7['id']});_0x421100[_0xeb55('0xa')]({'type':_0x31f968[_0xeb55('0x3')][_0xeb55('0x32')](),'app':_0xeb55('0x7'),'appdata':_0xeb55('0x3b'),'context':_0x349ca7[_0xeb55('0x4')],'exten':_0x349ca7[_0xeb55('0x5')],'priority':_0x31f968[_0xeb55('0x30')][_0xeb55('0x34')]+_0x341ebc+_0x90098d++,'VoiceExtensionId':_0x349ca7['id']});}else{_0x421100[_0xeb55('0xa')]({'type':_0x31f968[_0xeb55('0x3')][_0xeb55('0x32')](),'app':_0xeb55('0x15'),'appdata':_0xeb55('0x3c'),'context':_0x349ca7['context'],'exten':_0x349ca7[_0xeb55('0x5')],'priority':_0x31f968[_0xeb55('0x30')][_0xeb55('0x34')]+_0x341ebc+_0x90098d++,'VoiceExtensionId':_0x349ca7['id']});_0x421100[_0xeb55('0xa')]({'type':_0x31f968[_0xeb55('0x3')]['toLowerCase'](),'app':'Set','appdata':_0xeb55('0x3d'),'context':_0x349ca7['context'],'exten':_0x349ca7[_0xeb55('0x5')],'priority':_0x31f968[_0xeb55('0x30')]['length']+_0x341ebc+_0x90098d++,'VoiceExtensionId':_0x349ca7['id']});}}}}for(var _0x321cd0=0x0;_0x321cd0<_0x31f968[_0xeb55('0x30')][_0xeb55('0x34')];_0x321cd0++){var _0x55fd0c=_0x341ebc+_0x31f968[_0xeb55('0x30')][_0xeb55('0x34')];var _0x2e1550=_0x321cd0===_0x31f968['intervals'][_0xeb55('0x34')]-0x1?_0x341ebc+_0x421100[_0xeb55('0x34')]+_0x470130[_0xeb55('0x34')]+0x2:_0x341ebc+_0x321cd0+0x1;_0x421100[_0xeb55('0x3e')](_0x321cd0,0x0,{'type':_0x349ca7[_0xeb55('0x3')],'app':'GotoIfTime','appdata':_0x31f968[_0xeb55('0x30')][_0x321cd0]+'?'+_0x349ca7[_0xeb55('0x4')]+_0xeb55('0x3f')+_0x55fd0c+':'+_0x349ca7[_0xeb55('0x4')]+',${EXTEN},'+_0x2e1550,'exten':_0x349ca7[_0xeb55('0x5')],'context':_0x349ca7[_0xeb55('0x4')],'priority':_0x341ebc+_0x321cd0,'VoiceExtensionId':_0x349ca7['id']});}if(_0x31f968[_0xeb55('0x38')]===_0xeb55('0x40'))_0x31f968[_0xeb55('0x41')]=_0xcb4071(_0x349ca7,_0x31f968[_0xeb55('0x41')]);_0x31f968[_0xeb55('0x42')]=_0x421100[_0xeb55('0x34')]?_[_0xeb55('0x43')](_0x421100)[_0xeb55('0x42')]+0x1:_0x341ebc;_0x635834=_[_0xeb55('0x44')](_0x635834,_0x421100,[_0x31f968],_0x470130);_0x341ebc=_[_0xeb55('0x43')](_0x635834)[_0xeb55('0x42')]+0x1;}return _0x10cc7c(_0x635834);})[_0xeb55('0x45')](function(_0x500907){_0x28585b(_0x500907);});});}return _0x8bb640[_0xeb55('0x46')](_0xeb55('0x47'),attributes,{'tableName':'voice_extensions','paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x357e5f){var _0x2d0761=this[_0xeb55('0x48')]({'plain':!![]});var _0x4b4730=_0x2d0761[_0xeb55('0x3')]===_0xeb55('0x10')?_0x506cdb(_0x2d0761):_0xd22a98(_0x2d0761);return _0x12a2bf(_0x2d0761,_0x357e5f,_[_0xeb55('0x43')](_0x4b4730)[_0xeb55('0x42')]+0x1)[_0xeb55('0x2e')](function(_0x4cfc58){var _0x112a1b=_['concat'](_0x4b4730,_0x4cfc58);_0x112a1b[_0xeb55('0xa')]({'type':_0x2d0761['type'],'app':_0xeb55('0x49'),'exten':_0x2d0761[_0xeb55('0x5')],'context':_0x2d0761[_0xeb55('0x4')],'priority':_['last'](_0x112a1b)['priority']+0x1,'VoiceExtensionId':_0x2d0761['id']});return _0x112a1b;});}}});};