2192af7124f929d6902fd7080447b089be88ae3c
[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 _0x06cb=['outbound','NoOp','CDR(destination)=','cutdigits','${EXTEN:','${EXTEN}','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','MONITOR_OPTIONS=ab','outboundrouteid=','hasOwnProperty','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','wav','options','url','split','length','name','trunk','param','prefix','phone','join','U(xcally-mixmonitor-context)','replace','isEmpty','findAll','interval','IntervalId','then','*,*,*,*','intervals','map','filter','toLowerCase','tag','CDR(tag)=','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):','callerID','Set(CALLERID(all)=','includes','app','appType','custom','answer','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','splice','GotoIfTime',',${EXTEN},','outboundDial','appdata','priority','last','concat','define','VoiceExtension','lodash','./voiceExtension.attributes','exports','type','Set','context','exten','alias','CDR(routeAlias)=','No\x20alias\x20set','inbound','push','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0'];(function(_0x2e8fa0,_0x230e09){var _0x4f5705=function(_0x2487ea){while(--_0x2487ea){_0x2e8fa0['push'](_0x2e8fa0['shift']());}};_0x4f5705(++_0x230e09);}(_0x06cb,0x1c6));var _0xb06c=function(_0x4b7d57,_0x5bc1c5){_0x4b7d57=_0x4b7d57-0x0;var _0x494a0b=_0x06cb[_0x4b7d57];return _0x494a0b;};'use strict';var _=require(_0xb06c('0x0'));var attributes=require(_0xb06c('0x1'));module[_0xb06c('0x2')]=function(_0x2b3aa1){var _0x5ac202=_0x2b3aa1['models'];function _0xaf047b(_0x33526e){var _0x3e31af=0x2;var _0x1e4fd2=[{'type':_0x33526e[_0xb06c('0x3')],'app':_0xb06c('0x4'),'appdata':'CDR(type)='+_0x33526e[_0xb06c('0x3')],'context':_0x33526e[_0xb06c('0x5')],'exten':_0x33526e[_0xb06c('0x6')],'priority':_0x3e31af++,'VoiceExtensionId':_0x33526e['id']},{'type':_0x33526e[_0xb06c('0x3')],'app':_0x33526e[_0xb06c('0x7')]?_0xb06c('0x4'):'NoOp','appdata':_0x33526e['alias']?_0xb06c('0x8')+_0x33526e[_0xb06c('0x7')]:_0xb06c('0x9'),'context':_0x33526e['context'],'exten':_0x33526e['exten'],'priority':_0x3e31af++,'VoiceExtensionId':_0x33526e['id']}];if(_0x33526e[_0xb06c('0x3')]===_0xb06c('0xa')){_0x1e4fd2[_0xb06c('0xb')]({'type':_0xb06c('0xa'),'app':'Set','appdata':'CDR(routeid)='+_0x33526e['id'],'context':_0x33526e['context'],'exten':_0x33526e[_0xb06c('0x6')],'priority':_0x3e31af++,'VoiceExtensionId':_0x33526e['id']});}_0x1e4fd2['push']({'type':_0x33526e[_0xb06c('0x3')],'app':_0xb06c('0x4'),'appdata':_0xb06c('0xc'),'context':_0x33526e['context'],'exten':_0x33526e[_0xb06c('0x6')],'priority':_0x3e31af++,'VoiceExtensionId':_0x33526e['id']},{'type':_0x33526e['type'],'app':_0xb06c('0x4'),'appdata':_0xb06c('0xd'),'context':_0x33526e[_0xb06c('0x5')],'exten':_0x33526e['exten'],'priority':_0x3e31af++,'VoiceExtensionId':_0x33526e['id']},{'type':_0x33526e[_0xb06c('0x3')],'app':_0xb06c('0x4'),'appdata':'MONITOR_OPTIONS=ab','context':_0x33526e[_0xb06c('0x5')],'exten':_0x33526e['exten'],'priority':_0x3e31af++,'VoiceExtensionId':_0x33526e['id']});return _0x1e4fd2;}function _0x21a607(_0x3b3f96){var _0x485531=0x2;var _0x24345d=[{'type':_0xb06c('0xe'),'app':_0xb06c('0x4'),'appdata':'CDR(type)=outbound','context':_0x3b3f96[_0xb06c('0x5')],'exten':_0x3b3f96[_0xb06c('0x6')],'priority':_0x485531++,'VoiceExtensionId':_0x3b3f96['id']},{'type':'outbound','app':_0x3b3f96[_0xb06c('0x7')]?'Set':_0xb06c('0xf'),'appdata':_0x3b3f96[_0xb06c('0x7')]?_0xb06c('0x8')+_0x3b3f96[_0xb06c('0x7')]:'No\x20alias\x20set','context':_0x3b3f96[_0xb06c('0x5')],'exten':_0x3b3f96[_0xb06c('0x6')],'priority':_0x485531++,'VoiceExtensionId':_0x3b3f96['id']},{'type':'outbound','app':_0xb06c('0x4'),'appdata':_0xb06c('0x10')+(_0x3b3f96[_0xb06c('0x11')]?_0xb06c('0x12')+_0x3b3f96[_0xb06c('0x11')]+'}':_0xb06c('0x13')),'context':_0x3b3f96['context'],'exten':_0x3b3f96[_0xb06c('0x6')],'priority':_0x485531++,'VoiceExtensionId':_0x3b3f96['id']},{'type':_0xb06c('0xe'),'app':_0xb06c('0x4'),'appdata':'CDR(routeid)='+_0x3b3f96['id'],'context':_0x3b3f96[_0xb06c('0x5')],'exten':_0x3b3f96['exten'],'priority':_0x485531++,'VoiceExtensionId':_0x3b3f96['id']},{'type':_0xb06c('0xe'),'app':_0xb06c('0x14'),'appdata':_0xb06c('0x15')+(_0x485531+0x2)+_0xb06c('0x16')+(_0x485531+0x1)+')','context':_0x3b3f96[_0xb06c('0x5')],'exten':_0x3b3f96['exten'],'priority':_0x485531++,'VoiceExtensionId':_0x3b3f96['id']},{'type':_0xb06c('0xe'),'app':_0xb06c('0x4'),'appdata':_0x3b3f96['cutdigits']?_0xb06c('0x17')+_0x3b3f96[_0xb06c('0x11')]+'}':_0xb06c('0x18'),'context':_0x3b3f96[_0xb06c('0x5')],'exten':_0x3b3f96[_0xb06c('0x6')],'priority':_0x485531++,'VoiceExtensionId':_0x3b3f96['id']},{'type':'outbound','app':_0xb06c('0x4'),'appdata':_0xb06c('0xc'),'context':_0x3b3f96[_0xb06c('0x5')],'exten':_0x3b3f96[_0xb06c('0x6')],'priority':_0x485531++,'VoiceExtensionId':_0x3b3f96['id']},{'type':_0xb06c('0xe'),'app':_0xb06c('0x4'),'appdata':_0xb06c('0xd'),'context':_0x3b3f96[_0xb06c('0x5')],'exten':_0x3b3f96[_0xb06c('0x6')],'priority':_0x485531++,'VoiceExtensionId':_0x3b3f96['id']},{'type':_0xb06c('0xe'),'app':_0xb06c('0x4'),'appdata':_0xb06c('0x19'),'context':_0x3b3f96[_0xb06c('0x5')],'exten':_0x3b3f96[_0xb06c('0x6')],'priority':_0x485531++,'VoiceExtensionId':_0x3b3f96['id']},{'type':_0xb06c('0xe'),'app':_0xb06c('0x4'),'appdata':_0xb06c('0x1a')+_0x3b3f96['id'],'context':_0x3b3f96[_0xb06c('0x5')],'exten':_0x3b3f96[_0xb06c('0x6')],'priority':_0x485531++,'VoiceExtensionId':_0x3b3f96['id']}];if(_0x3b3f96[_0xb06c('0x1b')](_0xb06c('0x1c'))&&_0x3b3f96[_0xb06c('0x1c')]!==_0xb06c('0x1d')){_0x24345d[_0xb06c('0xb')]({'type':_0xb06c('0xe'),'app':_0xb06c('0x4'),'appdata':_0xb06c('0x1e'),'context':_0x3b3f96[_0xb06c('0x5')],'exten':_0x3b3f96[_0xb06c('0x6')],'priority':_0x485531++,'VoiceExtensionId':_0x3b3f96['id']},{'type':_0xb06c('0xe'),'app':'Set','appdata':_0xb06c('0x1f')+_0x3b3f96['recordingFormat']||_0xb06c('0x20'),'context':_0x3b3f96[_0xb06c('0x5')],'exten':_0x3b3f96['exten'],'priority':_0x485531++,'VoiceExtensionId':_0x3b3f96['id']});}return _0x24345d;}function _0x5535f8(_0x3cf8b3,_0x517cd5){var _0x23eb44=[{'name':'trunk','param':0x0},{'name':'timeout','param':0x1},{'name':_0xb06c('0x21'),'param':0x2},{'name':_0xb06c('0x22'),'param':0x3}];var _0x454d48={};var _0x46ed4a=_0x517cd5[_0xb06c('0x23')](',');var _0x4b8232=[];for(var _0x47a4d1=0x0;_0x47a4d1<_0x23eb44[_0xb06c('0x24')];_0x47a4d1++){switch(_0x23eb44[_0x47a4d1][_0xb06c('0x25')]){case'trunk':_0x454d48[_0xb06c('0x26')]=_0x46ed4a[_0x23eb44[_0x47a4d1][_0xb06c('0x27')]][_0xb06c('0x23')]('/')[0x1];_0x454d48['phone']=_0x46ed4a[_0x23eb44[_0x47a4d1]['param']]['split']('/')[0x2];_0x454d48[_0xb06c('0x28')]=_0x454d48[_0xb06c('0x29')]?_0x454d48['phone'][_0xb06c('0x23')]('$')[0x0]:undefined;_0x454d48[_0xb06c('0x29')]=_0x3cf8b3[_0xb06c('0x11')]?(_0x454d48[_0xb06c('0x28')]||'')+_0xb06c('0x12')+_0x3cf8b3['cutdigits']+'}':(_0x454d48[_0xb06c('0x28')]||'')+_0xb06c('0x13');_0x4b8232[_0x23eb44[_0x47a4d1][_0xb06c('0x27')]]=['SIP',_0x454d48[_0xb06c('0x26')],_0x454d48[_0xb06c('0x29')]][_0xb06c('0x2a')]('/');break;case _0xb06c('0x21'):_0x454d48[_0xb06c('0x21')]=_0x46ed4a[_0x23eb44[_0x47a4d1][_0xb06c('0x27')]];if(_0x3cf8b3[_0xb06c('0x1c')]!==_0xb06c('0x1d')){if(_0x454d48['options']['indexOf'](_0xb06c('0x2b'))<0x0){_0x454d48[_0xb06c('0x21')]+='U(xcally-mixmonitor-context)';}}else{_0x454d48['options']=_0x454d48[_0xb06c('0x21')][_0xb06c('0x2c')](_0xb06c('0x2b'),'');}_0x4b8232[_0x23eb44[_0x47a4d1]['param']]=_0x454d48[_0xb06c('0x21')];break;default:_0x4b8232[_0x23eb44[_0x47a4d1][_0xb06c('0x27')]]=_0x46ed4a[_0x23eb44[_0x47a4d1][_0xb06c('0x27')]];}}return _0x4b8232['join'](',');}function _0x3c816d(_0x54677c,_0x579572,_0x172c6b){return new Promise(function(_0x5dc3c9,_0x1892da){var _0x58a956=[];if(_[_0xb06c('0x2d')](_0x579572))return _0x5dc3c9(_0x58a956);_0x5ac202['Interval'][_0xb06c('0x2e')]({'attributes':['id',_0xb06c('0x2f'),_0xb06c('0x30')],'raw':!![]})[_0xb06c('0x31')](function(_0x2cd8c3){for(var _0x90574c=0x0,_0x2df591=0x0;_0x90574c<_0x579572[_0xb06c('0x24')];_0x90574c++,_0x2df591=0x0){var _0x23cb62=_0x579572[_0x90574c];var _0x1d453=[];var _0x1fe5f2=[];delete _0x23cb62['id'];if(_0x23cb62[_0xb06c('0x2f')]!==_0xb06c('0x32')){_0x23cb62[_0xb06c('0x33')]=[_0x23cb62['interval']];}else{_0x23cb62[_0xb06c('0x33')]=_0x23cb62[_0xb06c('0x30')]?_[_0xb06c('0x34')](_[_0xb06c('0x35')](_0x2cd8c3,{'IntervalId':_0x23cb62[_0xb06c('0x30')]}),_0xb06c('0x2f')):[];}_0x23cb62[_0xb06c('0x5')]=_0x54677c[_0xb06c('0x5')];_0x23cb62[_0xb06c('0x6')]=_0x54677c[_0xb06c('0x6')];if(_0x23cb62['type'])_0x23cb62['type']=_0x23cb62['type'][_0xb06c('0x36')]();if(_0x54677c[_0xb06c('0x3')]===_0xb06c('0xe')){if(_0x23cb62['hasOwnProperty'](_0xb06c('0x37'))&&_0x23cb62[_0xb06c('0x37')]&&_0x23cb62['tag']!=='--'){_0x1d453[_0xb06c('0xb')]({'type':_0x23cb62[_0xb06c('0x3')]['toLowerCase'](),'app':_0xb06c('0x4'),'appdata':_0xb06c('0x38')+_0x23cb62[_0xb06c('0x37')],'context':_0x54677c[_0xb06c('0x5')],'exten':_0x54677c[_0xb06c('0x6')],'priority':_0x23cb62[_0xb06c('0x33')][_0xb06c('0x24')]+_0x172c6b+_0x2df591++,'VoiceExtensionId':_0x54677c['id']});}_0x1d453[_0xb06c('0xb')]({'type':_0x23cb62[_0xb06c('0x3')][_0xb06c('0x36')](),'app':'ExecIf','appdata':_0xb06c('0x39')+(_0x23cb62[_0xb06c('0x3a')]?_0xb06c('0x3b')+_0x23cb62[_0xb06c('0x3a')]+')':'NoOp(No\x20number\x20available)'),'context':_0x54677c[_0xb06c('0x5')],'exten':_0x54677c[_0xb06c('0x6')],'priority':_0x23cb62[_0xb06c('0x33')]['length']+_0x172c6b+_0x2df591++,'VoiceExtensionId':_0x54677c['id']});}else{if(_0x23cb62[_0xb06c('0x1b')]('answer')){if(['queue','playback'][_0xb06c('0x3c')](_0x23cb62[_0xb06c('0x3d')][_0xb06c('0x36')]())&&_0x23cb62[_0xb06c('0x3e')]!==_0xb06c('0x3f')){if(_0x23cb62[_0xb06c('0x40')]){_0x1d453[_0xb06c('0xb')]({'type':_0x23cb62[_0xb06c('0x3')][_0xb06c('0x36')](),'app':_0xb06c('0x14'),'appdata':_0xb06c('0x41'),'context':_0x54677c[_0xb06c('0x5')],'exten':_0x54677c[_0xb06c('0x6')],'priority':_0x23cb62['intervals'][_0xb06c('0x24')]+_0x172c6b+_0x2df591++,'VoiceExtensionId':_0x54677c['id']});_0x1d453[_0xb06c('0xb')]({'type':_0x23cb62['type'][_0xb06c('0x36')](),'app':_0xb06c('0x4'),'appdata':_0xb06c('0x42'),'context':_0x54677c['context'],'exten':_0x54677c[_0xb06c('0x6')],'priority':_0x23cb62[_0xb06c('0x33')][_0xb06c('0x24')]+_0x172c6b+_0x2df591++,'VoiceExtensionId':_0x54677c['id']});}else{_0x1d453[_0xb06c('0xb')]({'type':_0x23cb62[_0xb06c('0x3')]['toLowerCase'](),'app':_0xb06c('0x14'),'appdata':_0xb06c('0x43'),'context':_0x54677c[_0xb06c('0x5')],'exten':_0x54677c['exten'],'priority':_0x23cb62[_0xb06c('0x33')][_0xb06c('0x24')]+_0x172c6b+_0x2df591++,'VoiceExtensionId':_0x54677c['id']});_0x1d453[_0xb06c('0xb')]({'type':_0x23cb62['type'][_0xb06c('0x36')](),'app':_0xb06c('0x4'),'appdata':'XCALLY-MOTION-PROGRESS=1','context':_0x54677c[_0xb06c('0x5')],'exten':_0x54677c[_0xb06c('0x6')],'priority':_0x23cb62[_0xb06c('0x33')][_0xb06c('0x24')]+_0x172c6b+_0x2df591++,'VoiceExtensionId':_0x54677c['id']});}}}}for(var _0x35f18d=0x0;_0x35f18d<_0x23cb62[_0xb06c('0x33')][_0xb06c('0x24')];_0x35f18d++){var _0xf3a526=_0x172c6b+_0x23cb62[_0xb06c('0x33')][_0xb06c('0x24')];var _0xaff865=_0x35f18d===_0x23cb62[_0xb06c('0x33')]['length']-0x1?_0x172c6b+_0x1d453[_0xb06c('0x24')]+_0x1fe5f2['length']+0x2:_0x172c6b+_0x35f18d+0x1;_0x1d453[_0xb06c('0x44')](_0x35f18d,0x0,{'type':_0x54677c[_0xb06c('0x3')],'app':_0xb06c('0x45'),'appdata':_0x23cb62[_0xb06c('0x33')][_0x35f18d]+'?'+_0x54677c['context']+_0xb06c('0x46')+_0xf3a526+':'+_0x54677c['context']+_0xb06c('0x46')+_0xaff865,'exten':_0x54677c[_0xb06c('0x6')],'context':_0x54677c[_0xb06c('0x5')],'priority':_0x172c6b+_0x35f18d,'VoiceExtensionId':_0x54677c['id']});}if(_0x23cb62[_0xb06c('0x3e')]===_0xb06c('0x47'))_0x23cb62[_0xb06c('0x48')]=_0x5535f8(_0x54677c,_0x23cb62['appdata']);_0x23cb62[_0xb06c('0x49')]=_0x1d453[_0xb06c('0x24')]?_[_0xb06c('0x4a')](_0x1d453)[_0xb06c('0x49')]+0x1:_0x172c6b;_0x58a956=_[_0xb06c('0x4b')](_0x58a956,_0x1d453,[_0x23cb62],_0x1fe5f2);_0x172c6b=_['last'](_0x58a956)['priority']+0x1;}return _0x5dc3c9(_0x58a956);})['catch'](function(_0x17e2c1){_0x1892da(_0x17e2c1);});});}return _0x2b3aa1[_0xb06c('0x4c')](_0xb06c('0x4d'),attributes,{'tableName':'voice_extensions','paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x40eb81){var _0x275955=this['get']({'plain':!![]});var _0x5e7a8a=_0x275955[_0xb06c('0x3')]===_0xb06c('0xe')?_0x21a607(_0x275955):_0xaf047b(_0x275955);return _0x3c816d(_0x275955,_0x40eb81,_[_0xb06c('0x4a')](_0x5e7a8a)[_0xb06c('0x49')]+0x1)[_0xb06c('0x31')](function(_0x24f88b){var _0x139ed6=_['concat'](_0x5e7a8a,_0x24f88b);_0x139ed6[_0xb06c('0xb')]({'type':_0x275955[_0xb06c('0x3')],'app':'Hangup','exten':_0x275955['exten'],'context':_0x275955[_0xb06c('0x5')],'priority':_[_0xb06c('0x4a')](_0x139ed6)[_0xb06c('0x49')]+0x1,'VoiceExtensionId':_0x275955['id']});return _0x139ed6;});}}});};