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