Built motion from commit 639a1a7f.|2.6.19
[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 _0x9708=['context','exten','now','DOCUMENTATION','newstate','channelstate','isNil','systemanswertime','transfer','[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s','destinationchannel','answertime','disposition','toNumber','error','[%s][calls][newstate]','callerid','[%s][calls][hangup]\x20callerid:%s\x20reason:%s','cause-txt','endtime','duration','diffTime','billableseconds','[%s][calls][hangup]','attendedtransfer','localtwolinkedid','[%s][calls][attendedtransfer]','secondtransfererchannel','userfield','_attended','transfertargetchannel','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','origtransfereruniqueid','origtransfererchannel','musiconholdstartAt','[%s][calls][musiconholdstart]','[%s][calls][musiconholdstop]','mohtime','[%s][calls][varset]','xmd-originatecalleridnum','value','source','variable','[%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','queue','xmd-contactid','[%s][calls][varset]\x20variable:xmd-contactid\x20value:%s','ContactId','[%s][calls][varset]\x20variable:xmd-cdrtype\x20value:%s','type','outboundrouteid','[%s][calls][varset]\x20variable:outboundrouteid\x20value:%s','sipcallid','newexten','application','appdata','set','startsWith','toLowerCase','cdr','split','substring','includes','hangup','noop','execif','gotoif','[%s][calls][newexten]','lodash','util','NO\x20ANSWER','FAILED','ANSWERED','info','[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','uniqueid','channel','membername','interface','calleridnum','connectedlinenum','lastevent','accountcode','then','UserId','CreateVoiceCallReport','request','debug','format','[%s][calls][newchannel]','linkedid','OutgoingSpoolFailed','[%s][calls][newchannel]\x20context:%s\x20exten:%s'];(function(_0x36b7dd,_0x3ed6e0){var _0x24d6da=function(_0x190a95){while(--_0x190a95){_0x36b7dd['push'](_0x36b7dd['shift']());}};_0x24d6da(++_0x3ed6e0);}(_0x9708,0x183));var _0x8970=function(_0x5302fb,_0x1a2db3){_0x5302fb=_0x5302fb-0x0;var _0x43e6a4=_0x9708[_0x5302fb];return _0x43e6a4;};'use strict';var _=require(_0x8970('0x0'));var util=require(_0x8970('0x1'));var utils=require('./utils');var dispositions=[_0x8970('0x2'),_0x8970('0x3'),_0x8970('0x3'),_0x8970('0x2'),_0x8970('0x2'),_0x8970('0x2'),_0x8970('0x4'),'BUSY',_0x8970('0x3'),_0x8970('0x3'),_0x8970('0x3')];var channels={};function writeDB(_0x461e6){utils[_0x8970('0x5')](util['format'](_0x8970('0x6'),_0x461e6[_0x8970('0x7')],_0x461e6[_0x8970('0x8')],_0x461e6['queue'],_0x461e6[_0x8970('0x9')],_0x461e6[_0x8970('0xa')],_0x461e6[_0x8970('0xb')],_0x461e6[_0x8970('0xc')],_0x461e6[_0x8970('0xd')]));if(_0x461e6[_0x8970('0xe')]){utils['getUserByInternal'](_0x461e6[_0x8970('0xe')])[_0x8970('0xf')](function(_0x501cea){if(_0x501cea){_0x461e6[_0x8970('0x10')]=_0x501cea['id'];}utils['request'](_0x8970('0x11'),_0x461e6);});}else{utils[_0x8970('0x12')](_0x8970('0x11'),_0x461e6);}if(channels[_0x461e6['uniqueid']]){delete channels[_0x461e6['uniqueid']];}}exports['newchannel']=function(_0x59d915){try{utils[_0x8970('0x13')](util[_0x8970('0x14')](_0x8970('0x15'),_0x59d915[_0x8970('0x7')]),_0x59d915);if(_0x59d915[_0x8970('0x7')]==_0x59d915[_0x8970('0x16')]&&_0x59d915['channel']!=_0x8970('0x17')){utils[_0x8970('0x5')](util[_0x8970('0x14')](_0x8970('0x18'),_0x59d915[_0x8970('0x7')],_0x59d915[_0x8970('0x19')],_0x59d915['exten']));channels[_0x59d915[_0x8970('0x7')]]={'uniqueid':_0x59d915[_0x8970('0x7')],'accountcode':_0x59d915[_0x8970('0xe')],'source':_0x59d915[_0x8970('0xb')],'destination':_0x59d915[_0x8970('0x1a')],'destinationcontext':_0x59d915[_0x8970('0x19')],'channel':_0x59d915[_0x8970('0x8')],'starttime':utils[_0x8970('0x1b')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':'NO\x20ANSWER','amaflags':_0x8970('0x1c')};}}catch(_0x4544d8){utils['error'](util[_0x8970('0x14')]('[%s][calls][newchannel]',_0x59d915['uniqueid']),_0x4544d8);}};exports[_0x8970('0x1d')]=function(_0xcdde1d){try{utils['debug'](util['format']('[%s][calls][newstate]',_0xcdde1d[_0x8970('0x7')]),_0xcdde1d);if(!_['isNil'](channels[_0xcdde1d[_0x8970('0x7')]])&&_0xcdde1d[_0x8970('0x1e')]==0x6){utils['info'](util['format']('[%s][calls][newstate]\x20context:%s\x20channel:%s',_0xcdde1d['uniqueid'],_0xcdde1d[_0x8970('0x19')],_0xcdde1d[_0x8970('0x8')]));if(_[_0x8970('0x1f')](channels[_0xcdde1d[_0x8970('0x7')]]['systemanswertime'])){channels[_0xcdde1d[_0x8970('0x7')]][_0x8970('0x20')]=utils['now']();}}else if(!_[_0x8970('0x1f')](channels[_0xcdde1d[_0x8970('0x16')]])&&_0xcdde1d['channelstate']==0x6&&_0xcdde1d['context']!=_0x8970('0x21')){utils[_0x8970('0x5')](util[_0x8970('0x14')](_0x8970('0x22'),_0xcdde1d[_0x8970('0x7')],_0xcdde1d[_0x8970('0x16')],_0xcdde1d[_0x8970('0x19')],_0xcdde1d[_0x8970('0x8')]));channels[_0xcdde1d[_0x8970('0x16')]][_0x8970('0xe')]=_0xcdde1d[_0x8970('0xe')];channels[_0xcdde1d['linkedid']][_0x8970('0x23')]=_0xcdde1d[_0x8970('0x8')];if(_[_0x8970('0x1f')](channels[_0xcdde1d[_0x8970('0x16')]][_0x8970('0x24')])){channels[_0xcdde1d[_0x8970('0x16')]][_0x8970('0x24')]=utils[_0x8970('0x1b')]();}channels[_0xcdde1d[_0x8970('0x16')]][_0x8970('0x25')]=dispositions[_[_0x8970('0x26')](_0xcdde1d[_0x8970('0x1e')])]||'ANSWERED';}}catch(_0x3cc16a){utils[_0x8970('0x27')](util[_0x8970('0x14')](_0x8970('0x28'),_0xcdde1d['uniqueid']),_0x3cc16a);}};exports['hangup']=function(_0x582a45){try{if(!_[_0x8970('0x1f')](channels[_0x582a45[_0x8970('0x7')]])){utils[_0x8970('0x13')](util[_0x8970('0x14')]('[%s][calls][hangup]',_0x582a45[_0x8970('0x7')]),_0x582a45);if(_[_0x8970('0x1f')](channels[_0x582a45[_0x8970('0x7')]][_0x8970('0x29')])){channels[_0x582a45[_0x8970('0x7')]][_0x8970('0x29')]=_0x582a45['calleridname']+'\x20<'+_0x582a45[_0x8970('0xb')]+'>';}utils[_0x8970('0x5')](util[_0x8970('0x14')](_0x8970('0x2a'),_0x582a45[_0x8970('0x7')],channels[_0x582a45[_0x8970('0x7')]][_0x8970('0x29')],_0x582a45[_0x8970('0x2b')]));channels[_0x582a45[_0x8970('0x7')]][_0x8970('0x2c')]=utils[_0x8970('0x1b')]();channels[_0x582a45[_0x8970('0x7')]][_0x8970('0x2d')]=utils[_0x8970('0x2e')](channels[_0x582a45[_0x8970('0x7')]][_0x8970('0x2c')],channels[_0x582a45[_0x8970('0x7')]]['starttime']);channels[_0x582a45['uniqueid']][_0x8970('0x2f')]=channels[_0x582a45[_0x8970('0x7')]][_0x8970('0x24')]?utils[_0x8970('0x2e')](channels[_0x582a45[_0x8970('0x7')]][_0x8970('0x2c')],channels[_0x582a45[_0x8970('0x7')]][_0x8970('0x24')]):0x0;writeDB(channels[_0x582a45[_0x8970('0x7')]]);}}catch(_0x17b818){utils[_0x8970('0x27')](util[_0x8970('0x14')](_0x8970('0x30'),_0x582a45[_0x8970('0x7')]),_0x17b818);}};exports[_0x8970('0x31')]=function(_0x721334){try{if(!_['isNil'](channels[_0x721334[_0x8970('0x32')]])){utils['debug'](util[_0x8970('0x14')](_0x8970('0x33'),_0x721334['origtransfereruniqueid']),_0x721334);if(channels[_0x721334['localtwolinkedid']]['channel']==_0x721334['transfereechannel']){utils[_0x8970('0x5')](util[_0x8970('0x14')]('[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s',_0x721334['origtransfereruniqueid'],_0x721334[_0x8970('0x32')],_0x721334['secondtransfererchannel']));channels[_0x721334['localtwolinkedid']][_0x8970('0x23')]=_0x721334[_0x8970('0x34')];channels[_0x721334['localtwolinkedid']][_0x8970('0x35')]=_0x8970('0x36');}else if(channels[_0x721334['localtwolinkedid']]['channel']=_0x721334[_0x8970('0x37')]){utils[_0x8970('0x5')](util['format'](_0x8970('0x38'),_0x721334[_0x8970('0x39')],_0x721334[_0x8970('0x32')],_0x721334['origtransfererchannel']));channels[_0x721334[_0x8970('0x32')]]['destinationchannel']=_0x721334[_0x8970('0x3a')];channels[_0x721334[_0x8970('0x32')]][_0x8970('0x35')]=_0x8970('0x36');}}}catch(_0x3d5b7b){utils['error'](util[_0x8970('0x14')](_0x8970('0x33'),_0x721334[_0x8970('0x39')]),_0x3d5b7b);}};exports['musiconholdstart']=function(_0x5b20b3){try{if(!_[_0x8970('0x1f')](channels[_0x5b20b3[_0x8970('0x7')]])){utils[_0x8970('0x13')](util[_0x8970('0x14')]('[%s][calls][musiconholdstart]',_0x5b20b3[_0x8970('0x7')]),_0x5b20b3);channels[_0x5b20b3[_0x8970('0x7')]]['musiconholdstartAt']=utils['now']();utils[_0x8970('0x5')](util[_0x8970('0x14')]('[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s',_0x5b20b3[_0x8970('0x7')],channels[_0x5b20b3['uniqueid']][_0x8970('0x3b')]));}}catch(_0x12f8f1){utils['error'](util[_0x8970('0x14')](_0x8970('0x3c'),_0x5b20b3[_0x8970('0x7')]),_0x12f8f1);}};exports['musiconholdstop']=function(_0x351f29){try{if(!_[_0x8970('0x1f')](channels[_0x351f29[_0x8970('0x7')]])){utils[_0x8970('0x13')](util[_0x8970('0x14')](_0x8970('0x3d'),_0x351f29['uniqueid']),_0x351f29);if(!_[_0x8970('0x1f')](channels[_0x351f29['uniqueid']]['musiconholdstartAt'])){channels[_0x351f29[_0x8970('0x7')]][_0x8970('0x3e')]+=utils[_0x8970('0x2e')](utils[_0x8970('0x1b')](),channels[_0x351f29[_0x8970('0x7')]][_0x8970('0x3b')]);utils[_0x8970('0x5')](util[_0x8970('0x14')]('[%s][calls][musiconholdstop]\x20mohtime:%s',_0x351f29['uniqueid'],channels[_0x351f29[_0x8970('0x7')]][_0x8970('0x3e')]));delete channels[_0x351f29[_0x8970('0x7')]][_0x8970('0x3b')];}}}catch(_0x249626){utils['error'](util[_0x8970('0x14')](_0x8970('0x3d'),_0x351f29[_0x8970('0x7')]),_0x249626);}};exports['varset']=function(_0x190a8d){try{if(!_[_0x8970('0x1f')](channels[_0x190a8d['uniqueid']])){utils['debug'](util[_0x8970('0x14')](_0x8970('0x3f'),_0x190a8d[_0x8970('0x7')]),_0x190a8d);if(!_[_0x8970('0x1f')](_0x190a8d['variable'][_0x8970('0x40')])){utils['info'](util[_0x8970('0x14')]('[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s',_0x190a8d['uniqueid'],_0x190a8d[_0x8970('0x41')]));channels[_0x190a8d[_0x8970('0x7')]][_0x8970('0x42')]=_0x190a8d[_0x8970('0x41')];}if(!_[_0x8970('0x1f')](_0x190a8d[_0x8970('0x43')]['xmd-phone'])){utils[_0x8970('0x5')](util[_0x8970('0x14')](_0x8970('0x44'),_0x190a8d[_0x8970('0x7')],_0x190a8d[_0x8970('0x41')]));channels[_0x190a8d[_0x8970('0x7')]][_0x8970('0x45')]=_0x190a8d['value'];channels[_0x190a8d[_0x8970('0x7')]][_0x8970('0x29')]='\x22'+_0x190a8d[_0x8970('0x41')]+_0x8970('0x46')+_0x190a8d[_0x8970('0x41')]+'>';}if(!_[_0x8970('0x1f')](_0x190a8d['variable'][_0x8970('0x47')])||!_[_0x8970('0x1f')](_0x190a8d['variable'][_0x8970('0x48')])){utils[_0x8970('0x5')](util[_0x8970('0x14')](_0x8970('0x49'),_0x190a8d['uniqueid'],!_['isNil'](_0x190a8d[_0x8970('0x43')]['xmd-callerid-preview'])?_0x8970('0x47'):_0x8970('0x48'),_0x190a8d['value']));channels[_0x190a8d[_0x8970('0x7')]]['callerid']=_0x190a8d[_0x8970('0x41')];}if(!_[_0x8970('0x1f')](_0x190a8d[_0x8970('0x43')][_0x8970('0x4a')])||!_[_0x8970('0x1f')](_0x190a8d[_0x8970('0x43')][_0x8970('0x4b')])){utils[_0x8970('0x5')](util[_0x8970('0x14')](_0x8970('0x49'),_0x190a8d['uniqueid'],!_[_0x8970('0x1f')](_0x190a8d[_0x8970('0x43')][_0x8970('0x4a')])?_0x8970('0x4a'):_0x8970('0x4b'),_0x190a8d[_0x8970('0x41')]));channels[_0x190a8d[_0x8970('0x7')]][_0x8970('0x4c')]=_0x8970('0x4d');channels[_0x190a8d['uniqueid']][_0x8970('0x4e')]=_0x190a8d[_0x8970('0x41')];channels[_0x190a8d[_0x8970('0x7')]][_0x8970('0x4f')]=!![];}if(!_['isNil'](_0x190a8d[_0x8970('0x43')][_0x8970('0x50')])){utils[_0x8970('0x5')](util['format'](_0x8970('0x51'),_0x190a8d[_0x8970('0x7')],_0x190a8d[_0x8970('0x41')]));channels[_0x190a8d[_0x8970('0x7')]][_0x8970('0x52')]=_0x190a8d[_0x8970('0x41')];}if(!_[_0x8970('0x1f')](_0x190a8d['variable']['xmd-cdrtype'])){utils[_0x8970('0x5')](util[_0x8970('0x14')](_0x8970('0x53'),_0x190a8d[_0x8970('0x7')],_0x190a8d['value']));channels[_0x190a8d[_0x8970('0x7')]][_0x8970('0x54')]=_0x190a8d['value'];}if(!_['isNil'](_0x190a8d[_0x8970('0x43')][_0x8970('0x55')])){utils[_0x8970('0x5')](util[_0x8970('0x14')](_0x8970('0x56'),_0x190a8d[_0x8970('0x7')],_0x190a8d[_0x8970('0x41')]));channels[_0x190a8d[_0x8970('0x7')]]['routeid']=_0x190a8d[_0x8970('0x41')];}if(!_['isNil'](_0x190a8d[_0x8970('0x43')][_0x8970('0x57')])){utils['info'](util[_0x8970('0x14')]('[%s][calls][varset]\x20variable:sipcallid\x20value:%s',_0x190a8d[_0x8970('0x7')],_0x190a8d[_0x8970('0x41')]));channels[_0x190a8d[_0x8970('0x7')]][_0x8970('0x57')]=_0x190a8d[_0x8970('0x41')];}}}catch(_0x1f9b8e){utils[_0x8970('0x27')](util['format']('[%s][calls][varset]',_0x190a8d[_0x8970('0x7')]),_0x1f9b8e);}};exports[_0x8970('0x58')]=function(_0x7decc1){try{if(!_[_0x8970('0x1f')](channels[_0x7decc1[_0x8970('0x7')]])){utils['debug'](util[_0x8970('0x14')]('[%s][calls][newexten]',_0x7decc1[_0x8970('0x7')]),_0x7decc1);utils[_0x8970('0x5')](util[_0x8970('0x14')]('[%s][calls][newexten]\x20application:%s\x20appdata:%s',_0x7decc1[_0x8970('0x7')],_0x7decc1[_0x8970('0x59')],_0x7decc1[_0x8970('0x5a')]));if(_0x7decc1['application']['toLowerCase']()==_0x8970('0x5b')&&_[_0x8970('0x5c')](_0x7decc1[_0x8970('0x5a')][_0x8970('0x5d')](),_0x8970('0x5e'))){var _0x284f51=_0x7decc1['appdata'][_0x8970('0x5f')]('=');var _0x56178e=_0x284f51[0x0][_0x8970('0x60')](_0x284f51[0x0]['lastIndexOf']('(')+0x1,_0x284f51[0x0]['lastIndexOf'](')'));var _0x4ad1ae=_0x284f51[0x1];channels[_0x7decc1[_0x8970('0x7')]][_0x56178e]=_0x4ad1ae;}if(!_[_0x8970('0x61')]([_0x8970('0x62'),_0x8970('0x63'),_0x8970('0x64'),_0x8970('0x5b'),_0x8970('0x65')],_0x7decc1[_0x8970('0x59')][_0x8970('0x5d')]())){channels[_0x7decc1[_0x8970('0x7')]]['lastapplication']=_0x7decc1[_0x8970('0x59')];channels[_0x7decc1['uniqueid']]['lastdata']=_0x7decc1[_0x8970('0x5a')];}}}catch(_0x341abf){utils[_0x8970('0x27')](util[_0x8970('0x14')](_0x8970('0x66'),_0x7decc1[_0x8970('0x7')]),_0x341abf);}};