dc513ce445a93fbc48fd1bcc7ffb2eee2085335e
[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 _0x927d=['then','Hangup','./voiceExtension.attributes','exports','models','type','Set','CDR(type)=','push','inbound','context','exten','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','CDR(type)=outbound','outbound','CDR(destination)=','${EXTEN:','cutdigits','${EXTEN}','CDR(routeid)=','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','MONITOR_OPTIONS=ab','outboundrouteid=','hasOwnProperty','recordingFormat','none','timeout','options','url','split','name','trunk','prefix','phone','SIP','join','param','U(xcally-mixmonitor-context)','isEmpty','findAll','interval','IntervalId','length','map','filter','toLowerCase','tag','CDR(tag)=','intervals','ExecIf','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):','callerID','answer','playback','app','appType','custom','XCALLY-MOTION-PROGRESS=1','splice','GotoIfTime',',${EXTEN},','outboundDial','appdata','agi','XMCS-UNIQUEID=${CHANNEL(LINKEDID)}','priority','last','concat','catch','VoiceExtension','voice_extensions','get'];(function(_0x55c00d,_0x520cb6){var _0x254a8f=function(_0x2b3378){while(--_0x2b3378){_0x55c00d['push'](_0x55c00d['shift']());}};_0x254a8f(++_0x520cb6);}(_0x927d,0x17e));var _0xd927=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x927d[_0x3dd15e];return _0x231fd0;};'use strict';var _=require('lodash');var attributes=require(_0xd927('0x0'));module[_0xd927('0x1')]=function(_0x38aa0d){var _0x325162=_0x38aa0d[_0xd927('0x2')];function _0x5501f8(_0x2ff4c1){var _0x28917a=0x2;var _0x5d74e2=[{'type':_0x2ff4c1[_0xd927('0x3')],'app':_0xd927('0x4'),'appdata':_0xd927('0x5')+_0x2ff4c1[_0xd927('0x3')],'context':_0x2ff4c1['context'],'exten':_0x2ff4c1['exten'],'priority':_0x28917a++,'VoiceExtensionId':_0x2ff4c1['id']}];if(_0x2ff4c1[_0xd927('0x3')]==='inbound'){_0x5d74e2[_0xd927('0x6')]({'type':_0xd927('0x7'),'app':'Set','appdata':'CDR(routeid)='+_0x2ff4c1['id'],'context':_0x2ff4c1[_0xd927('0x8')],'exten':_0x2ff4c1[_0xd927('0x9')],'priority':_0x28917a++,'VoiceExtensionId':_0x2ff4c1['id']});}_0x5d74e2[_0xd927('0x6')]({'type':_0x2ff4c1[_0xd927('0x3')],'app':'Set','appdata':_0xd927('0xa'),'context':_0x2ff4c1[_0xd927('0x8')],'exten':_0x2ff4c1['exten'],'priority':_0x28917a++,'VoiceExtensionId':_0x2ff4c1['id']},{'type':_0x2ff4c1['type'],'app':_0xd927('0x4'),'appdata':_0xd927('0xb'),'context':_0x2ff4c1['context'],'exten':_0x2ff4c1[_0xd927('0x9')],'priority':_0x28917a++,'VoiceExtensionId':_0x2ff4c1['id']},{'type':_0x2ff4c1[_0xd927('0x3')],'app':_0xd927('0x4'),'appdata':'MONITOR_OPTIONS=ab','context':_0x2ff4c1[_0xd927('0x8')],'exten':_0x2ff4c1[_0xd927('0x9')],'priority':_0x28917a++,'VoiceExtensionId':_0x2ff4c1['id']});return _0x5d74e2;}function _0x253051(_0x1fa805){var _0x4df4d3=0x2;var _0x3b48e5=[{'type':'outbound','app':_0xd927('0x4'),'appdata':_0xd927('0xc'),'context':_0x1fa805['context'],'exten':_0x1fa805['exten'],'priority':_0x4df4d3++,'VoiceExtensionId':_0x1fa805['id']},{'type':_0xd927('0xd'),'app':_0xd927('0x4'),'appdata':_0xd927('0xe')+(_0x1fa805['cutdigits']?_0xd927('0xf')+_0x1fa805[_0xd927('0x10')]+'}':_0xd927('0x11')),'context':_0x1fa805[_0xd927('0x8')],'exten':_0x1fa805[_0xd927('0x9')],'priority':_0x4df4d3++,'VoiceExtensionId':_0x1fa805['id']},{'type':_0xd927('0xd'),'app':_0xd927('0x4'),'appdata':_0xd927('0x12')+_0x1fa805['id'],'context':_0x1fa805[_0xd927('0x8')],'exten':_0x1fa805['exten'],'priority':_0x4df4d3++,'VoiceExtensionId':_0x1fa805['id']},{'type':_0xd927('0xd'),'app':'ExecIf','appdata':_0xd927('0x13')+(_0x4df4d3+0x2)+_0xd927('0x14')+(_0x4df4d3+0x1)+')','context':_0x1fa805[_0xd927('0x8')],'exten':_0x1fa805[_0xd927('0x9')],'priority':_0x4df4d3++,'VoiceExtensionId':_0x1fa805['id']},{'type':'outbound','app':_0xd927('0x4'),'appdata':_0x1fa805[_0xd927('0x10')]?_0xd927('0x15')+_0x1fa805['cutdigits']+'}':_0xd927('0x16'),'context':_0x1fa805[_0xd927('0x8')],'exten':_0x1fa805[_0xd927('0x9')],'priority':_0x4df4d3++,'VoiceExtensionId':_0x1fa805['id']},{'type':'outbound','app':_0xd927('0x4'),'appdata':_0xd927('0xa'),'context':_0x1fa805[_0xd927('0x8')],'exten':_0x1fa805[_0xd927('0x9')],'priority':_0x4df4d3++,'VoiceExtensionId':_0x1fa805['id']},{'type':_0xd927('0xd'),'app':_0xd927('0x4'),'appdata':'XCALLY-MOTION-PROGRESS=0','context':_0x1fa805[_0xd927('0x8')],'exten':_0x1fa805[_0xd927('0x9')],'priority':_0x4df4d3++,'VoiceExtensionId':_0x1fa805['id']},{'type':_0xd927('0xd'),'app':_0xd927('0x4'),'appdata':_0xd927('0x17'),'context':_0x1fa805[_0xd927('0x8')],'exten':_0x1fa805[_0xd927('0x9')],'priority':_0x4df4d3++,'VoiceExtensionId':_0x1fa805['id']},{'type':_0xd927('0xd'),'app':'Set','appdata':_0xd927('0x18')+_0x1fa805['id'],'context':_0x1fa805[_0xd927('0x8')],'exten':_0x1fa805[_0xd927('0x9')],'priority':_0x4df4d3++,'VoiceExtensionId':_0x1fa805['id']}];if(_0x1fa805[_0xd927('0x19')](_0xd927('0x1a'))&&_0x1fa805[_0xd927('0x1a')]!==_0xd927('0x1b')){_0x3b48e5['push']({'type':'outbound','app':_0xd927('0x4'),'appdata':'_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','context':_0x1fa805[_0xd927('0x8')],'exten':_0x1fa805[_0xd927('0x9')],'priority':_0x4df4d3++,'VoiceExtensionId':_0x1fa805['id']},{'type':_0xd927('0xd'),'app':_0xd927('0x4'),'appdata':'_XCALLY_MIXMONITOR_FORMAT='+_0x1fa805[_0xd927('0x1a')]||'wav','context':_0x1fa805['context'],'exten':_0x1fa805[_0xd927('0x9')],'priority':_0x4df4d3++,'VoiceExtensionId':_0x1fa805['id']});}return _0x3b48e5;}function _0x112e92(_0xf68c16,_0x7c3cef){var _0x6b266b=[{'name':'trunk','param':0x0},{'name':_0xd927('0x1c'),'param':0x1},{'name':_0xd927('0x1d'),'param':0x2},{'name':_0xd927('0x1e'),'param':0x3}];var _0x42d3ba={};var _0x20d950=_0x7c3cef[_0xd927('0x1f')](',');var _0x522225=[];for(var _0x2f2f1c=0x0;_0x2f2f1c<_0x6b266b['length'];_0x2f2f1c++){switch(_0x6b266b[_0x2f2f1c][_0xd927('0x20')]){case _0xd927('0x21'):_0x42d3ba[_0xd927('0x21')]=_0x20d950[_0x6b266b[_0x2f2f1c]['param']][_0xd927('0x1f')]('/')[0x1];_0x42d3ba['phone']=_0x20d950[_0x6b266b[_0x2f2f1c]['param']][_0xd927('0x1f')]('/')[0x2];_0x42d3ba[_0xd927('0x22')]=_0x42d3ba[_0xd927('0x23')]?_0x42d3ba[_0xd927('0x23')][_0xd927('0x1f')]('$')[0x0]:undefined;_0x42d3ba[_0xd927('0x23')]=_0xf68c16[_0xd927('0x10')]?(_0x42d3ba[_0xd927('0x22')]||'')+_0xd927('0xf')+_0xf68c16['cutdigits']+'}':(_0x42d3ba[_0xd927('0x22')]||'')+_0xd927('0x11');_0x522225[_0x6b266b[_0x2f2f1c]['param']]=[_0xd927('0x24'),_0x42d3ba[_0xd927('0x21')],_0x42d3ba[_0xd927('0x23')]][_0xd927('0x25')]('/');break;case _0xd927('0x1d'):_0x42d3ba['options']=_0x20d950[_0x6b266b[_0x2f2f1c][_0xd927('0x26')]];if(_0xf68c16[_0xd927('0x1a')]!==_0xd927('0x1b')){if(_0x42d3ba[_0xd927('0x1d')]['indexOf'](_0xd927('0x27'))<0x0){_0x42d3ba[_0xd927('0x1d')]+=_0xd927('0x27');}}else{_0x42d3ba[_0xd927('0x1d')]=_0x42d3ba[_0xd927('0x1d')]['replace']('U(xcally-mixmonitor-context)','');}_0x522225[_0x6b266b[_0x2f2f1c][_0xd927('0x26')]]=_0x42d3ba[_0xd927('0x1d')];break;default:_0x522225[_0x6b266b[_0x2f2f1c]['param']]=_0x20d950[_0x6b266b[_0x2f2f1c][_0xd927('0x26')]];}}return _0x522225[_0xd927('0x25')](',');}function _0x21a36b(_0x3d0212,_0xcd4b41,_0x932342){return new Promise(function(_0x3d171a,_0x4c857a){var _0x1a7852=[];if(_[_0xd927('0x28')](_0xcd4b41))return _0x3d171a(_0x1a7852);_0x325162['Interval'][_0xd927('0x29')]({'attributes':['id',_0xd927('0x2a'),_0xd927('0x2b')],'raw':!![]})['then'](function(_0x51b7b7){for(var _0x4d67ae=0x0,_0x51e303=0x0;_0x4d67ae<_0xcd4b41[_0xd927('0x2c')];_0x4d67ae++,_0x51e303=0x0){var _0x3d725b=_0xcd4b41[_0x4d67ae];var _0x452a06=[];var _0x140c19=[];delete _0x3d725b['id'];if(_0x3d725b[_0xd927('0x2a')]!=='*,*,*,*'){_0x3d725b['intervals']=[_0x3d725b[_0xd927('0x2a')]];}else{_0x3d725b['intervals']=_0x3d725b[_0xd927('0x2b')]?_[_0xd927('0x2d')](_[_0xd927('0x2e')](_0x51b7b7,{'IntervalId':_0x3d725b[_0xd927('0x2b')]}),'interval'):[];}_0x3d725b['context']=_0x3d0212[_0xd927('0x8')];_0x3d725b[_0xd927('0x9')]=_0x3d0212[_0xd927('0x9')];if(_0x3d725b[_0xd927('0x3')])_0x3d725b['type']=_0x3d725b['type'][_0xd927('0x2f')]();if(_0x3d0212[_0xd927('0x3')]==='outbound'){if(_0x3d725b[_0xd927('0x19')](_0xd927('0x30'))&&_0x3d725b[_0xd927('0x30')]&&_0x3d725b['tag']!=='--'){_0x452a06[_0xd927('0x6')]({'type':_0x3d725b[_0xd927('0x3')][_0xd927('0x2f')](),'app':_0xd927('0x4'),'appdata':_0xd927('0x31')+_0x3d725b[_0xd927('0x30')],'context':_0x3d0212[_0xd927('0x8')],'exten':_0x3d0212['exten'],'priority':_0x3d725b[_0xd927('0x32')][_0xd927('0x2c')]+_0x932342+_0x51e303++,'VoiceExtensionId':_0x3d0212['id']});}_0x452a06[_0xd927('0x6')]({'type':_0x3d725b[_0xd927('0x3')]['toLowerCase'](),'app':_0xd927('0x33'),'appdata':_0xd927('0x34')+(_0x3d725b['callerID']?'Set(CALLERID(all)='+_0x3d725b[_0xd927('0x35')]+')':'NoOp(No\x20number\x20available)'),'context':_0x3d0212[_0xd927('0x8')],'exten':_0x3d0212[_0xd927('0x9')],'priority':_0x3d725b[_0xd927('0x32')][_0xd927('0x2c')]+_0x932342+_0x51e303++,'VoiceExtensionId':_0x3d0212['id']});}else{if(_0x3d725b[_0xd927('0x19')](_0xd927('0x36'))){if(['queue',_0xd927('0x37')]['includes'](_0x3d725b[_0xd927('0x38')][_0xd927('0x2f')]())&&_0x3d725b[_0xd927('0x39')]!==_0xd927('0x3a')){if(_0x3d725b['answer']){_0x452a06[_0xd927('0x6')]({'type':_0x3d725b[_0xd927('0x3')][_0xd927('0x2f')](),'app':_0xd927('0x33'),'appdata':'$[${XCALLY-MOTION-ANSWER}=0]?Answer','context':_0x3d0212['context'],'exten':_0x3d0212['exten'],'priority':_0x3d725b[_0xd927('0x32')][_0xd927('0x2c')]+_0x932342+_0x51e303++,'VoiceExtensionId':_0x3d0212['id']});_0x452a06[_0xd927('0x6')]({'type':_0x3d725b[_0xd927('0x3')][_0xd927('0x2f')](),'app':_0xd927('0x4'),'appdata':'XCALLY-MOTION-ANSWER=1','context':_0x3d0212['context'],'exten':_0x3d0212['exten'],'priority':_0x3d725b['intervals']['length']+_0x932342+_0x51e303++,'VoiceExtensionId':_0x3d0212['id']});}else{_0x452a06['push']({'type':_0x3d725b['type']['toLowerCase'](),'app':_0xd927('0x33'),'appdata':'$[${XCALLY-MOTION-PROGRESS}=0]?Progress','context':_0x3d0212['context'],'exten':_0x3d0212[_0xd927('0x9')],'priority':_0x3d725b[_0xd927('0x32')][_0xd927('0x2c')]+_0x932342+_0x51e303++,'VoiceExtensionId':_0x3d0212['id']});_0x452a06[_0xd927('0x6')]({'type':_0x3d725b[_0xd927('0x3')][_0xd927('0x2f')](),'app':_0xd927('0x4'),'appdata':_0xd927('0x3b'),'context':_0x3d0212[_0xd927('0x8')],'exten':_0x3d0212['exten'],'priority':_0x3d725b['intervals'][_0xd927('0x2c')]+_0x932342+_0x51e303++,'VoiceExtensionId':_0x3d0212['id']});}}}}for(var _0x468456=0x0;_0x468456<_0x3d725b['intervals']['length'];_0x468456++){var _0x28f43f=_0x932342+_0x3d725b[_0xd927('0x32')][_0xd927('0x2c')];var _0x3d4961=_0x468456===_0x3d725b[_0xd927('0x32')][_0xd927('0x2c')]-0x1?_0x932342+_0x452a06[_0xd927('0x2c')]+_0x140c19[_0xd927('0x2c')]+0x2:_0x932342+_0x468456+0x1;_0x452a06[_0xd927('0x3c')](_0x468456,0x0,{'type':_0x3d0212[_0xd927('0x3')],'app':_0xd927('0x3d'),'appdata':_0x3d725b['intervals'][_0x468456]+'?'+_0x3d0212['context']+_0xd927('0x3e')+_0x28f43f+':'+_0x3d0212[_0xd927('0x8')]+',${EXTEN},'+_0x3d4961,'exten':_0x3d0212[_0xd927('0x9')],'context':_0x3d0212[_0xd927('0x8')],'priority':_0x932342+_0x468456,'VoiceExtensionId':_0x3d0212['id']});}if(_0x3d725b[_0xd927('0x39')]===_0xd927('0x3f')){_0x3d725b[_0xd927('0x40')]=_0x112e92(_0x3d0212,_0x3d725b['appdata']);}if(_0x3d725b[_0xd927('0x39')]===_0xd927('0x41')){_0x452a06[_0xd927('0x6')]({'type':_0x3d725b[_0xd927('0x3')][_0xd927('0x2f')](),'app':_0xd927('0x4'),'appdata':_0xd927('0x42'),'context':_0x3d0212['context'],'exten':_0x3d0212[_0xd927('0x9')],'priority':_0x3d725b[_0xd927('0x32')][_0xd927('0x2c')]+_0x932342+_0x51e303++,'VoiceExtensionId':_0x3d0212['id']});}_0x3d725b[_0xd927('0x43')]=_0x452a06[_0xd927('0x2c')]?_[_0xd927('0x44')](_0x452a06)['priority']+0x1:_0x932342;_0x1a7852=_[_0xd927('0x45')](_0x1a7852,_0x452a06,[_0x3d725b],_0x140c19);_0x932342=_[_0xd927('0x44')](_0x1a7852)[_0xd927('0x43')]+0x1;}return _0x3d171a(_0x1a7852);})[_0xd927('0x46')](function(_0x242366){_0x4c857a(_0x242366);});});}return _0x38aa0d['define'](_0xd927('0x47'),attributes,{'tableName':_0xd927('0x48'),'paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x15b8f7){var _0x5aa510=this[_0xd927('0x49')]({'plain':!![]});var _0x40a20c=_0x5aa510[_0xd927('0x3')]==='outbound'?_0x253051(_0x5aa510):_0x5501f8(_0x5aa510);return _0x21a36b(_0x5aa510,_0x15b8f7,_[_0xd927('0x44')](_0x40a20c)[_0xd927('0x43')]+0x1)[_0xd927('0x4a')](function(_0x21e04a){var _0x1c6d60=_['concat'](_0x40a20c,_0x21e04a);_0x1c6d60[_0xd927('0x6')]({'type':_0x5aa510[_0xd927('0x3')],'app':_0xd927('0x4b'),'exten':_0x5aa510[_0xd927('0x9')],'context':_0x5aa510[_0xd927('0x8')],'priority':_[_0xd927('0x44')](_0x1c6d60)['priority']+0x1,'VoiceExtensionId':_0x5aa510['id']});return _0x1c6d60;});}}});};