Built motion from commit d13fb11b.|2.6.34
[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 _0x115a=['duration','diffTime','billableseconds','localtwolinkedid','[%s][calls][attendedtransfer]','origtransfereruniqueid','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','secondtransfererchannel','userfield','_attended','transfertargetchannel','origtransfererchannel','[%s][calls][musiconholdstart]','musiconholdstartAt','[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s','[%s][calls][musiconholdstop]','mohtime','varset','[%s][calls][varset]','variable','xmd-originatecalleridnum','[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s','value','source','[%s][calls][varset]\x20variable:xmd-phone\x20value:%s','destination','\x22\x20<','xmd-callerid-preview','xmd-callerid','xmcs-queue','[%s][calls][varset]\x20variable:%s\x20value:%s','lastapplication','Queue','xmd-contactid','ContactId','xmd-cdrtype','[%s][calls][varset]\x20variable:xmd-cdrtype\x20value:%s','sipcallid','newexten','[%s][calls][newexten]','[%s][calls][newexten]\x20application:%s\x20appdata:%s','appdata','toLowerCase','set','cdr','split','substring','lastIndexOf','includes','noop','execif','gotoif','application','lastdata','lodash','./utils','NO\x20ANSWER','FAILED','ANSWERED','info','format','[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','channel','queue','interface','calleridnum','connectedlinenum','lastevent','accountcode','getUserByInternal','request','CreateVoiceCallReport','uniqueid','newchannel','[%s][calls][newchannel]','[%s][calls][newchannel]\x20context:%s\x20exten:%s','context','exten','now','DOCUMENTATION','error','newstate','debug','channelstate','[%s][calls][newstate]\x20context:%s\x20channel:%s','isNil','systemanswertime','transfer','[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s','linkedid','destinationchannel','answertime','disposition','[%s][calls][newstate]','hangup','[%s][calls][hangup]','callerid','calleridname','[%s][calls][hangup]\x20callerid:%s\x20reason:%s','cause-txt','endtime'];(function(_0x65c50e,_0x1aa926){var _0x4573e7=function(_0x5bc049){while(--_0x5bc049){_0x65c50e['push'](_0x65c50e['shift']());}};_0x4573e7(++_0x1aa926);}(_0x115a,0x1ca));var _0xa115=function(_0x48b062,_0x3b450d){_0x48b062=_0x48b062-0x0;var _0x2120fe=_0x115a[_0x48b062];return _0x2120fe;};'use strict';var _=require(_0xa115('0x0'));var util=require('util');var utils=require(_0xa115('0x1'));var dispositions=[_0xa115('0x2'),_0xa115('0x3'),'FAILED',_0xa115('0x2'),'NO\x20ANSWER',_0xa115('0x2'),_0xa115('0x4'),'BUSY',_0xa115('0x3'),_0xa115('0x3'),_0xa115('0x3')];var channels={};function writeDB(_0x912165){utils[_0xa115('0x5')](util[_0xa115('0x6')](_0xa115('0x7'),_0x912165['uniqueid'],_0x912165[_0xa115('0x8')],_0x912165[_0xa115('0x9')],_0x912165['membername'],_0x912165[_0xa115('0xa')],_0x912165[_0xa115('0xb')],_0x912165[_0xa115('0xc')],_0x912165[_0xa115('0xd')]));if(_0x912165[_0xa115('0xe')]){utils[_0xa115('0xf')](_0x912165[_0xa115('0xe')])['then'](function(_0x932e4c){if(_0x932e4c){_0x912165['UserId']=_0x932e4c['id'];}utils[_0xa115('0x10')](_0xa115('0x11'),_0x912165);});}else{utils['request'](_0xa115('0x11'),_0x912165);}if(channels[_0x912165[_0xa115('0x12')]]){delete channels[_0x912165[_0xa115('0x12')]];}}exports[_0xa115('0x13')]=function(_0x3a33bd){try{utils['debug'](util['format'](_0xa115('0x14'),_0x3a33bd['uniqueid']),_0x3a33bd);if(_0x3a33bd['uniqueid']==_0x3a33bd['linkedid']&&_0x3a33bd['channel']!='OutgoingSpoolFailed'){utils[_0xa115('0x5')](util[_0xa115('0x6')](_0xa115('0x15'),_0x3a33bd['uniqueid'],_0x3a33bd[_0xa115('0x16')],_0x3a33bd[_0xa115('0x17')]));channels[_0x3a33bd[_0xa115('0x12')]]={'uniqueid':_0x3a33bd[_0xa115('0x12')],'accountcode':_0x3a33bd[_0xa115('0xe')],'source':_0x3a33bd['calleridnum'],'destination':_0x3a33bd[_0xa115('0x17')],'destinationcontext':_0x3a33bd[_0xa115('0x16')],'channel':_0x3a33bd[_0xa115('0x8')],'starttime':utils[_0xa115('0x18')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':_0xa115('0x2'),'amaflags':_0xa115('0x19')};}}catch(_0x324964){utils[_0xa115('0x1a')](util[_0xa115('0x6')]('[%s][calls][newchannel]',_0x3a33bd['uniqueid']),_0x324964);}};exports[_0xa115('0x1b')]=function(_0x4931eb){try{utils[_0xa115('0x1c')](util['format']('[%s][calls][newstate]',_0x4931eb[_0xa115('0x12')]),_0x4931eb);if(!_['isNil'](channels[_0x4931eb[_0xa115('0x12')]])&&_0x4931eb[_0xa115('0x1d')]==0x6){utils[_0xa115('0x5')](util['format'](_0xa115('0x1e'),_0x4931eb['uniqueid'],_0x4931eb[_0xa115('0x16')],_0x4931eb[_0xa115('0x8')]));if(_[_0xa115('0x1f')](channels[_0x4931eb[_0xa115('0x12')]][_0xa115('0x20')])){channels[_0x4931eb[_0xa115('0x12')]][_0xa115('0x20')]=utils[_0xa115('0x18')]();}}else if(!_[_0xa115('0x1f')](channels[_0x4931eb['linkedid']])&&_0x4931eb[_0xa115('0x1d')]==0x6&&_0x4931eb[_0xa115('0x16')]!=_0xa115('0x21')){utils[_0xa115('0x5')](util[_0xa115('0x6')](_0xa115('0x22'),_0x4931eb[_0xa115('0x12')],_0x4931eb['linkedid'],_0x4931eb[_0xa115('0x16')],_0x4931eb['channel']));channels[_0x4931eb[_0xa115('0x23')]][_0xa115('0xe')]=_0x4931eb[_0xa115('0xe')];channels[_0x4931eb[_0xa115('0x23')]][_0xa115('0x24')]=_0x4931eb[_0xa115('0x8')];if(_[_0xa115('0x1f')](channels[_0x4931eb[_0xa115('0x23')]][_0xa115('0x25')])){channels[_0x4931eb[_0xa115('0x23')]][_0xa115('0x25')]=utils[_0xa115('0x18')]();}channels[_0x4931eb[_0xa115('0x23')]][_0xa115('0x26')]=dispositions[_['toNumber'](_0x4931eb[_0xa115('0x1d')])]||_0xa115('0x4');}}catch(_0x5a1ea2){utils[_0xa115('0x1a')](util['format'](_0xa115('0x27'),_0x4931eb[_0xa115('0x12')]),_0x5a1ea2);}};exports[_0xa115('0x28')]=function(_0x16b882){try{if(!_[_0xa115('0x1f')](channels[_0x16b882[_0xa115('0x12')]])){utils[_0xa115('0x1c')](util['format'](_0xa115('0x29'),_0x16b882[_0xa115('0x12')]),_0x16b882);if(_['isNil'](channels[_0x16b882[_0xa115('0x12')]][_0xa115('0x2a')])){channels[_0x16b882[_0xa115('0x12')]][_0xa115('0x2a')]=_0x16b882[_0xa115('0x2b')]+'\x20<'+_0x16b882[_0xa115('0xb')]+'>';}utils[_0xa115('0x5')](util[_0xa115('0x6')](_0xa115('0x2c'),_0x16b882[_0xa115('0x12')],channels[_0x16b882['uniqueid']][_0xa115('0x2a')],_0x16b882[_0xa115('0x2d')]));channels[_0x16b882['uniqueid']][_0xa115('0x2e')]=utils[_0xa115('0x18')]();channels[_0x16b882[_0xa115('0x12')]][_0xa115('0x2f')]=utils[_0xa115('0x30')](channels[_0x16b882['uniqueid']][_0xa115('0x2e')],channels[_0x16b882['uniqueid']]['starttime']);channels[_0x16b882[_0xa115('0x12')]][_0xa115('0x31')]=channels[_0x16b882[_0xa115('0x12')]][_0xa115('0x25')]?utils[_0xa115('0x30')](channels[_0x16b882[_0xa115('0x12')]][_0xa115('0x2e')],channels[_0x16b882[_0xa115('0x12')]][_0xa115('0x25')]):0x0;writeDB(channels[_0x16b882[_0xa115('0x12')]]);}}catch(_0x538200){utils['error'](util[_0xa115('0x6')]('[%s][calls][hangup]',_0x16b882[_0xa115('0x12')]),_0x538200);}};exports['attendedtransfer']=function(_0x5bdc95){try{if(!_['isNil'](channels[_0x5bdc95[_0xa115('0x32')]])){utils[_0xa115('0x1c')](util['format'](_0xa115('0x33'),_0x5bdc95[_0xa115('0x34')]),_0x5bdc95);if(channels[_0x5bdc95[_0xa115('0x32')]][_0xa115('0x8')]==_0x5bdc95['transfereechannel']){utils[_0xa115('0x5')](util[_0xa115('0x6')](_0xa115('0x35'),_0x5bdc95['origtransfereruniqueid'],_0x5bdc95[_0xa115('0x32')],_0x5bdc95[_0xa115('0x36')]));channels[_0x5bdc95[_0xa115('0x32')]][_0xa115('0x24')]=_0x5bdc95[_0xa115('0x36')];channels[_0x5bdc95[_0xa115('0x32')]][_0xa115('0x37')]=_0xa115('0x38');}else if(channels[_0x5bdc95['localtwolinkedid']]['channel']=_0x5bdc95[_0xa115('0x39')]){utils[_0xa115('0x5')](util[_0xa115('0x6')](_0xa115('0x35'),_0x5bdc95['origtransfereruniqueid'],_0x5bdc95['localtwolinkedid'],_0x5bdc95[_0xa115('0x3a')]));channels[_0x5bdc95[_0xa115('0x32')]][_0xa115('0x24')]=_0x5bdc95['origtransfererchannel'];channels[_0x5bdc95[_0xa115('0x32')]][_0xa115('0x37')]=_0xa115('0x38');}}}catch(_0x3839b2){utils[_0xa115('0x1a')](util[_0xa115('0x6')](_0xa115('0x33'),_0x5bdc95['origtransfereruniqueid']),_0x3839b2);}};exports['musiconholdstart']=function(_0x38ac39){try{if(!_[_0xa115('0x1f')](channels[_0x38ac39[_0xa115('0x12')]])){utils[_0xa115('0x1c')](util[_0xa115('0x6')](_0xa115('0x3b'),_0x38ac39[_0xa115('0x12')]),_0x38ac39);channels[_0x38ac39[_0xa115('0x12')]][_0xa115('0x3c')]=utils['now']();utils[_0xa115('0x5')](util[_0xa115('0x6')](_0xa115('0x3d'),_0x38ac39['uniqueid'],channels[_0x38ac39[_0xa115('0x12')]][_0xa115('0x3c')]));}}catch(_0x3e3d3f){utils['error'](util['format']('[%s][calls][musiconholdstart]',_0x38ac39[_0xa115('0x12')]),_0x3e3d3f);}};exports['musiconholdstop']=function(_0x10e86d){try{if(!_['isNil'](channels[_0x10e86d['uniqueid']])){utils[_0xa115('0x1c')](util[_0xa115('0x6')](_0xa115('0x3e'),_0x10e86d[_0xa115('0x12')]),_0x10e86d);if(!_[_0xa115('0x1f')](channels[_0x10e86d[_0xa115('0x12')]]['musiconholdstartAt'])){channels[_0x10e86d['uniqueid']][_0xa115('0x3f')]+=utils[_0xa115('0x30')](utils[_0xa115('0x18')](),channels[_0x10e86d[_0xa115('0x12')]][_0xa115('0x3c')]);utils[_0xa115('0x5')](util['format']('[%s][calls][musiconholdstop]\x20mohtime:%s',_0x10e86d['uniqueid'],channels[_0x10e86d[_0xa115('0x12')]][_0xa115('0x3f')]));delete channels[_0x10e86d['uniqueid']][_0xa115('0x3c')];}}}catch(_0x53d47a){utils[_0xa115('0x1a')](util[_0xa115('0x6')]('[%s][calls][musiconholdstop]',_0x10e86d['uniqueid']),_0x53d47a);}};exports[_0xa115('0x40')]=function(_0x5c335d){try{if(!_[_0xa115('0x1f')](channels[_0x5c335d['uniqueid']])){utils[_0xa115('0x1c')](util['format'](_0xa115('0x41'),_0x5c335d['uniqueid']),_0x5c335d);if(!_[_0xa115('0x1f')](_0x5c335d[_0xa115('0x42')][_0xa115('0x43')])){utils[_0xa115('0x5')](util['format'](_0xa115('0x44'),_0x5c335d[_0xa115('0x12')],_0x5c335d[_0xa115('0x45')]));channels[_0x5c335d[_0xa115('0x12')]][_0xa115('0x46')]=_0x5c335d['value'];}if(!_[_0xa115('0x1f')](_0x5c335d['variable']['xmd-phone'])){utils[_0xa115('0x5')](util[_0xa115('0x6')](_0xa115('0x47'),_0x5c335d[_0xa115('0x12')],_0x5c335d[_0xa115('0x45')]));channels[_0x5c335d[_0xa115('0x12')]][_0xa115('0x48')]=_0x5c335d['value'];channels[_0x5c335d['uniqueid']][_0xa115('0x2a')]='\x22'+_0x5c335d[_0xa115('0x45')]+_0xa115('0x49')+_0x5c335d['value']+'>';}if(!_['isNil'](_0x5c335d[_0xa115('0x42')][_0xa115('0x4a')])||!_[_0xa115('0x1f')](_0x5c335d[_0xa115('0x42')][_0xa115('0x4b')])){utils[_0xa115('0x5')](util[_0xa115('0x6')]('[%s][calls][varset]\x20variable:%s\x20value:%s',_0x5c335d['uniqueid'],!_[_0xa115('0x1f')](_0x5c335d[_0xa115('0x42')][_0xa115('0x4a')])?_0xa115('0x4a'):'xmd-callerid',_0x5c335d[_0xa115('0x45')]));channels[_0x5c335d[_0xa115('0x12')]][_0xa115('0x2a')]=_0x5c335d[_0xa115('0x45')];}if(!_[_0xa115('0x1f')](_0x5c335d[_0xa115('0x42')]['xmd-queue'])||!_[_0xa115('0x1f')](_0x5c335d[_0xa115('0x42')][_0xa115('0x4c')])){utils['info'](util[_0xa115('0x6')](_0xa115('0x4d'),_0x5c335d[_0xa115('0x12')],!_[_0xa115('0x1f')](_0x5c335d[_0xa115('0x42')]['xmd-queue'])?'xmd-queue':_0xa115('0x4c'),_0x5c335d['value']));channels[_0x5c335d[_0xa115('0x12')]][_0xa115('0x4e')]=_0xa115('0x4f');channels[_0x5c335d['uniqueid']]['lastdata']=_0x5c335d[_0xa115('0x45')];channels[_0x5c335d['uniqueid']][_0xa115('0x9')]=!![];}if(!_[_0xa115('0x1f')](_0x5c335d[_0xa115('0x42')][_0xa115('0x50')])){utils['info'](util[_0xa115('0x6')]('[%s][calls][varset]\x20variable:xmd-contactid\x20value:%s',_0x5c335d[_0xa115('0x12')],_0x5c335d[_0xa115('0x45')]));channels[_0x5c335d['uniqueid']][_0xa115('0x51')]=_0x5c335d[_0xa115('0x45')];}if(!_['isNil'](_0x5c335d[_0xa115('0x42')][_0xa115('0x52')])){utils[_0xa115('0x5')](util['format'](_0xa115('0x53'),_0x5c335d[_0xa115('0x12')],_0x5c335d[_0xa115('0x45')]));channels[_0x5c335d[_0xa115('0x12')]]['type']=_0x5c335d[_0xa115('0x45')];}if(!_[_0xa115('0x1f')](_0x5c335d[_0xa115('0x42')]['outboundrouteid'])){utils[_0xa115('0x5')](util[_0xa115('0x6')]('[%s][calls][varset]\x20variable:outboundrouteid\x20value:%s',_0x5c335d[_0xa115('0x12')],_0x5c335d[_0xa115('0x45')]));channels[_0x5c335d[_0xa115('0x12')]]['routeid']=_0x5c335d['value'];}if(!_[_0xa115('0x1f')](_0x5c335d[_0xa115('0x42')]['sipcallid'])){utils[_0xa115('0x5')](util[_0xa115('0x6')]('[%s][calls][varset]\x20variable:sipcallid\x20value:%s',_0x5c335d['uniqueid'],_0x5c335d[_0xa115('0x45')]));channels[_0x5c335d[_0xa115('0x12')]][_0xa115('0x54')]=_0x5c335d['value'];}}}catch(_0x2abcc1){utils[_0xa115('0x1a')](util[_0xa115('0x6')](_0xa115('0x41'),_0x5c335d[_0xa115('0x12')]),_0x2abcc1);}};exports[_0xa115('0x55')]=function(_0x2d8089){try{if(!_[_0xa115('0x1f')](channels[_0x2d8089[_0xa115('0x12')]])){utils[_0xa115('0x1c')](util[_0xa115('0x6')](_0xa115('0x56'),_0x2d8089[_0xa115('0x12')]),_0x2d8089);utils['info'](util[_0xa115('0x6')](_0xa115('0x57'),_0x2d8089[_0xa115('0x12')],_0x2d8089['application'],_0x2d8089[_0xa115('0x58')]));if(_0x2d8089['application'][_0xa115('0x59')]()==_0xa115('0x5a')&&_['startsWith'](_0x2d8089[_0xa115('0x58')][_0xa115('0x59')](),_0xa115('0x5b'))){var _0x1255ff=_0x2d8089[_0xa115('0x58')][_0xa115('0x5c')]('=');var _0x3f1235=_0x1255ff[0x0][_0xa115('0x5d')](_0x1255ff[0x0][_0xa115('0x5e')]('(')+0x1,_0x1255ff[0x0][_0xa115('0x5e')](')'));var _0x32bb3d=_0x1255ff[0x1];channels[_0x2d8089[_0xa115('0x12')]][_0x3f1235]=_0x32bb3d;}if(!_[_0xa115('0x5f')]([_0xa115('0x28'),_0xa115('0x60'),_0xa115('0x61'),_0xa115('0x5a'),_0xa115('0x62')],_0x2d8089[_0xa115('0x63')][_0xa115('0x59')]())){channels[_0x2d8089[_0xa115('0x12')]]['lastapplication']=_0x2d8089[_0xa115('0x63')];channels[_0x2d8089[_0xa115('0x12')]][_0xa115('0x64')]=_0x2d8089[_0xa115('0x58')];}}}catch(_0x4106b8){utils[_0xa115('0x1a')](util[_0xa115('0x6')](_0xa115('0x56'),_0x2d8089[_0xa115('0x12')]),_0x4106b8);}};