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