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