e3aed363c833679978392c2be4d8d3f12fa1c270
[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 _0xa8e8=['xmd-cdrtype','outboundrouteid','routeid','sipcallid','newexten','application','toLowerCase','set','startsWith','appdata','split','substring','lastIndexOf','includes','noop','execif','gotoif','lodash','./utils','NO\x20ANSWER','FAILED','ANSWERED','BUSY','format','CALL|%s|%s|%s|%s|%s|%s|%s|%s','uniqueid','type','accountcode','source','destination','disposition','getUserByInternal','UserId','request','CreateVoiceCallReport','newchannel','channel','OutgoingSpoolFailed','calleridnum','exten','DOCUMENTATION','error','stack','isNil','channelstate','systemanswertime','now','linkedid','context','transfer','destinationchannel','answertime','toNumber','hangup','callerid','calleridname','endtime','duration','diffTime','billableseconds','attendedtransfer','localtwolinkedid','transfereechannel','secondtransfererchannel','userfield','_attended','musiconholdstart','musiconholdstop','musiconholdstartAt','mohtime','varset','variable','xmd-phone','value','xmd-callerid-preview','xmd-callerid','xmd-queue','lastapplication','lastdata','queue','xmd-contactid'];(function(_0x421725,_0x318a04){var _0x51b322=function(_0xe58018){while(--_0xe58018){_0x421725['push'](_0x421725['shift']());}};_0x51b322(++_0x318a04);}(_0xa8e8,0x104));var _0x8a8e=function(_0x1df79c,_0x5ad8fd){_0x1df79c=_0x1df79c-0x0;var _0x2f23e4=_0xa8e8[_0x1df79c];return _0x2f23e4;};'use strict';var _=require(_0x8a8e('0x0'));var util=require('util');var utils=require(_0x8a8e('0x1'));var dispositions=[_0x8a8e('0x2'),_0x8a8e('0x3'),'FAILED',_0x8a8e('0x2'),_0x8a8e('0x2'),_0x8a8e('0x2'),_0x8a8e('0x4'),_0x8a8e('0x5'),_0x8a8e('0x3'),'FAILED',_0x8a8e('0x3')];var channels={};function writeDB(_0x5baccb){utils['info'](util[_0x8a8e('0x6')](_0x8a8e('0x7'),_0x5baccb[_0x8a8e('0x8')],_0x5baccb['channel'],_0x5baccb[_0x8a8e('0x9')],_0x5baccb[_0x8a8e('0xa')],_0x5baccb[_0x8a8e('0xb')],_0x5baccb[_0x8a8e('0xc')],_0x5baccb['callerid'],_0x5baccb[_0x8a8e('0xd')]));if(_0x5baccb['accountcode']){utils[_0x8a8e('0xe')](_0x5baccb[_0x8a8e('0xa')])['then'](function(_0x4352c2){if(_0x4352c2){_0x5baccb[_0x8a8e('0xf')]=_0x4352c2['id'];}utils[_0x8a8e('0x10')](_0x8a8e('0x11'),_0x5baccb);});}else{utils[_0x8a8e('0x10')](_0x8a8e('0x11'),_0x5baccb);}if(channels[_0x5baccb[_0x8a8e('0x8')]]){delete channels[_0x5baccb['uniqueid']];}}exports[_0x8a8e('0x12')]=function(_0x3006d2){try{if(_0x3006d2[_0x8a8e('0x8')]==_0x3006d2['linkedid']&&_0x3006d2[_0x8a8e('0x13')]!=_0x8a8e('0x14')){channels[_0x3006d2[_0x8a8e('0x8')]]={'uniqueid':_0x3006d2['uniqueid'],'accountcode':_0x3006d2[_0x8a8e('0xa')],'source':_0x3006d2[_0x8a8e('0x15')],'destination':_0x3006d2[_0x8a8e('0x16')],'destinationcontext':_0x3006d2['context'],'channel':_0x3006d2[_0x8a8e('0x13')],'starttime':utils['now'](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':'NO\x20ANSWER','amaflags':_0x8a8e('0x17')};}}catch(_0x27c264){utils[_0x8a8e('0x18')](_0x27c264[_0x8a8e('0x19')]);}};exports['newstate']=function(_0x38783e){try{if(!_[_0x8a8e('0x1a')](channels[_0x38783e[_0x8a8e('0x8')]])&&_0x38783e[_0x8a8e('0x1b')]==0x6){if(_[_0x8a8e('0x1a')](channels[_0x38783e[_0x8a8e('0x8')]][_0x8a8e('0x1c')])){channels[_0x38783e[_0x8a8e('0x8')]][_0x8a8e('0x1c')]=utils[_0x8a8e('0x1d')]();}}else if(!_[_0x8a8e('0x1a')](channels[_0x38783e[_0x8a8e('0x1e')]])&&_0x38783e['channelstate']==0x6&&_0x38783e[_0x8a8e('0x1f')]!=_0x8a8e('0x20')){channels[_0x38783e[_0x8a8e('0x1e')]][_0x8a8e('0xa')]=_0x38783e['accountcode'];channels[_0x38783e[_0x8a8e('0x1e')]][_0x8a8e('0x21')]=_0x38783e['channel'];if(_[_0x8a8e('0x1a')](channels[_0x38783e['linkedid']][_0x8a8e('0x22')])){channels[_0x38783e[_0x8a8e('0x1e')]][_0x8a8e('0x22')]=utils[_0x8a8e('0x1d')]();}channels[_0x38783e['linkedid']][_0x8a8e('0xd')]=dispositions[_[_0x8a8e('0x23')](_0x38783e[_0x8a8e('0x1b')])]||_0x8a8e('0x4');}}catch(_0x4e048c){utils[_0x8a8e('0x18')](_0x4e048c[_0x8a8e('0x19')]);}};exports[_0x8a8e('0x24')]=function(_0x354b4c){try{if(!_[_0x8a8e('0x1a')](channels[_0x354b4c['uniqueid']])){if(_[_0x8a8e('0x1a')](channels[_0x354b4c[_0x8a8e('0x8')]][_0x8a8e('0x25')])){channels[_0x354b4c[_0x8a8e('0x8')]][_0x8a8e('0x25')]=_0x354b4c[_0x8a8e('0x26')]+'\x20<'+_0x354b4c[_0x8a8e('0x15')]+'>';}channels[_0x354b4c['uniqueid']][_0x8a8e('0x27')]=utils['now']();channels[_0x354b4c['uniqueid']][_0x8a8e('0x28')]=utils[_0x8a8e('0x29')](channels[_0x354b4c[_0x8a8e('0x8')]][_0x8a8e('0x27')],channels[_0x354b4c['uniqueid']]['starttime']);channels[_0x354b4c[_0x8a8e('0x8')]][_0x8a8e('0x2a')]=channels[_0x354b4c[_0x8a8e('0x8')]][_0x8a8e('0x22')]?utils[_0x8a8e('0x29')](channels[_0x354b4c[_0x8a8e('0x8')]][_0x8a8e('0x27')],channels[_0x354b4c[_0x8a8e('0x8')]]['answertime']):0x0;writeDB(channels[_0x354b4c[_0x8a8e('0x8')]]);}}catch(_0x28a971){utils['error'](_0x28a971[_0x8a8e('0x19')]);}};exports[_0x8a8e('0x2b')]=function(_0x284d59){try{if(!_['isNil'](channels[_0x284d59[_0x8a8e('0x2c')]])){if(channels[_0x284d59[_0x8a8e('0x2c')]][_0x8a8e('0x13')]==_0x284d59[_0x8a8e('0x2d')]){channels[_0x284d59['localtwolinkedid']][_0x8a8e('0x21')]=_0x284d59[_0x8a8e('0x2e')];channels[_0x284d59[_0x8a8e('0x2c')]][_0x8a8e('0x2f')]='_attended';}else if(channels[_0x284d59[_0x8a8e('0x2c')]][_0x8a8e('0x13')]=_0x284d59['transfertargetchannel']){channels[_0x284d59['localtwolinkedid']]['destinationchannel']=_0x284d59['origtransfererchannel'];channels[_0x284d59[_0x8a8e('0x2c')]][_0x8a8e('0x2f')]=_0x8a8e('0x30');}}}catch(_0x71c6e6){utils['error'](_0x71c6e6[_0x8a8e('0x19')]);}};exports[_0x8a8e('0x31')]=function(_0xb20c32){try{if(!_[_0x8a8e('0x1a')](channels[_0xb20c32['uniqueid']])){channels[_0xb20c32['uniqueid']]['musiconholdstartAt']=utils[_0x8a8e('0x1d')]();}}catch(_0x5e6bda){utils[_0x8a8e('0x18')](_0x5e6bda[_0x8a8e('0x19')]);}};exports[_0x8a8e('0x32')]=function(_0xa4a92b){try{if(!_[_0x8a8e('0x1a')](channels[_0xa4a92b[_0x8a8e('0x8')]])){if(!_[_0x8a8e('0x1a')](channels[_0xa4a92b[_0x8a8e('0x8')]][_0x8a8e('0x33')])){channels[_0xa4a92b[_0x8a8e('0x8')]][_0x8a8e('0x34')]+=utils[_0x8a8e('0x29')](utils['now'](),channels[_0xa4a92b['uniqueid']][_0x8a8e('0x33')]);delete channels[_0xa4a92b[_0x8a8e('0x8')]][_0x8a8e('0x33')];}}}catch(_0x50e961){utils['error'](_0x50e961[_0x8a8e('0x19')]);}};exports[_0x8a8e('0x35')]=function(_0xc5f6ef){try{if(!_[_0x8a8e('0x1a')](channels[_0xc5f6ef[_0x8a8e('0x8')]])){if(!_[_0x8a8e('0x1a')](_0xc5f6ef[_0x8a8e('0x36')]['xmd-originatecalleridnum'])){channels[_0xc5f6ef[_0x8a8e('0x8')]]['source']=_0xc5f6ef['value'];}if(!_[_0x8a8e('0x1a')](_0xc5f6ef[_0x8a8e('0x36')][_0x8a8e('0x37')])){channels[_0xc5f6ef[_0x8a8e('0x8')]][_0x8a8e('0xc')]=_0xc5f6ef[_0x8a8e('0x38')];channels[_0xc5f6ef[_0x8a8e('0x8')]][_0x8a8e('0x25')]='\x22'+_0xc5f6ef[_0x8a8e('0x38')]+'\x22\x20<'+_0xc5f6ef[_0x8a8e('0x38')]+'>';}if(!_[_0x8a8e('0x1a')](_0xc5f6ef[_0x8a8e('0x36')][_0x8a8e('0x39')])||!_[_0x8a8e('0x1a')](_0xc5f6ef[_0x8a8e('0x36')][_0x8a8e('0x3a')])){channels[_0xc5f6ef[_0x8a8e('0x8')]][_0x8a8e('0x25')]=_0xc5f6ef['value'];}if(!_[_0x8a8e('0x1a')](_0xc5f6ef[_0x8a8e('0x36')][_0x8a8e('0x3b')])||!_[_0x8a8e('0x1a')](_0xc5f6ef[_0x8a8e('0x36')]['xmcs-queue'])){channels[_0xc5f6ef[_0x8a8e('0x8')]][_0x8a8e('0x3c')]='Queue';channels[_0xc5f6ef['uniqueid']][_0x8a8e('0x3d')]=_0xc5f6ef[_0x8a8e('0x38')];channels[_0xc5f6ef['uniqueid']][_0x8a8e('0x3e')]=!![];}if(!_[_0x8a8e('0x1a')](_0xc5f6ef[_0x8a8e('0x36')][_0x8a8e('0x3f')])){channels[_0xc5f6ef[_0x8a8e('0x8')]]['ContactId']=_0xc5f6ef[_0x8a8e('0x38')];}if(!_[_0x8a8e('0x1a')](_0xc5f6ef[_0x8a8e('0x36')][_0x8a8e('0x40')])){channels[_0xc5f6ef[_0x8a8e('0x8')]][_0x8a8e('0x9')]=_0xc5f6ef[_0x8a8e('0x38')];}if(!_[_0x8a8e('0x1a')](_0xc5f6ef['variable'][_0x8a8e('0x41')])){channels[_0xc5f6ef[_0x8a8e('0x8')]][_0x8a8e('0x42')]=_0xc5f6ef[_0x8a8e('0x38')];}if(!_['isNil'](_0xc5f6ef[_0x8a8e('0x36')][_0x8a8e('0x43')])){channels[_0xc5f6ef[_0x8a8e('0x8')]][_0x8a8e('0x43')]=_0xc5f6ef[_0x8a8e('0x38')];}}}catch(_0x18104a){utils[_0x8a8e('0x18')](_0x18104a['stack']);}};exports[_0x8a8e('0x44')]=function(_0x45f445){try{if(!_[_0x8a8e('0x1a')](channels[_0x45f445['uniqueid']])){if(_0x45f445[_0x8a8e('0x45')][_0x8a8e('0x46')]()==_0x8a8e('0x47')&&_[_0x8a8e('0x48')](_0x45f445['appdata'][_0x8a8e('0x46')](),'cdr')){var _0x3bb535=_0x45f445[_0x8a8e('0x49')][_0x8a8e('0x4a')]('=');var _0x4cf762=_0x3bb535[0x0][_0x8a8e('0x4b')](_0x3bb535[0x0]['lastIndexOf']('(')+0x1,_0x3bb535[0x0][_0x8a8e('0x4c')](')'));var _0x3c9a88=_0x3bb535[0x1];channels[_0x45f445[_0x8a8e('0x8')]][_0x4cf762]=_0x3c9a88;}if(!_[_0x8a8e('0x4d')]([_0x8a8e('0x24'),_0x8a8e('0x4e'),_0x8a8e('0x4f'),_0x8a8e('0x47'),_0x8a8e('0x50')],_0x45f445['application'][_0x8a8e('0x46')]())){channels[_0x45f445[_0x8a8e('0x8')]][_0x8a8e('0x3c')]=_0x45f445[_0x8a8e('0x45')];channels[_0x45f445[_0x8a8e('0x8')]]['lastdata']=_0x45f445[_0x8a8e('0x49')];}}}catch(_0x5a76c3){utils[_0x8a8e('0x18')](_0x5a76c3['stack']);}};