Built motion from commit 85328c08.|2.5.50
[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 _0xe5d5=['*,*,*,*','intervals','IntervalId','map','filter','toLowerCase','tag','callerID','Set(CALLERID(all)=','NoOp(No\x20number\x20available)','hasOwnProperty','answer','playback','includes','app','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','splice','GotoIfTime',',${EXTEN},','appType','outboundDial','appdata','priority','concat','last','catch','voice_extensions','get','Hangup','exports','type','Set','CDR(type)=','context','exten','alias','NoOp','CDR(routeAlias)=','No\x20alias\x20set','push','inbound','CDR(routeid)=','XCALLY-MOTION-ANSWER=0','MONITOR_OPTIONS=ab','outbound','CDR(type)=outbound','cutdigits','${EXTEN}','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','XCALLY-MOTION-PROGRESS=0','outboundrouteid=','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','wav','timeout','options','url','name','trunk','param','split','phone','prefix','${EXTEN:','SIP','join','indexOf','U(xcally-mixmonitor-context)','isEmpty','findAll','interval','then','length'];(function(_0x3689b7,_0x15e1de){var _0x48d0fc=function(_0x451981){while(--_0x451981){_0x3689b7['push'](_0x3689b7['shift']());}};_0x48d0fc(++_0x15e1de);}(_0xe5d5,0x156));var _0x5e5d=function(_0x474b91,_0x381587){_0x474b91=_0x474b91-0x0;var _0x165781=_0xe5d5[_0x474b91];return _0x165781;};'use strict';var _=require('lodash');var attributes=require('./voiceExtension.attributes');module[_0x5e5d('0x0')]=function(_0x4f6845){var _0x9f47d6=_0x4f6845['models'];function _0x50afd3(_0x5127ee){var _0x3e2410=0x2;var _0x191980=[{'type':_0x5127ee[_0x5e5d('0x1')],'app':_0x5e5d('0x2'),'appdata':_0x5e5d('0x3')+_0x5127ee[_0x5e5d('0x1')],'context':_0x5127ee[_0x5e5d('0x4')],'exten':_0x5127ee[_0x5e5d('0x5')],'priority':_0x3e2410++,'VoiceExtensionId':_0x5127ee['id']},{'type':_0x5127ee[_0x5e5d('0x1')],'app':_0x5127ee[_0x5e5d('0x6')]?_0x5e5d('0x2'):_0x5e5d('0x7'),'appdata':_0x5127ee[_0x5e5d('0x6')]?_0x5e5d('0x8')+_0x5127ee['alias']:_0x5e5d('0x9'),'context':_0x5127ee['context'],'exten':_0x5127ee[_0x5e5d('0x5')],'priority':_0x3e2410++,'VoiceExtensionId':_0x5127ee['id']}];if(_0x5127ee[_0x5e5d('0x1')]==='inbound'){_0x191980[_0x5e5d('0xa')]({'type':_0x5e5d('0xb'),'app':_0x5e5d('0x2'),'appdata':_0x5e5d('0xc')+_0x5127ee['id'],'context':_0x5127ee['context'],'exten':_0x5127ee['exten'],'priority':_0x3e2410++,'VoiceExtensionId':_0x5127ee['id']});}_0x191980[_0x5e5d('0xa')]({'type':_0x5127ee[_0x5e5d('0x1')],'app':'Set','appdata':_0x5e5d('0xd'),'context':_0x5127ee[_0x5e5d('0x4')],'exten':_0x5127ee['exten'],'priority':_0x3e2410++,'VoiceExtensionId':_0x5127ee['id']},{'type':_0x5127ee[_0x5e5d('0x1')],'app':_0x5e5d('0x2'),'appdata':'XCALLY-MOTION-PROGRESS=0','context':_0x5127ee['context'],'exten':_0x5127ee['exten'],'priority':_0x3e2410++,'VoiceExtensionId':_0x5127ee['id']},{'type':_0x5127ee[_0x5e5d('0x1')],'app':_0x5e5d('0x2'),'appdata':_0x5e5d('0xe'),'context':_0x5127ee[_0x5e5d('0x4')],'exten':_0x5127ee['exten'],'priority':_0x3e2410++,'VoiceExtensionId':_0x5127ee['id']});return _0x191980;}function _0x132532(_0x542faf){var _0x39964a=0x2;var _0xda3b8d=[{'type':_0x5e5d('0xf'),'app':_0x5e5d('0x2'),'appdata':_0x5e5d('0x10'),'context':_0x542faf[_0x5e5d('0x4')],'exten':_0x542faf['exten'],'priority':_0x39964a++,'VoiceExtensionId':_0x542faf['id']},{'type':_0x5e5d('0xf'),'app':_0x542faf[_0x5e5d('0x6')]?_0x5e5d('0x2'):_0x5e5d('0x7'),'appdata':_0x542faf[_0x5e5d('0x6')]?_0x5e5d('0x8')+_0x542faf['alias']:_0x5e5d('0x9'),'context':_0x542faf['context'],'exten':_0x542faf[_0x5e5d('0x5')],'priority':_0x39964a++,'VoiceExtensionId':_0x542faf['id']},{'type':_0x5e5d('0xf'),'app':_0x5e5d('0x2'),'appdata':'CDR(destination)='+(_0x542faf[_0x5e5d('0x11')]?'${EXTEN:'+_0x542faf[_0x5e5d('0x11')]+'}':_0x5e5d('0x12')),'context':_0x542faf[_0x5e5d('0x4')],'exten':_0x542faf['exten'],'priority':_0x39964a++,'VoiceExtensionId':_0x542faf['id']},{'type':'outbound','app':_0x5e5d('0x2'),'appdata':_0x5e5d('0xc')+_0x542faf['id'],'context':_0x542faf['context'],'exten':_0x542faf['exten'],'priority':_0x39964a++,'VoiceExtensionId':_0x542faf['id']},{'type':_0x5e5d('0xf'),'app':_0x5e5d('0x13'),'appdata':_0x5e5d('0x14')+(_0x39964a+0x2)+'):Goto('+(_0x39964a+0x1)+')','context':_0x542faf[_0x5e5d('0x4')],'exten':_0x542faf['exten'],'priority':_0x39964a++,'VoiceExtensionId':_0x542faf['id']},{'type':_0x5e5d('0xf'),'app':'Set','appdata':_0x542faf[_0x5e5d('0x11')]?_0x5e5d('0x15')+_0x542faf[_0x5e5d('0x11')]+'}':_0x5e5d('0x16'),'context':_0x542faf[_0x5e5d('0x4')],'exten':_0x542faf[_0x5e5d('0x5')],'priority':_0x39964a++,'VoiceExtensionId':_0x542faf['id']},{'type':_0x5e5d('0xf'),'app':'Set','appdata':_0x5e5d('0xd'),'context':_0x542faf[_0x5e5d('0x4')],'exten':_0x542faf[_0x5e5d('0x5')],'priority':_0x39964a++,'VoiceExtensionId':_0x542faf['id']},{'type':_0x5e5d('0xf'),'app':_0x5e5d('0x2'),'appdata':_0x5e5d('0x17'),'context':_0x542faf[_0x5e5d('0x4')],'exten':_0x542faf[_0x5e5d('0x5')],'priority':_0x39964a++,'VoiceExtensionId':_0x542faf['id']},{'type':_0x5e5d('0xf'),'app':'Set','appdata':_0x5e5d('0xe'),'context':_0x542faf['context'],'exten':_0x542faf['exten'],'priority':_0x39964a++,'VoiceExtensionId':_0x542faf['id']},{'type':_0x5e5d('0xf'),'app':_0x5e5d('0x2'),'appdata':_0x5e5d('0x18')+_0x542faf['id'],'context':_0x542faf[_0x5e5d('0x4')],'exten':_0x542faf[_0x5e5d('0x5')],'priority':_0x39964a++,'VoiceExtensionId':_0x542faf['id']}];if(_0x542faf['hasOwnProperty'](_0x5e5d('0x19'))&&_0x542faf[_0x5e5d('0x19')]!==_0x5e5d('0x1a')){_0xda3b8d[_0x5e5d('0xa')]({'type':_0x5e5d('0xf'),'app':_0x5e5d('0x2'),'appdata':_0x5e5d('0x1b'),'context':_0x542faf['context'],'exten':_0x542faf[_0x5e5d('0x5')],'priority':_0x39964a++,'VoiceExtensionId':_0x542faf['id']},{'type':_0x5e5d('0xf'),'app':'Set','appdata':'_XCALLY_MIXMONITOR_FORMAT='+_0x542faf[_0x5e5d('0x19')]||_0x5e5d('0x1c'),'context':_0x542faf[_0x5e5d('0x4')],'exten':_0x542faf[_0x5e5d('0x5')],'priority':_0x39964a++,'VoiceExtensionId':_0x542faf['id']});}return _0xda3b8d;}function _0xd220d1(_0x2a8fe8,_0x5a5696){var _0x2d5411=[{'name':'trunk','param':0x0},{'name':_0x5e5d('0x1d'),'param':0x1},{'name':_0x5e5d('0x1e'),'param':0x2},{'name':_0x5e5d('0x1f'),'param':0x3}];var _0x3f1721={};var _0x12d758=_0x5a5696['split'](',');var _0x1301ef=[];for(var _0xf68677=0x0;_0xf68677<_0x2d5411['length'];_0xf68677++){switch(_0x2d5411[_0xf68677][_0x5e5d('0x20')]){case'trunk':_0x3f1721[_0x5e5d('0x21')]=_0x12d758[_0x2d5411[_0xf68677][_0x5e5d('0x22')]][_0x5e5d('0x23')]('/')[0x1];_0x3f1721[_0x5e5d('0x24')]=_0x12d758[_0x2d5411[_0xf68677][_0x5e5d('0x22')]][_0x5e5d('0x23')]('/')[0x2];_0x3f1721[_0x5e5d('0x25')]=_0x3f1721[_0x5e5d('0x24')]?_0x3f1721[_0x5e5d('0x24')][_0x5e5d('0x23')]('$')[0x0]:undefined;_0x3f1721[_0x5e5d('0x24')]=_0x2a8fe8[_0x5e5d('0x11')]?(_0x3f1721['prefix']||'')+_0x5e5d('0x26')+_0x2a8fe8[_0x5e5d('0x11')]+'}':(_0x3f1721[_0x5e5d('0x25')]||'')+_0x5e5d('0x12');_0x1301ef[_0x2d5411[_0xf68677][_0x5e5d('0x22')]]=[_0x5e5d('0x27'),_0x3f1721['trunk'],_0x3f1721[_0x5e5d('0x24')]][_0x5e5d('0x28')]('/');break;case'options':_0x3f1721[_0x5e5d('0x1e')]=_0x12d758[_0x2d5411[_0xf68677][_0x5e5d('0x22')]];if(_0x2a8fe8[_0x5e5d('0x19')]!==_0x5e5d('0x1a')){if(_0x3f1721[_0x5e5d('0x1e')][_0x5e5d('0x29')]('U(xcally-mixmonitor-context)')<0x0){_0x3f1721['options']+=_0x5e5d('0x2a');}}else{_0x3f1721['options']=_0x3f1721[_0x5e5d('0x1e')]['replace']('U(xcally-mixmonitor-context)','');}_0x1301ef[_0x2d5411[_0xf68677][_0x5e5d('0x22')]]=_0x3f1721['options'];break;default:_0x1301ef[_0x2d5411[_0xf68677]['param']]=_0x12d758[_0x2d5411[_0xf68677][_0x5e5d('0x22')]];}}return _0x1301ef[_0x5e5d('0x28')](',');}function _0x177078(_0x91bd9b,_0x21a48b,_0x1eca09){return new Promise(function(_0x583e4f,_0x4bd727){var _0x5c5c4d=[];if(_[_0x5e5d('0x2b')](_0x21a48b))return _0x583e4f(_0x5c5c4d);_0x9f47d6['Interval'][_0x5e5d('0x2c')]({'attributes':['id',_0x5e5d('0x2d'),'IntervalId'],'raw':!![]})[_0x5e5d('0x2e')](function(_0x275b15){for(var _0x5469c0=0x0,_0x3f71d0=0x0;_0x5469c0<_0x21a48b[_0x5e5d('0x2f')];_0x5469c0++,_0x3f71d0=0x0){var _0x35858e=_0x21a48b[_0x5469c0];var _0x53cf72=[];var _0x3ba75f=[];delete _0x35858e['id'];if(_0x35858e['interval']!==_0x5e5d('0x30')){_0x35858e[_0x5e5d('0x31')]=[_0x35858e[_0x5e5d('0x2d')]];}else{_0x35858e[_0x5e5d('0x31')]=_0x35858e[_0x5e5d('0x32')]?_[_0x5e5d('0x33')](_[_0x5e5d('0x34')](_0x275b15,{'IntervalId':_0x35858e[_0x5e5d('0x32')]}),'interval'):[];}_0x35858e[_0x5e5d('0x4')]=_0x91bd9b[_0x5e5d('0x4')];_0x35858e[_0x5e5d('0x5')]=_0x91bd9b['exten'];if(_0x35858e[_0x5e5d('0x1')])_0x35858e[_0x5e5d('0x1')]=_0x35858e['type'][_0x5e5d('0x35')]();if(_0x91bd9b[_0x5e5d('0x1')]===_0x5e5d('0xf')){if(_0x35858e['hasOwnProperty'](_0x5e5d('0x36'))&&_0x35858e[_0x5e5d('0x36')]&&_0x35858e[_0x5e5d('0x36')]!=='--'){_0x53cf72[_0x5e5d('0xa')]({'type':_0x35858e[_0x5e5d('0x1')]['toLowerCase'](),'app':_0x5e5d('0x2'),'appdata':'CDR(tag)='+_0x35858e['tag'],'context':_0x91bd9b[_0x5e5d('0x4')],'exten':_0x91bd9b['exten'],'priority':_0x35858e[_0x5e5d('0x31')][_0x5e5d('0x2f')]+_0x1eca09+_0x3f71d0++,'VoiceExtensionId':_0x91bd9b['id']});}_0x53cf72['push']({'type':_0x35858e[_0x5e5d('0x1')][_0x5e5d('0x35')](),'app':'ExecIf','appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):'+(_0x35858e[_0x5e5d('0x37')]?_0x5e5d('0x38')+_0x35858e['callerID']+')':_0x5e5d('0x39')),'context':_0x91bd9b[_0x5e5d('0x4')],'exten':_0x91bd9b[_0x5e5d('0x5')],'priority':_0x35858e['intervals'][_0x5e5d('0x2f')]+_0x1eca09+_0x3f71d0++,'VoiceExtensionId':_0x91bd9b['id']});}else{if(_0x35858e[_0x5e5d('0x3a')](_0x5e5d('0x3b'))){if(['queue',_0x5e5d('0x3c')][_0x5e5d('0x3d')](_0x35858e[_0x5e5d('0x3e')]['toLowerCase']())&&_0x35858e['appType']!=='custom'){if(_0x35858e[_0x5e5d('0x3b')]){_0x53cf72['push']({'type':_0x35858e[_0x5e5d('0x1')]['toLowerCase'](),'app':_0x5e5d('0x13'),'appdata':'$[${XCALLY-MOTION-ANSWER}=0]?Answer','context':_0x91bd9b[_0x5e5d('0x4')],'exten':_0x91bd9b[_0x5e5d('0x5')],'priority':_0x35858e['intervals'][_0x5e5d('0x2f')]+_0x1eca09+_0x3f71d0++,'VoiceExtensionId':_0x91bd9b['id']});_0x53cf72['push']({'type':_0x35858e['type']['toLowerCase'](),'app':_0x5e5d('0x2'),'appdata':_0x5e5d('0x3f'),'context':_0x91bd9b['context'],'exten':_0x91bd9b[_0x5e5d('0x5')],'priority':_0x35858e[_0x5e5d('0x31')][_0x5e5d('0x2f')]+_0x1eca09+_0x3f71d0++,'VoiceExtensionId':_0x91bd9b['id']});}else{_0x53cf72[_0x5e5d('0xa')]({'type':_0x35858e[_0x5e5d('0x1')][_0x5e5d('0x35')](),'app':'ExecIf','appdata':_0x5e5d('0x40'),'context':_0x91bd9b[_0x5e5d('0x4')],'exten':_0x91bd9b['exten'],'priority':_0x35858e['intervals'][_0x5e5d('0x2f')]+_0x1eca09+_0x3f71d0++,'VoiceExtensionId':_0x91bd9b['id']});_0x53cf72[_0x5e5d('0xa')]({'type':_0x35858e[_0x5e5d('0x1')][_0x5e5d('0x35')](),'app':_0x5e5d('0x2'),'appdata':'XCALLY-MOTION-PROGRESS=1','context':_0x91bd9b[_0x5e5d('0x4')],'exten':_0x91bd9b['exten'],'priority':_0x35858e[_0x5e5d('0x31')][_0x5e5d('0x2f')]+_0x1eca09+_0x3f71d0++,'VoiceExtensionId':_0x91bd9b['id']});}}}}for(var _0x1d128f=0x0;_0x1d128f<_0x35858e[_0x5e5d('0x31')][_0x5e5d('0x2f')];_0x1d128f++){var _0xf5ccbe=_0x1eca09+_0x35858e['intervals'][_0x5e5d('0x2f')];var _0x512648=_0x1d128f===_0x35858e['intervals'][_0x5e5d('0x2f')]-0x1?_0x1eca09+_0x53cf72[_0x5e5d('0x2f')]+_0x3ba75f[_0x5e5d('0x2f')]+0x2:_0x1eca09+_0x1d128f+0x1;_0x53cf72[_0x5e5d('0x41')](_0x1d128f,0x0,{'type':_0x91bd9b[_0x5e5d('0x1')],'app':_0x5e5d('0x42'),'appdata':_0x35858e['intervals'][_0x1d128f]+'?'+_0x91bd9b[_0x5e5d('0x4')]+_0x5e5d('0x43')+_0xf5ccbe+':'+_0x91bd9b[_0x5e5d('0x4')]+_0x5e5d('0x43')+_0x512648,'exten':_0x91bd9b[_0x5e5d('0x5')],'context':_0x91bd9b['context'],'priority':_0x1eca09+_0x1d128f,'VoiceExtensionId':_0x91bd9b['id']});}if(_0x35858e[_0x5e5d('0x44')]===_0x5e5d('0x45'))_0x35858e[_0x5e5d('0x46')]=_0xd220d1(_0x91bd9b,_0x35858e[_0x5e5d('0x46')]);_0x35858e[_0x5e5d('0x47')]=_0x53cf72[_0x5e5d('0x2f')]?_['last'](_0x53cf72)['priority']+0x1:_0x1eca09;_0x5c5c4d=_[_0x5e5d('0x48')](_0x5c5c4d,_0x53cf72,[_0x35858e],_0x3ba75f);_0x1eca09=_[_0x5e5d('0x49')](_0x5c5c4d)[_0x5e5d('0x47')]+0x1;}return _0x583e4f(_0x5c5c4d);})[_0x5e5d('0x4a')](function(_0x33c8b0){_0x4bd727(_0x33c8b0);});});}return _0x4f6845['define']('VoiceExtension',attributes,{'tableName':_0x5e5d('0x4b'),'paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x53989a){var _0x30a340=this[_0x5e5d('0x4c')]({'plain':!![]});var _0x589fea=_0x30a340[_0x5e5d('0x1')]===_0x5e5d('0xf')?_0x132532(_0x30a340):_0x50afd3(_0x30a340);return _0x177078(_0x30a340,_0x53989a,_['last'](_0x589fea)[_0x5e5d('0x47')]+0x1)[_0x5e5d('0x2e')](function(_0x29808b){var _0x463b39=_['concat'](_0x589fea,_0x29808b);_0x463b39['push']({'type':_0x30a340['type'],'app':_0x5e5d('0x4d'),'exten':_0x30a340[_0x5e5d('0x5')],'context':_0x30a340['context'],'priority':_['last'](_0x463b39)[_0x5e5d('0x47')]+0x1,'VoiceExtensionId':_0x30a340['id']});return _0x463b39;});}}});};