Built motion from commit d5e4af8c.|2.6.23
[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 _0x25d5=['CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','outboundrouteid=','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','wav','trunk','timeout','options','url','split','length','name','param','phone','prefix','SIP','join','U(xcally-mixmonitor-context)','replace','isEmpty','Interval','findAll','interval','IntervalId','*,*,*,*','intervals','map','hasOwnProperty','tag','toLowerCase','CDR(tag)=','callerID','Set(CALLERID(all)=','answer','playback','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','appdata','agi','XMCS-UNIQUEID=${CHANNEL(LINKEDID)}','priority','concat','define','voice_extensions','get','then','Hangup','last','lodash','exports','models','type','Set','context','exten','alias','NoOp','CDR(routeAlias)=','No\x20alias\x20set','inbound','push','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','outbound','CDR(type)=outbound','CDR(destination)=','cutdigits','${EXTEN:','${EXTEN}','CDR(routeid)=','ExecIf','):Goto('];(function(_0x243b59,_0x3f9495){var _0x3e1676=function(_0x354052){while(--_0x354052){_0x243b59['push'](_0x243b59['shift']());}};_0x3e1676(++_0x3f9495);}(_0x25d5,0x91));var _0x525d=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x25d5[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x525d('0x0'));var attributes=require('./voiceExtension.attributes');module[_0x525d('0x1')]=function(_0x5d7994){var _0xa822eb=_0x5d7994[_0x525d('0x2')];function _0x315f4e(_0x586cbf){var _0x189c28=0x2;var _0x29e86f=[{'type':_0x586cbf[_0x525d('0x3')],'app':_0x525d('0x4'),'appdata':'CDR(type)='+_0x586cbf[_0x525d('0x3')],'context':_0x586cbf[_0x525d('0x5')],'exten':_0x586cbf[_0x525d('0x6')],'priority':_0x189c28++,'VoiceExtensionId':_0x586cbf['id']},{'type':_0x586cbf[_0x525d('0x3')],'app':_0x586cbf[_0x525d('0x7')]?_0x525d('0x4'):_0x525d('0x8'),'appdata':_0x586cbf[_0x525d('0x7')]?_0x525d('0x9')+_0x586cbf['alias']:_0x525d('0xa'),'context':_0x586cbf['context'],'exten':_0x586cbf[_0x525d('0x6')],'priority':_0x189c28++,'VoiceExtensionId':_0x586cbf['id']}];if(_0x586cbf['type']==='inbound'){_0x29e86f['push']({'type':_0x525d('0xb'),'app':_0x525d('0x4'),'appdata':'CDR(routeid)='+_0x586cbf['id'],'context':_0x586cbf[_0x525d('0x5')],'exten':_0x586cbf[_0x525d('0x6')],'priority':_0x189c28++,'VoiceExtensionId':_0x586cbf['id']});}_0x29e86f[_0x525d('0xc')]({'type':_0x586cbf['type'],'app':_0x525d('0x4'),'appdata':_0x525d('0xd'),'context':_0x586cbf[_0x525d('0x5')],'exten':_0x586cbf[_0x525d('0x6')],'priority':_0x189c28++,'VoiceExtensionId':_0x586cbf['id']},{'type':_0x586cbf['type'],'app':_0x525d('0x4'),'appdata':_0x525d('0xe'),'context':_0x586cbf[_0x525d('0x5')],'exten':_0x586cbf[_0x525d('0x6')],'priority':_0x189c28++,'VoiceExtensionId':_0x586cbf['id']},{'type':_0x586cbf[_0x525d('0x3')],'app':_0x525d('0x4'),'appdata':_0x525d('0xf'),'context':_0x586cbf[_0x525d('0x5')],'exten':_0x586cbf['exten'],'priority':_0x189c28++,'VoiceExtensionId':_0x586cbf['id']});return _0x29e86f;}function _0x51dfca(_0x38750c){var _0x389565=0x2;var _0x121eab=[{'type':_0x525d('0x10'),'app':_0x525d('0x4'),'appdata':_0x525d('0x11'),'context':_0x38750c['context'],'exten':_0x38750c[_0x525d('0x6')],'priority':_0x389565++,'VoiceExtensionId':_0x38750c['id']},{'type':_0x525d('0x10'),'app':_0x38750c[_0x525d('0x7')]?_0x525d('0x4'):_0x525d('0x8'),'appdata':_0x38750c[_0x525d('0x7')]?'CDR(routeAlias)='+_0x38750c[_0x525d('0x7')]:'No\x20alias\x20set','context':_0x38750c['context'],'exten':_0x38750c['exten'],'priority':_0x389565++,'VoiceExtensionId':_0x38750c['id']},{'type':_0x525d('0x10'),'app':'Set','appdata':_0x525d('0x12')+(_0x38750c[_0x525d('0x13')]?_0x525d('0x14')+_0x38750c[_0x525d('0x13')]+'}':_0x525d('0x15')),'context':_0x38750c['context'],'exten':_0x38750c[_0x525d('0x6')],'priority':_0x389565++,'VoiceExtensionId':_0x38750c['id']},{'type':'outbound','app':'Set','appdata':_0x525d('0x16')+_0x38750c['id'],'context':_0x38750c[_0x525d('0x5')],'exten':_0x38750c['exten'],'priority':_0x389565++,'VoiceExtensionId':_0x38750c['id']},{'type':'outbound','app':_0x525d('0x17'),'appdata':'$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto('+(_0x389565+0x2)+_0x525d('0x18')+(_0x389565+0x1)+')','context':_0x38750c[_0x525d('0x5')],'exten':_0x38750c[_0x525d('0x6')],'priority':_0x389565++,'VoiceExtensionId':_0x38750c['id']},{'type':_0x525d('0x10'),'app':_0x525d('0x4'),'appdata':_0x38750c[_0x525d('0x13')]?_0x525d('0x19')+_0x38750c['cutdigits']+'}':_0x525d('0x1a'),'context':_0x38750c['context'],'exten':_0x38750c[_0x525d('0x6')],'priority':_0x389565++,'VoiceExtensionId':_0x38750c['id']},{'type':_0x525d('0x10'),'app':'Set','appdata':'XCALLY-MOTION-ANSWER=0','context':_0x38750c[_0x525d('0x5')],'exten':_0x38750c['exten'],'priority':_0x389565++,'VoiceExtensionId':_0x38750c['id']},{'type':_0x525d('0x10'),'app':_0x525d('0x4'),'appdata':_0x525d('0xe'),'context':_0x38750c[_0x525d('0x5')],'exten':_0x38750c['exten'],'priority':_0x389565++,'VoiceExtensionId':_0x38750c['id']},{'type':'outbound','app':_0x525d('0x4'),'appdata':_0x525d('0xf'),'context':_0x38750c[_0x525d('0x5')],'exten':_0x38750c[_0x525d('0x6')],'priority':_0x389565++,'VoiceExtensionId':_0x38750c['id']},{'type':_0x525d('0x10'),'app':_0x525d('0x4'),'appdata':_0x525d('0x1b')+_0x38750c['id'],'context':_0x38750c[_0x525d('0x5')],'exten':_0x38750c[_0x525d('0x6')],'priority':_0x389565++,'VoiceExtensionId':_0x38750c['id']}];if(_0x38750c['hasOwnProperty'](_0x525d('0x1c'))&&_0x38750c['recordingFormat']!==_0x525d('0x1d')){_0x121eab['push']({'type':_0x525d('0x10'),'app':'Set','appdata':_0x525d('0x1e'),'context':_0x38750c[_0x525d('0x5')],'exten':_0x38750c[_0x525d('0x6')],'priority':_0x389565++,'VoiceExtensionId':_0x38750c['id']},{'type':'outbound','app':'Set','appdata':_0x525d('0x1f')+_0x38750c[_0x525d('0x1c')]||_0x525d('0x20'),'context':_0x38750c[_0x525d('0x5')],'exten':_0x38750c[_0x525d('0x6')],'priority':_0x389565++,'VoiceExtensionId':_0x38750c['id']});}return _0x121eab;}function _0x218b6a(_0x4d5050,_0x21afd1){var _0x27762f=[{'name':_0x525d('0x21'),'param':0x0},{'name':_0x525d('0x22'),'param':0x1},{'name':_0x525d('0x23'),'param':0x2},{'name':_0x525d('0x24'),'param':0x3}];var _0x1a2dd8={};var _0x2522ab=_0x21afd1[_0x525d('0x25')](',');var _0x252d46=[];for(var _0x58377f=0x0;_0x58377f<_0x27762f[_0x525d('0x26')];_0x58377f++){switch(_0x27762f[_0x58377f][_0x525d('0x27')]){case _0x525d('0x21'):_0x1a2dd8[_0x525d('0x21')]=_0x2522ab[_0x27762f[_0x58377f][_0x525d('0x28')]][_0x525d('0x25')]('/')[0x1];_0x1a2dd8[_0x525d('0x29')]=_0x2522ab[_0x27762f[_0x58377f]['param']][_0x525d('0x25')]('/')[0x2];_0x1a2dd8[_0x525d('0x2a')]=_0x1a2dd8[_0x525d('0x29')]?_0x1a2dd8[_0x525d('0x29')][_0x525d('0x25')]('$')[0x0]:undefined;_0x1a2dd8[_0x525d('0x29')]=_0x4d5050[_0x525d('0x13')]?(_0x1a2dd8[_0x525d('0x2a')]||'')+_0x525d('0x14')+_0x4d5050[_0x525d('0x13')]+'}':(_0x1a2dd8[_0x525d('0x2a')]||'')+'${EXTEN}';_0x252d46[_0x27762f[_0x58377f][_0x525d('0x28')]]=[_0x525d('0x2b'),_0x1a2dd8['trunk'],_0x1a2dd8[_0x525d('0x29')]][_0x525d('0x2c')]('/');break;case _0x525d('0x23'):_0x1a2dd8[_0x525d('0x23')]=_0x2522ab[_0x27762f[_0x58377f]['param']];if(_0x4d5050['recordingFormat']!==_0x525d('0x1d')){if(_0x1a2dd8[_0x525d('0x23')]['indexOf'](_0x525d('0x2d'))<0x0){_0x1a2dd8[_0x525d('0x23')]+=_0x525d('0x2d');}}else{_0x1a2dd8[_0x525d('0x23')]=_0x1a2dd8['options'][_0x525d('0x2e')](_0x525d('0x2d'),'');}_0x252d46[_0x27762f[_0x58377f][_0x525d('0x28')]]=_0x1a2dd8['options'];break;default:_0x252d46[_0x27762f[_0x58377f]['param']]=_0x2522ab[_0x27762f[_0x58377f]['param']];}}return _0x252d46['join'](',');}function _0x3c7a2d(_0x3e6091,_0x27def6,_0x2c9550){return new Promise(function(_0x13e6a7,_0x317b3b){var _0x5bc4e2=[];if(_[_0x525d('0x2f')](_0x27def6))return _0x13e6a7(_0x5bc4e2);_0xa822eb[_0x525d('0x30')][_0x525d('0x31')]({'attributes':['id',_0x525d('0x32'),_0x525d('0x33')],'raw':!![]})['then'](function(_0x15c0c1){for(var _0x5cd85f=0x0,_0x458c94=0x0;_0x5cd85f<_0x27def6[_0x525d('0x26')];_0x5cd85f++,_0x458c94=0x0){var _0x3cf843=_0x27def6[_0x5cd85f];var _0x4c975f=[];var _0x3a006e=[];delete _0x3cf843['id'];if(_0x3cf843['interval']!==_0x525d('0x34')){_0x3cf843['intervals']=[_0x3cf843[_0x525d('0x32')]];}else{_0x3cf843[_0x525d('0x35')]=_0x3cf843[_0x525d('0x33')]?_[_0x525d('0x36')](_['filter'](_0x15c0c1,{'IntervalId':_0x3cf843['IntervalId']}),'interval'):[];}_0x3cf843[_0x525d('0x5')]=_0x3e6091[_0x525d('0x5')];_0x3cf843[_0x525d('0x6')]=_0x3e6091[_0x525d('0x6')];if(_0x3cf843[_0x525d('0x3')])_0x3cf843[_0x525d('0x3')]=_0x3cf843[_0x525d('0x3')]['toLowerCase']();if(_0x3e6091['type']===_0x525d('0x10')){if(_0x3cf843[_0x525d('0x37')]('tag')&&_0x3cf843['tag']&&_0x3cf843[_0x525d('0x38')]!=='--'){_0x4c975f['push']({'type':_0x3cf843['type'][_0x525d('0x39')](),'app':_0x525d('0x4'),'appdata':_0x525d('0x3a')+_0x3cf843[_0x525d('0x38')],'context':_0x3e6091[_0x525d('0x5')],'exten':_0x3e6091[_0x525d('0x6')],'priority':_0x3cf843[_0x525d('0x35')][_0x525d('0x26')]+_0x2c9550+_0x458c94++,'VoiceExtensionId':_0x3e6091['id']});}_0x4c975f['push']({'type':_0x3cf843[_0x525d('0x3')][_0x525d('0x39')](),'app':_0x525d('0x17'),'appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):'+(_0x3cf843[_0x525d('0x3b')]?_0x525d('0x3c')+_0x3cf843[_0x525d('0x3b')]+')':'NoOp(No\x20number\x20available)'),'context':_0x3e6091[_0x525d('0x5')],'exten':_0x3e6091['exten'],'priority':_0x3cf843[_0x525d('0x35')][_0x525d('0x26')]+_0x2c9550+_0x458c94++,'VoiceExtensionId':_0x3e6091['id']});}else{if(_0x3cf843[_0x525d('0x37')](_0x525d('0x3d'))){if(['queue',_0x525d('0x3e')][_0x525d('0x3f')](_0x3cf843[_0x525d('0x40')][_0x525d('0x39')]())&&_0x3cf843['appType']!==_0x525d('0x41')){if(_0x3cf843[_0x525d('0x3d')]){_0x4c975f[_0x525d('0xc')]({'type':_0x3cf843[_0x525d('0x3')][_0x525d('0x39')](),'app':_0x525d('0x17'),'appdata':_0x525d('0x42'),'context':_0x3e6091[_0x525d('0x5')],'exten':_0x3e6091['exten'],'priority':_0x3cf843[_0x525d('0x35')][_0x525d('0x26')]+_0x2c9550+_0x458c94++,'VoiceExtensionId':_0x3e6091['id']});_0x4c975f['push']({'type':_0x3cf843['type'][_0x525d('0x39')](),'app':'Set','appdata':_0x525d('0x43'),'context':_0x3e6091[_0x525d('0x5')],'exten':_0x3e6091[_0x525d('0x6')],'priority':_0x3cf843['intervals']['length']+_0x2c9550+_0x458c94++,'VoiceExtensionId':_0x3e6091['id']});}else{_0x4c975f[_0x525d('0xc')]({'type':_0x3cf843['type'][_0x525d('0x39')](),'app':_0x525d('0x17'),'appdata':_0x525d('0x44'),'context':_0x3e6091[_0x525d('0x5')],'exten':_0x3e6091[_0x525d('0x6')],'priority':_0x3cf843['intervals'][_0x525d('0x26')]+_0x2c9550+_0x458c94++,'VoiceExtensionId':_0x3e6091['id']});_0x4c975f[_0x525d('0xc')]({'type':_0x3cf843[_0x525d('0x3')][_0x525d('0x39')](),'app':'Set','appdata':_0x525d('0x45'),'context':_0x3e6091[_0x525d('0x5')],'exten':_0x3e6091[_0x525d('0x6')],'priority':_0x3cf843['intervals'][_0x525d('0x26')]+_0x2c9550+_0x458c94++,'VoiceExtensionId':_0x3e6091['id']});}}}}for(var _0x51ef08=0x0;_0x51ef08<_0x3cf843[_0x525d('0x35')][_0x525d('0x26')];_0x51ef08++){var _0x3dde2c=_0x2c9550+_0x3cf843[_0x525d('0x35')][_0x525d('0x26')];var _0x31b525=_0x51ef08===_0x3cf843[_0x525d('0x35')]['length']-0x1?_0x2c9550+_0x4c975f[_0x525d('0x26')]+_0x3a006e[_0x525d('0x26')]+0x2:_0x2c9550+_0x51ef08+0x1;_0x4c975f[_0x525d('0x46')](_0x51ef08,0x0,{'type':_0x3e6091['type'],'app':_0x525d('0x47'),'appdata':_0x3cf843[_0x525d('0x35')][_0x51ef08]+'?'+_0x3e6091[_0x525d('0x5')]+',${EXTEN},'+_0x3dde2c+':'+_0x3e6091['context']+_0x525d('0x48')+_0x31b525,'exten':_0x3e6091[_0x525d('0x6')],'context':_0x3e6091[_0x525d('0x5')],'priority':_0x2c9550+_0x51ef08,'VoiceExtensionId':_0x3e6091['id']});}if(_0x3cf843[_0x525d('0x49')]==='outboundDial'){_0x3cf843[_0x525d('0x4a')]=_0x218b6a(_0x3e6091,_0x3cf843['appdata']);}if(_0x3cf843[_0x525d('0x49')]===_0x525d('0x4b')){_0x4c975f['push']({'type':_0x3cf843[_0x525d('0x3')][_0x525d('0x39')](),'app':_0x525d('0x4'),'appdata':_0x525d('0x4c'),'context':_0x3e6091[_0x525d('0x5')],'exten':_0x3e6091[_0x525d('0x6')],'priority':_0x3cf843[_0x525d('0x35')][_0x525d('0x26')]+_0x2c9550+_0x458c94++,'VoiceExtensionId':_0x3e6091['id']});}_0x3cf843['priority']=_0x4c975f['length']?_['last'](_0x4c975f)[_0x525d('0x4d')]+0x1:_0x2c9550;_0x5bc4e2=_[_0x525d('0x4e')](_0x5bc4e2,_0x4c975f,[_0x3cf843],_0x3a006e);_0x2c9550=_['last'](_0x5bc4e2)[_0x525d('0x4d')]+0x1;}return _0x13e6a7(_0x5bc4e2);})['catch'](function(_0x98c1ef){_0x317b3b(_0x98c1ef);});});}return _0x5d7994[_0x525d('0x4f')]('VoiceExtension',attributes,{'tableName':_0x525d('0x50'),'paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x387663){var _0x5a864f=this[_0x525d('0x51')]({'plain':!![]});var _0x492210=_0x5a864f[_0x525d('0x3')]===_0x525d('0x10')?_0x51dfca(_0x5a864f):_0x315f4e(_0x5a864f);return _0x3c7a2d(_0x5a864f,_0x387663,_['last'](_0x492210)[_0x525d('0x4d')]+0x1)[_0x525d('0x52')](function(_0xe75317){var _0x53295d=_['concat'](_0x492210,_0xe75317);_0x53295d[_0x525d('0xc')]({'type':_0x5a864f[_0x525d('0x3')],'app':_0x525d('0x53'),'exten':_0x5a864f[_0x525d('0x6')],'context':_0x5a864f[_0x525d('0x5')],'priority':_[_0x525d('0x54')](_0x53295d)[_0x525d('0x4d')]+0x1,'VoiceExtensionId':_0x5a864f['id']});return _0x53295d;});}}});};