Built motion from commit (unavailable).|2.5.4
[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 _0xc032=['lastapplication','lastdata','xmd-contactid','xmd-cdrtype','outboundrouteid','routeid','sipcallid','newexten','toLowerCase','set','appdata','cdr','split','substring','lastIndexOf','noop','gotoif','application','util','./utils','NO\x20ANSWER','FAILED','ANSWERED','BUSY','uniqueid','channel','type','accountcode','source','destination','callerid','disposition','then','UserId','CreateVoiceCallReport','request','newchannel','OutgoingSpoolFailed','calleridnum','exten','context','now','error','stack','newstate','isNil','channelstate','systemanswertime','linkedid','transfer','destinationchannel','answertime','calleridname','endtime','duration','diffTime','starttime','billableseconds','attendedtransfer','localtwolinkedid','transfereechannel','secondtransfererchannel','userfield','_attended','origtransfererchannel','musiconholdstart','musiconholdstartAt','musiconholdstop','varset','variable','xmd-originatecalleridnum','value','xmd-phone','\x22\x20<','xmd-callerid-preview','xmd-callerid','xmd-queue','xmcs-queue'];(function(_0xf44608,_0x4d8e55){var _0x129f91=function(_0x2dda9a){while(--_0x2dda9a){_0xf44608['push'](_0xf44608['shift']());}};_0x129f91(++_0x4d8e55);}(_0xc032,0x1e6));var _0x2c03=function(_0x529097,_0x50777a){_0x529097=_0x529097-0x0;var _0x3e525a=_0xc032[_0x529097];return _0x3e525a;};'use strict';var _=require('lodash');var util=require(_0x2c03('0x0'));var utils=require(_0x2c03('0x1'));var dispositions=[_0x2c03('0x2'),_0x2c03('0x3'),_0x2c03('0x3'),_0x2c03('0x2'),_0x2c03('0x2'),_0x2c03('0x2'),_0x2c03('0x4'),_0x2c03('0x5'),'FAILED','FAILED',_0x2c03('0x3')];var channels={};function writeDB(_0x50e448){utils['info'](util['format']('CALL|%s|%s|%s|%s|%s|%s|%s|%s',_0x50e448[_0x2c03('0x6')],_0x50e448[_0x2c03('0x7')],_0x50e448[_0x2c03('0x8')],_0x50e448[_0x2c03('0x9')],_0x50e448[_0x2c03('0xa')],_0x50e448[_0x2c03('0xb')],_0x50e448[_0x2c03('0xc')],_0x50e448[_0x2c03('0xd')]));if(_0x50e448[_0x2c03('0x9')]){utils['getUserByInternal'](_0x50e448[_0x2c03('0x9')])[_0x2c03('0xe')](function(_0x59cecb){if(_0x59cecb){_0x50e448[_0x2c03('0xf')]=_0x59cecb['id'];}utils['request'](_0x2c03('0x10'),_0x50e448);});}else{utils[_0x2c03('0x11')](_0x2c03('0x10'),_0x50e448);}if(channels[_0x50e448[_0x2c03('0x6')]]){delete channels[_0x50e448[_0x2c03('0x6')]];}}exports[_0x2c03('0x12')]=function(_0x3c86eb){try{if(_0x3c86eb[_0x2c03('0x6')]==_0x3c86eb['linkedid']&&_0x3c86eb[_0x2c03('0x7')]!=_0x2c03('0x13')){channels[_0x3c86eb['uniqueid']]={'uniqueid':_0x3c86eb[_0x2c03('0x6')],'accountcode':_0x3c86eb[_0x2c03('0x9')],'source':_0x3c86eb[_0x2c03('0x14')],'destination':_0x3c86eb[_0x2c03('0x15')],'destinationcontext':_0x3c86eb[_0x2c03('0x16')],'channel':_0x3c86eb[_0x2c03('0x7')],'starttime':utils[_0x2c03('0x17')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':_0x2c03('0x2'),'amaflags':'DOCUMENTATION'};}}catch(_0x5b0209){utils[_0x2c03('0x18')](_0x5b0209[_0x2c03('0x19')]);}};exports[_0x2c03('0x1a')]=function(_0x462b91){try{if(!_[_0x2c03('0x1b')](channels[_0x462b91[_0x2c03('0x6')]])&&_0x462b91[_0x2c03('0x1c')]==0x6){if(_[_0x2c03('0x1b')](channels[_0x462b91[_0x2c03('0x6')]][_0x2c03('0x1d')])){channels[_0x462b91['uniqueid']][_0x2c03('0x1d')]=utils[_0x2c03('0x17')]();}}else if(!_[_0x2c03('0x1b')](channels[_0x462b91[_0x2c03('0x1e')]])&&_0x462b91[_0x2c03('0x1c')]==0x6&&_0x462b91[_0x2c03('0x16')]!=_0x2c03('0x1f')){channels[_0x462b91[_0x2c03('0x1e')]][_0x2c03('0x9')]=_0x462b91[_0x2c03('0x9')];channels[_0x462b91[_0x2c03('0x1e')]][_0x2c03('0x20')]=_0x462b91[_0x2c03('0x7')];if(_[_0x2c03('0x1b')](channels[_0x462b91[_0x2c03('0x1e')]][_0x2c03('0x21')])){channels[_0x462b91['linkedid']][_0x2c03('0x21')]=utils[_0x2c03('0x17')]();}channels[_0x462b91[_0x2c03('0x1e')]][_0x2c03('0xd')]=dispositions[_['toNumber'](_0x462b91[_0x2c03('0x1c')])]||'ANSWERED';}}catch(_0x2ebdda){utils[_0x2c03('0x18')](_0x2ebdda[_0x2c03('0x19')]);}};exports['hangup']=function(_0x26f540){try{if(!_[_0x2c03('0x1b')](channels[_0x26f540[_0x2c03('0x6')]])){if(_[_0x2c03('0x1b')](channels[_0x26f540[_0x2c03('0x6')]]['callerid'])){channels[_0x26f540[_0x2c03('0x6')]][_0x2c03('0xc')]=_0x26f540[_0x2c03('0x22')]+'\x20<'+_0x26f540[_0x2c03('0x14')]+'>';}channels[_0x26f540[_0x2c03('0x6')]][_0x2c03('0x23')]=utils['now']();channels[_0x26f540[_0x2c03('0x6')]][_0x2c03('0x24')]=utils[_0x2c03('0x25')](channels[_0x26f540['uniqueid']][_0x2c03('0x23')],channels[_0x26f540[_0x2c03('0x6')]][_0x2c03('0x26')]);channels[_0x26f540[_0x2c03('0x6')]][_0x2c03('0x27')]=channels[_0x26f540['uniqueid']][_0x2c03('0x21')]?utils[_0x2c03('0x25')](channels[_0x26f540['uniqueid']][_0x2c03('0x23')],channels[_0x26f540['uniqueid']]['answertime']):0x0;writeDB(channels[_0x26f540[_0x2c03('0x6')]]);}}catch(_0x5ba75d){utils[_0x2c03('0x18')](_0x5ba75d[_0x2c03('0x19')]);}};exports[_0x2c03('0x28')]=function(_0x97b9a){try{if(!_['isNil'](channels[_0x97b9a[_0x2c03('0x29')]])){if(channels[_0x97b9a['localtwolinkedid']][_0x2c03('0x7')]==_0x97b9a[_0x2c03('0x2a')]){channels[_0x97b9a[_0x2c03('0x29')]]['destinationchannel']=_0x97b9a[_0x2c03('0x2b')];channels[_0x97b9a[_0x2c03('0x29')]][_0x2c03('0x2c')]=_0x2c03('0x2d');}else if(channels[_0x97b9a[_0x2c03('0x29')]][_0x2c03('0x7')]=_0x97b9a['transfertargetchannel']){channels[_0x97b9a[_0x2c03('0x29')]][_0x2c03('0x20')]=_0x97b9a[_0x2c03('0x2e')];channels[_0x97b9a['localtwolinkedid']][_0x2c03('0x2c')]=_0x2c03('0x2d');}}}catch(_0x1404fd){utils[_0x2c03('0x18')](_0x1404fd[_0x2c03('0x19')]);}};exports[_0x2c03('0x2f')]=function(_0x397174){try{if(!_['isNil'](channels[_0x397174[_0x2c03('0x6')]])){channels[_0x397174[_0x2c03('0x6')]][_0x2c03('0x30')]=utils['now']();}}catch(_0x13f345){utils['error'](_0x13f345['stack']);}};exports[_0x2c03('0x31')]=function(_0x9b0512){try{if(!_['isNil'](channels[_0x9b0512[_0x2c03('0x6')]])){if(!_[_0x2c03('0x1b')](channels[_0x9b0512[_0x2c03('0x6')]][_0x2c03('0x30')])){channels[_0x9b0512[_0x2c03('0x6')]]['mohtime']+=utils[_0x2c03('0x25')](utils[_0x2c03('0x17')](),channels[_0x9b0512[_0x2c03('0x6')]][_0x2c03('0x30')]);delete channels[_0x9b0512['uniqueid']]['musiconholdstartAt'];}}}catch(_0xd7ce9){utils['error'](_0xd7ce9['stack']);}};exports[_0x2c03('0x32')]=function(_0x969c4c){try{if(!_[_0x2c03('0x1b')](channels[_0x969c4c[_0x2c03('0x6')]])){if(!_[_0x2c03('0x1b')](_0x969c4c[_0x2c03('0x33')][_0x2c03('0x34')])){channels[_0x969c4c[_0x2c03('0x6')]][_0x2c03('0xa')]=_0x969c4c[_0x2c03('0x35')];}if(!_[_0x2c03('0x1b')](_0x969c4c[_0x2c03('0x33')][_0x2c03('0x36')])){channels[_0x969c4c['uniqueid']][_0x2c03('0xb')]=_0x969c4c[_0x2c03('0x35')];channels[_0x969c4c[_0x2c03('0x6')]][_0x2c03('0xc')]='\x22'+_0x969c4c['value']+_0x2c03('0x37')+_0x969c4c[_0x2c03('0x35')]+'>';}if(!_[_0x2c03('0x1b')](_0x969c4c[_0x2c03('0x33')][_0x2c03('0x38')])||!_[_0x2c03('0x1b')](_0x969c4c[_0x2c03('0x33')][_0x2c03('0x39')])){channels[_0x969c4c[_0x2c03('0x6')]][_0x2c03('0xc')]=_0x969c4c[_0x2c03('0x35')];}if(!_[_0x2c03('0x1b')](_0x969c4c[_0x2c03('0x33')][_0x2c03('0x3a')])||!_[_0x2c03('0x1b')](_0x969c4c[_0x2c03('0x33')][_0x2c03('0x3b')])){channels[_0x969c4c[_0x2c03('0x6')]][_0x2c03('0x3c')]='Queue';channels[_0x969c4c[_0x2c03('0x6')]][_0x2c03('0x3d')]=_0x969c4c[_0x2c03('0x35')];channels[_0x969c4c[_0x2c03('0x6')]]['queue']=!![];}if(!_[_0x2c03('0x1b')](_0x969c4c[_0x2c03('0x33')][_0x2c03('0x3e')])){channels[_0x969c4c['uniqueid']]['ContactId']=_0x969c4c[_0x2c03('0x35')];}if(!_[_0x2c03('0x1b')](_0x969c4c['variable'][_0x2c03('0x3f')])){channels[_0x969c4c['uniqueid']][_0x2c03('0x8')]=_0x969c4c[_0x2c03('0x35')];}if(!_['isNil'](_0x969c4c[_0x2c03('0x33')][_0x2c03('0x40')])){channels[_0x969c4c[_0x2c03('0x6')]][_0x2c03('0x41')]=_0x969c4c['value'];}if(!_[_0x2c03('0x1b')](_0x969c4c[_0x2c03('0x33')][_0x2c03('0x42')])){channels[_0x969c4c[_0x2c03('0x6')]][_0x2c03('0x42')]=_0x969c4c[_0x2c03('0x35')];}}}catch(_0x24cc64){utils['error'](_0x24cc64[_0x2c03('0x19')]);}};exports[_0x2c03('0x43')]=function(_0x3f33b2){try{if(!_[_0x2c03('0x1b')](channels[_0x3f33b2[_0x2c03('0x6')]])){if(_0x3f33b2['application'][_0x2c03('0x44')]()==_0x2c03('0x45')&&_['startsWith'](_0x3f33b2[_0x2c03('0x46')][_0x2c03('0x44')](),_0x2c03('0x47'))){var _0x4dbb77=_0x3f33b2[_0x2c03('0x46')][_0x2c03('0x48')]('=');var _0x46c529=_0x4dbb77[0x0][_0x2c03('0x49')](_0x4dbb77[0x0][_0x2c03('0x4a')]('(')+0x1,_0x4dbb77[0x0][_0x2c03('0x4a')](')'));var _0x348f0f=_0x4dbb77[0x1];channels[_0x3f33b2['uniqueid']][_0x46c529]=_0x348f0f;}if(!_['includes'](['hangup',_0x2c03('0x4b'),'execif','set',_0x2c03('0x4c')],_0x3f33b2[_0x2c03('0x4d')][_0x2c03('0x44')]())){channels[_0x3f33b2[_0x2c03('0x6')]][_0x2c03('0x3c')]=_0x3f33b2[_0x2c03('0x4d')];channels[_0x3f33b2[_0x2c03('0x6')]][_0x2c03('0x3d')]=_0x3f33b2[_0x2c03('0x46')];}}}catch(_0xaf7aee){utils[_0x2c03('0x18')](_0xaf7aee[_0x2c03('0x19')]);}};