c22140a49042358ef6cd71491a7b80c9cdaa8185
[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 _0x3a81=['xmd-contactid','[%s][calls][varset]\x20variable:xmd-contactid\x20value:%s','[%s][calls][varset]\x20variable:xmd-cdrtype\x20value:%s','type','routeid','[%s][calls][varset]\x20variable:sipcallid\x20value:%s','sipcallid','[%s][calls][newexten]\x20application:%s\x20appdata:%s','application','appdata','cdr','split','lastIndexOf','includes','noop','execif','set','toLowerCase','lastdata','[%s][calls][newexten]','lodash','util','./transfers.controller','NO\x20ANSWER','FAILED','ANSWERED','BUSY','blinds','uniqueid','transfereeuniqueid','[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','channel','membername','interface','calleridnum','connectedlinenum','lastevent','accountcode','getUserByInternal','then','UserId','CreateVoiceCallReport','request','newchannel','debug','format','[%s][calls][newchannel]','linkedid','info','[%s][calls][newchannel]\x20context:%s\x20exten:%s','context','exten','now','DOCUMENTATION','error','newstate','[%s][calls][newstate]','isNil','channelstate','[%s][calls][newstate]\x20context:%s\x20channel:%s','systemanswertime','transfer','destinationchannel','answertime','disposition','toNumber','hangup','callerid','calleridname','[%s][calls][hangup]\x20callerid:%s\x20reason:%s','cause-txt','endtime','duration','diffTime','localtwolinkedid','[%s][calls][attendedtransfer]','origtransfereruniqueid','transfereechannel','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','secondtransfererchannel','userfield','_attended','transfertargetchannel','origtransfererchannel','musiconholdstartAt','[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s','musiconholdstop','[%s][calls][musiconholdstop]','mohtime','[%s][calls][musiconholdstop]\x20mohtime:%s','[%s][calls][varset]','variable','source','value','xmd-phone','destination','\x22\x20<','xmd-callerid-preview','xmd-queue','xmcs-queue','[%s][calls][varset]\x20variable:%s\x20value:%s','Queue'];(function(_0xc07219,_0x31c812){var _0x1aae68=function(_0x2ac747){while(--_0x2ac747){_0xc07219['push'](_0xc07219['shift']());}};_0x1aae68(++_0x31c812);}(_0x3a81,0x1ac));var _0x13a8=function(_0x1f9179,_0x598964){_0x1f9179=_0x1f9179-0x0;var _0x2974c9=_0x3a81[_0x1f9179];return _0x2974c9;};'use strict';var _=require(_0x13a8('0x0'));var util=require(_0x13a8('0x1'));var utils=require('./utils');var transfers=require(_0x13a8('0x2'));var dispositions=[_0x13a8('0x3'),_0x13a8('0x4'),_0x13a8('0x4'),_0x13a8('0x3'),'NO\x20ANSWER','NO\x20ANSWER',_0x13a8('0x5'),_0x13a8('0x6'),'FAILED','FAILED',_0x13a8('0x4')];var channels={};function writeDB(_0x853fd6){var _0x5875ab;if(transfers[_0x13a8('0x7')][_0x853fd6[_0x13a8('0x8')]]){_0x5875ab=_0x853fd6[_0x13a8('0x8')];_0x853fd6['uniqueid']=transfers[_0x13a8('0x7')][_0x853fd6[_0x13a8('0x8')]][_0x13a8('0x9')];}utils['info'](util['format'](_0x13a8('0xa'),_0x853fd6[_0x13a8('0x8')],_0x853fd6[_0x13a8('0xb')],_0x853fd6['queue'],_0x853fd6[_0x13a8('0xc')],_0x853fd6[_0x13a8('0xd')],_0x853fd6[_0x13a8('0xe')],_0x853fd6[_0x13a8('0xf')],_0x853fd6[_0x13a8('0x10')]));if(_0x853fd6[_0x13a8('0x11')]){utils[_0x13a8('0x12')](_0x853fd6[_0x13a8('0x11')])[_0x13a8('0x13')](function(_0x2f5a54){if(_0x2f5a54){_0x853fd6[_0x13a8('0x14')]=_0x2f5a54['id'];}utils['request'](_0x13a8('0x15'),_0x853fd6);});}else{utils[_0x13a8('0x16')](_0x13a8('0x15'),_0x853fd6);}if(channels[_0x853fd6[_0x13a8('0x8')]]){delete channels[_0x853fd6[_0x13a8('0x8')]];}else if(_0x5875ab&&channels[_0x5875ab]){delete transfers[_0x13a8('0x7')][_0x5875ab];delete channels[_0x5875ab];}}exports[_0x13a8('0x17')]=function(_0x3fe3dc){try{utils[_0x13a8('0x18')](util[_0x13a8('0x19')](_0x13a8('0x1a'),_0x3fe3dc[_0x13a8('0x8')]),_0x3fe3dc);if(_0x3fe3dc[_0x13a8('0x8')]==_0x3fe3dc[_0x13a8('0x1b')]&&_0x3fe3dc[_0x13a8('0xb')]!='OutgoingSpoolFailed'){utils[_0x13a8('0x1c')](util[_0x13a8('0x19')](_0x13a8('0x1d'),_0x3fe3dc[_0x13a8('0x8')],_0x3fe3dc[_0x13a8('0x1e')],_0x3fe3dc[_0x13a8('0x1f')]));channels[_0x3fe3dc[_0x13a8('0x8')]]={'uniqueid':_0x3fe3dc[_0x13a8('0x8')],'accountcode':_0x3fe3dc[_0x13a8('0x11')],'source':_0x3fe3dc['calleridnum'],'destination':_0x3fe3dc[_0x13a8('0x1f')],'destinationcontext':_0x3fe3dc['context'],'channel':_0x3fe3dc[_0x13a8('0xb')],'starttime':utils[_0x13a8('0x20')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':_0x13a8('0x3'),'amaflags':_0x13a8('0x21')};}}catch(_0x27fb3a){utils[_0x13a8('0x22')](util['format'](_0x13a8('0x1a'),_0x3fe3dc[_0x13a8('0x8')]),_0x27fb3a);}};exports[_0x13a8('0x23')]=function(_0x259979){try{utils['debug'](util['format'](_0x13a8('0x24'),_0x259979[_0x13a8('0x8')]),_0x259979);if(!_[_0x13a8('0x25')](channels[_0x259979[_0x13a8('0x8')]])&&_0x259979[_0x13a8('0x26')]==0x6){utils[_0x13a8('0x1c')](util['format'](_0x13a8('0x27'),_0x259979[_0x13a8('0x8')],_0x259979['context'],_0x259979[_0x13a8('0xb')]));if(_[_0x13a8('0x25')](channels[_0x259979[_0x13a8('0x8')]][_0x13a8('0x28')])){channels[_0x259979[_0x13a8('0x8')]]['systemanswertime']=utils['now']();}}else if(!_['isNil'](channels[_0x259979[_0x13a8('0x1b')]])&&_0x259979[_0x13a8('0x26')]==0x6&&_0x259979[_0x13a8('0x1e')]!=_0x13a8('0x29')){utils[_0x13a8('0x1c')](util[_0x13a8('0x19')]('[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s',_0x259979['uniqueid'],_0x259979[_0x13a8('0x1b')],_0x259979['context'],_0x259979[_0x13a8('0xb')]));channels[_0x259979[_0x13a8('0x1b')]][_0x13a8('0x11')]=_0x259979[_0x13a8('0x11')];channels[_0x259979['linkedid']][_0x13a8('0x2a')]=_0x259979[_0x13a8('0xb')];if(_[_0x13a8('0x25')](channels[_0x259979[_0x13a8('0x1b')]][_0x13a8('0x2b')])){channels[_0x259979[_0x13a8('0x1b')]][_0x13a8('0x2b')]=utils[_0x13a8('0x20')]();}channels[_0x259979['linkedid']][_0x13a8('0x2c')]=dispositions[_[_0x13a8('0x2d')](_0x259979['channelstate'])]||_0x13a8('0x5');}}catch(_0x318332){utils[_0x13a8('0x22')](util['format'](_0x13a8('0x24'),_0x259979['uniqueid']),_0x318332);}};exports[_0x13a8('0x2e')]=function(_0x1c788f){try{if(!_[_0x13a8('0x25')](channels[_0x1c788f[_0x13a8('0x8')]])){utils['debug'](util[_0x13a8('0x19')]('[%s][calls][hangup]',_0x1c788f[_0x13a8('0x8')]),_0x1c788f);if(_[_0x13a8('0x25')](channels[_0x1c788f[_0x13a8('0x8')]][_0x13a8('0x2f')])){channels[_0x1c788f[_0x13a8('0x8')]][_0x13a8('0x2f')]=_0x1c788f[_0x13a8('0x30')]+'\x20<'+_0x1c788f['calleridnum']+'>';}utils[_0x13a8('0x1c')](util[_0x13a8('0x19')](_0x13a8('0x31'),_0x1c788f[_0x13a8('0x8')],channels[_0x1c788f[_0x13a8('0x8')]][_0x13a8('0x2f')],_0x1c788f[_0x13a8('0x32')]));channels[_0x1c788f[_0x13a8('0x8')]][_0x13a8('0x33')]=utils[_0x13a8('0x20')]();channels[_0x1c788f[_0x13a8('0x8')]][_0x13a8('0x34')]=utils[_0x13a8('0x35')](channels[_0x1c788f[_0x13a8('0x8')]][_0x13a8('0x33')],channels[_0x1c788f['uniqueid']]['starttime']);channels[_0x1c788f[_0x13a8('0x8')]]['billableseconds']=channels[_0x1c788f[_0x13a8('0x8')]][_0x13a8('0x2b')]?utils['diffTime'](channels[_0x1c788f[_0x13a8('0x8')]][_0x13a8('0x33')],channels[_0x1c788f[_0x13a8('0x8')]][_0x13a8('0x2b')]):0x0;writeDB(channels[_0x1c788f[_0x13a8('0x8')]]);}}catch(_0x45a6ab){utils[_0x13a8('0x22')](util[_0x13a8('0x19')]('[%s][calls][hangup]',_0x1c788f[_0x13a8('0x8')]),_0x45a6ab);}};exports['attendedtransfer']=function(_0x553bc3){try{if(!_[_0x13a8('0x25')](channels[_0x553bc3[_0x13a8('0x36')]])){utils[_0x13a8('0x18')](util[_0x13a8('0x19')](_0x13a8('0x37'),_0x553bc3[_0x13a8('0x38')]),_0x553bc3);if(channels[_0x553bc3[_0x13a8('0x36')]][_0x13a8('0xb')]==_0x553bc3[_0x13a8('0x39')]){utils[_0x13a8('0x1c')](util[_0x13a8('0x19')](_0x13a8('0x3a'),_0x553bc3['origtransfereruniqueid'],_0x553bc3[_0x13a8('0x36')],_0x553bc3[_0x13a8('0x3b')]));channels[_0x553bc3[_0x13a8('0x36')]][_0x13a8('0x2a')]=_0x553bc3[_0x13a8('0x3b')];channels[_0x553bc3[_0x13a8('0x36')]][_0x13a8('0x3c')]=_0x13a8('0x3d');}else if(channels[_0x553bc3[_0x13a8('0x36')]]['channel']=_0x553bc3[_0x13a8('0x3e')]){utils[_0x13a8('0x1c')](util[_0x13a8('0x19')]('[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s',_0x553bc3[_0x13a8('0x38')],_0x553bc3[_0x13a8('0x36')],_0x553bc3[_0x13a8('0x3f')]));channels[_0x553bc3['localtwolinkedid']]['destinationchannel']=_0x553bc3[_0x13a8('0x3f')];channels[_0x553bc3[_0x13a8('0x36')]]['userfield']=_0x13a8('0x3d');}}}catch(_0x5b8ca9){utils[_0x13a8('0x22')](util[_0x13a8('0x19')](_0x13a8('0x37'),_0x553bc3[_0x13a8('0x38')]),_0x5b8ca9);}};exports['musiconholdstart']=function(_0x22c7ed){try{if(!_['isNil'](channels[_0x22c7ed[_0x13a8('0x8')]])){utils['debug'](util[_0x13a8('0x19')]('[%s][calls][musiconholdstart]',_0x22c7ed[_0x13a8('0x8')]),_0x22c7ed);channels[_0x22c7ed[_0x13a8('0x8')]][_0x13a8('0x40')]=utils[_0x13a8('0x20')]();utils[_0x13a8('0x1c')](util['format'](_0x13a8('0x41'),_0x22c7ed[_0x13a8('0x8')],channels[_0x22c7ed['uniqueid']][_0x13a8('0x40')]));}}catch(_0x45561d){utils[_0x13a8('0x22')](util[_0x13a8('0x19')]('[%s][calls][musiconholdstart]',_0x22c7ed[_0x13a8('0x8')]),_0x45561d);}};exports[_0x13a8('0x42')]=function(_0x1a2da9){try{if(!_['isNil'](channels[_0x1a2da9[_0x13a8('0x8')]])){utils[_0x13a8('0x18')](util[_0x13a8('0x19')](_0x13a8('0x43'),_0x1a2da9[_0x13a8('0x8')]),_0x1a2da9);if(!_[_0x13a8('0x25')](channels[_0x1a2da9[_0x13a8('0x8')]][_0x13a8('0x40')])){channels[_0x1a2da9[_0x13a8('0x8')]][_0x13a8('0x44')]+=utils[_0x13a8('0x35')](utils[_0x13a8('0x20')](),channels[_0x1a2da9[_0x13a8('0x8')]][_0x13a8('0x40')]);utils[_0x13a8('0x1c')](util[_0x13a8('0x19')](_0x13a8('0x45'),_0x1a2da9[_0x13a8('0x8')],channels[_0x1a2da9['uniqueid']][_0x13a8('0x44')]));delete channels[_0x1a2da9[_0x13a8('0x8')]]['musiconholdstartAt'];}}}catch(_0xf11e16){utils['error'](util[_0x13a8('0x19')](_0x13a8('0x43'),_0x1a2da9[_0x13a8('0x8')]),_0xf11e16);}};exports['varset']=function(_0xa155f4){try{if(!_[_0x13a8('0x25')](channels[_0xa155f4[_0x13a8('0x8')]])){utils[_0x13a8('0x18')](util['format'](_0x13a8('0x46'),_0xa155f4[_0x13a8('0x8')]),_0xa155f4);if(!_[_0x13a8('0x25')](_0xa155f4[_0x13a8('0x47')]['xmd-originatecalleridnum'])){utils[_0x13a8('0x1c')](util[_0x13a8('0x19')]('[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s',_0xa155f4[_0x13a8('0x8')],_0xa155f4['value']));channels[_0xa155f4[_0x13a8('0x8')]][_0x13a8('0x48')]=_0xa155f4[_0x13a8('0x49')];}if(!_[_0x13a8('0x25')](_0xa155f4['variable'][_0x13a8('0x4a')])){utils[_0x13a8('0x1c')](util[_0x13a8('0x19')]('[%s][calls][varset]\x20variable:xmd-phone\x20value:%s',_0xa155f4[_0x13a8('0x8')],_0xa155f4[_0x13a8('0x49')]));channels[_0xa155f4[_0x13a8('0x8')]][_0x13a8('0x4b')]=_0xa155f4['value'];channels[_0xa155f4[_0x13a8('0x8')]][_0x13a8('0x2f')]='\x22'+_0xa155f4[_0x13a8('0x49')]+_0x13a8('0x4c')+_0xa155f4['value']+'>';}if(!_[_0x13a8('0x25')](_0xa155f4['variable']['xmd-callerid-preview'])||!_[_0x13a8('0x25')](_0xa155f4[_0x13a8('0x47')]['xmd-callerid'])){utils[_0x13a8('0x1c')](util['format']('[%s][calls][varset]\x20variable:%s\x20value:%s',_0xa155f4['uniqueid'],!_['isNil'](_0xa155f4['variable'][_0x13a8('0x4d')])?_0x13a8('0x4d'):'xmd-callerid',_0xa155f4[_0x13a8('0x49')]));channels[_0xa155f4['uniqueid']][_0x13a8('0x2f')]=_0xa155f4[_0x13a8('0x49')];}if(!_[_0x13a8('0x25')](_0xa155f4[_0x13a8('0x47')][_0x13a8('0x4e')])||!_[_0x13a8('0x25')](_0xa155f4['variable'][_0x13a8('0x4f')])){utils[_0x13a8('0x1c')](util[_0x13a8('0x19')](_0x13a8('0x50'),_0xa155f4[_0x13a8('0x8')],!_['isNil'](_0xa155f4[_0x13a8('0x47')][_0x13a8('0x4e')])?_0x13a8('0x4e'):_0x13a8('0x4f'),_0xa155f4['value']));channels[_0xa155f4[_0x13a8('0x8')]]['lastapplication']=_0x13a8('0x51');channels[_0xa155f4[_0x13a8('0x8')]]['lastdata']=_0xa155f4['value'];channels[_0xa155f4['uniqueid']]['queue']=!![];}if(!_[_0x13a8('0x25')](_0xa155f4[_0x13a8('0x47')][_0x13a8('0x52')])){utils[_0x13a8('0x1c')](util[_0x13a8('0x19')](_0x13a8('0x53'),_0xa155f4[_0x13a8('0x8')],_0xa155f4[_0x13a8('0x49')]));channels[_0xa155f4['uniqueid']]['ContactId']=_0xa155f4[_0x13a8('0x49')];}if(!_[_0x13a8('0x25')](_0xa155f4[_0x13a8('0x47')]['xmd-cdrtype'])){utils[_0x13a8('0x1c')](util[_0x13a8('0x19')](_0x13a8('0x54'),_0xa155f4['uniqueid'],_0xa155f4[_0x13a8('0x49')]));channels[_0xa155f4[_0x13a8('0x8')]][_0x13a8('0x55')]=_0xa155f4[_0x13a8('0x49')];}if(!_['isNil'](_0xa155f4[_0x13a8('0x47')]['outboundrouteid'])){utils[_0x13a8('0x1c')](util[_0x13a8('0x19')]('[%s][calls][varset]\x20variable:outboundrouteid\x20value:%s',_0xa155f4[_0x13a8('0x8')],_0xa155f4[_0x13a8('0x49')]));channels[_0xa155f4[_0x13a8('0x8')]][_0x13a8('0x56')]=_0xa155f4['value'];}if(!_[_0x13a8('0x25')](_0xa155f4['variable']['sipcallid'])){utils['info'](util[_0x13a8('0x19')](_0x13a8('0x57'),_0xa155f4[_0x13a8('0x8')],_0xa155f4[_0x13a8('0x49')]));channels[_0xa155f4['uniqueid']][_0x13a8('0x58')]=_0xa155f4[_0x13a8('0x49')];}}}catch(_0x5f50b5){utils['error'](util['format'](_0x13a8('0x46'),_0xa155f4[_0x13a8('0x8')]),_0x5f50b5);}};exports['newexten']=function(_0x53caf1){try{if(!_[_0x13a8('0x25')](channels[_0x53caf1[_0x13a8('0x8')]])){utils['debug'](util[_0x13a8('0x19')]('[%s][calls][newexten]',_0x53caf1[_0x13a8('0x8')]),_0x53caf1);utils[_0x13a8('0x1c')](util['format'](_0x13a8('0x59'),_0x53caf1[_0x13a8('0x8')],_0x53caf1[_0x13a8('0x5a')],_0x53caf1['appdata']));if(_0x53caf1[_0x13a8('0x5a')]['toLowerCase']()=='set'&&_['startsWith'](_0x53caf1[_0x13a8('0x5b')]['toLowerCase'](),_0x13a8('0x5c'))){var _0x3f361f=_0x53caf1[_0x13a8('0x5b')][_0x13a8('0x5d')]('=');var _0x3682d4=_0x3f361f[0x0]['substring'](_0x3f361f[0x0][_0x13a8('0x5e')]('(')+0x1,_0x3f361f[0x0][_0x13a8('0x5e')](')'));var _0x3197f9=_0x3f361f[0x1];channels[_0x53caf1[_0x13a8('0x8')]][_0x3682d4]=_0x3197f9;}if(!_[_0x13a8('0x5f')]([_0x13a8('0x2e'),_0x13a8('0x60'),_0x13a8('0x61'),_0x13a8('0x62'),'gotoif'],_0x53caf1[_0x13a8('0x5a')][_0x13a8('0x63')]())){channels[_0x53caf1[_0x13a8('0x8')]]['lastapplication']=_0x53caf1[_0x13a8('0x5a')];channels[_0x53caf1['uniqueid']][_0x13a8('0x64')]=_0x53caf1['appdata'];}}}catch(_0x380f6e){utils[_0x13a8('0x22')](util[_0x13a8('0x19')](_0x13a8('0x65'),_0x53caf1['uniqueid']),_0x380f6e);}};