Built motion from commit 9d0783e6.|2.6.13
[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 _0xd9ef=['alias','NoOp','CDR(routeAlias)=','push','inbound','CDR(routeid)=','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','outbound','CDR(type)=outbound','No\x20alias\x20set','CDR(destination)=','cutdigits','${EXTEN:','${EXTEN}','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','MONITOR_OPTIONS=ab','hasOwnProperty','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','wav','options','url','length','name','trunk','param','prefix','phone','split','SIP','join','indexOf','U(xcally-mixmonitor-context)','replace','isEmpty','Interval','then','interval','IntervalId','filter','toLowerCase','tag','CDR(tag)=','intervals','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):','Set(CALLERID(all)=','NoOp(No\x20number\x20available)','answer','queue','app','appType','custom','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','splice','GotoIfTime',',${EXTEN},','outboundDial','appdata','priority','concat','last','define','VoiceExtension','voice_extensions','get','Hangup','lodash','./voiceExtension.attributes','type','Set','CDR(type)=','context','exten'];(function(_0x4a114a,_0x60443){var _0x3d5bcd=function(_0x6f868a){while(--_0x6f868a){_0x4a114a['push'](_0x4a114a['shift']());}};_0x3d5bcd(++_0x60443);}(_0xd9ef,0x95));var _0xfd9e=function(_0x345349,_0x874cd2){_0x345349=_0x345349-0x0;var _0x1de32f=_0xd9ef[_0x345349];return _0x1de32f;};'use strict';var _=require(_0xfd9e('0x0'));var attributes=require(_0xfd9e('0x1'));module['exports']=function(_0x1e4dfc){var _0x55d1e2=_0x1e4dfc['models'];function _0x505f7f(_0xdce9ae){var _0x28cfac=0x2;var _0xe6990b=[{'type':_0xdce9ae[_0xfd9e('0x2')],'app':_0xfd9e('0x3'),'appdata':_0xfd9e('0x4')+_0xdce9ae[_0xfd9e('0x2')],'context':_0xdce9ae[_0xfd9e('0x5')],'exten':_0xdce9ae[_0xfd9e('0x6')],'priority':_0x28cfac++,'VoiceExtensionId':_0xdce9ae['id']},{'type':_0xdce9ae[_0xfd9e('0x2')],'app':_0xdce9ae[_0xfd9e('0x7')]?_0xfd9e('0x3'):_0xfd9e('0x8'),'appdata':_0xdce9ae['alias']?_0xfd9e('0x9')+_0xdce9ae[_0xfd9e('0x7')]:'No\x20alias\x20set','context':_0xdce9ae[_0xfd9e('0x5')],'exten':_0xdce9ae[_0xfd9e('0x6')],'priority':_0x28cfac++,'VoiceExtensionId':_0xdce9ae['id']}];if(_0xdce9ae[_0xfd9e('0x2')]==='inbound'){_0xe6990b[_0xfd9e('0xa')]({'type':_0xfd9e('0xb'),'app':_0xfd9e('0x3'),'appdata':_0xfd9e('0xc')+_0xdce9ae['id'],'context':_0xdce9ae[_0xfd9e('0x5')],'exten':_0xdce9ae['exten'],'priority':_0x28cfac++,'VoiceExtensionId':_0xdce9ae['id']});}_0xe6990b[_0xfd9e('0xa')]({'type':_0xdce9ae[_0xfd9e('0x2')],'app':_0xfd9e('0x3'),'appdata':_0xfd9e('0xd'),'context':_0xdce9ae[_0xfd9e('0x5')],'exten':_0xdce9ae[_0xfd9e('0x6')],'priority':_0x28cfac++,'VoiceExtensionId':_0xdce9ae['id']},{'type':_0xdce9ae[_0xfd9e('0x2')],'app':_0xfd9e('0x3'),'appdata':_0xfd9e('0xe'),'context':_0xdce9ae[_0xfd9e('0x5')],'exten':_0xdce9ae['exten'],'priority':_0x28cfac++,'VoiceExtensionId':_0xdce9ae['id']},{'type':_0xdce9ae[_0xfd9e('0x2')],'app':'Set','appdata':'MONITOR_OPTIONS=ab','context':_0xdce9ae[_0xfd9e('0x5')],'exten':_0xdce9ae[_0xfd9e('0x6')],'priority':_0x28cfac++,'VoiceExtensionId':_0xdce9ae['id']});return _0xe6990b;}function _0x144372(_0x4d605a){var _0x3c329e=0x2;var _0xee091f=[{'type':_0xfd9e('0xf'),'app':_0xfd9e('0x3'),'appdata':_0xfd9e('0x10'),'context':_0x4d605a[_0xfd9e('0x5')],'exten':_0x4d605a[_0xfd9e('0x6')],'priority':_0x3c329e++,'VoiceExtensionId':_0x4d605a['id']},{'type':'outbound','app':_0x4d605a[_0xfd9e('0x7')]?_0xfd9e('0x3'):_0xfd9e('0x8'),'appdata':_0x4d605a[_0xfd9e('0x7')]?_0xfd9e('0x9')+_0x4d605a[_0xfd9e('0x7')]:_0xfd9e('0x11'),'context':_0x4d605a[_0xfd9e('0x5')],'exten':_0x4d605a[_0xfd9e('0x6')],'priority':_0x3c329e++,'VoiceExtensionId':_0x4d605a['id']},{'type':_0xfd9e('0xf'),'app':'Set','appdata':_0xfd9e('0x12')+(_0x4d605a[_0xfd9e('0x13')]?_0xfd9e('0x14')+_0x4d605a[_0xfd9e('0x13')]+'}':_0xfd9e('0x15')),'context':_0x4d605a['context'],'exten':_0x4d605a[_0xfd9e('0x6')],'priority':_0x3c329e++,'VoiceExtensionId':_0x4d605a['id']},{'type':_0xfd9e('0xf'),'app':'Set','appdata':'CDR(routeid)='+_0x4d605a['id'],'context':_0x4d605a[_0xfd9e('0x5')],'exten':_0x4d605a[_0xfd9e('0x6')],'priority':_0x3c329e++,'VoiceExtensionId':_0x4d605a['id']},{'type':_0xfd9e('0xf'),'app':_0xfd9e('0x16'),'appdata':_0xfd9e('0x17')+(_0x3c329e+0x2)+'):Goto('+(_0x3c329e+0x1)+')','context':_0x4d605a[_0xfd9e('0x5')],'exten':_0x4d605a[_0xfd9e('0x6')],'priority':_0x3c329e++,'VoiceExtensionId':_0x4d605a['id']},{'type':_0xfd9e('0xf'),'app':_0xfd9e('0x3'),'appdata':_0x4d605a[_0xfd9e('0x13')]?'CDR(prefix)=${EXTEN:0:'+_0x4d605a['cutdigits']+'}':'CDR(prefix)=noprefix','context':_0x4d605a[_0xfd9e('0x5')],'exten':_0x4d605a['exten'],'priority':_0x3c329e++,'VoiceExtensionId':_0x4d605a['id']},{'type':'outbound','app':_0xfd9e('0x3'),'appdata':_0xfd9e('0xd'),'context':_0x4d605a['context'],'exten':_0x4d605a[_0xfd9e('0x6')],'priority':_0x3c329e++,'VoiceExtensionId':_0x4d605a['id']},{'type':_0xfd9e('0xf'),'app':_0xfd9e('0x3'),'appdata':_0xfd9e('0xe'),'context':_0x4d605a['context'],'exten':_0x4d605a['exten'],'priority':_0x3c329e++,'VoiceExtensionId':_0x4d605a['id']},{'type':_0xfd9e('0xf'),'app':_0xfd9e('0x3'),'appdata':_0xfd9e('0x18'),'context':_0x4d605a[_0xfd9e('0x5')],'exten':_0x4d605a['exten'],'priority':_0x3c329e++,'VoiceExtensionId':_0x4d605a['id']},{'type':_0xfd9e('0xf'),'app':_0xfd9e('0x3'),'appdata':'outboundrouteid='+_0x4d605a['id'],'context':_0x4d605a['context'],'exten':_0x4d605a[_0xfd9e('0x6')],'priority':_0x3c329e++,'VoiceExtensionId':_0x4d605a['id']}];if(_0x4d605a[_0xfd9e('0x19')](_0xfd9e('0x1a'))&&_0x4d605a[_0xfd9e('0x1a')]!==_0xfd9e('0x1b')){_0xee091f[_0xfd9e('0xa')]({'type':_0xfd9e('0xf'),'app':_0xfd9e('0x3'),'appdata':_0xfd9e('0x1c'),'context':_0x4d605a['context'],'exten':_0x4d605a[_0xfd9e('0x6')],'priority':_0x3c329e++,'VoiceExtensionId':_0x4d605a['id']},{'type':_0xfd9e('0xf'),'app':_0xfd9e('0x3'),'appdata':_0xfd9e('0x1d')+_0x4d605a[_0xfd9e('0x1a')]||_0xfd9e('0x1e'),'context':_0x4d605a[_0xfd9e('0x5')],'exten':_0x4d605a[_0xfd9e('0x6')],'priority':_0x3c329e++,'VoiceExtensionId':_0x4d605a['id']});}return _0xee091f;}function _0xfdac9f(_0x124282,_0xa21478){var _0x4ab28c=[{'name':'trunk','param':0x0},{'name':'timeout','param':0x1},{'name':_0xfd9e('0x1f'),'param':0x2},{'name':_0xfd9e('0x20'),'param':0x3}];var _0x56422f={};var _0x4b0b5b=_0xa21478['split'](',');var _0x12a42f=[];for(var _0x1fdd36=0x0;_0x1fdd36<_0x4ab28c[_0xfd9e('0x21')];_0x1fdd36++){switch(_0x4ab28c[_0x1fdd36][_0xfd9e('0x22')]){case _0xfd9e('0x23'):_0x56422f[_0xfd9e('0x23')]=_0x4b0b5b[_0x4ab28c[_0x1fdd36][_0xfd9e('0x24')]]['split']('/')[0x1];_0x56422f['phone']=_0x4b0b5b[_0x4ab28c[_0x1fdd36][_0xfd9e('0x24')]]['split']('/')[0x2];_0x56422f[_0xfd9e('0x25')]=_0x56422f[_0xfd9e('0x26')]?_0x56422f[_0xfd9e('0x26')][_0xfd9e('0x27')]('$')[0x0]:undefined;_0x56422f[_0xfd9e('0x26')]=_0x124282[_0xfd9e('0x13')]?(_0x56422f['prefix']||'')+'${EXTEN:'+_0x124282[_0xfd9e('0x13')]+'}':(_0x56422f['prefix']||'')+_0xfd9e('0x15');_0x12a42f[_0x4ab28c[_0x1fdd36][_0xfd9e('0x24')]]=[_0xfd9e('0x28'),_0x56422f[_0xfd9e('0x23')],_0x56422f[_0xfd9e('0x26')]][_0xfd9e('0x29')]('/');break;case _0xfd9e('0x1f'):_0x56422f[_0xfd9e('0x1f')]=_0x4b0b5b[_0x4ab28c[_0x1fdd36][_0xfd9e('0x24')]];if(_0x124282[_0xfd9e('0x1a')]!==_0xfd9e('0x1b')){if(_0x56422f['options'][_0xfd9e('0x2a')](_0xfd9e('0x2b'))<0x0){_0x56422f[_0xfd9e('0x1f')]+=_0xfd9e('0x2b');}}else{_0x56422f[_0xfd9e('0x1f')]=_0x56422f[_0xfd9e('0x1f')][_0xfd9e('0x2c')](_0xfd9e('0x2b'),'');}_0x12a42f[_0x4ab28c[_0x1fdd36][_0xfd9e('0x24')]]=_0x56422f[_0xfd9e('0x1f')];break;default:_0x12a42f[_0x4ab28c[_0x1fdd36][_0xfd9e('0x24')]]=_0x4b0b5b[_0x4ab28c[_0x1fdd36][_0xfd9e('0x24')]];}}return _0x12a42f[_0xfd9e('0x29')](',');}function _0x4324ff(_0x176e45,_0x243abf,_0x212205){return new Promise(function(_0x2ad5d7,_0x176be7){var _0x44fb81=[];if(_[_0xfd9e('0x2d')](_0x243abf))return _0x2ad5d7(_0x44fb81);_0x55d1e2[_0xfd9e('0x2e')]['findAll']({'attributes':['id','interval','IntervalId'],'raw':!![]})[_0xfd9e('0x2f')](function(_0x2ec245){for(var _0x442621=0x0,_0x4220d4=0x0;_0x442621<_0x243abf['length'];_0x442621++,_0x4220d4=0x0){var _0x5965fb=_0x243abf[_0x442621];var _0x225036=[];var _0x104d06=[];delete _0x5965fb['id'];if(_0x5965fb['interval']!=='*,*,*,*'){_0x5965fb['intervals']=[_0x5965fb[_0xfd9e('0x30')]];}else{_0x5965fb['intervals']=_0x5965fb[_0xfd9e('0x31')]?_['map'](_[_0xfd9e('0x32')](_0x2ec245,{'IntervalId':_0x5965fb[_0xfd9e('0x31')]}),_0xfd9e('0x30')):[];}_0x5965fb[_0xfd9e('0x5')]=_0x176e45['context'];_0x5965fb[_0xfd9e('0x6')]=_0x176e45[_0xfd9e('0x6')];if(_0x5965fb[_0xfd9e('0x2')])_0x5965fb['type']=_0x5965fb[_0xfd9e('0x2')][_0xfd9e('0x33')]();if(_0x176e45[_0xfd9e('0x2')]===_0xfd9e('0xf')){if(_0x5965fb[_0xfd9e('0x19')](_0xfd9e('0x34'))&&_0x5965fb[_0xfd9e('0x34')]&&_0x5965fb[_0xfd9e('0x34')]!=='--'){_0x225036[_0xfd9e('0xa')]({'type':_0x5965fb[_0xfd9e('0x2')][_0xfd9e('0x33')](),'app':_0xfd9e('0x3'),'appdata':_0xfd9e('0x35')+_0x5965fb[_0xfd9e('0x34')],'context':_0x176e45[_0xfd9e('0x5')],'exten':_0x176e45[_0xfd9e('0x6')],'priority':_0x5965fb[_0xfd9e('0x36')][_0xfd9e('0x21')]+_0x212205+_0x4220d4++,'VoiceExtensionId':_0x176e45['id']});}_0x225036[_0xfd9e('0xa')]({'type':_0x5965fb[_0xfd9e('0x2')]['toLowerCase'](),'app':_0xfd9e('0x16'),'appdata':_0xfd9e('0x37')+(_0x5965fb['callerID']?_0xfd9e('0x38')+_0x5965fb['callerID']+')':_0xfd9e('0x39')),'context':_0x176e45[_0xfd9e('0x5')],'exten':_0x176e45[_0xfd9e('0x6')],'priority':_0x5965fb[_0xfd9e('0x36')][_0xfd9e('0x21')]+_0x212205+_0x4220d4++,'VoiceExtensionId':_0x176e45['id']});}else{if(_0x5965fb['hasOwnProperty'](_0xfd9e('0x3a'))){if([_0xfd9e('0x3b'),'playback']['includes'](_0x5965fb[_0xfd9e('0x3c')][_0xfd9e('0x33')]())&&_0x5965fb[_0xfd9e('0x3d')]!==_0xfd9e('0x3e')){if(_0x5965fb['answer']){_0x225036[_0xfd9e('0xa')]({'type':_0x5965fb[_0xfd9e('0x2')][_0xfd9e('0x33')](),'app':_0xfd9e('0x16'),'appdata':'$[${XCALLY-MOTION-ANSWER}=0]?Answer','context':_0x176e45[_0xfd9e('0x5')],'exten':_0x176e45[_0xfd9e('0x6')],'priority':_0x5965fb[_0xfd9e('0x36')]['length']+_0x212205+_0x4220d4++,'VoiceExtensionId':_0x176e45['id']});_0x225036[_0xfd9e('0xa')]({'type':_0x5965fb[_0xfd9e('0x2')]['toLowerCase'](),'app':_0xfd9e('0x3'),'appdata':_0xfd9e('0x3f'),'context':_0x176e45[_0xfd9e('0x5')],'exten':_0x176e45[_0xfd9e('0x6')],'priority':_0x5965fb[_0xfd9e('0x36')][_0xfd9e('0x21')]+_0x212205+_0x4220d4++,'VoiceExtensionId':_0x176e45['id']});}else{_0x225036[_0xfd9e('0xa')]({'type':_0x5965fb[_0xfd9e('0x2')][_0xfd9e('0x33')](),'app':_0xfd9e('0x16'),'appdata':_0xfd9e('0x40'),'context':_0x176e45[_0xfd9e('0x5')],'exten':_0x176e45['exten'],'priority':_0x5965fb['intervals'][_0xfd9e('0x21')]+_0x212205+_0x4220d4++,'VoiceExtensionId':_0x176e45['id']});_0x225036[_0xfd9e('0xa')]({'type':_0x5965fb[_0xfd9e('0x2')][_0xfd9e('0x33')](),'app':_0xfd9e('0x3'),'appdata':'XCALLY-MOTION-PROGRESS=1','context':_0x176e45['context'],'exten':_0x176e45['exten'],'priority':_0x5965fb['intervals'][_0xfd9e('0x21')]+_0x212205+_0x4220d4++,'VoiceExtensionId':_0x176e45['id']});}}}}for(var _0x3ab92c=0x0;_0x3ab92c<_0x5965fb[_0xfd9e('0x36')][_0xfd9e('0x21')];_0x3ab92c++){var _0x2fb211=_0x212205+_0x5965fb['intervals'][_0xfd9e('0x21')];var _0x51b8a4=_0x3ab92c===_0x5965fb[_0xfd9e('0x36')][_0xfd9e('0x21')]-0x1?_0x212205+_0x225036[_0xfd9e('0x21')]+_0x104d06[_0xfd9e('0x21')]+0x2:_0x212205+_0x3ab92c+0x1;_0x225036[_0xfd9e('0x41')](_0x3ab92c,0x0,{'type':_0x176e45[_0xfd9e('0x2')],'app':_0xfd9e('0x42'),'appdata':_0x5965fb['intervals'][_0x3ab92c]+'?'+_0x176e45[_0xfd9e('0x5')]+',${EXTEN},'+_0x2fb211+':'+_0x176e45['context']+_0xfd9e('0x43')+_0x51b8a4,'exten':_0x176e45[_0xfd9e('0x6')],'context':_0x176e45[_0xfd9e('0x5')],'priority':_0x212205+_0x3ab92c,'VoiceExtensionId':_0x176e45['id']});}if(_0x5965fb[_0xfd9e('0x3d')]===_0xfd9e('0x44'))_0x5965fb[_0xfd9e('0x45')]=_0xfdac9f(_0x176e45,_0x5965fb[_0xfd9e('0x45')]);_0x5965fb[_0xfd9e('0x46')]=_0x225036[_0xfd9e('0x21')]?_['last'](_0x225036)[_0xfd9e('0x46')]+0x1:_0x212205;_0x44fb81=_[_0xfd9e('0x47')](_0x44fb81,_0x225036,[_0x5965fb],_0x104d06);_0x212205=_[_0xfd9e('0x48')](_0x44fb81)[_0xfd9e('0x46')]+0x1;}return _0x2ad5d7(_0x44fb81);})['catch'](function(_0x255ec8){_0x176be7(_0x255ec8);});});}return _0x1e4dfc[_0xfd9e('0x49')](_0xfd9e('0x4a'),attributes,{'tableName':_0xfd9e('0x4b'),'paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x1901c1){var _0x211e73=this[_0xfd9e('0x4c')]({'plain':!![]});var _0x3b5ece=_0x211e73[_0xfd9e('0x2')]===_0xfd9e('0xf')?_0x144372(_0x211e73):_0x505f7f(_0x211e73);return _0x4324ff(_0x211e73,_0x1901c1,_[_0xfd9e('0x48')](_0x3b5ece)[_0xfd9e('0x46')]+0x1)['then'](function(_0x4d6445){var _0x31d3fc=_[_0xfd9e('0x47')](_0x3b5ece,_0x4d6445);_0x31d3fc[_0xfd9e('0xa')]({'type':_0x211e73[_0xfd9e('0x2')],'app':_0xfd9e('0x4d'),'exten':_0x211e73['exten'],'context':_0x211e73[_0xfd9e('0x5')],'priority':_['last'](_0x31d3fc)[_0xfd9e('0x46')]+0x1,'VoiceExtensionId':_0x211e73['id']});return _0x31d3fc;});}}});};