Built motion from commit bab6f49e.|2.6.17
[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 _0xe799=['includes','app','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','GotoIfTime',',${EXTEN},','appType','outboundDial','appdata','XMCS-UNIQUEID=${CHANNEL(LINKEDID)}','last','priority','concat','VoiceExtension','voice_extensions','get','Hangup','lodash','exports','models','Set','type','context','exten','alias','CDR(routeAlias)=','No\x20alias\x20set','push','inbound','CDR(routeid)=','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','CDR(type)=outbound','outbound','NoOp','CDR(destination)=','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','cutdigits','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','outboundrouteid=','hasOwnProperty','recordingFormat','none','_XCALLY_MIXMONITOR_FORMAT=','wav','timeout','options','url','split','length','name','trunk','param','phone','prefix','${EXTEN:','${EXTEN}','SIP','indexOf','U(xcally-mixmonitor-context)','replace','join','isEmpty','Interval','findAll','interval','IntervalId','then','*,*,*,*','intervals','map','filter','tag','toLowerCase','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):','callerID','Set(CALLERID(all)=','NoOp(No\x20number\x20available)','answer','queue','playback'];(function(_0x2696fd,_0x53861b){var _0x255527=function(_0xcd5e1){while(--_0xcd5e1){_0x2696fd['push'](_0x2696fd['shift']());}};_0x255527(++_0x53861b);}(_0xe799,0x170));var _0x9e79=function(_0x5edaec,_0x171ad2){_0x5edaec=_0x5edaec-0x0;var _0x44f380=_0xe799[_0x5edaec];return _0x44f380;};'use strict';var _=require(_0x9e79('0x0'));var attributes=require('./voiceExtension.attributes');module[_0x9e79('0x1')]=function(_0x59bc90){var _0x42f653=_0x59bc90[_0x9e79('0x2')];function _0x528d88(_0x34a40e){var _0x3f0a4f=0x2;var _0x809ffd=[{'type':_0x34a40e['type'],'app':_0x9e79('0x3'),'appdata':'CDR(type)='+_0x34a40e[_0x9e79('0x4')],'context':_0x34a40e[_0x9e79('0x5')],'exten':_0x34a40e[_0x9e79('0x6')],'priority':_0x3f0a4f++,'VoiceExtensionId':_0x34a40e['id']},{'type':_0x34a40e['type'],'app':_0x34a40e[_0x9e79('0x7')]?_0x9e79('0x3'):'NoOp','appdata':_0x34a40e[_0x9e79('0x7')]?_0x9e79('0x8')+_0x34a40e[_0x9e79('0x7')]:_0x9e79('0x9'),'context':_0x34a40e[_0x9e79('0x5')],'exten':_0x34a40e[_0x9e79('0x6')],'priority':_0x3f0a4f++,'VoiceExtensionId':_0x34a40e['id']}];if(_0x34a40e[_0x9e79('0x4')]==='inbound'){_0x809ffd[_0x9e79('0xa')]({'type':_0x9e79('0xb'),'app':_0x9e79('0x3'),'appdata':_0x9e79('0xc')+_0x34a40e['id'],'context':_0x34a40e[_0x9e79('0x5')],'exten':_0x34a40e['exten'],'priority':_0x3f0a4f++,'VoiceExtensionId':_0x34a40e['id']});}_0x809ffd[_0x9e79('0xa')]({'type':_0x34a40e[_0x9e79('0x4')],'app':_0x9e79('0x3'),'appdata':_0x9e79('0xd'),'context':_0x34a40e[_0x9e79('0x5')],'exten':_0x34a40e[_0x9e79('0x6')],'priority':_0x3f0a4f++,'VoiceExtensionId':_0x34a40e['id']},{'type':_0x34a40e[_0x9e79('0x4')],'app':_0x9e79('0x3'),'appdata':_0x9e79('0xe'),'context':_0x34a40e[_0x9e79('0x5')],'exten':_0x34a40e[_0x9e79('0x6')],'priority':_0x3f0a4f++,'VoiceExtensionId':_0x34a40e['id']},{'type':_0x34a40e[_0x9e79('0x4')],'app':'Set','appdata':_0x9e79('0xf'),'context':_0x34a40e['context'],'exten':_0x34a40e[_0x9e79('0x6')],'priority':_0x3f0a4f++,'VoiceExtensionId':_0x34a40e['id']});return _0x809ffd;}function _0x232821(_0x5b3a6b){var _0x1311cf=0x2;var _0x3c7baf=[{'type':'outbound','app':'Set','appdata':_0x9e79('0x10'),'context':_0x5b3a6b[_0x9e79('0x5')],'exten':_0x5b3a6b[_0x9e79('0x6')],'priority':_0x1311cf++,'VoiceExtensionId':_0x5b3a6b['id']},{'type':_0x9e79('0x11'),'app':_0x5b3a6b[_0x9e79('0x7')]?'Set':_0x9e79('0x12'),'appdata':_0x5b3a6b[_0x9e79('0x7')]?_0x9e79('0x8')+_0x5b3a6b[_0x9e79('0x7')]:'No\x20alias\x20set','context':_0x5b3a6b[_0x9e79('0x5')],'exten':_0x5b3a6b[_0x9e79('0x6')],'priority':_0x1311cf++,'VoiceExtensionId':_0x5b3a6b['id']},{'type':'outbound','app':_0x9e79('0x3'),'appdata':_0x9e79('0x13')+(_0x5b3a6b['cutdigits']?'${EXTEN:'+_0x5b3a6b['cutdigits']+'}':'${EXTEN}'),'context':_0x5b3a6b[_0x9e79('0x5')],'exten':_0x5b3a6b[_0x9e79('0x6')],'priority':_0x1311cf++,'VoiceExtensionId':_0x5b3a6b['id']},{'type':'outbound','app':_0x9e79('0x3'),'appdata':_0x9e79('0xc')+_0x5b3a6b['id'],'context':_0x5b3a6b[_0x9e79('0x5')],'exten':_0x5b3a6b[_0x9e79('0x6')],'priority':_0x1311cf++,'VoiceExtensionId':_0x5b3a6b['id']},{'type':'outbound','app':_0x9e79('0x14'),'appdata':_0x9e79('0x15')+(_0x1311cf+0x2)+'):Goto('+(_0x1311cf+0x1)+')','context':_0x5b3a6b[_0x9e79('0x5')],'exten':_0x5b3a6b[_0x9e79('0x6')],'priority':_0x1311cf++,'VoiceExtensionId':_0x5b3a6b['id']},{'type':'outbound','app':_0x9e79('0x3'),'appdata':_0x5b3a6b[_0x9e79('0x16')]?_0x9e79('0x17')+_0x5b3a6b[_0x9e79('0x16')]+'}':_0x9e79('0x18'),'context':_0x5b3a6b[_0x9e79('0x5')],'exten':_0x5b3a6b['exten'],'priority':_0x1311cf++,'VoiceExtensionId':_0x5b3a6b['id']},{'type':'outbound','app':'Set','appdata':_0x9e79('0xd'),'context':_0x5b3a6b[_0x9e79('0x5')],'exten':_0x5b3a6b[_0x9e79('0x6')],'priority':_0x1311cf++,'VoiceExtensionId':_0x5b3a6b['id']},{'type':_0x9e79('0x11'),'app':_0x9e79('0x3'),'appdata':_0x9e79('0xe'),'context':_0x5b3a6b['context'],'exten':_0x5b3a6b['exten'],'priority':_0x1311cf++,'VoiceExtensionId':_0x5b3a6b['id']},{'type':_0x9e79('0x11'),'app':_0x9e79('0x3'),'appdata':'MONITOR_OPTIONS=ab','context':_0x5b3a6b[_0x9e79('0x5')],'exten':_0x5b3a6b[_0x9e79('0x6')],'priority':_0x1311cf++,'VoiceExtensionId':_0x5b3a6b['id']},{'type':'outbound','app':_0x9e79('0x3'),'appdata':_0x9e79('0x19')+_0x5b3a6b['id'],'context':_0x5b3a6b['context'],'exten':_0x5b3a6b['exten'],'priority':_0x1311cf++,'VoiceExtensionId':_0x5b3a6b['id']}];if(_0x5b3a6b[_0x9e79('0x1a')](_0x9e79('0x1b'))&&_0x5b3a6b['recordingFormat']!==_0x9e79('0x1c')){_0x3c7baf[_0x9e79('0xa')]({'type':_0x9e79('0x11'),'app':_0x9e79('0x3'),'appdata':'_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','context':_0x5b3a6b[_0x9e79('0x5')],'exten':_0x5b3a6b[_0x9e79('0x6')],'priority':_0x1311cf++,'VoiceExtensionId':_0x5b3a6b['id']},{'type':'outbound','app':_0x9e79('0x3'),'appdata':_0x9e79('0x1d')+_0x5b3a6b[_0x9e79('0x1b')]||_0x9e79('0x1e'),'context':_0x5b3a6b[_0x9e79('0x5')],'exten':_0x5b3a6b[_0x9e79('0x6')],'priority':_0x1311cf++,'VoiceExtensionId':_0x5b3a6b['id']});}return _0x3c7baf;}function _0x15e65a(_0x1faf94,_0x4ee45d){var _0x17ad7d=[{'name':'trunk','param':0x0},{'name':_0x9e79('0x1f'),'param':0x1},{'name':_0x9e79('0x20'),'param':0x2},{'name':_0x9e79('0x21'),'param':0x3}];var _0x40bb02={};var _0x5a8d32=_0x4ee45d[_0x9e79('0x22')](',');var _0x11687e=[];for(var _0x5282ed=0x0;_0x5282ed<_0x17ad7d[_0x9e79('0x23')];_0x5282ed++){switch(_0x17ad7d[_0x5282ed][_0x9e79('0x24')]){case _0x9e79('0x25'):_0x40bb02[_0x9e79('0x25')]=_0x5a8d32[_0x17ad7d[_0x5282ed][_0x9e79('0x26')]][_0x9e79('0x22')]('/')[0x1];_0x40bb02[_0x9e79('0x27')]=_0x5a8d32[_0x17ad7d[_0x5282ed][_0x9e79('0x26')]][_0x9e79('0x22')]('/')[0x2];_0x40bb02[_0x9e79('0x28')]=_0x40bb02[_0x9e79('0x27')]?_0x40bb02[_0x9e79('0x27')][_0x9e79('0x22')]('$')[0x0]:undefined;_0x40bb02['phone']=_0x1faf94['cutdigits']?(_0x40bb02['prefix']||'')+_0x9e79('0x29')+_0x1faf94[_0x9e79('0x16')]+'}':(_0x40bb02['prefix']||'')+_0x9e79('0x2a');_0x11687e[_0x17ad7d[_0x5282ed][_0x9e79('0x26')]]=[_0x9e79('0x2b'),_0x40bb02[_0x9e79('0x25')],_0x40bb02[_0x9e79('0x27')]]['join']('/');break;case'options':_0x40bb02[_0x9e79('0x20')]=_0x5a8d32[_0x17ad7d[_0x5282ed]['param']];if(_0x1faf94[_0x9e79('0x1b')]!==_0x9e79('0x1c')){if(_0x40bb02[_0x9e79('0x20')][_0x9e79('0x2c')]('U(xcally-mixmonitor-context)')<0x0){_0x40bb02['options']+=_0x9e79('0x2d');}}else{_0x40bb02[_0x9e79('0x20')]=_0x40bb02['options'][_0x9e79('0x2e')](_0x9e79('0x2d'),'');}_0x11687e[_0x17ad7d[_0x5282ed][_0x9e79('0x26')]]=_0x40bb02['options'];break;default:_0x11687e[_0x17ad7d[_0x5282ed][_0x9e79('0x26')]]=_0x5a8d32[_0x17ad7d[_0x5282ed][_0x9e79('0x26')]];}}return _0x11687e[_0x9e79('0x2f')](',');}function _0x149a8a(_0x1353c8,_0x57b9c9,_0x5e9d93){return new Promise(function(_0x5ef654,_0x5a8c7b){var _0x31ef51=[];if(_[_0x9e79('0x30')](_0x57b9c9))return _0x5ef654(_0x31ef51);_0x42f653[_0x9e79('0x31')][_0x9e79('0x32')]({'attributes':['id',_0x9e79('0x33'),_0x9e79('0x34')],'raw':!![]})[_0x9e79('0x35')](function(_0x1266ac){for(var _0x367942=0x0,_0x1c280f=0x0;_0x367942<_0x57b9c9[_0x9e79('0x23')];_0x367942++,_0x1c280f=0x0){var _0x20b160=_0x57b9c9[_0x367942];var _0x395657=[];var _0x27f28f=[];delete _0x20b160['id'];if(_0x20b160[_0x9e79('0x33')]!==_0x9e79('0x36')){_0x20b160[_0x9e79('0x37')]=[_0x20b160[_0x9e79('0x33')]];}else{_0x20b160['intervals']=_0x20b160['IntervalId']?_[_0x9e79('0x38')](_[_0x9e79('0x39')](_0x1266ac,{'IntervalId':_0x20b160[_0x9e79('0x34')]}),_0x9e79('0x33')):[];}_0x20b160['context']=_0x1353c8['context'];_0x20b160['exten']=_0x1353c8[_0x9e79('0x6')];if(_0x20b160['type'])_0x20b160[_0x9e79('0x4')]=_0x20b160['type']['toLowerCase']();if(_0x1353c8[_0x9e79('0x4')]===_0x9e79('0x11')){if(_0x20b160[_0x9e79('0x1a')](_0x9e79('0x3a'))&&_0x20b160['tag']&&_0x20b160[_0x9e79('0x3a')]!=='--'){_0x395657[_0x9e79('0xa')]({'type':_0x20b160[_0x9e79('0x4')][_0x9e79('0x3b')](),'app':_0x9e79('0x3'),'appdata':'CDR(tag)='+_0x20b160['tag'],'context':_0x1353c8[_0x9e79('0x5')],'exten':_0x1353c8[_0x9e79('0x6')],'priority':_0x20b160['intervals'][_0x9e79('0x23')]+_0x5e9d93+_0x1c280f++,'VoiceExtensionId':_0x1353c8['id']});}_0x395657[_0x9e79('0xa')]({'type':_0x20b160[_0x9e79('0x4')]['toLowerCase'](),'app':_0x9e79('0x14'),'appdata':_0x9e79('0x3c')+(_0x20b160[_0x9e79('0x3d')]?_0x9e79('0x3e')+_0x20b160[_0x9e79('0x3d')]+')':_0x9e79('0x3f')),'context':_0x1353c8[_0x9e79('0x5')],'exten':_0x1353c8[_0x9e79('0x6')],'priority':_0x20b160[_0x9e79('0x37')][_0x9e79('0x23')]+_0x5e9d93+_0x1c280f++,'VoiceExtensionId':_0x1353c8['id']});}else{if(_0x20b160[_0x9e79('0x1a')](_0x9e79('0x40'))){if([_0x9e79('0x41'),_0x9e79('0x42')][_0x9e79('0x43')](_0x20b160[_0x9e79('0x44')][_0x9e79('0x3b')]())&&_0x20b160['appType']!==_0x9e79('0x45')){if(_0x20b160[_0x9e79('0x40')]){_0x395657[_0x9e79('0xa')]({'type':_0x20b160[_0x9e79('0x4')][_0x9e79('0x3b')](),'app':_0x9e79('0x14'),'appdata':_0x9e79('0x46'),'context':_0x1353c8[_0x9e79('0x5')],'exten':_0x1353c8[_0x9e79('0x6')],'priority':_0x20b160[_0x9e79('0x37')][_0x9e79('0x23')]+_0x5e9d93+_0x1c280f++,'VoiceExtensionId':_0x1353c8['id']});_0x395657[_0x9e79('0xa')]({'type':_0x20b160[_0x9e79('0x4')][_0x9e79('0x3b')](),'app':'Set','appdata':_0x9e79('0x47'),'context':_0x1353c8[_0x9e79('0x5')],'exten':_0x1353c8['exten'],'priority':_0x20b160[_0x9e79('0x37')][_0x9e79('0x23')]+_0x5e9d93+_0x1c280f++,'VoiceExtensionId':_0x1353c8['id']});}else{_0x395657[_0x9e79('0xa')]({'type':_0x20b160[_0x9e79('0x4')][_0x9e79('0x3b')](),'app':_0x9e79('0x14'),'appdata':_0x9e79('0x48'),'context':_0x1353c8[_0x9e79('0x5')],'exten':_0x1353c8[_0x9e79('0x6')],'priority':_0x20b160[_0x9e79('0x37')][_0x9e79('0x23')]+_0x5e9d93+_0x1c280f++,'VoiceExtensionId':_0x1353c8['id']});_0x395657[_0x9e79('0xa')]({'type':_0x20b160[_0x9e79('0x4')]['toLowerCase'](),'app':_0x9e79('0x3'),'appdata':_0x9e79('0x49'),'context':_0x1353c8[_0x9e79('0x5')],'exten':_0x1353c8[_0x9e79('0x6')],'priority':_0x20b160[_0x9e79('0x37')][_0x9e79('0x23')]+_0x5e9d93+_0x1c280f++,'VoiceExtensionId':_0x1353c8['id']});}}}}for(var _0x29df59=0x0;_0x29df59<_0x20b160['intervals'][_0x9e79('0x23')];_0x29df59++){var _0x48a2fd=_0x5e9d93+_0x20b160[_0x9e79('0x37')][_0x9e79('0x23')];var _0x5cfb79=_0x29df59===_0x20b160[_0x9e79('0x37')][_0x9e79('0x23')]-0x1?_0x5e9d93+_0x395657[_0x9e79('0x23')]+_0x27f28f[_0x9e79('0x23')]+0x2:_0x5e9d93+_0x29df59+0x1;_0x395657['splice'](_0x29df59,0x0,{'type':_0x1353c8[_0x9e79('0x4')],'app':_0x9e79('0x4a'),'appdata':_0x20b160[_0x9e79('0x37')][_0x29df59]+'?'+_0x1353c8[_0x9e79('0x5')]+',${EXTEN},'+_0x48a2fd+':'+_0x1353c8['context']+_0x9e79('0x4b')+_0x5cfb79,'exten':_0x1353c8[_0x9e79('0x6')],'context':_0x1353c8[_0x9e79('0x5')],'priority':_0x5e9d93+_0x29df59,'VoiceExtensionId':_0x1353c8['id']});}if(_0x20b160[_0x9e79('0x4c')]===_0x9e79('0x4d')){_0x20b160['appdata']=_0x15e65a(_0x1353c8,_0x20b160[_0x9e79('0x4e')]);}if(_0x20b160[_0x9e79('0x4c')]==='agi'){_0x395657[_0x9e79('0xa')]({'type':_0x20b160[_0x9e79('0x4')][_0x9e79('0x3b')](),'app':_0x9e79('0x3'),'appdata':_0x9e79('0x4f'),'context':_0x1353c8[_0x9e79('0x5')],'exten':_0x1353c8[_0x9e79('0x6')],'priority':_0x20b160[_0x9e79('0x37')][_0x9e79('0x23')]+_0x5e9d93+_0x1c280f++,'VoiceExtensionId':_0x1353c8['id']});}_0x20b160['priority']=_0x395657[_0x9e79('0x23')]?_[_0x9e79('0x50')](_0x395657)[_0x9e79('0x51')]+0x1:_0x5e9d93;_0x31ef51=_[_0x9e79('0x52')](_0x31ef51,_0x395657,[_0x20b160],_0x27f28f);_0x5e9d93=_['last'](_0x31ef51)[_0x9e79('0x51')]+0x1;}return _0x5ef654(_0x31ef51);})['catch'](function(_0x15c468){_0x5a8c7b(_0x15c468);});});}return _0x59bc90['define'](_0x9e79('0x53'),attributes,{'tableName':_0x9e79('0x54'),'paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x3c6bd7){var _0x9a942e=this[_0x9e79('0x55')]({'plain':!![]});var _0x4eae75=_0x9a942e[_0x9e79('0x4')]==='outbound'?_0x232821(_0x9a942e):_0x528d88(_0x9a942e);return _0x149a8a(_0x9a942e,_0x3c6bd7,_[_0x9e79('0x50')](_0x4eae75)[_0x9e79('0x51')]+0x1)[_0x9e79('0x35')](function(_0x5bea7b){var _0x3c8abb=_[_0x9e79('0x52')](_0x4eae75,_0x5bea7b);_0x3c8abb[_0x9e79('0xa')]({'type':_0x9a942e[_0x9e79('0x4')],'app':_0x9e79('0x56'),'exten':_0x9a942e[_0x9e79('0x6')],'context':_0x9a942e[_0x9e79('0x5')],'priority':_[_0x9e79('0x50')](_0x3c8abb)[_0x9e79('0x51')]+0x1,'VoiceExtensionId':_0x9a942e['id']});return _0x3c8abb;});}}});};