Built motion from commit 47436d59.|2.6.7
[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 _0xa6c6=['CDR(routeAlias)=','No\x20alias\x20set','inbound','push','CDR(routeid)=','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','outbound','CDR(type)=outbound','CDR(destination)=','cutdigits','${EXTEN:','${EXTEN}','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','outboundrouteid=','hasOwnProperty','recordingFormat','_XCALLY_MIXMONITOR_FORMAT=','wav','timeout','options','url','split','length','name','trunk','param','prefix','phone','join','indexOf','replace','U(xcally-mixmonitor-context)','isEmpty','Interval','interval','then','intervals','toLowerCase','tag','CDR(tag)=','ExecIf','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):','callerID','NoOp(No\x20number\x20available)','playback','includes','app','appType','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','GotoIfTime',',${EXTEN},','outboundDial','appdata','priority','last','concat','catch','define','get','lodash','./voiceExtension.attributes','exports','models','type','Set','context','exten','alias','NoOp'];(function(_0x21c089,_0x1f7806){var _0xe081c9=function(_0x50b175){while(--_0x50b175){_0x21c089['push'](_0x21c089['shift']());}};_0xe081c9(++_0x1f7806);}(_0xa6c6,0x12e));var _0x6a6c=function(_0x42cae2,_0x284ef8){_0x42cae2=_0x42cae2-0x0;var _0x5f256f=_0xa6c6[_0x42cae2];return _0x5f256f;};'use strict';var _=require(_0x6a6c('0x0'));var attributes=require(_0x6a6c('0x1'));module[_0x6a6c('0x2')]=function(_0x207b61){var _0x1c21e0=_0x207b61[_0x6a6c('0x3')];function _0x36cf8a(_0x2afc4a){var _0x332d66=0x2;var _0x3067ad=[{'type':_0x2afc4a[_0x6a6c('0x4')],'app':_0x6a6c('0x5'),'appdata':'CDR(type)='+_0x2afc4a[_0x6a6c('0x4')],'context':_0x2afc4a[_0x6a6c('0x6')],'exten':_0x2afc4a[_0x6a6c('0x7')],'priority':_0x332d66++,'VoiceExtensionId':_0x2afc4a['id']},{'type':_0x2afc4a['type'],'app':_0x2afc4a[_0x6a6c('0x8')]?_0x6a6c('0x5'):_0x6a6c('0x9'),'appdata':_0x2afc4a['alias']?_0x6a6c('0xa')+_0x2afc4a[_0x6a6c('0x8')]:_0x6a6c('0xb'),'context':_0x2afc4a[_0x6a6c('0x6')],'exten':_0x2afc4a['exten'],'priority':_0x332d66++,'VoiceExtensionId':_0x2afc4a['id']}];if(_0x2afc4a['type']===_0x6a6c('0xc')){_0x3067ad[_0x6a6c('0xd')]({'type':'inbound','app':'Set','appdata':_0x6a6c('0xe')+_0x2afc4a['id'],'context':_0x2afc4a[_0x6a6c('0x6')],'exten':_0x2afc4a[_0x6a6c('0x7')],'priority':_0x332d66++,'VoiceExtensionId':_0x2afc4a['id']});}_0x3067ad[_0x6a6c('0xd')]({'type':_0x2afc4a[_0x6a6c('0x4')],'app':_0x6a6c('0x5'),'appdata':_0x6a6c('0xf'),'context':_0x2afc4a[_0x6a6c('0x6')],'exten':_0x2afc4a[_0x6a6c('0x7')],'priority':_0x332d66++,'VoiceExtensionId':_0x2afc4a['id']},{'type':_0x2afc4a[_0x6a6c('0x4')],'app':_0x6a6c('0x5'),'appdata':_0x6a6c('0x10'),'context':_0x2afc4a[_0x6a6c('0x6')],'exten':_0x2afc4a[_0x6a6c('0x7')],'priority':_0x332d66++,'VoiceExtensionId':_0x2afc4a['id']},{'type':_0x2afc4a['type'],'app':_0x6a6c('0x5'),'appdata':_0x6a6c('0x11'),'context':_0x2afc4a[_0x6a6c('0x6')],'exten':_0x2afc4a['exten'],'priority':_0x332d66++,'VoiceExtensionId':_0x2afc4a['id']});return _0x3067ad;}function _0x1aba56(_0x46841c){var _0x271009=0x2;var _0x1720e2=[{'type':_0x6a6c('0x12'),'app':_0x6a6c('0x5'),'appdata':_0x6a6c('0x13'),'context':_0x46841c[_0x6a6c('0x6')],'exten':_0x46841c[_0x6a6c('0x7')],'priority':_0x271009++,'VoiceExtensionId':_0x46841c['id']},{'type':_0x6a6c('0x12'),'app':_0x46841c['alias']?_0x6a6c('0x5'):_0x6a6c('0x9'),'appdata':_0x46841c[_0x6a6c('0x8')]?_0x6a6c('0xa')+_0x46841c['alias']:_0x6a6c('0xb'),'context':_0x46841c[_0x6a6c('0x6')],'exten':_0x46841c[_0x6a6c('0x7')],'priority':_0x271009++,'VoiceExtensionId':_0x46841c['id']},{'type':_0x6a6c('0x12'),'app':_0x6a6c('0x5'),'appdata':_0x6a6c('0x14')+(_0x46841c[_0x6a6c('0x15')]?_0x6a6c('0x16')+_0x46841c[_0x6a6c('0x15')]+'}':_0x6a6c('0x17')),'context':_0x46841c['context'],'exten':_0x46841c[_0x6a6c('0x7')],'priority':_0x271009++,'VoiceExtensionId':_0x46841c['id']},{'type':_0x6a6c('0x12'),'app':_0x6a6c('0x5'),'appdata':_0x6a6c('0xe')+_0x46841c['id'],'context':_0x46841c[_0x6a6c('0x6')],'exten':_0x46841c[_0x6a6c('0x7')],'priority':_0x271009++,'VoiceExtensionId':_0x46841c['id']},{'type':_0x6a6c('0x12'),'app':'ExecIf','appdata':_0x6a6c('0x18')+(_0x271009+0x2)+_0x6a6c('0x19')+(_0x271009+0x1)+')','context':_0x46841c[_0x6a6c('0x6')],'exten':_0x46841c[_0x6a6c('0x7')],'priority':_0x271009++,'VoiceExtensionId':_0x46841c['id']},{'type':'outbound','app':_0x6a6c('0x5'),'appdata':_0x46841c[_0x6a6c('0x15')]?_0x6a6c('0x1a')+_0x46841c['cutdigits']+'}':_0x6a6c('0x1b'),'context':_0x46841c['context'],'exten':_0x46841c['exten'],'priority':_0x271009++,'VoiceExtensionId':_0x46841c['id']},{'type':'outbound','app':_0x6a6c('0x5'),'appdata':_0x6a6c('0xf'),'context':_0x46841c[_0x6a6c('0x6')],'exten':_0x46841c[_0x6a6c('0x7')],'priority':_0x271009++,'VoiceExtensionId':_0x46841c['id']},{'type':_0x6a6c('0x12'),'app':_0x6a6c('0x5'),'appdata':_0x6a6c('0x10'),'context':_0x46841c[_0x6a6c('0x6')],'exten':_0x46841c['exten'],'priority':_0x271009++,'VoiceExtensionId':_0x46841c['id']},{'type':_0x6a6c('0x12'),'app':_0x6a6c('0x5'),'appdata':'MONITOR_OPTIONS=ab','context':_0x46841c[_0x6a6c('0x6')],'exten':_0x46841c[_0x6a6c('0x7')],'priority':_0x271009++,'VoiceExtensionId':_0x46841c['id']},{'type':_0x6a6c('0x12'),'app':_0x6a6c('0x5'),'appdata':_0x6a6c('0x1c')+_0x46841c['id'],'context':_0x46841c[_0x6a6c('0x6')],'exten':_0x46841c['exten'],'priority':_0x271009++,'VoiceExtensionId':_0x46841c['id']}];if(_0x46841c[_0x6a6c('0x1d')](_0x6a6c('0x1e'))&&_0x46841c[_0x6a6c('0x1e')]!=='none'){_0x1720e2[_0x6a6c('0xd')]({'type':_0x6a6c('0x12'),'app':_0x6a6c('0x5'),'appdata':'_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','context':_0x46841c[_0x6a6c('0x6')],'exten':_0x46841c[_0x6a6c('0x7')],'priority':_0x271009++,'VoiceExtensionId':_0x46841c['id']},{'type':_0x6a6c('0x12'),'app':_0x6a6c('0x5'),'appdata':_0x6a6c('0x1f')+_0x46841c[_0x6a6c('0x1e')]||_0x6a6c('0x20'),'context':_0x46841c[_0x6a6c('0x6')],'exten':_0x46841c[_0x6a6c('0x7')],'priority':_0x271009++,'VoiceExtensionId':_0x46841c['id']});}return _0x1720e2;}function _0x3a8365(_0x3ec6f0,_0x1a16c8){var _0x29b1d7=[{'name':'trunk','param':0x0},{'name':_0x6a6c('0x21'),'param':0x1},{'name':_0x6a6c('0x22'),'param':0x2},{'name':_0x6a6c('0x23'),'param':0x3}];var _0x3dd58d={};var _0x3fabc9=_0x1a16c8[_0x6a6c('0x24')](',');var _0x507490=[];for(var _0x52f981=0x0;_0x52f981<_0x29b1d7[_0x6a6c('0x25')];_0x52f981++){switch(_0x29b1d7[_0x52f981][_0x6a6c('0x26')]){case _0x6a6c('0x27'):_0x3dd58d[_0x6a6c('0x27')]=_0x3fabc9[_0x29b1d7[_0x52f981][_0x6a6c('0x28')]][_0x6a6c('0x24')]('/')[0x1];_0x3dd58d['phone']=_0x3fabc9[_0x29b1d7[_0x52f981][_0x6a6c('0x28')]][_0x6a6c('0x24')]('/')[0x2];_0x3dd58d[_0x6a6c('0x29')]=_0x3dd58d['phone']?_0x3dd58d[_0x6a6c('0x2a')]['split']('$')[0x0]:undefined;_0x3dd58d[_0x6a6c('0x2a')]=_0x3ec6f0[_0x6a6c('0x15')]?(_0x3dd58d[_0x6a6c('0x29')]||'')+_0x6a6c('0x16')+_0x3ec6f0[_0x6a6c('0x15')]+'}':(_0x3dd58d[_0x6a6c('0x29')]||'')+_0x6a6c('0x17');_0x507490[_0x29b1d7[_0x52f981]['param']]=['SIP',_0x3dd58d[_0x6a6c('0x27')],_0x3dd58d[_0x6a6c('0x2a')]][_0x6a6c('0x2b')]('/');break;case _0x6a6c('0x22'):_0x3dd58d[_0x6a6c('0x22')]=_0x3fabc9[_0x29b1d7[_0x52f981][_0x6a6c('0x28')]];if(_0x3ec6f0[_0x6a6c('0x1e')]!=='none'){if(_0x3dd58d[_0x6a6c('0x22')][_0x6a6c('0x2c')]('U(xcally-mixmonitor-context)')<0x0){_0x3dd58d[_0x6a6c('0x22')]+='U(xcally-mixmonitor-context)';}}else{_0x3dd58d[_0x6a6c('0x22')]=_0x3dd58d[_0x6a6c('0x22')][_0x6a6c('0x2d')](_0x6a6c('0x2e'),'');}_0x507490[_0x29b1d7[_0x52f981][_0x6a6c('0x28')]]=_0x3dd58d[_0x6a6c('0x22')];break;default:_0x507490[_0x29b1d7[_0x52f981][_0x6a6c('0x28')]]=_0x3fabc9[_0x29b1d7[_0x52f981]['param']];}}return _0x507490[_0x6a6c('0x2b')](',');}function _0x21fdca(_0x4cb4c4,_0xb07936,_0x448c4f){return new Promise(function(_0x2a3200,_0x251724){var _0x266ebc=[];if(_[_0x6a6c('0x2f')](_0xb07936))return _0x2a3200(_0x266ebc);_0x1c21e0[_0x6a6c('0x30')]['findAll']({'attributes':['id',_0x6a6c('0x31'),'IntervalId'],'raw':!![]})[_0x6a6c('0x32')](function(_0x347103){for(var _0x2b54a3=0x0,_0x5be1a2=0x0;_0x2b54a3<_0xb07936[_0x6a6c('0x25')];_0x2b54a3++,_0x5be1a2=0x0){var _0x151268=_0xb07936[_0x2b54a3];var _0x390fae=[];var _0x8e76fe=[];delete _0x151268['id'];if(_0x151268[_0x6a6c('0x31')]!=='*,*,*,*'){_0x151268[_0x6a6c('0x33')]=[_0x151268[_0x6a6c('0x31')]];}else{_0x151268['intervals']=_0x151268['IntervalId']?_['map'](_['filter'](_0x347103,{'IntervalId':_0x151268['IntervalId']}),_0x6a6c('0x31')):[];}_0x151268[_0x6a6c('0x6')]=_0x4cb4c4[_0x6a6c('0x6')];_0x151268[_0x6a6c('0x7')]=_0x4cb4c4['exten'];if(_0x151268[_0x6a6c('0x4')])_0x151268[_0x6a6c('0x4')]=_0x151268[_0x6a6c('0x4')][_0x6a6c('0x34')]();if(_0x4cb4c4[_0x6a6c('0x4')]==='outbound'){if(_0x151268[_0x6a6c('0x1d')](_0x6a6c('0x35'))&&_0x151268[_0x6a6c('0x35')]&&_0x151268[_0x6a6c('0x35')]!=='--'){_0x390fae[_0x6a6c('0xd')]({'type':_0x151268[_0x6a6c('0x4')][_0x6a6c('0x34')](),'app':'Set','appdata':_0x6a6c('0x36')+_0x151268[_0x6a6c('0x35')],'context':_0x4cb4c4['context'],'exten':_0x4cb4c4['exten'],'priority':_0x151268[_0x6a6c('0x33')]['length']+_0x448c4f+_0x5be1a2++,'VoiceExtensionId':_0x4cb4c4['id']});}_0x390fae[_0x6a6c('0xd')]({'type':_0x151268['type'][_0x6a6c('0x34')](),'app':_0x6a6c('0x37'),'appdata':_0x6a6c('0x38')+(_0x151268[_0x6a6c('0x39')]?'Set(CALLERID(all)='+_0x151268[_0x6a6c('0x39')]+')':_0x6a6c('0x3a')),'context':_0x4cb4c4[_0x6a6c('0x6')],'exten':_0x4cb4c4[_0x6a6c('0x7')],'priority':_0x151268[_0x6a6c('0x33')][_0x6a6c('0x25')]+_0x448c4f+_0x5be1a2++,'VoiceExtensionId':_0x4cb4c4['id']});}else{if(_0x151268[_0x6a6c('0x1d')]('answer')){if(['queue',_0x6a6c('0x3b')][_0x6a6c('0x3c')](_0x151268[_0x6a6c('0x3d')][_0x6a6c('0x34')]())&&_0x151268[_0x6a6c('0x3e')]!==_0x6a6c('0x3f')){if(_0x151268['answer']){_0x390fae['push']({'type':_0x151268['type'][_0x6a6c('0x34')](),'app':'ExecIf','appdata':_0x6a6c('0x40'),'context':_0x4cb4c4[_0x6a6c('0x6')],'exten':_0x4cb4c4[_0x6a6c('0x7')],'priority':_0x151268['intervals'][_0x6a6c('0x25')]+_0x448c4f+_0x5be1a2++,'VoiceExtensionId':_0x4cb4c4['id']});_0x390fae[_0x6a6c('0xd')]({'type':_0x151268[_0x6a6c('0x4')][_0x6a6c('0x34')](),'app':'Set','appdata':_0x6a6c('0x41'),'context':_0x4cb4c4[_0x6a6c('0x6')],'exten':_0x4cb4c4[_0x6a6c('0x7')],'priority':_0x151268[_0x6a6c('0x33')][_0x6a6c('0x25')]+_0x448c4f+_0x5be1a2++,'VoiceExtensionId':_0x4cb4c4['id']});}else{_0x390fae['push']({'type':_0x151268[_0x6a6c('0x4')]['toLowerCase'](),'app':_0x6a6c('0x37'),'appdata':_0x6a6c('0x42'),'context':_0x4cb4c4['context'],'exten':_0x4cb4c4[_0x6a6c('0x7')],'priority':_0x151268[_0x6a6c('0x33')][_0x6a6c('0x25')]+_0x448c4f+_0x5be1a2++,'VoiceExtensionId':_0x4cb4c4['id']});_0x390fae[_0x6a6c('0xd')]({'type':_0x151268[_0x6a6c('0x4')][_0x6a6c('0x34')](),'app':'Set','appdata':_0x6a6c('0x43'),'context':_0x4cb4c4['context'],'exten':_0x4cb4c4[_0x6a6c('0x7')],'priority':_0x151268['intervals']['length']+_0x448c4f+_0x5be1a2++,'VoiceExtensionId':_0x4cb4c4['id']});}}}}for(var _0x142307=0x0;_0x142307<_0x151268[_0x6a6c('0x33')][_0x6a6c('0x25')];_0x142307++){var _0x1f138e=_0x448c4f+_0x151268[_0x6a6c('0x33')][_0x6a6c('0x25')];var _0x437be4=_0x142307===_0x151268[_0x6a6c('0x33')][_0x6a6c('0x25')]-0x1?_0x448c4f+_0x390fae['length']+_0x8e76fe[_0x6a6c('0x25')]+0x2:_0x448c4f+_0x142307+0x1;_0x390fae['splice'](_0x142307,0x0,{'type':_0x4cb4c4[_0x6a6c('0x4')],'app':_0x6a6c('0x44'),'appdata':_0x151268[_0x6a6c('0x33')][_0x142307]+'?'+_0x4cb4c4[_0x6a6c('0x6')]+_0x6a6c('0x45')+_0x1f138e+':'+_0x4cb4c4['context']+_0x6a6c('0x45')+_0x437be4,'exten':_0x4cb4c4[_0x6a6c('0x7')],'context':_0x4cb4c4[_0x6a6c('0x6')],'priority':_0x448c4f+_0x142307,'VoiceExtensionId':_0x4cb4c4['id']});}if(_0x151268[_0x6a6c('0x3e')]===_0x6a6c('0x46'))_0x151268[_0x6a6c('0x47')]=_0x3a8365(_0x4cb4c4,_0x151268[_0x6a6c('0x47')]);_0x151268[_0x6a6c('0x48')]=_0x390fae[_0x6a6c('0x25')]?_[_0x6a6c('0x49')](_0x390fae)[_0x6a6c('0x48')]+0x1:_0x448c4f;_0x266ebc=_[_0x6a6c('0x4a')](_0x266ebc,_0x390fae,[_0x151268],_0x8e76fe);_0x448c4f=_[_0x6a6c('0x49')](_0x266ebc)[_0x6a6c('0x48')]+0x1;}return _0x2a3200(_0x266ebc);})[_0x6a6c('0x4b')](function(_0x5e185c){_0x251724(_0x5e185c);});});}return _0x207b61[_0x6a6c('0x4c')]('VoiceExtension',attributes,{'tableName':'voice_extensions','paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x4fa145){var _0x89b413=this[_0x6a6c('0x4d')]({'plain':!![]});var _0x1cb29e=_0x89b413[_0x6a6c('0x4')]===_0x6a6c('0x12')?_0x1aba56(_0x89b413):_0x36cf8a(_0x89b413);return _0x21fdca(_0x89b413,_0x4fa145,_[_0x6a6c('0x49')](_0x1cb29e)[_0x6a6c('0x48')]+0x1)['then'](function(_0x28155b){var _0x4b0028=_[_0x6a6c('0x4a')](_0x1cb29e,_0x28155b);_0x4b0028['push']({'type':_0x89b413[_0x6a6c('0x4')],'app':'Hangup','exten':_0x89b413[_0x6a6c('0x7')],'context':_0x89b413[_0x6a6c('0x6')],'priority':_[_0x6a6c('0x49')](_0x4b0028)[_0x6a6c('0x48')]+0x1,'VoiceExtensionId':_0x89b413['id']});return _0x4b0028;});}}});};