Built motion from commit (unavailable).|2.5.8
[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 _0xb849=['linkedid','OutgoingSpoolFailed','[%s][calls][newchannel]\x20context:%s\x20exten:%s','context','exten','DOCUMENTATION','error','channelstate','[%s][calls][newstate]\x20context:%s\x20channel:%s','isNil','systemanswertime','transfer','[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s','now','disposition','[%s][calls][newstate]','hangup','[%s][calls][hangup]','callerid','calleridname','cause-txt','endtime','diffTime','starttime','billableseconds','answertime','attendedtransfer','localtwolinkedid','[%s][calls][attendedtransfer]','transfereechannel','secondtransfererchannel','destinationchannel','userfield','_attended','transfertargetchannel','origtransfererchannel','[%s][calls][musiconholdstart]','musiconholdstartAt','[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s','[%s][calls][musiconholdstop]','mohtime','[%s][calls][musiconholdstop]\x20mohtime:%s','[%s][calls][varset]','xmd-originatecalleridnum','[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s','value','variable','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','xmd-contactid','[%s][calls][varset]\x20variable:xmd-contactid\x20value:%s','ContactId','xmd-cdrtype','type','outboundrouteid','[%s][calls][varset]\x20variable:outboundrouteid\x20value:%s','routeid','sipcallid','[%s][calls][varset]\x20variable:sipcallid\x20value:%s','newexten','[%s][calls][newexten]','[%s][calls][newexten]\x20application:%s\x20appdata:%s','application','appdata','toLowerCase','set','cdr','split','substring','lastIndexOf','noop','execif','gotoif','lastdata','./utils','NO\x20ANSWER','FAILED','BUSY','info','[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','uniqueid','channel','queue','membername','interface','calleridnum','connectedlinenum','accountcode','then','UserId','request','CreateVoiceCallReport','newchannel','debug','format','[%s][calls][newchannel]'];(function(_0x10e9a5,_0x1947bd){var _0x3fc273=function(_0x59a4a2){while(--_0x59a4a2){_0x10e9a5['push'](_0x10e9a5['shift']());}};_0x3fc273(++_0x1947bd);}(_0xb849,0x122));var _0x9b84=function(_0xabea53,_0xf55f3d){_0xabea53=_0xabea53-0x0;var _0xfa9b6b=_0xb849[_0xabea53];return _0xfa9b6b;};'use strict';var _=require('lodash');var util=require('util');var utils=require(_0x9b84('0x0'));var dispositions=[_0x9b84('0x1'),'FAILED',_0x9b84('0x2'),'NO\x20ANSWER',_0x9b84('0x1'),_0x9b84('0x1'),'ANSWERED',_0x9b84('0x3'),_0x9b84('0x2'),_0x9b84('0x2'),_0x9b84('0x2')];var channels={};function writeDB(_0x586a32){utils[_0x9b84('0x4')](util['format'](_0x9b84('0x5'),_0x586a32[_0x9b84('0x6')],_0x586a32[_0x9b84('0x7')],_0x586a32[_0x9b84('0x8')],_0x586a32[_0x9b84('0x9')],_0x586a32[_0x9b84('0xa')],_0x586a32[_0x9b84('0xb')],_0x586a32[_0x9b84('0xc')],_0x586a32['lastevent']));if(_0x586a32[_0x9b84('0xd')]){utils['getUserByInternal'](_0x586a32[_0x9b84('0xd')])[_0x9b84('0xe')](function(_0x3f89ef){if(_0x3f89ef){_0x586a32[_0x9b84('0xf')]=_0x3f89ef['id'];}utils[_0x9b84('0x10')](_0x9b84('0x11'),_0x586a32);});}else{utils[_0x9b84('0x10')](_0x9b84('0x11'),_0x586a32);}if(channels[_0x586a32[_0x9b84('0x6')]]){delete channels[_0x586a32[_0x9b84('0x6')]];}}exports[_0x9b84('0x12')]=function(_0x23c9b5){try{utils[_0x9b84('0x13')](util[_0x9b84('0x14')](_0x9b84('0x15'),_0x23c9b5[_0x9b84('0x6')]),_0x23c9b5);if(_0x23c9b5[_0x9b84('0x6')]==_0x23c9b5[_0x9b84('0x16')]&&_0x23c9b5['channel']!=_0x9b84('0x17')){utils[_0x9b84('0x4')](util[_0x9b84('0x14')](_0x9b84('0x18'),_0x23c9b5[_0x9b84('0x6')],_0x23c9b5[_0x9b84('0x19')],_0x23c9b5[_0x9b84('0x1a')]));channels[_0x23c9b5[_0x9b84('0x6')]]={'uniqueid':_0x23c9b5[_0x9b84('0x6')],'accountcode':_0x23c9b5[_0x9b84('0xd')],'source':_0x23c9b5[_0x9b84('0xb')],'destination':_0x23c9b5[_0x9b84('0x1a')],'destinationcontext':_0x23c9b5[_0x9b84('0x19')],'channel':_0x23c9b5[_0x9b84('0x7')],'starttime':utils['now'](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':_0x9b84('0x1'),'amaflags':_0x9b84('0x1b')};}}catch(_0x7d4553){utils[_0x9b84('0x1c')](util['format'](_0x9b84('0x15'),_0x23c9b5[_0x9b84('0x6')]),_0x7d4553);}};exports['newstate']=function(_0x489e33){try{utils[_0x9b84('0x13')](util['format']('[%s][calls][newstate]',_0x489e33[_0x9b84('0x6')]),_0x489e33);if(!_['isNil'](channels[_0x489e33[_0x9b84('0x6')]])&&_0x489e33[_0x9b84('0x1d')]==0x6){utils['info'](util[_0x9b84('0x14')](_0x9b84('0x1e'),_0x489e33['uniqueid'],_0x489e33[_0x9b84('0x19')],_0x489e33['channel']));if(_[_0x9b84('0x1f')](channels[_0x489e33[_0x9b84('0x6')]][_0x9b84('0x20')])){channels[_0x489e33[_0x9b84('0x6')]][_0x9b84('0x20')]=utils['now']();}}else if(!_[_0x9b84('0x1f')](channels[_0x489e33[_0x9b84('0x16')]])&&_0x489e33[_0x9b84('0x1d')]==0x6&&_0x489e33[_0x9b84('0x19')]!=_0x9b84('0x21')){utils[_0x9b84('0x4')](util[_0x9b84('0x14')](_0x9b84('0x22'),_0x489e33['uniqueid'],_0x489e33['linkedid'],_0x489e33[_0x9b84('0x19')],_0x489e33[_0x9b84('0x7')]));channels[_0x489e33[_0x9b84('0x16')]][_0x9b84('0xd')]=_0x489e33[_0x9b84('0xd')];channels[_0x489e33['linkedid']]['destinationchannel']=_0x489e33[_0x9b84('0x7')];if(_[_0x9b84('0x1f')](channels[_0x489e33[_0x9b84('0x16')]]['answertime'])){channels[_0x489e33[_0x9b84('0x16')]]['answertime']=utils[_0x9b84('0x23')]();}channels[_0x489e33[_0x9b84('0x16')]][_0x9b84('0x24')]=dispositions[_['toNumber'](_0x489e33[_0x9b84('0x1d')])]||'ANSWERED';}}catch(_0x29940c){utils[_0x9b84('0x1c')](util[_0x9b84('0x14')](_0x9b84('0x25'),_0x489e33[_0x9b84('0x6')]),_0x29940c);}};exports[_0x9b84('0x26')]=function(_0x363fc7){try{if(!_[_0x9b84('0x1f')](channels[_0x363fc7[_0x9b84('0x6')]])){utils[_0x9b84('0x13')](util[_0x9b84('0x14')](_0x9b84('0x27'),_0x363fc7[_0x9b84('0x6')]),_0x363fc7);if(_[_0x9b84('0x1f')](channels[_0x363fc7[_0x9b84('0x6')]][_0x9b84('0x28')])){channels[_0x363fc7['uniqueid']][_0x9b84('0x28')]=_0x363fc7[_0x9b84('0x29')]+'\x20<'+_0x363fc7['calleridnum']+'>';}utils[_0x9b84('0x4')](util[_0x9b84('0x14')]('[%s][calls][hangup]\x20callerid:%s\x20reason:%s',_0x363fc7[_0x9b84('0x6')],channels[_0x363fc7[_0x9b84('0x6')]][_0x9b84('0x28')],_0x363fc7[_0x9b84('0x2a')]));channels[_0x363fc7['uniqueid']][_0x9b84('0x2b')]=utils['now']();channels[_0x363fc7[_0x9b84('0x6')]]['duration']=utils[_0x9b84('0x2c')](channels[_0x363fc7['uniqueid']][_0x9b84('0x2b')],channels[_0x363fc7['uniqueid']][_0x9b84('0x2d')]);channels[_0x363fc7[_0x9b84('0x6')]][_0x9b84('0x2e')]=channels[_0x363fc7[_0x9b84('0x6')]][_0x9b84('0x2f')]?utils[_0x9b84('0x2c')](channels[_0x363fc7[_0x9b84('0x6')]][_0x9b84('0x2b')],channels[_0x363fc7[_0x9b84('0x6')]][_0x9b84('0x2f')]):0x0;writeDB(channels[_0x363fc7['uniqueid']]);}}catch(_0x38176a){utils[_0x9b84('0x1c')](util['format'](_0x9b84('0x27'),_0x363fc7[_0x9b84('0x6')]),_0x38176a);}};exports[_0x9b84('0x30')]=function(_0xd0aeec){try{if(!_['isNil'](channels[_0xd0aeec[_0x9b84('0x31')]])){utils[_0x9b84('0x13')](util[_0x9b84('0x14')](_0x9b84('0x32'),_0xd0aeec[_0x9b84('0x6')]),_0xd0aeec);if(channels[_0xd0aeec[_0x9b84('0x31')]][_0x9b84('0x7')]==_0xd0aeec[_0x9b84('0x33')]){utils[_0x9b84('0x4')](util[_0x9b84('0x14')]('[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s',_0xd0aeec[_0x9b84('0x6')],_0xd0aeec[_0x9b84('0x31')],_0xd0aeec[_0x9b84('0x34')]));channels[_0xd0aeec[_0x9b84('0x31')]][_0x9b84('0x35')]=_0xd0aeec[_0x9b84('0x34')];channels[_0xd0aeec[_0x9b84('0x31')]][_0x9b84('0x36')]=_0x9b84('0x37');}else if(channels[_0xd0aeec[_0x9b84('0x31')]][_0x9b84('0x7')]=_0xd0aeec[_0x9b84('0x38')]){utils['info'](util['format']('[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s',_0xd0aeec['uniqueid'],_0xd0aeec[_0x9b84('0x31')],_0xd0aeec[_0x9b84('0x39')]));channels[_0xd0aeec[_0x9b84('0x31')]][_0x9b84('0x35')]=_0xd0aeec[_0x9b84('0x39')];channels[_0xd0aeec[_0x9b84('0x31')]][_0x9b84('0x36')]='_attended';}}}catch(_0x4720bf){utils[_0x9b84('0x1c')](util['format'](_0x9b84('0x32'),_0xd0aeec[_0x9b84('0x6')]),_0x4720bf);}};exports['musiconholdstart']=function(_0x573604){try{if(!_[_0x9b84('0x1f')](channels[_0x573604[_0x9b84('0x6')]])){utils[_0x9b84('0x13')](util['format'](_0x9b84('0x3a'),_0x573604[_0x9b84('0x6')]),_0x573604);channels[_0x573604[_0x9b84('0x6')]][_0x9b84('0x3b')]=utils[_0x9b84('0x23')]();utils[_0x9b84('0x4')](util[_0x9b84('0x14')](_0x9b84('0x3c'),_0x573604[_0x9b84('0x6')],channels[_0x573604[_0x9b84('0x6')]]['musiconholdstartAt']));}}catch(_0x1caa0e){utils[_0x9b84('0x1c')](util[_0x9b84('0x14')](_0x9b84('0x3a'),_0x573604[_0x9b84('0x6')]),_0x1caa0e);}};exports['musiconholdstop']=function(_0x47cc73){try{if(!_[_0x9b84('0x1f')](channels[_0x47cc73[_0x9b84('0x6')]])){utils['debug'](util[_0x9b84('0x14')](_0x9b84('0x3d'),_0x47cc73[_0x9b84('0x6')]),_0x47cc73);if(!_[_0x9b84('0x1f')](channels[_0x47cc73[_0x9b84('0x6')]]['musiconholdstartAt'])){channels[_0x47cc73[_0x9b84('0x6')]][_0x9b84('0x3e')]+=utils[_0x9b84('0x2c')](utils['now'](),channels[_0x47cc73[_0x9b84('0x6')]][_0x9b84('0x3b')]);utils[_0x9b84('0x4')](util[_0x9b84('0x14')](_0x9b84('0x3f'),_0x47cc73[_0x9b84('0x6')],channels[_0x47cc73['uniqueid']][_0x9b84('0x3e')]));delete channels[_0x47cc73[_0x9b84('0x6')]][_0x9b84('0x3b')];}}}catch(_0x14c41d){utils[_0x9b84('0x1c')](util[_0x9b84('0x14')](_0x9b84('0x3d'),_0x47cc73[_0x9b84('0x6')]),_0x14c41d);}};exports['varset']=function(_0x39019c){try{if(!_[_0x9b84('0x1f')](channels[_0x39019c[_0x9b84('0x6')]])){utils[_0x9b84('0x13')](util[_0x9b84('0x14')](_0x9b84('0x40'),_0x39019c[_0x9b84('0x6')]),_0x39019c);if(!_[_0x9b84('0x1f')](_0x39019c['variable'][_0x9b84('0x41')])){utils[_0x9b84('0x4')](util['format'](_0x9b84('0x42'),_0x39019c[_0x9b84('0x6')],_0x39019c[_0x9b84('0x43')]));channels[_0x39019c[_0x9b84('0x6')]]['source']=_0x39019c['value'];}if(!_[_0x9b84('0x1f')](_0x39019c[_0x9b84('0x44')][_0x9b84('0x45')])){utils[_0x9b84('0x4')](util['format'](_0x9b84('0x46'),_0x39019c[_0x9b84('0x6')],_0x39019c[_0x9b84('0x43')]));channels[_0x39019c[_0x9b84('0x6')]][_0x9b84('0x47')]=_0x39019c[_0x9b84('0x43')];channels[_0x39019c[_0x9b84('0x6')]][_0x9b84('0x28')]='\x22'+_0x39019c[_0x9b84('0x43')]+_0x9b84('0x48')+_0x39019c['value']+'>';}if(!_[_0x9b84('0x1f')](_0x39019c[_0x9b84('0x44')][_0x9b84('0x49')])||!_['isNil'](_0x39019c[_0x9b84('0x44')][_0x9b84('0x4a')])){utils[_0x9b84('0x4')](util[_0x9b84('0x14')](_0x9b84('0x4b'),_0x39019c[_0x9b84('0x6')],!_[_0x9b84('0x1f')](_0x39019c[_0x9b84('0x44')][_0x9b84('0x49')])?_0x9b84('0x49'):_0x9b84('0x4a'),_0x39019c['value']));channels[_0x39019c[_0x9b84('0x6')]][_0x9b84('0x28')]=_0x39019c['value'];}if(!_[_0x9b84('0x1f')](_0x39019c[_0x9b84('0x44')][_0x9b84('0x4c')])||!_['isNil'](_0x39019c[_0x9b84('0x44')][_0x9b84('0x4d')])){utils[_0x9b84('0x4')](util['format'](_0x9b84('0x4b'),_0x39019c[_0x9b84('0x6')],!_[_0x9b84('0x1f')](_0x39019c['variable']['xmd-queue'])?_0x9b84('0x4c'):_0x9b84('0x4d'),_0x39019c['value']));channels[_0x39019c[_0x9b84('0x6')]][_0x9b84('0x4e')]='Queue';channels[_0x39019c['uniqueid']]['lastdata']=_0x39019c['value'];channels[_0x39019c[_0x9b84('0x6')]]['queue']=!![];}if(!_[_0x9b84('0x1f')](_0x39019c[_0x9b84('0x44')][_0x9b84('0x4f')])){utils[_0x9b84('0x4')](util[_0x9b84('0x14')](_0x9b84('0x50'),_0x39019c[_0x9b84('0x6')],_0x39019c['value']));channels[_0x39019c[_0x9b84('0x6')]][_0x9b84('0x51')]=_0x39019c[_0x9b84('0x43')];}if(!_[_0x9b84('0x1f')](_0x39019c[_0x9b84('0x44')][_0x9b84('0x52')])){utils[_0x9b84('0x4')](util[_0x9b84('0x14')]('[%s][calls][varset]\x20variable:xmd-cdrtype\x20value:%s',_0x39019c[_0x9b84('0x6')],_0x39019c['value']));channels[_0x39019c[_0x9b84('0x6')]][_0x9b84('0x53')]=_0x39019c[_0x9b84('0x43')];}if(!_['isNil'](_0x39019c['variable'][_0x9b84('0x54')])){utils[_0x9b84('0x4')](util[_0x9b84('0x14')](_0x9b84('0x55'),_0x39019c[_0x9b84('0x6')],_0x39019c[_0x9b84('0x43')]));channels[_0x39019c['uniqueid']][_0x9b84('0x56')]=_0x39019c[_0x9b84('0x43')];}if(!_[_0x9b84('0x1f')](_0x39019c[_0x9b84('0x44')][_0x9b84('0x57')])){utils[_0x9b84('0x4')](util[_0x9b84('0x14')](_0x9b84('0x58'),_0x39019c[_0x9b84('0x6')],_0x39019c[_0x9b84('0x43')]));channels[_0x39019c['uniqueid']]['sipcallid']=_0x39019c[_0x9b84('0x43')];}}}catch(_0x2645ce){utils[_0x9b84('0x1c')](util['format'](_0x9b84('0x40'),_0x39019c[_0x9b84('0x6')]),_0x2645ce);}};exports[_0x9b84('0x59')]=function(_0x360073){try{if(!_[_0x9b84('0x1f')](channels[_0x360073[_0x9b84('0x6')]])){utils[_0x9b84('0x13')](util[_0x9b84('0x14')](_0x9b84('0x5a'),_0x360073[_0x9b84('0x6')]),_0x360073);utils[_0x9b84('0x4')](util[_0x9b84('0x14')](_0x9b84('0x5b'),_0x360073['uniqueid'],_0x360073[_0x9b84('0x5c')],_0x360073[_0x9b84('0x5d')]));if(_0x360073['application'][_0x9b84('0x5e')]()==_0x9b84('0x5f')&&_['startsWith'](_0x360073[_0x9b84('0x5d')]['toLowerCase'](),_0x9b84('0x60'))){var _0x3de331=_0x360073[_0x9b84('0x5d')][_0x9b84('0x61')]('=');var _0x25fd44=_0x3de331[0x0][_0x9b84('0x62')](_0x3de331[0x0]['lastIndexOf']('(')+0x1,_0x3de331[0x0][_0x9b84('0x63')](')'));var _0x5b542e=_0x3de331[0x1];channels[_0x360073[_0x9b84('0x6')]][_0x25fd44]=_0x5b542e;}if(!_['includes']([_0x9b84('0x26'),_0x9b84('0x64'),_0x9b84('0x65'),'set',_0x9b84('0x66')],_0x360073['application'][_0x9b84('0x5e')]())){channels[_0x360073['uniqueid']][_0x9b84('0x4e')]=_0x360073['application'];channels[_0x360073[_0x9b84('0x6')]][_0x9b84('0x67')]=_0x360073[_0x9b84('0x5d')];}}}catch(_0x4d88da){utils[_0x9b84('0x1c')](util[_0x9b84('0x14')](_0x9b84('0x5a'),_0x360073['uniqueid']),_0x4d88da);}};