Built motion from commit b5413ace.|2.6.9
[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 _0xf603=['_XCALLY_MIXMONITOR_FORMAT=','trunk','timeout','options','url','split','length','name','param','phone','prefix','join','indexOf','U(xcally-mixmonitor-context)','replace','isEmpty','interval','then','*,*,*,*','intervals','IntervalId','map','filter','toLowerCase','tag','CDR(tag)=','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):','callerID','Set(CALLERID(all)=','NoOp(No\x20number\x20available)','answer','queue','playback','includes','appType','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','GotoIfTime',',${EXTEN},','outboundDial','appdata','priority','last','concat','catch','get','Hangup','lodash','./voiceExtension.attributes','models','type','Set','exten','alias','NoOp','CDR(routeAlias)=','No\x20alias\x20set','context','inbound','CDR(routeid)=','outbound','CDR(destination)=','cutdigits','${EXTEN:','${EXTEN}','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','outboundrouteid=','hasOwnProperty','recordingFormat','none','push','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}'];(function(_0x6c993a,_0x5ea3ab){var _0x27f547=function(_0x22df20){while(--_0x22df20){_0x6c993a['push'](_0x6c993a['shift']());}};_0x27f547(++_0x5ea3ab);}(_0xf603,0x124));var _0x3f60=function(_0x20c0ff,_0x313403){_0x20c0ff=_0x20c0ff-0x0;var _0x38b7a9=_0xf603[_0x20c0ff];return _0x38b7a9;};'use strict';var _=require(_0x3f60('0x0'));var attributes=require(_0x3f60('0x1'));module['exports']=function(_0x2aaed8){var _0x23c3fb=_0x2aaed8[_0x3f60('0x2')];function _0x1b68aa(_0x360e59){var _0x1403db=0x2;var _0x21a566=[{'type':_0x360e59[_0x3f60('0x3')],'app':_0x3f60('0x4'),'appdata':'CDR(type)='+_0x360e59['type'],'context':_0x360e59['context'],'exten':_0x360e59[_0x3f60('0x5')],'priority':_0x1403db++,'VoiceExtensionId':_0x360e59['id']},{'type':_0x360e59[_0x3f60('0x3')],'app':_0x360e59[_0x3f60('0x6')]?_0x3f60('0x4'):_0x3f60('0x7'),'appdata':_0x360e59[_0x3f60('0x6')]?_0x3f60('0x8')+_0x360e59[_0x3f60('0x6')]:_0x3f60('0x9'),'context':_0x360e59[_0x3f60('0xa')],'exten':_0x360e59[_0x3f60('0x5')],'priority':_0x1403db++,'VoiceExtensionId':_0x360e59['id']}];if(_0x360e59[_0x3f60('0x3')]===_0x3f60('0xb')){_0x21a566['push']({'type':'inbound','app':'Set','appdata':_0x3f60('0xc')+_0x360e59['id'],'context':_0x360e59[_0x3f60('0xa')],'exten':_0x360e59[_0x3f60('0x5')],'priority':_0x1403db++,'VoiceExtensionId':_0x360e59['id']});}_0x21a566['push']({'type':_0x360e59[_0x3f60('0x3')],'app':_0x3f60('0x4'),'appdata':'XCALLY-MOTION-ANSWER=0','context':_0x360e59[_0x3f60('0xa')],'exten':_0x360e59[_0x3f60('0x5')],'priority':_0x1403db++,'VoiceExtensionId':_0x360e59['id']},{'type':_0x360e59['type'],'app':_0x3f60('0x4'),'appdata':'XCALLY-MOTION-PROGRESS=0','context':_0x360e59[_0x3f60('0xa')],'exten':_0x360e59[_0x3f60('0x5')],'priority':_0x1403db++,'VoiceExtensionId':_0x360e59['id']},{'type':_0x360e59['type'],'app':_0x3f60('0x4'),'appdata':'MONITOR_OPTIONS=ab','context':_0x360e59[_0x3f60('0xa')],'exten':_0x360e59['exten'],'priority':_0x1403db++,'VoiceExtensionId':_0x360e59['id']});return _0x21a566;}function _0x219f16(_0x360bf2){var _0xbc26c=0x2;var _0x2b893c=[{'type':_0x3f60('0xd'),'app':_0x3f60('0x4'),'appdata':'CDR(type)=outbound','context':_0x360bf2[_0x3f60('0xa')],'exten':_0x360bf2[_0x3f60('0x5')],'priority':_0xbc26c++,'VoiceExtensionId':_0x360bf2['id']},{'type':_0x3f60('0xd'),'app':_0x360bf2[_0x3f60('0x6')]?_0x3f60('0x4'):_0x3f60('0x7'),'appdata':_0x360bf2['alias']?_0x3f60('0x8')+_0x360bf2[_0x3f60('0x6')]:'No\x20alias\x20set','context':_0x360bf2[_0x3f60('0xa')],'exten':_0x360bf2[_0x3f60('0x5')],'priority':_0xbc26c++,'VoiceExtensionId':_0x360bf2['id']},{'type':_0x3f60('0xd'),'app':_0x3f60('0x4'),'appdata':_0x3f60('0xe')+(_0x360bf2[_0x3f60('0xf')]?_0x3f60('0x10')+_0x360bf2[_0x3f60('0xf')]+'}':_0x3f60('0x11')),'context':_0x360bf2[_0x3f60('0xa')],'exten':_0x360bf2[_0x3f60('0x5')],'priority':_0xbc26c++,'VoiceExtensionId':_0x360bf2['id']},{'type':_0x3f60('0xd'),'app':_0x3f60('0x4'),'appdata':_0x3f60('0xc')+_0x360bf2['id'],'context':_0x360bf2[_0x3f60('0xa')],'exten':_0x360bf2['exten'],'priority':_0xbc26c++,'VoiceExtensionId':_0x360bf2['id']},{'type':_0x3f60('0xd'),'app':_0x3f60('0x12'),'appdata':_0x3f60('0x13')+(_0xbc26c+0x2)+_0x3f60('0x14')+(_0xbc26c+0x1)+')','context':_0x360bf2[_0x3f60('0xa')],'exten':_0x360bf2[_0x3f60('0x5')],'priority':_0xbc26c++,'VoiceExtensionId':_0x360bf2['id']},{'type':_0x3f60('0xd'),'app':_0x3f60('0x4'),'appdata':_0x360bf2['cutdigits']?_0x3f60('0x15')+_0x360bf2[_0x3f60('0xf')]+'}':_0x3f60('0x16'),'context':_0x360bf2[_0x3f60('0xa')],'exten':_0x360bf2[_0x3f60('0x5')],'priority':_0xbc26c++,'VoiceExtensionId':_0x360bf2['id']},{'type':_0x3f60('0xd'),'app':_0x3f60('0x4'),'appdata':_0x3f60('0x17'),'context':_0x360bf2[_0x3f60('0xa')],'exten':_0x360bf2[_0x3f60('0x5')],'priority':_0xbc26c++,'VoiceExtensionId':_0x360bf2['id']},{'type':_0x3f60('0xd'),'app':_0x3f60('0x4'),'appdata':_0x3f60('0x18'),'context':_0x360bf2[_0x3f60('0xa')],'exten':_0x360bf2[_0x3f60('0x5')],'priority':_0xbc26c++,'VoiceExtensionId':_0x360bf2['id']},{'type':_0x3f60('0xd'),'app':_0x3f60('0x4'),'appdata':_0x3f60('0x19'),'context':_0x360bf2[_0x3f60('0xa')],'exten':_0x360bf2[_0x3f60('0x5')],'priority':_0xbc26c++,'VoiceExtensionId':_0x360bf2['id']},{'type':_0x3f60('0xd'),'app':_0x3f60('0x4'),'appdata':_0x3f60('0x1a')+_0x360bf2['id'],'context':_0x360bf2[_0x3f60('0xa')],'exten':_0x360bf2[_0x3f60('0x5')],'priority':_0xbc26c++,'VoiceExtensionId':_0x360bf2['id']}];if(_0x360bf2[_0x3f60('0x1b')](_0x3f60('0x1c'))&&_0x360bf2[_0x3f60('0x1c')]!==_0x3f60('0x1d')){_0x2b893c[_0x3f60('0x1e')]({'type':_0x3f60('0xd'),'app':'Set','appdata':_0x3f60('0x1f'),'context':_0x360bf2[_0x3f60('0xa')],'exten':_0x360bf2['exten'],'priority':_0xbc26c++,'VoiceExtensionId':_0x360bf2['id']},{'type':_0x3f60('0xd'),'app':_0x3f60('0x4'),'appdata':_0x3f60('0x20')+_0x360bf2[_0x3f60('0x1c')]||'wav','context':_0x360bf2[_0x3f60('0xa')],'exten':_0x360bf2[_0x3f60('0x5')],'priority':_0xbc26c++,'VoiceExtensionId':_0x360bf2['id']});}return _0x2b893c;}function _0x5e6bb4(_0x5c6685,_0x261210){var _0x5ce1b5=[{'name':_0x3f60('0x21'),'param':0x0},{'name':_0x3f60('0x22'),'param':0x1},{'name':_0x3f60('0x23'),'param':0x2},{'name':_0x3f60('0x24'),'param':0x3}];var _0x4c30d0={};var _0x5dff41=_0x261210[_0x3f60('0x25')](',');var _0x3caa2e=[];for(var _0x2efdd3=0x0;_0x2efdd3<_0x5ce1b5[_0x3f60('0x26')];_0x2efdd3++){switch(_0x5ce1b5[_0x2efdd3][_0x3f60('0x27')]){case _0x3f60('0x21'):_0x4c30d0['trunk']=_0x5dff41[_0x5ce1b5[_0x2efdd3][_0x3f60('0x28')]]['split']('/')[0x1];_0x4c30d0[_0x3f60('0x29')]=_0x5dff41[_0x5ce1b5[_0x2efdd3]['param']][_0x3f60('0x25')]('/')[0x2];_0x4c30d0[_0x3f60('0x2a')]=_0x4c30d0[_0x3f60('0x29')]?_0x4c30d0[_0x3f60('0x29')][_0x3f60('0x25')]('$')[0x0]:undefined;_0x4c30d0['phone']=_0x5c6685['cutdigits']?(_0x4c30d0[_0x3f60('0x2a')]||'')+_0x3f60('0x10')+_0x5c6685[_0x3f60('0xf')]+'}':(_0x4c30d0['prefix']||'')+_0x3f60('0x11');_0x3caa2e[_0x5ce1b5[_0x2efdd3][_0x3f60('0x28')]]=['SIP',_0x4c30d0['trunk'],_0x4c30d0[_0x3f60('0x29')]][_0x3f60('0x2b')]('/');break;case _0x3f60('0x23'):_0x4c30d0[_0x3f60('0x23')]=_0x5dff41[_0x5ce1b5[_0x2efdd3][_0x3f60('0x28')]];if(_0x5c6685['recordingFormat']!==_0x3f60('0x1d')){if(_0x4c30d0[_0x3f60('0x23')][_0x3f60('0x2c')](_0x3f60('0x2d'))<0x0){_0x4c30d0[_0x3f60('0x23')]+=_0x3f60('0x2d');}}else{_0x4c30d0['options']=_0x4c30d0['options'][_0x3f60('0x2e')](_0x3f60('0x2d'),'');}_0x3caa2e[_0x5ce1b5[_0x2efdd3]['param']]=_0x4c30d0['options'];break;default:_0x3caa2e[_0x5ce1b5[_0x2efdd3]['param']]=_0x5dff41[_0x5ce1b5[_0x2efdd3][_0x3f60('0x28')]];}}return _0x3caa2e[_0x3f60('0x2b')](',');}function _0x58bfe4(_0x5f2b62,_0x4f38d5,_0x1bcafa){return new Promise(function(_0x57eaba,_0x4876b6){var _0x3bd16a=[];if(_[_0x3f60('0x2f')](_0x4f38d5))return _0x57eaba(_0x3bd16a);_0x23c3fb['Interval']['findAll']({'attributes':['id',_0x3f60('0x30'),'IntervalId'],'raw':!![]})[_0x3f60('0x31')](function(_0x4a1c9f){for(var _0x255202=0x0,_0x333b05=0x0;_0x255202<_0x4f38d5[_0x3f60('0x26')];_0x255202++,_0x333b05=0x0){var _0x1ac9c1=_0x4f38d5[_0x255202];var _0x2cc399=[];var _0x539826=[];delete _0x1ac9c1['id'];if(_0x1ac9c1[_0x3f60('0x30')]!==_0x3f60('0x32')){_0x1ac9c1['intervals']=[_0x1ac9c1['interval']];}else{_0x1ac9c1[_0x3f60('0x33')]=_0x1ac9c1[_0x3f60('0x34')]?_[_0x3f60('0x35')](_[_0x3f60('0x36')](_0x4a1c9f,{'IntervalId':_0x1ac9c1[_0x3f60('0x34')]}),'interval'):[];}_0x1ac9c1[_0x3f60('0xa')]=_0x5f2b62['context'];_0x1ac9c1[_0x3f60('0x5')]=_0x5f2b62[_0x3f60('0x5')];if(_0x1ac9c1[_0x3f60('0x3')])_0x1ac9c1['type']=_0x1ac9c1[_0x3f60('0x3')][_0x3f60('0x37')]();if(_0x5f2b62[_0x3f60('0x3')]==='outbound'){if(_0x1ac9c1[_0x3f60('0x1b')]('tag')&&_0x1ac9c1[_0x3f60('0x38')]&&_0x1ac9c1[_0x3f60('0x38')]!=='--'){_0x2cc399[_0x3f60('0x1e')]({'type':_0x1ac9c1[_0x3f60('0x3')]['toLowerCase'](),'app':_0x3f60('0x4'),'appdata':_0x3f60('0x39')+_0x1ac9c1['tag'],'context':_0x5f2b62[_0x3f60('0xa')],'exten':_0x5f2b62['exten'],'priority':_0x1ac9c1['intervals']['length']+_0x1bcafa+_0x333b05++,'VoiceExtensionId':_0x5f2b62['id']});}_0x2cc399['push']({'type':_0x1ac9c1['type'][_0x3f60('0x37')](),'app':'ExecIf','appdata':_0x3f60('0x3a')+(_0x1ac9c1[_0x3f60('0x3b')]?_0x3f60('0x3c')+_0x1ac9c1['callerID']+')':_0x3f60('0x3d')),'context':_0x5f2b62[_0x3f60('0xa')],'exten':_0x5f2b62[_0x3f60('0x5')],'priority':_0x1ac9c1[_0x3f60('0x33')][_0x3f60('0x26')]+_0x1bcafa+_0x333b05++,'VoiceExtensionId':_0x5f2b62['id']});}else{if(_0x1ac9c1[_0x3f60('0x1b')](_0x3f60('0x3e'))){if([_0x3f60('0x3f'),_0x3f60('0x40')][_0x3f60('0x41')](_0x1ac9c1['app'][_0x3f60('0x37')]())&&_0x1ac9c1[_0x3f60('0x42')]!==_0x3f60('0x43')){if(_0x1ac9c1[_0x3f60('0x3e')]){_0x2cc399[_0x3f60('0x1e')]({'type':_0x1ac9c1[_0x3f60('0x3')][_0x3f60('0x37')](),'app':_0x3f60('0x12'),'appdata':_0x3f60('0x44'),'context':_0x5f2b62[_0x3f60('0xa')],'exten':_0x5f2b62[_0x3f60('0x5')],'priority':_0x1ac9c1[_0x3f60('0x33')][_0x3f60('0x26')]+_0x1bcafa+_0x333b05++,'VoiceExtensionId':_0x5f2b62['id']});_0x2cc399[_0x3f60('0x1e')]({'type':_0x1ac9c1[_0x3f60('0x3')][_0x3f60('0x37')](),'app':'Set','appdata':_0x3f60('0x45'),'context':_0x5f2b62[_0x3f60('0xa')],'exten':_0x5f2b62['exten'],'priority':_0x1ac9c1[_0x3f60('0x33')][_0x3f60('0x26')]+_0x1bcafa+_0x333b05++,'VoiceExtensionId':_0x5f2b62['id']});}else{_0x2cc399[_0x3f60('0x1e')]({'type':_0x1ac9c1['type']['toLowerCase'](),'app':'ExecIf','appdata':_0x3f60('0x46'),'context':_0x5f2b62[_0x3f60('0xa')],'exten':_0x5f2b62[_0x3f60('0x5')],'priority':_0x1ac9c1[_0x3f60('0x33')]['length']+_0x1bcafa+_0x333b05++,'VoiceExtensionId':_0x5f2b62['id']});_0x2cc399[_0x3f60('0x1e')]({'type':_0x1ac9c1[_0x3f60('0x3')]['toLowerCase'](),'app':_0x3f60('0x4'),'appdata':'XCALLY-MOTION-PROGRESS=1','context':_0x5f2b62[_0x3f60('0xa')],'exten':_0x5f2b62[_0x3f60('0x5')],'priority':_0x1ac9c1[_0x3f60('0x33')][_0x3f60('0x26')]+_0x1bcafa+_0x333b05++,'VoiceExtensionId':_0x5f2b62['id']});}}}}for(var _0xf41339=0x0;_0xf41339<_0x1ac9c1[_0x3f60('0x33')]['length'];_0xf41339++){var _0x1aaac3=_0x1bcafa+_0x1ac9c1[_0x3f60('0x33')][_0x3f60('0x26')];var _0x44246b=_0xf41339===_0x1ac9c1[_0x3f60('0x33')][_0x3f60('0x26')]-0x1?_0x1bcafa+_0x2cc399[_0x3f60('0x26')]+_0x539826['length']+0x2:_0x1bcafa+_0xf41339+0x1;_0x2cc399['splice'](_0xf41339,0x0,{'type':_0x5f2b62[_0x3f60('0x3')],'app':_0x3f60('0x47'),'appdata':_0x1ac9c1[_0x3f60('0x33')][_0xf41339]+'?'+_0x5f2b62[_0x3f60('0xa')]+',${EXTEN},'+_0x1aaac3+':'+_0x5f2b62[_0x3f60('0xa')]+_0x3f60('0x48')+_0x44246b,'exten':_0x5f2b62['exten'],'context':_0x5f2b62[_0x3f60('0xa')],'priority':_0x1bcafa+_0xf41339,'VoiceExtensionId':_0x5f2b62['id']});}if(_0x1ac9c1['appType']===_0x3f60('0x49'))_0x1ac9c1[_0x3f60('0x4a')]=_0x5e6bb4(_0x5f2b62,_0x1ac9c1[_0x3f60('0x4a')]);_0x1ac9c1[_0x3f60('0x4b')]=_0x2cc399['length']?_[_0x3f60('0x4c')](_0x2cc399)['priority']+0x1:_0x1bcafa;_0x3bd16a=_[_0x3f60('0x4d')](_0x3bd16a,_0x2cc399,[_0x1ac9c1],_0x539826);_0x1bcafa=_[_0x3f60('0x4c')](_0x3bd16a)[_0x3f60('0x4b')]+0x1;}return _0x57eaba(_0x3bd16a);})[_0x3f60('0x4e')](function(_0x596d84){_0x4876b6(_0x596d84);});});}return _0x2aaed8['define']('VoiceExtension',attributes,{'tableName':'voice_extensions','paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x547626){var _0x3871dd=this[_0x3f60('0x4f')]({'plain':!![]});var _0x4a659b=_0x3871dd[_0x3f60('0x3')]===_0x3f60('0xd')?_0x219f16(_0x3871dd):_0x1b68aa(_0x3871dd);return _0x58bfe4(_0x3871dd,_0x547626,_[_0x3f60('0x4c')](_0x4a659b)[_0x3f60('0x4b')]+0x1)[_0x3f60('0x31')](function(_0x39edb5){var _0xfb0582=_['concat'](_0x4a659b,_0x39edb5);_0xfb0582[_0x3f60('0x1e')]({'type':_0x3871dd['type'],'app':_0x3f60('0x50'),'exten':_0x3871dd['exten'],'context':_0x3871dd[_0x3f60('0xa')],'priority':_[_0x3f60('0x4c')](_0xfb0582)['priority']+0x1,'VoiceExtensionId':_0x3871dd['id']});return _0xfb0582;});}}});};