20b6ea6eaef23b0dbdf3cb2a7291a608656b3380
[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 _0x7f79=['[%s][calls][musiconholdstart]','musiconholdstartAt','[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s','musiconholdstop','[%s][calls][musiconholdstop]','mohtime','varset','[%s][calls][varset]','variable','xmd-originatecalleridnum','[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s','value','source','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','Queue','lastdata','xmd-contactid','xmd-cdrtype','[%s][calls][varset]\x20variable:xmd-cdrtype\x20value:%s','outboundrouteid','[%s][calls][varset]\x20variable:outboundrouteid\x20value:%s','sipcallid','[%s][calls][varset]\x20variable:sipcallid\x20value:%s','newexten','[%s][calls][newexten]','[%s][calls][newexten]\x20application:%s\x20appdata:%s','appdata','application','toLowerCase','set','startsWith','cdr','split','substring','lastIndexOf','includes','noop','lodash','util','NO\x20ANSWER','FAILED','ANSWERED','BUSY','info','[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','uniqueid','queue','calleridnum','connectedlinenum','lastevent','accountcode','getUserByInternal','request','CreateVoiceCallReport','newchannel','debug','linkedid','channel','OutgoingSpoolFailed','[%s][calls][newchannel]\x20context:%s\x20exten:%s','context','exten','DOCUMENTATION','format','newstate','[%s][calls][newstate]','[%s][calls][newstate]\x20context:%s\x20channel:%s','isNil','systemanswertime','now','channelstate','transfer','[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s','destinationchannel','answertime','toNumber','error','hangup','[%s][calls][hangup]','callerid','calleridname','[%s][calls][hangup]\x20callerid:%s\x20reason:%s','cause-txt','duration','endtime','starttime','billableseconds','diffTime','attendedtransfer','localtwolinkedid','[%s][calls][attendedtransfer]','origtransfereruniqueid','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','secondtransfererchannel','userfield','_attended','origtransfererchannel','musiconholdstart'];(function(_0x3ee296,_0x2c0dff){var _0x505468=function(_0x2f63b1){while(--_0x2f63b1){_0x3ee296['push'](_0x3ee296['shift']());}};_0x505468(++_0x2c0dff);}(_0x7f79,0x104));var _0x97f7=function(_0x4f8825,_0x2efed4){_0x4f8825=_0x4f8825-0x0;var _0x17fb76=_0x7f79[_0x4f8825];return _0x17fb76;};'use strict';var _=require(_0x97f7('0x0'));var util=require(_0x97f7('0x1'));var utils=require('./utils');var dispositions=[_0x97f7('0x2'),_0x97f7('0x3'),_0x97f7('0x3'),_0x97f7('0x2'),_0x97f7('0x2'),_0x97f7('0x2'),_0x97f7('0x4'),_0x97f7('0x5'),_0x97f7('0x3'),_0x97f7('0x3'),'FAILED'];var channels={};function writeDB(_0x4d964c){utils[_0x97f7('0x6')](util['format'](_0x97f7('0x7'),_0x4d964c[_0x97f7('0x8')],_0x4d964c['channel'],_0x4d964c[_0x97f7('0x9')],_0x4d964c['membername'],_0x4d964c['interface'],_0x4d964c[_0x97f7('0xa')],_0x4d964c[_0x97f7('0xb')],_0x4d964c[_0x97f7('0xc')]));if(_0x4d964c[_0x97f7('0xd')]){utils[_0x97f7('0xe')](_0x4d964c[_0x97f7('0xd')])['then'](function(_0x5f2526){if(_0x5f2526){_0x4d964c['UserId']=_0x5f2526['id'];}utils[_0x97f7('0xf')](_0x97f7('0x10'),_0x4d964c);});}else{utils[_0x97f7('0xf')](_0x97f7('0x10'),_0x4d964c);}if(channels[_0x4d964c[_0x97f7('0x8')]]){delete channels[_0x4d964c['uniqueid']];}}exports[_0x97f7('0x11')]=function(_0x22f6a4){try{utils[_0x97f7('0x12')](util['format']('[%s][calls][newchannel]',_0x22f6a4[_0x97f7('0x8')]),_0x22f6a4);if(_0x22f6a4[_0x97f7('0x8')]==_0x22f6a4[_0x97f7('0x13')]&&_0x22f6a4[_0x97f7('0x14')]!=_0x97f7('0x15')){utils[_0x97f7('0x6')](util['format'](_0x97f7('0x16'),_0x22f6a4[_0x97f7('0x8')],_0x22f6a4[_0x97f7('0x17')],_0x22f6a4[_0x97f7('0x18')]));channels[_0x22f6a4['uniqueid']]={'uniqueid':_0x22f6a4[_0x97f7('0x8')],'accountcode':_0x22f6a4[_0x97f7('0xd')],'source':_0x22f6a4[_0x97f7('0xa')],'destination':_0x22f6a4[_0x97f7('0x18')],'destinationcontext':_0x22f6a4[_0x97f7('0x17')],'channel':_0x22f6a4['channel'],'starttime':utils['now'](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':'NO\x20ANSWER','amaflags':_0x97f7('0x19')};}}catch(_0x1ac31b){utils['error'](util[_0x97f7('0x1a')]('[%s][calls][newchannel]',_0x22f6a4[_0x97f7('0x8')]),_0x1ac31b);}};exports[_0x97f7('0x1b')]=function(_0x559f84){try{utils[_0x97f7('0x12')](util[_0x97f7('0x1a')](_0x97f7('0x1c'),_0x559f84['uniqueid']),_0x559f84);if(!_['isNil'](channels[_0x559f84['uniqueid']])&&_0x559f84['channelstate']==0x6){utils[_0x97f7('0x6')](util['format'](_0x97f7('0x1d'),_0x559f84[_0x97f7('0x8')],_0x559f84['context'],_0x559f84[_0x97f7('0x14')]));if(_[_0x97f7('0x1e')](channels[_0x559f84[_0x97f7('0x8')]][_0x97f7('0x1f')])){channels[_0x559f84[_0x97f7('0x8')]]['systemanswertime']=utils[_0x97f7('0x20')]();}}else if(!_[_0x97f7('0x1e')](channels[_0x559f84[_0x97f7('0x13')]])&&_0x559f84[_0x97f7('0x21')]==0x6&&_0x559f84[_0x97f7('0x17')]!=_0x97f7('0x22')){utils['info'](util[_0x97f7('0x1a')](_0x97f7('0x23'),_0x559f84[_0x97f7('0x8')],_0x559f84[_0x97f7('0x13')],_0x559f84['context'],_0x559f84[_0x97f7('0x14')]));channels[_0x559f84[_0x97f7('0x13')]][_0x97f7('0xd')]=_0x559f84[_0x97f7('0xd')];channels[_0x559f84[_0x97f7('0x13')]][_0x97f7('0x24')]=_0x559f84[_0x97f7('0x14')];if(_[_0x97f7('0x1e')](channels[_0x559f84[_0x97f7('0x13')]]['answertime'])){channels[_0x559f84[_0x97f7('0x13')]][_0x97f7('0x25')]=utils['now']();}channels[_0x559f84['linkedid']]['disposition']=dispositions[_[_0x97f7('0x26')](_0x559f84['channelstate'])]||_0x97f7('0x4');}}catch(_0x2a7eb8){utils[_0x97f7('0x27')](util[_0x97f7('0x1a')]('[%s][calls][newstate]',_0x559f84[_0x97f7('0x8')]),_0x2a7eb8);}};exports[_0x97f7('0x28')]=function(_0x49b0bc){try{if(!_[_0x97f7('0x1e')](channels[_0x49b0bc[_0x97f7('0x8')]])){utils[_0x97f7('0x12')](util[_0x97f7('0x1a')](_0x97f7('0x29'),_0x49b0bc[_0x97f7('0x8')]),_0x49b0bc);if(_[_0x97f7('0x1e')](channels[_0x49b0bc[_0x97f7('0x8')]][_0x97f7('0x2a')])){channels[_0x49b0bc[_0x97f7('0x8')]]['callerid']=_0x49b0bc[_0x97f7('0x2b')]+'\x20<'+_0x49b0bc['calleridnum']+'>';}utils['info'](util[_0x97f7('0x1a')](_0x97f7('0x2c'),_0x49b0bc[_0x97f7('0x8')],channels[_0x49b0bc['uniqueid']][_0x97f7('0x2a')],_0x49b0bc[_0x97f7('0x2d')]));channels[_0x49b0bc[_0x97f7('0x8')]]['endtime']=utils[_0x97f7('0x20')]();channels[_0x49b0bc[_0x97f7('0x8')]][_0x97f7('0x2e')]=utils['diffTime'](channels[_0x49b0bc[_0x97f7('0x8')]][_0x97f7('0x2f')],channels[_0x49b0bc[_0x97f7('0x8')]][_0x97f7('0x30')]);channels[_0x49b0bc[_0x97f7('0x8')]][_0x97f7('0x31')]=channels[_0x49b0bc[_0x97f7('0x8')]][_0x97f7('0x25')]?utils[_0x97f7('0x32')](channels[_0x49b0bc[_0x97f7('0x8')]][_0x97f7('0x2f')],channels[_0x49b0bc[_0x97f7('0x8')]][_0x97f7('0x25')]):0x0;writeDB(channels[_0x49b0bc['uniqueid']]);}}catch(_0x58ae84){utils[_0x97f7('0x27')](util['format'](_0x97f7('0x29'),_0x49b0bc[_0x97f7('0x8')]),_0x58ae84);}};exports[_0x97f7('0x33')]=function(_0x42d422){try{if(!_[_0x97f7('0x1e')](channels[_0x42d422[_0x97f7('0x34')]])){utils[_0x97f7('0x12')](util[_0x97f7('0x1a')](_0x97f7('0x35'),_0x42d422[_0x97f7('0x36')]),_0x42d422);if(channels[_0x42d422[_0x97f7('0x34')]][_0x97f7('0x14')]==_0x42d422['transfereechannel']){utils['info'](util[_0x97f7('0x1a')](_0x97f7('0x37'),_0x42d422[_0x97f7('0x36')],_0x42d422['localtwolinkedid'],_0x42d422['secondtransfererchannel']));channels[_0x42d422['localtwolinkedid']][_0x97f7('0x24')]=_0x42d422[_0x97f7('0x38')];channels[_0x42d422[_0x97f7('0x34')]][_0x97f7('0x39')]=_0x97f7('0x3a');}else if(channels[_0x42d422[_0x97f7('0x34')]][_0x97f7('0x14')]=_0x42d422['transfertargetchannel']){utils['info'](util[_0x97f7('0x1a')](_0x97f7('0x37'),_0x42d422[_0x97f7('0x36')],_0x42d422[_0x97f7('0x34')],_0x42d422[_0x97f7('0x3b')]));channels[_0x42d422['localtwolinkedid']]['destinationchannel']=_0x42d422[_0x97f7('0x3b')];channels[_0x42d422[_0x97f7('0x34')]]['userfield']='_attended';}}}catch(_0x5ef171){utils[_0x97f7('0x27')](util[_0x97f7('0x1a')](_0x97f7('0x35'),_0x42d422[_0x97f7('0x36')]),_0x5ef171);}};exports[_0x97f7('0x3c')]=function(_0x1f720a){try{if(!_[_0x97f7('0x1e')](channels[_0x1f720a[_0x97f7('0x8')]])){utils['debug'](util['format'](_0x97f7('0x3d'),_0x1f720a[_0x97f7('0x8')]),_0x1f720a);channels[_0x1f720a['uniqueid']][_0x97f7('0x3e')]=utils[_0x97f7('0x20')]();utils[_0x97f7('0x6')](util[_0x97f7('0x1a')](_0x97f7('0x3f'),_0x1f720a[_0x97f7('0x8')],channels[_0x1f720a[_0x97f7('0x8')]][_0x97f7('0x3e')]));}}catch(_0x16d7e5){utils[_0x97f7('0x27')](util[_0x97f7('0x1a')]('[%s][calls][musiconholdstart]',_0x1f720a[_0x97f7('0x8')]),_0x16d7e5);}};exports[_0x97f7('0x40')]=function(_0x58910a){try{if(!_[_0x97f7('0x1e')](channels[_0x58910a[_0x97f7('0x8')]])){utils[_0x97f7('0x12')](util[_0x97f7('0x1a')](_0x97f7('0x41'),_0x58910a[_0x97f7('0x8')]),_0x58910a);if(!_[_0x97f7('0x1e')](channels[_0x58910a['uniqueid']]['musiconholdstartAt'])){channels[_0x58910a[_0x97f7('0x8')]][_0x97f7('0x42')]+=utils[_0x97f7('0x32')](utils['now'](),channels[_0x58910a[_0x97f7('0x8')]][_0x97f7('0x3e')]);utils['info'](util[_0x97f7('0x1a')]('[%s][calls][musiconholdstop]\x20mohtime:%s',_0x58910a[_0x97f7('0x8')],channels[_0x58910a[_0x97f7('0x8')]][_0x97f7('0x42')]));delete channels[_0x58910a[_0x97f7('0x8')]][_0x97f7('0x3e')];}}}catch(_0x5bac63){utils[_0x97f7('0x27')](util[_0x97f7('0x1a')](_0x97f7('0x41'),_0x58910a[_0x97f7('0x8')]),_0x5bac63);}};exports[_0x97f7('0x43')]=function(_0x2453c0){try{if(!_[_0x97f7('0x1e')](channels[_0x2453c0['uniqueid']])){utils['debug'](util[_0x97f7('0x1a')](_0x97f7('0x44'),_0x2453c0[_0x97f7('0x8')]),_0x2453c0);if(!_[_0x97f7('0x1e')](_0x2453c0[_0x97f7('0x45')][_0x97f7('0x46')])){utils[_0x97f7('0x6')](util[_0x97f7('0x1a')](_0x97f7('0x47'),_0x2453c0['uniqueid'],_0x2453c0[_0x97f7('0x48')]));channels[_0x2453c0[_0x97f7('0x8')]][_0x97f7('0x49')]=_0x2453c0['value'];}if(!_[_0x97f7('0x1e')](_0x2453c0[_0x97f7('0x45')][_0x97f7('0x4a')])){utils['info'](util[_0x97f7('0x1a')](_0x97f7('0x4b'),_0x2453c0[_0x97f7('0x8')],_0x2453c0[_0x97f7('0x48')]));channels[_0x2453c0[_0x97f7('0x8')]][_0x97f7('0x4c')]=_0x2453c0[_0x97f7('0x48')];channels[_0x2453c0[_0x97f7('0x8')]][_0x97f7('0x2a')]='\x22'+_0x2453c0[_0x97f7('0x48')]+_0x97f7('0x4d')+_0x2453c0[_0x97f7('0x48')]+'>';}if(!_[_0x97f7('0x1e')](_0x2453c0[_0x97f7('0x45')][_0x97f7('0x4e')])||!_[_0x97f7('0x1e')](_0x2453c0[_0x97f7('0x45')][_0x97f7('0x4f')])){utils[_0x97f7('0x6')](util[_0x97f7('0x1a')](_0x97f7('0x50'),_0x2453c0[_0x97f7('0x8')],!_['isNil'](_0x2453c0[_0x97f7('0x45')]['xmd-callerid-preview'])?_0x97f7('0x4e'):_0x97f7('0x4f'),_0x2453c0[_0x97f7('0x48')]));channels[_0x2453c0[_0x97f7('0x8')]][_0x97f7('0x2a')]=_0x2453c0[_0x97f7('0x48')];}if(!_['isNil'](_0x2453c0[_0x97f7('0x45')][_0x97f7('0x51')])||!_[_0x97f7('0x1e')](_0x2453c0[_0x97f7('0x45')][_0x97f7('0x52')])){utils[_0x97f7('0x6')](util[_0x97f7('0x1a')](_0x97f7('0x50'),_0x2453c0[_0x97f7('0x8')],!_[_0x97f7('0x1e')](_0x2453c0['variable']['xmd-queue'])?_0x97f7('0x51'):_0x97f7('0x52'),_0x2453c0[_0x97f7('0x48')]));channels[_0x2453c0[_0x97f7('0x8')]][_0x97f7('0x53')]=_0x97f7('0x54');channels[_0x2453c0[_0x97f7('0x8')]][_0x97f7('0x55')]=_0x2453c0['value'];channels[_0x2453c0['uniqueid']][_0x97f7('0x9')]=!![];}if(!_['isNil'](_0x2453c0[_0x97f7('0x45')][_0x97f7('0x56')])){utils[_0x97f7('0x6')](util[_0x97f7('0x1a')]('[%s][calls][varset]\x20variable:xmd-contactid\x20value:%s',_0x2453c0[_0x97f7('0x8')],_0x2453c0['value']));channels[_0x2453c0[_0x97f7('0x8')]]['ContactId']=_0x2453c0[_0x97f7('0x48')];}if(!_[_0x97f7('0x1e')](_0x2453c0['variable'][_0x97f7('0x57')])){utils[_0x97f7('0x6')](util[_0x97f7('0x1a')](_0x97f7('0x58'),_0x2453c0['uniqueid'],_0x2453c0[_0x97f7('0x48')]));channels[_0x2453c0[_0x97f7('0x8')]]['type']=_0x2453c0[_0x97f7('0x48')];}if(!_['isNil'](_0x2453c0['variable'][_0x97f7('0x59')])){utils[_0x97f7('0x6')](util[_0x97f7('0x1a')](_0x97f7('0x5a'),_0x2453c0[_0x97f7('0x8')],_0x2453c0[_0x97f7('0x48')]));channels[_0x2453c0['uniqueid']]['routeid']=_0x2453c0[_0x97f7('0x48')];}if(!_[_0x97f7('0x1e')](_0x2453c0[_0x97f7('0x45')][_0x97f7('0x5b')])){utils[_0x97f7('0x6')](util['format'](_0x97f7('0x5c'),_0x2453c0[_0x97f7('0x8')],_0x2453c0[_0x97f7('0x48')]));channels[_0x2453c0[_0x97f7('0x8')]]['sipcallid']=_0x2453c0[_0x97f7('0x48')];}}}catch(_0xd3e9d1){utils[_0x97f7('0x27')](util[_0x97f7('0x1a')](_0x97f7('0x44'),_0x2453c0[_0x97f7('0x8')]),_0xd3e9d1);}};exports[_0x97f7('0x5d')]=function(_0x426d78){try{if(!_[_0x97f7('0x1e')](channels[_0x426d78['uniqueid']])){utils[_0x97f7('0x12')](util[_0x97f7('0x1a')](_0x97f7('0x5e'),_0x426d78[_0x97f7('0x8')]),_0x426d78);utils[_0x97f7('0x6')](util[_0x97f7('0x1a')](_0x97f7('0x5f'),_0x426d78[_0x97f7('0x8')],_0x426d78['application'],_0x426d78[_0x97f7('0x60')]));if(_0x426d78[_0x97f7('0x61')][_0x97f7('0x62')]()==_0x97f7('0x63')&&_[_0x97f7('0x64')](_0x426d78[_0x97f7('0x60')][_0x97f7('0x62')](),_0x97f7('0x65'))){var _0x231ef3=_0x426d78[_0x97f7('0x60')][_0x97f7('0x66')]('=');var _0x99e7de=_0x231ef3[0x0][_0x97f7('0x67')](_0x231ef3[0x0]['lastIndexOf']('(')+0x1,_0x231ef3[0x0][_0x97f7('0x68')](')'));var _0x5793f4=_0x231ef3[0x1];channels[_0x426d78[_0x97f7('0x8')]][_0x99e7de]=_0x5793f4;}if(!_[_0x97f7('0x69')]([_0x97f7('0x28'),_0x97f7('0x6a'),'execif',_0x97f7('0x63'),'gotoif'],_0x426d78[_0x97f7('0x61')][_0x97f7('0x62')]())){channels[_0x426d78[_0x97f7('0x8')]][_0x97f7('0x53')]=_0x426d78[_0x97f7('0x61')];channels[_0x426d78[_0x97f7('0x8')]][_0x97f7('0x55')]=_0x426d78[_0x97f7('0x60')];}}}catch(_0x48c517){utils['error'](util[_0x97f7('0x1a')](_0x97f7('0x5e'),_0x426d78[_0x97f7('0x8')]),_0x48c517);}};