Built motion from commit efa66e19.|2.6.22
[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 _0x5599=['[%s][calls][newchannel]','[%s][calls][newstate]','isNil','channelstate','[%s][calls][newstate]\x20context:%s\x20channel:%s','systemanswertime','[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s','destinationchannel','answertime','disposition','error','hangup','[%s][calls][hangup]','callerid','calleridname','calleridnum','duration','diffTime','endtime','starttime','billableseconds','localtwolinkedid','[%s][calls][attendedtransfer]','origtransfereruniqueid','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','secondtransfererchannel','userfield','transfertargetchannel','origtransfererchannel','_attended','musiconholdstart','[%s][calls][musiconholdstart]','musiconholdstartAt','[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s','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','lastapplication','Queue','lastdata','xmd-contactid','[%s][calls][varset]\x20variable:xmd-contactid\x20value:%s','xmd-cdrtype','[%s][calls][varset]\x20variable:xmd-cdrtype\x20value:%s','outboundrouteid','[%s][calls][varset]\x20variable:outboundrouteid\x20value:%s','routeid','sipcallid','newexten','application','set','startsWith','appdata','toLowerCase','cdr','split','substring','lastIndexOf','includes','noop','execif','gotoif','[%s][calls][newexten]','lodash','util','NO\x20ANSWER','FAILED','ANSWERED','BUSY','info','channel','queue','membername','interface','connectedlinenum','accountcode','then','UserId','request','CreateVoiceCallReport','uniqueid','newchannel','debug','format','linkedid','OutgoingSpoolFailed','[%s][calls][newchannel]\x20context:%s\x20exten:%s','exten','context','now'];(function(_0x5b0920,_0x3da14a){var _0x53d52c=function(_0x4b86b3){while(--_0x4b86b3){_0x5b0920['push'](_0x5b0920['shift']());}};_0x53d52c(++_0x3da14a);}(_0x5599,0x117));var _0x9559=function(_0x3be309,_0x1a2e45){_0x3be309=_0x3be309-0x0;var _0x25d5db=_0x5599[_0x3be309];return _0x25d5db;};'use strict';var _=require(_0x9559('0x0'));var util=require(_0x9559('0x1'));var utils=require('./utils');var dispositions=[_0x9559('0x2'),_0x9559('0x3'),_0x9559('0x3'),_0x9559('0x2'),'NO\x20ANSWER',_0x9559('0x2'),_0x9559('0x4'),_0x9559('0x5'),_0x9559('0x3'),_0x9559('0x3'),_0x9559('0x3')];var channels={};function writeDB(_0xe3b0d6){utils[_0x9559('0x6')](util['format']('[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s',_0xe3b0d6['uniqueid'],_0xe3b0d6[_0x9559('0x7')],_0xe3b0d6[_0x9559('0x8')],_0xe3b0d6[_0x9559('0x9')],_0xe3b0d6[_0x9559('0xa')],_0xe3b0d6['calleridnum'],_0xe3b0d6[_0x9559('0xb')],_0xe3b0d6['lastevent']));if(_0xe3b0d6[_0x9559('0xc')]){utils['getUserByInternal'](_0xe3b0d6[_0x9559('0xc')])[_0x9559('0xd')](function(_0x7ea8c0){if(_0x7ea8c0){_0xe3b0d6[_0x9559('0xe')]=_0x7ea8c0['id'];}utils[_0x9559('0xf')](_0x9559('0x10'),_0xe3b0d6);});}else{utils[_0x9559('0xf')](_0x9559('0x10'),_0xe3b0d6);}if(channels[_0xe3b0d6['uniqueid']]){delete channels[_0xe3b0d6[_0x9559('0x11')]];}}exports[_0x9559('0x12')]=function(_0x6707ac){try{utils[_0x9559('0x13')](util[_0x9559('0x14')]('[%s][calls][newchannel]',_0x6707ac[_0x9559('0x11')]),_0x6707ac);if(_0x6707ac['uniqueid']==_0x6707ac[_0x9559('0x15')]&&_0x6707ac[_0x9559('0x7')]!=_0x9559('0x16')){utils['info'](util[_0x9559('0x14')](_0x9559('0x17'),_0x6707ac[_0x9559('0x11')],_0x6707ac['context'],_0x6707ac['exten']));channels[_0x6707ac[_0x9559('0x11')]]={'uniqueid':_0x6707ac['uniqueid'],'accountcode':_0x6707ac[_0x9559('0xc')],'source':_0x6707ac['calleridnum'],'destination':_0x6707ac[_0x9559('0x18')],'destinationcontext':_0x6707ac[_0x9559('0x19')],'channel':_0x6707ac['channel'],'starttime':utils[_0x9559('0x1a')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':_0x9559('0x2'),'amaflags':'DOCUMENTATION'};}}catch(_0x228fba){utils['error'](util[_0x9559('0x14')](_0x9559('0x1b'),_0x6707ac[_0x9559('0x11')]),_0x228fba);}};exports['newstate']=function(_0x2707c1){try{utils[_0x9559('0x13')](util['format'](_0x9559('0x1c'),_0x2707c1['uniqueid']),_0x2707c1);if(!_[_0x9559('0x1d')](channels[_0x2707c1[_0x9559('0x11')]])&&_0x2707c1[_0x9559('0x1e')]==0x6){utils[_0x9559('0x6')](util[_0x9559('0x14')](_0x9559('0x1f'),_0x2707c1[_0x9559('0x11')],_0x2707c1['context'],_0x2707c1[_0x9559('0x7')]));if(_[_0x9559('0x1d')](channels[_0x2707c1[_0x9559('0x11')]][_0x9559('0x20')])){channels[_0x2707c1[_0x9559('0x11')]]['systemanswertime']=utils[_0x9559('0x1a')]();}}else if(!_[_0x9559('0x1d')](channels[_0x2707c1[_0x9559('0x15')]])&&_0x2707c1[_0x9559('0x1e')]==0x6&&_0x2707c1['context']!='transfer'){utils[_0x9559('0x6')](util[_0x9559('0x14')](_0x9559('0x21'),_0x2707c1[_0x9559('0x11')],_0x2707c1[_0x9559('0x15')],_0x2707c1[_0x9559('0x19')],_0x2707c1[_0x9559('0x7')]));channels[_0x2707c1[_0x9559('0x15')]]['accountcode']=_0x2707c1[_0x9559('0xc')];channels[_0x2707c1[_0x9559('0x15')]][_0x9559('0x22')]=_0x2707c1['channel'];if(_[_0x9559('0x1d')](channels[_0x2707c1[_0x9559('0x15')]][_0x9559('0x23')])){channels[_0x2707c1[_0x9559('0x15')]][_0x9559('0x23')]=utils[_0x9559('0x1a')]();}channels[_0x2707c1[_0x9559('0x15')]][_0x9559('0x24')]=dispositions[_['toNumber'](_0x2707c1[_0x9559('0x1e')])]||_0x9559('0x4');}}catch(_0x4d80ca){utils[_0x9559('0x25')](util[_0x9559('0x14')](_0x9559('0x1c'),_0x2707c1[_0x9559('0x11')]),_0x4d80ca);}};exports[_0x9559('0x26')]=function(_0x163bb0){try{if(!_[_0x9559('0x1d')](channels[_0x163bb0[_0x9559('0x11')]])){utils[_0x9559('0x13')](util[_0x9559('0x14')](_0x9559('0x27'),_0x163bb0[_0x9559('0x11')]),_0x163bb0);if(_[_0x9559('0x1d')](channels[_0x163bb0['uniqueid']][_0x9559('0x28')])){channels[_0x163bb0['uniqueid']]['callerid']=_0x163bb0[_0x9559('0x29')]+'\x20<'+_0x163bb0[_0x9559('0x2a')]+'>';}utils[_0x9559('0x6')](util[_0x9559('0x14')]('[%s][calls][hangup]\x20callerid:%s\x20reason:%s',_0x163bb0['uniqueid'],channels[_0x163bb0[_0x9559('0x11')]]['callerid'],_0x163bb0['cause-txt']));channels[_0x163bb0[_0x9559('0x11')]]['endtime']=utils[_0x9559('0x1a')]();channels[_0x163bb0[_0x9559('0x11')]][_0x9559('0x2b')]=utils[_0x9559('0x2c')](channels[_0x163bb0[_0x9559('0x11')]][_0x9559('0x2d')],channels[_0x163bb0[_0x9559('0x11')]][_0x9559('0x2e')]);channels[_0x163bb0[_0x9559('0x11')]][_0x9559('0x2f')]=channels[_0x163bb0['uniqueid']][_0x9559('0x23')]?utils['diffTime'](channels[_0x163bb0[_0x9559('0x11')]][_0x9559('0x2d')],channels[_0x163bb0[_0x9559('0x11')]][_0x9559('0x23')]):0x0;writeDB(channels[_0x163bb0[_0x9559('0x11')]]);}}catch(_0x2659c5){utils[_0x9559('0x25')](util[_0x9559('0x14')](_0x9559('0x27'),_0x163bb0[_0x9559('0x11')]),_0x2659c5);}};exports['attendedtransfer']=function(_0x1bbb7a){try{if(!_[_0x9559('0x1d')](channels[_0x1bbb7a[_0x9559('0x30')]])){utils[_0x9559('0x13')](util[_0x9559('0x14')](_0x9559('0x31'),_0x1bbb7a[_0x9559('0x32')]),_0x1bbb7a);if(channels[_0x1bbb7a[_0x9559('0x30')]]['channel']==_0x1bbb7a['transfereechannel']){utils[_0x9559('0x6')](util[_0x9559('0x14')](_0x9559('0x33'),_0x1bbb7a[_0x9559('0x32')],_0x1bbb7a[_0x9559('0x30')],_0x1bbb7a[_0x9559('0x34')]));channels[_0x1bbb7a['localtwolinkedid']][_0x9559('0x22')]=_0x1bbb7a[_0x9559('0x34')];channels[_0x1bbb7a['localtwolinkedid']][_0x9559('0x35')]='_attended';}else if(channels[_0x1bbb7a[_0x9559('0x30')]][_0x9559('0x7')]=_0x1bbb7a[_0x9559('0x36')]){utils['info'](util[_0x9559('0x14')](_0x9559('0x33'),_0x1bbb7a['origtransfereruniqueid'],_0x1bbb7a[_0x9559('0x30')],_0x1bbb7a[_0x9559('0x37')]));channels[_0x1bbb7a['localtwolinkedid']][_0x9559('0x22')]=_0x1bbb7a[_0x9559('0x37')];channels[_0x1bbb7a[_0x9559('0x30')]][_0x9559('0x35')]=_0x9559('0x38');}}}catch(_0x1b8fcb){utils[_0x9559('0x25')](util[_0x9559('0x14')]('[%s][calls][attendedtransfer]',_0x1bbb7a[_0x9559('0x32')]),_0x1b8fcb);}};exports[_0x9559('0x39')]=function(_0x4bd5a1){try{if(!_['isNil'](channels[_0x4bd5a1['uniqueid']])){utils[_0x9559('0x13')](util[_0x9559('0x14')](_0x9559('0x3a'),_0x4bd5a1[_0x9559('0x11')]),_0x4bd5a1);channels[_0x4bd5a1[_0x9559('0x11')]][_0x9559('0x3b')]=utils[_0x9559('0x1a')]();utils[_0x9559('0x6')](util[_0x9559('0x14')](_0x9559('0x3c'),_0x4bd5a1[_0x9559('0x11')],channels[_0x4bd5a1[_0x9559('0x11')]][_0x9559('0x3b')]));}}catch(_0x37ede0){utils['error'](util['format'](_0x9559('0x3a'),_0x4bd5a1[_0x9559('0x11')]),_0x37ede0);}};exports['musiconholdstop']=function(_0x15f917){try{if(!_[_0x9559('0x1d')](channels[_0x15f917[_0x9559('0x11')]])){utils[_0x9559('0x13')](util[_0x9559('0x14')]('[%s][calls][musiconholdstop]',_0x15f917['uniqueid']),_0x15f917);if(!_['isNil'](channels[_0x15f917[_0x9559('0x11')]]['musiconholdstartAt'])){channels[_0x15f917['uniqueid']][_0x9559('0x3d')]+=utils[_0x9559('0x2c')](utils[_0x9559('0x1a')](),channels[_0x15f917[_0x9559('0x11')]]['musiconholdstartAt']);utils[_0x9559('0x6')](util[_0x9559('0x14')](_0x9559('0x3e'),_0x15f917[_0x9559('0x11')],channels[_0x15f917[_0x9559('0x11')]][_0x9559('0x3d')]));delete channels[_0x15f917[_0x9559('0x11')]]['musiconholdstartAt'];}}}catch(_0x5066ca){utils[_0x9559('0x25')](util[_0x9559('0x14')]('[%s][calls][musiconholdstop]',_0x15f917[_0x9559('0x11')]),_0x5066ca);}};exports[_0x9559('0x3f')]=function(_0x1dd612){try{if(!_[_0x9559('0x1d')](channels[_0x1dd612[_0x9559('0x11')]])){utils['debug'](util['format'](_0x9559('0x40'),_0x1dd612[_0x9559('0x11')]),_0x1dd612);if(!_[_0x9559('0x1d')](_0x1dd612[_0x9559('0x41')][_0x9559('0x42')])){utils[_0x9559('0x6')](util[_0x9559('0x14')]('[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s',_0x1dd612[_0x9559('0x11')],_0x1dd612[_0x9559('0x43')]));channels[_0x1dd612[_0x9559('0x11')]][_0x9559('0x44')]=_0x1dd612[_0x9559('0x43')];}if(!_[_0x9559('0x1d')](_0x1dd612[_0x9559('0x41')][_0x9559('0x45')])){utils[_0x9559('0x6')](util['format']('[%s][calls][varset]\x20variable:xmd-phone\x20value:%s',_0x1dd612[_0x9559('0x11')],_0x1dd612['value']));channels[_0x1dd612[_0x9559('0x11')]][_0x9559('0x46')]=_0x1dd612[_0x9559('0x43')];channels[_0x1dd612[_0x9559('0x11')]][_0x9559('0x28')]='\x22'+_0x1dd612[_0x9559('0x43')]+_0x9559('0x47')+_0x1dd612[_0x9559('0x43')]+'>';}if(!_[_0x9559('0x1d')](_0x1dd612[_0x9559('0x41')][_0x9559('0x48')])||!_[_0x9559('0x1d')](_0x1dd612['variable'][_0x9559('0x49')])){utils[_0x9559('0x6')](util['format'](_0x9559('0x4a'),_0x1dd612['uniqueid'],!_[_0x9559('0x1d')](_0x1dd612[_0x9559('0x41')]['xmd-callerid-preview'])?_0x9559('0x48'):_0x9559('0x49'),_0x1dd612[_0x9559('0x43')]));channels[_0x1dd612[_0x9559('0x11')]][_0x9559('0x28')]=_0x1dd612[_0x9559('0x43')];}if(!_[_0x9559('0x1d')](_0x1dd612[_0x9559('0x41')]['xmd-queue'])||!_[_0x9559('0x1d')](_0x1dd612['variable']['xmcs-queue'])){utils[_0x9559('0x6')](util[_0x9559('0x14')]('[%s][calls][varset]\x20variable:%s\x20value:%s',_0x1dd612[_0x9559('0x11')],!_[_0x9559('0x1d')](_0x1dd612[_0x9559('0x41')][_0x9559('0x4b')])?_0x9559('0x4b'):'xmcs-queue',_0x1dd612['value']));channels[_0x1dd612[_0x9559('0x11')]][_0x9559('0x4c')]=_0x9559('0x4d');channels[_0x1dd612[_0x9559('0x11')]][_0x9559('0x4e')]=_0x1dd612[_0x9559('0x43')];channels[_0x1dd612[_0x9559('0x11')]][_0x9559('0x8')]=!![];}if(!_[_0x9559('0x1d')](_0x1dd612[_0x9559('0x41')][_0x9559('0x4f')])){utils['info'](util[_0x9559('0x14')](_0x9559('0x50'),_0x1dd612[_0x9559('0x11')],_0x1dd612[_0x9559('0x43')]));channels[_0x1dd612[_0x9559('0x11')]]['ContactId']=_0x1dd612[_0x9559('0x43')];}if(!_[_0x9559('0x1d')](_0x1dd612[_0x9559('0x41')][_0x9559('0x51')])){utils[_0x9559('0x6')](util[_0x9559('0x14')](_0x9559('0x52'),_0x1dd612['uniqueid'],_0x1dd612[_0x9559('0x43')]));channels[_0x1dd612[_0x9559('0x11')]]['type']=_0x1dd612[_0x9559('0x43')];}if(!_['isNil'](_0x1dd612[_0x9559('0x41')][_0x9559('0x53')])){utils[_0x9559('0x6')](util[_0x9559('0x14')](_0x9559('0x54'),_0x1dd612['uniqueid'],_0x1dd612[_0x9559('0x43')]));channels[_0x1dd612[_0x9559('0x11')]][_0x9559('0x55')]=_0x1dd612['value'];}if(!_[_0x9559('0x1d')](_0x1dd612[_0x9559('0x41')][_0x9559('0x56')])){utils['info'](util[_0x9559('0x14')]('[%s][calls][varset]\x20variable:sipcallid\x20value:%s',_0x1dd612['uniqueid'],_0x1dd612['value']));channels[_0x1dd612[_0x9559('0x11')]][_0x9559('0x56')]=_0x1dd612[_0x9559('0x43')];}}}catch(_0x2a8bfd){utils['error'](util['format']('[%s][calls][varset]',_0x1dd612[_0x9559('0x11')]),_0x2a8bfd);}};exports[_0x9559('0x57')]=function(_0x1caa98){try{if(!_[_0x9559('0x1d')](channels[_0x1caa98[_0x9559('0x11')]])){utils[_0x9559('0x13')](util[_0x9559('0x14')]('[%s][calls][newexten]',_0x1caa98[_0x9559('0x11')]),_0x1caa98);utils[_0x9559('0x6')](util[_0x9559('0x14')]('[%s][calls][newexten]\x20application:%s\x20appdata:%s',_0x1caa98['uniqueid'],_0x1caa98[_0x9559('0x58')],_0x1caa98['appdata']));if(_0x1caa98[_0x9559('0x58')]['toLowerCase']()==_0x9559('0x59')&&_[_0x9559('0x5a')](_0x1caa98[_0x9559('0x5b')][_0x9559('0x5c')](),_0x9559('0x5d'))){var _0x173d5d=_0x1caa98['appdata'][_0x9559('0x5e')]('=');var _0x12870f=_0x173d5d[0x0][_0x9559('0x5f')](_0x173d5d[0x0][_0x9559('0x60')]('(')+0x1,_0x173d5d[0x0]['lastIndexOf'](')'));var _0x157e87=_0x173d5d[0x1];channels[_0x1caa98['uniqueid']][_0x12870f]=_0x157e87;}if(!_[_0x9559('0x61')]([_0x9559('0x26'),_0x9559('0x62'),_0x9559('0x63'),_0x9559('0x59'),_0x9559('0x64')],_0x1caa98[_0x9559('0x58')]['toLowerCase']())){channels[_0x1caa98[_0x9559('0x11')]][_0x9559('0x4c')]=_0x1caa98[_0x9559('0x58')];channels[_0x1caa98[_0x9559('0x11')]][_0x9559('0x4e')]=_0x1caa98[_0x9559('0x5b')];}}}catch(_0x2331b8){utils[_0x9559('0x25')](util['format'](_0x9559('0x65'),_0x1caa98[_0x9559('0x11')]),_0x2331b8);}};