Built motion from commit (unavailable).|2.4.10
[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 _0x05da=['ContactId','xmd-cdrtype','type','outboundrouteid','routeid','sipcallid','newexten','application','toLowerCase','startsWith','appdata','lastIndexOf','includes','execif','set','./utils','NO\x20ANSWER','FAILED','ANSWERED','BUSY','info','format','CALL|%s|%s|%s|%s|%s|%s|%s|%s','source','destination','disposition','accountcode','then','UserId','request','CreateVoiceCallReport','newchannel','uniqueid','channel','OutgoingSpoolFailed','exten','context','now','DOCUMENTATION','error','stack','newstate','isNil','channelstate','systemanswertime','linkedid','transfer','destinationchannel','answertime','toNumber','hangup','callerid','calleridname','endtime','duration','billableseconds','localtwolinkedid','secondtransfererchannel','userfield','_attended','origtransfererchannel','musiconholdstart','mohtime','diffTime','musiconholdstartAt','varset','variable','value','xmd-callerid-preview','xmd-callerid','xmcs-queue','lastapplication','Queue','lastdata','queue','xmd-contactid'];(function(_0x483175,_0x389c9e){var _0x47b099=function(_0x1f39bc){while(--_0x1f39bc){_0x483175['push'](_0x483175['shift']());}};_0x47b099(++_0x389c9e);}(_0x05da,0x1d7));var _0xa05d=function(_0x223b24,_0x24df82){_0x223b24=_0x223b24-0x0;var _0x3bf2a0=_0x05da[_0x223b24];return _0x3bf2a0;};'use strict';var _=require('lodash');var util=require('util');var utils=require(_0xa05d('0x0'));var dispositions=[_0xa05d('0x1'),_0xa05d('0x2'),'FAILED',_0xa05d('0x1'),_0xa05d('0x1'),_0xa05d('0x1'),_0xa05d('0x3'),_0xa05d('0x4'),_0xa05d('0x2'),_0xa05d('0x2'),'FAILED'];var channels={};function writeDB(_0x954556){utils[_0xa05d('0x5')](util[_0xa05d('0x6')](_0xa05d('0x7'),_0x954556['uniqueid'],_0x954556['channel'],_0x954556['type'],_0x954556['accountcode'],_0x954556[_0xa05d('0x8')],_0x954556[_0xa05d('0x9')],_0x954556['callerid'],_0x954556[_0xa05d('0xa')]));if(_0x954556[_0xa05d('0xb')]){utils['getUserByInternal'](_0x954556[_0xa05d('0xb')])[_0xa05d('0xc')](function(_0x2f00f1){if(_0x2f00f1){_0x954556[_0xa05d('0xd')]=_0x2f00f1['id'];}utils[_0xa05d('0xe')]('CreateVoiceCallReport',_0x954556);});}else{utils[_0xa05d('0xe')](_0xa05d('0xf'),_0x954556);}if(channels[_0x954556['uniqueid']]){delete channels[_0x954556['uniqueid']];}}exports[_0xa05d('0x10')]=function(_0xdd58ab){try{if(_0xdd58ab[_0xa05d('0x11')]==_0xdd58ab['linkedid']&&_0xdd58ab[_0xa05d('0x12')]!=_0xa05d('0x13')){channels[_0xdd58ab[_0xa05d('0x11')]]={'uniqueid':_0xdd58ab[_0xa05d('0x11')],'accountcode':_0xdd58ab[_0xa05d('0xb')],'source':_0xdd58ab['calleridnum'],'destination':_0xdd58ab[_0xa05d('0x14')],'destinationcontext':_0xdd58ab[_0xa05d('0x15')],'channel':_0xdd58ab['channel'],'starttime':utils[_0xa05d('0x16')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':_0xa05d('0x1'),'amaflags':_0xa05d('0x17')};}}catch(_0x5da73b){utils[_0xa05d('0x18')](_0x5da73b[_0xa05d('0x19')]);}};exports[_0xa05d('0x1a')]=function(_0x435cfc){try{if(!_[_0xa05d('0x1b')](channels[_0x435cfc[_0xa05d('0x11')]])&&_0x435cfc[_0xa05d('0x1c')]==0x6){if(_[_0xa05d('0x1b')](channels[_0x435cfc[_0xa05d('0x11')]][_0xa05d('0x1d')])){channels[_0x435cfc[_0xa05d('0x11')]][_0xa05d('0x1d')]=utils[_0xa05d('0x16')]();}}else if(!_['isNil'](channels[_0x435cfc[_0xa05d('0x1e')]])&&_0x435cfc[_0xa05d('0x1c')]==0x6&&_0x435cfc[_0xa05d('0x15')]!=_0xa05d('0x1f')){channels[_0x435cfc['linkedid']][_0xa05d('0xb')]=_0x435cfc['accountcode'];channels[_0x435cfc[_0xa05d('0x1e')]][_0xa05d('0x20')]=_0x435cfc[_0xa05d('0x12')];if(_[_0xa05d('0x1b')](channels[_0x435cfc[_0xa05d('0x1e')]][_0xa05d('0x21')])){channels[_0x435cfc[_0xa05d('0x1e')]][_0xa05d('0x21')]=utils['now']();}channels[_0x435cfc[_0xa05d('0x1e')]][_0xa05d('0xa')]=dispositions[_[_0xa05d('0x22')](_0x435cfc[_0xa05d('0x1c')])]||_0xa05d('0x3');}}catch(_0x320c49){utils['error'](_0x320c49[_0xa05d('0x19')]);}};exports[_0xa05d('0x23')]=function(_0xe12c08){try{if(!_[_0xa05d('0x1b')](channels[_0xe12c08['uniqueid']])){if(_['isNil'](channels[_0xe12c08[_0xa05d('0x11')]][_0xa05d('0x24')])){channels[_0xe12c08[_0xa05d('0x11')]][_0xa05d('0x24')]=_0xe12c08[_0xa05d('0x25')]+'\x20<'+_0xe12c08['calleridnum']+'>';}channels[_0xe12c08[_0xa05d('0x11')]][_0xa05d('0x26')]=utils['now']();channels[_0xe12c08[_0xa05d('0x11')]][_0xa05d('0x27')]=utils['diffTime'](channels[_0xe12c08[_0xa05d('0x11')]][_0xa05d('0x26')],channels[_0xe12c08[_0xa05d('0x11')]]['starttime']);channels[_0xe12c08['uniqueid']][_0xa05d('0x28')]=channels[_0xe12c08[_0xa05d('0x11')]][_0xa05d('0x21')]?utils['diffTime'](channels[_0xe12c08[_0xa05d('0x11')]][_0xa05d('0x26')],channels[_0xe12c08[_0xa05d('0x11')]]['answertime']):0x0;writeDB(channels[_0xe12c08['uniqueid']]);}}catch(_0x321a9c){utils['error'](_0x321a9c['stack']);}};exports['attendedtransfer']=function(_0x4d7066){try{if(!_['isNil'](channels[_0x4d7066[_0xa05d('0x29')]])){if(channels[_0x4d7066[_0xa05d('0x29')]]['channel']==_0x4d7066['transfereechannel']){channels[_0x4d7066['localtwolinkedid']][_0xa05d('0x20')]=_0x4d7066[_0xa05d('0x2a')];channels[_0x4d7066['localtwolinkedid']][_0xa05d('0x2b')]=_0xa05d('0x2c');}else if(channels[_0x4d7066[_0xa05d('0x29')]][_0xa05d('0x12')]=_0x4d7066['transfertargetchannel']){channels[_0x4d7066[_0xa05d('0x29')]][_0xa05d('0x20')]=_0x4d7066[_0xa05d('0x2d')];channels[_0x4d7066[_0xa05d('0x29')]][_0xa05d('0x2b')]='_attended';}}}catch(_0x2067a9){utils['error'](_0x2067a9[_0xa05d('0x19')]);}};exports[_0xa05d('0x2e')]=function(_0x54fbe3){try{if(!_[_0xa05d('0x1b')](channels[_0x54fbe3[_0xa05d('0x11')]])){channels[_0x54fbe3[_0xa05d('0x11')]]['musiconholdstartAt']=utils[_0xa05d('0x16')]();}}catch(_0x45e794){utils[_0xa05d('0x18')](_0x45e794[_0xa05d('0x19')]);}};exports['musiconholdstop']=function(_0xa5c9a7){try{if(!_[_0xa05d('0x1b')](channels[_0xa5c9a7['uniqueid']])){if(!_[_0xa05d('0x1b')](channels[_0xa5c9a7[_0xa05d('0x11')]]['musiconholdstartAt'])){channels[_0xa5c9a7[_0xa05d('0x11')]][_0xa05d('0x2f')]+=utils[_0xa05d('0x30')](utils[_0xa05d('0x16')](),channels[_0xa5c9a7[_0xa05d('0x11')]][_0xa05d('0x31')]);delete channels[_0xa5c9a7[_0xa05d('0x11')]][_0xa05d('0x31')];}}}catch(_0x550659){utils['error'](_0x550659[_0xa05d('0x19')]);}};exports[_0xa05d('0x32')]=function(_0x36678d){try{if(!_[_0xa05d('0x1b')](channels[_0x36678d[_0xa05d('0x11')]])){if(!_['isNil'](_0x36678d[_0xa05d('0x33')]['xmd-originatecalleridnum'])){channels[_0x36678d['uniqueid']][_0xa05d('0x8')]=_0x36678d[_0xa05d('0x34')];}if(!_[_0xa05d('0x1b')](_0x36678d[_0xa05d('0x33')]['xmd-phone'])){channels[_0x36678d[_0xa05d('0x11')]][_0xa05d('0x9')]=_0x36678d['value'];channels[_0x36678d['uniqueid']][_0xa05d('0x24')]='\x22'+_0x36678d[_0xa05d('0x34')]+'\x22\x20<'+_0x36678d['value']+'>';}if(!_[_0xa05d('0x1b')](_0x36678d[_0xa05d('0x33')][_0xa05d('0x35')])||!_[_0xa05d('0x1b')](_0x36678d[_0xa05d('0x33')][_0xa05d('0x36')])){channels[_0x36678d[_0xa05d('0x11')]][_0xa05d('0x24')]=_0x36678d[_0xa05d('0x34')];}if(!_[_0xa05d('0x1b')](_0x36678d['variable']['xmd-queue'])||!_[_0xa05d('0x1b')](_0x36678d[_0xa05d('0x33')][_0xa05d('0x37')])){channels[_0x36678d['uniqueid']][_0xa05d('0x38')]=_0xa05d('0x39');channels[_0x36678d[_0xa05d('0x11')]][_0xa05d('0x3a')]=_0x36678d[_0xa05d('0x34')];channels[_0x36678d['uniqueid']][_0xa05d('0x3b')]=!![];}if(!_[_0xa05d('0x1b')](_0x36678d[_0xa05d('0x33')][_0xa05d('0x3c')])){channels[_0x36678d[_0xa05d('0x11')]][_0xa05d('0x3d')]=_0x36678d[_0xa05d('0x34')];}if(!_['isNil'](_0x36678d[_0xa05d('0x33')][_0xa05d('0x3e')])){channels[_0x36678d[_0xa05d('0x11')]][_0xa05d('0x3f')]=_0x36678d['value'];}if(!_['isNil'](_0x36678d[_0xa05d('0x33')][_0xa05d('0x40')])){channels[_0x36678d['uniqueid']][_0xa05d('0x41')]=_0x36678d[_0xa05d('0x34')];}if(!_['isNil'](_0x36678d[_0xa05d('0x33')][_0xa05d('0x42')])){channels[_0x36678d[_0xa05d('0x11')]][_0xa05d('0x42')]=_0x36678d[_0xa05d('0x34')];}}}catch(_0x17877a){utils[_0xa05d('0x18')](_0x17877a[_0xa05d('0x19')]);}};exports[_0xa05d('0x43')]=function(_0x28cc1b){try{if(!_['isNil'](channels[_0x28cc1b['uniqueid']])){if(_0x28cc1b[_0xa05d('0x44')][_0xa05d('0x45')]()=='set'&&_[_0xa05d('0x46')](_0x28cc1b[_0xa05d('0x47')]['toLowerCase'](),'cdr')){var _0x140ad3=_0x28cc1b['appdata']['split']('=');var _0x13a3bf=_0x140ad3[0x0]['substring'](_0x140ad3[0x0]['lastIndexOf']('(')+0x1,_0x140ad3[0x0][_0xa05d('0x48')](')'));var _0x10b62f=_0x140ad3[0x1];channels[_0x28cc1b[_0xa05d('0x11')]][_0x13a3bf]=_0x10b62f;}if(!_[_0xa05d('0x49')]([_0xa05d('0x23'),'noop',_0xa05d('0x4a'),_0xa05d('0x4b'),'gotoif'],_0x28cc1b[_0xa05d('0x44')][_0xa05d('0x45')]())){channels[_0x28cc1b[_0xa05d('0x11')]][_0xa05d('0x38')]=_0x28cc1b[_0xa05d('0x44')];channels[_0x28cc1b[_0xa05d('0x11')]][_0xa05d('0x3a')]=_0x28cc1b[_0xa05d('0x47')];}}}catch(_0x50a344){utils[_0xa05d('0x18')](_0x50a344[_0xa05d('0x19')]);}};