Built motion from commit 19a84241.|2.5.34
[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 _0x1ebb=['${EXTEN}','ExecIf','):Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','outboundrouteid=','hasOwnProperty','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','wav','url','split','length','name','trunk','param','phone','prefix','SIP','options','indexOf','U(xcally-mixmonitor-context)','replace','join','isEmpty','Interval','findAll','interval','IntervalId','then','map','toLowerCase','tag','CDR(tag)=','intervals','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):','callerID','Set(CALLERID(all)=','NoOp(No\x20number\x20available)','answer','queue','playback','includes','app','appType','custom','XCALLY-MOTION-PROGRESS=1','splice',',${EXTEN},','outboundDial','appdata','priority','concat','last','catch','define','VoiceExtension','voice_extensions','util','lodash','./voiceExtension.attributes','exports','models','type','Set','context','exten','alias','NoOp','CDR(routeAlias)=','No\x20alias\x20set','inbound','CDR(routeid)=','push','MONITOR_OPTIONS=ab','CDR(type)=outbound','outbound','CDR(destination)=','cutdigits','${EXTEN:'];(function(_0x24a56d,_0x16078a){var _0x3166c3=function(_0x45a5f3){while(--_0x45a5f3){_0x24a56d['push'](_0x24a56d['shift']());}};_0x3166c3(++_0x16078a);}(_0x1ebb,0x18e));var _0xb1eb=function(_0x1e2394,_0x23f49f){_0x1e2394=_0x1e2394-0x0;var _0x291a79=_0x1ebb[_0x1e2394];return _0x291a79;};'use strict';var util=require(_0xb1eb('0x0'));var _=require(_0xb1eb('0x1'));var attributes=require(_0xb1eb('0x2'));module[_0xb1eb('0x3')]=function(_0x36bef2){var _0x36caae=_0x36bef2[_0xb1eb('0x4')];function _0xbb1d3c(_0x39d057){var _0x44795a=0x2;var _0x4e1cc8=[{'type':_0x39d057[_0xb1eb('0x5')],'app':_0xb1eb('0x6'),'appdata':'CDR(type)='+_0x39d057[_0xb1eb('0x5')],'context':_0x39d057[_0xb1eb('0x7')],'exten':_0x39d057[_0xb1eb('0x8')],'priority':_0x44795a++,'VoiceExtensionId':_0x39d057['id']},{'type':_0x39d057[_0xb1eb('0x5')],'app':_0x39d057[_0xb1eb('0x9')]?_0xb1eb('0x6'):_0xb1eb('0xa'),'appdata':_0x39d057[_0xb1eb('0x9')]?_0xb1eb('0xb')+_0x39d057[_0xb1eb('0x9')]:_0xb1eb('0xc'),'context':_0x39d057[_0xb1eb('0x7')],'exten':_0x39d057[_0xb1eb('0x8')],'priority':_0x44795a++,'VoiceExtensionId':_0x39d057['id']}];if(_0x39d057[_0xb1eb('0x5')]===_0xb1eb('0xd')){_0x4e1cc8['push']({'type':_0xb1eb('0xd'),'app':_0xb1eb('0x6'),'appdata':_0xb1eb('0xe')+_0x39d057['id'],'context':_0x39d057[_0xb1eb('0x7')],'exten':_0x39d057[_0xb1eb('0x8')],'priority':_0x44795a++,'VoiceExtensionId':_0x39d057['id']});}_0x4e1cc8[_0xb1eb('0xf')]({'type':_0x39d057[_0xb1eb('0x5')],'app':'Set','appdata':'XCALLY-MOTION-ANSWER=0','context':_0x39d057[_0xb1eb('0x7')],'exten':_0x39d057[_0xb1eb('0x8')],'priority':_0x44795a++,'VoiceExtensionId':_0x39d057['id']},{'type':_0x39d057[_0xb1eb('0x5')],'app':'Set','appdata':'XCALLY-MOTION-PROGRESS=0','context':_0x39d057[_0xb1eb('0x7')],'exten':_0x39d057[_0xb1eb('0x8')],'priority':_0x44795a++,'VoiceExtensionId':_0x39d057['id']},{'type':_0x39d057[_0xb1eb('0x5')],'app':'Set','appdata':_0xb1eb('0x10'),'context':_0x39d057[_0xb1eb('0x7')],'exten':_0x39d057['exten'],'priority':_0x44795a++,'VoiceExtensionId':_0x39d057['id']});return _0x4e1cc8;}function _0x3211a7(_0x502b02){var _0xf60cb3=0x2;var _0x438819=[{'type':'outbound','app':'Set','appdata':_0xb1eb('0x11'),'context':_0x502b02['context'],'exten':_0x502b02[_0xb1eb('0x8')],'priority':_0xf60cb3++,'VoiceExtensionId':_0x502b02['id']},{'type':_0xb1eb('0x12'),'app':_0x502b02[_0xb1eb('0x9')]?'Set':_0xb1eb('0xa'),'appdata':_0x502b02[_0xb1eb('0x9')]?_0xb1eb('0xb')+_0x502b02[_0xb1eb('0x9')]:_0xb1eb('0xc'),'context':_0x502b02[_0xb1eb('0x7')],'exten':_0x502b02[_0xb1eb('0x8')],'priority':_0xf60cb3++,'VoiceExtensionId':_0x502b02['id']},{'type':_0xb1eb('0x12'),'app':_0xb1eb('0x6'),'appdata':_0xb1eb('0x13')+(_0x502b02[_0xb1eb('0x14')]?_0xb1eb('0x15')+_0x502b02[_0xb1eb('0x14')]+'}':_0xb1eb('0x16')),'context':_0x502b02[_0xb1eb('0x7')],'exten':_0x502b02[_0xb1eb('0x8')],'priority':_0xf60cb3++,'VoiceExtensionId':_0x502b02['id']},{'type':_0xb1eb('0x12'),'app':_0xb1eb('0x6'),'appdata':_0xb1eb('0xe')+_0x502b02['id'],'context':_0x502b02[_0xb1eb('0x7')],'exten':_0x502b02[_0xb1eb('0x8')],'priority':_0xf60cb3++,'VoiceExtensionId':_0x502b02['id']},{'type':'outbound','app':_0xb1eb('0x17'),'appdata':'$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto('+(_0xf60cb3+0x2)+_0xb1eb('0x18')+(_0xf60cb3+0x1)+')','context':_0x502b02['context'],'exten':_0x502b02[_0xb1eb('0x8')],'priority':_0xf60cb3++,'VoiceExtensionId':_0x502b02['id']},{'type':'outbound','app':_0xb1eb('0x6'),'appdata':_0x502b02[_0xb1eb('0x14')]?_0xb1eb('0x19')+_0x502b02['cutdigits']+'}':_0xb1eb('0x1a'),'context':_0x502b02['context'],'exten':_0x502b02['exten'],'priority':_0xf60cb3++,'VoiceExtensionId':_0x502b02['id']},{'type':'outbound','app':'Set','appdata':_0xb1eb('0x1b'),'context':_0x502b02['context'],'exten':_0x502b02[_0xb1eb('0x8')],'priority':_0xf60cb3++,'VoiceExtensionId':_0x502b02['id']},{'type':'outbound','app':_0xb1eb('0x6'),'appdata':_0xb1eb('0x1c'),'context':_0x502b02[_0xb1eb('0x7')],'exten':_0x502b02['exten'],'priority':_0xf60cb3++,'VoiceExtensionId':_0x502b02['id']},{'type':_0xb1eb('0x12'),'app':_0xb1eb('0x6'),'appdata':_0xb1eb('0x10'),'context':_0x502b02['context'],'exten':_0x502b02['exten'],'priority':_0xf60cb3++,'VoiceExtensionId':_0x502b02['id']},{'type':_0xb1eb('0x12'),'app':_0xb1eb('0x6'),'appdata':_0xb1eb('0x1d')+_0x502b02['id'],'context':_0x502b02[_0xb1eb('0x7')],'exten':_0x502b02[_0xb1eb('0x8')],'priority':_0xf60cb3++,'VoiceExtensionId':_0x502b02['id']}];if(_0x502b02[_0xb1eb('0x1e')](_0xb1eb('0x1f'))&&_0x502b02[_0xb1eb('0x1f')]!==_0xb1eb('0x20')){_0x438819[_0xb1eb('0xf')]({'type':'outbound','app':_0xb1eb('0x6'),'appdata':_0xb1eb('0x21'),'context':_0x502b02[_0xb1eb('0x7')],'exten':_0x502b02[_0xb1eb('0x8')],'priority':_0xf60cb3++,'VoiceExtensionId':_0x502b02['id']},{'type':_0xb1eb('0x12'),'app':_0xb1eb('0x6'),'appdata':_0xb1eb('0x22')+_0x502b02['recordingFormat']||_0xb1eb('0x23'),'context':_0x502b02[_0xb1eb('0x7')],'exten':_0x502b02[_0xb1eb('0x8')],'priority':_0xf60cb3++,'VoiceExtensionId':_0x502b02['id']});}return _0x438819;}function _0x4f6167(_0x1ed2a5){var _0x4ad238=[{'name':'trunk','param':0x0},{'name':'timeout','param':0x1},{'name':'options','param':0x2},{'name':_0xb1eb('0x24'),'param':0x3}];var _0x191d9a={};var _0x133249=_0x1ed2a5[_0xb1eb('0x25')](',');var _0x3d42f8=[];for(var _0xc2adff=0x0;_0xc2adff<_0x4ad238[_0xb1eb('0x26')];_0xc2adff++){switch(_0x4ad238[_0xc2adff][_0xb1eb('0x27')]){case _0xb1eb('0x28'):_0x191d9a[_0xb1eb('0x28')]=_0x133249[_0x4ad238[_0xc2adff][_0xb1eb('0x29')]][_0xb1eb('0x25')]('/')[0x1];_0x191d9a[_0xb1eb('0x2a')]=_0x133249[_0x4ad238[_0xc2adff]['param']]['split']('/')[0x2];_0x191d9a[_0xb1eb('0x2b')]=_0x191d9a[_0xb1eb('0x2a')]?_0x191d9a[_0xb1eb('0x2a')][_0xb1eb('0x25')]('$')[0x0]:undefined;_0x191d9a[_0xb1eb('0x2a')]=route[_0xb1eb('0x14')]?(_0x191d9a[_0xb1eb('0x2b')]||'')+_0xb1eb('0x15')+route[_0xb1eb('0x14')]+'}':(_0x191d9a['prefix']||'')+_0xb1eb('0x16');_0x3d42f8[_0x4ad238[_0xc2adff][_0xb1eb('0x29')]]=[_0xb1eb('0x2c'),_0x191d9a['trunk'],_0x191d9a[_0xb1eb('0x2a')]]['join']('/');break;case'options':_0x191d9a[_0xb1eb('0x2d')]=_0x133249[_0x4ad238[_0xc2adff][_0xb1eb('0x29')]];if(route[_0xb1eb('0x1f')]!=='none'){if(_0x191d9a[_0xb1eb('0x2d')][_0xb1eb('0x2e')](_0xb1eb('0x2f'))<0x0){_0x191d9a[_0xb1eb('0x2d')]+='U(xcally-mixmonitor-context)';}}else{_0x191d9a[_0xb1eb('0x2d')]=_0x191d9a['options'][_0xb1eb('0x30')](_0xb1eb('0x2f'),'');}_0x3d42f8[_0x4ad238[_0xc2adff][_0xb1eb('0x29')]]=_0x191d9a['options'];break;default:_0x3d42f8[_0x4ad238[_0xc2adff][_0xb1eb('0x29')]]=_0x133249[_0x4ad238[_0xc2adff][_0xb1eb('0x29')]];}}return _0x3d42f8[_0xb1eb('0x31')](',');}function _0x4ac8bc(_0x1ae133,_0x151c4b,_0x388b19,_0x524890){return new Promise(function(_0x198b6c,_0x2d7168){var _0x100329=[];if(_[_0xb1eb('0x32')](_0x151c4b))return _0x198b6c(_0x100329);_0x36caae[_0xb1eb('0x33')][_0xb1eb('0x34')]({'attributes':['id',_0xb1eb('0x35'),_0xb1eb('0x36')],'raw':!![]})[_0xb1eb('0x37')](function(_0x1e30e9){for(var _0x33e119=0x0,_0xeb5e62=0x0;_0x33e119<_0x151c4b[_0xb1eb('0x26')];_0x33e119++,_0xeb5e62=0x0){var _0x40b1e5=_0x151c4b[_0x33e119];var _0x3acbf0=[];var _0x3517fa=[];if(_0x40b1e5[_0xb1eb('0x35')]!=='*,*,*,*'){_0x40b1e5['intervals']=[_0x40b1e5[_0xb1eb('0x35')]];}else{_0x40b1e5['intervals']=_0x40b1e5['IntervalId']?_[_0xb1eb('0x38')](_['filter'](_0x1e30e9,{'IntervalId':_0x40b1e5[_0xb1eb('0x36')]}),_0xb1eb('0x35')):[];}_0x40b1e5['context']=_0x1ae133['context'];_0x40b1e5[_0xb1eb('0x8')]=_0x1ae133['exten'];if(_0x40b1e5[_0xb1eb('0x5')])_0x40b1e5[_0xb1eb('0x5')]=_0x40b1e5['type'][_0xb1eb('0x39')]();if(_0x1ae133[_0xb1eb('0x5')]==='outbound'){if(_0x40b1e5['hasOwnProperty'](_0xb1eb('0x3a'))&&_0x40b1e5['tag']&&_0x40b1e5[_0xb1eb('0x3a')]!=='--'){_0x3acbf0[_0xb1eb('0xf')]({'type':_0x40b1e5[_0xb1eb('0x5')][_0xb1eb('0x39')](),'app':_0xb1eb('0x6'),'appdata':_0xb1eb('0x3b')+_0x40b1e5[_0xb1eb('0x3a')],'context':_0x1ae133[_0xb1eb('0x7')],'exten':_0x1ae133[_0xb1eb('0x8')],'priority':_0x40b1e5[_0xb1eb('0x3c')]['length']+_0x388b19+_0xeb5e62++,'VoiceExtensionId':_0x1ae133['id']});}_0x3acbf0[_0xb1eb('0xf')]({'type':_0x40b1e5[_0xb1eb('0x5')][_0xb1eb('0x39')](),'app':_0xb1eb('0x17'),'appdata':_0xb1eb('0x3d')+(_0x40b1e5[_0xb1eb('0x3e')]?_0xb1eb('0x3f')+_0x40b1e5[_0xb1eb('0x3e')]+')':_0xb1eb('0x40')),'context':_0x1ae133['context'],'exten':_0x1ae133[_0xb1eb('0x8')],'priority':_0x40b1e5[_0xb1eb('0x3c')][_0xb1eb('0x26')]+_0x388b19+_0xeb5e62++,'VoiceExtensionId':_0x1ae133['id']});}else{if(_0x40b1e5['hasOwnProperty'](_0xb1eb('0x41'))){if([_0xb1eb('0x42'),_0xb1eb('0x43')][_0xb1eb('0x44')](_0x40b1e5[_0xb1eb('0x45')][_0xb1eb('0x39')]())&&_0x40b1e5[_0xb1eb('0x46')]!==_0xb1eb('0x47')){if(_0x40b1e5['answer']){_0x3acbf0['push']({'type':_0x40b1e5[_0xb1eb('0x5')][_0xb1eb('0x39')](),'app':_0xb1eb('0x17'),'appdata':'$[${XCALLY-MOTION-ANSWER}=0]?Answer','context':_0x1ae133[_0xb1eb('0x7')],'exten':_0x1ae133[_0xb1eb('0x8')],'priority':_0x40b1e5['intervals'][_0xb1eb('0x26')]+_0x388b19+_0xeb5e62++,'VoiceExtensionId':_0x1ae133['id']});_0x3acbf0['push']({'type':_0x40b1e5[_0xb1eb('0x5')]['toLowerCase'](),'app':_0xb1eb('0x6'),'appdata':'XCALLY-MOTION-ANSWER=1','context':_0x1ae133[_0xb1eb('0x7')],'exten':_0x1ae133[_0xb1eb('0x8')],'priority':_0x40b1e5[_0xb1eb('0x3c')][_0xb1eb('0x26')]+_0x388b19+_0xeb5e62++,'VoiceExtensionId':_0x1ae133['id']});}else{_0x3acbf0[_0xb1eb('0xf')]({'type':_0x40b1e5['type'][_0xb1eb('0x39')](),'app':'ExecIf','appdata':'$[${XCALLY-MOTION-PROGRESS}=0]?Progress','context':_0x1ae133[_0xb1eb('0x7')],'exten':_0x1ae133[_0xb1eb('0x8')],'priority':_0x40b1e5[_0xb1eb('0x3c')][_0xb1eb('0x26')]+_0x388b19+_0xeb5e62++,'VoiceExtensionId':_0x1ae133['id']});_0x3acbf0[_0xb1eb('0xf')]({'type':_0x40b1e5['type']['toLowerCase'](),'app':'Set','appdata':_0xb1eb('0x48'),'context':_0x1ae133[_0xb1eb('0x7')],'exten':_0x1ae133[_0xb1eb('0x8')],'priority':_0x40b1e5[_0xb1eb('0x3c')][_0xb1eb('0x26')]+_0x388b19+_0xeb5e62++,'VoiceExtensionId':_0x1ae133['id']});}}}}for(var _0xaf3fa5=0x0;_0xaf3fa5<_0x40b1e5['intervals'][_0xb1eb('0x26')];_0xaf3fa5++){var _0x5a2e8a=_0x388b19+_0x40b1e5[_0xb1eb('0x3c')][_0xb1eb('0x26')];var _0x3a9f12=_0xaf3fa5===_0x40b1e5[_0xb1eb('0x3c')][_0xb1eb('0x26')]-0x1?_0x388b19+_0x3acbf0[_0xb1eb('0x26')]+_0x3517fa['length']+0x2:_0x388b19+_0xaf3fa5+0x1;_0x3acbf0[_0xb1eb('0x49')](_0xaf3fa5,0x0,{'type':_0x1ae133[_0xb1eb('0x5')],'app':'GotoIfTime','appdata':_0x40b1e5[_0xb1eb('0x3c')][_0xaf3fa5]+'?'+_0x1ae133[_0xb1eb('0x7')]+_0xb1eb('0x4a')+_0x5a2e8a+':'+_0x1ae133[_0xb1eb('0x7')]+_0xb1eb('0x4a')+_0x3a9f12,'exten':_0x1ae133[_0xb1eb('0x8')],'context':_0x1ae133[_0xb1eb('0x7')],'priority':_0x388b19+_0xaf3fa5,'VoiceExtensionId':_0x1ae133['id']});}if(_0x524890&&_0x40b1e5[_0xb1eb('0x46')]===_0xb1eb('0x4b'))_0x40b1e5[_0xb1eb('0x4c')]=_0x4f6167(_0x40b1e5[_0xb1eb('0x4c')]);_0x40b1e5[_0xb1eb('0x4d')]=_0x3acbf0['length']?_['last'](_0x3acbf0)['priority']+0x1:_0x388b19;_0x100329=_[_0xb1eb('0x4e')](_0x100329,_0x3acbf0,[_0x40b1e5],_0x3517fa);_0x388b19=_[_0xb1eb('0x4f')](_0x100329)[_0xb1eb('0x4d')]+0x1;}return _0x198b6c(_0x100329);})[_0xb1eb('0x50')](function(_0x4e2ceb){_0x2d7168(_0x4e2ceb);});});}return _0x36bef2[_0xb1eb('0x51')](_0xb1eb('0x52'),attributes,{'tableName':_0xb1eb('0x53'),'paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x3feeb5,_0x4b4a15){var _0x2c2356=this;var _0x1dcf73=_0x2c2356[_0xb1eb('0x5')]==='outbound'?_0x3211a7(_0x2c2356):_0xbb1d3c(_0x2c2356);return _0x4ac8bc(_0x2c2356,_0x3feeb5,_[_0xb1eb('0x4f')](_0x1dcf73)[_0xb1eb('0x4d')]+0x1,_0x4b4a15)[_0xb1eb('0x37')](function(_0x505cf7){var _0x4960af=_['concat'](_0x1dcf73,_0x505cf7);_0x4960af['push']({'type':_0x2c2356[_0xb1eb('0x5')],'app':'Hangup','exten':_0x2c2356[_0xb1eb('0x8')],'context':_0x2c2356[_0xb1eb('0x7')],'priority':_[_0xb1eb('0x4f')](_0x4960af)[_0xb1eb('0x4d')]+0x1,'VoiceExtensionId':_0x2c2356['id']});return _0x4960af;});}}});};