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