78f694a9a6cf83f372d26ca39402e7692ba928a1
[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 _0x1c15=['last','concat','catch','define','VoiceExtension','get','Hangup','lodash','./voiceExtension.attributes','exports','type','CDR(type)=','context','exten','Set','NoOp','alias','No\x20alias\x20set','inbound','push','CDR(routeid)=','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','outbound','CDR(type)=outbound','CDR(routeAlias)=','CDR(destination)=','cutdigits','${EXTEN:','${EXTEN}','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','outboundrouteid=','hasOwnProperty','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','wav','timeout','options','url','split','length','trunk','param','phone','prefix','indexOf','U(xcally-mixmonitor-context)','replace','join','Interval','findAll','interval','IntervalId','then','*,*,*,*','intervals','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','playback','appType','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-PROGRESS=1','splice','GotoIfTime',',${EXTEN},','appdata','XMCS-UNIQUEID=${CHANNEL(LINKEDID)}','priority'];(function(_0x287e8a,_0x18204b){var _0x20dada=function(_0x394f12){while(--_0x394f12){_0x287e8a['push'](_0x287e8a['shift']());}};_0x20dada(++_0x18204b);}(_0x1c15,0x1a6));var _0x51c1=function(_0x44d5a6,_0x37e14a){_0x44d5a6=_0x44d5a6-0x0;var _0x1d793b=_0x1c15[_0x44d5a6];return _0x1d793b;};'use strict';var _=require(_0x51c1('0x0'));var attributes=require(_0x51c1('0x1'));module[_0x51c1('0x2')]=function(_0x3ef65a){var _0x5352b4=_0x3ef65a['models'];function _0x2921d6(_0x25de5b){var _0x4f26f1=0x2;var _0x38985a=[{'type':_0x25de5b[_0x51c1('0x3')],'app':'Set','appdata':_0x51c1('0x4')+_0x25de5b['type'],'context':_0x25de5b[_0x51c1('0x5')],'exten':_0x25de5b[_0x51c1('0x6')],'priority':_0x4f26f1++,'VoiceExtensionId':_0x25de5b['id']},{'type':_0x25de5b[_0x51c1('0x3')],'app':_0x25de5b['alias']?_0x51c1('0x7'):_0x51c1('0x8'),'appdata':_0x25de5b[_0x51c1('0x9')]?'CDR(routeAlias)='+_0x25de5b['alias']:_0x51c1('0xa'),'context':_0x25de5b[_0x51c1('0x5')],'exten':_0x25de5b[_0x51c1('0x6')],'priority':_0x4f26f1++,'VoiceExtensionId':_0x25de5b['id']}];if(_0x25de5b['type']===_0x51c1('0xb')){_0x38985a[_0x51c1('0xc')]({'type':_0x51c1('0xb'),'app':'Set','appdata':_0x51c1('0xd')+_0x25de5b['id'],'context':_0x25de5b[_0x51c1('0x5')],'exten':_0x25de5b[_0x51c1('0x6')],'priority':_0x4f26f1++,'VoiceExtensionId':_0x25de5b['id']});}_0x38985a[_0x51c1('0xc')]({'type':_0x25de5b[_0x51c1('0x3')],'app':_0x51c1('0x7'),'appdata':_0x51c1('0xe'),'context':_0x25de5b[_0x51c1('0x5')],'exten':_0x25de5b['exten'],'priority':_0x4f26f1++,'VoiceExtensionId':_0x25de5b['id']},{'type':_0x25de5b[_0x51c1('0x3')],'app':_0x51c1('0x7'),'appdata':_0x51c1('0xf'),'context':_0x25de5b[_0x51c1('0x5')],'exten':_0x25de5b[_0x51c1('0x6')],'priority':_0x4f26f1++,'VoiceExtensionId':_0x25de5b['id']},{'type':_0x25de5b[_0x51c1('0x3')],'app':_0x51c1('0x7'),'appdata':_0x51c1('0x10'),'context':_0x25de5b[_0x51c1('0x5')],'exten':_0x25de5b['exten'],'priority':_0x4f26f1++,'VoiceExtensionId':_0x25de5b['id']});return _0x38985a;}function _0x223de4(_0x1a4e00){var _0x15e9e8=0x2;var _0x97f626=[{'type':_0x51c1('0x11'),'app':_0x51c1('0x7'),'appdata':_0x51c1('0x12'),'context':_0x1a4e00[_0x51c1('0x5')],'exten':_0x1a4e00['exten'],'priority':_0x15e9e8++,'VoiceExtensionId':_0x1a4e00['id']},{'type':_0x51c1('0x11'),'app':_0x1a4e00[_0x51c1('0x9')]?_0x51c1('0x7'):_0x51c1('0x8'),'appdata':_0x1a4e00['alias']?_0x51c1('0x13')+_0x1a4e00[_0x51c1('0x9')]:_0x51c1('0xa'),'context':_0x1a4e00['context'],'exten':_0x1a4e00[_0x51c1('0x6')],'priority':_0x15e9e8++,'VoiceExtensionId':_0x1a4e00['id']},{'type':_0x51c1('0x11'),'app':_0x51c1('0x7'),'appdata':_0x51c1('0x14')+(_0x1a4e00[_0x51c1('0x15')]?_0x51c1('0x16')+_0x1a4e00['cutdigits']+'}':_0x51c1('0x17')),'context':_0x1a4e00['context'],'exten':_0x1a4e00[_0x51c1('0x6')],'priority':_0x15e9e8++,'VoiceExtensionId':_0x1a4e00['id']},{'type':_0x51c1('0x11'),'app':_0x51c1('0x7'),'appdata':_0x51c1('0xd')+_0x1a4e00['id'],'context':_0x1a4e00[_0x51c1('0x5')],'exten':_0x1a4e00[_0x51c1('0x6')],'priority':_0x15e9e8++,'VoiceExtensionId':_0x1a4e00['id']},{'type':'outbound','app':_0x51c1('0x18'),'appdata':_0x51c1('0x19')+(_0x15e9e8+0x2)+'):Goto('+(_0x15e9e8+0x1)+')','context':_0x1a4e00['context'],'exten':_0x1a4e00[_0x51c1('0x6')],'priority':_0x15e9e8++,'VoiceExtensionId':_0x1a4e00['id']},{'type':_0x51c1('0x11'),'app':_0x51c1('0x7'),'appdata':_0x1a4e00[_0x51c1('0x15')]?_0x51c1('0x1a')+_0x1a4e00[_0x51c1('0x15')]+'}':_0x51c1('0x1b'),'context':_0x1a4e00[_0x51c1('0x5')],'exten':_0x1a4e00['exten'],'priority':_0x15e9e8++,'VoiceExtensionId':_0x1a4e00['id']},{'type':_0x51c1('0x11'),'app':'Set','appdata':'XCALLY-MOTION-ANSWER=0','context':_0x1a4e00[_0x51c1('0x5')],'exten':_0x1a4e00['exten'],'priority':_0x15e9e8++,'VoiceExtensionId':_0x1a4e00['id']},{'type':_0x51c1('0x11'),'app':_0x51c1('0x7'),'appdata':'XCALLY-MOTION-PROGRESS=0','context':_0x1a4e00[_0x51c1('0x5')],'exten':_0x1a4e00[_0x51c1('0x6')],'priority':_0x15e9e8++,'VoiceExtensionId':_0x1a4e00['id']},{'type':_0x51c1('0x11'),'app':_0x51c1('0x7'),'appdata':'MONITOR_OPTIONS=ab','context':_0x1a4e00['context'],'exten':_0x1a4e00[_0x51c1('0x6')],'priority':_0x15e9e8++,'VoiceExtensionId':_0x1a4e00['id']},{'type':_0x51c1('0x11'),'app':_0x51c1('0x7'),'appdata':_0x51c1('0x1c')+_0x1a4e00['id'],'context':_0x1a4e00[_0x51c1('0x5')],'exten':_0x1a4e00['exten'],'priority':_0x15e9e8++,'VoiceExtensionId':_0x1a4e00['id']}];if(_0x1a4e00[_0x51c1('0x1d')](_0x51c1('0x1e'))&&_0x1a4e00[_0x51c1('0x1e')]!==_0x51c1('0x1f')){_0x97f626[_0x51c1('0xc')]({'type':'outbound','app':_0x51c1('0x7'),'appdata':_0x51c1('0x20'),'context':_0x1a4e00[_0x51c1('0x5')],'exten':_0x1a4e00['exten'],'priority':_0x15e9e8++,'VoiceExtensionId':_0x1a4e00['id']},{'type':_0x51c1('0x11'),'app':_0x51c1('0x7'),'appdata':_0x51c1('0x21')+_0x1a4e00['recordingFormat']||_0x51c1('0x22'),'context':_0x1a4e00[_0x51c1('0x5')],'exten':_0x1a4e00[_0x51c1('0x6')],'priority':_0x15e9e8++,'VoiceExtensionId':_0x1a4e00['id']});}return _0x97f626;}function _0x13fe4d(_0x251a76,_0x19703f){var _0xa68615=[{'name':'trunk','param':0x0},{'name':_0x51c1('0x23'),'param':0x1},{'name':_0x51c1('0x24'),'param':0x2},{'name':_0x51c1('0x25'),'param':0x3}];var _0x3fc9fd={};var _0x4f0aa4=_0x19703f[_0x51c1('0x26')](',');var _0x407ca8=[];for(var _0x12d7ba=0x0;_0x12d7ba<_0xa68615[_0x51c1('0x27')];_0x12d7ba++){switch(_0xa68615[_0x12d7ba]['name']){case _0x51c1('0x28'):_0x3fc9fd[_0x51c1('0x28')]=_0x4f0aa4[_0xa68615[_0x12d7ba][_0x51c1('0x29')]][_0x51c1('0x26')]('/')[0x1];_0x3fc9fd[_0x51c1('0x2a')]=_0x4f0aa4[_0xa68615[_0x12d7ba][_0x51c1('0x29')]]['split']('/')[0x2];_0x3fc9fd[_0x51c1('0x2b')]=_0x3fc9fd[_0x51c1('0x2a')]?_0x3fc9fd[_0x51c1('0x2a')][_0x51c1('0x26')]('$')[0x0]:undefined;_0x3fc9fd['phone']=_0x251a76['cutdigits']?(_0x3fc9fd[_0x51c1('0x2b')]||'')+'${EXTEN:'+_0x251a76[_0x51c1('0x15')]+'}':(_0x3fc9fd[_0x51c1('0x2b')]||'')+_0x51c1('0x17');_0x407ca8[_0xa68615[_0x12d7ba][_0x51c1('0x29')]]=['SIP',_0x3fc9fd[_0x51c1('0x28')],_0x3fc9fd[_0x51c1('0x2a')]]['join']('/');break;case _0x51c1('0x24'):_0x3fc9fd['options']=_0x4f0aa4[_0xa68615[_0x12d7ba]['param']];if(_0x251a76[_0x51c1('0x1e')]!=='none'){if(_0x3fc9fd['options'][_0x51c1('0x2c')](_0x51c1('0x2d'))<0x0){_0x3fc9fd[_0x51c1('0x24')]+=_0x51c1('0x2d');}}else{_0x3fc9fd['options']=_0x3fc9fd[_0x51c1('0x24')][_0x51c1('0x2e')](_0x51c1('0x2d'),'');}_0x407ca8[_0xa68615[_0x12d7ba][_0x51c1('0x29')]]=_0x3fc9fd[_0x51c1('0x24')];break;default:_0x407ca8[_0xa68615[_0x12d7ba][_0x51c1('0x29')]]=_0x4f0aa4[_0xa68615[_0x12d7ba][_0x51c1('0x29')]];}}return _0x407ca8[_0x51c1('0x2f')](',');}function _0x5bcf65(_0x51ea77,_0x4959ff,_0xf6c6b){return new Promise(function(_0x5956eb,_0x508ad1){var _0x5ccb69=[];if(_['isEmpty'](_0x4959ff))return _0x5956eb(_0x5ccb69);_0x5352b4[_0x51c1('0x30')][_0x51c1('0x31')]({'attributes':['id',_0x51c1('0x32'),_0x51c1('0x33')],'raw':!![]})[_0x51c1('0x34')](function(_0x4cadda){for(var _0x5d0ca5=0x0,_0x5e96e9=0x0;_0x5d0ca5<_0x4959ff['length'];_0x5d0ca5++,_0x5e96e9=0x0){var _0x1abb97=_0x4959ff[_0x5d0ca5];var _0x4023e5=[];var _0x4bc2e4=[];delete _0x1abb97['id'];if(_0x1abb97[_0x51c1('0x32')]!==_0x51c1('0x35')){_0x1abb97[_0x51c1('0x36')]=[_0x1abb97[_0x51c1('0x32')]];}else{_0x1abb97[_0x51c1('0x36')]=_0x1abb97['IntervalId']?_[_0x51c1('0x37')](_[_0x51c1('0x38')](_0x4cadda,{'IntervalId':_0x1abb97[_0x51c1('0x33')]}),_0x51c1('0x32')):[];}_0x1abb97[_0x51c1('0x5')]=_0x51ea77['context'];_0x1abb97[_0x51c1('0x6')]=_0x51ea77[_0x51c1('0x6')];if(_0x1abb97[_0x51c1('0x3')])_0x1abb97[_0x51c1('0x3')]=_0x1abb97[_0x51c1('0x3')][_0x51c1('0x39')]();if(_0x51ea77[_0x51c1('0x3')]===_0x51c1('0x11')){if(_0x1abb97[_0x51c1('0x1d')]('tag')&&_0x1abb97[_0x51c1('0x3a')]&&_0x1abb97[_0x51c1('0x3a')]!=='--'){_0x4023e5[_0x51c1('0xc')]({'type':_0x1abb97[_0x51c1('0x3')][_0x51c1('0x39')](),'app':_0x51c1('0x7'),'appdata':_0x51c1('0x3b')+_0x1abb97[_0x51c1('0x3a')],'context':_0x51ea77[_0x51c1('0x5')],'exten':_0x51ea77[_0x51c1('0x6')],'priority':_0x1abb97[_0x51c1('0x36')][_0x51c1('0x27')]+_0xf6c6b+_0x5e96e9++,'VoiceExtensionId':_0x51ea77['id']});}_0x4023e5[_0x51c1('0xc')]({'type':_0x1abb97[_0x51c1('0x3')][_0x51c1('0x39')](),'app':_0x51c1('0x18'),'appdata':_0x51c1('0x3c')+(_0x1abb97[_0x51c1('0x3d')]?_0x51c1('0x3e')+_0x1abb97[_0x51c1('0x3d')]+')':_0x51c1('0x3f')),'context':_0x51ea77['context'],'exten':_0x51ea77[_0x51c1('0x6')],'priority':_0x1abb97[_0x51c1('0x36')]['length']+_0xf6c6b+_0x5e96e9++,'VoiceExtensionId':_0x51ea77['id']});}else{if(_0x1abb97[_0x51c1('0x1d')](_0x51c1('0x40'))){if(['queue',_0x51c1('0x41')]['includes'](_0x1abb97['app'][_0x51c1('0x39')]())&&_0x1abb97[_0x51c1('0x42')]!==_0x51c1('0x43')){if(_0x1abb97[_0x51c1('0x40')]){_0x4023e5[_0x51c1('0xc')]({'type':_0x1abb97[_0x51c1('0x3')]['toLowerCase'](),'app':_0x51c1('0x18'),'appdata':_0x51c1('0x44'),'context':_0x51ea77['context'],'exten':_0x51ea77[_0x51c1('0x6')],'priority':_0x1abb97[_0x51c1('0x36')][_0x51c1('0x27')]+_0xf6c6b+_0x5e96e9++,'VoiceExtensionId':_0x51ea77['id']});_0x4023e5[_0x51c1('0xc')]({'type':_0x1abb97['type']['toLowerCase'](),'app':_0x51c1('0x7'),'appdata':'XCALLY-MOTION-ANSWER=1','context':_0x51ea77[_0x51c1('0x5')],'exten':_0x51ea77[_0x51c1('0x6')],'priority':_0x1abb97['intervals']['length']+_0xf6c6b+_0x5e96e9++,'VoiceExtensionId':_0x51ea77['id']});}else{_0x4023e5['push']({'type':_0x1abb97[_0x51c1('0x3')][_0x51c1('0x39')](),'app':'ExecIf','appdata':'$[${XCALLY-MOTION-PROGRESS}=0]?Progress','context':_0x51ea77[_0x51c1('0x5')],'exten':_0x51ea77[_0x51c1('0x6')],'priority':_0x1abb97[_0x51c1('0x36')][_0x51c1('0x27')]+_0xf6c6b+_0x5e96e9++,'VoiceExtensionId':_0x51ea77['id']});_0x4023e5[_0x51c1('0xc')]({'type':_0x1abb97[_0x51c1('0x3')][_0x51c1('0x39')](),'app':_0x51c1('0x7'),'appdata':_0x51c1('0x45'),'context':_0x51ea77[_0x51c1('0x5')],'exten':_0x51ea77['exten'],'priority':_0x1abb97['intervals'][_0x51c1('0x27')]+_0xf6c6b+_0x5e96e9++,'VoiceExtensionId':_0x51ea77['id']});}}}}for(var _0x452c7a=0x0;_0x452c7a<_0x1abb97[_0x51c1('0x36')][_0x51c1('0x27')];_0x452c7a++){var _0x20020d=_0xf6c6b+_0x1abb97[_0x51c1('0x36')]['length'];var _0x538c91=_0x452c7a===_0x1abb97[_0x51c1('0x36')]['length']-0x1?_0xf6c6b+_0x4023e5[_0x51c1('0x27')]+_0x4bc2e4[_0x51c1('0x27')]+0x2:_0xf6c6b+_0x452c7a+0x1;_0x4023e5[_0x51c1('0x46')](_0x452c7a,0x0,{'type':_0x51ea77[_0x51c1('0x3')],'app':_0x51c1('0x47'),'appdata':_0x1abb97[_0x51c1('0x36')][_0x452c7a]+'?'+_0x51ea77['context']+_0x51c1('0x48')+_0x20020d+':'+_0x51ea77[_0x51c1('0x5')]+_0x51c1('0x48')+_0x538c91,'exten':_0x51ea77[_0x51c1('0x6')],'context':_0x51ea77[_0x51c1('0x5')],'priority':_0xf6c6b+_0x452c7a,'VoiceExtensionId':_0x51ea77['id']});}if(_0x1abb97['appType']==='outboundDial'){_0x1abb97[_0x51c1('0x49')]=_0x13fe4d(_0x51ea77,_0x1abb97[_0x51c1('0x49')]);}if(_0x1abb97[_0x51c1('0x42')]==='agi'){_0x4023e5[_0x51c1('0xc')]({'type':_0x1abb97[_0x51c1('0x3')][_0x51c1('0x39')](),'app':_0x51c1('0x7'),'appdata':_0x51c1('0x4a'),'context':_0x51ea77[_0x51c1('0x5')],'exten':_0x51ea77['exten'],'priority':_0x1abb97[_0x51c1('0x36')][_0x51c1('0x27')]+_0xf6c6b+_0x5e96e9++,'VoiceExtensionId':_0x51ea77['id']});}_0x1abb97[_0x51c1('0x4b')]=_0x4023e5[_0x51c1('0x27')]?_[_0x51c1('0x4c')](_0x4023e5)[_0x51c1('0x4b')]+0x1:_0xf6c6b;_0x5ccb69=_[_0x51c1('0x4d')](_0x5ccb69,_0x4023e5,[_0x1abb97],_0x4bc2e4);_0xf6c6b=_[_0x51c1('0x4c')](_0x5ccb69)[_0x51c1('0x4b')]+0x1;}return _0x5956eb(_0x5ccb69);})[_0x51c1('0x4e')](function(_0x1cd3da){_0x508ad1(_0x1cd3da);});});}return _0x3ef65a[_0x51c1('0x4f')](_0x51c1('0x50'),attributes,{'tableName':'voice_extensions','paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x321743){var _0x21ffc4=this[_0x51c1('0x51')]({'plain':!![]});var _0x494ab6=_0x21ffc4[_0x51c1('0x3')]===_0x51c1('0x11')?_0x223de4(_0x21ffc4):_0x2921d6(_0x21ffc4);return _0x5bcf65(_0x21ffc4,_0x321743,_[_0x51c1('0x4c')](_0x494ab6)[_0x51c1('0x4b')]+0x1)[_0x51c1('0x34')](function(_0x4fb5f2){var _0x4bf6fc=_[_0x51c1('0x4d')](_0x494ab6,_0x4fb5f2);_0x4bf6fc[_0x51c1('0xc')]({'type':_0x21ffc4[_0x51c1('0x3')],'app':_0x51c1('0x52'),'exten':_0x21ffc4[_0x51c1('0x6')],'context':_0x21ffc4[_0x51c1('0x5')],'priority':_['last'](_0x4bf6fc)[_0x51c1('0x4b')]+0x1,'VoiceExtensionId':_0x21ffc4['id']});return _0x4bf6fc;});}}});};