Built motion from commit (unavailable).|2.5.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 _0x6755=['varset','value','source','variable','[%s][calls][varset]\x20variable:xmd-phone\x20value:%s','destination','\x22\x20<','xmd-callerid-preview','xmd-callerid','xmd-queue','xmcs-queue','[%s][calls][varset]\x20variable:%s\x20value:%s','lastapplication','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','routeid','sipcallid','[%s][calls][varset]\x20variable:sipcallid\x20value:%s','[%s][calls][varset]','[%s][calls][newexten]\x20application:%s\x20appdata:%s','application','appdata','toLowerCase','set','startsWith','substring','lastIndexOf','includes','noop','execif','gotoif','lodash','util','NO\x20ANSWER','ANSWERED','BUSY','FAILED','info','format','[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','uniqueid','channel','interface','calleridnum','connectedlinenum','lastevent','accountcode','getUserByInternal','UserId','CreateVoiceCallReport','request','newchannel','debug','[%s][calls][newchannel]','linkedid','OutgoingSpoolFailed','[%s][calls][newchannel]\x20context:%s\x20exten:%s','exten','now','DOCUMENTATION','error','newstate','isNil','channelstate','[%s][calls][newstate]\x20context:%s\x20channel:%s','context','systemanswertime','transfer','destinationchannel','answertime','toNumber','hangup','[%s][calls][hangup]','callerid','calleridname','[%s][calls][hangup]\x20callerid:%s\x20reason:%s','cause-txt','endtime','duration','diffTime','starttime','attendedtransfer','localtwolinkedid','transfereechannel','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','origtransfereruniqueid','secondtransfererchannel','userfield','_attended','origtransfererchannel','[%s][calls][attendedtransfer]','musiconholdstart','[%s][calls][musiconholdstart]','musiconholdstartAt','musiconholdstop','[%s][calls][musiconholdstop]','mohtime','[%s][calls][musiconholdstop]\x20mohtime:%s'];(function(_0x42cae2,_0x284ef8){var _0x5f256f=function(_0x41abc8){while(--_0x41abc8){_0x42cae2['push'](_0x42cae2['shift']());}};_0x5f256f(++_0x284ef8);}(_0x6755,0xf8));var _0x5675=function(_0xea66d3,_0x4a968f){_0xea66d3=_0xea66d3-0x0;var _0x59202c=_0x6755[_0xea66d3];return _0x59202c;};'use strict';var _=require(_0x5675('0x0'));var util=require(_0x5675('0x1'));var utils=require('./utils');var dispositions=[_0x5675('0x2'),'FAILED','FAILED',_0x5675('0x2'),'NO\x20ANSWER',_0x5675('0x2'),_0x5675('0x3'),_0x5675('0x4'),'FAILED',_0x5675('0x5'),'FAILED'];var channels={};function writeDB(_0x509be1){utils[_0x5675('0x6')](util[_0x5675('0x7')](_0x5675('0x8'),_0x509be1[_0x5675('0x9')],_0x509be1[_0x5675('0xa')],_0x509be1['queue'],_0x509be1['membername'],_0x509be1[_0x5675('0xb')],_0x509be1[_0x5675('0xc')],_0x509be1[_0x5675('0xd')],_0x509be1[_0x5675('0xe')]));if(_0x509be1[_0x5675('0xf')]){utils[_0x5675('0x10')](_0x509be1['accountcode'])['then'](function(_0x595fe0){if(_0x595fe0){_0x509be1[_0x5675('0x11')]=_0x595fe0['id'];}utils['request'](_0x5675('0x12'),_0x509be1);});}else{utils[_0x5675('0x13')]('CreateVoiceCallReport',_0x509be1);}if(channels[_0x509be1[_0x5675('0x9')]]){delete channels[_0x509be1[_0x5675('0x9')]];}}exports[_0x5675('0x14')]=function(_0xf5405f){try{utils[_0x5675('0x15')](util[_0x5675('0x7')](_0x5675('0x16'),_0xf5405f['uniqueid']),_0xf5405f);if(_0xf5405f[_0x5675('0x9')]==_0xf5405f[_0x5675('0x17')]&&_0xf5405f['channel']!=_0x5675('0x18')){utils['info'](util['format'](_0x5675('0x19'),_0xf5405f[_0x5675('0x9')],_0xf5405f['context'],_0xf5405f[_0x5675('0x1a')]));channels[_0xf5405f[_0x5675('0x9')]]={'uniqueid':_0xf5405f['uniqueid'],'accountcode':_0xf5405f[_0x5675('0xf')],'source':_0xf5405f[_0x5675('0xc')],'destination':_0xf5405f[_0x5675('0x1a')],'destinationcontext':_0xf5405f['context'],'channel':_0xf5405f[_0x5675('0xa')],'starttime':utils[_0x5675('0x1b')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':_0x5675('0x2'),'amaflags':_0x5675('0x1c')};}}catch(_0x3e1bfc){utils[_0x5675('0x1d')](util[_0x5675('0x7')](_0x5675('0x16'),_0xf5405f[_0x5675('0x9')]),_0x3e1bfc);}};exports[_0x5675('0x1e')]=function(_0x30f53a){try{utils[_0x5675('0x15')](util[_0x5675('0x7')]('[%s][calls][newstate]',_0x30f53a[_0x5675('0x9')]),_0x30f53a);if(!_[_0x5675('0x1f')](channels[_0x30f53a[_0x5675('0x9')]])&&_0x30f53a[_0x5675('0x20')]==0x6){utils[_0x5675('0x6')](util['format'](_0x5675('0x21'),_0x30f53a[_0x5675('0x9')],_0x30f53a[_0x5675('0x22')],_0x30f53a['channel']));if(_['isNil'](channels[_0x30f53a[_0x5675('0x9')]][_0x5675('0x23')])){channels[_0x30f53a[_0x5675('0x9')]][_0x5675('0x23')]=utils[_0x5675('0x1b')]();}}else if(!_[_0x5675('0x1f')](channels[_0x30f53a[_0x5675('0x17')]])&&_0x30f53a[_0x5675('0x20')]==0x6&&_0x30f53a['context']!=_0x5675('0x24')){utils['info'](util[_0x5675('0x7')]('[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s',_0x30f53a[_0x5675('0x9')],_0x30f53a[_0x5675('0x17')],_0x30f53a['context'],_0x30f53a['channel']));channels[_0x30f53a['linkedid']][_0x5675('0xf')]=_0x30f53a[_0x5675('0xf')];channels[_0x30f53a['linkedid']][_0x5675('0x25')]=_0x30f53a['channel'];if(_[_0x5675('0x1f')](channels[_0x30f53a[_0x5675('0x17')]][_0x5675('0x26')])){channels[_0x30f53a[_0x5675('0x17')]][_0x5675('0x26')]=utils[_0x5675('0x1b')]();}channels[_0x30f53a['linkedid']]['disposition']=dispositions[_[_0x5675('0x27')](_0x30f53a[_0x5675('0x20')])]||_0x5675('0x3');}}catch(_0x1b0c5c){utils[_0x5675('0x1d')](util['format']('[%s][calls][newstate]',_0x30f53a[_0x5675('0x9')]),_0x1b0c5c);}};exports[_0x5675('0x28')]=function(_0x4c8b73){try{if(!_[_0x5675('0x1f')](channels[_0x4c8b73[_0x5675('0x9')]])){utils['debug'](util[_0x5675('0x7')](_0x5675('0x29'),_0x4c8b73[_0x5675('0x9')]),_0x4c8b73);if(_[_0x5675('0x1f')](channels[_0x4c8b73[_0x5675('0x9')]][_0x5675('0x2a')])){channels[_0x4c8b73[_0x5675('0x9')]][_0x5675('0x2a')]=_0x4c8b73[_0x5675('0x2b')]+'\x20<'+_0x4c8b73[_0x5675('0xc')]+'>';}utils[_0x5675('0x6')](util['format'](_0x5675('0x2c'),_0x4c8b73['uniqueid'],channels[_0x4c8b73[_0x5675('0x9')]][_0x5675('0x2a')],_0x4c8b73[_0x5675('0x2d')]));channels[_0x4c8b73[_0x5675('0x9')]][_0x5675('0x2e')]=utils['now']();channels[_0x4c8b73['uniqueid']][_0x5675('0x2f')]=utils[_0x5675('0x30')](channels[_0x4c8b73[_0x5675('0x9')]]['endtime'],channels[_0x4c8b73[_0x5675('0x9')]][_0x5675('0x31')]);channels[_0x4c8b73['uniqueid']]['billableseconds']=channels[_0x4c8b73[_0x5675('0x9')]]['answertime']?utils[_0x5675('0x30')](channels[_0x4c8b73[_0x5675('0x9')]]['endtime'],channels[_0x4c8b73[_0x5675('0x9')]]['answertime']):0x0;writeDB(channels[_0x4c8b73[_0x5675('0x9')]]);}}catch(_0x1a59bc){utils['error'](util[_0x5675('0x7')]('[%s][calls][hangup]',_0x4c8b73[_0x5675('0x9')]),_0x1a59bc);}};exports[_0x5675('0x32')]=function(_0x210dcf){try{if(!_['isNil'](channels[_0x210dcf[_0x5675('0x33')]])){utils[_0x5675('0x15')](util[_0x5675('0x7')]('[%s][calls][attendedtransfer]',_0x210dcf['origtransfereruniqueid']),_0x210dcf);if(channels[_0x210dcf['localtwolinkedid']][_0x5675('0xa')]==_0x210dcf[_0x5675('0x34')]){utils[_0x5675('0x6')](util[_0x5675('0x7')](_0x5675('0x35'),_0x210dcf[_0x5675('0x36')],_0x210dcf['localtwolinkedid'],_0x210dcf[_0x5675('0x37')]));channels[_0x210dcf[_0x5675('0x33')]][_0x5675('0x25')]=_0x210dcf[_0x5675('0x37')];channels[_0x210dcf[_0x5675('0x33')]][_0x5675('0x38')]=_0x5675('0x39');}else if(channels[_0x210dcf[_0x5675('0x33')]][_0x5675('0xa')]=_0x210dcf['transfertargetchannel']){utils[_0x5675('0x6')](util[_0x5675('0x7')](_0x5675('0x35'),_0x210dcf[_0x5675('0x36')],_0x210dcf[_0x5675('0x33')],_0x210dcf[_0x5675('0x3a')]));channels[_0x210dcf[_0x5675('0x33')]]['destinationchannel']=_0x210dcf['origtransfererchannel'];channels[_0x210dcf[_0x5675('0x33')]]['userfield']=_0x5675('0x39');}}}catch(_0x257bb5){utils[_0x5675('0x1d')](util[_0x5675('0x7')](_0x5675('0x3b'),_0x210dcf[_0x5675('0x36')]),_0x257bb5);}};exports[_0x5675('0x3c')]=function(_0x5893ee){try{if(!_['isNil'](channels[_0x5893ee['uniqueid']])){utils[_0x5675('0x15')](util['format'](_0x5675('0x3d'),_0x5893ee[_0x5675('0x9')]),_0x5893ee);channels[_0x5893ee[_0x5675('0x9')]][_0x5675('0x3e')]=utils[_0x5675('0x1b')]();utils['info'](util[_0x5675('0x7')]('[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s',_0x5893ee[_0x5675('0x9')],channels[_0x5893ee[_0x5675('0x9')]][_0x5675('0x3e')]));}}catch(_0x288614){utils[_0x5675('0x1d')](util[_0x5675('0x7')](_0x5675('0x3d'),_0x5893ee[_0x5675('0x9')]),_0x288614);}};exports[_0x5675('0x3f')]=function(_0x527a71){try{if(!_[_0x5675('0x1f')](channels[_0x527a71[_0x5675('0x9')]])){utils['debug'](util[_0x5675('0x7')](_0x5675('0x40'),_0x527a71[_0x5675('0x9')]),_0x527a71);if(!_['isNil'](channels[_0x527a71[_0x5675('0x9')]][_0x5675('0x3e')])){channels[_0x527a71[_0x5675('0x9')]][_0x5675('0x41')]+=utils[_0x5675('0x30')](utils[_0x5675('0x1b')](),channels[_0x527a71[_0x5675('0x9')]]['musiconholdstartAt']);utils['info'](util[_0x5675('0x7')](_0x5675('0x42'),_0x527a71[_0x5675('0x9')],channels[_0x527a71[_0x5675('0x9')]][_0x5675('0x41')]));delete channels[_0x527a71[_0x5675('0x9')]][_0x5675('0x3e')];}}}catch(_0x33ed7b){utils[_0x5675('0x1d')](util[_0x5675('0x7')](_0x5675('0x40'),_0x527a71[_0x5675('0x9')]),_0x33ed7b);}};exports[_0x5675('0x43')]=function(_0x894b4d){try{if(!_[_0x5675('0x1f')](channels[_0x894b4d[_0x5675('0x9')]])){utils[_0x5675('0x15')](util[_0x5675('0x7')]('[%s][calls][varset]',_0x894b4d['uniqueid']),_0x894b4d);if(!_[_0x5675('0x1f')](_0x894b4d['variable']['xmd-originatecalleridnum'])){utils[_0x5675('0x6')](util[_0x5675('0x7')]('[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s',_0x894b4d[_0x5675('0x9')],_0x894b4d[_0x5675('0x44')]));channels[_0x894b4d['uniqueid']][_0x5675('0x45')]=_0x894b4d[_0x5675('0x44')];}if(!_[_0x5675('0x1f')](_0x894b4d[_0x5675('0x46')]['xmd-phone'])){utils[_0x5675('0x6')](util[_0x5675('0x7')](_0x5675('0x47'),_0x894b4d[_0x5675('0x9')],_0x894b4d[_0x5675('0x44')]));channels[_0x894b4d[_0x5675('0x9')]][_0x5675('0x48')]=_0x894b4d[_0x5675('0x44')];channels[_0x894b4d[_0x5675('0x9')]]['callerid']='\x22'+_0x894b4d[_0x5675('0x44')]+_0x5675('0x49')+_0x894b4d[_0x5675('0x44')]+'>';}if(!_[_0x5675('0x1f')](_0x894b4d['variable'][_0x5675('0x4a')])||!_[_0x5675('0x1f')](_0x894b4d[_0x5675('0x46')][_0x5675('0x4b')])){utils['info'](util[_0x5675('0x7')]('[%s][calls][varset]\x20variable:%s\x20value:%s',_0x894b4d[_0x5675('0x9')],!_[_0x5675('0x1f')](_0x894b4d[_0x5675('0x46')][_0x5675('0x4a')])?_0x5675('0x4a'):_0x5675('0x4b'),_0x894b4d['value']));channels[_0x894b4d[_0x5675('0x9')]][_0x5675('0x2a')]=_0x894b4d[_0x5675('0x44')];}if(!_['isNil'](_0x894b4d[_0x5675('0x46')][_0x5675('0x4c')])||!_[_0x5675('0x1f')](_0x894b4d[_0x5675('0x46')][_0x5675('0x4d')])){utils[_0x5675('0x6')](util[_0x5675('0x7')](_0x5675('0x4e'),_0x894b4d[_0x5675('0x9')],!_[_0x5675('0x1f')](_0x894b4d[_0x5675('0x46')][_0x5675('0x4c')])?'xmd-queue':'xmcs-queue',_0x894b4d[_0x5675('0x44')]));channels[_0x894b4d['uniqueid']][_0x5675('0x4f')]='Queue';channels[_0x894b4d['uniqueid']][_0x5675('0x50')]=_0x894b4d[_0x5675('0x44')];channels[_0x894b4d[_0x5675('0x9')]][_0x5675('0x51')]=!![];}if(!_[_0x5675('0x1f')](_0x894b4d[_0x5675('0x46')][_0x5675('0x52')])){utils[_0x5675('0x6')](util[_0x5675('0x7')](_0x5675('0x53'),_0x894b4d[_0x5675('0x9')],_0x894b4d[_0x5675('0x44')]));channels[_0x894b4d['uniqueid']][_0x5675('0x54')]=_0x894b4d[_0x5675('0x44')];}if(!_[_0x5675('0x1f')](_0x894b4d[_0x5675('0x46')]['xmd-cdrtype'])){utils[_0x5675('0x6')](util['format'](_0x5675('0x55'),_0x894b4d[_0x5675('0x9')],_0x894b4d['value']));channels[_0x894b4d['uniqueid']][_0x5675('0x56')]=_0x894b4d[_0x5675('0x44')];}if(!_['isNil'](_0x894b4d['variable'][_0x5675('0x57')])){utils[_0x5675('0x6')](util[_0x5675('0x7')](_0x5675('0x58'),_0x894b4d['uniqueid'],_0x894b4d[_0x5675('0x44')]));channels[_0x894b4d[_0x5675('0x9')]][_0x5675('0x59')]=_0x894b4d['value'];}if(!_[_0x5675('0x1f')](_0x894b4d[_0x5675('0x46')][_0x5675('0x5a')])){utils[_0x5675('0x6')](util[_0x5675('0x7')](_0x5675('0x5b'),_0x894b4d[_0x5675('0x9')],_0x894b4d['value']));channels[_0x894b4d[_0x5675('0x9')]][_0x5675('0x5a')]=_0x894b4d[_0x5675('0x44')];}}}catch(_0x3a36c1){utils['error'](util['format'](_0x5675('0x5c'),_0x894b4d[_0x5675('0x9')]),_0x3a36c1);}};exports['newexten']=function(_0x794b70){try{if(!_[_0x5675('0x1f')](channels[_0x794b70['uniqueid']])){utils[_0x5675('0x15')](util['format']('[%s][calls][newexten]',_0x794b70['uniqueid']),_0x794b70);utils[_0x5675('0x6')](util[_0x5675('0x7')](_0x5675('0x5d'),_0x794b70[_0x5675('0x9')],_0x794b70[_0x5675('0x5e')],_0x794b70[_0x5675('0x5f')]));if(_0x794b70[_0x5675('0x5e')][_0x5675('0x60')]()==_0x5675('0x61')&&_[_0x5675('0x62')](_0x794b70['appdata'][_0x5675('0x60')](),'cdr')){var _0xed2e6e=_0x794b70[_0x5675('0x5f')]['split']('=');var _0x4b00ca=_0xed2e6e[0x0][_0x5675('0x63')](_0xed2e6e[0x0][_0x5675('0x64')]('(')+0x1,_0xed2e6e[0x0][_0x5675('0x64')](')'));var _0x24484e=_0xed2e6e[0x1];channels[_0x794b70['uniqueid']][_0x4b00ca]=_0x24484e;}if(!_[_0x5675('0x65')]([_0x5675('0x28'),_0x5675('0x66'),_0x5675('0x67'),_0x5675('0x61'),_0x5675('0x68')],_0x794b70[_0x5675('0x5e')]['toLowerCase']())){channels[_0x794b70[_0x5675('0x9')]]['lastapplication']=_0x794b70[_0x5675('0x5e')];channels[_0x794b70[_0x5675('0x9')]][_0x5675('0x50')]=_0x794b70[_0x5675('0x5f')];}}}catch(_0x462e2e){utils[_0x5675('0x1d')](util[_0x5675('0x7')]('[%s][calls][newexten]',_0x794b70[_0x5675('0x9')]),_0x462e2e);}};