Built motion from commit 994c64e1.|2.6.1
[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 _0xe1bd=['linkedid','[%s][calls][newchannel]\x20context:%s\x20exten:%s','context','exten','calleridnum','now','DOCUMENTATION','error','[%s][calls][newstate]','isNil','channelstate','[%s][calls][newstate]\x20context:%s\x20channel:%s','systemanswertime','transfer','answertime','disposition','toNumber','hangup','[%s][calls][hangup]','callerid','[%s][calls][hangup]\x20callerid:%s\x20reason:%s','cause-txt','endtime','duration','diffTime','starttime','billableseconds','attendedtransfer','localtwolinkedid','[%s][calls][attendedtransfer]','transfereechannel','origtransfereruniqueid','secondtransfererchannel','destinationchannel','userfield','_attended','transfertargetchannel','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','origtransfererchannel','[%s][calls][musiconholdstart]','musiconholdstartAt','[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s','musiconholdstop','mohtime','[%s][calls][musiconholdstop]\x20mohtime:%s','[%s][calls][musiconholdstop]','[%s][calls][varset]','[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s','value','source','variable','xmd-phone','[%s][calls][varset]\x20variable:xmd-phone\x20value:%s','\x22\x20<','xmd-callerid-preview','xmd-callerid','xmcs-queue','[%s][calls][varset]\x20variable:%s\x20value:%s','xmd-queue','Queue','lastdata','queue','xmd-contactid','[%s][calls][varset]\x20variable:xmd-contactid\x20value:%s','xmd-cdrtype','[%s][calls][varset]\x20variable:xmd-cdrtype\x20value:%s','type','outboundrouteid','[%s][calls][varset]\x20variable:outboundrouteid\x20value:%s','routeid','newexten','[%s][calls][newexten]\x20application:%s\x20appdata:%s','application','toLowerCase','set','startsWith','appdata','cdr','split','substring','lastIndexOf','noop','execif','gotoif','lastapplication','[%s][calls][newexten]','lodash','util','./utils','./transfers.controller','NO\x20ANSWER','FAILED','BUSY','blinds','uniqueid','transfereeuniqueid','info','format','channel','membername','interface','connectedlinenum','lastevent','getUserByInternal','accountcode','then','UserId','CreateVoiceCallReport','request','newchannel','debug'];(function(_0x4e198a,_0x5a6bad){var _0xb84bfe=function(_0x58d2b2){while(--_0x58d2b2){_0x4e198a['push'](_0x4e198a['shift']());}};_0xb84bfe(++_0x5a6bad);}(_0xe1bd,0x1a3));var _0xde1b=function(_0x28e23d,_0x2d7728){_0x28e23d=_0x28e23d-0x0;var _0x139d0d=_0xe1bd[_0x28e23d];return _0x139d0d;};'use strict';var _=require(_0xde1b('0x0'));var util=require(_0xde1b('0x1'));var utils=require(_0xde1b('0x2'));var transfers=require(_0xde1b('0x3'));var dispositions=[_0xde1b('0x4'),_0xde1b('0x5'),_0xde1b('0x5'),_0xde1b('0x4'),_0xde1b('0x4'),_0xde1b('0x4'),'ANSWERED',_0xde1b('0x6'),_0xde1b('0x5'),'FAILED',_0xde1b('0x5')];var channels={};function writeDB(_0x36b491){var _0x3b4fc7;if(transfers[_0xde1b('0x7')][_0x36b491[_0xde1b('0x8')]]){_0x3b4fc7=_0x36b491[_0xde1b('0x8')];_0x36b491[_0xde1b('0x8')]=transfers['blinds'][_0x36b491[_0xde1b('0x8')]][_0xde1b('0x9')];}utils[_0xde1b('0xa')](util[_0xde1b('0xb')]('[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s',_0x36b491['uniqueid'],_0x36b491[_0xde1b('0xc')],_0x36b491['queue'],_0x36b491[_0xde1b('0xd')],_0x36b491[_0xde1b('0xe')],_0x36b491['calleridnum'],_0x36b491[_0xde1b('0xf')],_0x36b491[_0xde1b('0x10')]));if(_0x36b491['accountcode']){utils[_0xde1b('0x11')](_0x36b491[_0xde1b('0x12')])[_0xde1b('0x13')](function(_0x35ee00){if(_0x35ee00){_0x36b491[_0xde1b('0x14')]=_0x35ee00['id'];}utils['request'](_0xde1b('0x15'),_0x36b491);});}else{utils[_0xde1b('0x16')]('CreateVoiceCallReport',_0x36b491);}if(channels[_0x36b491[_0xde1b('0x8')]]){delete channels[_0x36b491[_0xde1b('0x8')]];}else if(_0x3b4fc7&&channels[_0x3b4fc7]){if(!transfers[_0xde1b('0x7')][_0x3b4fc7]['recording'])delete transfers[_0xde1b('0x7')][_0x3b4fc7];delete channels[_0x3b4fc7];}}exports[_0xde1b('0x17')]=function(_0x352e6e){try{utils[_0xde1b('0x18')](util[_0xde1b('0xb')]('[%s][calls][newchannel]',_0x352e6e['uniqueid']),_0x352e6e);if(_0x352e6e['uniqueid']==_0x352e6e[_0xde1b('0x19')]&&_0x352e6e[_0xde1b('0xc')]!='OutgoingSpoolFailed'){utils[_0xde1b('0xa')](util['format'](_0xde1b('0x1a'),_0x352e6e[_0xde1b('0x8')],_0x352e6e[_0xde1b('0x1b')],_0x352e6e[_0xde1b('0x1c')]));channels[_0x352e6e[_0xde1b('0x8')]]={'uniqueid':_0x352e6e[_0xde1b('0x8')],'accountcode':_0x352e6e['accountcode'],'source':_0x352e6e[_0xde1b('0x1d')],'destination':_0x352e6e[_0xde1b('0x1c')],'destinationcontext':_0x352e6e[_0xde1b('0x1b')],'channel':_0x352e6e[_0xde1b('0xc')],'starttime':utils[_0xde1b('0x1e')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':'NO\x20ANSWER','amaflags':_0xde1b('0x1f')};}}catch(_0x1207aa){utils[_0xde1b('0x20')](util[_0xde1b('0xb')]('[%s][calls][newchannel]',_0x352e6e[_0xde1b('0x8')]),_0x1207aa);}};exports['newstate']=function(_0x3d5e32){try{utils[_0xde1b('0x18')](util[_0xde1b('0xb')](_0xde1b('0x21'),_0x3d5e32['uniqueid']),_0x3d5e32);if(!_[_0xde1b('0x22')](channels[_0x3d5e32[_0xde1b('0x8')]])&&_0x3d5e32[_0xde1b('0x23')]==0x6){utils['info'](util[_0xde1b('0xb')](_0xde1b('0x24'),_0x3d5e32['uniqueid'],_0x3d5e32['context'],_0x3d5e32[_0xde1b('0xc')]));if(_[_0xde1b('0x22')](channels[_0x3d5e32[_0xde1b('0x8')]][_0xde1b('0x25')])){channels[_0x3d5e32[_0xde1b('0x8')]][_0xde1b('0x25')]=utils[_0xde1b('0x1e')]();}}else if(!_['isNil'](channels[_0x3d5e32[_0xde1b('0x19')]])&&_0x3d5e32['channelstate']==0x6&&_0x3d5e32[_0xde1b('0x1b')]!=_0xde1b('0x26')){utils[_0xde1b('0xa')](util['format']('[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s',_0x3d5e32[_0xde1b('0x8')],_0x3d5e32[_0xde1b('0x19')],_0x3d5e32[_0xde1b('0x1b')],_0x3d5e32['channel']));channels[_0x3d5e32[_0xde1b('0x19')]][_0xde1b('0x12')]=_0x3d5e32[_0xde1b('0x12')];channels[_0x3d5e32[_0xde1b('0x19')]]['destinationchannel']=_0x3d5e32[_0xde1b('0xc')];if(_[_0xde1b('0x22')](channels[_0x3d5e32[_0xde1b('0x19')]][_0xde1b('0x27')])){channels[_0x3d5e32['linkedid']][_0xde1b('0x27')]=utils[_0xde1b('0x1e')]();}channels[_0x3d5e32[_0xde1b('0x19')]][_0xde1b('0x28')]=dispositions[_[_0xde1b('0x29')](_0x3d5e32[_0xde1b('0x23')])]||'ANSWERED';}}catch(_0x241f41){utils['error'](util[_0xde1b('0xb')](_0xde1b('0x21'),_0x3d5e32[_0xde1b('0x8')]),_0x241f41);}};exports[_0xde1b('0x2a')]=function(_0x507134){try{if(!_[_0xde1b('0x22')](channels[_0x507134[_0xde1b('0x8')]])){utils['debug'](util[_0xde1b('0xb')](_0xde1b('0x2b'),_0x507134[_0xde1b('0x8')]),_0x507134);if(_[_0xde1b('0x22')](channels[_0x507134['uniqueid']][_0xde1b('0x2c')])){channels[_0x507134[_0xde1b('0x8')]]['callerid']=_0x507134['calleridname']+'\x20<'+_0x507134[_0xde1b('0x1d')]+'>';}utils[_0xde1b('0xa')](util[_0xde1b('0xb')](_0xde1b('0x2d'),_0x507134[_0xde1b('0x8')],channels[_0x507134[_0xde1b('0x8')]][_0xde1b('0x2c')],_0x507134[_0xde1b('0x2e')]));channels[_0x507134['uniqueid']][_0xde1b('0x2f')]=utils[_0xde1b('0x1e')]();channels[_0x507134[_0xde1b('0x8')]][_0xde1b('0x30')]=utils[_0xde1b('0x31')](channels[_0x507134[_0xde1b('0x8')]][_0xde1b('0x2f')],channels[_0x507134[_0xde1b('0x8')]][_0xde1b('0x32')]);channels[_0x507134['uniqueid']][_0xde1b('0x33')]=channels[_0x507134[_0xde1b('0x8')]][_0xde1b('0x27')]?utils['diffTime'](channels[_0x507134[_0xde1b('0x8')]]['endtime'],channels[_0x507134[_0xde1b('0x8')]]['answertime']):0x0;writeDB(channels[_0x507134[_0xde1b('0x8')]]);}}catch(_0x39eda9){utils[_0xde1b('0x20')](util[_0xde1b('0xb')](_0xde1b('0x2b'),_0x507134['uniqueid']),_0x39eda9);}};exports[_0xde1b('0x34')]=function(_0x48a976){try{if(!_['isNil'](channels[_0x48a976[_0xde1b('0x35')]])){utils[_0xde1b('0x18')](util[_0xde1b('0xb')](_0xde1b('0x36'),_0x48a976['origtransfereruniqueid']),_0x48a976);if(channels[_0x48a976[_0xde1b('0x35')]][_0xde1b('0xc')]==_0x48a976[_0xde1b('0x37')]){utils[_0xde1b('0xa')](util['format']('[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s',_0x48a976[_0xde1b('0x38')],_0x48a976[_0xde1b('0x35')],_0x48a976[_0xde1b('0x39')]));channels[_0x48a976[_0xde1b('0x35')]][_0xde1b('0x3a')]=_0x48a976[_0xde1b('0x39')];channels[_0x48a976['localtwolinkedid']][_0xde1b('0x3b')]=_0xde1b('0x3c');}else if(channels[_0x48a976[_0xde1b('0x35')]][_0xde1b('0xc')]=_0x48a976[_0xde1b('0x3d')]){utils[_0xde1b('0xa')](util['format'](_0xde1b('0x3e'),_0x48a976[_0xde1b('0x38')],_0x48a976['localtwolinkedid'],_0x48a976[_0xde1b('0x3f')]));channels[_0x48a976[_0xde1b('0x35')]][_0xde1b('0x3a')]=_0x48a976[_0xde1b('0x3f')];channels[_0x48a976[_0xde1b('0x35')]]['userfield']='_attended';}}}catch(_0x36c900){utils[_0xde1b('0x20')](util[_0xde1b('0xb')]('[%s][calls][attendedtransfer]',_0x48a976[_0xde1b('0x38')]),_0x36c900);}};exports['musiconholdstart']=function(_0x484ab4){try{if(!_[_0xde1b('0x22')](channels[_0x484ab4[_0xde1b('0x8')]])){utils['debug'](util[_0xde1b('0xb')](_0xde1b('0x40'),_0x484ab4[_0xde1b('0x8')]),_0x484ab4);channels[_0x484ab4[_0xde1b('0x8')]][_0xde1b('0x41')]=utils[_0xde1b('0x1e')]();utils[_0xde1b('0xa')](util[_0xde1b('0xb')](_0xde1b('0x42'),_0x484ab4['uniqueid'],channels[_0x484ab4[_0xde1b('0x8')]][_0xde1b('0x41')]));}}catch(_0x4d112e){utils[_0xde1b('0x20')](util['format'](_0xde1b('0x40'),_0x484ab4[_0xde1b('0x8')]),_0x4d112e);}};exports[_0xde1b('0x43')]=function(_0x5b80cb){try{if(!_[_0xde1b('0x22')](channels[_0x5b80cb[_0xde1b('0x8')]])){utils[_0xde1b('0x18')](util[_0xde1b('0xb')]('[%s][calls][musiconholdstop]',_0x5b80cb[_0xde1b('0x8')]),_0x5b80cb);if(!_[_0xde1b('0x22')](channels[_0x5b80cb['uniqueid']]['musiconholdstartAt'])){channels[_0x5b80cb['uniqueid']][_0xde1b('0x44')]+=utils['diffTime'](utils[_0xde1b('0x1e')](),channels[_0x5b80cb[_0xde1b('0x8')]][_0xde1b('0x41')]);utils[_0xde1b('0xa')](util[_0xde1b('0xb')](_0xde1b('0x45'),_0x5b80cb[_0xde1b('0x8')],channels[_0x5b80cb[_0xde1b('0x8')]][_0xde1b('0x44')]));delete channels[_0x5b80cb['uniqueid']][_0xde1b('0x41')];}}}catch(_0x4bfd21){utils[_0xde1b('0x20')](util[_0xde1b('0xb')](_0xde1b('0x46'),_0x5b80cb[_0xde1b('0x8')]),_0x4bfd21);}};exports['varset']=function(_0x5e8560){try{if(!_[_0xde1b('0x22')](channels[_0x5e8560[_0xde1b('0x8')]])){utils[_0xde1b('0x18')](util[_0xde1b('0xb')](_0xde1b('0x47'),_0x5e8560['uniqueid']),_0x5e8560);if(!_['isNil'](_0x5e8560['variable']['xmd-originatecalleridnum'])){utils[_0xde1b('0xa')](util[_0xde1b('0xb')](_0xde1b('0x48'),_0x5e8560[_0xde1b('0x8')],_0x5e8560[_0xde1b('0x49')]));channels[_0x5e8560['uniqueid']][_0xde1b('0x4a')]=_0x5e8560['value'];}if(!_[_0xde1b('0x22')](_0x5e8560[_0xde1b('0x4b')][_0xde1b('0x4c')])){utils[_0xde1b('0xa')](util[_0xde1b('0xb')](_0xde1b('0x4d'),_0x5e8560[_0xde1b('0x8')],_0x5e8560[_0xde1b('0x49')]));channels[_0x5e8560[_0xde1b('0x8')]]['destination']=_0x5e8560[_0xde1b('0x49')];channels[_0x5e8560['uniqueid']][_0xde1b('0x2c')]='\x22'+_0x5e8560['value']+_0xde1b('0x4e')+_0x5e8560[_0xde1b('0x49')]+'>';}if(!_['isNil'](_0x5e8560['variable'][_0xde1b('0x4f')])||!_[_0xde1b('0x22')](_0x5e8560['variable'][_0xde1b('0x50')])){utils[_0xde1b('0xa')](util[_0xde1b('0xb')]('[%s][calls][varset]\x20variable:%s\x20value:%s',_0x5e8560[_0xde1b('0x8')],!_['isNil'](_0x5e8560[_0xde1b('0x4b')][_0xde1b('0x4f')])?_0xde1b('0x4f'):_0xde1b('0x50'),_0x5e8560[_0xde1b('0x49')]));channels[_0x5e8560[_0xde1b('0x8')]][_0xde1b('0x2c')]=_0x5e8560[_0xde1b('0x49')];}if(!_[_0xde1b('0x22')](_0x5e8560[_0xde1b('0x4b')]['xmd-queue'])||!_[_0xde1b('0x22')](_0x5e8560[_0xde1b('0x4b')][_0xde1b('0x51')])){utils[_0xde1b('0xa')](util[_0xde1b('0xb')](_0xde1b('0x52'),_0x5e8560[_0xde1b('0x8')],!_['isNil'](_0x5e8560[_0xde1b('0x4b')][_0xde1b('0x53')])?_0xde1b('0x53'):_0xde1b('0x51'),_0x5e8560['value']));channels[_0x5e8560['uniqueid']]['lastapplication']=_0xde1b('0x54');channels[_0x5e8560[_0xde1b('0x8')]][_0xde1b('0x55')]=_0x5e8560[_0xde1b('0x49')];channels[_0x5e8560[_0xde1b('0x8')]][_0xde1b('0x56')]=!![];}if(!_[_0xde1b('0x22')](_0x5e8560['variable'][_0xde1b('0x57')])){utils[_0xde1b('0xa')](util['format'](_0xde1b('0x58'),_0x5e8560[_0xde1b('0x8')],_0x5e8560['value']));channels[_0x5e8560[_0xde1b('0x8')]]['ContactId']=_0x5e8560[_0xde1b('0x49')];}if(!_[_0xde1b('0x22')](_0x5e8560[_0xde1b('0x4b')][_0xde1b('0x59')])){utils[_0xde1b('0xa')](util[_0xde1b('0xb')](_0xde1b('0x5a'),_0x5e8560['uniqueid'],_0x5e8560[_0xde1b('0x49')]));channels[_0x5e8560[_0xde1b('0x8')]][_0xde1b('0x5b')]=_0x5e8560[_0xde1b('0x49')];}if(!_[_0xde1b('0x22')](_0x5e8560[_0xde1b('0x4b')][_0xde1b('0x5c')])){utils[_0xde1b('0xa')](util[_0xde1b('0xb')](_0xde1b('0x5d'),_0x5e8560[_0xde1b('0x8')],_0x5e8560[_0xde1b('0x49')]));channels[_0x5e8560[_0xde1b('0x8')]][_0xde1b('0x5e')]=_0x5e8560[_0xde1b('0x49')];}if(!_['isNil'](_0x5e8560[_0xde1b('0x4b')]['sipcallid'])){utils[_0xde1b('0xa')](util[_0xde1b('0xb')]('[%s][calls][varset]\x20variable:sipcallid\x20value:%s',_0x5e8560['uniqueid'],_0x5e8560['value']));channels[_0x5e8560[_0xde1b('0x8')]]['sipcallid']=_0x5e8560[_0xde1b('0x49')];}}}catch(_0x2f9547){utils['error'](util[_0xde1b('0xb')](_0xde1b('0x47'),_0x5e8560[_0xde1b('0x8')]),_0x2f9547);}};exports[_0xde1b('0x5f')]=function(_0x313ffc){try{if(!_['isNil'](channels[_0x313ffc['uniqueid']])){utils['debug'](util['format']('[%s][calls][newexten]',_0x313ffc[_0xde1b('0x8')]),_0x313ffc);utils[_0xde1b('0xa')](util[_0xde1b('0xb')](_0xde1b('0x60'),_0x313ffc['uniqueid'],_0x313ffc[_0xde1b('0x61')],_0x313ffc['appdata']));if(_0x313ffc[_0xde1b('0x61')][_0xde1b('0x62')]()==_0xde1b('0x63')&&_[_0xde1b('0x64')](_0x313ffc[_0xde1b('0x65')]['toLowerCase'](),_0xde1b('0x66'))){var _0x36081e=_0x313ffc[_0xde1b('0x65')][_0xde1b('0x67')]('=');var _0x957bff=_0x36081e[0x0][_0xde1b('0x68')](_0x36081e[0x0][_0xde1b('0x69')]('(')+0x1,_0x36081e[0x0]['lastIndexOf'](')'));var _0x46a11f=_0x36081e[0x1];channels[_0x313ffc[_0xde1b('0x8')]][_0x957bff]=_0x46a11f;}if(!_['includes']([_0xde1b('0x2a'),_0xde1b('0x6a'),_0xde1b('0x6b'),_0xde1b('0x63'),_0xde1b('0x6c')],_0x313ffc[_0xde1b('0x61')]['toLowerCase']())){channels[_0x313ffc[_0xde1b('0x8')]][_0xde1b('0x6d')]=_0x313ffc[_0xde1b('0x61')];channels[_0x313ffc[_0xde1b('0x8')]][_0xde1b('0x55')]=_0x313ffc[_0xde1b('0x65')];}}}catch(_0x37a31b){utils[_0xde1b('0x20')](util[_0xde1b('0xb')](_0xde1b('0x6e'),_0x313ffc[_0xde1b('0x8')]),_0x37a31b);}};