eca886f1fe996fef0163a26c05fe46ff4660a0d0
[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 _0xcb22=['accountcode','then','UserId','request','CreateVoiceCallReport','newchannel','debug','[%s][calls][newchannel]','OutgoingSpoolFailed','[%s][calls][newchannel]\x20context:%s\x20exten:%s','context','exten','calleridnum','channel','now','DOCUMENTATION','error','newstate','[%s][calls][newstate]','isNil','channelstate','[%s][calls][newstate]\x20context:%s\x20channel:%s','systemanswertime','linkedid','[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s','destinationchannel','answertime','disposition','callerid','calleridname','cause-txt','endtime','duration','diffTime','starttime','billableseconds','[%s][calls][hangup]','attendedtransfer','localtwolinkedid','[%s][calls][attendedtransfer]','origtransfereruniqueid','transfereechannel','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','userfield','origtransfererchannel','musiconholdstart','[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s','[%s][calls][musiconholdstart]','musiconholdstop','[%s][calls][musiconholdstop]','mohtime','musiconholdstartAt','[%s][calls][musiconholdstop]\x20mohtime:%s','varset','[%s][calls][varset]','variable','xmd-originatecalleridnum','[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s','xmd-phone','[%s][calls][varset]\x20variable:xmd-phone\x20value:%s','value','destination','\x22\x20<','xmd-callerid-preview','xmd-callerid','[%s][calls][varset]\x20variable:%s\x20value:%s','xmd-queue','xmcs-queue','lastdata','[%s][calls][varset]\x20variable:xmd-contactid\x20value:%s','xmd-cdrtype','[%s][calls][varset]\x20variable:xmd-cdrtype\x20value:%s','type','outboundrouteid','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','substring','lastIndexOf','includes','hangup','noop','execif','gotoif','lodash','util','./utils','./transfers.controller','NO\x20ANSWER','FAILED','ANSWERED','uniqueid','blinds','transfereeuniqueid','info','format','[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','queue','membername','connectedlinenum'];(function(_0x59c870,_0x5b9c0c){var _0x3080b4=function(_0x42bdb4){while(--_0x42bdb4){_0x59c870['push'](_0x59c870['shift']());}};_0x3080b4(++_0x5b9c0c);}(_0xcb22,0xc8));var _0x2cb2=function(_0xeef081,_0x410eb3){_0xeef081=_0xeef081-0x0;var _0x5739e0=_0xcb22[_0xeef081];return _0x5739e0;};'use strict';var _=require(_0x2cb2('0x0'));var util=require(_0x2cb2('0x1'));var utils=require(_0x2cb2('0x2'));var transfers=require(_0x2cb2('0x3'));var dispositions=[_0x2cb2('0x4'),_0x2cb2('0x5'),_0x2cb2('0x5'),_0x2cb2('0x4'),_0x2cb2('0x4'),_0x2cb2('0x4'),_0x2cb2('0x6'),'BUSY',_0x2cb2('0x5'),_0x2cb2('0x5'),_0x2cb2('0x5')];var channels={};function writeDB(_0x16b1a1){var _0x460984;if(transfers['blinds'][_0x16b1a1[_0x2cb2('0x7')]]){_0x460984=_0x16b1a1[_0x2cb2('0x7')];_0x16b1a1['uniqueid']=transfers[_0x2cb2('0x8')][_0x16b1a1[_0x2cb2('0x7')]][_0x2cb2('0x9')];}utils[_0x2cb2('0xa')](util[_0x2cb2('0xb')](_0x2cb2('0xc'),_0x16b1a1['uniqueid'],_0x16b1a1['channel'],_0x16b1a1[_0x2cb2('0xd')],_0x16b1a1[_0x2cb2('0xe')],_0x16b1a1['interface'],_0x16b1a1['calleridnum'],_0x16b1a1[_0x2cb2('0xf')],_0x16b1a1['lastevent']));if(_0x16b1a1[_0x2cb2('0x10')]){utils['getUserByInternal'](_0x16b1a1[_0x2cb2('0x10')])[_0x2cb2('0x11')](function(_0x529c51){if(_0x529c51){_0x16b1a1[_0x2cb2('0x12')]=_0x529c51['id'];}utils[_0x2cb2('0x13')](_0x2cb2('0x14'),_0x16b1a1);});}else{utils['request'](_0x2cb2('0x14'),_0x16b1a1);}if(channels[_0x16b1a1[_0x2cb2('0x7')]]){delete channels[_0x16b1a1['uniqueid']];}else if(_0x460984&&channels[_0x460984]){if(!transfers[_0x2cb2('0x8')][_0x460984]['recording'])delete transfers[_0x2cb2('0x8')][_0x460984];delete channels[_0x460984];}}exports[_0x2cb2('0x15')]=function(_0x2594d9){try{utils[_0x2cb2('0x16')](util[_0x2cb2('0xb')](_0x2cb2('0x17'),_0x2594d9['uniqueid']),_0x2594d9);if(_0x2594d9['uniqueid']==_0x2594d9['linkedid']&&_0x2594d9['channel']!=_0x2cb2('0x18')){utils[_0x2cb2('0xa')](util[_0x2cb2('0xb')](_0x2cb2('0x19'),_0x2594d9['uniqueid'],_0x2594d9[_0x2cb2('0x1a')],_0x2594d9[_0x2cb2('0x1b')]));channels[_0x2594d9[_0x2cb2('0x7')]]={'uniqueid':_0x2594d9['uniqueid'],'accountcode':_0x2594d9[_0x2cb2('0x10')],'source':_0x2594d9[_0x2cb2('0x1c')],'destination':_0x2594d9[_0x2cb2('0x1b')],'destinationcontext':_0x2594d9[_0x2cb2('0x1a')],'channel':_0x2594d9[_0x2cb2('0x1d')],'starttime':utils[_0x2cb2('0x1e')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':'NO\x20ANSWER','amaflags':_0x2cb2('0x1f')};}}catch(_0x312bab){utils[_0x2cb2('0x20')](util[_0x2cb2('0xb')](_0x2cb2('0x17'),_0x2594d9[_0x2cb2('0x7')]),_0x312bab);}};exports[_0x2cb2('0x21')]=function(_0x1e19be){try{utils['debug'](util[_0x2cb2('0xb')](_0x2cb2('0x22'),_0x1e19be[_0x2cb2('0x7')]),_0x1e19be);if(!_[_0x2cb2('0x23')](channels[_0x1e19be[_0x2cb2('0x7')]])&&_0x1e19be[_0x2cb2('0x24')]==0x6){utils[_0x2cb2('0xa')](util[_0x2cb2('0xb')](_0x2cb2('0x25'),_0x1e19be[_0x2cb2('0x7')],_0x1e19be[_0x2cb2('0x1a')],_0x1e19be['channel']));if(_[_0x2cb2('0x23')](channels[_0x1e19be[_0x2cb2('0x7')]][_0x2cb2('0x26')])){channels[_0x1e19be[_0x2cb2('0x7')]][_0x2cb2('0x26')]=utils[_0x2cb2('0x1e')]();}}else if(!_[_0x2cb2('0x23')](channels[_0x1e19be[_0x2cb2('0x27')]])&&_0x1e19be[_0x2cb2('0x24')]==0x6&&_0x1e19be['context']!='transfer'){utils[_0x2cb2('0xa')](util['format'](_0x2cb2('0x28'),_0x1e19be['uniqueid'],_0x1e19be['linkedid'],_0x1e19be[_0x2cb2('0x1a')],_0x1e19be[_0x2cb2('0x1d')]));channels[_0x1e19be[_0x2cb2('0x27')]][_0x2cb2('0x10')]=_0x1e19be[_0x2cb2('0x10')];channels[_0x1e19be[_0x2cb2('0x27')]][_0x2cb2('0x29')]=_0x1e19be[_0x2cb2('0x1d')];if(_[_0x2cb2('0x23')](channels[_0x1e19be['linkedid']][_0x2cb2('0x2a')])){channels[_0x1e19be[_0x2cb2('0x27')]]['answertime']=utils[_0x2cb2('0x1e')]();}channels[_0x1e19be[_0x2cb2('0x27')]][_0x2cb2('0x2b')]=dispositions[_['toNumber'](_0x1e19be['channelstate'])]||_0x2cb2('0x6');}}catch(_0xe04f04){utils[_0x2cb2('0x20')](util['format'](_0x2cb2('0x22'),_0x1e19be[_0x2cb2('0x7')]),_0xe04f04);}};exports['hangup']=function(_0x506529){try{if(!_[_0x2cb2('0x23')](channels[_0x506529[_0x2cb2('0x7')]])){utils[_0x2cb2('0x16')](util['format']('[%s][calls][hangup]',_0x506529[_0x2cb2('0x7')]),_0x506529);if(_[_0x2cb2('0x23')](channels[_0x506529[_0x2cb2('0x7')]][_0x2cb2('0x2c')])){channels[_0x506529[_0x2cb2('0x7')]]['callerid']=_0x506529[_0x2cb2('0x2d')]+'\x20<'+_0x506529[_0x2cb2('0x1c')]+'>';}utils[_0x2cb2('0xa')](util['format']('[%s][calls][hangup]\x20callerid:%s\x20reason:%s',_0x506529[_0x2cb2('0x7')],channels[_0x506529[_0x2cb2('0x7')]][_0x2cb2('0x2c')],_0x506529[_0x2cb2('0x2e')]));channels[_0x506529[_0x2cb2('0x7')]][_0x2cb2('0x2f')]=utils['now']();channels[_0x506529[_0x2cb2('0x7')]][_0x2cb2('0x30')]=utils[_0x2cb2('0x31')](channels[_0x506529[_0x2cb2('0x7')]][_0x2cb2('0x2f')],channels[_0x506529[_0x2cb2('0x7')]][_0x2cb2('0x32')]);channels[_0x506529[_0x2cb2('0x7')]][_0x2cb2('0x33')]=channels[_0x506529['uniqueid']][_0x2cb2('0x2a')]?utils['diffTime'](channels[_0x506529[_0x2cb2('0x7')]]['endtime'],channels[_0x506529[_0x2cb2('0x7')]][_0x2cb2('0x2a')]):0x0;writeDB(channels[_0x506529[_0x2cb2('0x7')]]);}}catch(_0x4f66cc){utils[_0x2cb2('0x20')](util[_0x2cb2('0xb')](_0x2cb2('0x34'),_0x506529[_0x2cb2('0x7')]),_0x4f66cc);}};exports[_0x2cb2('0x35')]=function(_0x1ed33e){try{if(!_[_0x2cb2('0x23')](channels[_0x1ed33e[_0x2cb2('0x36')]])){utils[_0x2cb2('0x16')](util['format'](_0x2cb2('0x37'),_0x1ed33e[_0x2cb2('0x38')]),_0x1ed33e);if(channels[_0x1ed33e['localtwolinkedid']]['channel']==_0x1ed33e[_0x2cb2('0x39')]){utils[_0x2cb2('0xa')](util['format'](_0x2cb2('0x3a'),_0x1ed33e[_0x2cb2('0x38')],_0x1ed33e['localtwolinkedid'],_0x1ed33e['secondtransfererchannel']));channels[_0x1ed33e[_0x2cb2('0x36')]][_0x2cb2('0x29')]=_0x1ed33e['secondtransfererchannel'];channels[_0x1ed33e[_0x2cb2('0x36')]][_0x2cb2('0x3b')]='_attended';}else if(channels[_0x1ed33e['localtwolinkedid']]['channel']=_0x1ed33e['transfertargetchannel']){utils[_0x2cb2('0xa')](util[_0x2cb2('0xb')]('[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s',_0x1ed33e[_0x2cb2('0x38')],_0x1ed33e[_0x2cb2('0x36')],_0x1ed33e[_0x2cb2('0x3c')]));channels[_0x1ed33e[_0x2cb2('0x36')]][_0x2cb2('0x29')]=_0x1ed33e['origtransfererchannel'];channels[_0x1ed33e[_0x2cb2('0x36')]]['userfield']='_attended';}}}catch(_0x539d18){utils['error'](util[_0x2cb2('0xb')](_0x2cb2('0x37'),_0x1ed33e[_0x2cb2('0x38')]),_0x539d18);}};exports[_0x2cb2('0x3d')]=function(_0x5616f5){try{if(!_[_0x2cb2('0x23')](channels[_0x5616f5[_0x2cb2('0x7')]])){utils[_0x2cb2('0x16')](util[_0x2cb2('0xb')]('[%s][calls][musiconholdstart]',_0x5616f5[_0x2cb2('0x7')]),_0x5616f5);channels[_0x5616f5[_0x2cb2('0x7')]]['musiconholdstartAt']=utils['now']();utils[_0x2cb2('0xa')](util[_0x2cb2('0xb')](_0x2cb2('0x3e'),_0x5616f5[_0x2cb2('0x7')],channels[_0x5616f5['uniqueid']]['musiconholdstartAt']));}}catch(_0x3792fe){utils[_0x2cb2('0x20')](util[_0x2cb2('0xb')](_0x2cb2('0x3f'),_0x5616f5[_0x2cb2('0x7')]),_0x3792fe);}};exports[_0x2cb2('0x40')]=function(_0x315cc3){try{if(!_[_0x2cb2('0x23')](channels[_0x315cc3[_0x2cb2('0x7')]])){utils[_0x2cb2('0x16')](util[_0x2cb2('0xb')](_0x2cb2('0x41'),_0x315cc3[_0x2cb2('0x7')]),_0x315cc3);if(!_['isNil'](channels[_0x315cc3[_0x2cb2('0x7')]]['musiconholdstartAt'])){channels[_0x315cc3[_0x2cb2('0x7')]][_0x2cb2('0x42')]+=utils[_0x2cb2('0x31')](utils['now'](),channels[_0x315cc3[_0x2cb2('0x7')]][_0x2cb2('0x43')]);utils[_0x2cb2('0xa')](util[_0x2cb2('0xb')](_0x2cb2('0x44'),_0x315cc3[_0x2cb2('0x7')],channels[_0x315cc3[_0x2cb2('0x7')]]['mohtime']));delete channels[_0x315cc3[_0x2cb2('0x7')]][_0x2cb2('0x43')];}}}catch(_0x4c78a2){utils[_0x2cb2('0x20')](util[_0x2cb2('0xb')]('[%s][calls][musiconholdstop]',_0x315cc3[_0x2cb2('0x7')]),_0x4c78a2);}};exports[_0x2cb2('0x45')]=function(_0xdfb7ef){try{if(!_[_0x2cb2('0x23')](channels[_0xdfb7ef[_0x2cb2('0x7')]])){utils[_0x2cb2('0x16')](util[_0x2cb2('0xb')](_0x2cb2('0x46'),_0xdfb7ef[_0x2cb2('0x7')]),_0xdfb7ef);if(!_['isNil'](_0xdfb7ef[_0x2cb2('0x47')][_0x2cb2('0x48')])){utils[_0x2cb2('0xa')](util[_0x2cb2('0xb')](_0x2cb2('0x49'),_0xdfb7ef['uniqueid'],_0xdfb7ef['value']));channels[_0xdfb7ef['uniqueid']]['source']=_0xdfb7ef['value'];}if(!_[_0x2cb2('0x23')](_0xdfb7ef['variable'][_0x2cb2('0x4a')])){utils[_0x2cb2('0xa')](util[_0x2cb2('0xb')](_0x2cb2('0x4b'),_0xdfb7ef['uniqueid'],_0xdfb7ef[_0x2cb2('0x4c')]));channels[_0xdfb7ef['uniqueid']][_0x2cb2('0x4d')]=_0xdfb7ef[_0x2cb2('0x4c')];channels[_0xdfb7ef[_0x2cb2('0x7')]][_0x2cb2('0x2c')]='\x22'+_0xdfb7ef[_0x2cb2('0x4c')]+_0x2cb2('0x4e')+_0xdfb7ef[_0x2cb2('0x4c')]+'>';}if(!_[_0x2cb2('0x23')](_0xdfb7ef['variable'][_0x2cb2('0x4f')])||!_[_0x2cb2('0x23')](_0xdfb7ef['variable'][_0x2cb2('0x50')])){utils[_0x2cb2('0xa')](util['format'](_0x2cb2('0x51'),_0xdfb7ef['uniqueid'],!_['isNil'](_0xdfb7ef[_0x2cb2('0x47')][_0x2cb2('0x4f')])?_0x2cb2('0x4f'):_0x2cb2('0x50'),_0xdfb7ef[_0x2cb2('0x4c')]));channels[_0xdfb7ef['uniqueid']]['callerid']=_0xdfb7ef[_0x2cb2('0x4c')];}if(!_['isNil'](_0xdfb7ef[_0x2cb2('0x47')][_0x2cb2('0x52')])||!_['isNil'](_0xdfb7ef[_0x2cb2('0x47')][_0x2cb2('0x53')])){utils[_0x2cb2('0xa')](util[_0x2cb2('0xb')](_0x2cb2('0x51'),_0xdfb7ef['uniqueid'],!_[_0x2cb2('0x23')](_0xdfb7ef['variable'][_0x2cb2('0x52')])?_0x2cb2('0x52'):_0x2cb2('0x53'),_0xdfb7ef[_0x2cb2('0x4c')]));channels[_0xdfb7ef['uniqueid']]['lastapplication']='Queue';channels[_0xdfb7ef[_0x2cb2('0x7')]][_0x2cb2('0x54')]=_0xdfb7ef['value'];channels[_0xdfb7ef['uniqueid']][_0x2cb2('0xd')]=!![];}if(!_[_0x2cb2('0x23')](_0xdfb7ef[_0x2cb2('0x47')]['xmd-contactid'])){utils[_0x2cb2('0xa')](util['format'](_0x2cb2('0x55'),_0xdfb7ef['uniqueid'],_0xdfb7ef['value']));channels[_0xdfb7ef[_0x2cb2('0x7')]]['ContactId']=_0xdfb7ef[_0x2cb2('0x4c')];}if(!_[_0x2cb2('0x23')](_0xdfb7ef[_0x2cb2('0x47')][_0x2cb2('0x56')])){utils['info'](util[_0x2cb2('0xb')](_0x2cb2('0x57'),_0xdfb7ef['uniqueid'],_0xdfb7ef[_0x2cb2('0x4c')]));channels[_0xdfb7ef[_0x2cb2('0x7')]][_0x2cb2('0x58')]=_0xdfb7ef[_0x2cb2('0x4c')];}if(!_['isNil'](_0xdfb7ef[_0x2cb2('0x47')][_0x2cb2('0x59')])){utils[_0x2cb2('0xa')](util[_0x2cb2('0xb')]('[%s][calls][varset]\x20variable:outboundrouteid\x20value:%s',_0xdfb7ef[_0x2cb2('0x7')],_0xdfb7ef[_0x2cb2('0x4c')]));channels[_0xdfb7ef[_0x2cb2('0x7')]][_0x2cb2('0x5a')]=_0xdfb7ef[_0x2cb2('0x4c')];}if(!_[_0x2cb2('0x23')](_0xdfb7ef[_0x2cb2('0x47')][_0x2cb2('0x5b')])){utils[_0x2cb2('0xa')](util[_0x2cb2('0xb')](_0x2cb2('0x5c'),_0xdfb7ef[_0x2cb2('0x7')],_0xdfb7ef['value']));channels[_0xdfb7ef['uniqueid']][_0x2cb2('0x5b')]=_0xdfb7ef['value'];}}}catch(_0x54fb1f){utils[_0x2cb2('0x20')](util[_0x2cb2('0xb')]('[%s][calls][varset]',_0xdfb7ef[_0x2cb2('0x7')]),_0x54fb1f);}};exports[_0x2cb2('0x5d')]=function(_0x2a7bfd){try{if(!_[_0x2cb2('0x23')](channels[_0x2a7bfd[_0x2cb2('0x7')]])){utils[_0x2cb2('0x16')](util[_0x2cb2('0xb')](_0x2cb2('0x5e'),_0x2a7bfd[_0x2cb2('0x7')]),_0x2a7bfd);utils['info'](util[_0x2cb2('0xb')](_0x2cb2('0x5f'),_0x2a7bfd['uniqueid'],_0x2a7bfd[_0x2cb2('0x60')],_0x2a7bfd[_0x2cb2('0x61')]));if(_0x2a7bfd[_0x2cb2('0x60')][_0x2cb2('0x62')]()==_0x2cb2('0x63')&&_['startsWith'](_0x2a7bfd['appdata'][_0x2cb2('0x62')](),_0x2cb2('0x64'))){var _0x734b8f=_0x2a7bfd[_0x2cb2('0x61')]['split']('=');var _0x545380=_0x734b8f[0x0][_0x2cb2('0x65')](_0x734b8f[0x0][_0x2cb2('0x66')]('(')+0x1,_0x734b8f[0x0][_0x2cb2('0x66')](')'));var _0x2afbaa=_0x734b8f[0x1];channels[_0x2a7bfd[_0x2cb2('0x7')]][_0x545380]=_0x2afbaa;}if(!_[_0x2cb2('0x67')]([_0x2cb2('0x68'),_0x2cb2('0x69'),_0x2cb2('0x6a'),_0x2cb2('0x63'),_0x2cb2('0x6b')],_0x2a7bfd[_0x2cb2('0x60')][_0x2cb2('0x62')]())){channels[_0x2a7bfd['uniqueid']]['lastapplication']=_0x2a7bfd[_0x2cb2('0x60')];channels[_0x2a7bfd[_0x2cb2('0x7')]][_0x2cb2('0x54')]=_0x2a7bfd[_0x2cb2('0x61')];}}}catch(_0x5e0aec){utils['error'](util[_0x2cb2('0xb')]('[%s][calls][newexten]',_0x2a7bfd[_0x2cb2('0x7')]),_0x5e0aec);}};