Built motion from commit da617fac.|2.6.6
[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 _0x0e6a=[',${EXTEN},','outboundDial','appdata','priority','last','concat','catch','define','voice_extensions','get','./voiceExtension.attributes','exports','models','type','Set','CDR(type)=','alias','NoOp','CDR(routeAlias)=','context','exten','inbound','push','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','outbound','No\x20alias\x20set','CDR(destination)=','${EXTEN:','cutdigits','${EXTEN}','CDR(routeid)=','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=noprefix','hasOwnProperty','recordingFormat','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','wav','trunk','timeout','options','url','split','length','name','param','prefix','phone','SIP','join','indexOf','U(xcally-mixmonitor-context)','replace','Interval','findAll','interval','IntervalId','then','*,*,*,*','intervals','filter','tag','toLowerCase','CDR(tag)=','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):','callerID','NoOp(No\x20number\x20available)','queue','playback','includes','app','appType','custom','answer','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','splice'];(function(_0x279d37,_0x14de3f){var _0x530173=function(_0x37fc79){while(--_0x37fc79){_0x279d37['push'](_0x279d37['shift']());}};_0x530173(++_0x14de3f);}(_0x0e6a,0x100));var _0xa0e6=function(_0xd9caad,_0x5856b7){_0xd9caad=_0xd9caad-0x0;var _0x3127e6=_0x0e6a[_0xd9caad];return _0x3127e6;};'use strict';var _=require('lodash');var attributes=require(_0xa0e6('0x0'));module[_0xa0e6('0x1')]=function(_0x35d9f6){var _0xc880d9=_0x35d9f6[_0xa0e6('0x2')];function _0x40b6c7(_0x4b9ee9){var _0xcd5884=0x2;var _0x19cadf=[{'type':_0x4b9ee9[_0xa0e6('0x3')],'app':_0xa0e6('0x4'),'appdata':_0xa0e6('0x5')+_0x4b9ee9[_0xa0e6('0x3')],'context':_0x4b9ee9['context'],'exten':_0x4b9ee9['exten'],'priority':_0xcd5884++,'VoiceExtensionId':_0x4b9ee9['id']},{'type':_0x4b9ee9[_0xa0e6('0x3')],'app':_0x4b9ee9[_0xa0e6('0x6')]?_0xa0e6('0x4'):_0xa0e6('0x7'),'appdata':_0x4b9ee9[_0xa0e6('0x6')]?_0xa0e6('0x8')+_0x4b9ee9['alias']:'No\x20alias\x20set','context':_0x4b9ee9[_0xa0e6('0x9')],'exten':_0x4b9ee9[_0xa0e6('0xa')],'priority':_0xcd5884++,'VoiceExtensionId':_0x4b9ee9['id']}];if(_0x4b9ee9['type']===_0xa0e6('0xb')){_0x19cadf['push']({'type':_0xa0e6('0xb'),'app':_0xa0e6('0x4'),'appdata':'CDR(routeid)='+_0x4b9ee9['id'],'context':_0x4b9ee9['context'],'exten':_0x4b9ee9[_0xa0e6('0xa')],'priority':_0xcd5884++,'VoiceExtensionId':_0x4b9ee9['id']});}_0x19cadf[_0xa0e6('0xc')]({'type':_0x4b9ee9[_0xa0e6('0x3')],'app':_0xa0e6('0x4'),'appdata':_0xa0e6('0xd'),'context':_0x4b9ee9['context'],'exten':_0x4b9ee9[_0xa0e6('0xa')],'priority':_0xcd5884++,'VoiceExtensionId':_0x4b9ee9['id']},{'type':_0x4b9ee9['type'],'app':_0xa0e6('0x4'),'appdata':_0xa0e6('0xe'),'context':_0x4b9ee9['context'],'exten':_0x4b9ee9[_0xa0e6('0xa')],'priority':_0xcd5884++,'VoiceExtensionId':_0x4b9ee9['id']},{'type':_0x4b9ee9[_0xa0e6('0x3')],'app':_0xa0e6('0x4'),'appdata':_0xa0e6('0xf'),'context':_0x4b9ee9[_0xa0e6('0x9')],'exten':_0x4b9ee9[_0xa0e6('0xa')],'priority':_0xcd5884++,'VoiceExtensionId':_0x4b9ee9['id']});return _0x19cadf;}function _0x30e924(_0x4e8006){var _0x5b4294=0x2;var _0x535e39=[{'type':_0xa0e6('0x10'),'app':_0xa0e6('0x4'),'appdata':'CDR(type)=outbound','context':_0x4e8006[_0xa0e6('0x9')],'exten':_0x4e8006[_0xa0e6('0xa')],'priority':_0x5b4294++,'VoiceExtensionId':_0x4e8006['id']},{'type':_0xa0e6('0x10'),'app':_0x4e8006['alias']?'Set':_0xa0e6('0x7'),'appdata':_0x4e8006[_0xa0e6('0x6')]?'CDR(routeAlias)='+_0x4e8006[_0xa0e6('0x6')]:_0xa0e6('0x11'),'context':_0x4e8006['context'],'exten':_0x4e8006[_0xa0e6('0xa')],'priority':_0x5b4294++,'VoiceExtensionId':_0x4e8006['id']},{'type':_0xa0e6('0x10'),'app':'Set','appdata':_0xa0e6('0x12')+(_0x4e8006['cutdigits']?_0xa0e6('0x13')+_0x4e8006[_0xa0e6('0x14')]+'}':_0xa0e6('0x15')),'context':_0x4e8006[_0xa0e6('0x9')],'exten':_0x4e8006[_0xa0e6('0xa')],'priority':_0x5b4294++,'VoiceExtensionId':_0x4e8006['id']},{'type':_0xa0e6('0x10'),'app':_0xa0e6('0x4'),'appdata':_0xa0e6('0x16')+_0x4e8006['id'],'context':_0x4e8006[_0xa0e6('0x9')],'exten':_0x4e8006[_0xa0e6('0xa')],'priority':_0x5b4294++,'VoiceExtensionId':_0x4e8006['id']},{'type':_0xa0e6('0x10'),'app':_0xa0e6('0x17'),'appdata':_0xa0e6('0x18')+(_0x5b4294+0x2)+_0xa0e6('0x19')+(_0x5b4294+0x1)+')','context':_0x4e8006[_0xa0e6('0x9')],'exten':_0x4e8006[_0xa0e6('0xa')],'priority':_0x5b4294++,'VoiceExtensionId':_0x4e8006['id']},{'type':_0xa0e6('0x10'),'app':_0xa0e6('0x4'),'appdata':_0x4e8006[_0xa0e6('0x14')]?'CDR(prefix)=${EXTEN:0:'+_0x4e8006[_0xa0e6('0x14')]+'}':_0xa0e6('0x1a'),'context':_0x4e8006[_0xa0e6('0x9')],'exten':_0x4e8006[_0xa0e6('0xa')],'priority':_0x5b4294++,'VoiceExtensionId':_0x4e8006['id']},{'type':_0xa0e6('0x10'),'app':_0xa0e6('0x4'),'appdata':_0xa0e6('0xd'),'context':_0x4e8006['context'],'exten':_0x4e8006['exten'],'priority':_0x5b4294++,'VoiceExtensionId':_0x4e8006['id']},{'type':_0xa0e6('0x10'),'app':_0xa0e6('0x4'),'appdata':_0xa0e6('0xe'),'context':_0x4e8006[_0xa0e6('0x9')],'exten':_0x4e8006[_0xa0e6('0xa')],'priority':_0x5b4294++,'VoiceExtensionId':_0x4e8006['id']},{'type':_0xa0e6('0x10'),'app':_0xa0e6('0x4'),'appdata':_0xa0e6('0xf'),'context':_0x4e8006[_0xa0e6('0x9')],'exten':_0x4e8006[_0xa0e6('0xa')],'priority':_0x5b4294++,'VoiceExtensionId':_0x4e8006['id']},{'type':_0xa0e6('0x10'),'app':'Set','appdata':'outboundrouteid='+_0x4e8006['id'],'context':_0x4e8006['context'],'exten':_0x4e8006[_0xa0e6('0xa')],'priority':_0x5b4294++,'VoiceExtensionId':_0x4e8006['id']}];if(_0x4e8006[_0xa0e6('0x1b')](_0xa0e6('0x1c'))&&_0x4e8006[_0xa0e6('0x1c')]!=='none'){_0x535e39[_0xa0e6('0xc')]({'type':'outbound','app':_0xa0e6('0x4'),'appdata':_0xa0e6('0x1d'),'context':_0x4e8006[_0xa0e6('0x9')],'exten':_0x4e8006[_0xa0e6('0xa')],'priority':_0x5b4294++,'VoiceExtensionId':_0x4e8006['id']},{'type':'outbound','app':'Set','appdata':_0xa0e6('0x1e')+_0x4e8006[_0xa0e6('0x1c')]||_0xa0e6('0x1f'),'context':_0x4e8006['context'],'exten':_0x4e8006[_0xa0e6('0xa')],'priority':_0x5b4294++,'VoiceExtensionId':_0x4e8006['id']});}return _0x535e39;}function _0x1cb97f(_0x8bd974,_0x298111){var _0x39eed7=[{'name':_0xa0e6('0x20'),'param':0x0},{'name':_0xa0e6('0x21'),'param':0x1},{'name':_0xa0e6('0x22'),'param':0x2},{'name':_0xa0e6('0x23'),'param':0x3}];var _0x1fa63d={};var _0x5def82=_0x298111[_0xa0e6('0x24')](',');var _0x2ca990=[];for(var _0x4421b1=0x0;_0x4421b1<_0x39eed7[_0xa0e6('0x25')];_0x4421b1++){switch(_0x39eed7[_0x4421b1][_0xa0e6('0x26')]){case _0xa0e6('0x20'):_0x1fa63d[_0xa0e6('0x20')]=_0x5def82[_0x39eed7[_0x4421b1][_0xa0e6('0x27')]][_0xa0e6('0x24')]('/')[0x1];_0x1fa63d['phone']=_0x5def82[_0x39eed7[_0x4421b1][_0xa0e6('0x27')]][_0xa0e6('0x24')]('/')[0x2];_0x1fa63d[_0xa0e6('0x28')]=_0x1fa63d[_0xa0e6('0x29')]?_0x1fa63d[_0xa0e6('0x29')][_0xa0e6('0x24')]('$')[0x0]:undefined;_0x1fa63d[_0xa0e6('0x29')]=_0x8bd974['cutdigits']?(_0x1fa63d[_0xa0e6('0x28')]||'')+_0xa0e6('0x13')+_0x8bd974[_0xa0e6('0x14')]+'}':(_0x1fa63d[_0xa0e6('0x28')]||'')+_0xa0e6('0x15');_0x2ca990[_0x39eed7[_0x4421b1][_0xa0e6('0x27')]]=[_0xa0e6('0x2a'),_0x1fa63d[_0xa0e6('0x20')],_0x1fa63d['phone']][_0xa0e6('0x2b')]('/');break;case _0xa0e6('0x22'):_0x1fa63d[_0xa0e6('0x22')]=_0x5def82[_0x39eed7[_0x4421b1][_0xa0e6('0x27')]];if(_0x8bd974['recordingFormat']!=='none'){if(_0x1fa63d[_0xa0e6('0x22')][_0xa0e6('0x2c')](_0xa0e6('0x2d'))<0x0){_0x1fa63d[_0xa0e6('0x22')]+=_0xa0e6('0x2d');}}else{_0x1fa63d[_0xa0e6('0x22')]=_0x1fa63d['options'][_0xa0e6('0x2e')]('U(xcally-mixmonitor-context)','');}_0x2ca990[_0x39eed7[_0x4421b1][_0xa0e6('0x27')]]=_0x1fa63d[_0xa0e6('0x22')];break;default:_0x2ca990[_0x39eed7[_0x4421b1][_0xa0e6('0x27')]]=_0x5def82[_0x39eed7[_0x4421b1][_0xa0e6('0x27')]];}}return _0x2ca990[_0xa0e6('0x2b')](',');}function _0x26bda8(_0x102bc9,_0x252f69,_0x251a94){return new Promise(function(_0x2758c8,_0x453563){var _0x27e4bd=[];if(_['isEmpty'](_0x252f69))return _0x2758c8(_0x27e4bd);_0xc880d9[_0xa0e6('0x2f')][_0xa0e6('0x30')]({'attributes':['id',_0xa0e6('0x31'),_0xa0e6('0x32')],'raw':!![]})[_0xa0e6('0x33')](function(_0x573eeb){for(var _0x1cd2ed=0x0,_0x375bf4=0x0;_0x1cd2ed<_0x252f69[_0xa0e6('0x25')];_0x1cd2ed++,_0x375bf4=0x0){var _0x1ce3f9=_0x252f69[_0x1cd2ed];var _0x4225b7=[];var _0xedb69a=[];delete _0x1ce3f9['id'];if(_0x1ce3f9[_0xa0e6('0x31')]!==_0xa0e6('0x34')){_0x1ce3f9[_0xa0e6('0x35')]=[_0x1ce3f9[_0xa0e6('0x31')]];}else{_0x1ce3f9[_0xa0e6('0x35')]=_0x1ce3f9['IntervalId']?_['map'](_[_0xa0e6('0x36')](_0x573eeb,{'IntervalId':_0x1ce3f9[_0xa0e6('0x32')]}),_0xa0e6('0x31')):[];}_0x1ce3f9[_0xa0e6('0x9')]=_0x102bc9['context'];_0x1ce3f9[_0xa0e6('0xa')]=_0x102bc9[_0xa0e6('0xa')];if(_0x1ce3f9[_0xa0e6('0x3')])_0x1ce3f9[_0xa0e6('0x3')]=_0x1ce3f9['type']['toLowerCase']();if(_0x102bc9[_0xa0e6('0x3')]==='outbound'){if(_0x1ce3f9[_0xa0e6('0x1b')](_0xa0e6('0x37'))&&_0x1ce3f9['tag']&&_0x1ce3f9[_0xa0e6('0x37')]!=='--'){_0x4225b7['push']({'type':_0x1ce3f9[_0xa0e6('0x3')][_0xa0e6('0x38')](),'app':'Set','appdata':_0xa0e6('0x39')+_0x1ce3f9[_0xa0e6('0x37')],'context':_0x102bc9[_0xa0e6('0x9')],'exten':_0x102bc9[_0xa0e6('0xa')],'priority':_0x1ce3f9[_0xa0e6('0x35')][_0xa0e6('0x25')]+_0x251a94+_0x375bf4++,'VoiceExtensionId':_0x102bc9['id']});}_0x4225b7[_0xa0e6('0xc')]({'type':_0x1ce3f9[_0xa0e6('0x3')][_0xa0e6('0x38')](),'app':_0xa0e6('0x17'),'appdata':_0xa0e6('0x3a')+(_0x1ce3f9[_0xa0e6('0x3b')]?'Set(CALLERID(all)='+_0x1ce3f9['callerID']+')':_0xa0e6('0x3c')),'context':_0x102bc9['context'],'exten':_0x102bc9[_0xa0e6('0xa')],'priority':_0x1ce3f9[_0xa0e6('0x35')][_0xa0e6('0x25')]+_0x251a94+_0x375bf4++,'VoiceExtensionId':_0x102bc9['id']});}else{if(_0x1ce3f9[_0xa0e6('0x1b')]('answer')){if([_0xa0e6('0x3d'),_0xa0e6('0x3e')][_0xa0e6('0x3f')](_0x1ce3f9[_0xa0e6('0x40')][_0xa0e6('0x38')]())&&_0x1ce3f9[_0xa0e6('0x41')]!==_0xa0e6('0x42')){if(_0x1ce3f9[_0xa0e6('0x43')]){_0x4225b7[_0xa0e6('0xc')]({'type':_0x1ce3f9[_0xa0e6('0x3')][_0xa0e6('0x38')](),'app':_0xa0e6('0x17'),'appdata':_0xa0e6('0x44'),'context':_0x102bc9[_0xa0e6('0x9')],'exten':_0x102bc9['exten'],'priority':_0x1ce3f9[_0xa0e6('0x35')][_0xa0e6('0x25')]+_0x251a94+_0x375bf4++,'VoiceExtensionId':_0x102bc9['id']});_0x4225b7[_0xa0e6('0xc')]({'type':_0x1ce3f9[_0xa0e6('0x3')][_0xa0e6('0x38')](),'app':'Set','appdata':_0xa0e6('0x45'),'context':_0x102bc9[_0xa0e6('0x9')],'exten':_0x102bc9[_0xa0e6('0xa')],'priority':_0x1ce3f9['intervals'][_0xa0e6('0x25')]+_0x251a94+_0x375bf4++,'VoiceExtensionId':_0x102bc9['id']});}else{_0x4225b7[_0xa0e6('0xc')]({'type':_0x1ce3f9[_0xa0e6('0x3')][_0xa0e6('0x38')](),'app':_0xa0e6('0x17'),'appdata':_0xa0e6('0x46'),'context':_0x102bc9['context'],'exten':_0x102bc9[_0xa0e6('0xa')],'priority':_0x1ce3f9[_0xa0e6('0x35')][_0xa0e6('0x25')]+_0x251a94+_0x375bf4++,'VoiceExtensionId':_0x102bc9['id']});_0x4225b7[_0xa0e6('0xc')]({'type':_0x1ce3f9['type'][_0xa0e6('0x38')](),'app':'Set','appdata':'XCALLY-MOTION-PROGRESS=1','context':_0x102bc9[_0xa0e6('0x9')],'exten':_0x102bc9[_0xa0e6('0xa')],'priority':_0x1ce3f9['intervals'][_0xa0e6('0x25')]+_0x251a94+_0x375bf4++,'VoiceExtensionId':_0x102bc9['id']});}}}}for(var _0x70e21f=0x0;_0x70e21f<_0x1ce3f9[_0xa0e6('0x35')][_0xa0e6('0x25')];_0x70e21f++){var _0x435967=_0x251a94+_0x1ce3f9[_0xa0e6('0x35')]['length'];var _0x400193=_0x70e21f===_0x1ce3f9[_0xa0e6('0x35')][_0xa0e6('0x25')]-0x1?_0x251a94+_0x4225b7['length']+_0xedb69a[_0xa0e6('0x25')]+0x2:_0x251a94+_0x70e21f+0x1;_0x4225b7[_0xa0e6('0x47')](_0x70e21f,0x0,{'type':_0x102bc9[_0xa0e6('0x3')],'app':'GotoIfTime','appdata':_0x1ce3f9[_0xa0e6('0x35')][_0x70e21f]+'?'+_0x102bc9[_0xa0e6('0x9')]+_0xa0e6('0x48')+_0x435967+':'+_0x102bc9[_0xa0e6('0x9')]+_0xa0e6('0x48')+_0x400193,'exten':_0x102bc9[_0xa0e6('0xa')],'context':_0x102bc9[_0xa0e6('0x9')],'priority':_0x251a94+_0x70e21f,'VoiceExtensionId':_0x102bc9['id']});}if(_0x1ce3f9[_0xa0e6('0x41')]===_0xa0e6('0x49'))_0x1ce3f9[_0xa0e6('0x4a')]=_0x1cb97f(_0x102bc9,_0x1ce3f9[_0xa0e6('0x4a')]);_0x1ce3f9[_0xa0e6('0x4b')]=_0x4225b7[_0xa0e6('0x25')]?_[_0xa0e6('0x4c')](_0x4225b7)[_0xa0e6('0x4b')]+0x1:_0x251a94;_0x27e4bd=_[_0xa0e6('0x4d')](_0x27e4bd,_0x4225b7,[_0x1ce3f9],_0xedb69a);_0x251a94=_[_0xa0e6('0x4c')](_0x27e4bd)[_0xa0e6('0x4b')]+0x1;}return _0x2758c8(_0x27e4bd);})[_0xa0e6('0x4e')](function(_0x930552){_0x453563(_0x930552);});});}return _0x35d9f6[_0xa0e6('0x4f')]('VoiceExtension',attributes,{'tableName':_0xa0e6('0x50'),'paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0xecb5e4){var _0x6f255b=this[_0xa0e6('0x51')]({'plain':!![]});var _0x58d057=_0x6f255b[_0xa0e6('0x3')]==='outbound'?_0x30e924(_0x6f255b):_0x40b6c7(_0x6f255b);return _0x26bda8(_0x6f255b,_0xecb5e4,_[_0xa0e6('0x4c')](_0x58d057)[_0xa0e6('0x4b')]+0x1)['then'](function(_0x32d919){var _0x2207b8=_['concat'](_0x58d057,_0x32d919);_0x2207b8[_0xa0e6('0xc')]({'type':_0x6f255b[_0xa0e6('0x3')],'app':'Hangup','exten':_0x6f255b[_0xa0e6('0xa')],'context':_0x6f255b[_0xa0e6('0x9')],'priority':_[_0xa0e6('0x4c')](_0x2207b8)['priority']+0x1,'VoiceExtensionId':_0x6f255b['id']});return _0x2207b8;});}}});};