Built motion from commit (unavailable).|2.4.13
[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 _0x5a8a=['toNumber','hangup','callerid','calleridname','calleridnum','duration','diffTime','endtime','starttime','billableseconds','attendedtransfer','localtwolinkedid','transfereechannel','secondtransfererchannel','userfield','_attended','musiconholdstart','musiconholdstartAt','musiconholdstop','varset','variable','xmd-originatecalleridnum','value','destination','\x22\x20<','xmd-callerid','xmcs-queue','lastapplication','Queue','lastdata','xmd-contactid','ContactId','xmd-cdrtype','outboundrouteid','routeid','sipcallid','newexten','set','startsWith','appdata','toLowerCase','split','substring','lastIndexOf','noop','application','util','NO\x20ANSWER','FAILED','ANSWERED','BUSY','info','format','CALL|%s|%s|%s|%s|%s|%s|%s|%s','channel','type','accountcode','source','then','UserId','request','CreateVoiceCallReport','uniqueid','newchannel','linkedid','exten','context','now','error','stack','newstate','isNil','systemanswertime','channelstate','transfer','destinationchannel','answertime','disposition'];(function(_0x157111,_0x3a9771){var _0x5b00c4=function(_0x1b15e4){while(--_0x1b15e4){_0x157111['push'](_0x157111['shift']());}};_0x5b00c4(++_0x3a9771);}(_0x5a8a,0x7c));var _0xa5a8=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0x5a8a[_0xa464c9];return _0x3d73c4;};'use strict';var _=require('lodash');var util=require(_0xa5a8('0x0'));var utils=require('./utils');var dispositions=[_0xa5a8('0x1'),_0xa5a8('0x2'),_0xa5a8('0x2'),_0xa5a8('0x1'),_0xa5a8('0x1'),'NO\x20ANSWER',_0xa5a8('0x3'),_0xa5a8('0x4'),_0xa5a8('0x2'),_0xa5a8('0x2'),_0xa5a8('0x2')];var channels={};function writeDB(_0x26da13){utils[_0xa5a8('0x5')](util[_0xa5a8('0x6')](_0xa5a8('0x7'),_0x26da13['uniqueid'],_0x26da13[_0xa5a8('0x8')],_0x26da13[_0xa5a8('0x9')],_0x26da13[_0xa5a8('0xa')],_0x26da13[_0xa5a8('0xb')],_0x26da13['destination'],_0x26da13['callerid'],_0x26da13['disposition']));if(_0x26da13[_0xa5a8('0xa')]){utils['getUserByInternal'](_0x26da13[_0xa5a8('0xa')])[_0xa5a8('0xc')](function(_0x637961){if(_0x637961){_0x26da13[_0xa5a8('0xd')]=_0x637961['id'];}utils['request']('CreateVoiceCallReport',_0x26da13);});}else{utils[_0xa5a8('0xe')](_0xa5a8('0xf'),_0x26da13);}if(channels[_0x26da13[_0xa5a8('0x10')]]){delete channels[_0x26da13[_0xa5a8('0x10')]];}}exports[_0xa5a8('0x11')]=function(_0x3a357f){try{if(_0x3a357f[_0xa5a8('0x10')]==_0x3a357f[_0xa5a8('0x12')]&&_0x3a357f[_0xa5a8('0x8')]!='OutgoingSpoolFailed'){channels[_0x3a357f[_0xa5a8('0x10')]]={'uniqueid':_0x3a357f[_0xa5a8('0x10')],'accountcode':_0x3a357f['accountcode'],'source':_0x3a357f['calleridnum'],'destination':_0x3a357f[_0xa5a8('0x13')],'destinationcontext':_0x3a357f[_0xa5a8('0x14')],'channel':_0x3a357f[_0xa5a8('0x8')],'starttime':utils[_0xa5a8('0x15')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':_0xa5a8('0x1'),'amaflags':'DOCUMENTATION'};}}catch(_0x444ea5){utils[_0xa5a8('0x16')](_0x444ea5[_0xa5a8('0x17')]);}};exports[_0xa5a8('0x18')]=function(_0x2cb0b6){try{if(!_[_0xa5a8('0x19')](channels[_0x2cb0b6[_0xa5a8('0x10')]])&&_0x2cb0b6['channelstate']==0x6){if(_[_0xa5a8('0x19')](channels[_0x2cb0b6['uniqueid']]['systemanswertime'])){channels[_0x2cb0b6[_0xa5a8('0x10')]][_0xa5a8('0x1a')]=utils[_0xa5a8('0x15')]();}}else if(!_[_0xa5a8('0x19')](channels[_0x2cb0b6[_0xa5a8('0x12')]])&&_0x2cb0b6[_0xa5a8('0x1b')]==0x6&&_0x2cb0b6[_0xa5a8('0x14')]!=_0xa5a8('0x1c')){channels[_0x2cb0b6[_0xa5a8('0x12')]][_0xa5a8('0xa')]=_0x2cb0b6[_0xa5a8('0xa')];channels[_0x2cb0b6[_0xa5a8('0x12')]][_0xa5a8('0x1d')]=_0x2cb0b6[_0xa5a8('0x8')];if(_[_0xa5a8('0x19')](channels[_0x2cb0b6[_0xa5a8('0x12')]]['answertime'])){channels[_0x2cb0b6['linkedid']][_0xa5a8('0x1e')]=utils[_0xa5a8('0x15')]();}channels[_0x2cb0b6['linkedid']][_0xa5a8('0x1f')]=dispositions[_[_0xa5a8('0x20')](_0x2cb0b6[_0xa5a8('0x1b')])]||'ANSWERED';}}catch(_0x220884){utils['error'](_0x220884['stack']);}};exports[_0xa5a8('0x21')]=function(_0x58b14f){try{if(!_[_0xa5a8('0x19')](channels[_0x58b14f['uniqueid']])){if(_[_0xa5a8('0x19')](channels[_0x58b14f[_0xa5a8('0x10')]][_0xa5a8('0x22')])){channels[_0x58b14f[_0xa5a8('0x10')]][_0xa5a8('0x22')]=_0x58b14f[_0xa5a8('0x23')]+'\x20<'+_0x58b14f[_0xa5a8('0x24')]+'>';}channels[_0x58b14f['uniqueid']]['endtime']=utils[_0xa5a8('0x15')]();channels[_0x58b14f['uniqueid']][_0xa5a8('0x25')]=utils[_0xa5a8('0x26')](channels[_0x58b14f[_0xa5a8('0x10')]][_0xa5a8('0x27')],channels[_0x58b14f[_0xa5a8('0x10')]][_0xa5a8('0x28')]);channels[_0x58b14f[_0xa5a8('0x10')]][_0xa5a8('0x29')]=channels[_0x58b14f['uniqueid']][_0xa5a8('0x1e')]?utils[_0xa5a8('0x26')](channels[_0x58b14f[_0xa5a8('0x10')]][_0xa5a8('0x27')],channels[_0x58b14f[_0xa5a8('0x10')]][_0xa5a8('0x1e')]):0x0;writeDB(channels[_0x58b14f[_0xa5a8('0x10')]]);}}catch(_0x145e45){utils[_0xa5a8('0x16')](_0x145e45[_0xa5a8('0x17')]);}};exports[_0xa5a8('0x2a')]=function(_0x46e937){try{if(!_['isNil'](channels[_0x46e937[_0xa5a8('0x2b')]])){if(channels[_0x46e937['localtwolinkedid']][_0xa5a8('0x8')]==_0x46e937[_0xa5a8('0x2c')]){channels[_0x46e937[_0xa5a8('0x2b')]][_0xa5a8('0x1d')]=_0x46e937[_0xa5a8('0x2d')];channels[_0x46e937['localtwolinkedid']]['userfield']='_attended';}else if(channels[_0x46e937[_0xa5a8('0x2b')]][_0xa5a8('0x8')]=_0x46e937['transfertargetchannel']){channels[_0x46e937[_0xa5a8('0x2b')]][_0xa5a8('0x1d')]=_0x46e937['origtransfererchannel'];channels[_0x46e937[_0xa5a8('0x2b')]][_0xa5a8('0x2e')]=_0xa5a8('0x2f');}}}catch(_0x382652){utils[_0xa5a8('0x16')](_0x382652[_0xa5a8('0x17')]);}};exports[_0xa5a8('0x30')]=function(_0x3cf823){try{if(!_[_0xa5a8('0x19')](channels[_0x3cf823[_0xa5a8('0x10')]])){channels[_0x3cf823[_0xa5a8('0x10')]][_0xa5a8('0x31')]=utils['now']();}}catch(_0x18776b){utils['error'](_0x18776b[_0xa5a8('0x17')]);}};exports[_0xa5a8('0x32')]=function(_0x530969){try{if(!_[_0xa5a8('0x19')](channels[_0x530969['uniqueid']])){if(!_[_0xa5a8('0x19')](channels[_0x530969['uniqueid']][_0xa5a8('0x31')])){channels[_0x530969['uniqueid']]['mohtime']+=utils[_0xa5a8('0x26')](utils['now'](),channels[_0x530969['uniqueid']]['musiconholdstartAt']);delete channels[_0x530969[_0xa5a8('0x10')]][_0xa5a8('0x31')];}}}catch(_0x4db0f9){utils[_0xa5a8('0x16')](_0x4db0f9[_0xa5a8('0x17')]);}};exports[_0xa5a8('0x33')]=function(_0x112801){try{if(!_['isNil'](channels[_0x112801[_0xa5a8('0x10')]])){if(!_[_0xa5a8('0x19')](_0x112801[_0xa5a8('0x34')][_0xa5a8('0x35')])){channels[_0x112801[_0xa5a8('0x10')]][_0xa5a8('0xb')]=_0x112801[_0xa5a8('0x36')];}if(!_[_0xa5a8('0x19')](_0x112801[_0xa5a8('0x34')]['xmd-phone'])){channels[_0x112801['uniqueid']][_0xa5a8('0x37')]=_0x112801[_0xa5a8('0x36')];channels[_0x112801['uniqueid']]['callerid']='\x22'+_0x112801[_0xa5a8('0x36')]+_0xa5a8('0x38')+_0x112801[_0xa5a8('0x36')]+'>';}if(!_[_0xa5a8('0x19')](_0x112801[_0xa5a8('0x34')]['xmd-callerid-preview'])||!_[_0xa5a8('0x19')](_0x112801['variable'][_0xa5a8('0x39')])){channels[_0x112801[_0xa5a8('0x10')]][_0xa5a8('0x22')]=_0x112801[_0xa5a8('0x36')];}if(!_[_0xa5a8('0x19')](_0x112801[_0xa5a8('0x34')]['xmd-queue'])||!_[_0xa5a8('0x19')](_0x112801[_0xa5a8('0x34')][_0xa5a8('0x3a')])){channels[_0x112801[_0xa5a8('0x10')]][_0xa5a8('0x3b')]=_0xa5a8('0x3c');channels[_0x112801[_0xa5a8('0x10')]][_0xa5a8('0x3d')]=_0x112801['value'];channels[_0x112801[_0xa5a8('0x10')]]['queue']=!![];}if(!_['isNil'](_0x112801[_0xa5a8('0x34')][_0xa5a8('0x3e')])){channels[_0x112801[_0xa5a8('0x10')]][_0xa5a8('0x3f')]=_0x112801[_0xa5a8('0x36')];}if(!_[_0xa5a8('0x19')](_0x112801['variable'][_0xa5a8('0x40')])){channels[_0x112801[_0xa5a8('0x10')]]['type']=_0x112801[_0xa5a8('0x36')];}if(!_[_0xa5a8('0x19')](_0x112801[_0xa5a8('0x34')][_0xa5a8('0x41')])){channels[_0x112801['uniqueid']][_0xa5a8('0x42')]=_0x112801[_0xa5a8('0x36')];}if(!_[_0xa5a8('0x19')](_0x112801[_0xa5a8('0x34')][_0xa5a8('0x43')])){channels[_0x112801[_0xa5a8('0x10')]][_0xa5a8('0x43')]=_0x112801[_0xa5a8('0x36')];}}}catch(_0x5afe44){utils['error'](_0x5afe44[_0xa5a8('0x17')]);}};exports[_0xa5a8('0x44')]=function(_0x3eb4c2){try{if(!_[_0xa5a8('0x19')](channels[_0x3eb4c2[_0xa5a8('0x10')]])){if(_0x3eb4c2['application']['toLowerCase']()==_0xa5a8('0x45')&&_[_0xa5a8('0x46')](_0x3eb4c2[_0xa5a8('0x47')][_0xa5a8('0x48')](),'cdr')){var _0x53243c=_0x3eb4c2[_0xa5a8('0x47')][_0xa5a8('0x49')]('=');var _0x76fad9=_0x53243c[0x0][_0xa5a8('0x4a')](_0x53243c[0x0][_0xa5a8('0x4b')]('(')+0x1,_0x53243c[0x0]['lastIndexOf'](')'));var _0x129b7=_0x53243c[0x1];channels[_0x3eb4c2['uniqueid']][_0x76fad9]=_0x129b7;}if(!_['includes']([_0xa5a8('0x21'),_0xa5a8('0x4c'),'execif',_0xa5a8('0x45'),'gotoif'],_0x3eb4c2[_0xa5a8('0x4d')]['toLowerCase']())){channels[_0x3eb4c2[_0xa5a8('0x10')]][_0xa5a8('0x3b')]=_0x3eb4c2[_0xa5a8('0x4d')];channels[_0x3eb4c2['uniqueid']]['lastdata']=_0x3eb4c2['appdata'];}}}catch(_0x3f2d15){utils['error'](_0x3f2d15[_0xa5a8('0x17')]);}};