Built motion from commit f7863d46.|2.5.41
[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 _0x7f27=['$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=noprefix','outboundrouteid=','hasOwnProperty','none','_XCALLY_MIXMONITOR_FORMAT=','recordingFormat','wav','trunk','timeout','options','url','split','phone','param','prefix','SIP','join','indexOf','U(xcally-mixmonitor-context)','replace','isEmpty','Interval','findAll','interval','IntervalId','then','length','*,*,*,*','intervals','map','filter','toLowerCase','tag','CDR(tag)=','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):','callerID','NoOp(No\x20number\x20available)','answer','playback','includes','app','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1',',${EXTEN},','appType','outboundDial','appdata','priority','catch','define','VoiceExtension','voice_extensions','get','Hangup','lodash','./voiceExtension.attributes','Set','type','context','alias','NoOp','CDR(routeAlias)=','No\x20alias\x20set','exten','inbound','push','CDR(routeid)=','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','outbound','CDR(destination)=','${EXTEN:','cutdigits','${EXTEN}','ExecIf'];(function(_0x8ba19a,_0x1d2b2b){var _0x2bd8b4=function(_0xee823f){while(--_0xee823f){_0x8ba19a['push'](_0x8ba19a['shift']());}};_0x2bd8b4(++_0x1d2b2b);}(_0x7f27,0x12e));var _0x77f2=function(_0x4210c2,_0x55cbda){_0x4210c2=_0x4210c2-0x0;var _0x3f00d6=_0x7f27[_0x4210c2];return _0x3f00d6;};'use strict';var _=require(_0x77f2('0x0'));var attributes=require(_0x77f2('0x1'));module['exports']=function(_0x51a70c){var _0x247b55=_0x51a70c['models'];function _0x526d89(_0x142ad7){var _0x2bde11=0x2;var _0x276e49=[{'type':_0x142ad7['type'],'app':_0x77f2('0x2'),'appdata':'CDR(type)='+_0x142ad7[_0x77f2('0x3')],'context':_0x142ad7[_0x77f2('0x4')],'exten':_0x142ad7['exten'],'priority':_0x2bde11++,'VoiceExtensionId':_0x142ad7['id']},{'type':_0x142ad7[_0x77f2('0x3')],'app':_0x142ad7[_0x77f2('0x5')]?_0x77f2('0x2'):_0x77f2('0x6'),'appdata':_0x142ad7['alias']?_0x77f2('0x7')+_0x142ad7[_0x77f2('0x5')]:_0x77f2('0x8'),'context':_0x142ad7[_0x77f2('0x4')],'exten':_0x142ad7[_0x77f2('0x9')],'priority':_0x2bde11++,'VoiceExtensionId':_0x142ad7['id']}];if(_0x142ad7[_0x77f2('0x3')]===_0x77f2('0xa')){_0x276e49[_0x77f2('0xb')]({'type':_0x77f2('0xa'),'app':'Set','appdata':_0x77f2('0xc')+_0x142ad7['id'],'context':_0x142ad7['context'],'exten':_0x142ad7['exten'],'priority':_0x2bde11++,'VoiceExtensionId':_0x142ad7['id']});}_0x276e49[_0x77f2('0xb')]({'type':_0x142ad7[_0x77f2('0x3')],'app':_0x77f2('0x2'),'appdata':_0x77f2('0xd'),'context':_0x142ad7[_0x77f2('0x4')],'exten':_0x142ad7[_0x77f2('0x9')],'priority':_0x2bde11++,'VoiceExtensionId':_0x142ad7['id']},{'type':_0x142ad7['type'],'app':_0x77f2('0x2'),'appdata':_0x77f2('0xe'),'context':_0x142ad7[_0x77f2('0x4')],'exten':_0x142ad7[_0x77f2('0x9')],'priority':_0x2bde11++,'VoiceExtensionId':_0x142ad7['id']},{'type':_0x142ad7[_0x77f2('0x3')],'app':_0x77f2('0x2'),'appdata':_0x77f2('0xf'),'context':_0x142ad7[_0x77f2('0x4')],'exten':_0x142ad7[_0x77f2('0x9')],'priority':_0x2bde11++,'VoiceExtensionId':_0x142ad7['id']});return _0x276e49;}function _0x58f6dd(_0x2a8fe7){var _0x528f02=0x2;var _0x1a63a0=[{'type':_0x77f2('0x10'),'app':_0x77f2('0x2'),'appdata':'CDR(type)=outbound','context':_0x2a8fe7[_0x77f2('0x4')],'exten':_0x2a8fe7[_0x77f2('0x9')],'priority':_0x528f02++,'VoiceExtensionId':_0x2a8fe7['id']},{'type':_0x77f2('0x10'),'app':_0x2a8fe7[_0x77f2('0x5')]?_0x77f2('0x2'):_0x77f2('0x6'),'appdata':_0x2a8fe7[_0x77f2('0x5')]?_0x77f2('0x7')+_0x2a8fe7[_0x77f2('0x5')]:_0x77f2('0x8'),'context':_0x2a8fe7[_0x77f2('0x4')],'exten':_0x2a8fe7[_0x77f2('0x9')],'priority':_0x528f02++,'VoiceExtensionId':_0x2a8fe7['id']},{'type':_0x77f2('0x10'),'app':_0x77f2('0x2'),'appdata':_0x77f2('0x11')+(_0x2a8fe7['cutdigits']?_0x77f2('0x12')+_0x2a8fe7[_0x77f2('0x13')]+'}':_0x77f2('0x14')),'context':_0x2a8fe7[_0x77f2('0x4')],'exten':_0x2a8fe7[_0x77f2('0x9')],'priority':_0x528f02++,'VoiceExtensionId':_0x2a8fe7['id']},{'type':'outbound','app':_0x77f2('0x2'),'appdata':_0x77f2('0xc')+_0x2a8fe7['id'],'context':_0x2a8fe7[_0x77f2('0x4')],'exten':_0x2a8fe7[_0x77f2('0x9')],'priority':_0x528f02++,'VoiceExtensionId':_0x2a8fe7['id']},{'type':_0x77f2('0x10'),'app':_0x77f2('0x15'),'appdata':_0x77f2('0x16')+(_0x528f02+0x2)+_0x77f2('0x17')+(_0x528f02+0x1)+')','context':_0x2a8fe7['context'],'exten':_0x2a8fe7[_0x77f2('0x9')],'priority':_0x528f02++,'VoiceExtensionId':_0x2a8fe7['id']},{'type':_0x77f2('0x10'),'app':_0x77f2('0x2'),'appdata':_0x2a8fe7[_0x77f2('0x13')]?'CDR(prefix)=${EXTEN:0:'+_0x2a8fe7[_0x77f2('0x13')]+'}':_0x77f2('0x18'),'context':_0x2a8fe7[_0x77f2('0x4')],'exten':_0x2a8fe7[_0x77f2('0x9')],'priority':_0x528f02++,'VoiceExtensionId':_0x2a8fe7['id']},{'type':_0x77f2('0x10'),'app':'Set','appdata':'XCALLY-MOTION-ANSWER=0','context':_0x2a8fe7['context'],'exten':_0x2a8fe7[_0x77f2('0x9')],'priority':_0x528f02++,'VoiceExtensionId':_0x2a8fe7['id']},{'type':'outbound','app':_0x77f2('0x2'),'appdata':_0x77f2('0xe'),'context':_0x2a8fe7[_0x77f2('0x4')],'exten':_0x2a8fe7[_0x77f2('0x9')],'priority':_0x528f02++,'VoiceExtensionId':_0x2a8fe7['id']},{'type':'outbound','app':'Set','appdata':_0x77f2('0xf'),'context':_0x2a8fe7['context'],'exten':_0x2a8fe7[_0x77f2('0x9')],'priority':_0x528f02++,'VoiceExtensionId':_0x2a8fe7['id']},{'type':_0x77f2('0x10'),'app':_0x77f2('0x2'),'appdata':_0x77f2('0x19')+_0x2a8fe7['id'],'context':_0x2a8fe7[_0x77f2('0x4')],'exten':_0x2a8fe7[_0x77f2('0x9')],'priority':_0x528f02++,'VoiceExtensionId':_0x2a8fe7['id']}];if(_0x2a8fe7[_0x77f2('0x1a')]('recordingFormat')&&_0x2a8fe7['recordingFormat']!==_0x77f2('0x1b')){_0x1a63a0[_0x77f2('0xb')]({'type':'outbound','app':_0x77f2('0x2'),'appdata':'_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','context':_0x2a8fe7[_0x77f2('0x4')],'exten':_0x2a8fe7['exten'],'priority':_0x528f02++,'VoiceExtensionId':_0x2a8fe7['id']},{'type':'outbound','app':'Set','appdata':_0x77f2('0x1c')+_0x2a8fe7[_0x77f2('0x1d')]||_0x77f2('0x1e'),'context':_0x2a8fe7['context'],'exten':_0x2a8fe7[_0x77f2('0x9')],'priority':_0x528f02++,'VoiceExtensionId':_0x2a8fe7['id']});}return _0x1a63a0;}function _0x4160b6(_0x4cf368,_0x495ecf){var _0x3822a2=[{'name':_0x77f2('0x1f'),'param':0x0},{'name':_0x77f2('0x20'),'param':0x1},{'name':_0x77f2('0x21'),'param':0x2},{'name':_0x77f2('0x22'),'param':0x3}];var _0x3cb65c={};var _0x26d406=_0x495ecf[_0x77f2('0x23')](',');var _0xde504=[];for(var _0x5098cb=0x0;_0x5098cb<_0x3822a2['length'];_0x5098cb++){switch(_0x3822a2[_0x5098cb]['name']){case _0x77f2('0x1f'):_0x3cb65c[_0x77f2('0x1f')]=_0x26d406[_0x3822a2[_0x5098cb]['param']][_0x77f2('0x23')]('/')[0x1];_0x3cb65c[_0x77f2('0x24')]=_0x26d406[_0x3822a2[_0x5098cb][_0x77f2('0x25')]][_0x77f2('0x23')]('/')[0x2];_0x3cb65c[_0x77f2('0x26')]=_0x3cb65c[_0x77f2('0x24')]?_0x3cb65c[_0x77f2('0x24')][_0x77f2('0x23')]('$')[0x0]:undefined;_0x3cb65c[_0x77f2('0x24')]=_0x4cf368[_0x77f2('0x13')]?(_0x3cb65c[_0x77f2('0x26')]||'')+_0x77f2('0x12')+_0x4cf368['cutdigits']+'}':(_0x3cb65c['prefix']||'')+_0x77f2('0x14');_0xde504[_0x3822a2[_0x5098cb][_0x77f2('0x25')]]=[_0x77f2('0x27'),_0x3cb65c['trunk'],_0x3cb65c[_0x77f2('0x24')]][_0x77f2('0x28')]('/');break;case _0x77f2('0x21'):_0x3cb65c['options']=_0x26d406[_0x3822a2[_0x5098cb][_0x77f2('0x25')]];if(_0x4cf368[_0x77f2('0x1d')]!==_0x77f2('0x1b')){if(_0x3cb65c[_0x77f2('0x21')][_0x77f2('0x29')](_0x77f2('0x2a'))<0x0){_0x3cb65c[_0x77f2('0x21')]+=_0x77f2('0x2a');}}else{_0x3cb65c[_0x77f2('0x21')]=_0x3cb65c[_0x77f2('0x21')][_0x77f2('0x2b')]('U(xcally-mixmonitor-context)','');}_0xde504[_0x3822a2[_0x5098cb]['param']]=_0x3cb65c[_0x77f2('0x21')];break;default:_0xde504[_0x3822a2[_0x5098cb][_0x77f2('0x25')]]=_0x26d406[_0x3822a2[_0x5098cb][_0x77f2('0x25')]];}}return _0xde504[_0x77f2('0x28')](',');}function _0x1c1df3(_0x4045ab,_0x4604b5,_0x4fdf97){return new Promise(function(_0x351cc0,_0x2aa65b){var _0x272be0=[];if(_[_0x77f2('0x2c')](_0x4604b5))return _0x351cc0(_0x272be0);_0x247b55[_0x77f2('0x2d')][_0x77f2('0x2e')]({'attributes':['id',_0x77f2('0x2f'),_0x77f2('0x30')],'raw':!![]})[_0x77f2('0x31')](function(_0x5d58c4){for(var _0x241e0c=0x0,_0xfa5e07=0x0;_0x241e0c<_0x4604b5[_0x77f2('0x32')];_0x241e0c++,_0xfa5e07=0x0){var _0x2fe9d6=_0x4604b5[_0x241e0c];var _0x26dcdd=[];var _0x41322e=[];delete _0x2fe9d6['id'];if(_0x2fe9d6[_0x77f2('0x2f')]!==_0x77f2('0x33')){_0x2fe9d6[_0x77f2('0x34')]=[_0x2fe9d6[_0x77f2('0x2f')]];}else{_0x2fe9d6[_0x77f2('0x34')]=_0x2fe9d6[_0x77f2('0x30')]?_[_0x77f2('0x35')](_[_0x77f2('0x36')](_0x5d58c4,{'IntervalId':_0x2fe9d6[_0x77f2('0x30')]}),'interval'):[];}_0x2fe9d6[_0x77f2('0x4')]=_0x4045ab[_0x77f2('0x4')];_0x2fe9d6[_0x77f2('0x9')]=_0x4045ab[_0x77f2('0x9')];if(_0x2fe9d6['type'])_0x2fe9d6[_0x77f2('0x3')]=_0x2fe9d6[_0x77f2('0x3')][_0x77f2('0x37')]();if(_0x4045ab['type']===_0x77f2('0x10')){if(_0x2fe9d6[_0x77f2('0x1a')](_0x77f2('0x38'))&&_0x2fe9d6[_0x77f2('0x38')]&&_0x2fe9d6[_0x77f2('0x38')]!=='--'){_0x26dcdd[_0x77f2('0xb')]({'type':_0x2fe9d6[_0x77f2('0x3')]['toLowerCase'](),'app':'Set','appdata':_0x77f2('0x39')+_0x2fe9d6[_0x77f2('0x38')],'context':_0x4045ab[_0x77f2('0x4')],'exten':_0x4045ab[_0x77f2('0x9')],'priority':_0x2fe9d6[_0x77f2('0x34')][_0x77f2('0x32')]+_0x4fdf97+_0xfa5e07++,'VoiceExtensionId':_0x4045ab['id']});}_0x26dcdd[_0x77f2('0xb')]({'type':_0x2fe9d6['type'][_0x77f2('0x37')](),'app':_0x77f2('0x15'),'appdata':_0x77f2('0x3a')+(_0x2fe9d6['callerID']?'Set(CALLERID(all)='+_0x2fe9d6[_0x77f2('0x3b')]+')':_0x77f2('0x3c')),'context':_0x4045ab['context'],'exten':_0x4045ab[_0x77f2('0x9')],'priority':_0x2fe9d6[_0x77f2('0x34')][_0x77f2('0x32')]+_0x4fdf97+_0xfa5e07++,'VoiceExtensionId':_0x4045ab['id']});}else{if(_0x2fe9d6[_0x77f2('0x1a')](_0x77f2('0x3d'))){if(['queue',_0x77f2('0x3e')][_0x77f2('0x3f')](_0x2fe9d6[_0x77f2('0x40')]['toLowerCase']())&&_0x2fe9d6['appType']!==_0x77f2('0x41')){if(_0x2fe9d6['answer']){_0x26dcdd[_0x77f2('0xb')]({'type':_0x2fe9d6[_0x77f2('0x3')][_0x77f2('0x37')](),'app':'ExecIf','appdata':_0x77f2('0x42'),'context':_0x4045ab['context'],'exten':_0x4045ab[_0x77f2('0x9')],'priority':_0x2fe9d6[_0x77f2('0x34')]['length']+_0x4fdf97+_0xfa5e07++,'VoiceExtensionId':_0x4045ab['id']});_0x26dcdd[_0x77f2('0xb')]({'type':_0x2fe9d6[_0x77f2('0x3')][_0x77f2('0x37')](),'app':_0x77f2('0x2'),'appdata':_0x77f2('0x43'),'context':_0x4045ab[_0x77f2('0x4')],'exten':_0x4045ab[_0x77f2('0x9')],'priority':_0x2fe9d6['intervals']['length']+_0x4fdf97+_0xfa5e07++,'VoiceExtensionId':_0x4045ab['id']});}else{_0x26dcdd[_0x77f2('0xb')]({'type':_0x2fe9d6[_0x77f2('0x3')]['toLowerCase'](),'app':_0x77f2('0x15'),'appdata':_0x77f2('0x44'),'context':_0x4045ab[_0x77f2('0x4')],'exten':_0x4045ab[_0x77f2('0x9')],'priority':_0x2fe9d6[_0x77f2('0x34')]['length']+_0x4fdf97+_0xfa5e07++,'VoiceExtensionId':_0x4045ab['id']});_0x26dcdd['push']({'type':_0x2fe9d6[_0x77f2('0x3')][_0x77f2('0x37')](),'app':_0x77f2('0x2'),'appdata':_0x77f2('0x45'),'context':_0x4045ab[_0x77f2('0x4')],'exten':_0x4045ab['exten'],'priority':_0x2fe9d6[_0x77f2('0x34')]['length']+_0x4fdf97+_0xfa5e07++,'VoiceExtensionId':_0x4045ab['id']});}}}}for(var _0xbbc53f=0x0;_0xbbc53f<_0x2fe9d6['intervals']['length'];_0xbbc53f++){var _0x567915=_0x4fdf97+_0x2fe9d6[_0x77f2('0x34')][_0x77f2('0x32')];var _0x91df8f=_0xbbc53f===_0x2fe9d6[_0x77f2('0x34')][_0x77f2('0x32')]-0x1?_0x4fdf97+_0x26dcdd[_0x77f2('0x32')]+_0x41322e['length']+0x2:_0x4fdf97+_0xbbc53f+0x1;_0x26dcdd['splice'](_0xbbc53f,0x0,{'type':_0x4045ab[_0x77f2('0x3')],'app':'GotoIfTime','appdata':_0x2fe9d6[_0x77f2('0x34')][_0xbbc53f]+'?'+_0x4045ab[_0x77f2('0x4')]+_0x77f2('0x46')+_0x567915+':'+_0x4045ab['context']+_0x77f2('0x46')+_0x91df8f,'exten':_0x4045ab['exten'],'context':_0x4045ab[_0x77f2('0x4')],'priority':_0x4fdf97+_0xbbc53f,'VoiceExtensionId':_0x4045ab['id']});}if(_0x2fe9d6[_0x77f2('0x47')]===_0x77f2('0x48'))_0x2fe9d6['appdata']=_0x4160b6(_0x4045ab,_0x2fe9d6[_0x77f2('0x49')]);_0x2fe9d6[_0x77f2('0x4a')]=_0x26dcdd[_0x77f2('0x32')]?_['last'](_0x26dcdd)[_0x77f2('0x4a')]+0x1:_0x4fdf97;_0x272be0=_['concat'](_0x272be0,_0x26dcdd,[_0x2fe9d6],_0x41322e);_0x4fdf97=_['last'](_0x272be0)[_0x77f2('0x4a')]+0x1;}return _0x351cc0(_0x272be0);})[_0x77f2('0x4b')](function(_0x5a9bef){_0x2aa65b(_0x5a9bef);});});}return _0x51a70c[_0x77f2('0x4c')](_0x77f2('0x4d'),attributes,{'tableName':_0x77f2('0x4e'),'paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x1559b4){var _0x33f705=this[_0x77f2('0x4f')]({'plain':!![]});var _0x55da1d=_0x33f705['type']===_0x77f2('0x10')?_0x58f6dd(_0x33f705):_0x526d89(_0x33f705);return _0x1c1df3(_0x33f705,_0x1559b4,_['last'](_0x55da1d)[_0x77f2('0x4a')]+0x1)[_0x77f2('0x31')](function(_0x5728be){var _0x321f14=_['concat'](_0x55da1d,_0x5728be);_0x321f14[_0x77f2('0xb')]({'type':_0x33f705[_0x77f2('0x3')],'app':_0x77f2('0x50'),'exten':_0x33f705[_0x77f2('0x9')],'context':_0x33f705[_0x77f2('0x4')],'priority':_['last'](_0x321f14)[_0x77f2('0x4a')]+0x1,'VoiceExtensionId':_0x33f705['id']});return _0x321f14;});}}});};