Built motion from commit (unavailable).|2.5.3
[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 _0x90ad=['FAILED','ANSWERED','BUSY','info','format','CALL|%s|%s|%s|%s|%s|%s|%s|%s','uniqueid','channel','accountcode','source','destination','callerid','disposition','getUserByInternal','UserId','request','CreateVoiceCallReport','newchannel','linkedid','calleridnum','exten','now','DOCUMENTATION','error','stack','newstate','channelstate','isNil','systemanswertime','context','transfer','destinationchannel','answertime','toNumber','calleridname','duration','endtime','billableseconds','attendedtransfer','localtwolinkedid','transfereechannel','secondtransfererchannel','userfield','_attended','origtransfererchannel','musiconholdstart','musiconholdstop','musiconholdstartAt','diffTime','varset','xmd-originatecalleridnum','value','variable','xmd-phone','\x22\x20<','xmd-callerid-preview','xmd-callerid','xmd-queue','xmcs-queue','lastapplication','Queue','lastdata','queue','xmd-contactid','type','outboundrouteid','routeid','sipcallid','application','toLowerCase','startsWith','appdata','cdr','substring','lastIndexOf','hangup','noop','execif','set','gotoif','lodash','util','NO\x20ANSWER'];(function(_0x3cb608,_0x2dfbd1){var _0x4718fc=function(_0x28e430){while(--_0x28e430){_0x3cb608['push'](_0x3cb608['shift']());}};_0x4718fc(++_0x2dfbd1);}(_0x90ad,0xf6));var _0xd90a=function(_0x5d4f12,_0x11e67c){_0x5d4f12=_0x5d4f12-0x0;var _0x4eb577=_0x90ad[_0x5d4f12];return _0x4eb577;};'use strict';var _=require(_0xd90a('0x0'));var util=require(_0xd90a('0x1'));var utils=require('./utils');var dispositions=[_0xd90a('0x2'),_0xd90a('0x3'),_0xd90a('0x3'),_0xd90a('0x2'),_0xd90a('0x2'),_0xd90a('0x2'),_0xd90a('0x4'),_0xd90a('0x5'),'FAILED',_0xd90a('0x3'),_0xd90a('0x3')];var channels={};function writeDB(_0x1af6b5){utils[_0xd90a('0x6')](util[_0xd90a('0x7')](_0xd90a('0x8'),_0x1af6b5[_0xd90a('0x9')],_0x1af6b5[_0xd90a('0xa')],_0x1af6b5['type'],_0x1af6b5[_0xd90a('0xb')],_0x1af6b5[_0xd90a('0xc')],_0x1af6b5[_0xd90a('0xd')],_0x1af6b5[_0xd90a('0xe')],_0x1af6b5[_0xd90a('0xf')]));if(_0x1af6b5['accountcode']){utils[_0xd90a('0x10')](_0x1af6b5[_0xd90a('0xb')])['then'](function(_0x221953){if(_0x221953){_0x1af6b5[_0xd90a('0x11')]=_0x221953['id'];}utils[_0xd90a('0x12')](_0xd90a('0x13'),_0x1af6b5);});}else{utils[_0xd90a('0x12')](_0xd90a('0x13'),_0x1af6b5);}if(channels[_0x1af6b5['uniqueid']]){delete channels[_0x1af6b5[_0xd90a('0x9')]];}}exports[_0xd90a('0x14')]=function(_0x5dbe66){try{if(_0x5dbe66[_0xd90a('0x9')]==_0x5dbe66[_0xd90a('0x15')]&&_0x5dbe66[_0xd90a('0xa')]!='OutgoingSpoolFailed'){channels[_0x5dbe66[_0xd90a('0x9')]]={'uniqueid':_0x5dbe66[_0xd90a('0x9')],'accountcode':_0x5dbe66[_0xd90a('0xb')],'source':_0x5dbe66[_0xd90a('0x16')],'destination':_0x5dbe66[_0xd90a('0x17')],'destinationcontext':_0x5dbe66['context'],'channel':_0x5dbe66['channel'],'starttime':utils[_0xd90a('0x18')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':_0xd90a('0x2'),'amaflags':_0xd90a('0x19')};}}catch(_0x32a362){utils[_0xd90a('0x1a')](_0x32a362[_0xd90a('0x1b')]);}};exports[_0xd90a('0x1c')]=function(_0xa2d17f){try{if(!_['isNil'](channels[_0xa2d17f[_0xd90a('0x9')]])&&_0xa2d17f[_0xd90a('0x1d')]==0x6){if(_[_0xd90a('0x1e')](channels[_0xa2d17f[_0xd90a('0x9')]]['systemanswertime'])){channels[_0xa2d17f[_0xd90a('0x9')]][_0xd90a('0x1f')]=utils[_0xd90a('0x18')]();}}else if(!_[_0xd90a('0x1e')](channels[_0xa2d17f[_0xd90a('0x15')]])&&_0xa2d17f[_0xd90a('0x1d')]==0x6&&_0xa2d17f[_0xd90a('0x20')]!=_0xd90a('0x21')){channels[_0xa2d17f[_0xd90a('0x15')]]['accountcode']=_0xa2d17f[_0xd90a('0xb')];channels[_0xa2d17f[_0xd90a('0x15')]][_0xd90a('0x22')]=_0xa2d17f[_0xd90a('0xa')];if(_[_0xd90a('0x1e')](channels[_0xa2d17f[_0xd90a('0x15')]][_0xd90a('0x23')])){channels[_0xa2d17f['linkedid']]['answertime']=utils[_0xd90a('0x18')]();}channels[_0xa2d17f[_0xd90a('0x15')]][_0xd90a('0xf')]=dispositions[_[_0xd90a('0x24')](_0xa2d17f[_0xd90a('0x1d')])]||_0xd90a('0x4');}}catch(_0x44b0aa){utils[_0xd90a('0x1a')](_0x44b0aa[_0xd90a('0x1b')]);}};exports['hangup']=function(_0x3e4796){try{if(!_['isNil'](channels[_0x3e4796[_0xd90a('0x9')]])){if(_[_0xd90a('0x1e')](channels[_0x3e4796[_0xd90a('0x9')]][_0xd90a('0xe')])){channels[_0x3e4796[_0xd90a('0x9')]][_0xd90a('0xe')]=_0x3e4796[_0xd90a('0x25')]+'\x20<'+_0x3e4796[_0xd90a('0x16')]+'>';}channels[_0x3e4796[_0xd90a('0x9')]]['endtime']=utils[_0xd90a('0x18')]();channels[_0x3e4796[_0xd90a('0x9')]][_0xd90a('0x26')]=utils['diffTime'](channels[_0x3e4796[_0xd90a('0x9')]][_0xd90a('0x27')],channels[_0x3e4796['uniqueid']]['starttime']);channels[_0x3e4796[_0xd90a('0x9')]][_0xd90a('0x28')]=channels[_0x3e4796['uniqueid']][_0xd90a('0x23')]?utils['diffTime'](channels[_0x3e4796[_0xd90a('0x9')]]['endtime'],channels[_0x3e4796[_0xd90a('0x9')]][_0xd90a('0x23')]):0x0;writeDB(channels[_0x3e4796[_0xd90a('0x9')]]);}}catch(_0x3c793e){utils['error'](_0x3c793e[_0xd90a('0x1b')]);}};exports[_0xd90a('0x29')]=function(_0x44df27){try{if(!_['isNil'](channels[_0x44df27[_0xd90a('0x2a')]])){if(channels[_0x44df27[_0xd90a('0x2a')]][_0xd90a('0xa')]==_0x44df27[_0xd90a('0x2b')]){channels[_0x44df27['localtwolinkedid']]['destinationchannel']=_0x44df27[_0xd90a('0x2c')];channels[_0x44df27[_0xd90a('0x2a')]][_0xd90a('0x2d')]=_0xd90a('0x2e');}else if(channels[_0x44df27[_0xd90a('0x2a')]][_0xd90a('0xa')]=_0x44df27['transfertargetchannel']){channels[_0x44df27[_0xd90a('0x2a')]]['destinationchannel']=_0x44df27[_0xd90a('0x2f')];channels[_0x44df27[_0xd90a('0x2a')]]['userfield']='_attended';}}}catch(_0xdb4122){utils['error'](_0xdb4122[_0xd90a('0x1b')]);}};exports[_0xd90a('0x30')]=function(_0x200101){try{if(!_[_0xd90a('0x1e')](channels[_0x200101[_0xd90a('0x9')]])){channels[_0x200101['uniqueid']]['musiconholdstartAt']=utils[_0xd90a('0x18')]();}}catch(_0x45dd3e){utils[_0xd90a('0x1a')](_0x45dd3e[_0xd90a('0x1b')]);}};exports[_0xd90a('0x31')]=function(_0x10baa8){try{if(!_['isNil'](channels[_0x10baa8[_0xd90a('0x9')]])){if(!_[_0xd90a('0x1e')](channels[_0x10baa8[_0xd90a('0x9')]][_0xd90a('0x32')])){channels[_0x10baa8['uniqueid']]['mohtime']+=utils[_0xd90a('0x33')](utils[_0xd90a('0x18')](),channels[_0x10baa8[_0xd90a('0x9')]][_0xd90a('0x32')]);delete channels[_0x10baa8[_0xd90a('0x9')]][_0xd90a('0x32')];}}}catch(_0x5d4df4){utils[_0xd90a('0x1a')](_0x5d4df4['stack']);}};exports[_0xd90a('0x34')]=function(_0x50bac8){try{if(!_[_0xd90a('0x1e')](channels[_0x50bac8[_0xd90a('0x9')]])){if(!_[_0xd90a('0x1e')](_0x50bac8['variable'][_0xd90a('0x35')])){channels[_0x50bac8[_0xd90a('0x9')]][_0xd90a('0xc')]=_0x50bac8[_0xd90a('0x36')];}if(!_[_0xd90a('0x1e')](_0x50bac8[_0xd90a('0x37')][_0xd90a('0x38')])){channels[_0x50bac8[_0xd90a('0x9')]]['destination']=_0x50bac8[_0xd90a('0x36')];channels[_0x50bac8['uniqueid']][_0xd90a('0xe')]='\x22'+_0x50bac8['value']+_0xd90a('0x39')+_0x50bac8[_0xd90a('0x36')]+'>';}if(!_[_0xd90a('0x1e')](_0x50bac8['variable'][_0xd90a('0x3a')])||!_[_0xd90a('0x1e')](_0x50bac8[_0xd90a('0x37')][_0xd90a('0x3b')])){channels[_0x50bac8[_0xd90a('0x9')]][_0xd90a('0xe')]=_0x50bac8[_0xd90a('0x36')];}if(!_[_0xd90a('0x1e')](_0x50bac8[_0xd90a('0x37')][_0xd90a('0x3c')])||!_[_0xd90a('0x1e')](_0x50bac8[_0xd90a('0x37')][_0xd90a('0x3d')])){channels[_0x50bac8[_0xd90a('0x9')]][_0xd90a('0x3e')]=_0xd90a('0x3f');channels[_0x50bac8[_0xd90a('0x9')]][_0xd90a('0x40')]=_0x50bac8['value'];channels[_0x50bac8[_0xd90a('0x9')]][_0xd90a('0x41')]=!![];}if(!_[_0xd90a('0x1e')](_0x50bac8['variable'][_0xd90a('0x42')])){channels[_0x50bac8[_0xd90a('0x9')]]['ContactId']=_0x50bac8['value'];}if(!_['isNil'](_0x50bac8[_0xd90a('0x37')]['xmd-cdrtype'])){channels[_0x50bac8[_0xd90a('0x9')]][_0xd90a('0x43')]=_0x50bac8['value'];}if(!_[_0xd90a('0x1e')](_0x50bac8[_0xd90a('0x37')][_0xd90a('0x44')])){channels[_0x50bac8[_0xd90a('0x9')]][_0xd90a('0x45')]=_0x50bac8['value'];}if(!_[_0xd90a('0x1e')](_0x50bac8['variable'][_0xd90a('0x46')])){channels[_0x50bac8[_0xd90a('0x9')]][_0xd90a('0x46')]=_0x50bac8['value'];}}}catch(_0x3b0088){utils['error'](_0x3b0088[_0xd90a('0x1b')]);}};exports['newexten']=function(_0x2b17dd){try{if(!_[_0xd90a('0x1e')](channels[_0x2b17dd[_0xd90a('0x9')]])){if(_0x2b17dd[_0xd90a('0x47')][_0xd90a('0x48')]()=='set'&&_[_0xd90a('0x49')](_0x2b17dd[_0xd90a('0x4a')]['toLowerCase'](),_0xd90a('0x4b'))){var _0x27bac6=_0x2b17dd[_0xd90a('0x4a')]['split']('=');var _0x1bdc5b=_0x27bac6[0x0][_0xd90a('0x4c')](_0x27bac6[0x0]['lastIndexOf']('(')+0x1,_0x27bac6[0x0][_0xd90a('0x4d')](')'));var _0x1dec61=_0x27bac6[0x1];channels[_0x2b17dd['uniqueid']][_0x1bdc5b]=_0x1dec61;}if(!_['includes']([_0xd90a('0x4e'),_0xd90a('0x4f'),_0xd90a('0x50'),_0xd90a('0x51'),_0xd90a('0x52')],_0x2b17dd[_0xd90a('0x47')]['toLowerCase']())){channels[_0x2b17dd[_0xd90a('0x9')]]['lastapplication']=_0x2b17dd[_0xd90a('0x47')];channels[_0x2b17dd[_0xd90a('0x9')]][_0xd90a('0x40')]=_0x2b17dd[_0xd90a('0x4a')];}}}catch(_0x29756e){utils[_0xd90a('0x1a')](_0x29756e[_0xd90a('0x1b')]);}};