Built motion from commit 25580385.|2.6.2
[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 _0x42b0=['join','Interval','findAll','interval','IntervalId','*,*,*,*','intervals','map','toLowerCase','tag','Set(CALLERID(all)=','NoOp(No\x20number\x20available)','queue','playback','includes','app','appType','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','splice','GotoIfTime',',${EXTEN},','outboundDial','appdata','priority','last','concat','catch','define','get','then','Hangup','lodash','./voiceExtension.attributes','models','type','Set','CDR(type)=','exten','NoOp','CDR(routeAlias)=','No\x20alias\x20set','context','inbound','push','CDR(routeid)=','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','outbound','CDR(destination)=','${EXTEN:','cutdigits','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=${EXTEN:0:','MONITOR_OPTIONS=ab','outboundrouteid=','hasOwnProperty','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','trunk','timeout','options','url','split','length','phone','prefix','${EXTEN}','param','U(xcally-mixmonitor-context)','replace'];(function(_0x8ac19c,_0x5cfe49){var _0x8f341d=function(_0x32dda7){while(--_0x32dda7){_0x8ac19c['push'](_0x8ac19c['shift']());}};_0x8f341d(++_0x5cfe49);}(_0x42b0,0xbc));var _0x042b=function(_0x309385,_0x3ab38f){_0x309385=_0x309385-0x0;var _0x45b0f5=_0x42b0[_0x309385];return _0x45b0f5;};'use strict';var _=require(_0x042b('0x0'));var attributes=require(_0x042b('0x1'));module['exports']=function(_0x404215){var _0x4bf494=_0x404215[_0x042b('0x2')];function _0x5a7e27(_0x51e9e9){var _0x401a0c=0x2;var _0xd73d53=[{'type':_0x51e9e9[_0x042b('0x3')],'app':_0x042b('0x4'),'appdata':_0x042b('0x5')+_0x51e9e9['type'],'context':_0x51e9e9['context'],'exten':_0x51e9e9[_0x042b('0x6')],'priority':_0x401a0c++,'VoiceExtensionId':_0x51e9e9['id']},{'type':_0x51e9e9[_0x042b('0x3')],'app':_0x51e9e9['alias']?'Set':_0x042b('0x7'),'appdata':_0x51e9e9['alias']?_0x042b('0x8')+_0x51e9e9['alias']:_0x042b('0x9'),'context':_0x51e9e9[_0x042b('0xa')],'exten':_0x51e9e9[_0x042b('0x6')],'priority':_0x401a0c++,'VoiceExtensionId':_0x51e9e9['id']}];if(_0x51e9e9[_0x042b('0x3')]===_0x042b('0xb')){_0xd73d53[_0x042b('0xc')]({'type':_0x042b('0xb'),'app':_0x042b('0x4'),'appdata':_0x042b('0xd')+_0x51e9e9['id'],'context':_0x51e9e9[_0x042b('0xa')],'exten':_0x51e9e9[_0x042b('0x6')],'priority':_0x401a0c++,'VoiceExtensionId':_0x51e9e9['id']});}_0xd73d53[_0x042b('0xc')]({'type':_0x51e9e9[_0x042b('0x3')],'app':'Set','appdata':_0x042b('0xe'),'context':_0x51e9e9['context'],'exten':_0x51e9e9[_0x042b('0x6')],'priority':_0x401a0c++,'VoiceExtensionId':_0x51e9e9['id']},{'type':_0x51e9e9['type'],'app':_0x042b('0x4'),'appdata':_0x042b('0xf'),'context':_0x51e9e9[_0x042b('0xa')],'exten':_0x51e9e9[_0x042b('0x6')],'priority':_0x401a0c++,'VoiceExtensionId':_0x51e9e9['id']},{'type':_0x51e9e9[_0x042b('0x3')],'app':_0x042b('0x4'),'appdata':'MONITOR_OPTIONS=ab','context':_0x51e9e9[_0x042b('0xa')],'exten':_0x51e9e9[_0x042b('0x6')],'priority':_0x401a0c++,'VoiceExtensionId':_0x51e9e9['id']});return _0xd73d53;}function _0x4d6367(_0x471157){var _0x1e4eee=0x2;var _0x56f252=[{'type':_0x042b('0x10'),'app':_0x042b('0x4'),'appdata':'CDR(type)=outbound','context':_0x471157['context'],'exten':_0x471157[_0x042b('0x6')],'priority':_0x1e4eee++,'VoiceExtensionId':_0x471157['id']},{'type':_0x042b('0x10'),'app':_0x471157['alias']?_0x042b('0x4'):_0x042b('0x7'),'appdata':_0x471157['alias']?'CDR(routeAlias)='+_0x471157['alias']:'No\x20alias\x20set','context':_0x471157[_0x042b('0xa')],'exten':_0x471157[_0x042b('0x6')],'priority':_0x1e4eee++,'VoiceExtensionId':_0x471157['id']},{'type':_0x042b('0x10'),'app':_0x042b('0x4'),'appdata':_0x042b('0x11')+(_0x471157['cutdigits']?_0x042b('0x12')+_0x471157[_0x042b('0x13')]+'}':'${EXTEN}'),'context':_0x471157['context'],'exten':_0x471157[_0x042b('0x6')],'priority':_0x1e4eee++,'VoiceExtensionId':_0x471157['id']},{'type':'outbound','app':'Set','appdata':_0x042b('0xd')+_0x471157['id'],'context':_0x471157[_0x042b('0xa')],'exten':_0x471157['exten'],'priority':_0x1e4eee++,'VoiceExtensionId':_0x471157['id']},{'type':'outbound','app':_0x042b('0x14'),'appdata':_0x042b('0x15')+(_0x1e4eee+0x2)+_0x042b('0x16')+(_0x1e4eee+0x1)+')','context':_0x471157['context'],'exten':_0x471157[_0x042b('0x6')],'priority':_0x1e4eee++,'VoiceExtensionId':_0x471157['id']},{'type':_0x042b('0x10'),'app':_0x042b('0x4'),'appdata':_0x471157['cutdigits']?_0x042b('0x17')+_0x471157[_0x042b('0x13')]+'}':'CDR(prefix)=noprefix','context':_0x471157[_0x042b('0xa')],'exten':_0x471157[_0x042b('0x6')],'priority':_0x1e4eee++,'VoiceExtensionId':_0x471157['id']},{'type':_0x042b('0x10'),'app':_0x042b('0x4'),'appdata':'XCALLY-MOTION-ANSWER=0','context':_0x471157['context'],'exten':_0x471157['exten'],'priority':_0x1e4eee++,'VoiceExtensionId':_0x471157['id']},{'type':'outbound','app':_0x042b('0x4'),'appdata':'XCALLY-MOTION-PROGRESS=0','context':_0x471157[_0x042b('0xa')],'exten':_0x471157[_0x042b('0x6')],'priority':_0x1e4eee++,'VoiceExtensionId':_0x471157['id']},{'type':_0x042b('0x10'),'app':_0x042b('0x4'),'appdata':_0x042b('0x18'),'context':_0x471157[_0x042b('0xa')],'exten':_0x471157[_0x042b('0x6')],'priority':_0x1e4eee++,'VoiceExtensionId':_0x471157['id']},{'type':_0x042b('0x10'),'app':_0x042b('0x4'),'appdata':_0x042b('0x19')+_0x471157['id'],'context':_0x471157[_0x042b('0xa')],'exten':_0x471157[_0x042b('0x6')],'priority':_0x1e4eee++,'VoiceExtensionId':_0x471157['id']}];if(_0x471157[_0x042b('0x1a')](_0x042b('0x1b'))&&_0x471157[_0x042b('0x1b')]!==_0x042b('0x1c')){_0x56f252['push']({'type':_0x042b('0x10'),'app':_0x042b('0x4'),'appdata':_0x042b('0x1d'),'context':_0x471157[_0x042b('0xa')],'exten':_0x471157[_0x042b('0x6')],'priority':_0x1e4eee++,'VoiceExtensionId':_0x471157['id']},{'type':_0x042b('0x10'),'app':'Set','appdata':_0x042b('0x1e')+_0x471157[_0x042b('0x1b')]||'wav','context':_0x471157[_0x042b('0xa')],'exten':_0x471157[_0x042b('0x6')],'priority':_0x1e4eee++,'VoiceExtensionId':_0x471157['id']});}return _0x56f252;}function _0x2e9106(_0x124886,_0x501cf3){var _0x1b994a=[{'name':_0x042b('0x1f'),'param':0x0},{'name':_0x042b('0x20'),'param':0x1},{'name':_0x042b('0x21'),'param':0x2},{'name':_0x042b('0x22'),'param':0x3}];var _0x5deafc={};var _0x2fa7ed=_0x501cf3[_0x042b('0x23')](',');var _0x1f671d=[];for(var _0x52a350=0x0;_0x52a350<_0x1b994a[_0x042b('0x24')];_0x52a350++){switch(_0x1b994a[_0x52a350]['name']){case _0x042b('0x1f'):_0x5deafc[_0x042b('0x1f')]=_0x2fa7ed[_0x1b994a[_0x52a350]['param']][_0x042b('0x23')]('/')[0x1];_0x5deafc[_0x042b('0x25')]=_0x2fa7ed[_0x1b994a[_0x52a350]['param']]['split']('/')[0x2];_0x5deafc[_0x042b('0x26')]=_0x5deafc[_0x042b('0x25')]?_0x5deafc['phone'][_0x042b('0x23')]('$')[0x0]:undefined;_0x5deafc[_0x042b('0x25')]=_0x124886[_0x042b('0x13')]?(_0x5deafc['prefix']||'')+'${EXTEN:'+_0x124886[_0x042b('0x13')]+'}':(_0x5deafc[_0x042b('0x26')]||'')+_0x042b('0x27');_0x1f671d[_0x1b994a[_0x52a350][_0x042b('0x28')]]=['SIP',_0x5deafc['trunk'],_0x5deafc[_0x042b('0x25')]]['join']('/');break;case _0x042b('0x21'):_0x5deafc['options']=_0x2fa7ed[_0x1b994a[_0x52a350][_0x042b('0x28')]];if(_0x124886['recordingFormat']!==_0x042b('0x1c')){if(_0x5deafc[_0x042b('0x21')]['indexOf'](_0x042b('0x29'))<0x0){_0x5deafc['options']+=_0x042b('0x29');}}else{_0x5deafc['options']=_0x5deafc[_0x042b('0x21')][_0x042b('0x2a')](_0x042b('0x29'),'');}_0x1f671d[_0x1b994a[_0x52a350]['param']]=_0x5deafc['options'];break;default:_0x1f671d[_0x1b994a[_0x52a350][_0x042b('0x28')]]=_0x2fa7ed[_0x1b994a[_0x52a350][_0x042b('0x28')]];}}return _0x1f671d[_0x042b('0x2b')](',');}function _0x337db2(_0x79d5fc,_0xf5a1e7,_0x2dd193){return new Promise(function(_0x3b8e8f,_0x3ad12f){var _0x42c11d=[];if(_['isEmpty'](_0xf5a1e7))return _0x3b8e8f(_0x42c11d);_0x4bf494[_0x042b('0x2c')][_0x042b('0x2d')]({'attributes':['id',_0x042b('0x2e'),_0x042b('0x2f')],'raw':!![]})['then'](function(_0x5c0f3c){for(var _0x176bbb=0x0,_0x5b7241=0x0;_0x176bbb<_0xf5a1e7[_0x042b('0x24')];_0x176bbb++,_0x5b7241=0x0){var _0x1e352b=_0xf5a1e7[_0x176bbb];var _0x9392cb=[];var _0x4ce389=[];delete _0x1e352b['id'];if(_0x1e352b[_0x042b('0x2e')]!==_0x042b('0x30')){_0x1e352b[_0x042b('0x31')]=[_0x1e352b[_0x042b('0x2e')]];}else{_0x1e352b[_0x042b('0x31')]=_0x1e352b[_0x042b('0x2f')]?_[_0x042b('0x32')](_['filter'](_0x5c0f3c,{'IntervalId':_0x1e352b[_0x042b('0x2f')]}),'interval'):[];}_0x1e352b[_0x042b('0xa')]=_0x79d5fc[_0x042b('0xa')];_0x1e352b['exten']=_0x79d5fc[_0x042b('0x6')];if(_0x1e352b[_0x042b('0x3')])_0x1e352b[_0x042b('0x3')]=_0x1e352b[_0x042b('0x3')][_0x042b('0x33')]();if(_0x79d5fc[_0x042b('0x3')]===_0x042b('0x10')){if(_0x1e352b[_0x042b('0x1a')]('tag')&&_0x1e352b[_0x042b('0x34')]&&_0x1e352b[_0x042b('0x34')]!=='--'){_0x9392cb[_0x042b('0xc')]({'type':_0x1e352b[_0x042b('0x3')][_0x042b('0x33')](),'app':'Set','appdata':'CDR(tag)='+_0x1e352b['tag'],'context':_0x79d5fc[_0x042b('0xa')],'exten':_0x79d5fc[_0x042b('0x6')],'priority':_0x1e352b[_0x042b('0x31')][_0x042b('0x24')]+_0x2dd193+_0x5b7241++,'VoiceExtensionId':_0x79d5fc['id']});}_0x9392cb[_0x042b('0xc')]({'type':_0x1e352b['type']['toLowerCase'](),'app':_0x042b('0x14'),'appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):'+(_0x1e352b['callerID']?_0x042b('0x35')+_0x1e352b['callerID']+')':_0x042b('0x36')),'context':_0x79d5fc[_0x042b('0xa')],'exten':_0x79d5fc[_0x042b('0x6')],'priority':_0x1e352b[_0x042b('0x31')]['length']+_0x2dd193+_0x5b7241++,'VoiceExtensionId':_0x79d5fc['id']});}else{if(_0x1e352b[_0x042b('0x1a')]('answer')){if([_0x042b('0x37'),_0x042b('0x38')][_0x042b('0x39')](_0x1e352b[_0x042b('0x3a')]['toLowerCase']())&&_0x1e352b[_0x042b('0x3b')]!==_0x042b('0x3c')){if(_0x1e352b['answer']){_0x9392cb[_0x042b('0xc')]({'type':_0x1e352b[_0x042b('0x3')][_0x042b('0x33')](),'app':_0x042b('0x14'),'appdata':_0x042b('0x3d'),'context':_0x79d5fc[_0x042b('0xa')],'exten':_0x79d5fc['exten'],'priority':_0x1e352b[_0x042b('0x31')][_0x042b('0x24')]+_0x2dd193+_0x5b7241++,'VoiceExtensionId':_0x79d5fc['id']});_0x9392cb[_0x042b('0xc')]({'type':_0x1e352b[_0x042b('0x3')]['toLowerCase'](),'app':'Set','appdata':_0x042b('0x3e'),'context':_0x79d5fc[_0x042b('0xa')],'exten':_0x79d5fc[_0x042b('0x6')],'priority':_0x1e352b[_0x042b('0x31')][_0x042b('0x24')]+_0x2dd193+_0x5b7241++,'VoiceExtensionId':_0x79d5fc['id']});}else{_0x9392cb[_0x042b('0xc')]({'type':_0x1e352b[_0x042b('0x3')][_0x042b('0x33')](),'app':'ExecIf','appdata':_0x042b('0x3f'),'context':_0x79d5fc[_0x042b('0xa')],'exten':_0x79d5fc[_0x042b('0x6')],'priority':_0x1e352b[_0x042b('0x31')][_0x042b('0x24')]+_0x2dd193+_0x5b7241++,'VoiceExtensionId':_0x79d5fc['id']});_0x9392cb[_0x042b('0xc')]({'type':_0x1e352b['type'][_0x042b('0x33')](),'app':_0x042b('0x4'),'appdata':'XCALLY-MOTION-PROGRESS=1','context':_0x79d5fc[_0x042b('0xa')],'exten':_0x79d5fc[_0x042b('0x6')],'priority':_0x1e352b[_0x042b('0x31')][_0x042b('0x24')]+_0x2dd193+_0x5b7241++,'VoiceExtensionId':_0x79d5fc['id']});}}}}for(var _0x385638=0x0;_0x385638<_0x1e352b[_0x042b('0x31')][_0x042b('0x24')];_0x385638++){var _0xa2d9a6=_0x2dd193+_0x1e352b[_0x042b('0x31')][_0x042b('0x24')];var _0x54140e=_0x385638===_0x1e352b[_0x042b('0x31')][_0x042b('0x24')]-0x1?_0x2dd193+_0x9392cb[_0x042b('0x24')]+_0x4ce389[_0x042b('0x24')]+0x2:_0x2dd193+_0x385638+0x1;_0x9392cb[_0x042b('0x40')](_0x385638,0x0,{'type':_0x79d5fc['type'],'app':_0x042b('0x41'),'appdata':_0x1e352b[_0x042b('0x31')][_0x385638]+'?'+_0x79d5fc[_0x042b('0xa')]+_0x042b('0x42')+_0xa2d9a6+':'+_0x79d5fc[_0x042b('0xa')]+_0x042b('0x42')+_0x54140e,'exten':_0x79d5fc[_0x042b('0x6')],'context':_0x79d5fc[_0x042b('0xa')],'priority':_0x2dd193+_0x385638,'VoiceExtensionId':_0x79d5fc['id']});}if(_0x1e352b[_0x042b('0x3b')]===_0x042b('0x43'))_0x1e352b[_0x042b('0x44')]=_0x2e9106(_0x79d5fc,_0x1e352b[_0x042b('0x44')]);_0x1e352b[_0x042b('0x45')]=_0x9392cb['length']?_[_0x042b('0x46')](_0x9392cb)['priority']+0x1:_0x2dd193;_0x42c11d=_[_0x042b('0x47')](_0x42c11d,_0x9392cb,[_0x1e352b],_0x4ce389);_0x2dd193=_['last'](_0x42c11d)['priority']+0x1;}return _0x3b8e8f(_0x42c11d);})[_0x042b('0x48')](function(_0x447c0f){_0x3ad12f(_0x447c0f);});});}return _0x404215[_0x042b('0x49')]('VoiceExtension',attributes,{'tableName':'voice_extensions','paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x551b57){var _0x415ac2=this[_0x042b('0x4a')]({'plain':!![]});var _0x4357af=_0x415ac2['type']==='outbound'?_0x4d6367(_0x415ac2):_0x5a7e27(_0x415ac2);return _0x337db2(_0x415ac2,_0x551b57,_['last'](_0x4357af)[_0x042b('0x45')]+0x1)[_0x042b('0x4b')](function(_0x3048a8){var _0x51e989=_[_0x042b('0x47')](_0x4357af,_0x3048a8);_0x51e989[_0x042b('0xc')]({'type':_0x415ac2[_0x042b('0x3')],'app':_0x042b('0x4c'),'exten':_0x415ac2[_0x042b('0x6')],'context':_0x415ac2[_0x042b('0xa')],'priority':_['last'](_0x51e989)[_0x042b('0x45')]+0x1,'VoiceExtensionId':_0x415ac2['id']});return _0x51e989;});}}});};