2564c39a7b0f2e1ea59ae6a3873e901018185bee
[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 _0x3b2b=['queue','playback','includes','app','appType','custom','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','splice','GotoIfTime',',${EXTEN},','appdata','XMCS-UNIQUEID=${CHANNEL(LINKEDID)}','priority','last','catch','VoiceExtension','voice_extensions','get','Hangup','lodash','./voiceExtension.attributes','models','type','Set','CDR(type)=','context','exten','alias','CDR(routeAlias)=','No\x20alias\x20set','inbound','push','CDR(routeid)=','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','CDR(type)=outbound','outbound','NoOp','CDR(destination)=','${EXTEN:','cutdigits','${EXTEN}','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','outboundrouteid=','hasOwnProperty','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','trunk','timeout','url','split','length','name','param','phone','prefix','join','options','indexOf','U(xcally-mixmonitor-context)','isEmpty','findAll','interval','then','intervals','map','filter','IntervalId','toLowerCase','tag','CDR(tag)=','ExecIf','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):','callerID','Set(CALLERID(all)=','NoOp(No\x20number\x20available)','answer'];(function(_0x879e31,_0x139d02){var _0x3467e8=function(_0x544fc6){while(--_0x544fc6){_0x879e31['push'](_0x879e31['shift']());}};_0x3467e8(++_0x139d02);}(_0x3b2b,0x64));var _0xb3b2=function(_0x20c9b2,_0x55d7b1){_0x20c9b2=_0x20c9b2-0x0;var _0x2c6030=_0x3b2b[_0x20c9b2];return _0x2c6030;};'use strict';var _=require(_0xb3b2('0x0'));var attributes=require(_0xb3b2('0x1'));module['exports']=function(_0xf70a0d){var _0x342f90=_0xf70a0d[_0xb3b2('0x2')];function _0x218282(_0x83ffbd){var _0x2f382f=0x2;var _0x1aaf04=[{'type':_0x83ffbd[_0xb3b2('0x3')],'app':_0xb3b2('0x4'),'appdata':_0xb3b2('0x5')+_0x83ffbd[_0xb3b2('0x3')],'context':_0x83ffbd[_0xb3b2('0x6')],'exten':_0x83ffbd[_0xb3b2('0x7')],'priority':_0x2f382f++,'VoiceExtensionId':_0x83ffbd['id']},{'type':_0x83ffbd[_0xb3b2('0x3')],'app':_0x83ffbd[_0xb3b2('0x8')]?_0xb3b2('0x4'):'NoOp','appdata':_0x83ffbd[_0xb3b2('0x8')]?_0xb3b2('0x9')+_0x83ffbd[_0xb3b2('0x8')]:_0xb3b2('0xa'),'context':_0x83ffbd[_0xb3b2('0x6')],'exten':_0x83ffbd['exten'],'priority':_0x2f382f++,'VoiceExtensionId':_0x83ffbd['id']}];if(_0x83ffbd[_0xb3b2('0x3')]===_0xb3b2('0xb')){_0x1aaf04[_0xb3b2('0xc')]({'type':'inbound','app':'Set','appdata':_0xb3b2('0xd')+_0x83ffbd['id'],'context':_0x83ffbd[_0xb3b2('0x6')],'exten':_0x83ffbd[_0xb3b2('0x7')],'priority':_0x2f382f++,'VoiceExtensionId':_0x83ffbd['id']});}_0x1aaf04['push']({'type':_0x83ffbd['type'],'app':_0xb3b2('0x4'),'appdata':_0xb3b2('0xe'),'context':_0x83ffbd[_0xb3b2('0x6')],'exten':_0x83ffbd[_0xb3b2('0x7')],'priority':_0x2f382f++,'VoiceExtensionId':_0x83ffbd['id']},{'type':_0x83ffbd[_0xb3b2('0x3')],'app':_0xb3b2('0x4'),'appdata':_0xb3b2('0xf'),'context':_0x83ffbd['context'],'exten':_0x83ffbd['exten'],'priority':_0x2f382f++,'VoiceExtensionId':_0x83ffbd['id']},{'type':_0x83ffbd[_0xb3b2('0x3')],'app':'Set','appdata':_0xb3b2('0x10'),'context':_0x83ffbd[_0xb3b2('0x6')],'exten':_0x83ffbd[_0xb3b2('0x7')],'priority':_0x2f382f++,'VoiceExtensionId':_0x83ffbd['id']});return _0x1aaf04;}function _0x11396a(_0x80fd16){var _0x2f0e7f=0x2;var _0x57ee49=[{'type':'outbound','app':_0xb3b2('0x4'),'appdata':_0xb3b2('0x11'),'context':_0x80fd16['context'],'exten':_0x80fd16[_0xb3b2('0x7')],'priority':_0x2f0e7f++,'VoiceExtensionId':_0x80fd16['id']},{'type':_0xb3b2('0x12'),'app':_0x80fd16[_0xb3b2('0x8')]?_0xb3b2('0x4'):_0xb3b2('0x13'),'appdata':_0x80fd16['alias']?'CDR(routeAlias)='+_0x80fd16['alias']:_0xb3b2('0xa'),'context':_0x80fd16[_0xb3b2('0x6')],'exten':_0x80fd16['exten'],'priority':_0x2f0e7f++,'VoiceExtensionId':_0x80fd16['id']},{'type':_0xb3b2('0x12'),'app':'Set','appdata':_0xb3b2('0x14')+(_0x80fd16['cutdigits']?_0xb3b2('0x15')+_0x80fd16[_0xb3b2('0x16')]+'}':_0xb3b2('0x17')),'context':_0x80fd16[_0xb3b2('0x6')],'exten':_0x80fd16[_0xb3b2('0x7')],'priority':_0x2f0e7f++,'VoiceExtensionId':_0x80fd16['id']},{'type':_0xb3b2('0x12'),'app':_0xb3b2('0x4'),'appdata':_0xb3b2('0xd')+_0x80fd16['id'],'context':_0x80fd16[_0xb3b2('0x6')],'exten':_0x80fd16['exten'],'priority':_0x2f0e7f++,'VoiceExtensionId':_0x80fd16['id']},{'type':'outbound','app':'ExecIf','appdata':_0xb3b2('0x18')+(_0x2f0e7f+0x2)+'):Goto('+(_0x2f0e7f+0x1)+')','context':_0x80fd16['context'],'exten':_0x80fd16[_0xb3b2('0x7')],'priority':_0x2f0e7f++,'VoiceExtensionId':_0x80fd16['id']},{'type':'outbound','app':_0xb3b2('0x4'),'appdata':_0x80fd16[_0xb3b2('0x16')]?'CDR(prefix)=${EXTEN:0:'+_0x80fd16[_0xb3b2('0x16')]+'}':'CDR(prefix)=noprefix','context':_0x80fd16[_0xb3b2('0x6')],'exten':_0x80fd16[_0xb3b2('0x7')],'priority':_0x2f0e7f++,'VoiceExtensionId':_0x80fd16['id']},{'type':_0xb3b2('0x12'),'app':_0xb3b2('0x4'),'appdata':'XCALLY-MOTION-ANSWER=0','context':_0x80fd16[_0xb3b2('0x6')],'exten':_0x80fd16[_0xb3b2('0x7')],'priority':_0x2f0e7f++,'VoiceExtensionId':_0x80fd16['id']},{'type':_0xb3b2('0x12'),'app':'Set','appdata':_0xb3b2('0xf'),'context':_0x80fd16['context'],'exten':_0x80fd16[_0xb3b2('0x7')],'priority':_0x2f0e7f++,'VoiceExtensionId':_0x80fd16['id']},{'type':_0xb3b2('0x12'),'app':_0xb3b2('0x4'),'appdata':_0xb3b2('0x10'),'context':_0x80fd16[_0xb3b2('0x6')],'exten':_0x80fd16[_0xb3b2('0x7')],'priority':_0x2f0e7f++,'VoiceExtensionId':_0x80fd16['id']},{'type':_0xb3b2('0x12'),'app':_0xb3b2('0x4'),'appdata':_0xb3b2('0x19')+_0x80fd16['id'],'context':_0x80fd16[_0xb3b2('0x6')],'exten':_0x80fd16['exten'],'priority':_0x2f0e7f++,'VoiceExtensionId':_0x80fd16['id']}];if(_0x80fd16[_0xb3b2('0x1a')](_0xb3b2('0x1b'))&&_0x80fd16[_0xb3b2('0x1b')]!==_0xb3b2('0x1c')){_0x57ee49[_0xb3b2('0xc')]({'type':_0xb3b2('0x12'),'app':_0xb3b2('0x4'),'appdata':_0xb3b2('0x1d'),'context':_0x80fd16[_0xb3b2('0x6')],'exten':_0x80fd16[_0xb3b2('0x7')],'priority':_0x2f0e7f++,'VoiceExtensionId':_0x80fd16['id']},{'type':_0xb3b2('0x12'),'app':_0xb3b2('0x4'),'appdata':'_XCALLY_MIXMONITOR_FORMAT='+_0x80fd16[_0xb3b2('0x1b')]||'wav','context':_0x80fd16[_0xb3b2('0x6')],'exten':_0x80fd16['exten'],'priority':_0x2f0e7f++,'VoiceExtensionId':_0x80fd16['id']});}return _0x57ee49;}function _0x23331f(_0x478c85,_0x3aa8c4){var _0x3763ea=[{'name':_0xb3b2('0x1e'),'param':0x0},{'name':_0xb3b2('0x1f'),'param':0x1},{'name':'options','param':0x2},{'name':_0xb3b2('0x20'),'param':0x3}];var _0x22c137={};var _0x579293=_0x3aa8c4[_0xb3b2('0x21')](',');var _0xabed40=[];for(var _0xbbeff9=0x0;_0xbbeff9<_0x3763ea[_0xb3b2('0x22')];_0xbbeff9++){switch(_0x3763ea[_0xbbeff9][_0xb3b2('0x23')]){case _0xb3b2('0x1e'):_0x22c137[_0xb3b2('0x1e')]=_0x579293[_0x3763ea[_0xbbeff9][_0xb3b2('0x24')]][_0xb3b2('0x21')]('/')[0x1];_0x22c137[_0xb3b2('0x25')]=_0x579293[_0x3763ea[_0xbbeff9]['param']][_0xb3b2('0x21')]('/')[0x2];_0x22c137['prefix']=_0x22c137[_0xb3b2('0x25')]?_0x22c137[_0xb3b2('0x25')][_0xb3b2('0x21')]('$')[0x0]:undefined;_0x22c137[_0xb3b2('0x25')]=_0x478c85[_0xb3b2('0x16')]?(_0x22c137[_0xb3b2('0x26')]||'')+_0xb3b2('0x15')+_0x478c85[_0xb3b2('0x16')]+'}':(_0x22c137[_0xb3b2('0x26')]||'')+_0xb3b2('0x17');_0xabed40[_0x3763ea[_0xbbeff9]['param']]=['SIP',_0x22c137[_0xb3b2('0x1e')],_0x22c137[_0xb3b2('0x25')]][_0xb3b2('0x27')]('/');break;case _0xb3b2('0x28'):_0x22c137[_0xb3b2('0x28')]=_0x579293[_0x3763ea[_0xbbeff9][_0xb3b2('0x24')]];if(_0x478c85[_0xb3b2('0x1b')]!=='none'){if(_0x22c137[_0xb3b2('0x28')][_0xb3b2('0x29')]('U(xcally-mixmonitor-context)')<0x0){_0x22c137['options']+=_0xb3b2('0x2a');}}else{_0x22c137[_0xb3b2('0x28')]=_0x22c137[_0xb3b2('0x28')]['replace'](_0xb3b2('0x2a'),'');}_0xabed40[_0x3763ea[_0xbbeff9][_0xb3b2('0x24')]]=_0x22c137[_0xb3b2('0x28')];break;default:_0xabed40[_0x3763ea[_0xbbeff9][_0xb3b2('0x24')]]=_0x579293[_0x3763ea[_0xbbeff9][_0xb3b2('0x24')]];}}return _0xabed40['join'](',');}function _0x4215e2(_0xbb2bdb,_0x7f126b,_0x970872){return new Promise(function(_0x588514,_0x4e1225){var _0x8446e3=[];if(_[_0xb3b2('0x2b')](_0x7f126b))return _0x588514(_0x8446e3);_0x342f90['Interval'][_0xb3b2('0x2c')]({'attributes':['id',_0xb3b2('0x2d'),'IntervalId'],'raw':!![]})[_0xb3b2('0x2e')](function(_0x17d715){for(var _0x1eedb7=0x0,_0x5e12d0=0x0;_0x1eedb7<_0x7f126b[_0xb3b2('0x22')];_0x1eedb7++,_0x5e12d0=0x0){var _0x161173=_0x7f126b[_0x1eedb7];var _0x2b9a5b=[];var _0x482073=[];delete _0x161173['id'];if(_0x161173[_0xb3b2('0x2d')]!=='*,*,*,*'){_0x161173[_0xb3b2('0x2f')]=[_0x161173[_0xb3b2('0x2d')]];}else{_0x161173[_0xb3b2('0x2f')]=_0x161173['IntervalId']?_[_0xb3b2('0x30')](_[_0xb3b2('0x31')](_0x17d715,{'IntervalId':_0x161173[_0xb3b2('0x32')]}),'interval'):[];}_0x161173[_0xb3b2('0x6')]=_0xbb2bdb[_0xb3b2('0x6')];_0x161173[_0xb3b2('0x7')]=_0xbb2bdb[_0xb3b2('0x7')];if(_0x161173['type'])_0x161173['type']=_0x161173['type'][_0xb3b2('0x33')]();if(_0xbb2bdb[_0xb3b2('0x3')]===_0xb3b2('0x12')){if(_0x161173['hasOwnProperty'](_0xb3b2('0x34'))&&_0x161173[_0xb3b2('0x34')]&&_0x161173[_0xb3b2('0x34')]!=='--'){_0x2b9a5b['push']({'type':_0x161173['type'][_0xb3b2('0x33')](),'app':_0xb3b2('0x4'),'appdata':_0xb3b2('0x35')+_0x161173[_0xb3b2('0x34')],'context':_0xbb2bdb[_0xb3b2('0x6')],'exten':_0xbb2bdb[_0xb3b2('0x7')],'priority':_0x161173[_0xb3b2('0x2f')]['length']+_0x970872+_0x5e12d0++,'VoiceExtensionId':_0xbb2bdb['id']});}_0x2b9a5b[_0xb3b2('0xc')]({'type':_0x161173[_0xb3b2('0x3')][_0xb3b2('0x33')](),'app':_0xb3b2('0x36'),'appdata':_0xb3b2('0x37')+(_0x161173[_0xb3b2('0x38')]?_0xb3b2('0x39')+_0x161173[_0xb3b2('0x38')]+')':_0xb3b2('0x3a')),'context':_0xbb2bdb['context'],'exten':_0xbb2bdb[_0xb3b2('0x7')],'priority':_0x161173[_0xb3b2('0x2f')][_0xb3b2('0x22')]+_0x970872+_0x5e12d0++,'VoiceExtensionId':_0xbb2bdb['id']});}else{if(_0x161173[_0xb3b2('0x1a')](_0xb3b2('0x3b'))){if([_0xb3b2('0x3c'),_0xb3b2('0x3d')][_0xb3b2('0x3e')](_0x161173[_0xb3b2('0x3f')]['toLowerCase']())&&_0x161173[_0xb3b2('0x40')]!==_0xb3b2('0x41')){if(_0x161173[_0xb3b2('0x3b')]){_0x2b9a5b[_0xb3b2('0xc')]({'type':_0x161173['type'][_0xb3b2('0x33')](),'app':'ExecIf','appdata':'$[${XCALLY-MOTION-ANSWER}=0]?Answer','context':_0xbb2bdb[_0xb3b2('0x6')],'exten':_0xbb2bdb[_0xb3b2('0x7')],'priority':_0x161173[_0xb3b2('0x2f')][_0xb3b2('0x22')]+_0x970872+_0x5e12d0++,'VoiceExtensionId':_0xbb2bdb['id']});_0x2b9a5b[_0xb3b2('0xc')]({'type':_0x161173[_0xb3b2('0x3')][_0xb3b2('0x33')](),'app':_0xb3b2('0x4'),'appdata':_0xb3b2('0x42'),'context':_0xbb2bdb[_0xb3b2('0x6')],'exten':_0xbb2bdb[_0xb3b2('0x7')],'priority':_0x161173[_0xb3b2('0x2f')][_0xb3b2('0x22')]+_0x970872+_0x5e12d0++,'VoiceExtensionId':_0xbb2bdb['id']});}else{_0x2b9a5b[_0xb3b2('0xc')]({'type':_0x161173['type'][_0xb3b2('0x33')](),'app':_0xb3b2('0x36'),'appdata':_0xb3b2('0x43'),'context':_0xbb2bdb[_0xb3b2('0x6')],'exten':_0xbb2bdb[_0xb3b2('0x7')],'priority':_0x161173[_0xb3b2('0x2f')][_0xb3b2('0x22')]+_0x970872+_0x5e12d0++,'VoiceExtensionId':_0xbb2bdb['id']});_0x2b9a5b[_0xb3b2('0xc')]({'type':_0x161173[_0xb3b2('0x3')][_0xb3b2('0x33')](),'app':_0xb3b2('0x4'),'appdata':'XCALLY-MOTION-PROGRESS=1','context':_0xbb2bdb['context'],'exten':_0xbb2bdb[_0xb3b2('0x7')],'priority':_0x161173[_0xb3b2('0x2f')][_0xb3b2('0x22')]+_0x970872+_0x5e12d0++,'VoiceExtensionId':_0xbb2bdb['id']});}}}}for(var _0x438a40=0x0;_0x438a40<_0x161173[_0xb3b2('0x2f')]['length'];_0x438a40++){var _0x4eca42=_0x970872+_0x161173[_0xb3b2('0x2f')]['length'];var _0x42d2ca=_0x438a40===_0x161173[_0xb3b2('0x2f')][_0xb3b2('0x22')]-0x1?_0x970872+_0x2b9a5b['length']+_0x482073[_0xb3b2('0x22')]+0x2:_0x970872+_0x438a40+0x1;_0x2b9a5b[_0xb3b2('0x44')](_0x438a40,0x0,{'type':_0xbb2bdb[_0xb3b2('0x3')],'app':_0xb3b2('0x45'),'appdata':_0x161173[_0xb3b2('0x2f')][_0x438a40]+'?'+_0xbb2bdb[_0xb3b2('0x6')]+_0xb3b2('0x46')+_0x4eca42+':'+_0xbb2bdb[_0xb3b2('0x6')]+_0xb3b2('0x46')+_0x42d2ca,'exten':_0xbb2bdb[_0xb3b2('0x7')],'context':_0xbb2bdb[_0xb3b2('0x6')],'priority':_0x970872+_0x438a40,'VoiceExtensionId':_0xbb2bdb['id']});}if(_0x161173['appType']==='outboundDial'){_0x161173['appdata']=_0x23331f(_0xbb2bdb,_0x161173[_0xb3b2('0x47')]);}if(_0x161173[_0xb3b2('0x40')]==='agi'){_0x2b9a5b['push']({'type':_0x161173[_0xb3b2('0x3')][_0xb3b2('0x33')](),'app':'Set','appdata':_0xb3b2('0x48'),'context':_0xbb2bdb[_0xb3b2('0x6')],'exten':_0xbb2bdb[_0xb3b2('0x7')],'priority':_0x161173[_0xb3b2('0x2f')][_0xb3b2('0x22')]+_0x970872+_0x5e12d0++,'VoiceExtensionId':_0xbb2bdb['id']});}_0x161173[_0xb3b2('0x49')]=_0x2b9a5b[_0xb3b2('0x22')]?_['last'](_0x2b9a5b)[_0xb3b2('0x49')]+0x1:_0x970872;_0x8446e3=_['concat'](_0x8446e3,_0x2b9a5b,[_0x161173],_0x482073);_0x970872=_[_0xb3b2('0x4a')](_0x8446e3)['priority']+0x1;}return _0x588514(_0x8446e3);})[_0xb3b2('0x4b')](function(_0x4203ec){_0x4e1225(_0x4203ec);});});}return _0xf70a0d['define'](_0xb3b2('0x4c'),attributes,{'tableName':_0xb3b2('0x4d'),'paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x177a9c){var _0x246855=this[_0xb3b2('0x4e')]({'plain':!![]});var _0x201b48=_0x246855[_0xb3b2('0x3')]==='outbound'?_0x11396a(_0x246855):_0x218282(_0x246855);return _0x4215e2(_0x246855,_0x177a9c,_[_0xb3b2('0x4a')](_0x201b48)[_0xb3b2('0x49')]+0x1)[_0xb3b2('0x2e')](function(_0x1a931f){var _0x4a394b=_['concat'](_0x201b48,_0x1a931f);_0x4a394b[_0xb3b2('0xc')]({'type':_0x246855[_0xb3b2('0x3')],'app':_0xb3b2('0x4f'),'exten':_0x246855[_0xb3b2('0x7')],'context':_0x246855[_0xb3b2('0x6')],'priority':_[_0xb3b2('0x4a')](_0x4a394b)['priority']+0x1,'VoiceExtensionId':_0x246855['id']});return _0x4a394b;});}}});};