Built motion from commit (unavailable).|2.4.21
[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 _0x44c2=['application','toLowerCase','appdata','cdr','split','substring','lastIndexOf','includes','gotoif','lodash','util','./utils','FAILED','NO\x20ANSWER','ANSWERED','BUSY','info','format','CALL|%s|%s|%s|%s|%s|%s|%s|%s','uniqueid','channel','type','source','destination','disposition','accountcode','getUserByInternal','then','UserId','request','CreateVoiceCallReport','newchannel','linkedid','OutgoingSpoolFailed','calleridnum','exten','context','DOCUMENTATION','error','stack','newstate','isNil','systemanswertime','now','channelstate','answertime','callerid','calleridname','endtime','duration','starttime','diffTime','attendedtransfer','localtwolinkedid','destinationchannel','secondtransfererchannel','userfield','_attended','transfertargetchannel','origtransfererchannel','musiconholdstart','musiconholdstartAt','varset','variable','xmd-originatecalleridnum','value','\x22\x20<','xmd-callerid-preview','xmd-callerid','xmd-queue','xmcs-queue','lastapplication','lastdata','queue','xmd-contactid','ContactId','xmd-cdrtype','outboundrouteid','routeid','sipcallid','newexten'];(function(_0xe55082,_0x4c52ce){var _0xe14ad6=function(_0x32d14d){while(--_0x32d14d){_0xe55082['push'](_0xe55082['shift']());}};_0xe14ad6(++_0x4c52ce);}(_0x44c2,0x14d));var _0x244c=function(_0x5da0d9,_0x49ee54){_0x5da0d9=_0x5da0d9-0x0;var _0x4b6d2f=_0x44c2[_0x5da0d9];return _0x4b6d2f;};'use strict';var _=require(_0x244c('0x0'));var util=require(_0x244c('0x1'));var utils=require(_0x244c('0x2'));var dispositions=['NO\x20ANSWER',_0x244c('0x3'),_0x244c('0x3'),'NO\x20ANSWER',_0x244c('0x4'),_0x244c('0x4'),_0x244c('0x5'),_0x244c('0x6'),_0x244c('0x3'),_0x244c('0x3'),_0x244c('0x3')];var channels={};function writeDB(_0x25c874){utils[_0x244c('0x7')](util[_0x244c('0x8')](_0x244c('0x9'),_0x25c874[_0x244c('0xa')],_0x25c874[_0x244c('0xb')],_0x25c874[_0x244c('0xc')],_0x25c874['accountcode'],_0x25c874[_0x244c('0xd')],_0x25c874[_0x244c('0xe')],_0x25c874['callerid'],_0x25c874[_0x244c('0xf')]));if(_0x25c874[_0x244c('0x10')]){utils[_0x244c('0x11')](_0x25c874[_0x244c('0x10')])[_0x244c('0x12')](function(_0x24ac01){if(_0x24ac01){_0x25c874[_0x244c('0x13')]=_0x24ac01['id'];}utils[_0x244c('0x14')](_0x244c('0x15'),_0x25c874);});}else{utils[_0x244c('0x14')](_0x244c('0x15'),_0x25c874);}if(channels[_0x25c874[_0x244c('0xa')]]){delete channels[_0x25c874[_0x244c('0xa')]];}}exports[_0x244c('0x16')]=function(_0x41f4df){try{if(_0x41f4df['uniqueid']==_0x41f4df[_0x244c('0x17')]&&_0x41f4df[_0x244c('0xb')]!=_0x244c('0x18')){channels[_0x41f4df[_0x244c('0xa')]]={'uniqueid':_0x41f4df[_0x244c('0xa')],'accountcode':_0x41f4df[_0x244c('0x10')],'source':_0x41f4df[_0x244c('0x19')],'destination':_0x41f4df[_0x244c('0x1a')],'destinationcontext':_0x41f4df[_0x244c('0x1b')],'channel':_0x41f4df['channel'],'starttime':utils['now'](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':_0x244c('0x4'),'amaflags':_0x244c('0x1c')};}}catch(_0x246e4f){utils[_0x244c('0x1d')](_0x246e4f[_0x244c('0x1e')]);}};exports[_0x244c('0x1f')]=function(_0x4810cf){try{if(!_['isNil'](channels[_0x4810cf[_0x244c('0xa')]])&&_0x4810cf['channelstate']==0x6){if(_[_0x244c('0x20')](channels[_0x4810cf[_0x244c('0xa')]][_0x244c('0x21')])){channels[_0x4810cf[_0x244c('0xa')]][_0x244c('0x21')]=utils[_0x244c('0x22')]();}}else if(!_[_0x244c('0x20')](channels[_0x4810cf['linkedid']])&&_0x4810cf[_0x244c('0x23')]==0x6&&_0x4810cf[_0x244c('0x1b')]!='transfer'){channels[_0x4810cf[_0x244c('0x17')]]['accountcode']=_0x4810cf['accountcode'];channels[_0x4810cf['linkedid']]['destinationchannel']=_0x4810cf[_0x244c('0xb')];if(_[_0x244c('0x20')](channels[_0x4810cf['linkedid']][_0x244c('0x24')])){channels[_0x4810cf[_0x244c('0x17')]][_0x244c('0x24')]=utils[_0x244c('0x22')]();}channels[_0x4810cf[_0x244c('0x17')]]['disposition']=dispositions[_['toNumber'](_0x4810cf[_0x244c('0x23')])]||_0x244c('0x5');}}catch(_0x5f12a7){utils[_0x244c('0x1d')](_0x5f12a7[_0x244c('0x1e')]);}};exports['hangup']=function(_0xb786b3){try{if(!_[_0x244c('0x20')](channels[_0xb786b3[_0x244c('0xa')]])){if(_[_0x244c('0x20')](channels[_0xb786b3[_0x244c('0xa')]]['callerid'])){channels[_0xb786b3['uniqueid']][_0x244c('0x25')]=_0xb786b3[_0x244c('0x26')]+'\x20<'+_0xb786b3['calleridnum']+'>';}channels[_0xb786b3[_0x244c('0xa')]][_0x244c('0x27')]=utils[_0x244c('0x22')]();channels[_0xb786b3[_0x244c('0xa')]][_0x244c('0x28')]=utils['diffTime'](channels[_0xb786b3[_0x244c('0xa')]]['endtime'],channels[_0xb786b3[_0x244c('0xa')]][_0x244c('0x29')]);channels[_0xb786b3['uniqueid']]['billableseconds']=channels[_0xb786b3[_0x244c('0xa')]][_0x244c('0x24')]?utils[_0x244c('0x2a')](channels[_0xb786b3['uniqueid']][_0x244c('0x27')],channels[_0xb786b3[_0x244c('0xa')]][_0x244c('0x24')]):0x0;writeDB(channels[_0xb786b3[_0x244c('0xa')]]);}}catch(_0x55ebfb){utils['error'](_0x55ebfb['stack']);}};exports[_0x244c('0x2b')]=function(_0x2d66e4){try{if(!_['isNil'](channels[_0x2d66e4['localtwolinkedid']])){if(channels[_0x2d66e4[_0x244c('0x2c')]]['channel']==_0x2d66e4['transfereechannel']){channels[_0x2d66e4[_0x244c('0x2c')]][_0x244c('0x2d')]=_0x2d66e4[_0x244c('0x2e')];channels[_0x2d66e4['localtwolinkedid']][_0x244c('0x2f')]=_0x244c('0x30');}else if(channels[_0x2d66e4[_0x244c('0x2c')]][_0x244c('0xb')]=_0x2d66e4[_0x244c('0x31')]){channels[_0x2d66e4[_0x244c('0x2c')]][_0x244c('0x2d')]=_0x2d66e4[_0x244c('0x32')];channels[_0x2d66e4['localtwolinkedid']]['userfield']=_0x244c('0x30');}}}catch(_0x5c10d3){utils['error'](_0x5c10d3[_0x244c('0x1e')]);}};exports[_0x244c('0x33')]=function(_0x107d3c){try{if(!_[_0x244c('0x20')](channels[_0x107d3c[_0x244c('0xa')]])){channels[_0x107d3c['uniqueid']][_0x244c('0x34')]=utils[_0x244c('0x22')]();}}catch(_0x2ff513){utils['error'](_0x2ff513['stack']);}};exports['musiconholdstop']=function(_0x3257ca){try{if(!_[_0x244c('0x20')](channels[_0x3257ca[_0x244c('0xa')]])){if(!_['isNil'](channels[_0x3257ca[_0x244c('0xa')]][_0x244c('0x34')])){channels[_0x3257ca[_0x244c('0xa')]]['mohtime']+=utils[_0x244c('0x2a')](utils[_0x244c('0x22')](),channels[_0x3257ca[_0x244c('0xa')]]['musiconholdstartAt']);delete channels[_0x3257ca[_0x244c('0xa')]]['musiconholdstartAt'];}}}catch(_0x328471){utils[_0x244c('0x1d')](_0x328471['stack']);}};exports[_0x244c('0x35')]=function(_0x4129fb){try{if(!_['isNil'](channels[_0x4129fb[_0x244c('0xa')]])){if(!_[_0x244c('0x20')](_0x4129fb[_0x244c('0x36')][_0x244c('0x37')])){channels[_0x4129fb[_0x244c('0xa')]][_0x244c('0xd')]=_0x4129fb['value'];}if(!_[_0x244c('0x20')](_0x4129fb[_0x244c('0x36')]['xmd-phone'])){channels[_0x4129fb['uniqueid']][_0x244c('0xe')]=_0x4129fb[_0x244c('0x38')];channels[_0x4129fb[_0x244c('0xa')]][_0x244c('0x25')]='\x22'+_0x4129fb[_0x244c('0x38')]+_0x244c('0x39')+_0x4129fb[_0x244c('0x38')]+'>';}if(!_[_0x244c('0x20')](_0x4129fb[_0x244c('0x36')][_0x244c('0x3a')])||!_[_0x244c('0x20')](_0x4129fb[_0x244c('0x36')][_0x244c('0x3b')])){channels[_0x4129fb['uniqueid']][_0x244c('0x25')]=_0x4129fb[_0x244c('0x38')];}if(!_[_0x244c('0x20')](_0x4129fb[_0x244c('0x36')][_0x244c('0x3c')])||!_[_0x244c('0x20')](_0x4129fb['variable'][_0x244c('0x3d')])){channels[_0x4129fb['uniqueid']][_0x244c('0x3e')]='Queue';channels[_0x4129fb[_0x244c('0xa')]][_0x244c('0x3f')]=_0x4129fb[_0x244c('0x38')];channels[_0x4129fb[_0x244c('0xa')]][_0x244c('0x40')]=!![];}if(!_[_0x244c('0x20')](_0x4129fb['variable'][_0x244c('0x41')])){channels[_0x4129fb[_0x244c('0xa')]][_0x244c('0x42')]=_0x4129fb[_0x244c('0x38')];}if(!_[_0x244c('0x20')](_0x4129fb['variable'][_0x244c('0x43')])){channels[_0x4129fb['uniqueid']]['type']=_0x4129fb[_0x244c('0x38')];}if(!_[_0x244c('0x20')](_0x4129fb[_0x244c('0x36')][_0x244c('0x44')])){channels[_0x4129fb[_0x244c('0xa')]][_0x244c('0x45')]=_0x4129fb[_0x244c('0x38')];}if(!_[_0x244c('0x20')](_0x4129fb[_0x244c('0x36')][_0x244c('0x46')])){channels[_0x4129fb[_0x244c('0xa')]][_0x244c('0x46')]=_0x4129fb['value'];}}}catch(_0x47763e){utils[_0x244c('0x1d')](_0x47763e['stack']);}};exports[_0x244c('0x47')]=function(_0x379943){try{if(!_[_0x244c('0x20')](channels[_0x379943[_0x244c('0xa')]])){if(_0x379943[_0x244c('0x48')][_0x244c('0x49')]()=='set'&&_['startsWith'](_0x379943[_0x244c('0x4a')][_0x244c('0x49')](),_0x244c('0x4b'))){var _0xcffbcb=_0x379943[_0x244c('0x4a')][_0x244c('0x4c')]('=');var _0x1d3f7d=_0xcffbcb[0x0][_0x244c('0x4d')](_0xcffbcb[0x0][_0x244c('0x4e')]('(')+0x1,_0xcffbcb[0x0][_0x244c('0x4e')](')'));var _0x2e5faf=_0xcffbcb[0x1];channels[_0x379943['uniqueid']][_0x1d3f7d]=_0x2e5faf;}if(!_[_0x244c('0x4f')](['hangup','noop','execif','set',_0x244c('0x50')],_0x379943[_0x244c('0x48')][_0x244c('0x49')]())){channels[_0x379943[_0x244c('0xa')]][_0x244c('0x3e')]=_0x379943[_0x244c('0x48')];channels[_0x379943[_0x244c('0xa')]][_0x244c('0x3f')]=_0x379943[_0x244c('0x4a')];}}}catch(_0x403a3f){utils[_0x244c('0x1d')](_0x403a3f[_0x244c('0x1e')]);}};