b3d6b4a1a5a55d2fb4cf78812af3f1d5f2ce50a1
[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 _0x554a=['ContactId','outboundrouteid','routeid','sipcallid','application','toLowerCase','set','startsWith','cdr','appdata','lastIndexOf','noop','execif','gotoif','lastapplication','lodash','util','./utils','NO\x20ANSWER','FAILED','ANSWERED','BUSY','format','CALL|%s|%s|%s|%s|%s|%s|%s|%s','uniqueid','channel','type','accountcode','source','destination','callerid','getUserByInternal','then','UserId','request','CreateVoiceCallReport','linkedid','OutgoingSpoolFailed','calleridnum','exten','context','now','DOCUMENTATION','error','stack','newstate','isNil','channelstate','systemanswertime','destinationchannel','answertime','toNumber','hangup','endtime','duration','diffTime','localtwolinkedid','secondtransfererchannel','userfield','transfertargetchannel','origtransfererchannel','_attended','musiconholdstart','musiconholdstartAt','musiconholdstop','mohtime','varset','variable','xmd-originatecalleridnum','value','xmd-phone','\x22\x20<','xmd-callerid-preview','xmd-callerid','xmd-queue','xmcs-queue','lastdata','xmd-contactid'];(function(_0x2b9e8a,_0x7b21d4){var _0x520e67=function(_0x22bce8){while(--_0x22bce8){_0x2b9e8a['push'](_0x2b9e8a['shift']());}};_0x520e67(++_0x7b21d4);}(_0x554a,0x195));var _0xa554=function(_0x464d4e,_0x11491c){_0x464d4e=_0x464d4e-0x0;var _0x52aaec=_0x554a[_0x464d4e];return _0x52aaec;};'use strict';var _=require(_0xa554('0x0'));var util=require(_0xa554('0x1'));var utils=require(_0xa554('0x2'));var dispositions=[_0xa554('0x3'),_0xa554('0x4'),_0xa554('0x4'),'NO\x20ANSWER',_0xa554('0x3'),_0xa554('0x3'),_0xa554('0x5'),_0xa554('0x6'),_0xa554('0x4'),_0xa554('0x4'),_0xa554('0x4')];var channels={};function writeDB(_0xd710a4){utils['info'](util[_0xa554('0x7')](_0xa554('0x8'),_0xd710a4[_0xa554('0x9')],_0xd710a4[_0xa554('0xa')],_0xd710a4[_0xa554('0xb')],_0xd710a4[_0xa554('0xc')],_0xd710a4[_0xa554('0xd')],_0xd710a4[_0xa554('0xe')],_0xd710a4[_0xa554('0xf')],_0xd710a4['disposition']));if(_0xd710a4[_0xa554('0xc')]){utils[_0xa554('0x10')](_0xd710a4[_0xa554('0xc')])[_0xa554('0x11')](function(_0x33583a){if(_0x33583a){_0xd710a4[_0xa554('0x12')]=_0x33583a['id'];}utils[_0xa554('0x13')](_0xa554('0x14'),_0xd710a4);});}else{utils[_0xa554('0x13')](_0xa554('0x14'),_0xd710a4);}if(channels[_0xd710a4[_0xa554('0x9')]]){delete channels[_0xd710a4[_0xa554('0x9')]];}}exports['newchannel']=function(_0x28bb25){try{if(_0x28bb25[_0xa554('0x9')]==_0x28bb25[_0xa554('0x15')]&&_0x28bb25[_0xa554('0xa')]!=_0xa554('0x16')){channels[_0x28bb25[_0xa554('0x9')]]={'uniqueid':_0x28bb25[_0xa554('0x9')],'accountcode':_0x28bb25[_0xa554('0xc')],'source':_0x28bb25[_0xa554('0x17')],'destination':_0x28bb25[_0xa554('0x18')],'destinationcontext':_0x28bb25[_0xa554('0x19')],'channel':_0x28bb25[_0xa554('0xa')],'starttime':utils[_0xa554('0x1a')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':_0xa554('0x3'),'amaflags':_0xa554('0x1b')};}}catch(_0x502164){utils[_0xa554('0x1c')](_0x502164[_0xa554('0x1d')]);}};exports[_0xa554('0x1e')]=function(_0x2ebf71){try{if(!_[_0xa554('0x1f')](channels[_0x2ebf71[_0xa554('0x9')]])&&_0x2ebf71[_0xa554('0x20')]==0x6){if(_[_0xa554('0x1f')](channels[_0x2ebf71['uniqueid']][_0xa554('0x21')])){channels[_0x2ebf71[_0xa554('0x9')]]['systemanswertime']=utils[_0xa554('0x1a')]();}}else if(!_[_0xa554('0x1f')](channels[_0x2ebf71[_0xa554('0x15')]])&&_0x2ebf71[_0xa554('0x20')]==0x6&&_0x2ebf71[_0xa554('0x19')]!='transfer'){channels[_0x2ebf71[_0xa554('0x15')]][_0xa554('0xc')]=_0x2ebf71[_0xa554('0xc')];channels[_0x2ebf71['linkedid']][_0xa554('0x22')]=_0x2ebf71[_0xa554('0xa')];if(_[_0xa554('0x1f')](channels[_0x2ebf71[_0xa554('0x15')]][_0xa554('0x23')])){channels[_0x2ebf71[_0xa554('0x15')]][_0xa554('0x23')]=utils['now']();}channels[_0x2ebf71['linkedid']]['disposition']=dispositions[_[_0xa554('0x24')](_0x2ebf71[_0xa554('0x20')])]||'ANSWERED';}}catch(_0x3b3bfc){utils[_0xa554('0x1c')](_0x3b3bfc['stack']);}};exports[_0xa554('0x25')]=function(_0x88c478){try{if(!_[_0xa554('0x1f')](channels[_0x88c478['uniqueid']])){if(_[_0xa554('0x1f')](channels[_0x88c478['uniqueid']][_0xa554('0xf')])){channels[_0x88c478[_0xa554('0x9')]][_0xa554('0xf')]=_0x88c478['calleridname']+'\x20<'+_0x88c478[_0xa554('0x17')]+'>';}channels[_0x88c478[_0xa554('0x9')]][_0xa554('0x26')]=utils[_0xa554('0x1a')]();channels[_0x88c478[_0xa554('0x9')]][_0xa554('0x27')]=utils[_0xa554('0x28')](channels[_0x88c478[_0xa554('0x9')]][_0xa554('0x26')],channels[_0x88c478[_0xa554('0x9')]]['starttime']);channels[_0x88c478[_0xa554('0x9')]]['billableseconds']=channels[_0x88c478[_0xa554('0x9')]][_0xa554('0x23')]?utils[_0xa554('0x28')](channels[_0x88c478[_0xa554('0x9')]][_0xa554('0x26')],channels[_0x88c478[_0xa554('0x9')]][_0xa554('0x23')]):0x0;writeDB(channels[_0x88c478['uniqueid']]);}}catch(_0x36c5c3){utils[_0xa554('0x1c')](_0x36c5c3[_0xa554('0x1d')]);}};exports['attendedtransfer']=function(_0x47c18a){try{if(!_['isNil'](channels[_0x47c18a[_0xa554('0x29')]])){if(channels[_0x47c18a[_0xa554('0x29')]][_0xa554('0xa')]==_0x47c18a['transfereechannel']){channels[_0x47c18a['localtwolinkedid']][_0xa554('0x22')]=_0x47c18a[_0xa554('0x2a')];channels[_0x47c18a[_0xa554('0x29')]][_0xa554('0x2b')]='_attended';}else if(channels[_0x47c18a[_0xa554('0x29')]][_0xa554('0xa')]=_0x47c18a[_0xa554('0x2c')]){channels[_0x47c18a[_0xa554('0x29')]][_0xa554('0x22')]=_0x47c18a[_0xa554('0x2d')];channels[_0x47c18a[_0xa554('0x29')]][_0xa554('0x2b')]=_0xa554('0x2e');}}}catch(_0x198f53){utils['error'](_0x198f53['stack']);}};exports[_0xa554('0x2f')]=function(_0x3d3209){try{if(!_[_0xa554('0x1f')](channels[_0x3d3209['uniqueid']])){channels[_0x3d3209['uniqueid']][_0xa554('0x30')]=utils[_0xa554('0x1a')]();}}catch(_0x43d903){utils['error'](_0x43d903[_0xa554('0x1d')]);}};exports[_0xa554('0x31')]=function(_0xc703){try{if(!_['isNil'](channels[_0xc703[_0xa554('0x9')]])){if(!_['isNil'](channels[_0xc703[_0xa554('0x9')]][_0xa554('0x30')])){channels[_0xc703[_0xa554('0x9')]][_0xa554('0x32')]+=utils['diffTime'](utils['now'](),channels[_0xc703[_0xa554('0x9')]][_0xa554('0x30')]);delete channels[_0xc703['uniqueid']][_0xa554('0x30')];}}}catch(_0x49c9fb){utils[_0xa554('0x1c')](_0x49c9fb[_0xa554('0x1d')]);}};exports[_0xa554('0x33')]=function(_0x1bdd29){try{if(!_[_0xa554('0x1f')](channels[_0x1bdd29['uniqueid']])){if(!_[_0xa554('0x1f')](_0x1bdd29[_0xa554('0x34')][_0xa554('0x35')])){channels[_0x1bdd29[_0xa554('0x9')]][_0xa554('0xd')]=_0x1bdd29[_0xa554('0x36')];}if(!_[_0xa554('0x1f')](_0x1bdd29['variable'][_0xa554('0x37')])){channels[_0x1bdd29['uniqueid']][_0xa554('0xe')]=_0x1bdd29[_0xa554('0x36')];channels[_0x1bdd29[_0xa554('0x9')]][_0xa554('0xf')]='\x22'+_0x1bdd29[_0xa554('0x36')]+_0xa554('0x38')+_0x1bdd29[_0xa554('0x36')]+'>';}if(!_['isNil'](_0x1bdd29[_0xa554('0x34')][_0xa554('0x39')])||!_[_0xa554('0x1f')](_0x1bdd29['variable'][_0xa554('0x3a')])){channels[_0x1bdd29['uniqueid']][_0xa554('0xf')]=_0x1bdd29[_0xa554('0x36')];}if(!_['isNil'](_0x1bdd29[_0xa554('0x34')][_0xa554('0x3b')])||!_[_0xa554('0x1f')](_0x1bdd29[_0xa554('0x34')][_0xa554('0x3c')])){channels[_0x1bdd29['uniqueid']]['lastapplication']='Queue';channels[_0x1bdd29[_0xa554('0x9')]][_0xa554('0x3d')]=_0x1bdd29['value'];channels[_0x1bdd29[_0xa554('0x9')]]['queue']=!![];}if(!_[_0xa554('0x1f')](_0x1bdd29[_0xa554('0x34')][_0xa554('0x3e')])){channels[_0x1bdd29[_0xa554('0x9')]][_0xa554('0x3f')]=_0x1bdd29[_0xa554('0x36')];}if(!_[_0xa554('0x1f')](_0x1bdd29[_0xa554('0x34')]['xmd-cdrtype'])){channels[_0x1bdd29[_0xa554('0x9')]]['type']=_0x1bdd29[_0xa554('0x36')];}if(!_[_0xa554('0x1f')](_0x1bdd29['variable'][_0xa554('0x40')])){channels[_0x1bdd29[_0xa554('0x9')]][_0xa554('0x41')]=_0x1bdd29[_0xa554('0x36')];}if(!_[_0xa554('0x1f')](_0x1bdd29['variable'][_0xa554('0x42')])){channels[_0x1bdd29['uniqueid']][_0xa554('0x42')]=_0x1bdd29[_0xa554('0x36')];}}}catch(_0x1ac8f1){utils[_0xa554('0x1c')](_0x1ac8f1[_0xa554('0x1d')]);}};exports['newexten']=function(_0x4a7551){try{if(!_[_0xa554('0x1f')](channels[_0x4a7551[_0xa554('0x9')]])){if(_0x4a7551[_0xa554('0x43')][_0xa554('0x44')]()==_0xa554('0x45')&&_[_0xa554('0x46')](_0x4a7551['appdata'][_0xa554('0x44')](),_0xa554('0x47'))){var _0x177d7e=_0x4a7551[_0xa554('0x48')]['split']('=');var _0x1429c3=_0x177d7e[0x0]['substring'](_0x177d7e[0x0][_0xa554('0x49')]('(')+0x1,_0x177d7e[0x0][_0xa554('0x49')](')'));var _0x5b57a2=_0x177d7e[0x1];channels[_0x4a7551['uniqueid']][_0x1429c3]=_0x5b57a2;}if(!_['includes']([_0xa554('0x25'),_0xa554('0x4a'),_0xa554('0x4b'),'set',_0xa554('0x4c')],_0x4a7551['application'][_0xa554('0x44')]())){channels[_0x4a7551['uniqueid']][_0xa554('0x4d')]=_0x4a7551[_0xa554('0x43')];channels[_0x4a7551['uniqueid']]['lastdata']=_0x4a7551['appdata'];}}}catch(_0x37367e){utils[_0xa554('0x1c')](_0x37367e[_0xa554('0x1d')]);}};