ddbfe1e9cbd85afcc3696a85e95aaebbf009f301
[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 _0x0d2d=['transfertargetchannel','origtransfereruniqueid','origtransfererchannel','musiconholdstart','[%s][calls][musiconholdstart]','musiconholdstartAt','[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s','musiconholdstop','[%s][calls][musiconholdstop]','mohtime','[%s][calls][musiconholdstop]\x20mohtime:%s','[%s][calls][varset]','xmd-originatecalleridnum','[%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','[%s][calls][varset]\x20variable:%s\x20value:%s','xmd-callerid-preview','xmcs-queue','xmd-queue','lastapplication','Queue','lastdata','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','sipcallid','[%s][calls][varset]\x20variable:sipcallid\x20value:%s','newexten','[%s][calls][newexten]','[%s][calls][newexten]\x20application:%s\x20appdata:%s','application','appdata','set','startsWith','toLowerCase','cdr','split','substring','lastIndexOf','hangup','noop','gotoif','lodash','util','./utils','./transfers.controller','NO\x20ANSWER','FAILED','BUSY','blinds','uniqueid','transfereeuniqueid','info','[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','channel','queue','interface','getUserByInternal','accountcode','UserId','CreateVoiceCallReport','newchannel','debug','format','linkedid','OutgoingSpoolFailed','exten','calleridnum','context','now','DOCUMENTATION','error','[%s][calls][newstate]','isNil','channelstate','systemanswertime','transfer','[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s','destinationchannel','answertime','toNumber','[%s][calls][hangup]','callerid','calleridname','[%s][calls][hangup]\x20callerid:%s\x20reason:%s','cause-txt','endtime','duration','diffTime','billableseconds','attendedtransfer','localtwolinkedid','[%s][calls][attendedtransfer]','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','secondtransfererchannel','userfield','_attended'];(function(_0x580647,_0x43d2c3){var _0x5f0792=function(_0x386cef){while(--_0x386cef){_0x580647['push'](_0x580647['shift']());}};_0x5f0792(++_0x43d2c3);}(_0x0d2d,0x1e0));var _0xd0d2=function(_0x2d6b43,_0x2ab36b){_0x2d6b43=_0x2d6b43-0x0;var _0x156a1e=_0x0d2d[_0x2d6b43];return _0x156a1e;};'use strict';var _=require(_0xd0d2('0x0'));var util=require(_0xd0d2('0x1'));var utils=require(_0xd0d2('0x2'));var transfers=require(_0xd0d2('0x3'));var dispositions=[_0xd0d2('0x4'),_0xd0d2('0x5'),_0xd0d2('0x5'),'NO\x20ANSWER',_0xd0d2('0x4'),_0xd0d2('0x4'),'ANSWERED',_0xd0d2('0x6'),_0xd0d2('0x5'),_0xd0d2('0x5'),_0xd0d2('0x5')];var channels={};function writeDB(_0x31356e){var _0x4994bf;if(transfers[_0xd0d2('0x7')][_0x31356e[_0xd0d2('0x8')]]){_0x4994bf=_0x31356e[_0xd0d2('0x8')];_0x31356e['uniqueid']=transfers[_0xd0d2('0x7')][_0x31356e['uniqueid']][_0xd0d2('0x9')];}utils[_0xd0d2('0xa')](util['format'](_0xd0d2('0xb'),_0x31356e[_0xd0d2('0x8')],_0x31356e[_0xd0d2('0xc')],_0x31356e[_0xd0d2('0xd')],_0x31356e['membername'],_0x31356e[_0xd0d2('0xe')],_0x31356e['calleridnum'],_0x31356e['connectedlinenum'],_0x31356e['lastevent']));if(_0x31356e['accountcode']){utils[_0xd0d2('0xf')](_0x31356e[_0xd0d2('0x10')])['then'](function(_0x4d7f6e){if(_0x4d7f6e){_0x31356e[_0xd0d2('0x11')]=_0x4d7f6e['id'];}utils['request'](_0xd0d2('0x12'),_0x31356e);});}else{utils['request'](_0xd0d2('0x12'),_0x31356e);}if(channels[_0x31356e[_0xd0d2('0x8')]]){delete channels[_0x31356e['uniqueid']];}else if(_0x4994bf&&channels[_0x4994bf]){delete transfers[_0xd0d2('0x7')][_0x4994bf];delete channels[_0x4994bf];}}exports[_0xd0d2('0x13')]=function(_0x142b41){try{utils[_0xd0d2('0x14')](util[_0xd0d2('0x15')]('[%s][calls][newchannel]',_0x142b41[_0xd0d2('0x8')]),_0x142b41);if(_0x142b41[_0xd0d2('0x8')]==_0x142b41[_0xd0d2('0x16')]&&_0x142b41[_0xd0d2('0xc')]!=_0xd0d2('0x17')){utils[_0xd0d2('0xa')](util[_0xd0d2('0x15')]('[%s][calls][newchannel]\x20context:%s\x20exten:%s',_0x142b41['uniqueid'],_0x142b41['context'],_0x142b41[_0xd0d2('0x18')]));channels[_0x142b41[_0xd0d2('0x8')]]={'uniqueid':_0x142b41[_0xd0d2('0x8')],'accountcode':_0x142b41[_0xd0d2('0x10')],'source':_0x142b41[_0xd0d2('0x19')],'destination':_0x142b41[_0xd0d2('0x18')],'destinationcontext':_0x142b41[_0xd0d2('0x1a')],'channel':_0x142b41[_0xd0d2('0xc')],'starttime':utils[_0xd0d2('0x1b')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':'NO\x20ANSWER','amaflags':_0xd0d2('0x1c')};}}catch(_0x502d27){utils[_0xd0d2('0x1d')](util['format']('[%s][calls][newchannel]',_0x142b41[_0xd0d2('0x8')]),_0x502d27);}};exports['newstate']=function(_0x32d14f){try{utils[_0xd0d2('0x14')](util[_0xd0d2('0x15')](_0xd0d2('0x1e'),_0x32d14f[_0xd0d2('0x8')]),_0x32d14f);if(!_[_0xd0d2('0x1f')](channels[_0x32d14f[_0xd0d2('0x8')]])&&_0x32d14f[_0xd0d2('0x20')]==0x6){utils[_0xd0d2('0xa')](util[_0xd0d2('0x15')]('[%s][calls][newstate]\x20context:%s\x20channel:%s',_0x32d14f[_0xd0d2('0x8')],_0x32d14f[_0xd0d2('0x1a')],_0x32d14f[_0xd0d2('0xc')]));if(_['isNil'](channels[_0x32d14f[_0xd0d2('0x8')]][_0xd0d2('0x21')])){channels[_0x32d14f[_0xd0d2('0x8')]][_0xd0d2('0x21')]=utils[_0xd0d2('0x1b')]();}}else if(!_[_0xd0d2('0x1f')](channels[_0x32d14f['linkedid']])&&_0x32d14f[_0xd0d2('0x20')]==0x6&&_0x32d14f['context']!=_0xd0d2('0x22')){utils[_0xd0d2('0xa')](util['format'](_0xd0d2('0x23'),_0x32d14f['uniqueid'],_0x32d14f['linkedid'],_0x32d14f['context'],_0x32d14f[_0xd0d2('0xc')]));channels[_0x32d14f['linkedid']]['accountcode']=_0x32d14f[_0xd0d2('0x10')];channels[_0x32d14f[_0xd0d2('0x16')]][_0xd0d2('0x24')]=_0x32d14f[_0xd0d2('0xc')];if(_[_0xd0d2('0x1f')](channels[_0x32d14f[_0xd0d2('0x16')]][_0xd0d2('0x25')])){channels[_0x32d14f['linkedid']][_0xd0d2('0x25')]=utils['now']();}channels[_0x32d14f[_0xd0d2('0x16')]]['disposition']=dispositions[_[_0xd0d2('0x26')](_0x32d14f[_0xd0d2('0x20')])]||'ANSWERED';}}catch(_0x4baaf7){utils[_0xd0d2('0x1d')](util[_0xd0d2('0x15')](_0xd0d2('0x1e'),_0x32d14f[_0xd0d2('0x8')]),_0x4baaf7);}};exports['hangup']=function(_0xf70895){try{if(!_[_0xd0d2('0x1f')](channels[_0xf70895[_0xd0d2('0x8')]])){utils[_0xd0d2('0x14')](util['format'](_0xd0d2('0x27'),_0xf70895[_0xd0d2('0x8')]),_0xf70895);if(_[_0xd0d2('0x1f')](channels[_0xf70895[_0xd0d2('0x8')]]['callerid'])){channels[_0xf70895['uniqueid']][_0xd0d2('0x28')]=_0xf70895[_0xd0d2('0x29')]+'\x20<'+_0xf70895['calleridnum']+'>';}utils[_0xd0d2('0xa')](util['format'](_0xd0d2('0x2a'),_0xf70895[_0xd0d2('0x8')],channels[_0xf70895[_0xd0d2('0x8')]][_0xd0d2('0x28')],_0xf70895[_0xd0d2('0x2b')]));channels[_0xf70895[_0xd0d2('0x8')]][_0xd0d2('0x2c')]=utils['now']();channels[_0xf70895['uniqueid']][_0xd0d2('0x2d')]=utils[_0xd0d2('0x2e')](channels[_0xf70895[_0xd0d2('0x8')]][_0xd0d2('0x2c')],channels[_0xf70895[_0xd0d2('0x8')]]['starttime']);channels[_0xf70895[_0xd0d2('0x8')]][_0xd0d2('0x2f')]=channels[_0xf70895[_0xd0d2('0x8')]][_0xd0d2('0x25')]?utils[_0xd0d2('0x2e')](channels[_0xf70895[_0xd0d2('0x8')]][_0xd0d2('0x2c')],channels[_0xf70895['uniqueid']][_0xd0d2('0x25')]):0x0;writeDB(channels[_0xf70895[_0xd0d2('0x8')]]);}}catch(_0x1f6ec6){utils[_0xd0d2('0x1d')](util[_0xd0d2('0x15')](_0xd0d2('0x27'),_0xf70895['uniqueid']),_0x1f6ec6);}};exports[_0xd0d2('0x30')]=function(_0x1f5a31){try{if(!_[_0xd0d2('0x1f')](channels[_0x1f5a31[_0xd0d2('0x31')]])){utils[_0xd0d2('0x14')](util['format'](_0xd0d2('0x32'),_0x1f5a31['origtransfereruniqueid']),_0x1f5a31);if(channels[_0x1f5a31[_0xd0d2('0x31')]][_0xd0d2('0xc')]==_0x1f5a31['transfereechannel']){utils[_0xd0d2('0xa')](util['format'](_0xd0d2('0x33'),_0x1f5a31['origtransfereruniqueid'],_0x1f5a31[_0xd0d2('0x31')],_0x1f5a31['secondtransfererchannel']));channels[_0x1f5a31['localtwolinkedid']][_0xd0d2('0x24')]=_0x1f5a31[_0xd0d2('0x34')];channels[_0x1f5a31[_0xd0d2('0x31')]][_0xd0d2('0x35')]=_0xd0d2('0x36');}else if(channels[_0x1f5a31['localtwolinkedid']][_0xd0d2('0xc')]=_0x1f5a31[_0xd0d2('0x37')]){utils[_0xd0d2('0xa')](util[_0xd0d2('0x15')](_0xd0d2('0x33'),_0x1f5a31[_0xd0d2('0x38')],_0x1f5a31[_0xd0d2('0x31')],_0x1f5a31[_0xd0d2('0x39')]));channels[_0x1f5a31['localtwolinkedid']][_0xd0d2('0x24')]=_0x1f5a31[_0xd0d2('0x39')];channels[_0x1f5a31[_0xd0d2('0x31')]]['userfield']='_attended';}}}catch(_0x42d7b8){utils[_0xd0d2('0x1d')](util[_0xd0d2('0x15')]('[%s][calls][attendedtransfer]',_0x1f5a31['origtransfereruniqueid']),_0x42d7b8);}};exports[_0xd0d2('0x3a')]=function(_0x490b7d){try{if(!_['isNil'](channels[_0x490b7d[_0xd0d2('0x8')]])){utils['debug'](util[_0xd0d2('0x15')](_0xd0d2('0x3b'),_0x490b7d[_0xd0d2('0x8')]),_0x490b7d);channels[_0x490b7d[_0xd0d2('0x8')]][_0xd0d2('0x3c')]=utils[_0xd0d2('0x1b')]();utils[_0xd0d2('0xa')](util[_0xd0d2('0x15')](_0xd0d2('0x3d'),_0x490b7d['uniqueid'],channels[_0x490b7d[_0xd0d2('0x8')]][_0xd0d2('0x3c')]));}}catch(_0x4c67b2){utils[_0xd0d2('0x1d')](util[_0xd0d2('0x15')]('[%s][calls][musiconholdstart]',_0x490b7d[_0xd0d2('0x8')]),_0x4c67b2);}};exports[_0xd0d2('0x3e')]=function(_0x1616c8){try{if(!_['isNil'](channels[_0x1616c8['uniqueid']])){utils[_0xd0d2('0x14')](util[_0xd0d2('0x15')](_0xd0d2('0x3f'),_0x1616c8[_0xd0d2('0x8')]),_0x1616c8);if(!_[_0xd0d2('0x1f')](channels[_0x1616c8[_0xd0d2('0x8')]]['musiconholdstartAt'])){channels[_0x1616c8['uniqueid']][_0xd0d2('0x40')]+=utils[_0xd0d2('0x2e')](utils[_0xd0d2('0x1b')](),channels[_0x1616c8[_0xd0d2('0x8')]][_0xd0d2('0x3c')]);utils[_0xd0d2('0xa')](util[_0xd0d2('0x15')](_0xd0d2('0x41'),_0x1616c8['uniqueid'],channels[_0x1616c8['uniqueid']][_0xd0d2('0x40')]));delete channels[_0x1616c8[_0xd0d2('0x8')]][_0xd0d2('0x3c')];}}}catch(_0x4ac7a6){utils['error'](util[_0xd0d2('0x15')](_0xd0d2('0x3f'),_0x1616c8[_0xd0d2('0x8')]),_0x4ac7a6);}};exports['varset']=function(_0x16aa56){try{if(!_['isNil'](channels[_0x16aa56['uniqueid']])){utils[_0xd0d2('0x14')](util[_0xd0d2('0x15')](_0xd0d2('0x42'),_0x16aa56[_0xd0d2('0x8')]),_0x16aa56);if(!_[_0xd0d2('0x1f')](_0x16aa56['variable'][_0xd0d2('0x43')])){utils[_0xd0d2('0xa')](util['format'](_0xd0d2('0x44'),_0x16aa56[_0xd0d2('0x8')],_0x16aa56[_0xd0d2('0x45')]));channels[_0x16aa56[_0xd0d2('0x8')]][_0xd0d2('0x46')]=_0x16aa56[_0xd0d2('0x45')];}if(!_[_0xd0d2('0x1f')](_0x16aa56[_0xd0d2('0x47')][_0xd0d2('0x48')])){utils['info'](util['format'](_0xd0d2('0x49'),_0x16aa56[_0xd0d2('0x8')],_0x16aa56[_0xd0d2('0x45')]));channels[_0x16aa56[_0xd0d2('0x8')]]['destination']=_0x16aa56[_0xd0d2('0x45')];channels[_0x16aa56[_0xd0d2('0x8')]]['callerid']='\x22'+_0x16aa56['value']+_0xd0d2('0x4a')+_0x16aa56['value']+'>';}if(!_['isNil'](_0x16aa56[_0xd0d2('0x47')]['xmd-callerid-preview'])||!_[_0xd0d2('0x1f')](_0x16aa56[_0xd0d2('0x47')][_0xd0d2('0x4b')])){utils[_0xd0d2('0xa')](util[_0xd0d2('0x15')](_0xd0d2('0x4c'),_0x16aa56[_0xd0d2('0x8')],!_[_0xd0d2('0x1f')](_0x16aa56[_0xd0d2('0x47')][_0xd0d2('0x4d')])?_0xd0d2('0x4d'):'xmd-callerid',_0x16aa56[_0xd0d2('0x45')]));channels[_0x16aa56[_0xd0d2('0x8')]][_0xd0d2('0x28')]=_0x16aa56[_0xd0d2('0x45')];}if(!_['isNil'](_0x16aa56[_0xd0d2('0x47')]['xmd-queue'])||!_[_0xd0d2('0x1f')](_0x16aa56[_0xd0d2('0x47')][_0xd0d2('0x4e')])){utils[_0xd0d2('0xa')](util[_0xd0d2('0x15')](_0xd0d2('0x4c'),_0x16aa56[_0xd0d2('0x8')],!_['isNil'](_0x16aa56[_0xd0d2('0x47')][_0xd0d2('0x4f')])?_0xd0d2('0x4f'):'xmcs-queue',_0x16aa56[_0xd0d2('0x45')]));channels[_0x16aa56[_0xd0d2('0x8')]][_0xd0d2('0x50')]=_0xd0d2('0x51');channels[_0x16aa56[_0xd0d2('0x8')]][_0xd0d2('0x52')]=_0x16aa56[_0xd0d2('0x45')];channels[_0x16aa56[_0xd0d2('0x8')]][_0xd0d2('0xd')]=!![];}if(!_[_0xd0d2('0x1f')](_0x16aa56[_0xd0d2('0x47')][_0xd0d2('0x53')])){utils[_0xd0d2('0xa')](util[_0xd0d2('0x15')](_0xd0d2('0x54'),_0x16aa56[_0xd0d2('0x8')],_0x16aa56[_0xd0d2('0x45')]));channels[_0x16aa56[_0xd0d2('0x8')]]['ContactId']=_0x16aa56[_0xd0d2('0x45')];}if(!_[_0xd0d2('0x1f')](_0x16aa56['variable'][_0xd0d2('0x55')])){utils[_0xd0d2('0xa')](util[_0xd0d2('0x15')](_0xd0d2('0x56'),_0x16aa56[_0xd0d2('0x8')],_0x16aa56['value']));channels[_0x16aa56[_0xd0d2('0x8')]][_0xd0d2('0x57')]=_0x16aa56[_0xd0d2('0x45')];}if(!_[_0xd0d2('0x1f')](_0x16aa56['variable'][_0xd0d2('0x58')])){utils[_0xd0d2('0xa')](util['format'](_0xd0d2('0x59'),_0x16aa56[_0xd0d2('0x8')],_0x16aa56[_0xd0d2('0x45')]));channels[_0x16aa56['uniqueid']]['routeid']=_0x16aa56[_0xd0d2('0x45')];}if(!_[_0xd0d2('0x1f')](_0x16aa56['variable'][_0xd0d2('0x5a')])){utils['info'](util[_0xd0d2('0x15')](_0xd0d2('0x5b'),_0x16aa56[_0xd0d2('0x8')],_0x16aa56[_0xd0d2('0x45')]));channels[_0x16aa56[_0xd0d2('0x8')]][_0xd0d2('0x5a')]=_0x16aa56[_0xd0d2('0x45')];}}}catch(_0x547505){utils['error'](util['format'](_0xd0d2('0x42'),_0x16aa56[_0xd0d2('0x8')]),_0x547505);}};exports[_0xd0d2('0x5c')]=function(_0x50518b){try{if(!_[_0xd0d2('0x1f')](channels[_0x50518b[_0xd0d2('0x8')]])){utils['debug'](util[_0xd0d2('0x15')](_0xd0d2('0x5d'),_0x50518b['uniqueid']),_0x50518b);utils['info'](util[_0xd0d2('0x15')](_0xd0d2('0x5e'),_0x50518b['uniqueid'],_0x50518b[_0xd0d2('0x5f')],_0x50518b[_0xd0d2('0x60')]));if(_0x50518b[_0xd0d2('0x5f')]['toLowerCase']()==_0xd0d2('0x61')&&_[_0xd0d2('0x62')](_0x50518b[_0xd0d2('0x60')][_0xd0d2('0x63')](),_0xd0d2('0x64'))){var _0x40d5a5=_0x50518b[_0xd0d2('0x60')][_0xd0d2('0x65')]('=');var _0x3cc8cd=_0x40d5a5[0x0][_0xd0d2('0x66')](_0x40d5a5[0x0][_0xd0d2('0x67')]('(')+0x1,_0x40d5a5[0x0][_0xd0d2('0x67')](')'));var _0xd75802=_0x40d5a5[0x1];channels[_0x50518b[_0xd0d2('0x8')]][_0x3cc8cd]=_0xd75802;}if(!_['includes']([_0xd0d2('0x68'),_0xd0d2('0x69'),'execif',_0xd0d2('0x61'),_0xd0d2('0x6a')],_0x50518b[_0xd0d2('0x5f')][_0xd0d2('0x63')]())){channels[_0x50518b[_0xd0d2('0x8')]][_0xd0d2('0x50')]=_0x50518b[_0xd0d2('0x5f')];channels[_0x50518b[_0xd0d2('0x8')]][_0xd0d2('0x52')]=_0x50518b[_0xd0d2('0x60')];}}}catch(_0x24542f){utils[_0xd0d2('0x1d')](util['format'](_0xd0d2('0x5d'),_0x50518b[_0xd0d2('0x8')]),_0x24542f);}};