5a5f709d588369b3ac19994bd444a7d0219860db
[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 _0x2b0a=['[%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','sipcallid','newexten','application','appdata','toLowerCase','cdr','split','substring','lastIndexOf','includes','execif','set','gotoif','[%s][calls][newexten]','lodash','util','./transfers.controller','NO\x20ANSWER','ANSWERED','BUSY','FAILED','uniqueid','blinds','transfereeuniqueid','info','[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','channel','membername','interface','connectedlinenum','accountcode','getUserByInternal','then','UserId','request','CreateVoiceCallReport','newchannel','debug','[%s][calls][newchannel]','linkedid','OutgoingSpoolFailed','[%s][calls][newchannel]\x20context:%s\x20exten:%s','context','exten','calleridnum','now','DOCUMENTATION','error','format','newstate','isNil','[%s][calls][newstate]\x20context:%s\x20channel:%s','systemanswertime','transfer','destinationchannel','answertime','disposition','channelstate','[%s][calls][newstate]','hangup','[%s][calls][hangup]','callerid','calleridname','cause-txt','endtime','duration','diffTime','starttime','billableseconds','attendedtransfer','[%s][calls][attendedtransfer]','localtwolinkedid','transfereechannel','origtransfereruniqueid','secondtransfererchannel','userfield','_attended','transfertargetchannel','musiconholdstart','[%s][calls][musiconholdstart]','[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s','musiconholdstop','[%s][calls][musiconholdstop]','mohtime','musiconholdstartAt','[%s][calls][musiconholdstop]\x20mohtime:%s','varset','variable','xmd-originatecalleridnum','[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s','value','xmd-phone','destination','\x22\x20<','xmd-callerid-preview','xmd-callerid'];(function(_0x484c03,_0x13c1d2){var _0x294127=function(_0x45a834){while(--_0x45a834){_0x484c03['push'](_0x484c03['shift']());}};_0x294127(++_0x13c1d2);}(_0x2b0a,0x84));var _0xa2b0=function(_0x34339b,_0x462150){_0x34339b=_0x34339b-0x0;var _0x1ebf9c=_0x2b0a[_0x34339b];return _0x1ebf9c;};'use strict';var _=require(_0xa2b0('0x0'));var util=require(_0xa2b0('0x1'));var utils=require('./utils');var transfers=require(_0xa2b0('0x2'));var dispositions=['NO\x20ANSWER','FAILED','FAILED','NO\x20ANSWER',_0xa2b0('0x3'),_0xa2b0('0x3'),_0xa2b0('0x4'),_0xa2b0('0x5'),_0xa2b0('0x6'),_0xa2b0('0x6'),'FAILED'];var channels={};function writeDB(_0x5dd8e5){var _0x2e1c2a;if(transfers['blinds'][_0x5dd8e5['uniqueid']]){_0x2e1c2a=_0x5dd8e5[_0xa2b0('0x7')];_0x5dd8e5[_0xa2b0('0x7')]=transfers[_0xa2b0('0x8')][_0x5dd8e5[_0xa2b0('0x7')]][_0xa2b0('0x9')];}utils[_0xa2b0('0xa')](util['format'](_0xa2b0('0xb'),_0x5dd8e5[_0xa2b0('0x7')],_0x5dd8e5[_0xa2b0('0xc')],_0x5dd8e5['queue'],_0x5dd8e5[_0xa2b0('0xd')],_0x5dd8e5[_0xa2b0('0xe')],_0x5dd8e5['calleridnum'],_0x5dd8e5[_0xa2b0('0xf')],_0x5dd8e5['lastevent']));if(_0x5dd8e5[_0xa2b0('0x10')]){utils[_0xa2b0('0x11')](_0x5dd8e5[_0xa2b0('0x10')])[_0xa2b0('0x12')](function(_0x783375){if(_0x783375){_0x5dd8e5[_0xa2b0('0x13')]=_0x783375['id'];}utils[_0xa2b0('0x14')](_0xa2b0('0x15'),_0x5dd8e5);});}else{utils[_0xa2b0('0x14')](_0xa2b0('0x15'),_0x5dd8e5);}if(channels[_0x5dd8e5[_0xa2b0('0x7')]]){delete channels[_0x5dd8e5[_0xa2b0('0x7')]];}else if(_0x2e1c2a&&channels[_0x2e1c2a]){if(!transfers['blinds'][_0x2e1c2a]['recording'])delete transfers['blinds'][_0x2e1c2a];delete channels[_0x2e1c2a];}}exports[_0xa2b0('0x16')]=function(_0x50632c){try{utils[_0xa2b0('0x17')](util['format'](_0xa2b0('0x18'),_0x50632c[_0xa2b0('0x7')]),_0x50632c);if(_0x50632c[_0xa2b0('0x7')]==_0x50632c[_0xa2b0('0x19')]&&_0x50632c[_0xa2b0('0xc')]!=_0xa2b0('0x1a')){utils[_0xa2b0('0xa')](util['format'](_0xa2b0('0x1b'),_0x50632c['uniqueid'],_0x50632c[_0xa2b0('0x1c')],_0x50632c[_0xa2b0('0x1d')]));channels[_0x50632c[_0xa2b0('0x7')]]={'uniqueid':_0x50632c[_0xa2b0('0x7')],'accountcode':_0x50632c[_0xa2b0('0x10')],'source':_0x50632c[_0xa2b0('0x1e')],'destination':_0x50632c['exten'],'destinationcontext':_0x50632c[_0xa2b0('0x1c')],'channel':_0x50632c[_0xa2b0('0xc')],'starttime':utils[_0xa2b0('0x1f')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':_0xa2b0('0x3'),'amaflags':_0xa2b0('0x20')};}}catch(_0x48238a){utils[_0xa2b0('0x21')](util[_0xa2b0('0x22')](_0xa2b0('0x18'),_0x50632c[_0xa2b0('0x7')]),_0x48238a);}};exports[_0xa2b0('0x23')]=function(_0x3904f7){try{utils[_0xa2b0('0x17')](util['format']('[%s][calls][newstate]',_0x3904f7['uniqueid']),_0x3904f7);if(!_[_0xa2b0('0x24')](channels[_0x3904f7[_0xa2b0('0x7')]])&&_0x3904f7['channelstate']==0x6){utils[_0xa2b0('0xa')](util[_0xa2b0('0x22')](_0xa2b0('0x25'),_0x3904f7[_0xa2b0('0x7')],_0x3904f7['context'],_0x3904f7[_0xa2b0('0xc')]));if(_[_0xa2b0('0x24')](channels[_0x3904f7[_0xa2b0('0x7')]][_0xa2b0('0x26')])){channels[_0x3904f7[_0xa2b0('0x7')]][_0xa2b0('0x26')]=utils[_0xa2b0('0x1f')]();}}else if(!_[_0xa2b0('0x24')](channels[_0x3904f7['linkedid']])&&_0x3904f7['channelstate']==0x6&&_0x3904f7[_0xa2b0('0x1c')]!=_0xa2b0('0x27')){utils['info'](util[_0xa2b0('0x22')]('[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s',_0x3904f7[_0xa2b0('0x7')],_0x3904f7[_0xa2b0('0x19')],_0x3904f7[_0xa2b0('0x1c')],_0x3904f7[_0xa2b0('0xc')]));channels[_0x3904f7[_0xa2b0('0x19')]][_0xa2b0('0x10')]=_0x3904f7['accountcode'];channels[_0x3904f7[_0xa2b0('0x19')]][_0xa2b0('0x28')]=_0x3904f7[_0xa2b0('0xc')];if(_['isNil'](channels[_0x3904f7[_0xa2b0('0x19')]][_0xa2b0('0x29')])){channels[_0x3904f7[_0xa2b0('0x19')]][_0xa2b0('0x29')]=utils[_0xa2b0('0x1f')]();}channels[_0x3904f7[_0xa2b0('0x19')]][_0xa2b0('0x2a')]=dispositions[_['toNumber'](_0x3904f7[_0xa2b0('0x2b')])]||_0xa2b0('0x4');}}catch(_0x10b865){utils[_0xa2b0('0x21')](util[_0xa2b0('0x22')](_0xa2b0('0x2c'),_0x3904f7[_0xa2b0('0x7')]),_0x10b865);}};exports[_0xa2b0('0x2d')]=function(_0x3cba8c){try{if(!_[_0xa2b0('0x24')](channels[_0x3cba8c[_0xa2b0('0x7')]])){utils[_0xa2b0('0x17')](util['format'](_0xa2b0('0x2e'),_0x3cba8c[_0xa2b0('0x7')]),_0x3cba8c);if(_[_0xa2b0('0x24')](channels[_0x3cba8c['uniqueid']][_0xa2b0('0x2f')])){channels[_0x3cba8c[_0xa2b0('0x7')]]['callerid']=_0x3cba8c[_0xa2b0('0x30')]+'\x20<'+_0x3cba8c[_0xa2b0('0x1e')]+'>';}utils[_0xa2b0('0xa')](util[_0xa2b0('0x22')]('[%s][calls][hangup]\x20callerid:%s\x20reason:%s',_0x3cba8c[_0xa2b0('0x7')],channels[_0x3cba8c['uniqueid']]['callerid'],_0x3cba8c[_0xa2b0('0x31')]));channels[_0x3cba8c[_0xa2b0('0x7')]][_0xa2b0('0x32')]=utils[_0xa2b0('0x1f')]();channels[_0x3cba8c[_0xa2b0('0x7')]][_0xa2b0('0x33')]=utils[_0xa2b0('0x34')](channels[_0x3cba8c[_0xa2b0('0x7')]][_0xa2b0('0x32')],channels[_0x3cba8c[_0xa2b0('0x7')]][_0xa2b0('0x35')]);channels[_0x3cba8c[_0xa2b0('0x7')]][_0xa2b0('0x36')]=channels[_0x3cba8c[_0xa2b0('0x7')]][_0xa2b0('0x29')]?utils[_0xa2b0('0x34')](channels[_0x3cba8c[_0xa2b0('0x7')]][_0xa2b0('0x32')],channels[_0x3cba8c[_0xa2b0('0x7')]][_0xa2b0('0x29')]):0x0;writeDB(channels[_0x3cba8c[_0xa2b0('0x7')]]);}}catch(_0xcde65d){utils[_0xa2b0('0x21')](util[_0xa2b0('0x22')](_0xa2b0('0x2e'),_0x3cba8c[_0xa2b0('0x7')]),_0xcde65d);}};exports[_0xa2b0('0x37')]=function(_0x419b36){try{if(!_[_0xa2b0('0x24')](channels[_0x419b36['localtwolinkedid']])){utils[_0xa2b0('0x17')](util[_0xa2b0('0x22')](_0xa2b0('0x38'),_0x419b36['origtransfereruniqueid']),_0x419b36);if(channels[_0x419b36[_0xa2b0('0x39')]]['channel']==_0x419b36[_0xa2b0('0x3a')]){utils[_0xa2b0('0xa')](util[_0xa2b0('0x22')]('[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s',_0x419b36[_0xa2b0('0x3b')],_0x419b36['localtwolinkedid'],_0x419b36[_0xa2b0('0x3c')]));channels[_0x419b36[_0xa2b0('0x39')]]['destinationchannel']=_0x419b36[_0xa2b0('0x3c')];channels[_0x419b36[_0xa2b0('0x39')]][_0xa2b0('0x3d')]=_0xa2b0('0x3e');}else if(channels[_0x419b36[_0xa2b0('0x39')]][_0xa2b0('0xc')]=_0x419b36[_0xa2b0('0x3f')]){utils['info'](util[_0xa2b0('0x22')]('[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s',_0x419b36[_0xa2b0('0x3b')],_0x419b36[_0xa2b0('0x39')],_0x419b36['origtransfererchannel']));channels[_0x419b36[_0xa2b0('0x39')]][_0xa2b0('0x28')]=_0x419b36['origtransfererchannel'];channels[_0x419b36[_0xa2b0('0x39')]][_0xa2b0('0x3d')]='_attended';}}}catch(_0x2725b0){utils[_0xa2b0('0x21')](util[_0xa2b0('0x22')](_0xa2b0('0x38'),_0x419b36['origtransfereruniqueid']),_0x2725b0);}};exports[_0xa2b0('0x40')]=function(_0x407a75){try{if(!_[_0xa2b0('0x24')](channels[_0x407a75[_0xa2b0('0x7')]])){utils['debug'](util[_0xa2b0('0x22')](_0xa2b0('0x41'),_0x407a75['uniqueid']),_0x407a75);channels[_0x407a75[_0xa2b0('0x7')]]['musiconholdstartAt']=utils['now']();utils['info'](util[_0xa2b0('0x22')](_0xa2b0('0x42'),_0x407a75[_0xa2b0('0x7')],channels[_0x407a75[_0xa2b0('0x7')]]['musiconholdstartAt']));}}catch(_0x59f30e){utils[_0xa2b0('0x21')](util[_0xa2b0('0x22')](_0xa2b0('0x41'),_0x407a75[_0xa2b0('0x7')]),_0x59f30e);}};exports[_0xa2b0('0x43')]=function(_0x18d65d){try{if(!_[_0xa2b0('0x24')](channels[_0x18d65d[_0xa2b0('0x7')]])){utils[_0xa2b0('0x17')](util[_0xa2b0('0x22')](_0xa2b0('0x44'),_0x18d65d['uniqueid']),_0x18d65d);if(!_[_0xa2b0('0x24')](channels[_0x18d65d['uniqueid']]['musiconholdstartAt'])){channels[_0x18d65d[_0xa2b0('0x7')]][_0xa2b0('0x45')]+=utils[_0xa2b0('0x34')](utils[_0xa2b0('0x1f')](),channels[_0x18d65d[_0xa2b0('0x7')]][_0xa2b0('0x46')]);utils[_0xa2b0('0xa')](util['format'](_0xa2b0('0x47'),_0x18d65d[_0xa2b0('0x7')],channels[_0x18d65d[_0xa2b0('0x7')]][_0xa2b0('0x45')]));delete channels[_0x18d65d['uniqueid']]['musiconholdstartAt'];}}}catch(_0x43ebbc){utils[_0xa2b0('0x21')](util[_0xa2b0('0x22')](_0xa2b0('0x44'),_0x18d65d[_0xa2b0('0x7')]),_0x43ebbc);}};exports[_0xa2b0('0x48')]=function(_0x33424e){try{if(!_[_0xa2b0('0x24')](channels[_0x33424e[_0xa2b0('0x7')]])){utils[_0xa2b0('0x17')](util[_0xa2b0('0x22')]('[%s][calls][varset]',_0x33424e['uniqueid']),_0x33424e);if(!_[_0xa2b0('0x24')](_0x33424e[_0xa2b0('0x49')][_0xa2b0('0x4a')])){utils[_0xa2b0('0xa')](util[_0xa2b0('0x22')](_0xa2b0('0x4b'),_0x33424e[_0xa2b0('0x7')],_0x33424e[_0xa2b0('0x4c')]));channels[_0x33424e[_0xa2b0('0x7')]]['source']=_0x33424e[_0xa2b0('0x4c')];}if(!_[_0xa2b0('0x24')](_0x33424e['variable'][_0xa2b0('0x4d')])){utils[_0xa2b0('0xa')](util[_0xa2b0('0x22')]('[%s][calls][varset]\x20variable:xmd-phone\x20value:%s',_0x33424e[_0xa2b0('0x7')],_0x33424e[_0xa2b0('0x4c')]));channels[_0x33424e['uniqueid']][_0xa2b0('0x4e')]=_0x33424e[_0xa2b0('0x4c')];channels[_0x33424e[_0xa2b0('0x7')]][_0xa2b0('0x2f')]='\x22'+_0x33424e['value']+_0xa2b0('0x4f')+_0x33424e[_0xa2b0('0x4c')]+'>';}if(!_[_0xa2b0('0x24')](_0x33424e[_0xa2b0('0x49')][_0xa2b0('0x50')])||!_[_0xa2b0('0x24')](_0x33424e[_0xa2b0('0x49')][_0xa2b0('0x51')])){utils[_0xa2b0('0xa')](util['format'](_0xa2b0('0x52'),_0x33424e['uniqueid'],!_[_0xa2b0('0x24')](_0x33424e[_0xa2b0('0x49')]['xmd-callerid-preview'])?_0xa2b0('0x50'):_0xa2b0('0x51'),_0x33424e[_0xa2b0('0x4c')]));channels[_0x33424e[_0xa2b0('0x7')]][_0xa2b0('0x2f')]=_0x33424e['value'];}if(!_[_0xa2b0('0x24')](_0x33424e[_0xa2b0('0x49')][_0xa2b0('0x53')])||!_[_0xa2b0('0x24')](_0x33424e[_0xa2b0('0x49')]['xmcs-queue'])){utils[_0xa2b0('0xa')](util[_0xa2b0('0x22')](_0xa2b0('0x52'),_0x33424e[_0xa2b0('0x7')],!_[_0xa2b0('0x24')](_0x33424e[_0xa2b0('0x49')][_0xa2b0('0x53')])?_0xa2b0('0x53'):_0xa2b0('0x54'),_0x33424e['value']));channels[_0x33424e[_0xa2b0('0x7')]][_0xa2b0('0x55')]='Queue';channels[_0x33424e['uniqueid']][_0xa2b0('0x56')]=_0x33424e['value'];channels[_0x33424e[_0xa2b0('0x7')]][_0xa2b0('0x57')]=!![];}if(!_[_0xa2b0('0x24')](_0x33424e[_0xa2b0('0x49')][_0xa2b0('0x58')])){utils[_0xa2b0('0xa')](util[_0xa2b0('0x22')](_0xa2b0('0x59'),_0x33424e[_0xa2b0('0x7')],_0x33424e[_0xa2b0('0x4c')]));channels[_0x33424e[_0xa2b0('0x7')]]['ContactId']=_0x33424e[_0xa2b0('0x4c')];}if(!_[_0xa2b0('0x24')](_0x33424e['variable'][_0xa2b0('0x5a')])){utils[_0xa2b0('0xa')](util[_0xa2b0('0x22')](_0xa2b0('0x5b'),_0x33424e[_0xa2b0('0x7')],_0x33424e['value']));channels[_0x33424e[_0xa2b0('0x7')]][_0xa2b0('0x5c')]=_0x33424e[_0xa2b0('0x4c')];}if(!_['isNil'](_0x33424e['variable']['outboundrouteid'])){utils[_0xa2b0('0xa')](util[_0xa2b0('0x22')]('[%s][calls][varset]\x20variable:outboundrouteid\x20value:%s',_0x33424e['uniqueid'],_0x33424e[_0xa2b0('0x4c')]));channels[_0x33424e[_0xa2b0('0x7')]]['routeid']=_0x33424e[_0xa2b0('0x4c')];}if(!_[_0xa2b0('0x24')](_0x33424e[_0xa2b0('0x49')][_0xa2b0('0x5d')])){utils['info'](util[_0xa2b0('0x22')]('[%s][calls][varset]\x20variable:sipcallid\x20value:%s',_0x33424e[_0xa2b0('0x7')],_0x33424e[_0xa2b0('0x4c')]));channels[_0x33424e[_0xa2b0('0x7')]][_0xa2b0('0x5d')]=_0x33424e['value'];}}}catch(_0x23fa1b){utils['error'](util['format']('[%s][calls][varset]',_0x33424e[_0xa2b0('0x7')]),_0x23fa1b);}};exports[_0xa2b0('0x5e')]=function(_0x385a40){try{if(!_[_0xa2b0('0x24')](channels[_0x385a40[_0xa2b0('0x7')]])){utils[_0xa2b0('0x17')](util[_0xa2b0('0x22')]('[%s][calls][newexten]',_0x385a40[_0xa2b0('0x7')]),_0x385a40);utils[_0xa2b0('0xa')](util[_0xa2b0('0x22')]('[%s][calls][newexten]\x20application:%s\x20appdata:%s',_0x385a40[_0xa2b0('0x7')],_0x385a40[_0xa2b0('0x5f')],_0x385a40[_0xa2b0('0x60')]));if(_0x385a40[_0xa2b0('0x5f')][_0xa2b0('0x61')]()=='set'&&_['startsWith'](_0x385a40[_0xa2b0('0x60')][_0xa2b0('0x61')](),_0xa2b0('0x62'))){var _0x49bd9e=_0x385a40[_0xa2b0('0x60')][_0xa2b0('0x63')]('=');var _0x38c4fe=_0x49bd9e[0x0][_0xa2b0('0x64')](_0x49bd9e[0x0][_0xa2b0('0x65')]('(')+0x1,_0x49bd9e[0x0][_0xa2b0('0x65')](')'));var _0xd1cf02=_0x49bd9e[0x1];channels[_0x385a40[_0xa2b0('0x7')]][_0x38c4fe]=_0xd1cf02;}if(!_[_0xa2b0('0x66')]([_0xa2b0('0x2d'),'noop',_0xa2b0('0x67'),_0xa2b0('0x68'),_0xa2b0('0x69')],_0x385a40[_0xa2b0('0x5f')][_0xa2b0('0x61')]())){channels[_0x385a40[_0xa2b0('0x7')]]['lastapplication']=_0x385a40[_0xa2b0('0x5f')];channels[_0x385a40[_0xa2b0('0x7')]][_0xa2b0('0x56')]=_0x385a40['appdata'];}}}catch(_0x593452){utils[_0xa2b0('0x21')](util['format'](_0xa2b0('0x6a'),_0x385a40[_0xa2b0('0x7')]),_0x593452);}};