Built motion from commit 4ca75f1b.|2.6.28
[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 _0xab1a=['format','[%s][calls][newchannel]','OutgoingSpoolFailed','[%s][calls][newchannel]\x20context:%s\x20exten:%s','context','exten','now','error','newstate','debug','[%s][calls][newstate]','isNil','channelstate','linkedid','transfer','[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s','destinationchannel','answertime','disposition','toNumber','hangup','callerid','[%s][calls][hangup]\x20callerid:%s\x20reason:%s','cause-txt','endtime','duration','diffTime','starttime','[%s][calls][hangup]','attendedtransfer','localtwolinkedid','[%s][calls][attendedtransfer]','origtransfereruniqueid','transfereechannel','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','secondtransfererchannel','userfield','_attended','origtransfererchannel','musiconholdstart','[%s][calls][musiconholdstart]','musiconholdstartAt','[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s','[%s][calls][musiconholdstop]','mohtime','varset','[%s][calls][varset]','variable','[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s','value','source','destination','xmd-callerid-preview','[%s][calls][varset]\x20variable:%s\x20value:%s','xmd-callerid','xmd-queue','xmcs-queue','lastapplication','Queue','lastdata','[%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','[%s][calls][newexten]','application','appdata','toLowerCase','startsWith','split','substring','lastIndexOf','includes','set','gotoif','lodash','util','./utils','NO\x20ANSWER','FAILED','ANSWERED','BUSY','info','[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','channel','queue','membername','interface','calleridnum','connectedlinenum','accountcode','getUserByInternal','then','UserId','request','CreateVoiceCallReport','uniqueid'];(function(_0x25e754,_0x200eba){var _0x1d991e=function(_0x1601ba){while(--_0x1601ba){_0x25e754['push'](_0x25e754['shift']());}};_0x1d991e(++_0x200eba);}(_0xab1a,0x122));var _0xaab1=function(_0x386525,_0xefae6){_0x386525=_0x386525-0x0;var _0x14d015=_0xab1a[_0x386525];return _0x14d015;};'use strict';var _=require(_0xaab1('0x0'));var util=require(_0xaab1('0x1'));var utils=require(_0xaab1('0x2'));var dispositions=[_0xaab1('0x3'),_0xaab1('0x4'),_0xaab1('0x4'),_0xaab1('0x3'),_0xaab1('0x3'),_0xaab1('0x3'),_0xaab1('0x5'),_0xaab1('0x6'),_0xaab1('0x4'),_0xaab1('0x4'),_0xaab1('0x4')];var channels={};function writeDB(_0x16c3a8){utils[_0xaab1('0x7')](util['format'](_0xaab1('0x8'),_0x16c3a8['uniqueid'],_0x16c3a8[_0xaab1('0x9')],_0x16c3a8[_0xaab1('0xa')],_0x16c3a8[_0xaab1('0xb')],_0x16c3a8[_0xaab1('0xc')],_0x16c3a8[_0xaab1('0xd')],_0x16c3a8[_0xaab1('0xe')],_0x16c3a8['lastevent']));if(_0x16c3a8[_0xaab1('0xf')]){utils[_0xaab1('0x10')](_0x16c3a8[_0xaab1('0xf')])[_0xaab1('0x11')](function(_0xef643c){if(_0xef643c){_0x16c3a8[_0xaab1('0x12')]=_0xef643c['id'];}utils[_0xaab1('0x13')](_0xaab1('0x14'),_0x16c3a8);});}else{utils[_0xaab1('0x13')](_0xaab1('0x14'),_0x16c3a8);}if(channels[_0x16c3a8['uniqueid']]){delete channels[_0x16c3a8[_0xaab1('0x15')]];}}exports['newchannel']=function(_0x43ccb0){try{utils['debug'](util[_0xaab1('0x16')](_0xaab1('0x17'),_0x43ccb0[_0xaab1('0x15')]),_0x43ccb0);if(_0x43ccb0['uniqueid']==_0x43ccb0['linkedid']&&_0x43ccb0[_0xaab1('0x9')]!=_0xaab1('0x18')){utils['info'](util['format'](_0xaab1('0x19'),_0x43ccb0['uniqueid'],_0x43ccb0[_0xaab1('0x1a')],_0x43ccb0[_0xaab1('0x1b')]));channels[_0x43ccb0['uniqueid']]={'uniqueid':_0x43ccb0[_0xaab1('0x15')],'accountcode':_0x43ccb0[_0xaab1('0xf')],'source':_0x43ccb0['calleridnum'],'destination':_0x43ccb0['exten'],'destinationcontext':_0x43ccb0[_0xaab1('0x1a')],'channel':_0x43ccb0[_0xaab1('0x9')],'starttime':utils[_0xaab1('0x1c')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':_0xaab1('0x3'),'amaflags':'DOCUMENTATION'};}}catch(_0x20883a){utils[_0xaab1('0x1d')](util[_0xaab1('0x16')](_0xaab1('0x17'),_0x43ccb0[_0xaab1('0x15')]),_0x20883a);}};exports[_0xaab1('0x1e')]=function(_0x4b2930){try{utils[_0xaab1('0x1f')](util[_0xaab1('0x16')](_0xaab1('0x20'),_0x4b2930['uniqueid']),_0x4b2930);if(!_[_0xaab1('0x21')](channels[_0x4b2930[_0xaab1('0x15')]])&&_0x4b2930[_0xaab1('0x22')]==0x6){utils[_0xaab1('0x7')](util[_0xaab1('0x16')]('[%s][calls][newstate]\x20context:%s\x20channel:%s',_0x4b2930[_0xaab1('0x15')],_0x4b2930[_0xaab1('0x1a')],_0x4b2930[_0xaab1('0x9')]));if(_['isNil'](channels[_0x4b2930['uniqueid']]['systemanswertime'])){channels[_0x4b2930['uniqueid']]['systemanswertime']=utils[_0xaab1('0x1c')]();}}else if(!_[_0xaab1('0x21')](channels[_0x4b2930[_0xaab1('0x23')]])&&_0x4b2930[_0xaab1('0x22')]==0x6&&_0x4b2930['context']!=_0xaab1('0x24')){utils[_0xaab1('0x7')](util[_0xaab1('0x16')](_0xaab1('0x25'),_0x4b2930[_0xaab1('0x15')],_0x4b2930[_0xaab1('0x23')],_0x4b2930[_0xaab1('0x1a')],_0x4b2930[_0xaab1('0x9')]));channels[_0x4b2930['linkedid']]['accountcode']=_0x4b2930[_0xaab1('0xf')];channels[_0x4b2930[_0xaab1('0x23')]][_0xaab1('0x26')]=_0x4b2930[_0xaab1('0x9')];if(_[_0xaab1('0x21')](channels[_0x4b2930[_0xaab1('0x23')]][_0xaab1('0x27')])){channels[_0x4b2930['linkedid']][_0xaab1('0x27')]=utils[_0xaab1('0x1c')]();}channels[_0x4b2930[_0xaab1('0x23')]][_0xaab1('0x28')]=dispositions[_[_0xaab1('0x29')](_0x4b2930[_0xaab1('0x22')])]||'ANSWERED';}}catch(_0x5f59e7){utils[_0xaab1('0x1d')](util[_0xaab1('0x16')](_0xaab1('0x20'),_0x4b2930['uniqueid']),_0x5f59e7);}};exports[_0xaab1('0x2a')]=function(_0x28c9fe){try{if(!_['isNil'](channels[_0x28c9fe[_0xaab1('0x15')]])){utils['debug'](util[_0xaab1('0x16')]('[%s][calls][hangup]',_0x28c9fe['uniqueid']),_0x28c9fe);if(_['isNil'](channels[_0x28c9fe[_0xaab1('0x15')]][_0xaab1('0x2b')])){channels[_0x28c9fe[_0xaab1('0x15')]]['callerid']=_0x28c9fe['calleridname']+'\x20<'+_0x28c9fe[_0xaab1('0xd')]+'>';}utils[_0xaab1('0x7')](util[_0xaab1('0x16')](_0xaab1('0x2c'),_0x28c9fe[_0xaab1('0x15')],channels[_0x28c9fe['uniqueid']][_0xaab1('0x2b')],_0x28c9fe[_0xaab1('0x2d')]));channels[_0x28c9fe[_0xaab1('0x15')]][_0xaab1('0x2e')]=utils[_0xaab1('0x1c')]();channels[_0x28c9fe[_0xaab1('0x15')]][_0xaab1('0x2f')]=utils[_0xaab1('0x30')](channels[_0x28c9fe[_0xaab1('0x15')]]['endtime'],channels[_0x28c9fe[_0xaab1('0x15')]][_0xaab1('0x31')]);channels[_0x28c9fe[_0xaab1('0x15')]]['billableseconds']=channels[_0x28c9fe[_0xaab1('0x15')]][_0xaab1('0x27')]?utils['diffTime'](channels[_0x28c9fe[_0xaab1('0x15')]]['endtime'],channels[_0x28c9fe[_0xaab1('0x15')]][_0xaab1('0x27')]):0x0;writeDB(channels[_0x28c9fe[_0xaab1('0x15')]]);}}catch(_0x244094){utils['error'](util[_0xaab1('0x16')](_0xaab1('0x32'),_0x28c9fe[_0xaab1('0x15')]),_0x244094);}};exports[_0xaab1('0x33')]=function(_0xafd0cf){try{if(!_['isNil'](channels[_0xafd0cf[_0xaab1('0x34')]])){utils['debug'](util['format'](_0xaab1('0x35'),_0xafd0cf[_0xaab1('0x36')]),_0xafd0cf);if(channels[_0xafd0cf['localtwolinkedid']]['channel']==_0xafd0cf[_0xaab1('0x37')]){utils[_0xaab1('0x7')](util['format'](_0xaab1('0x38'),_0xafd0cf[_0xaab1('0x36')],_0xafd0cf[_0xaab1('0x34')],_0xafd0cf[_0xaab1('0x39')]));channels[_0xafd0cf[_0xaab1('0x34')]][_0xaab1('0x26')]=_0xafd0cf['secondtransfererchannel'];channels[_0xafd0cf[_0xaab1('0x34')]][_0xaab1('0x3a')]=_0xaab1('0x3b');}else if(channels[_0xafd0cf['localtwolinkedid']]['channel']=_0xafd0cf['transfertargetchannel']){utils[_0xaab1('0x7')](util[_0xaab1('0x16')](_0xaab1('0x38'),_0xafd0cf[_0xaab1('0x36')],_0xafd0cf[_0xaab1('0x34')],_0xafd0cf[_0xaab1('0x3c')]));channels[_0xafd0cf[_0xaab1('0x34')]]['destinationchannel']=_0xafd0cf[_0xaab1('0x3c')];channels[_0xafd0cf[_0xaab1('0x34')]][_0xaab1('0x3a')]=_0xaab1('0x3b');}}}catch(_0x5b97c1){utils[_0xaab1('0x1d')](util['format']('[%s][calls][attendedtransfer]',_0xafd0cf['origtransfereruniqueid']),_0x5b97c1);}};exports[_0xaab1('0x3d')]=function(_0x17a463){try{if(!_[_0xaab1('0x21')](channels[_0x17a463[_0xaab1('0x15')]])){utils[_0xaab1('0x1f')](util[_0xaab1('0x16')](_0xaab1('0x3e'),_0x17a463[_0xaab1('0x15')]),_0x17a463);channels[_0x17a463[_0xaab1('0x15')]][_0xaab1('0x3f')]=utils['now']();utils[_0xaab1('0x7')](util['format'](_0xaab1('0x40'),_0x17a463['uniqueid'],channels[_0x17a463[_0xaab1('0x15')]]['musiconholdstartAt']));}}catch(_0x27f236){utils[_0xaab1('0x1d')](util[_0xaab1('0x16')](_0xaab1('0x3e'),_0x17a463[_0xaab1('0x15')]),_0x27f236);}};exports['musiconholdstop']=function(_0x4c74f3){try{if(!_[_0xaab1('0x21')](channels[_0x4c74f3['uniqueid']])){utils[_0xaab1('0x1f')](util[_0xaab1('0x16')](_0xaab1('0x41'),_0x4c74f3[_0xaab1('0x15')]),_0x4c74f3);if(!_['isNil'](channels[_0x4c74f3[_0xaab1('0x15')]]['musiconholdstartAt'])){channels[_0x4c74f3['uniqueid']][_0xaab1('0x42')]+=utils[_0xaab1('0x30')](utils['now'](),channels[_0x4c74f3[_0xaab1('0x15')]][_0xaab1('0x3f')]);utils[_0xaab1('0x7')](util['format']('[%s][calls][musiconholdstop]\x20mohtime:%s',_0x4c74f3['uniqueid'],channels[_0x4c74f3[_0xaab1('0x15')]][_0xaab1('0x42')]));delete channels[_0x4c74f3[_0xaab1('0x15')]][_0xaab1('0x3f')];}}}catch(_0x2bfd6f){utils['error'](util[_0xaab1('0x16')](_0xaab1('0x41'),_0x4c74f3['uniqueid']),_0x2bfd6f);}};exports[_0xaab1('0x43')]=function(_0x366c8e){try{if(!_[_0xaab1('0x21')](channels[_0x366c8e[_0xaab1('0x15')]])){utils[_0xaab1('0x1f')](util[_0xaab1('0x16')](_0xaab1('0x44'),_0x366c8e[_0xaab1('0x15')]),_0x366c8e);if(!_[_0xaab1('0x21')](_0x366c8e[_0xaab1('0x45')]['xmd-originatecalleridnum'])){utils[_0xaab1('0x7')](util[_0xaab1('0x16')](_0xaab1('0x46'),_0x366c8e[_0xaab1('0x15')],_0x366c8e[_0xaab1('0x47')]));channels[_0x366c8e['uniqueid']][_0xaab1('0x48')]=_0x366c8e[_0xaab1('0x47')];}if(!_[_0xaab1('0x21')](_0x366c8e[_0xaab1('0x45')]['xmd-phone'])){utils[_0xaab1('0x7')](util[_0xaab1('0x16')]('[%s][calls][varset]\x20variable:xmd-phone\x20value:%s',_0x366c8e[_0xaab1('0x15')],_0x366c8e['value']));channels[_0x366c8e['uniqueid']][_0xaab1('0x49')]=_0x366c8e[_0xaab1('0x47')];channels[_0x366c8e[_0xaab1('0x15')]][_0xaab1('0x2b')]='\x22'+_0x366c8e[_0xaab1('0x47')]+'\x22\x20<'+_0x366c8e[_0xaab1('0x47')]+'>';}if(!_[_0xaab1('0x21')](_0x366c8e[_0xaab1('0x45')][_0xaab1('0x4a')])||!_['isNil'](_0x366c8e[_0xaab1('0x45')]['xmd-callerid'])){utils[_0xaab1('0x7')](util[_0xaab1('0x16')](_0xaab1('0x4b'),_0x366c8e[_0xaab1('0x15')],!_['isNil'](_0x366c8e[_0xaab1('0x45')]['xmd-callerid-preview'])?_0xaab1('0x4a'):_0xaab1('0x4c'),_0x366c8e['value']));channels[_0x366c8e[_0xaab1('0x15')]][_0xaab1('0x2b')]=_0x366c8e['value'];}if(!_[_0xaab1('0x21')](_0x366c8e[_0xaab1('0x45')][_0xaab1('0x4d')])||!_[_0xaab1('0x21')](_0x366c8e[_0xaab1('0x45')][_0xaab1('0x4e')])){utils['info'](util[_0xaab1('0x16')]('[%s][calls][varset]\x20variable:%s\x20value:%s',_0x366c8e['uniqueid'],!_[_0xaab1('0x21')](_0x366c8e[_0xaab1('0x45')]['xmd-queue'])?_0xaab1('0x4d'):_0xaab1('0x4e'),_0x366c8e[_0xaab1('0x47')]));channels[_0x366c8e[_0xaab1('0x15')]][_0xaab1('0x4f')]=_0xaab1('0x50');channels[_0x366c8e['uniqueid']][_0xaab1('0x51')]=_0x366c8e['value'];channels[_0x366c8e[_0xaab1('0x15')]][_0xaab1('0xa')]=!![];}if(!_[_0xaab1('0x21')](_0x366c8e[_0xaab1('0x45')]['xmd-contactid'])){utils[_0xaab1('0x7')](util[_0xaab1('0x16')](_0xaab1('0x52'),_0x366c8e[_0xaab1('0x15')],_0x366c8e[_0xaab1('0x47')]));channels[_0x366c8e[_0xaab1('0x15')]][_0xaab1('0x53')]=_0x366c8e[_0xaab1('0x47')];}if(!_[_0xaab1('0x21')](_0x366c8e[_0xaab1('0x45')][_0xaab1('0x54')])){utils[_0xaab1('0x7')](util[_0xaab1('0x16')](_0xaab1('0x55'),_0x366c8e['uniqueid'],_0x366c8e['value']));channels[_0x366c8e[_0xaab1('0x15')]][_0xaab1('0x56')]=_0x366c8e[_0xaab1('0x47')];}if(!_[_0xaab1('0x21')](_0x366c8e[_0xaab1('0x45')][_0xaab1('0x57')])){utils[_0xaab1('0x7')](util[_0xaab1('0x16')](_0xaab1('0x58'),_0x366c8e[_0xaab1('0x15')],_0x366c8e['value']));channels[_0x366c8e['uniqueid']][_0xaab1('0x59')]=_0x366c8e[_0xaab1('0x47')];}if(!_[_0xaab1('0x21')](_0x366c8e[_0xaab1('0x45')][_0xaab1('0x5a')])){utils[_0xaab1('0x7')](util['format'](_0xaab1('0x5b'),_0x366c8e[_0xaab1('0x15')],_0x366c8e[_0xaab1('0x47')]));channels[_0x366c8e[_0xaab1('0x15')]][_0xaab1('0x5a')]=_0x366c8e[_0xaab1('0x47')];}}}catch(_0x218006){utils[_0xaab1('0x1d')](util[_0xaab1('0x16')](_0xaab1('0x44'),_0x366c8e[_0xaab1('0x15')]),_0x218006);}};exports[_0xaab1('0x5c')]=function(_0x132f33){try{if(!_['isNil'](channels[_0x132f33['uniqueid']])){utils[_0xaab1('0x1f')](util['format'](_0xaab1('0x5d'),_0x132f33[_0xaab1('0x15')]),_0x132f33);utils['info'](util[_0xaab1('0x16')]('[%s][calls][newexten]\x20application:%s\x20appdata:%s',_0x132f33[_0xaab1('0x15')],_0x132f33[_0xaab1('0x5e')],_0x132f33[_0xaab1('0x5f')]));if(_0x132f33[_0xaab1('0x5e')][_0xaab1('0x60')]()=='set'&&_[_0xaab1('0x61')](_0x132f33[_0xaab1('0x5f')]['toLowerCase'](),'cdr')){var _0x49a0ba=_0x132f33[_0xaab1('0x5f')][_0xaab1('0x62')]('=');var _0x4eb63f=_0x49a0ba[0x0][_0xaab1('0x63')](_0x49a0ba[0x0][_0xaab1('0x64')]('(')+0x1,_0x49a0ba[0x0]['lastIndexOf'](')'));var _0xd0411e=_0x49a0ba[0x1];channels[_0x132f33[_0xaab1('0x15')]][_0x4eb63f]=_0xd0411e;}if(!_[_0xaab1('0x65')]([_0xaab1('0x2a'),'noop','execif',_0xaab1('0x66'),_0xaab1('0x67')],_0x132f33[_0xaab1('0x5e')]['toLowerCase']())){channels[_0x132f33[_0xaab1('0x15')]][_0xaab1('0x4f')]=_0x132f33[_0xaab1('0x5e')];channels[_0x132f33[_0xaab1('0x15')]]['lastdata']=_0x132f33[_0xaab1('0x5f')];}}}catch(_0x1705b3){utils[_0xaab1('0x1d')](util[_0xaab1('0x16')](_0xaab1('0x5d'),_0x132f33[_0xaab1('0x15')]),_0x1705b3);}};