Built motion from commit 953226e6.|2.6.32
[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 _0x5c8a=['./voiceExtension.attributes','exports','Set','CDR(type)=','context','exten','type','inbound','push','CDR(routeid)=','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','outbound','CDR(type)=outbound','${EXTEN:','cutdigits','ExecIf','):Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','outboundrouteid=','hasOwnProperty','recordingFormat','none','wav','timeout','split','name','trunk','phone','prefix','${EXTEN}','param','SIP','join','options','U(xcally-mixmonitor-context)','isEmpty','Interval','findAll','interval','IntervalId','then','length','*,*,*,*','intervals','map','filter','toLowerCase','tag','CDR(tag)=','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):','callerID','NoOp(No\x20number\x20available)','answer','queue','includes','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','GotoIfTime',',${EXTEN},','appType','outboundDial','appdata','XMCS-UNIQUEID=${CHANNEL(LINKEDID)}','priority','concat','last','define','VoiceExtension','voice_extensions','lodash'];(function(_0x46aad6,_0x402d36){var _0x26fa1d=function(_0x55e809){while(--_0x55e809){_0x46aad6['push'](_0x46aad6['shift']());}};_0x26fa1d(++_0x402d36);}(_0x5c8a,0x176));var _0xa5c8=function(_0x2207f4,_0x465326){_0x2207f4=_0x2207f4-0x0;var _0x19969f=_0x5c8a[_0x2207f4];return _0x19969f;};'use strict';var _=require(_0xa5c8('0x0'));var attributes=require(_0xa5c8('0x1'));module[_0xa5c8('0x2')]=function(_0x523a26){var _0x480280=_0x523a26['models'];function _0x280483(_0x1acaaa){var _0x2343d0=0x2;var _0x63bd55=[{'type':_0x1acaaa['type'],'app':_0xa5c8('0x3'),'appdata':_0xa5c8('0x4')+_0x1acaaa['type'],'context':_0x1acaaa[_0xa5c8('0x5')],'exten':_0x1acaaa[_0xa5c8('0x6')],'priority':_0x2343d0++,'VoiceExtensionId':_0x1acaaa['id']}];if(_0x1acaaa[_0xa5c8('0x7')]===_0xa5c8('0x8')){_0x63bd55[_0xa5c8('0x9')]({'type':'inbound','app':_0xa5c8('0x3'),'appdata':_0xa5c8('0xa')+_0x1acaaa['id'],'context':_0x1acaaa[_0xa5c8('0x5')],'exten':_0x1acaaa[_0xa5c8('0x6')],'priority':_0x2343d0++,'VoiceExtensionId':_0x1acaaa['id']});}_0x63bd55[_0xa5c8('0x9')]({'type':_0x1acaaa[_0xa5c8('0x7')],'app':_0xa5c8('0x3'),'appdata':_0xa5c8('0xb'),'context':_0x1acaaa[_0xa5c8('0x5')],'exten':_0x1acaaa['exten'],'priority':_0x2343d0++,'VoiceExtensionId':_0x1acaaa['id']},{'type':_0x1acaaa[_0xa5c8('0x7')],'app':_0xa5c8('0x3'),'appdata':_0xa5c8('0xc'),'context':_0x1acaaa[_0xa5c8('0x5')],'exten':_0x1acaaa[_0xa5c8('0x6')],'priority':_0x2343d0++,'VoiceExtensionId':_0x1acaaa['id']},{'type':_0x1acaaa['type'],'app':_0xa5c8('0x3'),'appdata':_0xa5c8('0xd'),'context':_0x1acaaa[_0xa5c8('0x5')],'exten':_0x1acaaa[_0xa5c8('0x6')],'priority':_0x2343d0++,'VoiceExtensionId':_0x1acaaa['id']});return _0x63bd55;}function _0x12b337(_0x33bb36){var _0x573056=0x2;var _0x2f05c2=[{'type':_0xa5c8('0xe'),'app':_0xa5c8('0x3'),'appdata':_0xa5c8('0xf'),'context':_0x33bb36[_0xa5c8('0x5')],'exten':_0x33bb36['exten'],'priority':_0x573056++,'VoiceExtensionId':_0x33bb36['id']},{'type':'outbound','app':_0xa5c8('0x3'),'appdata':'CDR(destination)='+(_0x33bb36['cutdigits']?_0xa5c8('0x10')+_0x33bb36[_0xa5c8('0x11')]+'}':'${EXTEN}'),'context':_0x33bb36[_0xa5c8('0x5')],'exten':_0x33bb36[_0xa5c8('0x6')],'priority':_0x573056++,'VoiceExtensionId':_0x33bb36['id']},{'type':_0xa5c8('0xe'),'app':_0xa5c8('0x3'),'appdata':'CDR(routeid)='+_0x33bb36['id'],'context':_0x33bb36[_0xa5c8('0x5')],'exten':_0x33bb36[_0xa5c8('0x6')],'priority':_0x573056++,'VoiceExtensionId':_0x33bb36['id']},{'type':_0xa5c8('0xe'),'app':_0xa5c8('0x12'),'appdata':'$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto('+(_0x573056+0x2)+_0xa5c8('0x13')+(_0x573056+0x1)+')','context':_0x33bb36[_0xa5c8('0x5')],'exten':_0x33bb36['exten'],'priority':_0x573056++,'VoiceExtensionId':_0x33bb36['id']},{'type':_0xa5c8('0xe'),'app':'Set','appdata':_0x33bb36['cutdigits']?_0xa5c8('0x14')+_0x33bb36[_0xa5c8('0x11')]+'}':_0xa5c8('0x15'),'context':_0x33bb36[_0xa5c8('0x5')],'exten':_0x33bb36[_0xa5c8('0x6')],'priority':_0x573056++,'VoiceExtensionId':_0x33bb36['id']},{'type':_0xa5c8('0xe'),'app':_0xa5c8('0x3'),'appdata':'XCALLY-MOTION-ANSWER=0','context':_0x33bb36[_0xa5c8('0x5')],'exten':_0x33bb36[_0xa5c8('0x6')],'priority':_0x573056++,'VoiceExtensionId':_0x33bb36['id']},{'type':_0xa5c8('0xe'),'app':'Set','appdata':_0xa5c8('0xc'),'context':_0x33bb36[_0xa5c8('0x5')],'exten':_0x33bb36[_0xa5c8('0x6')],'priority':_0x573056++,'VoiceExtensionId':_0x33bb36['id']},{'type':_0xa5c8('0xe'),'app':_0xa5c8('0x3'),'appdata':_0xa5c8('0xd'),'context':_0x33bb36[_0xa5c8('0x5')],'exten':_0x33bb36[_0xa5c8('0x6')],'priority':_0x573056++,'VoiceExtensionId':_0x33bb36['id']},{'type':_0xa5c8('0xe'),'app':_0xa5c8('0x3'),'appdata':_0xa5c8('0x16')+_0x33bb36['id'],'context':_0x33bb36[_0xa5c8('0x5')],'exten':_0x33bb36[_0xa5c8('0x6')],'priority':_0x573056++,'VoiceExtensionId':_0x33bb36['id']}];if(_0x33bb36[_0xa5c8('0x17')]('recordingFormat')&&_0x33bb36[_0xa5c8('0x18')]!==_0xa5c8('0x19')){_0x2f05c2[_0xa5c8('0x9')]({'type':_0xa5c8('0xe'),'app':'Set','appdata':'_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','context':_0x33bb36[_0xa5c8('0x5')],'exten':_0x33bb36[_0xa5c8('0x6')],'priority':_0x573056++,'VoiceExtensionId':_0x33bb36['id']},{'type':_0xa5c8('0xe'),'app':'Set','appdata':'_XCALLY_MIXMONITOR_FORMAT='+_0x33bb36[_0xa5c8('0x18')]||_0xa5c8('0x1a'),'context':_0x33bb36[_0xa5c8('0x5')],'exten':_0x33bb36[_0xa5c8('0x6')],'priority':_0x573056++,'VoiceExtensionId':_0x33bb36['id']});}return _0x2f05c2;}function _0x1452a7(_0x17c851,_0x4fbd8b){var _0x3a0b9e=[{'name':'trunk','param':0x0},{'name':_0xa5c8('0x1b'),'param':0x1},{'name':'options','param':0x2},{'name':'url','param':0x3}];var _0x2086fc={};var _0x231756=_0x4fbd8b[_0xa5c8('0x1c')](',');var _0x2d741e=[];for(var _0x3aaf62=0x0;_0x3aaf62<_0x3a0b9e['length'];_0x3aaf62++){switch(_0x3a0b9e[_0x3aaf62][_0xa5c8('0x1d')]){case _0xa5c8('0x1e'):_0x2086fc['trunk']=_0x231756[_0x3a0b9e[_0x3aaf62]['param']][_0xa5c8('0x1c')]('/')[0x1];_0x2086fc[_0xa5c8('0x1f')]=_0x231756[_0x3a0b9e[_0x3aaf62]['param']]['split']('/')[0x2];_0x2086fc[_0xa5c8('0x20')]=_0x2086fc['phone']?_0x2086fc[_0xa5c8('0x1f')][_0xa5c8('0x1c')]('$')[0x0]:undefined;_0x2086fc[_0xa5c8('0x1f')]=_0x17c851['cutdigits']?(_0x2086fc[_0xa5c8('0x20')]||'')+_0xa5c8('0x10')+_0x17c851[_0xa5c8('0x11')]+'}':(_0x2086fc[_0xa5c8('0x20')]||'')+_0xa5c8('0x21');_0x2d741e[_0x3a0b9e[_0x3aaf62][_0xa5c8('0x22')]]=[_0xa5c8('0x23'),_0x2086fc[_0xa5c8('0x1e')],_0x2086fc['phone']][_0xa5c8('0x24')]('/');break;case _0xa5c8('0x25'):_0x2086fc[_0xa5c8('0x25')]=_0x231756[_0x3a0b9e[_0x3aaf62]['param']];if(_0x17c851['recordingFormat']!==_0xa5c8('0x19')){if(_0x2086fc['options']['indexOf']('U(xcally-mixmonitor-context)')<0x0){_0x2086fc[_0xa5c8('0x25')]+=_0xa5c8('0x26');}}else{_0x2086fc[_0xa5c8('0x25')]=_0x2086fc[_0xa5c8('0x25')]['replace']('U(xcally-mixmonitor-context)','');}_0x2d741e[_0x3a0b9e[_0x3aaf62][_0xa5c8('0x22')]]=_0x2086fc[_0xa5c8('0x25')];break;default:_0x2d741e[_0x3a0b9e[_0x3aaf62][_0xa5c8('0x22')]]=_0x231756[_0x3a0b9e[_0x3aaf62]['param']];}}return _0x2d741e[_0xa5c8('0x24')](',');}function _0x17bb2a(_0x2ee957,_0x18f15e,_0x4ee77c){return new Promise(function(_0x2ef752,_0x359b62){var _0x3c74a1=[];if(_[_0xa5c8('0x27')](_0x18f15e))return _0x2ef752(_0x3c74a1);_0x480280[_0xa5c8('0x28')][_0xa5c8('0x29')]({'attributes':['id',_0xa5c8('0x2a'),_0xa5c8('0x2b')],'raw':!![]})[_0xa5c8('0x2c')](function(_0x41f09d){for(var _0x191323=0x0,_0x5c81c5=0x0;_0x191323<_0x18f15e[_0xa5c8('0x2d')];_0x191323++,_0x5c81c5=0x0){var _0x2b6a3a=_0x18f15e[_0x191323];var _0x127892=[];var _0x29d8d1=[];delete _0x2b6a3a['id'];if(_0x2b6a3a[_0xa5c8('0x2a')]!==_0xa5c8('0x2e')){_0x2b6a3a[_0xa5c8('0x2f')]=[_0x2b6a3a[_0xa5c8('0x2a')]];}else{_0x2b6a3a[_0xa5c8('0x2f')]=_0x2b6a3a[_0xa5c8('0x2b')]?_[_0xa5c8('0x30')](_[_0xa5c8('0x31')](_0x41f09d,{'IntervalId':_0x2b6a3a[_0xa5c8('0x2b')]}),'interval'):[];}_0x2b6a3a[_0xa5c8('0x5')]=_0x2ee957[_0xa5c8('0x5')];_0x2b6a3a[_0xa5c8('0x6')]=_0x2ee957[_0xa5c8('0x6')];if(_0x2b6a3a[_0xa5c8('0x7')])_0x2b6a3a[_0xa5c8('0x7')]=_0x2b6a3a[_0xa5c8('0x7')][_0xa5c8('0x32')]();if(_0x2ee957[_0xa5c8('0x7')]===_0xa5c8('0xe')){if(_0x2b6a3a[_0xa5c8('0x17')](_0xa5c8('0x33'))&&_0x2b6a3a['tag']&&_0x2b6a3a['tag']!=='--'){_0x127892[_0xa5c8('0x9')]({'type':_0x2b6a3a[_0xa5c8('0x7')]['toLowerCase'](),'app':_0xa5c8('0x3'),'appdata':_0xa5c8('0x34')+_0x2b6a3a[_0xa5c8('0x33')],'context':_0x2ee957[_0xa5c8('0x5')],'exten':_0x2ee957['exten'],'priority':_0x2b6a3a[_0xa5c8('0x2f')][_0xa5c8('0x2d')]+_0x4ee77c+_0x5c81c5++,'VoiceExtensionId':_0x2ee957['id']});}_0x127892['push']({'type':_0x2b6a3a['type'][_0xa5c8('0x32')](),'app':_0xa5c8('0x12'),'appdata':_0xa5c8('0x35')+(_0x2b6a3a[_0xa5c8('0x36')]?'Set(CALLERID(all)='+_0x2b6a3a[_0xa5c8('0x36')]+')':_0xa5c8('0x37')),'context':_0x2ee957[_0xa5c8('0x5')],'exten':_0x2ee957[_0xa5c8('0x6')],'priority':_0x2b6a3a[_0xa5c8('0x2f')][_0xa5c8('0x2d')]+_0x4ee77c+_0x5c81c5++,'VoiceExtensionId':_0x2ee957['id']});}else{if(_0x2b6a3a[_0xa5c8('0x17')](_0xa5c8('0x38'))){if([_0xa5c8('0x39'),'playback'][_0xa5c8('0x3a')](_0x2b6a3a['app'][_0xa5c8('0x32')]())&&_0x2b6a3a['appType']!==_0xa5c8('0x3b')){if(_0x2b6a3a[_0xa5c8('0x38')]){_0x127892[_0xa5c8('0x9')]({'type':_0x2b6a3a['type']['toLowerCase'](),'app':_0xa5c8('0x12'),'appdata':_0xa5c8('0x3c'),'context':_0x2ee957[_0xa5c8('0x5')],'exten':_0x2ee957[_0xa5c8('0x6')],'priority':_0x2b6a3a['intervals'][_0xa5c8('0x2d')]+_0x4ee77c+_0x5c81c5++,'VoiceExtensionId':_0x2ee957['id']});_0x127892[_0xa5c8('0x9')]({'type':_0x2b6a3a['type']['toLowerCase'](),'app':_0xa5c8('0x3'),'appdata':'XCALLY-MOTION-ANSWER=1','context':_0x2ee957[_0xa5c8('0x5')],'exten':_0x2ee957['exten'],'priority':_0x2b6a3a[_0xa5c8('0x2f')]['length']+_0x4ee77c+_0x5c81c5++,'VoiceExtensionId':_0x2ee957['id']});}else{_0x127892[_0xa5c8('0x9')]({'type':_0x2b6a3a['type'][_0xa5c8('0x32')](),'app':_0xa5c8('0x12'),'appdata':_0xa5c8('0x3d'),'context':_0x2ee957['context'],'exten':_0x2ee957[_0xa5c8('0x6')],'priority':_0x2b6a3a[_0xa5c8('0x2f')]['length']+_0x4ee77c+_0x5c81c5++,'VoiceExtensionId':_0x2ee957['id']});_0x127892[_0xa5c8('0x9')]({'type':_0x2b6a3a['type'][_0xa5c8('0x32')](),'app':_0xa5c8('0x3'),'appdata':_0xa5c8('0x3e'),'context':_0x2ee957[_0xa5c8('0x5')],'exten':_0x2ee957['exten'],'priority':_0x2b6a3a[_0xa5c8('0x2f')][_0xa5c8('0x2d')]+_0x4ee77c+_0x5c81c5++,'VoiceExtensionId':_0x2ee957['id']});}}}}for(var _0x253e08=0x0;_0x253e08<_0x2b6a3a[_0xa5c8('0x2f')][_0xa5c8('0x2d')];_0x253e08++){var _0x39dcc6=_0x4ee77c+_0x2b6a3a[_0xa5c8('0x2f')][_0xa5c8('0x2d')];var _0x21a5a4=_0x253e08===_0x2b6a3a[_0xa5c8('0x2f')]['length']-0x1?_0x4ee77c+_0x127892[_0xa5c8('0x2d')]+_0x29d8d1[_0xa5c8('0x2d')]+0x2:_0x4ee77c+_0x253e08+0x1;_0x127892['splice'](_0x253e08,0x0,{'type':_0x2ee957['type'],'app':_0xa5c8('0x3f'),'appdata':_0x2b6a3a[_0xa5c8('0x2f')][_0x253e08]+'?'+_0x2ee957['context']+_0xa5c8('0x40')+_0x39dcc6+':'+_0x2ee957['context']+_0xa5c8('0x40')+_0x21a5a4,'exten':_0x2ee957[_0xa5c8('0x6')],'context':_0x2ee957['context'],'priority':_0x4ee77c+_0x253e08,'VoiceExtensionId':_0x2ee957['id']});}if(_0x2b6a3a[_0xa5c8('0x41')]===_0xa5c8('0x42')){_0x2b6a3a[_0xa5c8('0x43')]=_0x1452a7(_0x2ee957,_0x2b6a3a[_0xa5c8('0x43')]);}if(_0x2b6a3a['appType']==='agi'){_0x127892[_0xa5c8('0x9')]({'type':_0x2b6a3a[_0xa5c8('0x7')][_0xa5c8('0x32')](),'app':_0xa5c8('0x3'),'appdata':_0xa5c8('0x44'),'context':_0x2ee957[_0xa5c8('0x5')],'exten':_0x2ee957[_0xa5c8('0x6')],'priority':_0x2b6a3a[_0xa5c8('0x2f')][_0xa5c8('0x2d')]+_0x4ee77c+_0x5c81c5++,'VoiceExtensionId':_0x2ee957['id']});}_0x2b6a3a['priority']=_0x127892[_0xa5c8('0x2d')]?_['last'](_0x127892)[_0xa5c8('0x45')]+0x1:_0x4ee77c;_0x3c74a1=_[_0xa5c8('0x46')](_0x3c74a1,_0x127892,[_0x2b6a3a],_0x29d8d1);_0x4ee77c=_[_0xa5c8('0x47')](_0x3c74a1)[_0xa5c8('0x45')]+0x1;}return _0x2ef752(_0x3c74a1);})['catch'](function(_0x5a1817){_0x359b62(_0x5a1817);});});}return _0x523a26[_0xa5c8('0x48')](_0xa5c8('0x49'),attributes,{'tableName':_0xa5c8('0x4a'),'paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x1c7206){var _0x4f09b9=this['get']({'plain':!![]});var _0x3bcd2b=_0x4f09b9[_0xa5c8('0x7')]==='outbound'?_0x12b337(_0x4f09b9):_0x280483(_0x4f09b9);return _0x17bb2a(_0x4f09b9,_0x1c7206,_['last'](_0x3bcd2b)[_0xa5c8('0x45')]+0x1)['then'](function(_0x44b2cb){var _0x3b6962=_[_0xa5c8('0x46')](_0x3bcd2b,_0x44b2cb);_0x3b6962[_0xa5c8('0x9')]({'type':_0x4f09b9[_0xa5c8('0x7')],'app':'Hangup','exten':_0x4f09b9[_0xa5c8('0x6')],'context':_0x4f09b9[_0xa5c8('0x5')],'priority':_['last'](_0x3b6962)[_0xa5c8('0x45')]+0x1,'VoiceExtensionId':_0x4f09b9['id']});return _0x3b6962;});}}});};