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 _0x6c9f=['source','callerid','disposition','getUserByInternal','then','UserId','request','CreateVoiceCallReport','newchannel','linkedid','OutgoingSpoolFailed','calleridnum','now','DOCUMENTATION','error','newstate','isNil','systemanswertime','channelstate','context','transfer','answertime','stack','hangup','calleridname','endtime','duration','diffTime','starttime','billableseconds','attendedtransfer','localtwolinkedid','destinationchannel','secondtransfererchannel','userfield','origtransfererchannel','_attended','musiconholdstartAt','musiconholdstop','varset','xmd-originatecalleridnum','value','variable','xmd-phone','destination','\x22\x20<','xmd-callerid','xmd-queue','lastapplication','Queue','lastdata','xmd-contactid','outboundrouteid','routeid','sipcallid','newexten','application','toLowerCase','set','startsWith','appdata','cdr','split','substring','lastIndexOf','execif','gotoif','lodash','util','./utils','NO\x20ANSWER','FAILED','ANSWERED','info','format','CALL|%s|%s|%s|%s|%s|%s|%s|%s','uniqueid','channel','type','accountcode'];(function(_0x4fe9c3,_0x3597cb){var _0x478894=function(_0x66f75d){while(--_0x66f75d){_0x4fe9c3['push'](_0x4fe9c3['shift']());}};_0x478894(++_0x3597cb);}(_0x6c9f,0xe3));var _0xf6c9=function(_0x4b2b07,_0x11f034){_0x4b2b07=_0x4b2b07-0x0;var _0x2a840a=_0x6c9f[_0x4b2b07];return _0x2a840a;};'use strict';var _=require(_0xf6c9('0x0'));var util=require(_0xf6c9('0x1'));var utils=require(_0xf6c9('0x2'));var dispositions=[_0xf6c9('0x3'),_0xf6c9('0x4'),'FAILED',_0xf6c9('0x3'),_0xf6c9('0x3'),_0xf6c9('0x3'),_0xf6c9('0x5'),'BUSY','FAILED','FAILED',_0xf6c9('0x4')];var channels={};function writeDB(_0x4b5fe1){utils[_0xf6c9('0x6')](util[_0xf6c9('0x7')](_0xf6c9('0x8'),_0x4b5fe1[_0xf6c9('0x9')],_0x4b5fe1[_0xf6c9('0xa')],_0x4b5fe1[_0xf6c9('0xb')],_0x4b5fe1[_0xf6c9('0xc')],_0x4b5fe1[_0xf6c9('0xd')],_0x4b5fe1['destination'],_0x4b5fe1[_0xf6c9('0xe')],_0x4b5fe1[_0xf6c9('0xf')]));if(_0x4b5fe1['accountcode']){utils[_0xf6c9('0x10')](_0x4b5fe1['accountcode'])[_0xf6c9('0x11')](function(_0x194750){if(_0x194750){_0x4b5fe1[_0xf6c9('0x12')]=_0x194750['id'];}utils[_0xf6c9('0x13')](_0xf6c9('0x14'),_0x4b5fe1);});}else{utils['request'](_0xf6c9('0x14'),_0x4b5fe1);}if(channels[_0x4b5fe1[_0xf6c9('0x9')]]){delete channels[_0x4b5fe1[_0xf6c9('0x9')]];}}exports[_0xf6c9('0x15')]=function(_0x1df6a8){try{if(_0x1df6a8[_0xf6c9('0x9')]==_0x1df6a8[_0xf6c9('0x16')]&&_0x1df6a8[_0xf6c9('0xa')]!=_0xf6c9('0x17')){channels[_0x1df6a8[_0xf6c9('0x9')]]={'uniqueid':_0x1df6a8[_0xf6c9('0x9')],'accountcode':_0x1df6a8['accountcode'],'source':_0x1df6a8[_0xf6c9('0x18')],'destination':_0x1df6a8['exten'],'destinationcontext':_0x1df6a8['context'],'channel':_0x1df6a8[_0xf6c9('0xa')],'starttime':utils[_0xf6c9('0x19')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':_0xf6c9('0x3'),'amaflags':_0xf6c9('0x1a')};}}catch(_0x350671){utils[_0xf6c9('0x1b')](_0x350671['stack']);}};exports[_0xf6c9('0x1c')]=function(_0x23eef8){try{if(!_['isNil'](channels[_0x23eef8['uniqueid']])&&_0x23eef8['channelstate']==0x6){if(_[_0xf6c9('0x1d')](channels[_0x23eef8[_0xf6c9('0x9')]][_0xf6c9('0x1e')])){channels[_0x23eef8[_0xf6c9('0x9')]]['systemanswertime']=utils[_0xf6c9('0x19')]();}}else if(!_[_0xf6c9('0x1d')](channels[_0x23eef8[_0xf6c9('0x16')]])&&_0x23eef8[_0xf6c9('0x1f')]==0x6&&_0x23eef8[_0xf6c9('0x20')]!=_0xf6c9('0x21')){channels[_0x23eef8[_0xf6c9('0x16')]]['accountcode']=_0x23eef8[_0xf6c9('0xc')];channels[_0x23eef8[_0xf6c9('0x16')]]['destinationchannel']=_0x23eef8[_0xf6c9('0xa')];if(_['isNil'](channels[_0x23eef8[_0xf6c9('0x16')]][_0xf6c9('0x22')])){channels[_0x23eef8['linkedid']][_0xf6c9('0x22')]=utils[_0xf6c9('0x19')]();}channels[_0x23eef8[_0xf6c9('0x16')]]['disposition']=dispositions[_['toNumber'](_0x23eef8[_0xf6c9('0x1f')])]||_0xf6c9('0x5');}}catch(_0x13df19){utils[_0xf6c9('0x1b')](_0x13df19[_0xf6c9('0x23')]);}};exports[_0xf6c9('0x24')]=function(_0x2f2f68){try{if(!_[_0xf6c9('0x1d')](channels[_0x2f2f68[_0xf6c9('0x9')]])){if(_[_0xf6c9('0x1d')](channels[_0x2f2f68[_0xf6c9('0x9')]]['callerid'])){channels[_0x2f2f68[_0xf6c9('0x9')]][_0xf6c9('0xe')]=_0x2f2f68[_0xf6c9('0x25')]+'\x20<'+_0x2f2f68[_0xf6c9('0x18')]+'>';}channels[_0x2f2f68['uniqueid']][_0xf6c9('0x26')]=utils[_0xf6c9('0x19')]();channels[_0x2f2f68['uniqueid']][_0xf6c9('0x27')]=utils[_0xf6c9('0x28')](channels[_0x2f2f68[_0xf6c9('0x9')]][_0xf6c9('0x26')],channels[_0x2f2f68[_0xf6c9('0x9')]][_0xf6c9('0x29')]);channels[_0x2f2f68[_0xf6c9('0x9')]][_0xf6c9('0x2a')]=channels[_0x2f2f68[_0xf6c9('0x9')]]['answertime']?utils['diffTime'](channels[_0x2f2f68[_0xf6c9('0x9')]][_0xf6c9('0x26')],channels[_0x2f2f68[_0xf6c9('0x9')]][_0xf6c9('0x22')]):0x0;writeDB(channels[_0x2f2f68[_0xf6c9('0x9')]]);}}catch(_0x269543){utils[_0xf6c9('0x1b')](_0x269543[_0xf6c9('0x23')]);}};exports[_0xf6c9('0x2b')]=function(_0x23f598){try{if(!_['isNil'](channels[_0x23f598[_0xf6c9('0x2c')]])){if(channels[_0x23f598[_0xf6c9('0x2c')]]['channel']==_0x23f598['transfereechannel']){channels[_0x23f598[_0xf6c9('0x2c')]][_0xf6c9('0x2d')]=_0x23f598[_0xf6c9('0x2e')];channels[_0x23f598[_0xf6c9('0x2c')]][_0xf6c9('0x2f')]='_attended';}else if(channels[_0x23f598[_0xf6c9('0x2c')]][_0xf6c9('0xa')]=_0x23f598['transfertargetchannel']){channels[_0x23f598[_0xf6c9('0x2c')]]['destinationchannel']=_0x23f598[_0xf6c9('0x30')];channels[_0x23f598[_0xf6c9('0x2c')]][_0xf6c9('0x2f')]=_0xf6c9('0x31');}}}catch(_0x2cbf92){utils[_0xf6c9('0x1b')](_0x2cbf92['stack']);}};exports['musiconholdstart']=function(_0x3c7e7a){try{if(!_[_0xf6c9('0x1d')](channels[_0x3c7e7a[_0xf6c9('0x9')]])){channels[_0x3c7e7a[_0xf6c9('0x9')]][_0xf6c9('0x32')]=utils['now']();}}catch(_0x13e6a0){utils['error'](_0x13e6a0[_0xf6c9('0x23')]);}};exports[_0xf6c9('0x33')]=function(_0x55f32c){try{if(!_[_0xf6c9('0x1d')](channels[_0x55f32c[_0xf6c9('0x9')]])){if(!_[_0xf6c9('0x1d')](channels[_0x55f32c[_0xf6c9('0x9')]]['musiconholdstartAt'])){channels[_0x55f32c[_0xf6c9('0x9')]]['mohtime']+=utils[_0xf6c9('0x28')](utils[_0xf6c9('0x19')](),channels[_0x55f32c[_0xf6c9('0x9')]]['musiconholdstartAt']);delete channels[_0x55f32c[_0xf6c9('0x9')]][_0xf6c9('0x32')];}}}catch(_0x54562f){utils[_0xf6c9('0x1b')](_0x54562f[_0xf6c9('0x23')]);}};exports[_0xf6c9('0x34')]=function(_0x4f00d7){try{if(!_[_0xf6c9('0x1d')](channels[_0x4f00d7[_0xf6c9('0x9')]])){if(!_[_0xf6c9('0x1d')](_0x4f00d7['variable'][_0xf6c9('0x35')])){channels[_0x4f00d7['uniqueid']]['source']=_0x4f00d7[_0xf6c9('0x36')];}if(!_[_0xf6c9('0x1d')](_0x4f00d7[_0xf6c9('0x37')][_0xf6c9('0x38')])){channels[_0x4f00d7[_0xf6c9('0x9')]][_0xf6c9('0x39')]=_0x4f00d7['value'];channels[_0x4f00d7['uniqueid']][_0xf6c9('0xe')]='\x22'+_0x4f00d7[_0xf6c9('0x36')]+_0xf6c9('0x3a')+_0x4f00d7[_0xf6c9('0x36')]+'>';}if(!_[_0xf6c9('0x1d')](_0x4f00d7[_0xf6c9('0x37')]['xmd-callerid-preview'])||!_['isNil'](_0x4f00d7[_0xf6c9('0x37')][_0xf6c9('0x3b')])){channels[_0x4f00d7['uniqueid']][_0xf6c9('0xe')]=_0x4f00d7[_0xf6c9('0x36')];}if(!_['isNil'](_0x4f00d7[_0xf6c9('0x37')][_0xf6c9('0x3c')])||!_[_0xf6c9('0x1d')](_0x4f00d7['variable']['xmcs-queue'])){channels[_0x4f00d7[_0xf6c9('0x9')]][_0xf6c9('0x3d')]=_0xf6c9('0x3e');channels[_0x4f00d7[_0xf6c9('0x9')]][_0xf6c9('0x3f')]=_0x4f00d7[_0xf6c9('0x36')];channels[_0x4f00d7[_0xf6c9('0x9')]]['queue']=!![];}if(!_[_0xf6c9('0x1d')](_0x4f00d7['variable'][_0xf6c9('0x40')])){channels[_0x4f00d7['uniqueid']]['ContactId']=_0x4f00d7['value'];}if(!_[_0xf6c9('0x1d')](_0x4f00d7[_0xf6c9('0x37')]['xmd-cdrtype'])){channels[_0x4f00d7['uniqueid']][_0xf6c9('0xb')]=_0x4f00d7[_0xf6c9('0x36')];}if(!_['isNil'](_0x4f00d7[_0xf6c9('0x37')][_0xf6c9('0x41')])){channels[_0x4f00d7[_0xf6c9('0x9')]][_0xf6c9('0x42')]=_0x4f00d7['value'];}if(!_[_0xf6c9('0x1d')](_0x4f00d7[_0xf6c9('0x37')][_0xf6c9('0x43')])){channels[_0x4f00d7[_0xf6c9('0x9')]][_0xf6c9('0x43')]=_0x4f00d7[_0xf6c9('0x36')];}}}catch(_0x4ae6d8){utils[_0xf6c9('0x1b')](_0x4ae6d8[_0xf6c9('0x23')]);}};exports[_0xf6c9('0x44')]=function(_0x1dfa51){try{if(!_['isNil'](channels[_0x1dfa51[_0xf6c9('0x9')]])){if(_0x1dfa51[_0xf6c9('0x45')][_0xf6c9('0x46')]()==_0xf6c9('0x47')&&_[_0xf6c9('0x48')](_0x1dfa51[_0xf6c9('0x49')][_0xf6c9('0x46')](),_0xf6c9('0x4a'))){var _0x28eac3=_0x1dfa51['appdata'][_0xf6c9('0x4b')]('=');var _0x4a8ef8=_0x28eac3[0x0][_0xf6c9('0x4c')](_0x28eac3[0x0][_0xf6c9('0x4d')]('(')+0x1,_0x28eac3[0x0][_0xf6c9('0x4d')](')'));var _0x12e414=_0x28eac3[0x1];channels[_0x1dfa51[_0xf6c9('0x9')]][_0x4a8ef8]=_0x12e414;}if(!_['includes']([_0xf6c9('0x24'),'noop',_0xf6c9('0x4e'),_0xf6c9('0x47'),_0xf6c9('0x4f')],_0x1dfa51[_0xf6c9('0x45')][_0xf6c9('0x46')]())){channels[_0x1dfa51['uniqueid']]['lastapplication']=_0x1dfa51['application'];channels[_0x1dfa51[_0xf6c9('0x9')]][_0xf6c9('0x3f')]=_0x1dfa51['appdata'];}}}catch(_0x10870a){utils[_0xf6c9('0x1b')](_0x10870a[_0xf6c9('0x23')]);}};