Built motion from commit e02f907f.|2.6.14
[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 _0xe81d=['filter','hasOwnProperty','tag','toLowerCase','CDR(tag)=','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):','callerID','Set(CALLERID(all)=','NoOp(No\x20number\x20available)','playback','includes','app','custom','answer','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','splice','GotoIfTime',',${EXTEN},','appType','outboundDial','appdata','last','concat','priority','define','VoiceExtension','voice_extensions','get','then','lodash','./voiceExtension.attributes','exports','models','Set','CDR(type)=','context','exten','type','alias','No\x20alias\x20set','push','inbound','CDR(routeid)=','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','outbound','CDR(type)=outbound','NoOp','CDR(routeAlias)=','CDR(destination)=','cutdigits','${EXTEN:','${EXTEN}','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','outboundrouteid=','recordingFormat','none','_XCALLY_MIXMONITOR_FORMAT=','trunk','options','url','split','length','param','prefix','phone','indexOf','U(xcally-mixmonitor-context)','isEmpty','Interval','interval','*,*,*,*','intervals','IntervalId','map'];(function(_0x2d7312,_0x31ca1b){var _0x567211=function(_0x3bed7b){while(--_0x3bed7b){_0x2d7312['push'](_0x2d7312['shift']());}};_0x567211(++_0x31ca1b);}(_0xe81d,0xc4));var _0xde81=function(_0x3a7940,_0x46f938){_0x3a7940=_0x3a7940-0x0;var _0x46aff1=_0xe81d[_0x3a7940];return _0x46aff1;};'use strict';var _=require(_0xde81('0x0'));var attributes=require(_0xde81('0x1'));module[_0xde81('0x2')]=function(_0xb24c86){var _0x2fd581=_0xb24c86[_0xde81('0x3')];function _0x15211c(_0x29d917){var _0x28698c=0x2;var _0x5a50f7=[{'type':_0x29d917['type'],'app':_0xde81('0x4'),'appdata':_0xde81('0x5')+_0x29d917['type'],'context':_0x29d917[_0xde81('0x6')],'exten':_0x29d917[_0xde81('0x7')],'priority':_0x28698c++,'VoiceExtensionId':_0x29d917['id']},{'type':_0x29d917[_0xde81('0x8')],'app':_0x29d917[_0xde81('0x9')]?_0xde81('0x4'):'NoOp','appdata':_0x29d917[_0xde81('0x9')]?'CDR(routeAlias)='+_0x29d917[_0xde81('0x9')]:_0xde81('0xa'),'context':_0x29d917[_0xde81('0x6')],'exten':_0x29d917[_0xde81('0x7')],'priority':_0x28698c++,'VoiceExtensionId':_0x29d917['id']}];if(_0x29d917['type']==='inbound'){_0x5a50f7[_0xde81('0xb')]({'type':_0xde81('0xc'),'app':_0xde81('0x4'),'appdata':_0xde81('0xd')+_0x29d917['id'],'context':_0x29d917['context'],'exten':_0x29d917[_0xde81('0x7')],'priority':_0x28698c++,'VoiceExtensionId':_0x29d917['id']});}_0x5a50f7['push']({'type':_0x29d917['type'],'app':_0xde81('0x4'),'appdata':_0xde81('0xe'),'context':_0x29d917[_0xde81('0x6')],'exten':_0x29d917['exten'],'priority':_0x28698c++,'VoiceExtensionId':_0x29d917['id']},{'type':_0x29d917[_0xde81('0x8')],'app':_0xde81('0x4'),'appdata':_0xde81('0xf'),'context':_0x29d917['context'],'exten':_0x29d917[_0xde81('0x7')],'priority':_0x28698c++,'VoiceExtensionId':_0x29d917['id']},{'type':_0x29d917[_0xde81('0x8')],'app':_0xde81('0x4'),'appdata':_0xde81('0x10'),'context':_0x29d917['context'],'exten':_0x29d917[_0xde81('0x7')],'priority':_0x28698c++,'VoiceExtensionId':_0x29d917['id']});return _0x5a50f7;}function _0x513272(_0x403693){var _0x38a25b=0x2;var _0x2e9aef=[{'type':_0xde81('0x11'),'app':_0xde81('0x4'),'appdata':_0xde81('0x12'),'context':_0x403693['context'],'exten':_0x403693[_0xde81('0x7')],'priority':_0x38a25b++,'VoiceExtensionId':_0x403693['id']},{'type':'outbound','app':_0x403693[_0xde81('0x9')]?_0xde81('0x4'):_0xde81('0x13'),'appdata':_0x403693[_0xde81('0x9')]?_0xde81('0x14')+_0x403693[_0xde81('0x9')]:_0xde81('0xa'),'context':_0x403693[_0xde81('0x6')],'exten':_0x403693[_0xde81('0x7')],'priority':_0x38a25b++,'VoiceExtensionId':_0x403693['id']},{'type':'outbound','app':_0xde81('0x4'),'appdata':_0xde81('0x15')+(_0x403693[_0xde81('0x16')]?_0xde81('0x17')+_0x403693['cutdigits']+'}':_0xde81('0x18')),'context':_0x403693['context'],'exten':_0x403693[_0xde81('0x7')],'priority':_0x38a25b++,'VoiceExtensionId':_0x403693['id']},{'type':_0xde81('0x11'),'app':_0xde81('0x4'),'appdata':_0xde81('0xd')+_0x403693['id'],'context':_0x403693[_0xde81('0x6')],'exten':_0x403693[_0xde81('0x7')],'priority':_0x38a25b++,'VoiceExtensionId':_0x403693['id']},{'type':_0xde81('0x11'),'app':_0xde81('0x19'),'appdata':_0xde81('0x1a')+(_0x38a25b+0x2)+'):Goto('+(_0x38a25b+0x1)+')','context':_0x403693['context'],'exten':_0x403693[_0xde81('0x7')],'priority':_0x38a25b++,'VoiceExtensionId':_0x403693['id']},{'type':_0xde81('0x11'),'app':_0xde81('0x4'),'appdata':_0x403693['cutdigits']?_0xde81('0x1b')+_0x403693[_0xde81('0x16')]+'}':_0xde81('0x1c'),'context':_0x403693[_0xde81('0x6')],'exten':_0x403693[_0xde81('0x7')],'priority':_0x38a25b++,'VoiceExtensionId':_0x403693['id']},{'type':_0xde81('0x11'),'app':_0xde81('0x4'),'appdata':_0xde81('0xe'),'context':_0x403693['context'],'exten':_0x403693[_0xde81('0x7')],'priority':_0x38a25b++,'VoiceExtensionId':_0x403693['id']},{'type':_0xde81('0x11'),'app':_0xde81('0x4'),'appdata':_0xde81('0xf'),'context':_0x403693[_0xde81('0x6')],'exten':_0x403693['exten'],'priority':_0x38a25b++,'VoiceExtensionId':_0x403693['id']},{'type':_0xde81('0x11'),'app':_0xde81('0x4'),'appdata':_0xde81('0x10'),'context':_0x403693['context'],'exten':_0x403693[_0xde81('0x7')],'priority':_0x38a25b++,'VoiceExtensionId':_0x403693['id']},{'type':_0xde81('0x11'),'app':_0xde81('0x4'),'appdata':_0xde81('0x1d')+_0x403693['id'],'context':_0x403693['context'],'exten':_0x403693[_0xde81('0x7')],'priority':_0x38a25b++,'VoiceExtensionId':_0x403693['id']}];if(_0x403693['hasOwnProperty'](_0xde81('0x1e'))&&_0x403693[_0xde81('0x1e')]!==_0xde81('0x1f')){_0x2e9aef[_0xde81('0xb')]({'type':_0xde81('0x11'),'app':'Set','appdata':'_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','context':_0x403693[_0xde81('0x6')],'exten':_0x403693['exten'],'priority':_0x38a25b++,'VoiceExtensionId':_0x403693['id']},{'type':_0xde81('0x11'),'app':_0xde81('0x4'),'appdata':_0xde81('0x20')+_0x403693[_0xde81('0x1e')]||'wav','context':_0x403693[_0xde81('0x6')],'exten':_0x403693[_0xde81('0x7')],'priority':_0x38a25b++,'VoiceExtensionId':_0x403693['id']});}return _0x2e9aef;}function _0x27abea(_0xe521e2,_0xc63793){var _0x21fb42=[{'name':_0xde81('0x21'),'param':0x0},{'name':'timeout','param':0x1},{'name':_0xde81('0x22'),'param':0x2},{'name':_0xde81('0x23'),'param':0x3}];var _0x1b1bf0={};var _0x5f5c0e=_0xc63793[_0xde81('0x24')](',');var _0x49c546=[];for(var _0x28cddf=0x0;_0x28cddf<_0x21fb42[_0xde81('0x25')];_0x28cddf++){switch(_0x21fb42[_0x28cddf]['name']){case _0xde81('0x21'):_0x1b1bf0[_0xde81('0x21')]=_0x5f5c0e[_0x21fb42[_0x28cddf][_0xde81('0x26')]][_0xde81('0x24')]('/')[0x1];_0x1b1bf0['phone']=_0x5f5c0e[_0x21fb42[_0x28cddf][_0xde81('0x26')]][_0xde81('0x24')]('/')[0x2];_0x1b1bf0[_0xde81('0x27')]=_0x1b1bf0[_0xde81('0x28')]?_0x1b1bf0[_0xde81('0x28')][_0xde81('0x24')]('$')[0x0]:undefined;_0x1b1bf0[_0xde81('0x28')]=_0xe521e2[_0xde81('0x16')]?(_0x1b1bf0[_0xde81('0x27')]||'')+_0xde81('0x17')+_0xe521e2[_0xde81('0x16')]+'}':(_0x1b1bf0['prefix']||'')+_0xde81('0x18');_0x49c546[_0x21fb42[_0x28cddf][_0xde81('0x26')]]=['SIP',_0x1b1bf0[_0xde81('0x21')],_0x1b1bf0['phone']]['join']('/');break;case _0xde81('0x22'):_0x1b1bf0[_0xde81('0x22')]=_0x5f5c0e[_0x21fb42[_0x28cddf][_0xde81('0x26')]];if(_0xe521e2[_0xde81('0x1e')]!=='none'){if(_0x1b1bf0['options'][_0xde81('0x29')](_0xde81('0x2a'))<0x0){_0x1b1bf0[_0xde81('0x22')]+='U(xcally-mixmonitor-context)';}}else{_0x1b1bf0['options']=_0x1b1bf0['options']['replace'](_0xde81('0x2a'),'');}_0x49c546[_0x21fb42[_0x28cddf][_0xde81('0x26')]]=_0x1b1bf0[_0xde81('0x22')];break;default:_0x49c546[_0x21fb42[_0x28cddf][_0xde81('0x26')]]=_0x5f5c0e[_0x21fb42[_0x28cddf][_0xde81('0x26')]];}}return _0x49c546['join'](',');}function _0x567f33(_0x3f40f7,_0x284b04,_0x5d833f){return new Promise(function(_0x48c897,_0x3dbc01){var _0x16eaeb=[];if(_[_0xde81('0x2b')](_0x284b04))return _0x48c897(_0x16eaeb);_0x2fd581[_0xde81('0x2c')]['findAll']({'attributes':['id',_0xde81('0x2d'),'IntervalId'],'raw':!![]})['then'](function(_0x48aae4){for(var _0x204d94=0x0,_0x2c2232=0x0;_0x204d94<_0x284b04[_0xde81('0x25')];_0x204d94++,_0x2c2232=0x0){var _0x1235a5=_0x284b04[_0x204d94];var _0x47082d=[];var _0x25506a=[];delete _0x1235a5['id'];if(_0x1235a5['interval']!==_0xde81('0x2e')){_0x1235a5['intervals']=[_0x1235a5[_0xde81('0x2d')]];}else{_0x1235a5[_0xde81('0x2f')]=_0x1235a5[_0xde81('0x30')]?_[_0xde81('0x31')](_[_0xde81('0x32')](_0x48aae4,{'IntervalId':_0x1235a5[_0xde81('0x30')]}),_0xde81('0x2d')):[];}_0x1235a5['context']=_0x3f40f7[_0xde81('0x6')];_0x1235a5[_0xde81('0x7')]=_0x3f40f7['exten'];if(_0x1235a5[_0xde81('0x8')])_0x1235a5[_0xde81('0x8')]=_0x1235a5[_0xde81('0x8')]['toLowerCase']();if(_0x3f40f7[_0xde81('0x8')]===_0xde81('0x11')){if(_0x1235a5[_0xde81('0x33')](_0xde81('0x34'))&&_0x1235a5[_0xde81('0x34')]&&_0x1235a5[_0xde81('0x34')]!=='--'){_0x47082d[_0xde81('0xb')]({'type':_0x1235a5['type'][_0xde81('0x35')](),'app':_0xde81('0x4'),'appdata':_0xde81('0x36')+_0x1235a5['tag'],'context':_0x3f40f7[_0xde81('0x6')],'exten':_0x3f40f7['exten'],'priority':_0x1235a5['intervals']['length']+_0x5d833f+_0x2c2232++,'VoiceExtensionId':_0x3f40f7['id']});}_0x47082d[_0xde81('0xb')]({'type':_0x1235a5['type']['toLowerCase'](),'app':'ExecIf','appdata':_0xde81('0x37')+(_0x1235a5[_0xde81('0x38')]?_0xde81('0x39')+_0x1235a5['callerID']+')':_0xde81('0x3a')),'context':_0x3f40f7[_0xde81('0x6')],'exten':_0x3f40f7['exten'],'priority':_0x1235a5[_0xde81('0x2f')]['length']+_0x5d833f+_0x2c2232++,'VoiceExtensionId':_0x3f40f7['id']});}else{if(_0x1235a5[_0xde81('0x33')]('answer')){if(['queue',_0xde81('0x3b')][_0xde81('0x3c')](_0x1235a5[_0xde81('0x3d')][_0xde81('0x35')]())&&_0x1235a5['appType']!==_0xde81('0x3e')){if(_0x1235a5[_0xde81('0x3f')]){_0x47082d['push']({'type':_0x1235a5['type']['toLowerCase'](),'app':'ExecIf','appdata':_0xde81('0x40'),'context':_0x3f40f7[_0xde81('0x6')],'exten':_0x3f40f7[_0xde81('0x7')],'priority':_0x1235a5[_0xde81('0x2f')]['length']+_0x5d833f+_0x2c2232++,'VoiceExtensionId':_0x3f40f7['id']});_0x47082d[_0xde81('0xb')]({'type':_0x1235a5['type'][_0xde81('0x35')](),'app':_0xde81('0x4'),'appdata':_0xde81('0x41'),'context':_0x3f40f7[_0xde81('0x6')],'exten':_0x3f40f7[_0xde81('0x7')],'priority':_0x1235a5[_0xde81('0x2f')][_0xde81('0x25')]+_0x5d833f+_0x2c2232++,'VoiceExtensionId':_0x3f40f7['id']});}else{_0x47082d[_0xde81('0xb')]({'type':_0x1235a5[_0xde81('0x8')][_0xde81('0x35')](),'app':_0xde81('0x19'),'appdata':_0xde81('0x42'),'context':_0x3f40f7[_0xde81('0x6')],'exten':_0x3f40f7['exten'],'priority':_0x1235a5[_0xde81('0x2f')]['length']+_0x5d833f+_0x2c2232++,'VoiceExtensionId':_0x3f40f7['id']});_0x47082d['push']({'type':_0x1235a5[_0xde81('0x8')][_0xde81('0x35')](),'app':_0xde81('0x4'),'appdata':_0xde81('0x43'),'context':_0x3f40f7[_0xde81('0x6')],'exten':_0x3f40f7[_0xde81('0x7')],'priority':_0x1235a5[_0xde81('0x2f')][_0xde81('0x25')]+_0x5d833f+_0x2c2232++,'VoiceExtensionId':_0x3f40f7['id']});}}}}for(var _0x5d7c4f=0x0;_0x5d7c4f<_0x1235a5[_0xde81('0x2f')][_0xde81('0x25')];_0x5d7c4f++){var _0x111817=_0x5d833f+_0x1235a5['intervals'][_0xde81('0x25')];var _0x2ec7ca=_0x5d7c4f===_0x1235a5['intervals'][_0xde81('0x25')]-0x1?_0x5d833f+_0x47082d[_0xde81('0x25')]+_0x25506a['length']+0x2:_0x5d833f+_0x5d7c4f+0x1;_0x47082d[_0xde81('0x44')](_0x5d7c4f,0x0,{'type':_0x3f40f7[_0xde81('0x8')],'app':_0xde81('0x45'),'appdata':_0x1235a5['intervals'][_0x5d7c4f]+'?'+_0x3f40f7[_0xde81('0x6')]+_0xde81('0x46')+_0x111817+':'+_0x3f40f7[_0xde81('0x6')]+',${EXTEN},'+_0x2ec7ca,'exten':_0x3f40f7['exten'],'context':_0x3f40f7[_0xde81('0x6')],'priority':_0x5d833f+_0x5d7c4f,'VoiceExtensionId':_0x3f40f7['id']});}if(_0x1235a5[_0xde81('0x47')]===_0xde81('0x48'))_0x1235a5[_0xde81('0x49')]=_0x27abea(_0x3f40f7,_0x1235a5[_0xde81('0x49')]);_0x1235a5['priority']=_0x47082d['length']?_[_0xde81('0x4a')](_0x47082d)['priority']+0x1:_0x5d833f;_0x16eaeb=_[_0xde81('0x4b')](_0x16eaeb,_0x47082d,[_0x1235a5],_0x25506a);_0x5d833f=_[_0xde81('0x4a')](_0x16eaeb)[_0xde81('0x4c')]+0x1;}return _0x48c897(_0x16eaeb);})['catch'](function(_0x359c2e){_0x3dbc01(_0x359c2e);});});}return _0xb24c86[_0xde81('0x4d')](_0xde81('0x4e'),attributes,{'tableName':_0xde81('0x4f'),'paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x44c0cb){var _0x47d642=this[_0xde81('0x50')]({'plain':!![]});var _0x5dfa08=_0x47d642['type']===_0xde81('0x11')?_0x513272(_0x47d642):_0x15211c(_0x47d642);return _0x567f33(_0x47d642,_0x44c0cb,_['last'](_0x5dfa08)[_0xde81('0x4c')]+0x1)[_0xde81('0x51')](function(_0x507055){var _0x5c69a9=_['concat'](_0x5dfa08,_0x507055);_0x5c69a9[_0xde81('0xb')]({'type':_0x47d642['type'],'app':'Hangup','exten':_0x47d642[_0xde81('0x7')],'context':_0x47d642[_0xde81('0x6')],'priority':_['last'](_0x5c69a9)['priority']+0x1,'VoiceExtensionId':_0x47d642['id']});return _0x5c69a9;});}}});};