Built motion from commit 3c2ce842.|2.6.31
[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 _0x4f94=['interface','connectedlinenum','lastevent','then','UserId','request','CreateVoiceCallReport','uniqueid','newchannel','[%s][calls][newchannel]','linkedid','OutgoingSpoolFailed','[%s][calls][newchannel]\x20context:%s\x20exten:%s','exten','context','now','error','newstate','debug','[%s][calls][newstate]','[%s][calls][newstate]\x20context:%s\x20channel:%s','systemanswertime','isNil','channelstate','transfer','accountcode','destinationchannel','answertime','disposition','toNumber','hangup','[%s][calls][hangup]','callerid','calleridname','calleridnum','[%s][calls][hangup]\x20callerid:%s\x20reason:%s','cause-txt','endtime','duration','diffTime','starttime','billableseconds','attendedtransfer','localtwolinkedid','[%s][calls][attendedtransfer]','origtransfereruniqueid','transfereechannel','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','secondtransfererchannel','userfield','origtransfererchannel','_attended','musiconholdstart','[%s][calls][musiconholdstart]','musiconholdstartAt','musiconholdstop','[%s][calls][musiconholdstop]','varset','[%s][calls][varset]','variable','xmd-originatecalleridnum','value','source','xmd-phone','[%s][calls][varset]\x20variable:xmd-phone\x20value:%s','destination','\x22\x20<','xmd-callerid-preview','xmd-callerid','[%s][calls][varset]\x20variable:%s\x20value:%s','xmd-queue','xmcs-queue','lastapplication','Queue','lastdata','xmd-contactid','[%s][calls][varset]\x20variable:xmd-contactid\x20value:%s','ContactId','xmd-cdrtype','[%s][calls][varset]\x20variable:xmd-cdrtype\x20value:%s','type','outboundrouteid','[%s][calls][varset]\x20variable:outboundrouteid\x20value:%s','routeid','sipcallid','[%s][calls][varset]\x20variable:sipcallid\x20value:%s','newexten','[%s][calls][newexten]','[%s][calls][newexten]\x20application:%s\x20appdata:%s','application','appdata','toLowerCase','set','startsWith','cdr','split','substring','lastIndexOf','includes','noop','execif','gotoif','util','./utils','FAILED','NO\x20ANSWER','ANSWERED','BUSY','info','format','[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','channel','queue','membername'];(function(_0x3ca829,_0xc55f17){var _0x3b416b=function(_0x592aae){while(--_0x592aae){_0x3ca829['push'](_0x3ca829['shift']());}};_0x3b416b(++_0xc55f17);}(_0x4f94,0x14a));var _0x44f9=function(_0x274fff,_0x120061){_0x274fff=_0x274fff-0x0;var _0x5803f0=_0x4f94[_0x274fff];return _0x5803f0;};'use strict';var _=require('lodash');var util=require(_0x44f9('0x0'));var utils=require(_0x44f9('0x1'));var dispositions=['NO\x20ANSWER','FAILED',_0x44f9('0x2'),_0x44f9('0x3'),_0x44f9('0x3'),_0x44f9('0x3'),_0x44f9('0x4'),_0x44f9('0x5'),_0x44f9('0x2'),'FAILED',_0x44f9('0x2')];var channels={};function writeDB(_0x47973f){utils[_0x44f9('0x6')](util[_0x44f9('0x7')](_0x44f9('0x8'),_0x47973f['uniqueid'],_0x47973f[_0x44f9('0x9')],_0x47973f[_0x44f9('0xa')],_0x47973f[_0x44f9('0xb')],_0x47973f[_0x44f9('0xc')],_0x47973f['calleridnum'],_0x47973f[_0x44f9('0xd')],_0x47973f[_0x44f9('0xe')]));if(_0x47973f['accountcode']){utils['getUserByInternal'](_0x47973f['accountcode'])[_0x44f9('0xf')](function(_0x4bd36d){if(_0x4bd36d){_0x47973f[_0x44f9('0x10')]=_0x4bd36d['id'];}utils[_0x44f9('0x11')](_0x44f9('0x12'),_0x47973f);});}else{utils[_0x44f9('0x11')]('CreateVoiceCallReport',_0x47973f);}if(channels[_0x47973f[_0x44f9('0x13')]]){delete channels[_0x47973f[_0x44f9('0x13')]];}}exports[_0x44f9('0x14')]=function(_0x442d21){try{utils['debug'](util['format'](_0x44f9('0x15'),_0x442d21[_0x44f9('0x13')]),_0x442d21);if(_0x442d21[_0x44f9('0x13')]==_0x442d21[_0x44f9('0x16')]&&_0x442d21[_0x44f9('0x9')]!=_0x44f9('0x17')){utils[_0x44f9('0x6')](util[_0x44f9('0x7')](_0x44f9('0x18'),_0x442d21[_0x44f9('0x13')],_0x442d21['context'],_0x442d21[_0x44f9('0x19')]));channels[_0x442d21[_0x44f9('0x13')]]={'uniqueid':_0x442d21[_0x44f9('0x13')],'accountcode':_0x442d21['accountcode'],'source':_0x442d21['calleridnum'],'destination':_0x442d21['exten'],'destinationcontext':_0x442d21[_0x44f9('0x1a')],'channel':_0x442d21['channel'],'starttime':utils[_0x44f9('0x1b')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':'NO\x20ANSWER','amaflags':'DOCUMENTATION'};}}catch(_0x236b5b){utils[_0x44f9('0x1c')](util[_0x44f9('0x7')](_0x44f9('0x15'),_0x442d21[_0x44f9('0x13')]),_0x236b5b);}};exports[_0x44f9('0x1d')]=function(_0x12c28e){try{utils[_0x44f9('0x1e')](util[_0x44f9('0x7')](_0x44f9('0x1f'),_0x12c28e[_0x44f9('0x13')]),_0x12c28e);if(!_['isNil'](channels[_0x12c28e[_0x44f9('0x13')]])&&_0x12c28e['channelstate']==0x6){utils[_0x44f9('0x6')](util[_0x44f9('0x7')](_0x44f9('0x20'),_0x12c28e[_0x44f9('0x13')],_0x12c28e[_0x44f9('0x1a')],_0x12c28e['channel']));if(_['isNil'](channels[_0x12c28e['uniqueid']][_0x44f9('0x21')])){channels[_0x12c28e['uniqueid']][_0x44f9('0x21')]=utils[_0x44f9('0x1b')]();}}else if(!_[_0x44f9('0x22')](channels[_0x12c28e['linkedid']])&&_0x12c28e[_0x44f9('0x23')]==0x6&&_0x12c28e[_0x44f9('0x1a')]!=_0x44f9('0x24')){utils[_0x44f9('0x6')](util['format']('[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s',_0x12c28e[_0x44f9('0x13')],_0x12c28e[_0x44f9('0x16')],_0x12c28e[_0x44f9('0x1a')],_0x12c28e[_0x44f9('0x9')]));channels[_0x12c28e[_0x44f9('0x16')]]['accountcode']=_0x12c28e[_0x44f9('0x25')];channels[_0x12c28e[_0x44f9('0x16')]][_0x44f9('0x26')]=_0x12c28e[_0x44f9('0x9')];if(_['isNil'](channels[_0x12c28e[_0x44f9('0x16')]][_0x44f9('0x27')])){channels[_0x12c28e[_0x44f9('0x16')]][_0x44f9('0x27')]=utils[_0x44f9('0x1b')]();}channels[_0x12c28e[_0x44f9('0x16')]][_0x44f9('0x28')]=dispositions[_[_0x44f9('0x29')](_0x12c28e['channelstate'])]||_0x44f9('0x4');}}catch(_0x2dfc7c){utils[_0x44f9('0x1c')](util[_0x44f9('0x7')](_0x44f9('0x1f'),_0x12c28e[_0x44f9('0x13')]),_0x2dfc7c);}};exports[_0x44f9('0x2a')]=function(_0x1293a5){try{if(!_['isNil'](channels[_0x1293a5[_0x44f9('0x13')]])){utils[_0x44f9('0x1e')](util[_0x44f9('0x7')](_0x44f9('0x2b'),_0x1293a5[_0x44f9('0x13')]),_0x1293a5);if(_['isNil'](channels[_0x1293a5[_0x44f9('0x13')]][_0x44f9('0x2c')])){channels[_0x1293a5[_0x44f9('0x13')]][_0x44f9('0x2c')]=_0x1293a5[_0x44f9('0x2d')]+'\x20<'+_0x1293a5[_0x44f9('0x2e')]+'>';}utils[_0x44f9('0x6')](util[_0x44f9('0x7')](_0x44f9('0x2f'),_0x1293a5[_0x44f9('0x13')],channels[_0x1293a5[_0x44f9('0x13')]]['callerid'],_0x1293a5[_0x44f9('0x30')]));channels[_0x1293a5[_0x44f9('0x13')]][_0x44f9('0x31')]=utils[_0x44f9('0x1b')]();channels[_0x1293a5[_0x44f9('0x13')]][_0x44f9('0x32')]=utils[_0x44f9('0x33')](channels[_0x1293a5[_0x44f9('0x13')]]['endtime'],channels[_0x1293a5[_0x44f9('0x13')]][_0x44f9('0x34')]);channels[_0x1293a5[_0x44f9('0x13')]][_0x44f9('0x35')]=channels[_0x1293a5[_0x44f9('0x13')]][_0x44f9('0x27')]?utils['diffTime'](channels[_0x1293a5[_0x44f9('0x13')]][_0x44f9('0x31')],channels[_0x1293a5[_0x44f9('0x13')]][_0x44f9('0x27')]):0x0;writeDB(channels[_0x1293a5[_0x44f9('0x13')]]);}}catch(_0x1c53b1){utils[_0x44f9('0x1c')](util[_0x44f9('0x7')]('[%s][calls][hangup]',_0x1293a5[_0x44f9('0x13')]),_0x1c53b1);}};exports[_0x44f9('0x36')]=function(_0x64a866){try{if(!_['isNil'](channels[_0x64a866[_0x44f9('0x37')]])){utils[_0x44f9('0x1e')](util[_0x44f9('0x7')](_0x44f9('0x38'),_0x64a866[_0x44f9('0x39')]),_0x64a866);if(channels[_0x64a866[_0x44f9('0x37')]]['channel']==_0x64a866[_0x44f9('0x3a')]){utils['info'](util[_0x44f9('0x7')](_0x44f9('0x3b'),_0x64a866[_0x44f9('0x39')],_0x64a866['localtwolinkedid'],_0x64a866['secondtransfererchannel']));channels[_0x64a866[_0x44f9('0x37')]]['destinationchannel']=_0x64a866[_0x44f9('0x3c')];channels[_0x64a866['localtwolinkedid']][_0x44f9('0x3d')]='_attended';}else if(channels[_0x64a866['localtwolinkedid']]['channel']=_0x64a866['transfertargetchannel']){utils[_0x44f9('0x6')](util[_0x44f9('0x7')]('[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s',_0x64a866['origtransfereruniqueid'],_0x64a866[_0x44f9('0x37')],_0x64a866[_0x44f9('0x3e')]));channels[_0x64a866[_0x44f9('0x37')]][_0x44f9('0x26')]=_0x64a866[_0x44f9('0x3e')];channels[_0x64a866[_0x44f9('0x37')]][_0x44f9('0x3d')]=_0x44f9('0x3f');}}}catch(_0x3ac380){utils[_0x44f9('0x1c')](util[_0x44f9('0x7')](_0x44f9('0x38'),_0x64a866[_0x44f9('0x39')]),_0x3ac380);}};exports[_0x44f9('0x40')]=function(_0x374fd0){try{if(!_[_0x44f9('0x22')](channels[_0x374fd0[_0x44f9('0x13')]])){utils[_0x44f9('0x1e')](util[_0x44f9('0x7')](_0x44f9('0x41'),_0x374fd0[_0x44f9('0x13')]),_0x374fd0);channels[_0x374fd0[_0x44f9('0x13')]][_0x44f9('0x42')]=utils[_0x44f9('0x1b')]();utils['info'](util[_0x44f9('0x7')]('[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s',_0x374fd0['uniqueid'],channels[_0x374fd0[_0x44f9('0x13')]][_0x44f9('0x42')]));}}catch(_0x111657){utils[_0x44f9('0x1c')](util[_0x44f9('0x7')](_0x44f9('0x41'),_0x374fd0[_0x44f9('0x13')]),_0x111657);}};exports[_0x44f9('0x43')]=function(_0x9d5ba2){try{if(!_[_0x44f9('0x22')](channels[_0x9d5ba2[_0x44f9('0x13')]])){utils['debug'](util[_0x44f9('0x7')](_0x44f9('0x44'),_0x9d5ba2[_0x44f9('0x13')]),_0x9d5ba2);if(!_[_0x44f9('0x22')](channels[_0x9d5ba2[_0x44f9('0x13')]][_0x44f9('0x42')])){channels[_0x9d5ba2[_0x44f9('0x13')]]['mohtime']+=utils['diffTime'](utils['now'](),channels[_0x9d5ba2[_0x44f9('0x13')]][_0x44f9('0x42')]);utils['info'](util['format']('[%s][calls][musiconholdstop]\x20mohtime:%s',_0x9d5ba2[_0x44f9('0x13')],channels[_0x9d5ba2[_0x44f9('0x13')]]['mohtime']));delete channels[_0x9d5ba2[_0x44f9('0x13')]]['musiconholdstartAt'];}}}catch(_0x462f18){utils[_0x44f9('0x1c')](util[_0x44f9('0x7')](_0x44f9('0x44'),_0x9d5ba2['uniqueid']),_0x462f18);}};exports[_0x44f9('0x45')]=function(_0x4426ee){try{if(!_[_0x44f9('0x22')](channels[_0x4426ee[_0x44f9('0x13')]])){utils[_0x44f9('0x1e')](util[_0x44f9('0x7')](_0x44f9('0x46'),_0x4426ee['uniqueid']),_0x4426ee);if(!_[_0x44f9('0x22')](_0x4426ee[_0x44f9('0x47')][_0x44f9('0x48')])){utils[_0x44f9('0x6')](util[_0x44f9('0x7')]('[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s',_0x4426ee[_0x44f9('0x13')],_0x4426ee[_0x44f9('0x49')]));channels[_0x4426ee[_0x44f9('0x13')]][_0x44f9('0x4a')]=_0x4426ee[_0x44f9('0x49')];}if(!_[_0x44f9('0x22')](_0x4426ee['variable'][_0x44f9('0x4b')])){utils[_0x44f9('0x6')](util[_0x44f9('0x7')](_0x44f9('0x4c'),_0x4426ee['uniqueid'],_0x4426ee[_0x44f9('0x49')]));channels[_0x4426ee[_0x44f9('0x13')]][_0x44f9('0x4d')]=_0x4426ee['value'];channels[_0x4426ee['uniqueid']][_0x44f9('0x2c')]='\x22'+_0x4426ee[_0x44f9('0x49')]+_0x44f9('0x4e')+_0x4426ee[_0x44f9('0x49')]+'>';}if(!_[_0x44f9('0x22')](_0x4426ee[_0x44f9('0x47')][_0x44f9('0x4f')])||!_[_0x44f9('0x22')](_0x4426ee['variable'][_0x44f9('0x50')])){utils['info'](util[_0x44f9('0x7')](_0x44f9('0x51'),_0x4426ee[_0x44f9('0x13')],!_[_0x44f9('0x22')](_0x4426ee[_0x44f9('0x47')][_0x44f9('0x4f')])?_0x44f9('0x4f'):_0x44f9('0x50'),_0x4426ee[_0x44f9('0x49')]));channels[_0x4426ee[_0x44f9('0x13')]][_0x44f9('0x2c')]=_0x4426ee[_0x44f9('0x49')];}if(!_[_0x44f9('0x22')](_0x4426ee[_0x44f9('0x47')][_0x44f9('0x52')])||!_[_0x44f9('0x22')](_0x4426ee['variable']['xmcs-queue'])){utils[_0x44f9('0x6')](util[_0x44f9('0x7')](_0x44f9('0x51'),_0x4426ee[_0x44f9('0x13')],!_[_0x44f9('0x22')](_0x4426ee['variable']['xmd-queue'])?_0x44f9('0x52'):_0x44f9('0x53'),_0x4426ee[_0x44f9('0x49')]));channels[_0x4426ee[_0x44f9('0x13')]][_0x44f9('0x54')]=_0x44f9('0x55');channels[_0x4426ee[_0x44f9('0x13')]][_0x44f9('0x56')]=_0x4426ee['value'];channels[_0x4426ee[_0x44f9('0x13')]][_0x44f9('0xa')]=!![];}if(!_['isNil'](_0x4426ee[_0x44f9('0x47')][_0x44f9('0x57')])){utils[_0x44f9('0x6')](util[_0x44f9('0x7')](_0x44f9('0x58'),_0x4426ee[_0x44f9('0x13')],_0x4426ee['value']));channels[_0x4426ee[_0x44f9('0x13')]][_0x44f9('0x59')]=_0x4426ee['value'];}if(!_[_0x44f9('0x22')](_0x4426ee[_0x44f9('0x47')][_0x44f9('0x5a')])){utils[_0x44f9('0x6')](util[_0x44f9('0x7')](_0x44f9('0x5b'),_0x4426ee[_0x44f9('0x13')],_0x4426ee[_0x44f9('0x49')]));channels[_0x4426ee[_0x44f9('0x13')]][_0x44f9('0x5c')]=_0x4426ee[_0x44f9('0x49')];}if(!_['isNil'](_0x4426ee['variable'][_0x44f9('0x5d')])){utils['info'](util['format'](_0x44f9('0x5e'),_0x4426ee[_0x44f9('0x13')],_0x4426ee['value']));channels[_0x4426ee[_0x44f9('0x13')]][_0x44f9('0x5f')]=_0x4426ee[_0x44f9('0x49')];}if(!_[_0x44f9('0x22')](_0x4426ee[_0x44f9('0x47')][_0x44f9('0x60')])){utils[_0x44f9('0x6')](util['format'](_0x44f9('0x61'),_0x4426ee[_0x44f9('0x13')],_0x4426ee[_0x44f9('0x49')]));channels[_0x4426ee[_0x44f9('0x13')]][_0x44f9('0x60')]=_0x4426ee[_0x44f9('0x49')];}}}catch(_0x327384){utils[_0x44f9('0x1c')](util[_0x44f9('0x7')](_0x44f9('0x46'),_0x4426ee[_0x44f9('0x13')]),_0x327384);}};exports[_0x44f9('0x62')]=function(_0xdbed19){try{if(!_['isNil'](channels[_0xdbed19[_0x44f9('0x13')]])){utils[_0x44f9('0x1e')](util[_0x44f9('0x7')](_0x44f9('0x63'),_0xdbed19[_0x44f9('0x13')]),_0xdbed19);utils[_0x44f9('0x6')](util[_0x44f9('0x7')](_0x44f9('0x64'),_0xdbed19['uniqueid'],_0xdbed19[_0x44f9('0x65')],_0xdbed19[_0x44f9('0x66')]));if(_0xdbed19[_0x44f9('0x65')][_0x44f9('0x67')]()==_0x44f9('0x68')&&_[_0x44f9('0x69')](_0xdbed19[_0x44f9('0x66')][_0x44f9('0x67')](),_0x44f9('0x6a'))){var _0x325b35=_0xdbed19['appdata'][_0x44f9('0x6b')]('=');var _0x51e68b=_0x325b35[0x0][_0x44f9('0x6c')](_0x325b35[0x0]['lastIndexOf']('(')+0x1,_0x325b35[0x0][_0x44f9('0x6d')](')'));var _0x1608c4=_0x325b35[0x1];channels[_0xdbed19[_0x44f9('0x13')]][_0x51e68b]=_0x1608c4;}if(!_[_0x44f9('0x6e')]([_0x44f9('0x2a'),_0x44f9('0x6f'),_0x44f9('0x70'),_0x44f9('0x68'),_0x44f9('0x71')],_0xdbed19[_0x44f9('0x65')][_0x44f9('0x67')]())){channels[_0xdbed19['uniqueid']][_0x44f9('0x54')]=_0xdbed19[_0x44f9('0x65')];channels[_0xdbed19['uniqueid']][_0x44f9('0x56')]=_0xdbed19['appdata'];}}}catch(_0x257f1d){utils['error'](util[_0x44f9('0x7')](_0x44f9('0x63'),_0xdbed19[_0x44f9('0x13')]),_0x257f1d);}};