Built motion from commit (unavailable).|2.5.0
[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 _0xec66=['gotoif','lastdata','lodash','util','./utils','NO\x20ANSWER','FAILED','BUSY','info','format','CALL|%s|%s|%s|%s|%s|%s|%s|%s','uniqueid','channel','accountcode','source','callerid','disposition','getUserByInternal','then','UserId','request','CreateVoiceCallReport','newchannel','OutgoingSpoolFailed','calleridnum','context','now','DOCUMENTATION','error','stack','newstate','isNil','systemanswertime','channelstate','transfer','linkedid','destinationchannel','answertime','calleridname','endtime','starttime','billableseconds','diffTime','attendedtransfer','localtwolinkedid','transfereechannel','secondtransfererchannel','userfield','_attended','transfertargetchannel','origtransfererchannel','musiconholdstart','musiconholdstartAt','musiconholdstop','mohtime','varset','xmd-originatecalleridnum','value','variable','xmd-phone','destination','\x22\x20<','xmd-callerid-preview','xmd-callerid','xmd-queue','xmcs-queue','lastapplication','Queue','queue','ContactId','xmd-cdrtype','type','sipcallid','newexten','application','toLowerCase','set','startsWith','appdata','cdr','substring','lastIndexOf','includes','hangup','noop','execif'];(function(_0x4792c8,_0x5158a1){var _0x35edb1=function(_0x2472d3){while(--_0x2472d3){_0x4792c8['push'](_0x4792c8['shift']());}};_0x35edb1(++_0x5158a1);}(_0xec66,0x1b0));var _0x6ec6=function(_0xcdf809,_0x2881f0){_0xcdf809=_0xcdf809-0x0;var _0x4d4d70=_0xec66[_0xcdf809];return _0x4d4d70;};'use strict';var _=require(_0x6ec6('0x0'));var util=require(_0x6ec6('0x1'));var utils=require(_0x6ec6('0x2'));var dispositions=[_0x6ec6('0x3'),_0x6ec6('0x4'),_0x6ec6('0x4'),_0x6ec6('0x3'),_0x6ec6('0x3'),_0x6ec6('0x3'),'ANSWERED',_0x6ec6('0x5'),_0x6ec6('0x4'),_0x6ec6('0x4'),_0x6ec6('0x4')];var channels={};function writeDB(_0x587808){utils[_0x6ec6('0x6')](util[_0x6ec6('0x7')](_0x6ec6('0x8'),_0x587808[_0x6ec6('0x9')],_0x587808[_0x6ec6('0xa')],_0x587808['type'],_0x587808[_0x6ec6('0xb')],_0x587808[_0x6ec6('0xc')],_0x587808['destination'],_0x587808[_0x6ec6('0xd')],_0x587808[_0x6ec6('0xe')]));if(_0x587808['accountcode']){utils[_0x6ec6('0xf')](_0x587808[_0x6ec6('0xb')])[_0x6ec6('0x10')](function(_0x981e03){if(_0x981e03){_0x587808[_0x6ec6('0x11')]=_0x981e03['id'];}utils[_0x6ec6('0x12')](_0x6ec6('0x13'),_0x587808);});}else{utils['request'](_0x6ec6('0x13'),_0x587808);}if(channels[_0x587808[_0x6ec6('0x9')]]){delete channels[_0x587808[_0x6ec6('0x9')]];}}exports[_0x6ec6('0x14')]=function(_0x3245cc){try{if(_0x3245cc[_0x6ec6('0x9')]==_0x3245cc['linkedid']&&_0x3245cc[_0x6ec6('0xa')]!=_0x6ec6('0x15')){channels[_0x3245cc[_0x6ec6('0x9')]]={'uniqueid':_0x3245cc[_0x6ec6('0x9')],'accountcode':_0x3245cc['accountcode'],'source':_0x3245cc[_0x6ec6('0x16')],'destination':_0x3245cc['exten'],'destinationcontext':_0x3245cc[_0x6ec6('0x17')],'channel':_0x3245cc[_0x6ec6('0xa')],'starttime':utils[_0x6ec6('0x18')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':_0x6ec6('0x3'),'amaflags':_0x6ec6('0x19')};}}catch(_0x32ba0b){utils[_0x6ec6('0x1a')](_0x32ba0b[_0x6ec6('0x1b')]);}};exports[_0x6ec6('0x1c')]=function(_0x4899ff){try{if(!_[_0x6ec6('0x1d')](channels[_0x4899ff[_0x6ec6('0x9')]])&&_0x4899ff['channelstate']==0x6){if(_[_0x6ec6('0x1d')](channels[_0x4899ff['uniqueid']][_0x6ec6('0x1e')])){channels[_0x4899ff[_0x6ec6('0x9')]][_0x6ec6('0x1e')]=utils[_0x6ec6('0x18')]();}}else if(!_[_0x6ec6('0x1d')](channels[_0x4899ff['linkedid']])&&_0x4899ff[_0x6ec6('0x1f')]==0x6&&_0x4899ff[_0x6ec6('0x17')]!=_0x6ec6('0x20')){channels[_0x4899ff[_0x6ec6('0x21')]][_0x6ec6('0xb')]=_0x4899ff[_0x6ec6('0xb')];channels[_0x4899ff[_0x6ec6('0x21')]][_0x6ec6('0x22')]=_0x4899ff['channel'];if(_[_0x6ec6('0x1d')](channels[_0x4899ff[_0x6ec6('0x21')]]['answertime'])){channels[_0x4899ff[_0x6ec6('0x21')]][_0x6ec6('0x23')]=utils[_0x6ec6('0x18')]();}channels[_0x4899ff[_0x6ec6('0x21')]]['disposition']=dispositions[_['toNumber'](_0x4899ff['channelstate'])]||'ANSWERED';}}catch(_0x39d722){utils[_0x6ec6('0x1a')](_0x39d722[_0x6ec6('0x1b')]);}};exports['hangup']=function(_0x23f5e0){try{if(!_['isNil'](channels[_0x23f5e0['uniqueid']])){if(_[_0x6ec6('0x1d')](channels[_0x23f5e0['uniqueid']][_0x6ec6('0xd')])){channels[_0x23f5e0[_0x6ec6('0x9')]][_0x6ec6('0xd')]=_0x23f5e0[_0x6ec6('0x24')]+'\x20<'+_0x23f5e0[_0x6ec6('0x16')]+'>';}channels[_0x23f5e0[_0x6ec6('0x9')]][_0x6ec6('0x25')]=utils[_0x6ec6('0x18')]();channels[_0x23f5e0[_0x6ec6('0x9')]]['duration']=utils['diffTime'](channels[_0x23f5e0[_0x6ec6('0x9')]][_0x6ec6('0x25')],channels[_0x23f5e0[_0x6ec6('0x9')]][_0x6ec6('0x26')]);channels[_0x23f5e0[_0x6ec6('0x9')]][_0x6ec6('0x27')]=channels[_0x23f5e0[_0x6ec6('0x9')]][_0x6ec6('0x23')]?utils[_0x6ec6('0x28')](channels[_0x23f5e0['uniqueid']][_0x6ec6('0x25')],channels[_0x23f5e0[_0x6ec6('0x9')]][_0x6ec6('0x23')]):0x0;writeDB(channels[_0x23f5e0['uniqueid']]);}}catch(_0x326c15){utils[_0x6ec6('0x1a')](_0x326c15['stack']);}};exports[_0x6ec6('0x29')]=function(_0x50f6c7){try{if(!_[_0x6ec6('0x1d')](channels[_0x50f6c7['localtwolinkedid']])){if(channels[_0x50f6c7[_0x6ec6('0x2a')]][_0x6ec6('0xa')]==_0x50f6c7[_0x6ec6('0x2b')]){channels[_0x50f6c7[_0x6ec6('0x2a')]][_0x6ec6('0x22')]=_0x50f6c7[_0x6ec6('0x2c')];channels[_0x50f6c7[_0x6ec6('0x2a')]][_0x6ec6('0x2d')]=_0x6ec6('0x2e');}else if(channels[_0x50f6c7[_0x6ec6('0x2a')]][_0x6ec6('0xa')]=_0x50f6c7[_0x6ec6('0x2f')]){channels[_0x50f6c7['localtwolinkedid']][_0x6ec6('0x22')]=_0x50f6c7[_0x6ec6('0x30')];channels[_0x50f6c7[_0x6ec6('0x2a')]]['userfield']=_0x6ec6('0x2e');}}}catch(_0x27584f){utils[_0x6ec6('0x1a')](_0x27584f[_0x6ec6('0x1b')]);}};exports[_0x6ec6('0x31')]=function(_0x31ab9b){try{if(!_[_0x6ec6('0x1d')](channels[_0x31ab9b[_0x6ec6('0x9')]])){channels[_0x31ab9b[_0x6ec6('0x9')]][_0x6ec6('0x32')]=utils[_0x6ec6('0x18')]();}}catch(_0x30aeb4){utils['error'](_0x30aeb4['stack']);}};exports[_0x6ec6('0x33')]=function(_0x5a1a99){try{if(!_[_0x6ec6('0x1d')](channels[_0x5a1a99[_0x6ec6('0x9')]])){if(!_[_0x6ec6('0x1d')](channels[_0x5a1a99['uniqueid']][_0x6ec6('0x32')])){channels[_0x5a1a99['uniqueid']][_0x6ec6('0x34')]+=utils[_0x6ec6('0x28')](utils[_0x6ec6('0x18')](),channels[_0x5a1a99[_0x6ec6('0x9')]][_0x6ec6('0x32')]);delete channels[_0x5a1a99[_0x6ec6('0x9')]][_0x6ec6('0x32')];}}}catch(_0x28acb7){utils[_0x6ec6('0x1a')](_0x28acb7[_0x6ec6('0x1b')]);}};exports[_0x6ec6('0x35')]=function(_0x404766){try{if(!_[_0x6ec6('0x1d')](channels[_0x404766[_0x6ec6('0x9')]])){if(!_[_0x6ec6('0x1d')](_0x404766['variable'][_0x6ec6('0x36')])){channels[_0x404766[_0x6ec6('0x9')]]['source']=_0x404766[_0x6ec6('0x37')];}if(!_[_0x6ec6('0x1d')](_0x404766[_0x6ec6('0x38')][_0x6ec6('0x39')])){channels[_0x404766[_0x6ec6('0x9')]][_0x6ec6('0x3a')]=_0x404766[_0x6ec6('0x37')];channels[_0x404766[_0x6ec6('0x9')]][_0x6ec6('0xd')]='\x22'+_0x404766[_0x6ec6('0x37')]+_0x6ec6('0x3b')+_0x404766['value']+'>';}if(!_['isNil'](_0x404766[_0x6ec6('0x38')][_0x6ec6('0x3c')])||!_[_0x6ec6('0x1d')](_0x404766[_0x6ec6('0x38')][_0x6ec6('0x3d')])){channels[_0x404766[_0x6ec6('0x9')]][_0x6ec6('0xd')]=_0x404766[_0x6ec6('0x37')];}if(!_['isNil'](_0x404766[_0x6ec6('0x38')][_0x6ec6('0x3e')])||!_['isNil'](_0x404766[_0x6ec6('0x38')][_0x6ec6('0x3f')])){channels[_0x404766['uniqueid']][_0x6ec6('0x40')]=_0x6ec6('0x41');channels[_0x404766[_0x6ec6('0x9')]]['lastdata']=_0x404766['value'];channels[_0x404766['uniqueid']][_0x6ec6('0x42')]=!![];}if(!_['isNil'](_0x404766['variable']['xmd-contactid'])){channels[_0x404766[_0x6ec6('0x9')]][_0x6ec6('0x43')]=_0x404766[_0x6ec6('0x37')];}if(!_['isNil'](_0x404766[_0x6ec6('0x38')][_0x6ec6('0x44')])){channels[_0x404766[_0x6ec6('0x9')]][_0x6ec6('0x45')]=_0x404766[_0x6ec6('0x37')];}if(!_[_0x6ec6('0x1d')](_0x404766['variable']['outboundrouteid'])){channels[_0x404766[_0x6ec6('0x9')]]['routeid']=_0x404766[_0x6ec6('0x37')];}if(!_[_0x6ec6('0x1d')](_0x404766['variable'][_0x6ec6('0x46')])){channels[_0x404766[_0x6ec6('0x9')]][_0x6ec6('0x46')]=_0x404766[_0x6ec6('0x37')];}}}catch(_0x5380c7){utils['error'](_0x5380c7['stack']);}};exports[_0x6ec6('0x47')]=function(_0x1e9ed7){try{if(!_[_0x6ec6('0x1d')](channels[_0x1e9ed7[_0x6ec6('0x9')]])){if(_0x1e9ed7[_0x6ec6('0x48')][_0x6ec6('0x49')]()==_0x6ec6('0x4a')&&_[_0x6ec6('0x4b')](_0x1e9ed7[_0x6ec6('0x4c')][_0x6ec6('0x49')](),_0x6ec6('0x4d'))){var _0x1694eb=_0x1e9ed7[_0x6ec6('0x4c')]['split']('=');var _0x24fd8d=_0x1694eb[0x0][_0x6ec6('0x4e')](_0x1694eb[0x0][_0x6ec6('0x4f')]('(')+0x1,_0x1694eb[0x0][_0x6ec6('0x4f')](')'));var _0x9fc90d=_0x1694eb[0x1];channels[_0x1e9ed7[_0x6ec6('0x9')]][_0x24fd8d]=_0x9fc90d;}if(!_[_0x6ec6('0x50')]([_0x6ec6('0x51'),_0x6ec6('0x52'),_0x6ec6('0x53'),_0x6ec6('0x4a'),_0x6ec6('0x54')],_0x1e9ed7[_0x6ec6('0x48')]['toLowerCase']())){channels[_0x1e9ed7[_0x6ec6('0x9')]][_0x6ec6('0x40')]=_0x1e9ed7[_0x6ec6('0x48')];channels[_0x1e9ed7[_0x6ec6('0x9')]][_0x6ec6('0x55')]=_0x1e9ed7[_0x6ec6('0x4c')];}}}catch(_0x5d1099){utils[_0x6ec6('0x1a')](_0x5d1099['stack']);}};