Built motion from commit 0900f080.|2.5.45
[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 _0x788c=['[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s','value','source','[%s][calls][varset]\x20variable:xmd-phone\x20value:%s','\x22\x20<','xmd-callerid-preview','xmd-callerid','xmd-queue','xmcs-queue','[%s][calls][varset]\x20variable:%s\x20value:%s','lastapplication','Queue','lastdata','queue','xmd-contactid','[%s][calls][varset]\x20variable:xmd-contactid\x20value:%s','xmd-cdrtype','outboundrouteid','routeid','sipcallid','newexten','[%s][calls][newexten]','[%s][calls][newexten]\x20application:%s\x20appdata:%s','application','appdata','toLowerCase','set','startsWith','cdr','split','substring','noop','util','./transfers.controller','FAILED','NO\x20ANSWER','ANSWERED','blinds','uniqueid','transfereeuniqueid','info','format','[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','channel','membername','interface','calleridnum','connectedlinenum','getUserByInternal','accountcode','UserId','request','CreateVoiceCallReport','recording','newchannel','debug','[%s][calls][newchannel]','linkedid','OutgoingSpoolFailed','[%s][calls][newchannel]\x20context:%s\x20exten:%s','context','now','DOCUMENTATION','error','newstate','[%s][calls][newstate]','isNil','[%s][calls][newstate]\x20context:%s\x20channel:%s','systemanswertime','channelstate','transfer','[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s','destinationchannel','answertime','toNumber','hangup','[%s][calls][hangup]','callerid','[%s][calls][hangup]\x20callerid:%s\x20reason:%s','cause-txt','duration','endtime','starttime','billableseconds','diffTime','attendedtransfer','localtwolinkedid','[%s][calls][attendedtransfer]','origtransfereruniqueid','transfereechannel','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','secondtransfererchannel','userfield','_attended','transfertargetchannel','origtransfererchannel','musiconholdstart','[%s][calls][musiconholdstart]','musiconholdstartAt','musiconholdstop','[%s][calls][musiconholdstop]','[%s][calls][musiconholdstop]\x20mohtime:%s','mohtime','varset','[%s][calls][varset]','variable','xmd-originatecalleridnum'];(function(_0x2d6f29,_0x2f6366){var _0x291f5a=function(_0x36b6bd){while(--_0x36b6bd){_0x2d6f29['push'](_0x2d6f29['shift']());}};_0x291f5a(++_0x2f6366);}(_0x788c,0xf6));var _0xc788=function(_0x245027,_0x3321ed){_0x245027=_0x245027-0x0;var _0x286688=_0x788c[_0x245027];return _0x286688;};'use strict';var _=require('lodash');var util=require(_0xc788('0x0'));var utils=require('./utils');var transfers=require(_0xc788('0x1'));var dispositions=['NO\x20ANSWER',_0xc788('0x2'),'FAILED','NO\x20ANSWER',_0xc788('0x3'),_0xc788('0x3'),_0xc788('0x4'),'BUSY','FAILED',_0xc788('0x2'),_0xc788('0x2')];var channels={};function writeDB(_0x184979){var _0x3685d2;if(transfers[_0xc788('0x5')][_0x184979[_0xc788('0x6')]]){_0x3685d2=_0x184979['uniqueid'];_0x184979[_0xc788('0x6')]=transfers['blinds'][_0x184979[_0xc788('0x6')]][_0xc788('0x7')];}utils[_0xc788('0x8')](util[_0xc788('0x9')](_0xc788('0xa'),_0x184979[_0xc788('0x6')],_0x184979[_0xc788('0xb')],_0x184979['queue'],_0x184979[_0xc788('0xc')],_0x184979[_0xc788('0xd')],_0x184979[_0xc788('0xe')],_0x184979[_0xc788('0xf')],_0x184979['lastevent']));if(_0x184979['accountcode']){utils[_0xc788('0x10')](_0x184979[_0xc788('0x11')])['then'](function(_0x511250){if(_0x511250){_0x184979[_0xc788('0x12')]=_0x511250['id'];}utils[_0xc788('0x13')](_0xc788('0x14'),_0x184979);});}else{utils[_0xc788('0x13')]('CreateVoiceCallReport',_0x184979);}if(channels[_0x184979[_0xc788('0x6')]]){delete channels[_0x184979[_0xc788('0x6')]];}else if(_0x3685d2&&channels[_0x3685d2]){if(!transfers[_0xc788('0x5')][_0x3685d2][_0xc788('0x15')])delete transfers[_0xc788('0x5')][_0x3685d2];delete channels[_0x3685d2];}}exports[_0xc788('0x16')]=function(_0x267c96){try{utils[_0xc788('0x17')](util[_0xc788('0x9')](_0xc788('0x18'),_0x267c96['uniqueid']),_0x267c96);if(_0x267c96[_0xc788('0x6')]==_0x267c96[_0xc788('0x19')]&&_0x267c96['channel']!=_0xc788('0x1a')){utils[_0xc788('0x8')](util[_0xc788('0x9')](_0xc788('0x1b'),_0x267c96[_0xc788('0x6')],_0x267c96[_0xc788('0x1c')],_0x267c96['exten']));channels[_0x267c96[_0xc788('0x6')]]={'uniqueid':_0x267c96['uniqueid'],'accountcode':_0x267c96[_0xc788('0x11')],'source':_0x267c96[_0xc788('0xe')],'destination':_0x267c96['exten'],'destinationcontext':_0x267c96['context'],'channel':_0x267c96['channel'],'starttime':utils[_0xc788('0x1d')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':_0xc788('0x3'),'amaflags':_0xc788('0x1e')};}}catch(_0x4d457e){utils[_0xc788('0x1f')](util[_0xc788('0x9')]('[%s][calls][newchannel]',_0x267c96[_0xc788('0x6')]),_0x4d457e);}};exports[_0xc788('0x20')]=function(_0x3f470b){try{utils[_0xc788('0x17')](util[_0xc788('0x9')](_0xc788('0x21'),_0x3f470b[_0xc788('0x6')]),_0x3f470b);if(!_[_0xc788('0x22')](channels[_0x3f470b['uniqueid']])&&_0x3f470b['channelstate']==0x6){utils[_0xc788('0x8')](util[_0xc788('0x9')](_0xc788('0x23'),_0x3f470b[_0xc788('0x6')],_0x3f470b['context'],_0x3f470b[_0xc788('0xb')]));if(_[_0xc788('0x22')](channels[_0x3f470b['uniqueid']][_0xc788('0x24')])){channels[_0x3f470b[_0xc788('0x6')]][_0xc788('0x24')]=utils[_0xc788('0x1d')]();}}else if(!_[_0xc788('0x22')](channels[_0x3f470b[_0xc788('0x19')]])&&_0x3f470b[_0xc788('0x25')]==0x6&&_0x3f470b[_0xc788('0x1c')]!=_0xc788('0x26')){utils[_0xc788('0x8')](util[_0xc788('0x9')](_0xc788('0x27'),_0x3f470b[_0xc788('0x6')],_0x3f470b[_0xc788('0x19')],_0x3f470b[_0xc788('0x1c')],_0x3f470b[_0xc788('0xb')]));channels[_0x3f470b[_0xc788('0x19')]][_0xc788('0x11')]=_0x3f470b['accountcode'];channels[_0x3f470b[_0xc788('0x19')]][_0xc788('0x28')]=_0x3f470b[_0xc788('0xb')];if(_[_0xc788('0x22')](channels[_0x3f470b[_0xc788('0x19')]][_0xc788('0x29')])){channels[_0x3f470b[_0xc788('0x19')]][_0xc788('0x29')]=utils[_0xc788('0x1d')]();}channels[_0x3f470b['linkedid']]['disposition']=dispositions[_[_0xc788('0x2a')](_0x3f470b['channelstate'])]||'ANSWERED';}}catch(_0x50aea6){utils[_0xc788('0x1f')](util[_0xc788('0x9')]('[%s][calls][newstate]',_0x3f470b[_0xc788('0x6')]),_0x50aea6);}};exports[_0xc788('0x2b')]=function(_0x33f9a4){try{if(!_['isNil'](channels[_0x33f9a4[_0xc788('0x6')]])){utils[_0xc788('0x17')](util[_0xc788('0x9')](_0xc788('0x2c'),_0x33f9a4[_0xc788('0x6')]),_0x33f9a4);if(_[_0xc788('0x22')](channels[_0x33f9a4[_0xc788('0x6')]][_0xc788('0x2d')])){channels[_0x33f9a4['uniqueid']][_0xc788('0x2d')]=_0x33f9a4['calleridname']+'\x20<'+_0x33f9a4[_0xc788('0xe')]+'>';}utils[_0xc788('0x8')](util['format'](_0xc788('0x2e'),_0x33f9a4[_0xc788('0x6')],channels[_0x33f9a4[_0xc788('0x6')]][_0xc788('0x2d')],_0x33f9a4[_0xc788('0x2f')]));channels[_0x33f9a4[_0xc788('0x6')]]['endtime']=utils['now']();channels[_0x33f9a4['uniqueid']][_0xc788('0x30')]=utils['diffTime'](channels[_0x33f9a4[_0xc788('0x6')]][_0xc788('0x31')],channels[_0x33f9a4[_0xc788('0x6')]][_0xc788('0x32')]);channels[_0x33f9a4[_0xc788('0x6')]][_0xc788('0x33')]=channels[_0x33f9a4[_0xc788('0x6')]]['answertime']?utils[_0xc788('0x34')](channels[_0x33f9a4[_0xc788('0x6')]][_0xc788('0x31')],channels[_0x33f9a4[_0xc788('0x6')]][_0xc788('0x29')]):0x0;writeDB(channels[_0x33f9a4[_0xc788('0x6')]]);}}catch(_0xd93ded){utils[_0xc788('0x1f')](util[_0xc788('0x9')](_0xc788('0x2c'),_0x33f9a4[_0xc788('0x6')]),_0xd93ded);}};exports[_0xc788('0x35')]=function(_0xb9b49f){try{if(!_[_0xc788('0x22')](channels[_0xb9b49f[_0xc788('0x36')]])){utils['debug'](util[_0xc788('0x9')](_0xc788('0x37'),_0xb9b49f[_0xc788('0x38')]),_0xb9b49f);if(channels[_0xb9b49f[_0xc788('0x36')]][_0xc788('0xb')]==_0xb9b49f[_0xc788('0x39')]){utils[_0xc788('0x8')](util[_0xc788('0x9')](_0xc788('0x3a'),_0xb9b49f[_0xc788('0x38')],_0xb9b49f['localtwolinkedid'],_0xb9b49f[_0xc788('0x3b')]));channels[_0xb9b49f[_0xc788('0x36')]][_0xc788('0x28')]=_0xb9b49f[_0xc788('0x3b')];channels[_0xb9b49f[_0xc788('0x36')]][_0xc788('0x3c')]=_0xc788('0x3d');}else if(channels[_0xb9b49f[_0xc788('0x36')]][_0xc788('0xb')]=_0xb9b49f[_0xc788('0x3e')]){utils[_0xc788('0x8')](util[_0xc788('0x9')]('[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s',_0xb9b49f[_0xc788('0x38')],_0xb9b49f['localtwolinkedid'],_0xb9b49f['origtransfererchannel']));channels[_0xb9b49f[_0xc788('0x36')]][_0xc788('0x28')]=_0xb9b49f[_0xc788('0x3f')];channels[_0xb9b49f[_0xc788('0x36')]][_0xc788('0x3c')]=_0xc788('0x3d');}}}catch(_0x404c9a){utils[_0xc788('0x1f')](util[_0xc788('0x9')](_0xc788('0x37'),_0xb9b49f[_0xc788('0x38')]),_0x404c9a);}};exports[_0xc788('0x40')]=function(_0x51afde){try{if(!_['isNil'](channels[_0x51afde['uniqueid']])){utils[_0xc788('0x17')](util[_0xc788('0x9')](_0xc788('0x41'),_0x51afde[_0xc788('0x6')]),_0x51afde);channels[_0x51afde['uniqueid']][_0xc788('0x42')]=utils[_0xc788('0x1d')]();utils[_0xc788('0x8')](util[_0xc788('0x9')]('[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s',_0x51afde[_0xc788('0x6')],channels[_0x51afde[_0xc788('0x6')]][_0xc788('0x42')]));}}catch(_0x4700fe){utils['error'](util[_0xc788('0x9')](_0xc788('0x41'),_0x51afde[_0xc788('0x6')]),_0x4700fe);}};exports[_0xc788('0x43')]=function(_0x4b6fac){try{if(!_['isNil'](channels[_0x4b6fac[_0xc788('0x6')]])){utils['debug'](util[_0xc788('0x9')](_0xc788('0x44'),_0x4b6fac['uniqueid']),_0x4b6fac);if(!_['isNil'](channels[_0x4b6fac[_0xc788('0x6')]][_0xc788('0x42')])){channels[_0x4b6fac[_0xc788('0x6')]]['mohtime']+=utils[_0xc788('0x34')](utils[_0xc788('0x1d')](),channels[_0x4b6fac[_0xc788('0x6')]][_0xc788('0x42')]);utils['info'](util[_0xc788('0x9')](_0xc788('0x45'),_0x4b6fac['uniqueid'],channels[_0x4b6fac[_0xc788('0x6')]][_0xc788('0x46')]));delete channels[_0x4b6fac[_0xc788('0x6')]][_0xc788('0x42')];}}}catch(_0x12daee){utils[_0xc788('0x1f')](util[_0xc788('0x9')]('[%s][calls][musiconholdstop]',_0x4b6fac[_0xc788('0x6')]),_0x12daee);}};exports[_0xc788('0x47')]=function(_0x5c164b){try{if(!_[_0xc788('0x22')](channels[_0x5c164b[_0xc788('0x6')]])){utils[_0xc788('0x17')](util[_0xc788('0x9')](_0xc788('0x48'),_0x5c164b[_0xc788('0x6')]),_0x5c164b);if(!_[_0xc788('0x22')](_0x5c164b[_0xc788('0x49')][_0xc788('0x4a')])){utils['info'](util[_0xc788('0x9')](_0xc788('0x4b'),_0x5c164b[_0xc788('0x6')],_0x5c164b[_0xc788('0x4c')]));channels[_0x5c164b[_0xc788('0x6')]][_0xc788('0x4d')]=_0x5c164b[_0xc788('0x4c')];}if(!_[_0xc788('0x22')](_0x5c164b[_0xc788('0x49')]['xmd-phone'])){utils[_0xc788('0x8')](util[_0xc788('0x9')](_0xc788('0x4e'),_0x5c164b[_0xc788('0x6')],_0x5c164b[_0xc788('0x4c')]));channels[_0x5c164b['uniqueid']]['destination']=_0x5c164b['value'];channels[_0x5c164b['uniqueid']][_0xc788('0x2d')]='\x22'+_0x5c164b[_0xc788('0x4c')]+_0xc788('0x4f')+_0x5c164b[_0xc788('0x4c')]+'>';}if(!_[_0xc788('0x22')](_0x5c164b['variable']['xmd-callerid-preview'])||!_[_0xc788('0x22')](_0x5c164b[_0xc788('0x49')]['xmd-callerid'])){utils[_0xc788('0x8')](util[_0xc788('0x9')]('[%s][calls][varset]\x20variable:%s\x20value:%s',_0x5c164b['uniqueid'],!_[_0xc788('0x22')](_0x5c164b['variable'][_0xc788('0x50')])?_0xc788('0x50'):_0xc788('0x51'),_0x5c164b[_0xc788('0x4c')]));channels[_0x5c164b[_0xc788('0x6')]][_0xc788('0x2d')]=_0x5c164b['value'];}if(!_[_0xc788('0x22')](_0x5c164b[_0xc788('0x49')][_0xc788('0x52')])||!_['isNil'](_0x5c164b[_0xc788('0x49')][_0xc788('0x53')])){utils['info'](util[_0xc788('0x9')](_0xc788('0x54'),_0x5c164b[_0xc788('0x6')],!_[_0xc788('0x22')](_0x5c164b[_0xc788('0x49')][_0xc788('0x52')])?_0xc788('0x52'):_0xc788('0x53'),_0x5c164b[_0xc788('0x4c')]));channels[_0x5c164b[_0xc788('0x6')]][_0xc788('0x55')]=_0xc788('0x56');channels[_0x5c164b[_0xc788('0x6')]][_0xc788('0x57')]=_0x5c164b[_0xc788('0x4c')];channels[_0x5c164b[_0xc788('0x6')]][_0xc788('0x58')]=!![];}if(!_[_0xc788('0x22')](_0x5c164b[_0xc788('0x49')][_0xc788('0x59')])){utils[_0xc788('0x8')](util[_0xc788('0x9')](_0xc788('0x5a'),_0x5c164b['uniqueid'],_0x5c164b[_0xc788('0x4c')]));channels[_0x5c164b[_0xc788('0x6')]]['ContactId']=_0x5c164b[_0xc788('0x4c')];}if(!_[_0xc788('0x22')](_0x5c164b[_0xc788('0x49')][_0xc788('0x5b')])){utils[_0xc788('0x8')](util[_0xc788('0x9')]('[%s][calls][varset]\x20variable:xmd-cdrtype\x20value:%s',_0x5c164b[_0xc788('0x6')],_0x5c164b['value']));channels[_0x5c164b['uniqueid']]['type']=_0x5c164b[_0xc788('0x4c')];}if(!_['isNil'](_0x5c164b[_0xc788('0x49')][_0xc788('0x5c')])){utils[_0xc788('0x8')](util[_0xc788('0x9')]('[%s][calls][varset]\x20variable:outboundrouteid\x20value:%s',_0x5c164b['uniqueid'],_0x5c164b[_0xc788('0x4c')]));channels[_0x5c164b['uniqueid']][_0xc788('0x5d')]=_0x5c164b[_0xc788('0x4c')];}if(!_[_0xc788('0x22')](_0x5c164b['variable']['sipcallid'])){utils[_0xc788('0x8')](util[_0xc788('0x9')]('[%s][calls][varset]\x20variable:sipcallid\x20value:%s',_0x5c164b['uniqueid'],_0x5c164b['value']));channels[_0x5c164b[_0xc788('0x6')]][_0xc788('0x5e')]=_0x5c164b[_0xc788('0x4c')];}}}catch(_0xff7688){utils['error'](util['format']('[%s][calls][varset]',_0x5c164b[_0xc788('0x6')]),_0xff7688);}};exports[_0xc788('0x5f')]=function(_0x592b3d){try{if(!_['isNil'](channels[_0x592b3d[_0xc788('0x6')]])){utils['debug'](util[_0xc788('0x9')](_0xc788('0x60'),_0x592b3d[_0xc788('0x6')]),_0x592b3d);utils[_0xc788('0x8')](util[_0xc788('0x9')](_0xc788('0x61'),_0x592b3d[_0xc788('0x6')],_0x592b3d[_0xc788('0x62')],_0x592b3d[_0xc788('0x63')]));if(_0x592b3d['application'][_0xc788('0x64')]()==_0xc788('0x65')&&_[_0xc788('0x66')](_0x592b3d['appdata'][_0xc788('0x64')](),_0xc788('0x67'))){var _0x56a0be=_0x592b3d['appdata'][_0xc788('0x68')]('=');var _0x3b73aa=_0x56a0be[0x0][_0xc788('0x69')](_0x56a0be[0x0]['lastIndexOf']('(')+0x1,_0x56a0be[0x0]['lastIndexOf'](')'));var _0x469935=_0x56a0be[0x1];channels[_0x592b3d['uniqueid']][_0x3b73aa]=_0x469935;}if(!_['includes']([_0xc788('0x2b'),_0xc788('0x6a'),'execif',_0xc788('0x65'),'gotoif'],_0x592b3d['application'][_0xc788('0x64')]())){channels[_0x592b3d[_0xc788('0x6')]]['lastapplication']=_0x592b3d[_0xc788('0x62')];channels[_0x592b3d[_0xc788('0x6')]][_0xc788('0x57')]=_0x592b3d[_0xc788('0x63')];}}}catch(_0x19d8c2){utils[_0xc788('0x1f')](util[_0xc788('0x9')](_0xc788('0x60'),_0x592b3d[_0xc788('0x6')]),_0x19d8c2);}};