Built motion from commit (unavailable).|2.4.18
[motion2.git] / server / services / xdr / calls.controller.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 _0x915b=['DOCUMENTATION','error','isNil','channelstate','systemanswertime','context','transfer','destinationchannel','channel','answertime','toNumber','hangup','callerid','calleridname','calleridnum','endtime','duration','diffTime','starttime','billableseconds','attendedtransfer','transfereechannel','localtwolinkedid','secondtransfererchannel','userfield','stack','musiconholdstart','musiconholdstop','musiconholdstartAt','varset','variable','xmd-originatecalleridnum','value','xmd-phone','\x22\x20<','xmd-callerid-preview','xmd-callerid','xmd-queue','xmcs-queue','lastapplication','lastdata','queue','ContactId','outboundrouteid','routeid','sipcallid','newexten','application','toLowerCase','set','appdata','cdr','split','substring','lastIndexOf','includes','noop','gotoif','lodash','./utils','NO\x20ANSWER','FAILED','ANSWERED','format','CALL|%s|%s|%s|%s|%s|%s|%s|%s','uniqueid','type','accountcode','source','destination','disposition','getUserByInternal','then','UserId','request','CreateVoiceCallReport','newchannel','linkedid','OutgoingSpoolFailed','exten','now'];(function(_0x309498,_0x32805b){var _0x3694ad=function(_0x41c40b){while(--_0x41c40b){_0x309498['push'](_0x309498['shift']());}};_0x3694ad(++_0x32805b);}(_0x915b,0xdc));var _0xb915=function(_0x314308,_0x47377a){_0x314308=_0x314308-0x0;var _0x24f3e8=_0x915b[_0x314308];return _0x24f3e8;};'use strict';var _=require(_0xb915('0x0'));var util=require('util');var utils=require(_0xb915('0x1'));var dispositions=[_0xb915('0x2'),_0xb915('0x3'),_0xb915('0x3'),_0xb915('0x2'),_0xb915('0x2'),_0xb915('0x2'),_0xb915('0x4'),'BUSY',_0xb915('0x3'),'FAILED',_0xb915('0x3')];var channels={};function writeDB(_0x2ffe07){utils['info'](util[_0xb915('0x5')](_0xb915('0x6'),_0x2ffe07[_0xb915('0x7')],_0x2ffe07['channel'],_0x2ffe07[_0xb915('0x8')],_0x2ffe07[_0xb915('0x9')],_0x2ffe07[_0xb915('0xa')],_0x2ffe07[_0xb915('0xb')],_0x2ffe07['callerid'],_0x2ffe07[_0xb915('0xc')]));if(_0x2ffe07[_0xb915('0x9')]){utils[_0xb915('0xd')](_0x2ffe07['accountcode'])[_0xb915('0xe')](function(_0x168f5){if(_0x168f5){_0x2ffe07[_0xb915('0xf')]=_0x168f5['id'];}utils[_0xb915('0x10')](_0xb915('0x11'),_0x2ffe07);});}else{utils[_0xb915('0x10')]('CreateVoiceCallReport',_0x2ffe07);}if(channels[_0x2ffe07[_0xb915('0x7')]]){delete channels[_0x2ffe07[_0xb915('0x7')]];}}exports[_0xb915('0x12')]=function(_0xf664e8){try{if(_0xf664e8['uniqueid']==_0xf664e8[_0xb915('0x13')]&&_0xf664e8['channel']!=_0xb915('0x14')){channels[_0xf664e8['uniqueid']]={'uniqueid':_0xf664e8[_0xb915('0x7')],'accountcode':_0xf664e8[_0xb915('0x9')],'source':_0xf664e8['calleridnum'],'destination':_0xf664e8[_0xb915('0x15')],'destinationcontext':_0xf664e8['context'],'channel':_0xf664e8['channel'],'starttime':utils[_0xb915('0x16')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':'NO\x20ANSWER','amaflags':_0xb915('0x17')};}}catch(_0x43d07f){utils[_0xb915('0x18')](_0x43d07f['stack']);}};exports['newstate']=function(_0x59463e){try{if(!_[_0xb915('0x19')](channels[_0x59463e[_0xb915('0x7')]])&&_0x59463e[_0xb915('0x1a')]==0x6){if(_[_0xb915('0x19')](channels[_0x59463e['uniqueid']][_0xb915('0x1b')])){channels[_0x59463e[_0xb915('0x7')]][_0xb915('0x1b')]=utils[_0xb915('0x16')]();}}else if(!_[_0xb915('0x19')](channels[_0x59463e[_0xb915('0x13')]])&&_0x59463e[_0xb915('0x1a')]==0x6&&_0x59463e[_0xb915('0x1c')]!=_0xb915('0x1d')){channels[_0x59463e[_0xb915('0x13')]][_0xb915('0x9')]=_0x59463e['accountcode'];channels[_0x59463e['linkedid']][_0xb915('0x1e')]=_0x59463e[_0xb915('0x1f')];if(_[_0xb915('0x19')](channels[_0x59463e[_0xb915('0x13')]][_0xb915('0x20')])){channels[_0x59463e['linkedid']]['answertime']=utils['now']();}channels[_0x59463e[_0xb915('0x13')]][_0xb915('0xc')]=dispositions[_[_0xb915('0x21')](_0x59463e[_0xb915('0x1a')])]||'ANSWERED';}}catch(_0x4e1eff){utils[_0xb915('0x18')](_0x4e1eff['stack']);}};exports[_0xb915('0x22')]=function(_0x33224c){try{if(!_[_0xb915('0x19')](channels[_0x33224c[_0xb915('0x7')]])){if(_[_0xb915('0x19')](channels[_0x33224c['uniqueid']][_0xb915('0x23')])){channels[_0x33224c[_0xb915('0x7')]][_0xb915('0x23')]=_0x33224c[_0xb915('0x24')]+'\x20<'+_0x33224c[_0xb915('0x25')]+'>';}channels[_0x33224c['uniqueid']][_0xb915('0x26')]=utils[_0xb915('0x16')]();channels[_0x33224c['uniqueid']][_0xb915('0x27')]=utils[_0xb915('0x28')](channels[_0x33224c[_0xb915('0x7')]][_0xb915('0x26')],channels[_0x33224c[_0xb915('0x7')]][_0xb915('0x29')]);channels[_0x33224c['uniqueid']][_0xb915('0x2a')]=channels[_0x33224c[_0xb915('0x7')]]['answertime']?utils[_0xb915('0x28')](channels[_0x33224c[_0xb915('0x7')]]['endtime'],channels[_0x33224c[_0xb915('0x7')]][_0xb915('0x20')]):0x0;writeDB(channels[_0x33224c['uniqueid']]);}}catch(_0x154a7d){utils['error'](_0x154a7d['stack']);}};exports[_0xb915('0x2b')]=function(_0x1e3ce6){try{if(!_[_0xb915('0x19')](channels[_0x1e3ce6['localtwolinkedid']])){if(channels[_0x1e3ce6['localtwolinkedid']][_0xb915('0x1f')]==_0x1e3ce6[_0xb915('0x2c')]){channels[_0x1e3ce6[_0xb915('0x2d')]]['destinationchannel']=_0x1e3ce6[_0xb915('0x2e')];channels[_0x1e3ce6[_0xb915('0x2d')]][_0xb915('0x2f')]='_attended';}else if(channels[_0x1e3ce6[_0xb915('0x2d')]][_0xb915('0x1f')]=_0x1e3ce6['transfertargetchannel']){channels[_0x1e3ce6[_0xb915('0x2d')]][_0xb915('0x1e')]=_0x1e3ce6['origtransfererchannel'];channels[_0x1e3ce6[_0xb915('0x2d')]]['userfield']='_attended';}}}catch(_0x3e7c9a){utils[_0xb915('0x18')](_0x3e7c9a[_0xb915('0x30')]);}};exports[_0xb915('0x31')]=function(_0x5ba417){try{if(!_[_0xb915('0x19')](channels[_0x5ba417[_0xb915('0x7')]])){channels[_0x5ba417['uniqueid']]['musiconholdstartAt']=utils[_0xb915('0x16')]();}}catch(_0x25496e){utils['error'](_0x25496e[_0xb915('0x30')]);}};exports[_0xb915('0x32')]=function(_0x50e150){try{if(!_[_0xb915('0x19')](channels[_0x50e150[_0xb915('0x7')]])){if(!_[_0xb915('0x19')](channels[_0x50e150[_0xb915('0x7')]]['musiconholdstartAt'])){channels[_0x50e150['uniqueid']]['mohtime']+=utils[_0xb915('0x28')](utils['now'](),channels[_0x50e150[_0xb915('0x7')]][_0xb915('0x33')]);delete channels[_0x50e150[_0xb915('0x7')]]['musiconholdstartAt'];}}}catch(_0x3521ce){utils[_0xb915('0x18')](_0x3521ce[_0xb915('0x30')]);}};exports[_0xb915('0x34')]=function(_0xf485be){try{if(!_[_0xb915('0x19')](channels[_0xf485be[_0xb915('0x7')]])){if(!_[_0xb915('0x19')](_0xf485be[_0xb915('0x35')][_0xb915('0x36')])){channels[_0xf485be[_0xb915('0x7')]][_0xb915('0xa')]=_0xf485be[_0xb915('0x37')];}if(!_['isNil'](_0xf485be[_0xb915('0x35')][_0xb915('0x38')])){channels[_0xf485be[_0xb915('0x7')]][_0xb915('0xb')]=_0xf485be[_0xb915('0x37')];channels[_0xf485be[_0xb915('0x7')]][_0xb915('0x23')]='\x22'+_0xf485be['value']+_0xb915('0x39')+_0xf485be['value']+'>';}if(!_[_0xb915('0x19')](_0xf485be[_0xb915('0x35')][_0xb915('0x3a')])||!_[_0xb915('0x19')](_0xf485be['variable'][_0xb915('0x3b')])){channels[_0xf485be[_0xb915('0x7')]][_0xb915('0x23')]=_0xf485be[_0xb915('0x37')];}if(!_[_0xb915('0x19')](_0xf485be['variable'][_0xb915('0x3c')])||!_['isNil'](_0xf485be[_0xb915('0x35')][_0xb915('0x3d')])){channels[_0xf485be[_0xb915('0x7')]][_0xb915('0x3e')]='Queue';channels[_0xf485be[_0xb915('0x7')]][_0xb915('0x3f')]=_0xf485be['value'];channels[_0xf485be[_0xb915('0x7')]][_0xb915('0x40')]=!![];}if(!_['isNil'](_0xf485be[_0xb915('0x35')]['xmd-contactid'])){channels[_0xf485be['uniqueid']][_0xb915('0x41')]=_0xf485be[_0xb915('0x37')];}if(!_[_0xb915('0x19')](_0xf485be[_0xb915('0x35')]['xmd-cdrtype'])){channels[_0xf485be[_0xb915('0x7')]]['type']=_0xf485be[_0xb915('0x37')];}if(!_[_0xb915('0x19')](_0xf485be[_0xb915('0x35')][_0xb915('0x42')])){channels[_0xf485be[_0xb915('0x7')]][_0xb915('0x43')]=_0xf485be[_0xb915('0x37')];}if(!_[_0xb915('0x19')](_0xf485be[_0xb915('0x35')][_0xb915('0x44')])){channels[_0xf485be[_0xb915('0x7')]][_0xb915('0x44')]=_0xf485be[_0xb915('0x37')];}}}catch(_0x208238){utils[_0xb915('0x18')](_0x208238['stack']);}};exports[_0xb915('0x45')]=function(_0xd86fd){try{if(!_[_0xb915('0x19')](channels[_0xd86fd[_0xb915('0x7')]])){if(_0xd86fd[_0xb915('0x46')][_0xb915('0x47')]()==_0xb915('0x48')&&_['startsWith'](_0xd86fd[_0xb915('0x49')][_0xb915('0x47')](),_0xb915('0x4a'))){var _0x431bf9=_0xd86fd[_0xb915('0x49')][_0xb915('0x4b')]('=');var _0x2a3c51=_0x431bf9[0x0][_0xb915('0x4c')](_0x431bf9[0x0][_0xb915('0x4d')]('(')+0x1,_0x431bf9[0x0][_0xb915('0x4d')](')'));var _0x4ca9b0=_0x431bf9[0x1];channels[_0xd86fd[_0xb915('0x7')]][_0x2a3c51]=_0x4ca9b0;}if(!_[_0xb915('0x4e')]([_0xb915('0x22'),_0xb915('0x4f'),'execif',_0xb915('0x48'),_0xb915('0x50')],_0xd86fd[_0xb915('0x46')][_0xb915('0x47')]())){channels[_0xd86fd[_0xb915('0x7')]][_0xb915('0x3e')]=_0xd86fd['application'];channels[_0xd86fd[_0xb915('0x7')]][_0xb915('0x3f')]=_0xd86fd[_0xb915('0x49')];}}}catch(_0x2f275e){utils[_0xb915('0x18')](_0x2f275e['stack']);}};