39ecaec660973f192d1b0f538067de1f64c5be3e
[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 _0x3e05=['split','substring','includes','hangup','noop','execif','gotoif','lastdata','lodash','util','./utils','NO\x20ANSWER','FAILED','ANSWERED','format','CALL|%s|%s|%s|%s|%s|%s|%s|%s','channel','destination','callerid','accountcode','then','UserId','request','CreateVoiceCallReport','uniqueid','newchannel','linkedid','OutgoingSpoolFailed','calleridnum','context','now','DOCUMENTATION','stack','newstate','channelstate','isNil','systemanswertime','transfer','destinationchannel','answertime','disposition','toNumber','error','endtime','diffTime','starttime','localtwolinkedid','transfereechannel','secondtransfererchannel','userfield','_attended','transfertargetchannel','origtransfererchannel','musiconholdstart','musiconholdstartAt','mohtime','varset','xmd-originatecalleridnum','source','value','variable','xmd-callerid-preview','xmd-callerid','xmd-queue','xmcs-queue','lastapplication','xmd-contactid','xmd-cdrtype','type','outboundrouteid','routeid','sipcallid','application','toLowerCase','set','startsWith','appdata','cdr'];(function(_0x3915c3,_0x2d7ebf){var _0xd746a6=function(_0x14b185){while(--_0x14b185){_0x3915c3['push'](_0x3915c3['shift']());}};_0xd746a6(++_0x2d7ebf);}(_0x3e05,0x140));var _0x53e0=function(_0xd3ef98,_0x803256){_0xd3ef98=_0xd3ef98-0x0;var _0x28b0af=_0x3e05[_0xd3ef98];return _0x28b0af;};'use strict';var _=require(_0x53e0('0x0'));var util=require(_0x53e0('0x1'));var utils=require(_0x53e0('0x2'));var dispositions=[_0x53e0('0x3'),_0x53e0('0x4'),_0x53e0('0x4'),_0x53e0('0x3'),'NO\x20ANSWER',_0x53e0('0x3'),_0x53e0('0x5'),'BUSY','FAILED','FAILED','FAILED'];var channels={};function writeDB(_0x4e7789){utils['info'](util[_0x53e0('0x6')](_0x53e0('0x7'),_0x4e7789['uniqueid'],_0x4e7789[_0x53e0('0x8')],_0x4e7789['type'],_0x4e7789['accountcode'],_0x4e7789['source'],_0x4e7789[_0x53e0('0x9')],_0x4e7789[_0x53e0('0xa')],_0x4e7789['disposition']));if(_0x4e7789['accountcode']){utils['getUserByInternal'](_0x4e7789[_0x53e0('0xb')])[_0x53e0('0xc')](function(_0x5f2333){if(_0x5f2333){_0x4e7789[_0x53e0('0xd')]=_0x5f2333['id'];}utils[_0x53e0('0xe')]('CreateVoiceCallReport',_0x4e7789);});}else{utils['request'](_0x53e0('0xf'),_0x4e7789);}if(channels[_0x4e7789[_0x53e0('0x10')]]){delete channels[_0x4e7789[_0x53e0('0x10')]];}}exports[_0x53e0('0x11')]=function(_0x53857e){try{if(_0x53857e[_0x53e0('0x10')]==_0x53857e[_0x53e0('0x12')]&&_0x53857e[_0x53e0('0x8')]!=_0x53e0('0x13')){channels[_0x53857e[_0x53e0('0x10')]]={'uniqueid':_0x53857e[_0x53e0('0x10')],'accountcode':_0x53857e['accountcode'],'source':_0x53857e[_0x53e0('0x14')],'destination':_0x53857e['exten'],'destinationcontext':_0x53857e[_0x53e0('0x15')],'channel':_0x53857e[_0x53e0('0x8')],'starttime':utils[_0x53e0('0x16')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':'NO\x20ANSWER','amaflags':_0x53e0('0x17')};}}catch(_0x127959){utils['error'](_0x127959[_0x53e0('0x18')]);}};exports[_0x53e0('0x19')]=function(_0x4bf55b){try{if(!_['isNil'](channels[_0x4bf55b[_0x53e0('0x10')]])&&_0x4bf55b[_0x53e0('0x1a')]==0x6){if(_[_0x53e0('0x1b')](channels[_0x4bf55b['uniqueid']][_0x53e0('0x1c')])){channels[_0x4bf55b[_0x53e0('0x10')]]['systemanswertime']=utils[_0x53e0('0x16')]();}}else if(!_[_0x53e0('0x1b')](channels[_0x4bf55b[_0x53e0('0x12')]])&&_0x4bf55b[_0x53e0('0x1a')]==0x6&&_0x4bf55b['context']!=_0x53e0('0x1d')){channels[_0x4bf55b[_0x53e0('0x12')]]['accountcode']=_0x4bf55b[_0x53e0('0xb')];channels[_0x4bf55b[_0x53e0('0x12')]][_0x53e0('0x1e')]=_0x4bf55b[_0x53e0('0x8')];if(_[_0x53e0('0x1b')](channels[_0x4bf55b[_0x53e0('0x12')]][_0x53e0('0x1f')])){channels[_0x4bf55b[_0x53e0('0x12')]][_0x53e0('0x1f')]=utils[_0x53e0('0x16')]();}channels[_0x4bf55b['linkedid']][_0x53e0('0x20')]=dispositions[_[_0x53e0('0x21')](_0x4bf55b[_0x53e0('0x1a')])]||_0x53e0('0x5');}}catch(_0x2a6b29){utils[_0x53e0('0x22')](_0x2a6b29[_0x53e0('0x18')]);}};exports['hangup']=function(_0x5da710){try{if(!_[_0x53e0('0x1b')](channels[_0x5da710[_0x53e0('0x10')]])){if(_[_0x53e0('0x1b')](channels[_0x5da710[_0x53e0('0x10')]]['callerid'])){channels[_0x5da710['uniqueid']][_0x53e0('0xa')]=_0x5da710['calleridname']+'\x20<'+_0x5da710[_0x53e0('0x14')]+'>';}channels[_0x5da710['uniqueid']][_0x53e0('0x23')]=utils[_0x53e0('0x16')]();channels[_0x5da710[_0x53e0('0x10')]]['duration']=utils[_0x53e0('0x24')](channels[_0x5da710[_0x53e0('0x10')]]['endtime'],channels[_0x5da710[_0x53e0('0x10')]][_0x53e0('0x25')]);channels[_0x5da710[_0x53e0('0x10')]]['billableseconds']=channels[_0x5da710[_0x53e0('0x10')]][_0x53e0('0x1f')]?utils[_0x53e0('0x24')](channels[_0x5da710['uniqueid']]['endtime'],channels[_0x5da710[_0x53e0('0x10')]][_0x53e0('0x1f')]):0x0;writeDB(channels[_0x5da710[_0x53e0('0x10')]]);}}catch(_0x37887f){utils['error'](_0x37887f[_0x53e0('0x18')]);}};exports['attendedtransfer']=function(_0x46d7a8){try{if(!_['isNil'](channels[_0x46d7a8['localtwolinkedid']])){if(channels[_0x46d7a8[_0x53e0('0x26')]][_0x53e0('0x8')]==_0x46d7a8[_0x53e0('0x27')]){channels[_0x46d7a8[_0x53e0('0x26')]][_0x53e0('0x1e')]=_0x46d7a8[_0x53e0('0x28')];channels[_0x46d7a8[_0x53e0('0x26')]][_0x53e0('0x29')]=_0x53e0('0x2a');}else if(channels[_0x46d7a8['localtwolinkedid']]['channel']=_0x46d7a8[_0x53e0('0x2b')]){channels[_0x46d7a8[_0x53e0('0x26')]][_0x53e0('0x1e')]=_0x46d7a8[_0x53e0('0x2c')];channels[_0x46d7a8[_0x53e0('0x26')]][_0x53e0('0x29')]=_0x53e0('0x2a');}}}catch(_0x5b07b6){utils['error'](_0x5b07b6[_0x53e0('0x18')]);}};exports[_0x53e0('0x2d')]=function(_0x5f288e){try{if(!_[_0x53e0('0x1b')](channels[_0x5f288e['uniqueid']])){channels[_0x5f288e[_0x53e0('0x10')]][_0x53e0('0x2e')]=utils[_0x53e0('0x16')]();}}catch(_0x150d9c){utils[_0x53e0('0x22')](_0x150d9c[_0x53e0('0x18')]);}};exports['musiconholdstop']=function(_0x38b594){try{if(!_[_0x53e0('0x1b')](channels[_0x38b594['uniqueid']])){if(!_[_0x53e0('0x1b')](channels[_0x38b594['uniqueid']][_0x53e0('0x2e')])){channels[_0x38b594['uniqueid']][_0x53e0('0x2f')]+=utils[_0x53e0('0x24')](utils[_0x53e0('0x16')](),channels[_0x38b594[_0x53e0('0x10')]][_0x53e0('0x2e')]);delete channels[_0x38b594[_0x53e0('0x10')]][_0x53e0('0x2e')];}}}catch(_0x29080e){utils[_0x53e0('0x22')](_0x29080e[_0x53e0('0x18')]);}};exports[_0x53e0('0x30')]=function(_0xee7849){try{if(!_['isNil'](channels[_0xee7849[_0x53e0('0x10')]])){if(!_[_0x53e0('0x1b')](_0xee7849['variable'][_0x53e0('0x31')])){channels[_0xee7849[_0x53e0('0x10')]][_0x53e0('0x32')]=_0xee7849[_0x53e0('0x33')];}if(!_['isNil'](_0xee7849[_0x53e0('0x34')]['xmd-phone'])){channels[_0xee7849[_0x53e0('0x10')]][_0x53e0('0x9')]=_0xee7849[_0x53e0('0x33')];channels[_0xee7849[_0x53e0('0x10')]][_0x53e0('0xa')]='\x22'+_0xee7849[_0x53e0('0x33')]+'\x22\x20<'+_0xee7849[_0x53e0('0x33')]+'>';}if(!_[_0x53e0('0x1b')](_0xee7849[_0x53e0('0x34')][_0x53e0('0x35')])||!_[_0x53e0('0x1b')](_0xee7849[_0x53e0('0x34')][_0x53e0('0x36')])){channels[_0xee7849[_0x53e0('0x10')]][_0x53e0('0xa')]=_0xee7849['value'];}if(!_[_0x53e0('0x1b')](_0xee7849[_0x53e0('0x34')][_0x53e0('0x37')])||!_[_0x53e0('0x1b')](_0xee7849[_0x53e0('0x34')][_0x53e0('0x38')])){channels[_0xee7849[_0x53e0('0x10')]][_0x53e0('0x39')]='Queue';channels[_0xee7849['uniqueid']]['lastdata']=_0xee7849['value'];channels[_0xee7849[_0x53e0('0x10')]]['queue']=!![];}if(!_[_0x53e0('0x1b')](_0xee7849[_0x53e0('0x34')][_0x53e0('0x3a')])){channels[_0xee7849[_0x53e0('0x10')]]['ContactId']=_0xee7849[_0x53e0('0x33')];}if(!_['isNil'](_0xee7849[_0x53e0('0x34')][_0x53e0('0x3b')])){channels[_0xee7849[_0x53e0('0x10')]][_0x53e0('0x3c')]=_0xee7849[_0x53e0('0x33')];}if(!_['isNil'](_0xee7849['variable'][_0x53e0('0x3d')])){channels[_0xee7849[_0x53e0('0x10')]][_0x53e0('0x3e')]=_0xee7849['value'];}if(!_['isNil'](_0xee7849[_0x53e0('0x34')][_0x53e0('0x3f')])){channels[_0xee7849[_0x53e0('0x10')]]['sipcallid']=_0xee7849[_0x53e0('0x33')];}}}catch(_0x5bf6d2){utils['error'](_0x5bf6d2['stack']);}};exports['newexten']=function(_0x3854ac){try{if(!_[_0x53e0('0x1b')](channels[_0x3854ac[_0x53e0('0x10')]])){if(_0x3854ac[_0x53e0('0x40')][_0x53e0('0x41')]()==_0x53e0('0x42')&&_[_0x53e0('0x43')](_0x3854ac[_0x53e0('0x44')][_0x53e0('0x41')](),_0x53e0('0x45'))){var _0x12a834=_0x3854ac[_0x53e0('0x44')][_0x53e0('0x46')]('=');var _0x1a3adb=_0x12a834[0x0][_0x53e0('0x47')](_0x12a834[0x0]['lastIndexOf']('(')+0x1,_0x12a834[0x0]['lastIndexOf'](')'));var _0x45610a=_0x12a834[0x1];channels[_0x3854ac[_0x53e0('0x10')]][_0x1a3adb]=_0x45610a;}if(!_[_0x53e0('0x48')]([_0x53e0('0x49'),_0x53e0('0x4a'),_0x53e0('0x4b'),'set',_0x53e0('0x4c')],_0x3854ac['application'][_0x53e0('0x41')]())){channels[_0x3854ac[_0x53e0('0x10')]][_0x53e0('0x39')]=_0x3854ac[_0x53e0('0x40')];channels[_0x3854ac[_0x53e0('0x10')]][_0x53e0('0x4d')]=_0x3854ac[_0x53e0('0x44')];}}}catch(_0x1fbad9){utils['error'](_0x1fbad9['stack']);}};