a5a25627b03f5c00061c0ca3704ff827c9d4e737
[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 _0x15c6=['startsWith','cdr','split','substring','lastIndexOf','includes','noop','execif','gotoif','lodash','util','./utils','./transfers.controller','NO\x20ANSWER','FAILED','BUSY','blinds','uniqueid','transfereeuniqueid','info','format','channel','queue','membername','interface','lastevent','accountcode','UserId','request','CreateVoiceCallReport','recording','debug','[%s][calls][newchannel]','linkedid','[%s][calls][newchannel]\x20context:%s\x20exten:%s','context','exten','DOCUMENTATION','newstate','[%s][calls][newstate]','channelstate','[%s][calls][newstate]\x20context:%s\x20channel:%s','systemanswertime','now','isNil','transfer','[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s','answertime','disposition','toNumber','ANSWERED','error','hangup','[%s][calls][hangup]','callerid','calleridname','calleridnum','[%s][calls][hangup]\x20callerid:%s\x20reason:%s','cause-txt','endtime','diffTime','starttime','billableseconds','localtwolinkedid','[%s][calls][attendedtransfer]','origtransfereruniqueid','transfereechannel','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','destinationchannel','secondtransfererchannel','userfield','_attended','origtransfererchannel','musiconholdstartAt','[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s','[%s][calls][musiconholdstart]','musiconholdstop','[%s][calls][musiconholdstop]','mohtime','[%s][calls][musiconholdstop]\x20mohtime:%s','varset','[%s][calls][varset]','variable','xmd-originatecalleridnum','source','xmd-phone','[%s][calls][varset]\x20variable:xmd-phone\x20value:%s','value','destination','\x22\x20<','[%s][calls][varset]\x20variable:%s\x20value:%s','xmd-callerid-preview','xmd-queue','xmcs-queue','lastapplication','Queue','lastdata','xmd-contactid','[%s][calls][varset]\x20variable:xmd-contactid\x20value:%s','ContactId','[%s][calls][varset]\x20variable:xmd-cdrtype\x20value:%s','type','outboundrouteid','[%s][calls][varset]\x20variable:outboundrouteid\x20value:%s','routeid','sipcallid','[%s][calls][varset]\x20variable:sipcallid\x20value:%s','newexten','[%s][calls][newexten]','[%s][calls][newexten]\x20application:%s\x20appdata:%s','application','appdata','toLowerCase'];(function(_0x4d2240,_0xb25126){var _0xcf51cd=function(_0x33f455){while(--_0x33f455){_0x4d2240['push'](_0x4d2240['shift']());}};_0xcf51cd(++_0xb25126);}(_0x15c6,0x1cd));var _0x615c=function(_0x718f1f,_0x2e2338){_0x718f1f=_0x718f1f-0x0;var _0x48b289=_0x15c6[_0x718f1f];return _0x48b289;};'use strict';var _=require(_0x615c('0x0'));var util=require(_0x615c('0x1'));var utils=require(_0x615c('0x2'));var transfers=require(_0x615c('0x3'));var dispositions=[_0x615c('0x4'),_0x615c('0x5'),_0x615c('0x5'),_0x615c('0x4'),'NO\x20ANSWER','NO\x20ANSWER','ANSWERED',_0x615c('0x6'),_0x615c('0x5'),_0x615c('0x5'),'FAILED'];var channels={};function writeDB(_0x69f69d){var _0x623eb8;if(transfers[_0x615c('0x7')][_0x69f69d[_0x615c('0x8')]]){_0x623eb8=_0x69f69d['uniqueid'];_0x69f69d[_0x615c('0x8')]=transfers['blinds'][_0x69f69d[_0x615c('0x8')]][_0x615c('0x9')];}utils[_0x615c('0xa')](util[_0x615c('0xb')]('[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s',_0x69f69d['uniqueid'],_0x69f69d[_0x615c('0xc')],_0x69f69d[_0x615c('0xd')],_0x69f69d[_0x615c('0xe')],_0x69f69d[_0x615c('0xf')],_0x69f69d['calleridnum'],_0x69f69d['connectedlinenum'],_0x69f69d[_0x615c('0x10')]));if(_0x69f69d[_0x615c('0x11')]){utils['getUserByInternal'](_0x69f69d[_0x615c('0x11')])['then'](function(_0x525708){if(_0x525708){_0x69f69d[_0x615c('0x12')]=_0x525708['id'];}utils[_0x615c('0x13')](_0x615c('0x14'),_0x69f69d);});}else{utils[_0x615c('0x13')](_0x615c('0x14'),_0x69f69d);}if(channels[_0x69f69d[_0x615c('0x8')]]){delete channels[_0x69f69d['uniqueid']];}else if(_0x623eb8&&channels[_0x623eb8]){if(!transfers[_0x615c('0x7')][_0x623eb8][_0x615c('0x15')])delete transfers[_0x615c('0x7')][_0x623eb8];delete channels[_0x623eb8];}}exports['newchannel']=function(_0x3022bd){try{utils[_0x615c('0x16')](util[_0x615c('0xb')](_0x615c('0x17'),_0x3022bd[_0x615c('0x8')]),_0x3022bd);if(_0x3022bd[_0x615c('0x8')]==_0x3022bd[_0x615c('0x18')]&&_0x3022bd[_0x615c('0xc')]!='OutgoingSpoolFailed'){utils['info'](util['format'](_0x615c('0x19'),_0x3022bd[_0x615c('0x8')],_0x3022bd[_0x615c('0x1a')],_0x3022bd[_0x615c('0x1b')]));channels[_0x3022bd['uniqueid']]={'uniqueid':_0x3022bd['uniqueid'],'accountcode':_0x3022bd[_0x615c('0x11')],'source':_0x3022bd['calleridnum'],'destination':_0x3022bd[_0x615c('0x1b')],'destinationcontext':_0x3022bd['context'],'channel':_0x3022bd[_0x615c('0xc')],'starttime':utils['now'](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':_0x615c('0x4'),'amaflags':_0x615c('0x1c')};}}catch(_0x5d148b){utils['error'](util[_0x615c('0xb')](_0x615c('0x17'),_0x3022bd[_0x615c('0x8')]),_0x5d148b);}};exports[_0x615c('0x1d')]=function(_0x3ce866){try{utils['debug'](util[_0x615c('0xb')](_0x615c('0x1e'),_0x3ce866['uniqueid']),_0x3ce866);if(!_['isNil'](channels[_0x3ce866[_0x615c('0x8')]])&&_0x3ce866[_0x615c('0x1f')]==0x6){utils[_0x615c('0xa')](util['format'](_0x615c('0x20'),_0x3ce866[_0x615c('0x8')],_0x3ce866[_0x615c('0x1a')],_0x3ce866[_0x615c('0xc')]));if(_['isNil'](channels[_0x3ce866[_0x615c('0x8')]][_0x615c('0x21')])){channels[_0x3ce866[_0x615c('0x8')]][_0x615c('0x21')]=utils[_0x615c('0x22')]();}}else if(!_[_0x615c('0x23')](channels[_0x3ce866[_0x615c('0x18')]])&&_0x3ce866[_0x615c('0x1f')]==0x6&&_0x3ce866[_0x615c('0x1a')]!=_0x615c('0x24')){utils[_0x615c('0xa')](util[_0x615c('0xb')](_0x615c('0x25'),_0x3ce866[_0x615c('0x8')],_0x3ce866['linkedid'],_0x3ce866[_0x615c('0x1a')],_0x3ce866[_0x615c('0xc')]));channels[_0x3ce866[_0x615c('0x18')]][_0x615c('0x11')]=_0x3ce866[_0x615c('0x11')];channels[_0x3ce866[_0x615c('0x18')]]['destinationchannel']=_0x3ce866[_0x615c('0xc')];if(_[_0x615c('0x23')](channels[_0x3ce866[_0x615c('0x18')]][_0x615c('0x26')])){channels[_0x3ce866[_0x615c('0x18')]]['answertime']=utils[_0x615c('0x22')]();}channels[_0x3ce866['linkedid']][_0x615c('0x27')]=dispositions[_[_0x615c('0x28')](_0x3ce866[_0x615c('0x1f')])]||_0x615c('0x29');}}catch(_0x14926e){utils[_0x615c('0x2a')](util['format'](_0x615c('0x1e'),_0x3ce866[_0x615c('0x8')]),_0x14926e);}};exports[_0x615c('0x2b')]=function(_0x1adb0f){try{if(!_[_0x615c('0x23')](channels[_0x1adb0f[_0x615c('0x8')]])){utils[_0x615c('0x16')](util['format'](_0x615c('0x2c'),_0x1adb0f[_0x615c('0x8')]),_0x1adb0f);if(_[_0x615c('0x23')](channels[_0x1adb0f[_0x615c('0x8')]]['callerid'])){channels[_0x1adb0f[_0x615c('0x8')]][_0x615c('0x2d')]=_0x1adb0f[_0x615c('0x2e')]+'\x20<'+_0x1adb0f[_0x615c('0x2f')]+'>';}utils['info'](util['format'](_0x615c('0x30'),_0x1adb0f[_0x615c('0x8')],channels[_0x1adb0f[_0x615c('0x8')]]['callerid'],_0x1adb0f[_0x615c('0x31')]));channels[_0x1adb0f[_0x615c('0x8')]][_0x615c('0x32')]=utils[_0x615c('0x22')]();channels[_0x1adb0f['uniqueid']]['duration']=utils[_0x615c('0x33')](channels[_0x1adb0f['uniqueid']][_0x615c('0x32')],channels[_0x1adb0f[_0x615c('0x8')]][_0x615c('0x34')]);channels[_0x1adb0f['uniqueid']][_0x615c('0x35')]=channels[_0x1adb0f[_0x615c('0x8')]][_0x615c('0x26')]?utils[_0x615c('0x33')](channels[_0x1adb0f[_0x615c('0x8')]]['endtime'],channels[_0x1adb0f[_0x615c('0x8')]][_0x615c('0x26')]):0x0;writeDB(channels[_0x1adb0f['uniqueid']]);}}catch(_0x4d7ad5){utils['error'](util[_0x615c('0xb')](_0x615c('0x2c'),_0x1adb0f['uniqueid']),_0x4d7ad5);}};exports['attendedtransfer']=function(_0x2470d8){try{if(!_[_0x615c('0x23')](channels[_0x2470d8[_0x615c('0x36')]])){utils[_0x615c('0x16')](util[_0x615c('0xb')](_0x615c('0x37'),_0x2470d8[_0x615c('0x38')]),_0x2470d8);if(channels[_0x2470d8[_0x615c('0x36')]][_0x615c('0xc')]==_0x2470d8[_0x615c('0x39')]){utils['info'](util[_0x615c('0xb')](_0x615c('0x3a'),_0x2470d8[_0x615c('0x38')],_0x2470d8[_0x615c('0x36')],_0x2470d8['secondtransfererchannel']));channels[_0x2470d8[_0x615c('0x36')]][_0x615c('0x3b')]=_0x2470d8[_0x615c('0x3c')];channels[_0x2470d8[_0x615c('0x36')]][_0x615c('0x3d')]=_0x615c('0x3e');}else if(channels[_0x2470d8['localtwolinkedid']][_0x615c('0xc')]=_0x2470d8['transfertargetchannel']){utils['info'](util[_0x615c('0xb')]('[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s',_0x2470d8[_0x615c('0x38')],_0x2470d8[_0x615c('0x36')],_0x2470d8[_0x615c('0x3f')]));channels[_0x2470d8[_0x615c('0x36')]][_0x615c('0x3b')]=_0x2470d8[_0x615c('0x3f')];channels[_0x2470d8[_0x615c('0x36')]]['userfield']=_0x615c('0x3e');}}}catch(_0x364264){utils['error'](util[_0x615c('0xb')](_0x615c('0x37'),_0x2470d8[_0x615c('0x38')]),_0x364264);}};exports['musiconholdstart']=function(_0x2b6c00){try{if(!_[_0x615c('0x23')](channels[_0x2b6c00[_0x615c('0x8')]])){utils['debug'](util[_0x615c('0xb')]('[%s][calls][musiconholdstart]',_0x2b6c00[_0x615c('0x8')]),_0x2b6c00);channels[_0x2b6c00[_0x615c('0x8')]][_0x615c('0x40')]=utils[_0x615c('0x22')]();utils[_0x615c('0xa')](util['format'](_0x615c('0x41'),_0x2b6c00[_0x615c('0x8')],channels[_0x2b6c00['uniqueid']][_0x615c('0x40')]));}}catch(_0x4b3c42){utils[_0x615c('0x2a')](util[_0x615c('0xb')](_0x615c('0x42'),_0x2b6c00[_0x615c('0x8')]),_0x4b3c42);}};exports[_0x615c('0x43')]=function(_0x1bee36){try{if(!_[_0x615c('0x23')](channels[_0x1bee36[_0x615c('0x8')]])){utils[_0x615c('0x16')](util['format'](_0x615c('0x44'),_0x1bee36[_0x615c('0x8')]),_0x1bee36);if(!_['isNil'](channels[_0x1bee36[_0x615c('0x8')]][_0x615c('0x40')])){channels[_0x1bee36[_0x615c('0x8')]][_0x615c('0x45')]+=utils[_0x615c('0x33')](utils['now'](),channels[_0x1bee36['uniqueid']][_0x615c('0x40')]);utils[_0x615c('0xa')](util[_0x615c('0xb')](_0x615c('0x46'),_0x1bee36[_0x615c('0x8')],channels[_0x1bee36[_0x615c('0x8')]][_0x615c('0x45')]));delete channels[_0x1bee36[_0x615c('0x8')]][_0x615c('0x40')];}}}catch(_0x4a92e1){utils['error'](util['format']('[%s][calls][musiconholdstop]',_0x1bee36[_0x615c('0x8')]),_0x4a92e1);}};exports[_0x615c('0x47')]=function(_0x42583c){try{if(!_[_0x615c('0x23')](channels[_0x42583c[_0x615c('0x8')]])){utils[_0x615c('0x16')](util[_0x615c('0xb')](_0x615c('0x48'),_0x42583c[_0x615c('0x8')]),_0x42583c);if(!_[_0x615c('0x23')](_0x42583c[_0x615c('0x49')][_0x615c('0x4a')])){utils['info'](util[_0x615c('0xb')]('[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s',_0x42583c['uniqueid'],_0x42583c['value']));channels[_0x42583c[_0x615c('0x8')]][_0x615c('0x4b')]=_0x42583c['value'];}if(!_[_0x615c('0x23')](_0x42583c[_0x615c('0x49')][_0x615c('0x4c')])){utils['info'](util[_0x615c('0xb')](_0x615c('0x4d'),_0x42583c[_0x615c('0x8')],_0x42583c[_0x615c('0x4e')]));channels[_0x42583c[_0x615c('0x8')]][_0x615c('0x4f')]=_0x42583c[_0x615c('0x4e')];channels[_0x42583c[_0x615c('0x8')]][_0x615c('0x2d')]='\x22'+_0x42583c[_0x615c('0x4e')]+_0x615c('0x50')+_0x42583c[_0x615c('0x4e')]+'>';}if(!_[_0x615c('0x23')](_0x42583c[_0x615c('0x49')]['xmd-callerid-preview'])||!_['isNil'](_0x42583c['variable']['xmd-callerid'])){utils['info'](util['format'](_0x615c('0x51'),_0x42583c['uniqueid'],!_[_0x615c('0x23')](_0x42583c[_0x615c('0x49')]['xmd-callerid-preview'])?_0x615c('0x52'):'xmd-callerid',_0x42583c[_0x615c('0x4e')]));channels[_0x42583c[_0x615c('0x8')]][_0x615c('0x2d')]=_0x42583c[_0x615c('0x4e')];}if(!_[_0x615c('0x23')](_0x42583c['variable'][_0x615c('0x53')])||!_[_0x615c('0x23')](_0x42583c['variable']['xmcs-queue'])){utils[_0x615c('0xa')](util[_0x615c('0xb')](_0x615c('0x51'),_0x42583c[_0x615c('0x8')],!_['isNil'](_0x42583c[_0x615c('0x49')][_0x615c('0x53')])?_0x615c('0x53'):_0x615c('0x54'),_0x42583c['value']));channels[_0x42583c[_0x615c('0x8')]][_0x615c('0x55')]=_0x615c('0x56');channels[_0x42583c[_0x615c('0x8')]][_0x615c('0x57')]=_0x42583c[_0x615c('0x4e')];channels[_0x42583c['uniqueid']]['queue']=!![];}if(!_[_0x615c('0x23')](_0x42583c[_0x615c('0x49')][_0x615c('0x58')])){utils[_0x615c('0xa')](util[_0x615c('0xb')](_0x615c('0x59'),_0x42583c[_0x615c('0x8')],_0x42583c[_0x615c('0x4e')]));channels[_0x42583c['uniqueid']][_0x615c('0x5a')]=_0x42583c['value'];}if(!_[_0x615c('0x23')](_0x42583c[_0x615c('0x49')]['xmd-cdrtype'])){utils[_0x615c('0xa')](util['format'](_0x615c('0x5b'),_0x42583c['uniqueid'],_0x42583c[_0x615c('0x4e')]));channels[_0x42583c['uniqueid']][_0x615c('0x5c')]=_0x42583c[_0x615c('0x4e')];}if(!_[_0x615c('0x23')](_0x42583c[_0x615c('0x49')][_0x615c('0x5d')])){utils['info'](util['format'](_0x615c('0x5e'),_0x42583c[_0x615c('0x8')],_0x42583c[_0x615c('0x4e')]));channels[_0x42583c[_0x615c('0x8')]][_0x615c('0x5f')]=_0x42583c[_0x615c('0x4e')];}if(!_['isNil'](_0x42583c[_0x615c('0x49')][_0x615c('0x60')])){utils['info'](util['format'](_0x615c('0x61'),_0x42583c['uniqueid'],_0x42583c[_0x615c('0x4e')]));channels[_0x42583c[_0x615c('0x8')]]['sipcallid']=_0x42583c[_0x615c('0x4e')];}}}catch(_0x1393d6){utils[_0x615c('0x2a')](util[_0x615c('0xb')](_0x615c('0x48'),_0x42583c['uniqueid']),_0x1393d6);}};exports[_0x615c('0x62')]=function(_0x4d1d5f){try{if(!_['isNil'](channels[_0x4d1d5f['uniqueid']])){utils[_0x615c('0x16')](util['format'](_0x615c('0x63'),_0x4d1d5f[_0x615c('0x8')]),_0x4d1d5f);utils[_0x615c('0xa')](util['format'](_0x615c('0x64'),_0x4d1d5f[_0x615c('0x8')],_0x4d1d5f[_0x615c('0x65')],_0x4d1d5f[_0x615c('0x66')]));if(_0x4d1d5f['application'][_0x615c('0x67')]()=='set'&&_[_0x615c('0x68')](_0x4d1d5f[_0x615c('0x66')][_0x615c('0x67')](),_0x615c('0x69'))){var _0x39b369=_0x4d1d5f[_0x615c('0x66')][_0x615c('0x6a')]('=');var _0x3fb672=_0x39b369[0x0][_0x615c('0x6b')](_0x39b369[0x0][_0x615c('0x6c')]('(')+0x1,_0x39b369[0x0][_0x615c('0x6c')](')'));var _0x19b088=_0x39b369[0x1];channels[_0x4d1d5f[_0x615c('0x8')]][_0x3fb672]=_0x19b088;}if(!_[_0x615c('0x6d')](['hangup',_0x615c('0x6e'),_0x615c('0x6f'),'set',_0x615c('0x70')],_0x4d1d5f[_0x615c('0x65')][_0x615c('0x67')]())){channels[_0x4d1d5f[_0x615c('0x8')]][_0x615c('0x55')]=_0x4d1d5f[_0x615c('0x65')];channels[_0x4d1d5f[_0x615c('0x8')]]['lastdata']=_0x4d1d5f['appdata'];}}}catch(_0x272247){utils[_0x615c('0x2a')](util[_0x615c('0xb')](_0x615c('0x63'),_0x4d1d5f[_0x615c('0x8')]),_0x272247);}};