be228532077069e7d3b92a1c927b7e374601e367
[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 _0xb777=['callerID','Set(CALLERID(all)=','answer','queue','includes','app','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','splice','GotoIfTime',',${EXTEN},','appType','outboundDial','priority','last','concat','VoiceExtension','voice_extensions','get','Hangup','./voiceExtension.attributes','exports','type','Set','CDR(type)=','exten','alias','CDR(routeAlias)=','No\x20alias\x20set','context','inbound','CDR(routeid)=','push','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','outbound','CDR(type)=outbound','NoOp','CDR(destination)=','${EXTEN:','cutdigits','${EXTEN}','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','CDR(prefix)=noprefix','MONITOR_OPTIONS=ab','outboundrouteid=','hasOwnProperty','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','wav','timeout','options','url','split','length','trunk','param','prefix','phone','SIP','join','replace','U(xcally-mixmonitor-context)','isEmpty','Interval','findAll','interval','IntervalId','then','intervals','map','toLowerCase','CDR(tag)=','tag'];(function(_0x46b19e,_0x293d89){var _0x1473d0=function(_0x558f67){while(--_0x558f67){_0x46b19e['push'](_0x46b19e['shift']());}};_0x1473d0(++_0x293d89);}(_0xb777,0x107));var _0x7b77=function(_0x27deda,_0x300d08){_0x27deda=_0x27deda-0x0;var _0x29c0eb=_0xb777[_0x27deda];return _0x29c0eb;};'use strict';var _=require('lodash');var attributes=require(_0x7b77('0x0'));module[_0x7b77('0x1')]=function(_0x25861d){var _0x18a983=_0x25861d['models'];function _0x1d5f19(_0xd7aa10){var _0x3058ad=0x2;var _0x6b10bf=[{'type':_0xd7aa10[_0x7b77('0x2')],'app':_0x7b77('0x3'),'appdata':_0x7b77('0x4')+_0xd7aa10[_0x7b77('0x2')],'context':_0xd7aa10['context'],'exten':_0xd7aa10[_0x7b77('0x5')],'priority':_0x3058ad++,'VoiceExtensionId':_0xd7aa10['id']},{'type':_0xd7aa10[_0x7b77('0x2')],'app':_0xd7aa10[_0x7b77('0x6')]?_0x7b77('0x3'):'NoOp','appdata':_0xd7aa10[_0x7b77('0x6')]?_0x7b77('0x7')+_0xd7aa10[_0x7b77('0x6')]:_0x7b77('0x8'),'context':_0xd7aa10[_0x7b77('0x9')],'exten':_0xd7aa10[_0x7b77('0x5')],'priority':_0x3058ad++,'VoiceExtensionId':_0xd7aa10['id']}];if(_0xd7aa10['type']==='inbound'){_0x6b10bf['push']({'type':_0x7b77('0xa'),'app':'Set','appdata':_0x7b77('0xb')+_0xd7aa10['id'],'context':_0xd7aa10[_0x7b77('0x9')],'exten':_0xd7aa10['exten'],'priority':_0x3058ad++,'VoiceExtensionId':_0xd7aa10['id']});}_0x6b10bf[_0x7b77('0xc')]({'type':_0xd7aa10[_0x7b77('0x2')],'app':_0x7b77('0x3'),'appdata':_0x7b77('0xd'),'context':_0xd7aa10['context'],'exten':_0xd7aa10[_0x7b77('0x5')],'priority':_0x3058ad++,'VoiceExtensionId':_0xd7aa10['id']},{'type':_0xd7aa10[_0x7b77('0x2')],'app':_0x7b77('0x3'),'appdata':_0x7b77('0xe'),'context':_0xd7aa10[_0x7b77('0x9')],'exten':_0xd7aa10['exten'],'priority':_0x3058ad++,'VoiceExtensionId':_0xd7aa10['id']},{'type':_0xd7aa10[_0x7b77('0x2')],'app':'Set','appdata':'MONITOR_OPTIONS=ab','context':_0xd7aa10[_0x7b77('0x9')],'exten':_0xd7aa10[_0x7b77('0x5')],'priority':_0x3058ad++,'VoiceExtensionId':_0xd7aa10['id']});return _0x6b10bf;}function _0x281950(_0x36b956){var _0x4e8e74=0x2;var _0x52edcb=[{'type':_0x7b77('0xf'),'app':'Set','appdata':_0x7b77('0x10'),'context':_0x36b956[_0x7b77('0x9')],'exten':_0x36b956[_0x7b77('0x5')],'priority':_0x4e8e74++,'VoiceExtensionId':_0x36b956['id']},{'type':_0x7b77('0xf'),'app':_0x36b956[_0x7b77('0x6')]?_0x7b77('0x3'):_0x7b77('0x11'),'appdata':_0x36b956[_0x7b77('0x6')]?_0x7b77('0x7')+_0x36b956[_0x7b77('0x6')]:_0x7b77('0x8'),'context':_0x36b956['context'],'exten':_0x36b956[_0x7b77('0x5')],'priority':_0x4e8e74++,'VoiceExtensionId':_0x36b956['id']},{'type':'outbound','app':_0x7b77('0x3'),'appdata':_0x7b77('0x12')+(_0x36b956['cutdigits']?_0x7b77('0x13')+_0x36b956[_0x7b77('0x14')]+'}':_0x7b77('0x15')),'context':_0x36b956[_0x7b77('0x9')],'exten':_0x36b956['exten'],'priority':_0x4e8e74++,'VoiceExtensionId':_0x36b956['id']},{'type':_0x7b77('0xf'),'app':_0x7b77('0x3'),'appdata':_0x7b77('0xb')+_0x36b956['id'],'context':_0x36b956[_0x7b77('0x9')],'exten':_0x36b956[_0x7b77('0x5')],'priority':_0x4e8e74++,'VoiceExtensionId':_0x36b956['id']},{'type':_0x7b77('0xf'),'app':_0x7b77('0x16'),'appdata':_0x7b77('0x17')+(_0x4e8e74+0x2)+'):Goto('+(_0x4e8e74+0x1)+')','context':_0x36b956[_0x7b77('0x9')],'exten':_0x36b956[_0x7b77('0x5')],'priority':_0x4e8e74++,'VoiceExtensionId':_0x36b956['id']},{'type':_0x7b77('0xf'),'app':_0x7b77('0x3'),'appdata':_0x36b956[_0x7b77('0x14')]?'CDR(prefix)=${EXTEN:0:'+_0x36b956['cutdigits']+'}':_0x7b77('0x18'),'context':_0x36b956[_0x7b77('0x9')],'exten':_0x36b956['exten'],'priority':_0x4e8e74++,'VoiceExtensionId':_0x36b956['id']},{'type':_0x7b77('0xf'),'app':'Set','appdata':_0x7b77('0xd'),'context':_0x36b956['context'],'exten':_0x36b956[_0x7b77('0x5')],'priority':_0x4e8e74++,'VoiceExtensionId':_0x36b956['id']},{'type':'outbound','app':_0x7b77('0x3'),'appdata':_0x7b77('0xe'),'context':_0x36b956[_0x7b77('0x9')],'exten':_0x36b956[_0x7b77('0x5')],'priority':_0x4e8e74++,'VoiceExtensionId':_0x36b956['id']},{'type':_0x7b77('0xf'),'app':'Set','appdata':_0x7b77('0x19'),'context':_0x36b956[_0x7b77('0x9')],'exten':_0x36b956[_0x7b77('0x5')],'priority':_0x4e8e74++,'VoiceExtensionId':_0x36b956['id']},{'type':'outbound','app':_0x7b77('0x3'),'appdata':_0x7b77('0x1a')+_0x36b956['id'],'context':_0x36b956['context'],'exten':_0x36b956[_0x7b77('0x5')],'priority':_0x4e8e74++,'VoiceExtensionId':_0x36b956['id']}];if(_0x36b956[_0x7b77('0x1b')]('recordingFormat')&&_0x36b956[_0x7b77('0x1c')]!==_0x7b77('0x1d')){_0x52edcb['push']({'type':'outbound','app':_0x7b77('0x3'),'appdata':_0x7b77('0x1e'),'context':_0x36b956[_0x7b77('0x9')],'exten':_0x36b956['exten'],'priority':_0x4e8e74++,'VoiceExtensionId':_0x36b956['id']},{'type':'outbound','app':_0x7b77('0x3'),'appdata':_0x7b77('0x1f')+_0x36b956[_0x7b77('0x1c')]||_0x7b77('0x20'),'context':_0x36b956[_0x7b77('0x9')],'exten':_0x36b956[_0x7b77('0x5')],'priority':_0x4e8e74++,'VoiceExtensionId':_0x36b956['id']});}return _0x52edcb;}function _0x3acfb2(_0x19f903,_0x105d19){var _0x13b60c=[{'name':'trunk','param':0x0},{'name':_0x7b77('0x21'),'param':0x1},{'name':_0x7b77('0x22'),'param':0x2},{'name':_0x7b77('0x23'),'param':0x3}];var _0x17c4b7={};var _0x549620=_0x105d19[_0x7b77('0x24')](',');var _0x2fcf2f=[];for(var _0x44ed48=0x0;_0x44ed48<_0x13b60c[_0x7b77('0x25')];_0x44ed48++){switch(_0x13b60c[_0x44ed48]['name']){case _0x7b77('0x26'):_0x17c4b7[_0x7b77('0x26')]=_0x549620[_0x13b60c[_0x44ed48][_0x7b77('0x27')]][_0x7b77('0x24')]('/')[0x1];_0x17c4b7['phone']=_0x549620[_0x13b60c[_0x44ed48]['param']][_0x7b77('0x24')]('/')[0x2];_0x17c4b7[_0x7b77('0x28')]=_0x17c4b7[_0x7b77('0x29')]?_0x17c4b7['phone'][_0x7b77('0x24')]('$')[0x0]:undefined;_0x17c4b7[_0x7b77('0x29')]=_0x19f903['cutdigits']?(_0x17c4b7[_0x7b77('0x28')]||'')+_0x7b77('0x13')+_0x19f903[_0x7b77('0x14')]+'}':(_0x17c4b7[_0x7b77('0x28')]||'')+_0x7b77('0x15');_0x2fcf2f[_0x13b60c[_0x44ed48]['param']]=[_0x7b77('0x2a'),_0x17c4b7['trunk'],_0x17c4b7[_0x7b77('0x29')]][_0x7b77('0x2b')]('/');break;case _0x7b77('0x22'):_0x17c4b7[_0x7b77('0x22')]=_0x549620[_0x13b60c[_0x44ed48][_0x7b77('0x27')]];if(_0x19f903['recordingFormat']!==_0x7b77('0x1d')){if(_0x17c4b7[_0x7b77('0x22')]['indexOf']('U(xcally-mixmonitor-context)')<0x0){_0x17c4b7['options']+='U(xcally-mixmonitor-context)';}}else{_0x17c4b7[_0x7b77('0x22')]=_0x17c4b7['options'][_0x7b77('0x2c')](_0x7b77('0x2d'),'');}_0x2fcf2f[_0x13b60c[_0x44ed48][_0x7b77('0x27')]]=_0x17c4b7[_0x7b77('0x22')];break;default:_0x2fcf2f[_0x13b60c[_0x44ed48]['param']]=_0x549620[_0x13b60c[_0x44ed48][_0x7b77('0x27')]];}}return _0x2fcf2f['join'](',');}function _0x1cb9a4(_0x32d343,_0x503fa0,_0xe34ca2){return new Promise(function(_0x3b8414,_0x4381e7){var _0x2f251b=[];if(_[_0x7b77('0x2e')](_0x503fa0))return _0x3b8414(_0x2f251b);_0x18a983[_0x7b77('0x2f')][_0x7b77('0x30')]({'attributes':['id',_0x7b77('0x31'),_0x7b77('0x32')],'raw':!![]})[_0x7b77('0x33')](function(_0x257083){for(var _0x48f620=0x0,_0x60dabd=0x0;_0x48f620<_0x503fa0[_0x7b77('0x25')];_0x48f620++,_0x60dabd=0x0){var _0x1b4b11=_0x503fa0[_0x48f620];var _0x404759=[];var _0x15d7b4=[];delete _0x1b4b11['id'];if(_0x1b4b11[_0x7b77('0x31')]!=='*,*,*,*'){_0x1b4b11[_0x7b77('0x34')]=[_0x1b4b11[_0x7b77('0x31')]];}else{_0x1b4b11[_0x7b77('0x34')]=_0x1b4b11['IntervalId']?_[_0x7b77('0x35')](_['filter'](_0x257083,{'IntervalId':_0x1b4b11[_0x7b77('0x32')]}),_0x7b77('0x31')):[];}_0x1b4b11['context']=_0x32d343[_0x7b77('0x9')];_0x1b4b11['exten']=_0x32d343['exten'];if(_0x1b4b11[_0x7b77('0x2')])_0x1b4b11[_0x7b77('0x2')]=_0x1b4b11['type'][_0x7b77('0x36')]();if(_0x32d343[_0x7b77('0x2')]===_0x7b77('0xf')){if(_0x1b4b11[_0x7b77('0x1b')]('tag')&&_0x1b4b11['tag']&&_0x1b4b11['tag']!=='--'){_0x404759['push']({'type':_0x1b4b11[_0x7b77('0x2')][_0x7b77('0x36')](),'app':_0x7b77('0x3'),'appdata':_0x7b77('0x37')+_0x1b4b11[_0x7b77('0x38')],'context':_0x32d343[_0x7b77('0x9')],'exten':_0x32d343[_0x7b77('0x5')],'priority':_0x1b4b11[_0x7b77('0x34')][_0x7b77('0x25')]+_0xe34ca2+_0x60dabd++,'VoiceExtensionId':_0x32d343['id']});}_0x404759[_0x7b77('0xc')]({'type':_0x1b4b11[_0x7b77('0x2')][_0x7b77('0x36')](),'app':_0x7b77('0x16'),'appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):'+(_0x1b4b11[_0x7b77('0x39')]?_0x7b77('0x3a')+_0x1b4b11[_0x7b77('0x39')]+')':'NoOp(No\x20number\x20available)'),'context':_0x32d343[_0x7b77('0x9')],'exten':_0x32d343[_0x7b77('0x5')],'priority':_0x1b4b11[_0x7b77('0x34')][_0x7b77('0x25')]+_0xe34ca2+_0x60dabd++,'VoiceExtensionId':_0x32d343['id']});}else{if(_0x1b4b11[_0x7b77('0x1b')](_0x7b77('0x3b'))){if([_0x7b77('0x3c'),'playback'][_0x7b77('0x3d')](_0x1b4b11[_0x7b77('0x3e')]['toLowerCase']())&&_0x1b4b11['appType']!==_0x7b77('0x3f')){if(_0x1b4b11['answer']){_0x404759['push']({'type':_0x1b4b11['type'][_0x7b77('0x36')](),'app':_0x7b77('0x16'),'appdata':_0x7b77('0x40'),'context':_0x32d343[_0x7b77('0x9')],'exten':_0x32d343['exten'],'priority':_0x1b4b11[_0x7b77('0x34')][_0x7b77('0x25')]+_0xe34ca2+_0x60dabd++,'VoiceExtensionId':_0x32d343['id']});_0x404759[_0x7b77('0xc')]({'type':_0x1b4b11[_0x7b77('0x2')]['toLowerCase'](),'app':'Set','appdata':_0x7b77('0x41'),'context':_0x32d343[_0x7b77('0x9')],'exten':_0x32d343[_0x7b77('0x5')],'priority':_0x1b4b11[_0x7b77('0x34')][_0x7b77('0x25')]+_0xe34ca2+_0x60dabd++,'VoiceExtensionId':_0x32d343['id']});}else{_0x404759[_0x7b77('0xc')]({'type':_0x1b4b11[_0x7b77('0x2')][_0x7b77('0x36')](),'app':_0x7b77('0x16'),'appdata':_0x7b77('0x42'),'context':_0x32d343[_0x7b77('0x9')],'exten':_0x32d343['exten'],'priority':_0x1b4b11[_0x7b77('0x34')]['length']+_0xe34ca2+_0x60dabd++,'VoiceExtensionId':_0x32d343['id']});_0x404759['push']({'type':_0x1b4b11[_0x7b77('0x2')]['toLowerCase'](),'app':'Set','appdata':_0x7b77('0x43'),'context':_0x32d343[_0x7b77('0x9')],'exten':_0x32d343[_0x7b77('0x5')],'priority':_0x1b4b11['intervals'][_0x7b77('0x25')]+_0xe34ca2+_0x60dabd++,'VoiceExtensionId':_0x32d343['id']});}}}}for(var _0x5403d4=0x0;_0x5403d4<_0x1b4b11['intervals'][_0x7b77('0x25')];_0x5403d4++){var _0x109f67=_0xe34ca2+_0x1b4b11[_0x7b77('0x34')][_0x7b77('0x25')];var _0x1558fc=_0x5403d4===_0x1b4b11['intervals'][_0x7b77('0x25')]-0x1?_0xe34ca2+_0x404759[_0x7b77('0x25')]+_0x15d7b4[_0x7b77('0x25')]+0x2:_0xe34ca2+_0x5403d4+0x1;_0x404759[_0x7b77('0x44')](_0x5403d4,0x0,{'type':_0x32d343[_0x7b77('0x2')],'app':_0x7b77('0x45'),'appdata':_0x1b4b11[_0x7b77('0x34')][_0x5403d4]+'?'+_0x32d343['context']+_0x7b77('0x46')+_0x109f67+':'+_0x32d343[_0x7b77('0x9')]+',${EXTEN},'+_0x1558fc,'exten':_0x32d343['exten'],'context':_0x32d343[_0x7b77('0x9')],'priority':_0xe34ca2+_0x5403d4,'VoiceExtensionId':_0x32d343['id']});}if(_0x1b4b11[_0x7b77('0x47')]===_0x7b77('0x48'))_0x1b4b11['appdata']=_0x3acfb2(_0x32d343,_0x1b4b11['appdata']);_0x1b4b11[_0x7b77('0x49')]=_0x404759['length']?_[_0x7b77('0x4a')](_0x404759)[_0x7b77('0x49')]+0x1:_0xe34ca2;_0x2f251b=_[_0x7b77('0x4b')](_0x2f251b,_0x404759,[_0x1b4b11],_0x15d7b4);_0xe34ca2=_[_0x7b77('0x4a')](_0x2f251b)[_0x7b77('0x49')]+0x1;}return _0x3b8414(_0x2f251b);})['catch'](function(_0x4bfe9c){_0x4381e7(_0x4bfe9c);});});}return _0x25861d['define'](_0x7b77('0x4c'),attributes,{'tableName':_0x7b77('0x4d'),'paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x3678a0){var _0x2a58b6=this[_0x7b77('0x4e')]({'plain':!![]});var _0x32522b=_0x2a58b6[_0x7b77('0x2')]===_0x7b77('0xf')?_0x281950(_0x2a58b6):_0x1d5f19(_0x2a58b6);return _0x1cb9a4(_0x2a58b6,_0x3678a0,_[_0x7b77('0x4a')](_0x32522b)[_0x7b77('0x49')]+0x1)[_0x7b77('0x33')](function(_0x32014a){var _0x3f3650=_['concat'](_0x32522b,_0x32014a);_0x3f3650[_0x7b77('0xc')]({'type':_0x2a58b6[_0x7b77('0x2')],'app':_0x7b77('0x4f'),'exten':_0x2a58b6[_0x7b77('0x5')],'context':_0x2a58b6[_0x7b77('0x9')],'priority':_[_0x7b77('0x4a')](_0x3f3650)[_0x7b77('0x49')]+0x1,'VoiceExtensionId':_0x2a58b6['id']});return _0x3f3650;});}}});};