feef5a16f476e6028c4a486a91724ebcb26e9d2b
[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 _0xa16a=['tag','toLowerCase','CDR(tag)=','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):','callerID','NoOp(No\x20number\x20available)','queue','playback','custom','answer','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','GotoIfTime','appType','outboundDial','appdata','agi','XMCS-UNIQUEID=${CHANNEL(LINKEDID)}','priority','last','concat','catch','VoiceExtension','voice_extensions','lodash','./voiceExtension.attributes','exports','models','Set','CDR(type)=','type','exten','alias','NoOp','CDR(routeAlias)=','context','inbound','push','CDR(routeid)=','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','CDR(type)=outbound','outbound','CDR(destination)=','cutdigits','${EXTEN}','ExecIf','):Goto(','CDR(prefix)=noprefix','hasOwnProperty','recordingFormat','none','_XCALLY_MIXMONITOR_FORMAT=','wav','timeout','url','split','length','name','trunk','param','phone','prefix','SIP','join','options','U(xcally-mixmonitor-context)','replace','isEmpty','Interval','findAll','interval','then','intervals','map','filter','IntervalId'];(function(_0x3d8f98,_0x1a359c){var _0x42098d=function(_0x5744de){while(--_0x5744de){_0x3d8f98['push'](_0x3d8f98['shift']());}};_0x42098d(++_0x1a359c);}(_0xa16a,0x1aa));var _0xaa16=function(_0x59d0cc,_0xa7c52b){_0x59d0cc=_0x59d0cc-0x0;var _0x2ae79f=_0xa16a[_0x59d0cc];return _0x2ae79f;};'use strict';var _=require(_0xaa16('0x0'));var attributes=require(_0xaa16('0x1'));module[_0xaa16('0x2')]=function(_0x1af401){var _0x5b32db=_0x1af401[_0xaa16('0x3')];function _0x481660(_0x55ad01){var _0x2150a4=0x2;var _0x2a94a1=[{'type':_0x55ad01['type'],'app':_0xaa16('0x4'),'appdata':_0xaa16('0x5')+_0x55ad01[_0xaa16('0x6')],'context':_0x55ad01['context'],'exten':_0x55ad01[_0xaa16('0x7')],'priority':_0x2150a4++,'VoiceExtensionId':_0x55ad01['id']},{'type':_0x55ad01[_0xaa16('0x6')],'app':_0x55ad01[_0xaa16('0x8')]?'Set':_0xaa16('0x9'),'appdata':_0x55ad01[_0xaa16('0x8')]?_0xaa16('0xa')+_0x55ad01[_0xaa16('0x8')]:'No\x20alias\x20set','context':_0x55ad01[_0xaa16('0xb')],'exten':_0x55ad01['exten'],'priority':_0x2150a4++,'VoiceExtensionId':_0x55ad01['id']}];if(_0x55ad01['type']===_0xaa16('0xc')){_0x2a94a1[_0xaa16('0xd')]({'type':_0xaa16('0xc'),'app':_0xaa16('0x4'),'appdata':_0xaa16('0xe')+_0x55ad01['id'],'context':_0x55ad01[_0xaa16('0xb')],'exten':_0x55ad01[_0xaa16('0x7')],'priority':_0x2150a4++,'VoiceExtensionId':_0x55ad01['id']});}_0x2a94a1['push']({'type':_0x55ad01[_0xaa16('0x6')],'app':'Set','appdata':_0xaa16('0xf'),'context':_0x55ad01[_0xaa16('0xb')],'exten':_0x55ad01['exten'],'priority':_0x2150a4++,'VoiceExtensionId':_0x55ad01['id']},{'type':_0x55ad01[_0xaa16('0x6')],'app':_0xaa16('0x4'),'appdata':_0xaa16('0x10'),'context':_0x55ad01[_0xaa16('0xb')],'exten':_0x55ad01[_0xaa16('0x7')],'priority':_0x2150a4++,'VoiceExtensionId':_0x55ad01['id']},{'type':_0x55ad01[_0xaa16('0x6')],'app':_0xaa16('0x4'),'appdata':_0xaa16('0x11'),'context':_0x55ad01[_0xaa16('0xb')],'exten':_0x55ad01[_0xaa16('0x7')],'priority':_0x2150a4++,'VoiceExtensionId':_0x55ad01['id']});return _0x2a94a1;}function _0x4a3494(_0x1454e3){var _0x1ac08d=0x2;var _0x16c554=[{'type':'outbound','app':'Set','appdata':_0xaa16('0x12'),'context':_0x1454e3['context'],'exten':_0x1454e3[_0xaa16('0x7')],'priority':_0x1ac08d++,'VoiceExtensionId':_0x1454e3['id']},{'type':_0xaa16('0x13'),'app':_0x1454e3[_0xaa16('0x8')]?_0xaa16('0x4'):_0xaa16('0x9'),'appdata':_0x1454e3['alias']?_0xaa16('0xa')+_0x1454e3[_0xaa16('0x8')]:'No\x20alias\x20set','context':_0x1454e3[_0xaa16('0xb')],'exten':_0x1454e3[_0xaa16('0x7')],'priority':_0x1ac08d++,'VoiceExtensionId':_0x1454e3['id']},{'type':_0xaa16('0x13'),'app':_0xaa16('0x4'),'appdata':_0xaa16('0x14')+(_0x1454e3[_0xaa16('0x15')]?'${EXTEN:'+_0x1454e3[_0xaa16('0x15')]+'}':_0xaa16('0x16')),'context':_0x1454e3[_0xaa16('0xb')],'exten':_0x1454e3['exten'],'priority':_0x1ac08d++,'VoiceExtensionId':_0x1454e3['id']},{'type':_0xaa16('0x13'),'app':_0xaa16('0x4'),'appdata':_0xaa16('0xe')+_0x1454e3['id'],'context':_0x1454e3['context'],'exten':_0x1454e3[_0xaa16('0x7')],'priority':_0x1ac08d++,'VoiceExtensionId':_0x1454e3['id']},{'type':_0xaa16('0x13'),'app':_0xaa16('0x17'),'appdata':'$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto('+(_0x1ac08d+0x2)+_0xaa16('0x18')+(_0x1ac08d+0x1)+')','context':_0x1454e3[_0xaa16('0xb')],'exten':_0x1454e3['exten'],'priority':_0x1ac08d++,'VoiceExtensionId':_0x1454e3['id']},{'type':_0xaa16('0x13'),'app':_0xaa16('0x4'),'appdata':_0x1454e3[_0xaa16('0x15')]?'CDR(prefix)=${EXTEN:0:'+_0x1454e3[_0xaa16('0x15')]+'}':_0xaa16('0x19'),'context':_0x1454e3[_0xaa16('0xb')],'exten':_0x1454e3[_0xaa16('0x7')],'priority':_0x1ac08d++,'VoiceExtensionId':_0x1454e3['id']},{'type':'outbound','app':'Set','appdata':_0xaa16('0xf'),'context':_0x1454e3['context'],'exten':_0x1454e3[_0xaa16('0x7')],'priority':_0x1ac08d++,'VoiceExtensionId':_0x1454e3['id']},{'type':_0xaa16('0x13'),'app':_0xaa16('0x4'),'appdata':'XCALLY-MOTION-PROGRESS=0','context':_0x1454e3[_0xaa16('0xb')],'exten':_0x1454e3[_0xaa16('0x7')],'priority':_0x1ac08d++,'VoiceExtensionId':_0x1454e3['id']},{'type':'outbound','app':_0xaa16('0x4'),'appdata':_0xaa16('0x11'),'context':_0x1454e3[_0xaa16('0xb')],'exten':_0x1454e3['exten'],'priority':_0x1ac08d++,'VoiceExtensionId':_0x1454e3['id']},{'type':_0xaa16('0x13'),'app':_0xaa16('0x4'),'appdata':'outboundrouteid='+_0x1454e3['id'],'context':_0x1454e3[_0xaa16('0xb')],'exten':_0x1454e3['exten'],'priority':_0x1ac08d++,'VoiceExtensionId':_0x1454e3['id']}];if(_0x1454e3[_0xaa16('0x1a')](_0xaa16('0x1b'))&&_0x1454e3[_0xaa16('0x1b')]!==_0xaa16('0x1c')){_0x16c554['push']({'type':_0xaa16('0x13'),'app':_0xaa16('0x4'),'appdata':'_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','context':_0x1454e3[_0xaa16('0xb')],'exten':_0x1454e3[_0xaa16('0x7')],'priority':_0x1ac08d++,'VoiceExtensionId':_0x1454e3['id']},{'type':_0xaa16('0x13'),'app':'Set','appdata':_0xaa16('0x1d')+_0x1454e3[_0xaa16('0x1b')]||_0xaa16('0x1e'),'context':_0x1454e3['context'],'exten':_0x1454e3[_0xaa16('0x7')],'priority':_0x1ac08d++,'VoiceExtensionId':_0x1454e3['id']});}return _0x16c554;}function _0x212733(_0x3d188a,_0x12208c){var _0x3b4170=[{'name':'trunk','param':0x0},{'name':_0xaa16('0x1f'),'param':0x1},{'name':'options','param':0x2},{'name':_0xaa16('0x20'),'param':0x3}];var _0x4d69ff={};var _0x22e2bb=_0x12208c[_0xaa16('0x21')](',');var _0x27a0b3=[];for(var _0x3a1fe6=0x0;_0x3a1fe6<_0x3b4170[_0xaa16('0x22')];_0x3a1fe6++){switch(_0x3b4170[_0x3a1fe6][_0xaa16('0x23')]){case _0xaa16('0x24'):_0x4d69ff[_0xaa16('0x24')]=_0x22e2bb[_0x3b4170[_0x3a1fe6][_0xaa16('0x25')]][_0xaa16('0x21')]('/')[0x1];_0x4d69ff[_0xaa16('0x26')]=_0x22e2bb[_0x3b4170[_0x3a1fe6]['param']][_0xaa16('0x21')]('/')[0x2];_0x4d69ff['prefix']=_0x4d69ff[_0xaa16('0x26')]?_0x4d69ff['phone']['split']('$')[0x0]:undefined;_0x4d69ff[_0xaa16('0x26')]=_0x3d188a[_0xaa16('0x15')]?(_0x4d69ff[_0xaa16('0x27')]||'')+'${EXTEN:'+_0x3d188a[_0xaa16('0x15')]+'}':(_0x4d69ff['prefix']||'')+'${EXTEN}';_0x27a0b3[_0x3b4170[_0x3a1fe6][_0xaa16('0x25')]]=[_0xaa16('0x28'),_0x4d69ff['trunk'],_0x4d69ff[_0xaa16('0x26')]][_0xaa16('0x29')]('/');break;case'options':_0x4d69ff[_0xaa16('0x2a')]=_0x22e2bb[_0x3b4170[_0x3a1fe6][_0xaa16('0x25')]];if(_0x3d188a['recordingFormat']!==_0xaa16('0x1c')){if(_0x4d69ff[_0xaa16('0x2a')]['indexOf'](_0xaa16('0x2b'))<0x0){_0x4d69ff[_0xaa16('0x2a')]+='U(xcally-mixmonitor-context)';}}else{_0x4d69ff[_0xaa16('0x2a')]=_0x4d69ff[_0xaa16('0x2a')][_0xaa16('0x2c')](_0xaa16('0x2b'),'');}_0x27a0b3[_0x3b4170[_0x3a1fe6]['param']]=_0x4d69ff[_0xaa16('0x2a')];break;default:_0x27a0b3[_0x3b4170[_0x3a1fe6]['param']]=_0x22e2bb[_0x3b4170[_0x3a1fe6][_0xaa16('0x25')]];}}return _0x27a0b3[_0xaa16('0x29')](',');}function _0x2e449b(_0x25d08d,_0x4a9a0c,_0x5961ce){return new Promise(function(_0x1c1939,_0x111bb5){var _0x3df572=[];if(_[_0xaa16('0x2d')](_0x4a9a0c))return _0x1c1939(_0x3df572);_0x5b32db[_0xaa16('0x2e')][_0xaa16('0x2f')]({'attributes':['id',_0xaa16('0x30'),'IntervalId'],'raw':!![]})[_0xaa16('0x31')](function(_0x13fff0){for(var _0x410088=0x0,_0x27766e=0x0;_0x410088<_0x4a9a0c['length'];_0x410088++,_0x27766e=0x0){var _0x48de17=_0x4a9a0c[_0x410088];var _0x2c3354=[];var _0x439a77=[];delete _0x48de17['id'];if(_0x48de17['interval']!=='*,*,*,*'){_0x48de17[_0xaa16('0x32')]=[_0x48de17[_0xaa16('0x30')]];}else{_0x48de17['intervals']=_0x48de17['IntervalId']?_[_0xaa16('0x33')](_[_0xaa16('0x34')](_0x13fff0,{'IntervalId':_0x48de17[_0xaa16('0x35')]}),'interval'):[];}_0x48de17[_0xaa16('0xb')]=_0x25d08d['context'];_0x48de17['exten']=_0x25d08d[_0xaa16('0x7')];if(_0x48de17['type'])_0x48de17[_0xaa16('0x6')]=_0x48de17[_0xaa16('0x6')]['toLowerCase']();if(_0x25d08d['type']===_0xaa16('0x13')){if(_0x48de17[_0xaa16('0x1a')]('tag')&&_0x48de17[_0xaa16('0x36')]&&_0x48de17[_0xaa16('0x36')]!=='--'){_0x2c3354[_0xaa16('0xd')]({'type':_0x48de17[_0xaa16('0x6')][_0xaa16('0x37')](),'app':_0xaa16('0x4'),'appdata':_0xaa16('0x38')+_0x48de17[_0xaa16('0x36')],'context':_0x25d08d[_0xaa16('0xb')],'exten':_0x25d08d[_0xaa16('0x7')],'priority':_0x48de17[_0xaa16('0x32')][_0xaa16('0x22')]+_0x5961ce+_0x27766e++,'VoiceExtensionId':_0x25d08d['id']});}_0x2c3354[_0xaa16('0xd')]({'type':_0x48de17[_0xaa16('0x6')][_0xaa16('0x37')](),'app':_0xaa16('0x17'),'appdata':_0xaa16('0x39')+(_0x48de17['callerID']?'Set(CALLERID(all)='+_0x48de17[_0xaa16('0x3a')]+')':_0xaa16('0x3b')),'context':_0x25d08d[_0xaa16('0xb')],'exten':_0x25d08d[_0xaa16('0x7')],'priority':_0x48de17[_0xaa16('0x32')][_0xaa16('0x22')]+_0x5961ce+_0x27766e++,'VoiceExtensionId':_0x25d08d['id']});}else{if(_0x48de17[_0xaa16('0x1a')]('answer')){if([_0xaa16('0x3c'),_0xaa16('0x3d')]['includes'](_0x48de17['app'][_0xaa16('0x37')]())&&_0x48de17['appType']!==_0xaa16('0x3e')){if(_0x48de17[_0xaa16('0x3f')]){_0x2c3354[_0xaa16('0xd')]({'type':_0x48de17[_0xaa16('0x6')][_0xaa16('0x37')](),'app':'ExecIf','appdata':_0xaa16('0x40'),'context':_0x25d08d[_0xaa16('0xb')],'exten':_0x25d08d[_0xaa16('0x7')],'priority':_0x48de17[_0xaa16('0x32')][_0xaa16('0x22')]+_0x5961ce+_0x27766e++,'VoiceExtensionId':_0x25d08d['id']});_0x2c3354[_0xaa16('0xd')]({'type':_0x48de17['type'][_0xaa16('0x37')](),'app':_0xaa16('0x4'),'appdata':_0xaa16('0x41'),'context':_0x25d08d[_0xaa16('0xb')],'exten':_0x25d08d[_0xaa16('0x7')],'priority':_0x48de17[_0xaa16('0x32')]['length']+_0x5961ce+_0x27766e++,'VoiceExtensionId':_0x25d08d['id']});}else{_0x2c3354[_0xaa16('0xd')]({'type':_0x48de17[_0xaa16('0x6')][_0xaa16('0x37')](),'app':_0xaa16('0x17'),'appdata':_0xaa16('0x42'),'context':_0x25d08d[_0xaa16('0xb')],'exten':_0x25d08d[_0xaa16('0x7')],'priority':_0x48de17['intervals'][_0xaa16('0x22')]+_0x5961ce+_0x27766e++,'VoiceExtensionId':_0x25d08d['id']});_0x2c3354[_0xaa16('0xd')]({'type':_0x48de17[_0xaa16('0x6')][_0xaa16('0x37')](),'app':_0xaa16('0x4'),'appdata':_0xaa16('0x43'),'context':_0x25d08d[_0xaa16('0xb')],'exten':_0x25d08d[_0xaa16('0x7')],'priority':_0x48de17['intervals'][_0xaa16('0x22')]+_0x5961ce+_0x27766e++,'VoiceExtensionId':_0x25d08d['id']});}}}}for(var _0x11afdc=0x0;_0x11afdc<_0x48de17['intervals'][_0xaa16('0x22')];_0x11afdc++){var _0xaeb379=_0x5961ce+_0x48de17[_0xaa16('0x32')][_0xaa16('0x22')];var _0x5e2eaf=_0x11afdc===_0x48de17[_0xaa16('0x32')][_0xaa16('0x22')]-0x1?_0x5961ce+_0x2c3354[_0xaa16('0x22')]+_0x439a77['length']+0x2:_0x5961ce+_0x11afdc+0x1;_0x2c3354['splice'](_0x11afdc,0x0,{'type':_0x25d08d['type'],'app':_0xaa16('0x44'),'appdata':_0x48de17['intervals'][_0x11afdc]+'?'+_0x25d08d[_0xaa16('0xb')]+',${EXTEN},'+_0xaeb379+':'+_0x25d08d['context']+',${EXTEN},'+_0x5e2eaf,'exten':_0x25d08d['exten'],'context':_0x25d08d[_0xaa16('0xb')],'priority':_0x5961ce+_0x11afdc,'VoiceExtensionId':_0x25d08d['id']});}if(_0x48de17[_0xaa16('0x45')]===_0xaa16('0x46')){_0x48de17[_0xaa16('0x47')]=_0x212733(_0x25d08d,_0x48de17[_0xaa16('0x47')]);}if(_0x48de17['appType']===_0xaa16('0x48')){_0x2c3354['push']({'type':_0x48de17['type'][_0xaa16('0x37')](),'app':_0xaa16('0x4'),'appdata':_0xaa16('0x49'),'context':_0x25d08d[_0xaa16('0xb')],'exten':_0x25d08d[_0xaa16('0x7')],'priority':_0x48de17['intervals'][_0xaa16('0x22')]+_0x5961ce+_0x27766e++,'VoiceExtensionId':_0x25d08d['id']});}_0x48de17[_0xaa16('0x4a')]=_0x2c3354[_0xaa16('0x22')]?_[_0xaa16('0x4b')](_0x2c3354)[_0xaa16('0x4a')]+0x1:_0x5961ce;_0x3df572=_[_0xaa16('0x4c')](_0x3df572,_0x2c3354,[_0x48de17],_0x439a77);_0x5961ce=_[_0xaa16('0x4b')](_0x3df572)[_0xaa16('0x4a')]+0x1;}return _0x1c1939(_0x3df572);})[_0xaa16('0x4d')](function(_0x546425){_0x111bb5(_0x546425);});});}return _0x1af401['define'](_0xaa16('0x4e'),attributes,{'tableName':_0xaa16('0x4f'),'paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x29ec2b){var _0x267299=this['get']({'plain':!![]});var _0x2e3142=_0x267299[_0xaa16('0x6')]==='outbound'?_0x4a3494(_0x267299):_0x481660(_0x267299);return _0x2e449b(_0x267299,_0x29ec2b,_[_0xaa16('0x4b')](_0x2e3142)['priority']+0x1)[_0xaa16('0x31')](function(_0x111931){var _0x443225=_[_0xaa16('0x4c')](_0x2e3142,_0x111931);_0x443225['push']({'type':_0x267299['type'],'app':'Hangup','exten':_0x267299[_0xaa16('0x7')],'context':_0x267299[_0xaa16('0xb')],'priority':_[_0xaa16('0x4b')](_0x443225)[_0xaa16('0x4a')]+0x1,'VoiceExtensionId':_0x267299['id']});return _0x443225;});}}});};