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 _0x7b27=['XCALLY-MOTION-PROGRESS=0','outbound','CDR(destination)=','${EXTEN}','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','cutdigits','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','MONITOR_OPTIONS=ab','hasOwnProperty','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','recordingFormat','wav','timeout','url','name','trunk','param','split','phone','prefix','join','options','none','indexOf','U(xcally-mixmonitor-context)','replace','isEmpty','Interval','findAll','then','length','interval','*,*,*,*','intervals','IntervalId','map','filter','toLowerCase','tag','CDR(tag)=','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):','callerID','NoOp(No\x20number\x20available)','answer','queue','playback','app','appType','custom','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','splice','GotoIfTime',',${EXTEN},','appdata','priority','last','concat','define','VoiceExtension','voice_extensions','get','lodash','exports','models','type','Set','CDR(type)=','context','exten','alias','NoOp','CDR(routeAlias)=','No\x20alias\x20set','push','inbound','CDR(routeid)='];(function(_0x45747a,_0x3b7da2){var _0x4e7002=function(_0x46c850){while(--_0x46c850){_0x45747a['push'](_0x45747a['shift']());}};_0x4e7002(++_0x3b7da2);}(_0x7b27,0x186));var _0x77b2=function(_0x1ee982,_0x3f2021){_0x1ee982=_0x1ee982-0x0;var _0x3d447e=_0x7b27[_0x1ee982];return _0x3d447e;};'use strict';var _=require(_0x77b2('0x0'));var attributes=require('./voiceExtension.attributes');module[_0x77b2('0x1')]=function(_0x424f18){var _0x4000dd=_0x424f18[_0x77b2('0x2')];function _0x511dfe(_0x295c4e){var _0x47075b=0x2;var _0x5e5289=[{'type':_0x295c4e[_0x77b2('0x3')],'app':_0x77b2('0x4'),'appdata':_0x77b2('0x5')+_0x295c4e['type'],'context':_0x295c4e[_0x77b2('0x6')],'exten':_0x295c4e[_0x77b2('0x7')],'priority':_0x47075b++,'VoiceExtensionId':_0x295c4e['id']},{'type':_0x295c4e[_0x77b2('0x3')],'app':_0x295c4e[_0x77b2('0x8')]?'Set':_0x77b2('0x9'),'appdata':_0x295c4e[_0x77b2('0x8')]?_0x77b2('0xa')+_0x295c4e[_0x77b2('0x8')]:_0x77b2('0xb'),'context':_0x295c4e[_0x77b2('0x6')],'exten':_0x295c4e[_0x77b2('0x7')],'priority':_0x47075b++,'VoiceExtensionId':_0x295c4e['id']}];if(_0x295c4e[_0x77b2('0x3')]==='inbound'){_0x5e5289[_0x77b2('0xc')]({'type':_0x77b2('0xd'),'app':'Set','appdata':_0x77b2('0xe')+_0x295c4e['id'],'context':_0x295c4e['context'],'exten':_0x295c4e[_0x77b2('0x7')],'priority':_0x47075b++,'VoiceExtensionId':_0x295c4e['id']});}_0x5e5289[_0x77b2('0xc')]({'type':_0x295c4e['type'],'app':_0x77b2('0x4'),'appdata':'XCALLY-MOTION-ANSWER=0','context':_0x295c4e[_0x77b2('0x6')],'exten':_0x295c4e[_0x77b2('0x7')],'priority':_0x47075b++,'VoiceExtensionId':_0x295c4e['id']},{'type':_0x295c4e[_0x77b2('0x3')],'app':_0x77b2('0x4'),'appdata':_0x77b2('0xf'),'context':_0x295c4e[_0x77b2('0x6')],'exten':_0x295c4e[_0x77b2('0x7')],'priority':_0x47075b++,'VoiceExtensionId':_0x295c4e['id']},{'type':_0x295c4e[_0x77b2('0x3')],'app':_0x77b2('0x4'),'appdata':'MONITOR_OPTIONS=ab','context':_0x295c4e['context'],'exten':_0x295c4e[_0x77b2('0x7')],'priority':_0x47075b++,'VoiceExtensionId':_0x295c4e['id']});return _0x5e5289;}function _0x2a85a3(_0x21d169){var _0x68c16e=0x2;var _0x65e134=[{'type':_0x77b2('0x10'),'app':_0x77b2('0x4'),'appdata':'CDR(type)=outbound','context':_0x21d169[_0x77b2('0x6')],'exten':_0x21d169[_0x77b2('0x7')],'priority':_0x68c16e++,'VoiceExtensionId':_0x21d169['id']},{'type':_0x77b2('0x10'),'app':_0x21d169[_0x77b2('0x8')]?_0x77b2('0x4'):'NoOp','appdata':_0x21d169[_0x77b2('0x8')]?'CDR(routeAlias)='+_0x21d169[_0x77b2('0x8')]:_0x77b2('0xb'),'context':_0x21d169[_0x77b2('0x6')],'exten':_0x21d169[_0x77b2('0x7')],'priority':_0x68c16e++,'VoiceExtensionId':_0x21d169['id']},{'type':_0x77b2('0x10'),'app':_0x77b2('0x4'),'appdata':_0x77b2('0x11')+(_0x21d169['cutdigits']?'${EXTEN:'+_0x21d169['cutdigits']+'}':_0x77b2('0x12')),'context':_0x21d169[_0x77b2('0x6')],'exten':_0x21d169[_0x77b2('0x7')],'priority':_0x68c16e++,'VoiceExtensionId':_0x21d169['id']},{'type':_0x77b2('0x10'),'app':_0x77b2('0x4'),'appdata':_0x77b2('0xe')+_0x21d169['id'],'context':_0x21d169[_0x77b2('0x6')],'exten':_0x21d169['exten'],'priority':_0x68c16e++,'VoiceExtensionId':_0x21d169['id']},{'type':_0x77b2('0x10'),'app':_0x77b2('0x13'),'appdata':_0x77b2('0x14')+(_0x68c16e+0x2)+_0x77b2('0x15')+(_0x68c16e+0x1)+')','context':_0x21d169[_0x77b2('0x6')],'exten':_0x21d169[_0x77b2('0x7')],'priority':_0x68c16e++,'VoiceExtensionId':_0x21d169['id']},{'type':_0x77b2('0x10'),'app':_0x77b2('0x4'),'appdata':_0x21d169[_0x77b2('0x16')]?_0x77b2('0x17')+_0x21d169['cutdigits']+'}':_0x77b2('0x18'),'context':_0x21d169[_0x77b2('0x6')],'exten':_0x21d169[_0x77b2('0x7')],'priority':_0x68c16e++,'VoiceExtensionId':_0x21d169['id']},{'type':_0x77b2('0x10'),'app':_0x77b2('0x4'),'appdata':'XCALLY-MOTION-ANSWER=0','context':_0x21d169[_0x77b2('0x6')],'exten':_0x21d169[_0x77b2('0x7')],'priority':_0x68c16e++,'VoiceExtensionId':_0x21d169['id']},{'type':_0x77b2('0x10'),'app':_0x77b2('0x4'),'appdata':_0x77b2('0xf'),'context':_0x21d169[_0x77b2('0x6')],'exten':_0x21d169[_0x77b2('0x7')],'priority':_0x68c16e++,'VoiceExtensionId':_0x21d169['id']},{'type':_0x77b2('0x10'),'app':_0x77b2('0x4'),'appdata':_0x77b2('0x19'),'context':_0x21d169[_0x77b2('0x6')],'exten':_0x21d169[_0x77b2('0x7')],'priority':_0x68c16e++,'VoiceExtensionId':_0x21d169['id']},{'type':'outbound','app':'Set','appdata':'outboundrouteid='+_0x21d169['id'],'context':_0x21d169['context'],'exten':_0x21d169[_0x77b2('0x7')],'priority':_0x68c16e++,'VoiceExtensionId':_0x21d169['id']}];if(_0x21d169[_0x77b2('0x1a')]('recordingFormat')&&_0x21d169['recordingFormat']!=='none'){_0x65e134[_0x77b2('0xc')]({'type':_0x77b2('0x10'),'app':_0x77b2('0x4'),'appdata':_0x77b2('0x1b'),'context':_0x21d169['context'],'exten':_0x21d169[_0x77b2('0x7')],'priority':_0x68c16e++,'VoiceExtensionId':_0x21d169['id']},{'type':'outbound','app':_0x77b2('0x4'),'appdata':_0x77b2('0x1c')+_0x21d169[_0x77b2('0x1d')]||_0x77b2('0x1e'),'context':_0x21d169[_0x77b2('0x6')],'exten':_0x21d169[_0x77b2('0x7')],'priority':_0x68c16e++,'VoiceExtensionId':_0x21d169['id']});}return _0x65e134;}function _0x539abd(_0x1e8cf0,_0x405c14){var _0x36fc53=[{'name':'trunk','param':0x0},{'name':_0x77b2('0x1f'),'param':0x1},{'name':'options','param':0x2},{'name':_0x77b2('0x20'),'param':0x3}];var _0x5a144f={};var _0x98df47=_0x405c14['split'](',');var _0x49dd03=[];for(var _0x4c4cc6=0x0;_0x4c4cc6<_0x36fc53['length'];_0x4c4cc6++){switch(_0x36fc53[_0x4c4cc6][_0x77b2('0x21')]){case'trunk':_0x5a144f[_0x77b2('0x22')]=_0x98df47[_0x36fc53[_0x4c4cc6][_0x77b2('0x23')]][_0x77b2('0x24')]('/')[0x1];_0x5a144f[_0x77b2('0x25')]=_0x98df47[_0x36fc53[_0x4c4cc6][_0x77b2('0x23')]][_0x77b2('0x24')]('/')[0x2];_0x5a144f[_0x77b2('0x26')]=_0x5a144f['phone']?_0x5a144f['phone'][_0x77b2('0x24')]('$')[0x0]:undefined;_0x5a144f[_0x77b2('0x25')]=_0x1e8cf0[_0x77b2('0x16')]?(_0x5a144f[_0x77b2('0x26')]||'')+'${EXTEN:'+_0x1e8cf0[_0x77b2('0x16')]+'}':(_0x5a144f[_0x77b2('0x26')]||'')+_0x77b2('0x12');_0x49dd03[_0x36fc53[_0x4c4cc6]['param']]=['SIP',_0x5a144f[_0x77b2('0x22')],_0x5a144f[_0x77b2('0x25')]][_0x77b2('0x27')]('/');break;case _0x77b2('0x28'):_0x5a144f['options']=_0x98df47[_0x36fc53[_0x4c4cc6][_0x77b2('0x23')]];if(_0x1e8cf0[_0x77b2('0x1d')]!==_0x77b2('0x29')){if(_0x5a144f[_0x77b2('0x28')][_0x77b2('0x2a')]('U(xcally-mixmonitor-context)')<0x0){_0x5a144f['options']+=_0x77b2('0x2b');}}else{_0x5a144f[_0x77b2('0x28')]=_0x5a144f[_0x77b2('0x28')][_0x77b2('0x2c')](_0x77b2('0x2b'),'');}_0x49dd03[_0x36fc53[_0x4c4cc6][_0x77b2('0x23')]]=_0x5a144f[_0x77b2('0x28')];break;default:_0x49dd03[_0x36fc53[_0x4c4cc6]['param']]=_0x98df47[_0x36fc53[_0x4c4cc6]['param']];}}return _0x49dd03[_0x77b2('0x27')](',');}function _0x1f9f86(_0x2c6943,_0x3446cf,_0x5c69d5){return new Promise(function(_0x4edec6,_0x1a7a20){var _0x5859c9=[];if(_[_0x77b2('0x2d')](_0x3446cf))return _0x4edec6(_0x5859c9);_0x4000dd[_0x77b2('0x2e')][_0x77b2('0x2f')]({'attributes':['id','interval','IntervalId'],'raw':!![]})[_0x77b2('0x30')](function(_0x58dae5){for(var _0x466ede=0x0,_0x3c089a=0x0;_0x466ede<_0x3446cf[_0x77b2('0x31')];_0x466ede++,_0x3c089a=0x0){var _0x4afbed=_0x3446cf[_0x466ede];var _0x9ca094=[];var _0x3aa617=[];delete _0x4afbed['id'];if(_0x4afbed[_0x77b2('0x32')]!==_0x77b2('0x33')){_0x4afbed[_0x77b2('0x34')]=[_0x4afbed[_0x77b2('0x32')]];}else{_0x4afbed[_0x77b2('0x34')]=_0x4afbed[_0x77b2('0x35')]?_[_0x77b2('0x36')](_[_0x77b2('0x37')](_0x58dae5,{'IntervalId':_0x4afbed[_0x77b2('0x35')]}),_0x77b2('0x32')):[];}_0x4afbed[_0x77b2('0x6')]=_0x2c6943[_0x77b2('0x6')];_0x4afbed[_0x77b2('0x7')]=_0x2c6943[_0x77b2('0x7')];if(_0x4afbed[_0x77b2('0x3')])_0x4afbed[_0x77b2('0x3')]=_0x4afbed[_0x77b2('0x3')][_0x77b2('0x38')]();if(_0x2c6943['type']===_0x77b2('0x10')){if(_0x4afbed[_0x77b2('0x1a')](_0x77b2('0x39'))&&_0x4afbed[_0x77b2('0x39')]&&_0x4afbed[_0x77b2('0x39')]!=='--'){_0x9ca094[_0x77b2('0xc')]({'type':_0x4afbed[_0x77b2('0x3')][_0x77b2('0x38')](),'app':_0x77b2('0x4'),'appdata':_0x77b2('0x3a')+_0x4afbed[_0x77b2('0x39')],'context':_0x2c6943[_0x77b2('0x6')],'exten':_0x2c6943[_0x77b2('0x7')],'priority':_0x4afbed['intervals'][_0x77b2('0x31')]+_0x5c69d5+_0x3c089a++,'VoiceExtensionId':_0x2c6943['id']});}_0x9ca094[_0x77b2('0xc')]({'type':_0x4afbed[_0x77b2('0x3')][_0x77b2('0x38')](),'app':'ExecIf','appdata':_0x77b2('0x3b')+(_0x4afbed[_0x77b2('0x3c')]?'Set(CALLERID(all)='+_0x4afbed[_0x77b2('0x3c')]+')':_0x77b2('0x3d')),'context':_0x2c6943[_0x77b2('0x6')],'exten':_0x2c6943[_0x77b2('0x7')],'priority':_0x4afbed['intervals'][_0x77b2('0x31')]+_0x5c69d5+_0x3c089a++,'VoiceExtensionId':_0x2c6943['id']});}else{if(_0x4afbed['hasOwnProperty'](_0x77b2('0x3e'))){if([_0x77b2('0x3f'),_0x77b2('0x40')]['includes'](_0x4afbed[_0x77b2('0x41')][_0x77b2('0x38')]())&&_0x4afbed[_0x77b2('0x42')]!==_0x77b2('0x43')){if(_0x4afbed['answer']){_0x9ca094['push']({'type':_0x4afbed[_0x77b2('0x3')]['toLowerCase'](),'app':_0x77b2('0x13'),'appdata':'$[${XCALLY-MOTION-ANSWER}=0]?Answer','context':_0x2c6943['context'],'exten':_0x2c6943[_0x77b2('0x7')],'priority':_0x4afbed['intervals']['length']+_0x5c69d5+_0x3c089a++,'VoiceExtensionId':_0x2c6943['id']});_0x9ca094[_0x77b2('0xc')]({'type':_0x4afbed[_0x77b2('0x3')][_0x77b2('0x38')](),'app':_0x77b2('0x4'),'appdata':_0x77b2('0x44'),'context':_0x2c6943[_0x77b2('0x6')],'exten':_0x2c6943[_0x77b2('0x7')],'priority':_0x4afbed[_0x77b2('0x34')]['length']+_0x5c69d5+_0x3c089a++,'VoiceExtensionId':_0x2c6943['id']});}else{_0x9ca094['push']({'type':_0x4afbed[_0x77b2('0x3')][_0x77b2('0x38')](),'app':_0x77b2('0x13'),'appdata':_0x77b2('0x45'),'context':_0x2c6943[_0x77b2('0x6')],'exten':_0x2c6943[_0x77b2('0x7')],'priority':_0x4afbed[_0x77b2('0x34')][_0x77b2('0x31')]+_0x5c69d5+_0x3c089a++,'VoiceExtensionId':_0x2c6943['id']});_0x9ca094[_0x77b2('0xc')]({'type':_0x4afbed['type'][_0x77b2('0x38')](),'app':_0x77b2('0x4'),'appdata':'XCALLY-MOTION-PROGRESS=1','context':_0x2c6943[_0x77b2('0x6')],'exten':_0x2c6943[_0x77b2('0x7')],'priority':_0x4afbed['intervals'][_0x77b2('0x31')]+_0x5c69d5+_0x3c089a++,'VoiceExtensionId':_0x2c6943['id']});}}}}for(var _0x409133=0x0;_0x409133<_0x4afbed[_0x77b2('0x34')][_0x77b2('0x31')];_0x409133++){var _0x4296f8=_0x5c69d5+_0x4afbed[_0x77b2('0x34')]['length'];var _0x1ecd39=_0x409133===_0x4afbed[_0x77b2('0x34')][_0x77b2('0x31')]-0x1?_0x5c69d5+_0x9ca094[_0x77b2('0x31')]+_0x3aa617[_0x77b2('0x31')]+0x2:_0x5c69d5+_0x409133+0x1;_0x9ca094[_0x77b2('0x46')](_0x409133,0x0,{'type':_0x2c6943[_0x77b2('0x3')],'app':_0x77b2('0x47'),'appdata':_0x4afbed[_0x77b2('0x34')][_0x409133]+'?'+_0x2c6943[_0x77b2('0x6')]+',${EXTEN},'+_0x4296f8+':'+_0x2c6943['context']+_0x77b2('0x48')+_0x1ecd39,'exten':_0x2c6943[_0x77b2('0x7')],'context':_0x2c6943[_0x77b2('0x6')],'priority':_0x5c69d5+_0x409133,'VoiceExtensionId':_0x2c6943['id']});}if(_0x4afbed['appType']==='outboundDial')_0x4afbed['appdata']=_0x539abd(_0x2c6943,_0x4afbed[_0x77b2('0x49')]);_0x4afbed[_0x77b2('0x4a')]=_0x9ca094['length']?_[_0x77b2('0x4b')](_0x9ca094)[_0x77b2('0x4a')]+0x1:_0x5c69d5;_0x5859c9=_[_0x77b2('0x4c')](_0x5859c9,_0x9ca094,[_0x4afbed],_0x3aa617);_0x5c69d5=_[_0x77b2('0x4b')](_0x5859c9)[_0x77b2('0x4a')]+0x1;}return _0x4edec6(_0x5859c9);})['catch'](function(_0x7f1432){_0x1a7a20(_0x7f1432);});});}return _0x424f18[_0x77b2('0x4d')](_0x77b2('0x4e'),attributes,{'tableName':_0x77b2('0x4f'),'paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x432c8d){var _0x423baf=this[_0x77b2('0x50')]({'plain':!![]});var _0x726948=_0x423baf[_0x77b2('0x3')]===_0x77b2('0x10')?_0x2a85a3(_0x423baf):_0x511dfe(_0x423baf);return _0x1f9f86(_0x423baf,_0x432c8d,_[_0x77b2('0x4b')](_0x726948)[_0x77b2('0x4a')]+0x1)[_0x77b2('0x30')](function(_0x413c3d){var _0x469a64=_['concat'](_0x726948,_0x413c3d);_0x469a64[_0x77b2('0xc')]({'type':_0x423baf[_0x77b2('0x3')],'app':'Hangup','exten':_0x423baf[_0x77b2('0x7')],'context':_0x423baf[_0x77b2('0x6')],'priority':_['last'](_0x469a64)[_0x77b2('0x4a')]+0x1,'VoiceExtensionId':_0x423baf['id']});return _0x469a64;});}}});};