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