73349a8c4191c50fb4e6e4beb3c3b37d348a9e4c
[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 _0x8c3f=['gotoif','[%s][calls][newexten]','lodash','./utils','NO\x20ANSWER','FAILED','ANSWERED','info','[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','uniqueid','membername','interface','calleridnum','connectedlinenum','accountcode','getUserByInternal','then','UserId','CreateVoiceCallReport','request','newchannel','debug','format','[%s][calls][newchannel]','OutgoingSpoolFailed','context','exten','channel','now','DOCUMENTATION','error','newstate','[%s][calls][newstate]','isNil','channelstate','[%s][calls][newstate]\x20context:%s\x20channel:%s','systemanswertime','linkedid','destinationchannel','hangup','[%s][calls][hangup]','calleridname','callerid','cause-txt','endtime','diffTime','starttime','billableseconds','answertime','localtwolinkedid','[%s][calls][attendedtransfer]','origtransfereruniqueid','transfereechannel','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','secondtransfererchannel','userfield','_attended','origtransfererchannel','[%s][calls][musiconholdstart]','musiconholdstartAt','[%s][calls][musiconholdstop]','mohtime','[%s][calls][musiconholdstop]\x20mohtime:%s','varset','[%s][calls][varset]','variable','[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s','value','source','xmd-phone','[%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','lastdata','queue','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','routeid','sipcallid','newexten','[%s][calls][newexten]\x20application:%s\x20appdata:%s','application','toLowerCase','set','appdata','cdr','split','substring','lastIndexOf','noop','execif'];(function(_0x39772f,_0x5605cb){var _0xc9edbf=function(_0x106a39){while(--_0x106a39){_0x39772f['push'](_0x39772f['shift']());}};_0xc9edbf(++_0x5605cb);}(_0x8c3f,0x19a));var _0xf8c3=function(_0x5908a8,_0x14230f){_0x5908a8=_0x5908a8-0x0;var _0x495211=_0x8c3f[_0x5908a8];return _0x495211;};'use strict';var _=require(_0xf8c3('0x0'));var util=require('util');var utils=require(_0xf8c3('0x1'));var dispositions=[_0xf8c3('0x2'),_0xf8c3('0x3'),'FAILED',_0xf8c3('0x2'),_0xf8c3('0x2'),'NO\x20ANSWER',_0xf8c3('0x4'),'BUSY',_0xf8c3('0x3'),_0xf8c3('0x3'),_0xf8c3('0x3')];var channels={};function writeDB(_0x363883){utils[_0xf8c3('0x5')](util['format'](_0xf8c3('0x6'),_0x363883[_0xf8c3('0x7')],_0x363883['channel'],_0x363883['queue'],_0x363883[_0xf8c3('0x8')],_0x363883[_0xf8c3('0x9')],_0x363883[_0xf8c3('0xa')],_0x363883[_0xf8c3('0xb')],_0x363883['lastevent']));if(_0x363883[_0xf8c3('0xc')]){utils[_0xf8c3('0xd')](_0x363883[_0xf8c3('0xc')])[_0xf8c3('0xe')](function(_0x99085c){if(_0x99085c){_0x363883[_0xf8c3('0xf')]=_0x99085c['id'];}utils['request'](_0xf8c3('0x10'),_0x363883);});}else{utils[_0xf8c3('0x11')]('CreateVoiceCallReport',_0x363883);}if(channels[_0x363883[_0xf8c3('0x7')]]){delete channels[_0x363883[_0xf8c3('0x7')]];}}exports[_0xf8c3('0x12')]=function(_0x359a1a){try{utils[_0xf8c3('0x13')](util[_0xf8c3('0x14')](_0xf8c3('0x15'),_0x359a1a[_0xf8c3('0x7')]),_0x359a1a);if(_0x359a1a[_0xf8c3('0x7')]==_0x359a1a['linkedid']&&_0x359a1a['channel']!=_0xf8c3('0x16')){utils[_0xf8c3('0x5')](util[_0xf8c3('0x14')]('[%s][calls][newchannel]\x20context:%s\x20exten:%s',_0x359a1a[_0xf8c3('0x7')],_0x359a1a[_0xf8c3('0x17')],_0x359a1a[_0xf8c3('0x18')]));channels[_0x359a1a[_0xf8c3('0x7')]]={'uniqueid':_0x359a1a[_0xf8c3('0x7')],'accountcode':_0x359a1a[_0xf8c3('0xc')],'source':_0x359a1a['calleridnum'],'destination':_0x359a1a[_0xf8c3('0x18')],'destinationcontext':_0x359a1a['context'],'channel':_0x359a1a[_0xf8c3('0x19')],'starttime':utils[_0xf8c3('0x1a')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':'NO\x20ANSWER','amaflags':_0xf8c3('0x1b')};}}catch(_0x274945){utils[_0xf8c3('0x1c')](util[_0xf8c3('0x14')](_0xf8c3('0x15'),_0x359a1a[_0xf8c3('0x7')]),_0x274945);}};exports[_0xf8c3('0x1d')]=function(_0x5a9b87){try{utils[_0xf8c3('0x13')](util[_0xf8c3('0x14')](_0xf8c3('0x1e'),_0x5a9b87[_0xf8c3('0x7')]),_0x5a9b87);if(!_[_0xf8c3('0x1f')](channels[_0x5a9b87[_0xf8c3('0x7')]])&&_0x5a9b87[_0xf8c3('0x20')]==0x6){utils[_0xf8c3('0x5')](util[_0xf8c3('0x14')](_0xf8c3('0x21'),_0x5a9b87[_0xf8c3('0x7')],_0x5a9b87[_0xf8c3('0x17')],_0x5a9b87[_0xf8c3('0x19')]));if(_[_0xf8c3('0x1f')](channels[_0x5a9b87[_0xf8c3('0x7')]]['systemanswertime'])){channels[_0x5a9b87[_0xf8c3('0x7')]][_0xf8c3('0x22')]=utils[_0xf8c3('0x1a')]();}}else if(!_[_0xf8c3('0x1f')](channels[_0x5a9b87[_0xf8c3('0x23')]])&&_0x5a9b87[_0xf8c3('0x20')]==0x6&&_0x5a9b87[_0xf8c3('0x17')]!='transfer'){utils[_0xf8c3('0x5')](util['format']('[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s',_0x5a9b87[_0xf8c3('0x7')],_0x5a9b87[_0xf8c3('0x23')],_0x5a9b87['context'],_0x5a9b87[_0xf8c3('0x19')]));channels[_0x5a9b87[_0xf8c3('0x23')]][_0xf8c3('0xc')]=_0x5a9b87[_0xf8c3('0xc')];channels[_0x5a9b87[_0xf8c3('0x23')]][_0xf8c3('0x24')]=_0x5a9b87[_0xf8c3('0x19')];if(_['isNil'](channels[_0x5a9b87[_0xf8c3('0x23')]]['answertime'])){channels[_0x5a9b87[_0xf8c3('0x23')]]['answertime']=utils['now']();}channels[_0x5a9b87['linkedid']]['disposition']=dispositions[_['toNumber'](_0x5a9b87[_0xf8c3('0x20')])]||_0xf8c3('0x4');}}catch(_0x16d4ec){utils[_0xf8c3('0x1c')](util['format'](_0xf8c3('0x1e'),_0x5a9b87['uniqueid']),_0x16d4ec);}};exports[_0xf8c3('0x25')]=function(_0x5ac242){try{if(!_[_0xf8c3('0x1f')](channels[_0x5ac242[_0xf8c3('0x7')]])){utils[_0xf8c3('0x13')](util['format'](_0xf8c3('0x26'),_0x5ac242['uniqueid']),_0x5ac242);if(_['isNil'](channels[_0x5ac242['uniqueid']]['callerid'])){channels[_0x5ac242[_0xf8c3('0x7')]]['callerid']=_0x5ac242[_0xf8c3('0x27')]+'\x20<'+_0x5ac242[_0xf8c3('0xa')]+'>';}utils[_0xf8c3('0x5')](util[_0xf8c3('0x14')]('[%s][calls][hangup]\x20callerid:%s\x20reason:%s',_0x5ac242['uniqueid'],channels[_0x5ac242[_0xf8c3('0x7')]][_0xf8c3('0x28')],_0x5ac242[_0xf8c3('0x29')]));channels[_0x5ac242['uniqueid']][_0xf8c3('0x2a')]=utils[_0xf8c3('0x1a')]();channels[_0x5ac242[_0xf8c3('0x7')]]['duration']=utils[_0xf8c3('0x2b')](channels[_0x5ac242['uniqueid']][_0xf8c3('0x2a')],channels[_0x5ac242[_0xf8c3('0x7')]][_0xf8c3('0x2c')]);channels[_0x5ac242[_0xf8c3('0x7')]][_0xf8c3('0x2d')]=channels[_0x5ac242[_0xf8c3('0x7')]][_0xf8c3('0x2e')]?utils[_0xf8c3('0x2b')](channels[_0x5ac242[_0xf8c3('0x7')]][_0xf8c3('0x2a')],channels[_0x5ac242['uniqueid']][_0xf8c3('0x2e')]):0x0;writeDB(channels[_0x5ac242['uniqueid']]);}}catch(_0x5b4dc8){utils[_0xf8c3('0x1c')](util['format'](_0xf8c3('0x26'),_0x5ac242[_0xf8c3('0x7')]),_0x5b4dc8);}};exports['attendedtransfer']=function(_0x292f46){try{if(!_['isNil'](channels[_0x292f46[_0xf8c3('0x2f')]])){utils[_0xf8c3('0x13')](util[_0xf8c3('0x14')](_0xf8c3('0x30'),_0x292f46[_0xf8c3('0x31')]),_0x292f46);if(channels[_0x292f46['localtwolinkedid']][_0xf8c3('0x19')]==_0x292f46[_0xf8c3('0x32')]){utils['info'](util[_0xf8c3('0x14')](_0xf8c3('0x33'),_0x292f46[_0xf8c3('0x31')],_0x292f46['localtwolinkedid'],_0x292f46[_0xf8c3('0x34')]));channels[_0x292f46[_0xf8c3('0x2f')]][_0xf8c3('0x24')]=_0x292f46[_0xf8c3('0x34')];channels[_0x292f46[_0xf8c3('0x2f')]][_0xf8c3('0x35')]=_0xf8c3('0x36');}else if(channels[_0x292f46[_0xf8c3('0x2f')]]['channel']=_0x292f46['transfertargetchannel']){utils[_0xf8c3('0x5')](util['format'](_0xf8c3('0x33'),_0x292f46[_0xf8c3('0x31')],_0x292f46[_0xf8c3('0x2f')],_0x292f46[_0xf8c3('0x37')]));channels[_0x292f46[_0xf8c3('0x2f')]][_0xf8c3('0x24')]=_0x292f46[_0xf8c3('0x37')];channels[_0x292f46[_0xf8c3('0x2f')]][_0xf8c3('0x35')]=_0xf8c3('0x36');}}}catch(_0x8a5da){utils[_0xf8c3('0x1c')](util[_0xf8c3('0x14')](_0xf8c3('0x30'),_0x292f46[_0xf8c3('0x31')]),_0x8a5da);}};exports['musiconholdstart']=function(_0x32b6da){try{if(!_['isNil'](channels[_0x32b6da[_0xf8c3('0x7')]])){utils[_0xf8c3('0x13')](util[_0xf8c3('0x14')](_0xf8c3('0x38'),_0x32b6da[_0xf8c3('0x7')]),_0x32b6da);channels[_0x32b6da[_0xf8c3('0x7')]][_0xf8c3('0x39')]=utils[_0xf8c3('0x1a')]();utils[_0xf8c3('0x5')](util[_0xf8c3('0x14')]('[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s',_0x32b6da[_0xf8c3('0x7')],channels[_0x32b6da[_0xf8c3('0x7')]][_0xf8c3('0x39')]));}}catch(_0x36e283){utils[_0xf8c3('0x1c')](util[_0xf8c3('0x14')]('[%s][calls][musiconholdstart]',_0x32b6da['uniqueid']),_0x36e283);}};exports['musiconholdstop']=function(_0x558cb7){try{if(!_[_0xf8c3('0x1f')](channels[_0x558cb7['uniqueid']])){utils[_0xf8c3('0x13')](util['format'](_0xf8c3('0x3a'),_0x558cb7[_0xf8c3('0x7')]),_0x558cb7);if(!_['isNil'](channels[_0x558cb7['uniqueid']][_0xf8c3('0x39')])){channels[_0x558cb7[_0xf8c3('0x7')]][_0xf8c3('0x3b')]+=utils[_0xf8c3('0x2b')](utils[_0xf8c3('0x1a')](),channels[_0x558cb7[_0xf8c3('0x7')]]['musiconholdstartAt']);utils['info'](util[_0xf8c3('0x14')](_0xf8c3('0x3c'),_0x558cb7[_0xf8c3('0x7')],channels[_0x558cb7['uniqueid']]['mohtime']));delete channels[_0x558cb7['uniqueid']][_0xf8c3('0x39')];}}}catch(_0xcd23b7){utils[_0xf8c3('0x1c')](util[_0xf8c3('0x14')](_0xf8c3('0x3a'),_0x558cb7['uniqueid']),_0xcd23b7);}};exports[_0xf8c3('0x3d')]=function(_0x11a25c){try{if(!_['isNil'](channels[_0x11a25c[_0xf8c3('0x7')]])){utils['debug'](util[_0xf8c3('0x14')](_0xf8c3('0x3e'),_0x11a25c[_0xf8c3('0x7')]),_0x11a25c);if(!_[_0xf8c3('0x1f')](_0x11a25c[_0xf8c3('0x3f')]['xmd-originatecalleridnum'])){utils['info'](util[_0xf8c3('0x14')](_0xf8c3('0x40'),_0x11a25c['uniqueid'],_0x11a25c[_0xf8c3('0x41')]));channels[_0x11a25c[_0xf8c3('0x7')]][_0xf8c3('0x42')]=_0x11a25c[_0xf8c3('0x41')];}if(!_['isNil'](_0x11a25c[_0xf8c3('0x3f')][_0xf8c3('0x43')])){utils[_0xf8c3('0x5')](util[_0xf8c3('0x14')](_0xf8c3('0x44'),_0x11a25c[_0xf8c3('0x7')],_0x11a25c[_0xf8c3('0x41')]));channels[_0x11a25c[_0xf8c3('0x7')]][_0xf8c3('0x45')]=_0x11a25c[_0xf8c3('0x41')];channels[_0x11a25c[_0xf8c3('0x7')]]['callerid']='\x22'+_0x11a25c['value']+_0xf8c3('0x46')+_0x11a25c[_0xf8c3('0x41')]+'>';}if(!_['isNil'](_0x11a25c[_0xf8c3('0x3f')][_0xf8c3('0x47')])||!_['isNil'](_0x11a25c[_0xf8c3('0x3f')][_0xf8c3('0x48')])){utils[_0xf8c3('0x5')](util[_0xf8c3('0x14')](_0xf8c3('0x49'),_0x11a25c['uniqueid'],!_[_0xf8c3('0x1f')](_0x11a25c[_0xf8c3('0x3f')][_0xf8c3('0x47')])?'xmd-callerid-preview':_0xf8c3('0x48'),_0x11a25c[_0xf8c3('0x41')]));channels[_0x11a25c[_0xf8c3('0x7')]][_0xf8c3('0x28')]=_0x11a25c[_0xf8c3('0x41')];}if(!_['isNil'](_0x11a25c[_0xf8c3('0x3f')][_0xf8c3('0x4a')])||!_[_0xf8c3('0x1f')](_0x11a25c['variable'][_0xf8c3('0x4b')])){utils['info'](util[_0xf8c3('0x14')]('[%s][calls][varset]\x20variable:%s\x20value:%s',_0x11a25c['uniqueid'],!_[_0xf8c3('0x1f')](_0x11a25c[_0xf8c3('0x3f')][_0xf8c3('0x4a')])?_0xf8c3('0x4a'):_0xf8c3('0x4b'),_0x11a25c['value']));channels[_0x11a25c[_0xf8c3('0x7')]][_0xf8c3('0x4c')]='Queue';channels[_0x11a25c['uniqueid']][_0xf8c3('0x4d')]=_0x11a25c[_0xf8c3('0x41')];channels[_0x11a25c[_0xf8c3('0x7')]][_0xf8c3('0x4e')]=!![];}if(!_[_0xf8c3('0x1f')](_0x11a25c[_0xf8c3('0x3f')][_0xf8c3('0x4f')])){utils[_0xf8c3('0x5')](util['format'](_0xf8c3('0x50'),_0x11a25c[_0xf8c3('0x7')],_0x11a25c['value']));channels[_0x11a25c[_0xf8c3('0x7')]]['ContactId']=_0x11a25c[_0xf8c3('0x41')];}if(!_[_0xf8c3('0x1f')](_0x11a25c[_0xf8c3('0x3f')][_0xf8c3('0x51')])){utils['info'](util[_0xf8c3('0x14')](_0xf8c3('0x52'),_0x11a25c['uniqueid'],_0x11a25c[_0xf8c3('0x41')]));channels[_0x11a25c['uniqueid']][_0xf8c3('0x53')]=_0x11a25c['value'];}if(!_['isNil'](_0x11a25c[_0xf8c3('0x3f')][_0xf8c3('0x54')])){utils[_0xf8c3('0x5')](util[_0xf8c3('0x14')](_0xf8c3('0x55'),_0x11a25c[_0xf8c3('0x7')],_0x11a25c[_0xf8c3('0x41')]));channels[_0x11a25c[_0xf8c3('0x7')]][_0xf8c3('0x56')]=_0x11a25c[_0xf8c3('0x41')];}if(!_['isNil'](_0x11a25c['variable'][_0xf8c3('0x57')])){utils[_0xf8c3('0x5')](util['format']('[%s][calls][varset]\x20variable:sipcallid\x20value:%s',_0x11a25c[_0xf8c3('0x7')],_0x11a25c[_0xf8c3('0x41')]));channels[_0x11a25c[_0xf8c3('0x7')]]['sipcallid']=_0x11a25c['value'];}}}catch(_0x2ee2f1){utils[_0xf8c3('0x1c')](util[_0xf8c3('0x14')](_0xf8c3('0x3e'),_0x11a25c[_0xf8c3('0x7')]),_0x2ee2f1);}};exports[_0xf8c3('0x58')]=function(_0x31b036){try{if(!_['isNil'](channels[_0x31b036[_0xf8c3('0x7')]])){utils[_0xf8c3('0x13')](util[_0xf8c3('0x14')]('[%s][calls][newexten]',_0x31b036[_0xf8c3('0x7')]),_0x31b036);utils[_0xf8c3('0x5')](util[_0xf8c3('0x14')](_0xf8c3('0x59'),_0x31b036['uniqueid'],_0x31b036[_0xf8c3('0x5a')],_0x31b036['appdata']));if(_0x31b036[_0xf8c3('0x5a')][_0xf8c3('0x5b')]()==_0xf8c3('0x5c')&&_['startsWith'](_0x31b036[_0xf8c3('0x5d')][_0xf8c3('0x5b')](),_0xf8c3('0x5e'))){var _0x2e0782=_0x31b036[_0xf8c3('0x5d')][_0xf8c3('0x5f')]('=');var _0x43d922=_0x2e0782[0x0][_0xf8c3('0x60')](_0x2e0782[0x0]['lastIndexOf']('(')+0x1,_0x2e0782[0x0][_0xf8c3('0x61')](')'));var _0x408a2c=_0x2e0782[0x1];channels[_0x31b036[_0xf8c3('0x7')]][_0x43d922]=_0x408a2c;}if(!_['includes']([_0xf8c3('0x25'),_0xf8c3('0x62'),_0xf8c3('0x63'),_0xf8c3('0x5c'),_0xf8c3('0x64')],_0x31b036[_0xf8c3('0x5a')]['toLowerCase']())){channels[_0x31b036[_0xf8c3('0x7')]][_0xf8c3('0x4c')]=_0x31b036['application'];channels[_0x31b036[_0xf8c3('0x7')]][_0xf8c3('0x4d')]=_0x31b036[_0xf8c3('0x5d')];}}}catch(_0xef72ea){utils[_0xf8c3('0x1c')](util[_0xf8c3('0x14')](_0xf8c3('0x65'),_0x31b036[_0xf8c3('0x7')]),_0xef72ea);}};