Built motion from commit 3e059bc2.|2.5.32
[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 _0x87c3=['[%s][calls][newexten]','[%s][calls][newexten]\x20application:%s\x20appdata:%s','application','toLowerCase','set','startsWith','cdr','appdata','split','substring','lastIndexOf','includes','hangup','noop','execif','lastapplication','lodash','util','./utils','NO\x20ANSWER','FAILED','ANSWERED','BUSY','uniqueid','blinds','transfereeuniqueid','info','format','channel','queue','membername','interface','connectedlinenum','lastevent','accountcode','getUserByInternal','then','CreateVoiceCallReport','request','[%s][calls][newchannel]','linkedid','[%s][calls][newchannel]\x20context:%s\x20exten:%s','context','exten','calleridnum','now','DOCUMENTATION','error','newstate','[%s][calls][newstate]','isNil','channelstate','[%s][calls][newstate]\x20context:%s\x20channel:%s','systemanswertime','transfer','[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s','answertime','disposition','toNumber','debug','[%s][calls][hangup]','callerid','calleridname','[%s][calls][hangup]\x20callerid:%s\x20reason:%s','cause-txt','endtime','duration','diffTime','starttime','billableseconds','attendedtransfer','localtwolinkedid','origtransfereruniqueid','transfereechannel','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','secondtransfererchannel','destinationchannel','userfield','_attended','transfertargetchannel','[%s][calls][musiconholdstart]','musiconholdstartAt','musiconholdstop','[%s][calls][musiconholdstop]','mohtime','[%s][calls][musiconholdstop]\x20mohtime:%s','varset','[%s][calls][varset]','variable','xmd-originatecalleridnum','[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s','source','[%s][calls][varset]\x20variable:xmd-phone\x20value:%s','value','destination','\x22\x20<','xmd-callerid-preview','xmd-callerid','xmcs-queue','[%s][calls][varset]\x20variable:%s\x20value:%s','xmd-queue','lastdata','xmd-contactid','[%s][calls][varset]\x20variable:xmd-contactid\x20value:%s','[%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'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x87c3,0x80));var _0x387c=function(_0x389ddf,_0x456951){_0x389ddf=_0x389ddf-0x0;var _0x54db0b=_0x87c3[_0x389ddf];return _0x54db0b;};'use strict';var _=require(_0x387c('0x0'));var util=require(_0x387c('0x1'));var utils=require(_0x387c('0x2'));var transfers=require('./transfers.controller');var dispositions=[_0x387c('0x3'),_0x387c('0x4'),_0x387c('0x4'),_0x387c('0x3'),_0x387c('0x3'),_0x387c('0x3'),_0x387c('0x5'),_0x387c('0x6'),_0x387c('0x4'),_0x387c('0x4'),_0x387c('0x4')];var channels={};function writeDB(_0x4870df){var _0x9b0cf7;if(transfers['blinds'][_0x4870df['uniqueid']]){_0x9b0cf7=_0x4870df[_0x387c('0x7')];_0x4870df[_0x387c('0x7')]=transfers[_0x387c('0x8')][_0x4870df[_0x387c('0x7')]][_0x387c('0x9')];}utils[_0x387c('0xa')](util[_0x387c('0xb')]('[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s',_0x4870df[_0x387c('0x7')],_0x4870df[_0x387c('0xc')],_0x4870df[_0x387c('0xd')],_0x4870df[_0x387c('0xe')],_0x4870df[_0x387c('0xf')],_0x4870df['calleridnum'],_0x4870df[_0x387c('0x10')],_0x4870df[_0x387c('0x11')]));if(_0x4870df[_0x387c('0x12')]){utils[_0x387c('0x13')](_0x4870df[_0x387c('0x12')])[_0x387c('0x14')](function(_0x1fc1e6){if(_0x1fc1e6){_0x4870df['UserId']=_0x1fc1e6['id'];}utils['request'](_0x387c('0x15'),_0x4870df);});}else{utils[_0x387c('0x16')]('CreateVoiceCallReport',_0x4870df);}if(channels[_0x4870df[_0x387c('0x7')]]){delete channels[_0x4870df[_0x387c('0x7')]];}else if(_0x9b0cf7&&channels[_0x9b0cf7]){delete transfers['blinds'][_0x9b0cf7];delete channels[_0x9b0cf7];}}exports['newchannel']=function(_0x9dcc42){try{utils['debug'](util['format'](_0x387c('0x17'),_0x9dcc42['uniqueid']),_0x9dcc42);if(_0x9dcc42[_0x387c('0x7')]==_0x9dcc42[_0x387c('0x18')]&&_0x9dcc42[_0x387c('0xc')]!='OutgoingSpoolFailed'){utils['info'](util[_0x387c('0xb')](_0x387c('0x19'),_0x9dcc42[_0x387c('0x7')],_0x9dcc42[_0x387c('0x1a')],_0x9dcc42[_0x387c('0x1b')]));channels[_0x9dcc42[_0x387c('0x7')]]={'uniqueid':_0x9dcc42[_0x387c('0x7')],'accountcode':_0x9dcc42[_0x387c('0x12')],'source':_0x9dcc42[_0x387c('0x1c')],'destination':_0x9dcc42['exten'],'destinationcontext':_0x9dcc42[_0x387c('0x1a')],'channel':_0x9dcc42[_0x387c('0xc')],'starttime':utils[_0x387c('0x1d')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':_0x387c('0x3'),'amaflags':_0x387c('0x1e')};}}catch(_0x71fad5){utils[_0x387c('0x1f')](util['format'](_0x387c('0x17'),_0x9dcc42[_0x387c('0x7')]),_0x71fad5);}};exports[_0x387c('0x20')]=function(_0x2742e7){try{utils['debug'](util['format'](_0x387c('0x21'),_0x2742e7[_0x387c('0x7')]),_0x2742e7);if(!_[_0x387c('0x22')](channels[_0x2742e7[_0x387c('0x7')]])&&_0x2742e7[_0x387c('0x23')]==0x6){utils[_0x387c('0xa')](util[_0x387c('0xb')](_0x387c('0x24'),_0x2742e7['uniqueid'],_0x2742e7[_0x387c('0x1a')],_0x2742e7[_0x387c('0xc')]));if(_['isNil'](channels[_0x2742e7[_0x387c('0x7')]][_0x387c('0x25')])){channels[_0x2742e7['uniqueid']][_0x387c('0x25')]=utils['now']();}}else if(!_[_0x387c('0x22')](channels[_0x2742e7['linkedid']])&&_0x2742e7[_0x387c('0x23')]==0x6&&_0x2742e7['context']!=_0x387c('0x26')){utils['info'](util[_0x387c('0xb')](_0x387c('0x27'),_0x2742e7['uniqueid'],_0x2742e7['linkedid'],_0x2742e7[_0x387c('0x1a')],_0x2742e7[_0x387c('0xc')]));channels[_0x2742e7['linkedid']][_0x387c('0x12')]=_0x2742e7[_0x387c('0x12')];channels[_0x2742e7['linkedid']]['destinationchannel']=_0x2742e7['channel'];if(_[_0x387c('0x22')](channels[_0x2742e7[_0x387c('0x18')]]['answertime'])){channels[_0x2742e7[_0x387c('0x18')]][_0x387c('0x28')]=utils['now']();}channels[_0x2742e7['linkedid']][_0x387c('0x29')]=dispositions[_[_0x387c('0x2a')](_0x2742e7[_0x387c('0x23')])]||_0x387c('0x5');}}catch(_0x46b40e){utils['error'](util[_0x387c('0xb')](_0x387c('0x21'),_0x2742e7[_0x387c('0x7')]),_0x46b40e);}};exports['hangup']=function(_0x25caa3){try{if(!_[_0x387c('0x22')](channels[_0x25caa3[_0x387c('0x7')]])){utils[_0x387c('0x2b')](util[_0x387c('0xb')](_0x387c('0x2c'),_0x25caa3[_0x387c('0x7')]),_0x25caa3);if(_[_0x387c('0x22')](channels[_0x25caa3[_0x387c('0x7')]]['callerid'])){channels[_0x25caa3[_0x387c('0x7')]][_0x387c('0x2d')]=_0x25caa3[_0x387c('0x2e')]+'\x20<'+_0x25caa3[_0x387c('0x1c')]+'>';}utils[_0x387c('0xa')](util[_0x387c('0xb')](_0x387c('0x2f'),_0x25caa3['uniqueid'],channels[_0x25caa3[_0x387c('0x7')]][_0x387c('0x2d')],_0x25caa3[_0x387c('0x30')]));channels[_0x25caa3['uniqueid']][_0x387c('0x31')]=utils['now']();channels[_0x25caa3[_0x387c('0x7')]][_0x387c('0x32')]=utils[_0x387c('0x33')](channels[_0x25caa3[_0x387c('0x7')]][_0x387c('0x31')],channels[_0x25caa3[_0x387c('0x7')]][_0x387c('0x34')]);channels[_0x25caa3[_0x387c('0x7')]][_0x387c('0x35')]=channels[_0x25caa3[_0x387c('0x7')]]['answertime']?utils['diffTime'](channels[_0x25caa3['uniqueid']][_0x387c('0x31')],channels[_0x25caa3[_0x387c('0x7')]][_0x387c('0x28')]):0x0;writeDB(channels[_0x25caa3[_0x387c('0x7')]]);}}catch(_0x4bb4e0){utils[_0x387c('0x1f')](util[_0x387c('0xb')](_0x387c('0x2c'),_0x25caa3[_0x387c('0x7')]),_0x4bb4e0);}};exports[_0x387c('0x36')]=function(_0x1f3f5c){try{if(!_[_0x387c('0x22')](channels[_0x1f3f5c[_0x387c('0x37')]])){utils[_0x387c('0x2b')](util[_0x387c('0xb')]('[%s][calls][attendedtransfer]',_0x1f3f5c[_0x387c('0x38')]),_0x1f3f5c);if(channels[_0x1f3f5c[_0x387c('0x37')]][_0x387c('0xc')]==_0x1f3f5c[_0x387c('0x39')]){utils[_0x387c('0xa')](util['format'](_0x387c('0x3a'),_0x1f3f5c['origtransfereruniqueid'],_0x1f3f5c['localtwolinkedid'],_0x1f3f5c[_0x387c('0x3b')]));channels[_0x1f3f5c[_0x387c('0x37')]][_0x387c('0x3c')]=_0x1f3f5c['secondtransfererchannel'];channels[_0x1f3f5c[_0x387c('0x37')]][_0x387c('0x3d')]=_0x387c('0x3e');}else if(channels[_0x1f3f5c['localtwolinkedid']][_0x387c('0xc')]=_0x1f3f5c[_0x387c('0x3f')]){utils[_0x387c('0xa')](util[_0x387c('0xb')]('[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s',_0x1f3f5c['origtransfereruniqueid'],_0x1f3f5c[_0x387c('0x37')],_0x1f3f5c['origtransfererchannel']));channels[_0x1f3f5c[_0x387c('0x37')]][_0x387c('0x3c')]=_0x1f3f5c['origtransfererchannel'];channels[_0x1f3f5c[_0x387c('0x37')]][_0x387c('0x3d')]=_0x387c('0x3e');}}}catch(_0x3417ce){utils[_0x387c('0x1f')](util[_0x387c('0xb')]('[%s][calls][attendedtransfer]',_0x1f3f5c[_0x387c('0x38')]),_0x3417ce);}};exports['musiconholdstart']=function(_0x5ecbed){try{if(!_[_0x387c('0x22')](channels[_0x5ecbed[_0x387c('0x7')]])){utils[_0x387c('0x2b')](util[_0x387c('0xb')](_0x387c('0x40'),_0x5ecbed[_0x387c('0x7')]),_0x5ecbed);channels[_0x5ecbed[_0x387c('0x7')]][_0x387c('0x41')]=utils[_0x387c('0x1d')]();utils[_0x387c('0xa')](util['format']('[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s',_0x5ecbed[_0x387c('0x7')],channels[_0x5ecbed[_0x387c('0x7')]][_0x387c('0x41')]));}}catch(_0x5a947b){utils[_0x387c('0x1f')](util[_0x387c('0xb')](_0x387c('0x40'),_0x5ecbed['uniqueid']),_0x5a947b);}};exports[_0x387c('0x42')]=function(_0x302640){try{if(!_[_0x387c('0x22')](channels[_0x302640[_0x387c('0x7')]])){utils[_0x387c('0x2b')](util[_0x387c('0xb')](_0x387c('0x43'),_0x302640[_0x387c('0x7')]),_0x302640);if(!_[_0x387c('0x22')](channels[_0x302640[_0x387c('0x7')]][_0x387c('0x41')])){channels[_0x302640['uniqueid']][_0x387c('0x44')]+=utils[_0x387c('0x33')](utils[_0x387c('0x1d')](),channels[_0x302640[_0x387c('0x7')]][_0x387c('0x41')]);utils[_0x387c('0xa')](util['format'](_0x387c('0x45'),_0x302640[_0x387c('0x7')],channels[_0x302640[_0x387c('0x7')]]['mohtime']));delete channels[_0x302640[_0x387c('0x7')]][_0x387c('0x41')];}}}catch(_0x30de44){utils['error'](util[_0x387c('0xb')]('[%s][calls][musiconholdstop]',_0x302640['uniqueid']),_0x30de44);}};exports[_0x387c('0x46')]=function(_0x22ca9e){try{if(!_[_0x387c('0x22')](channels[_0x22ca9e['uniqueid']])){utils[_0x387c('0x2b')](util['format'](_0x387c('0x47'),_0x22ca9e['uniqueid']),_0x22ca9e);if(!_[_0x387c('0x22')](_0x22ca9e[_0x387c('0x48')][_0x387c('0x49')])){utils[_0x387c('0xa')](util[_0x387c('0xb')](_0x387c('0x4a'),_0x22ca9e[_0x387c('0x7')],_0x22ca9e['value']));channels[_0x22ca9e[_0x387c('0x7')]][_0x387c('0x4b')]=_0x22ca9e['value'];}if(!_['isNil'](_0x22ca9e[_0x387c('0x48')]['xmd-phone'])){utils[_0x387c('0xa')](util[_0x387c('0xb')](_0x387c('0x4c'),_0x22ca9e[_0x387c('0x7')],_0x22ca9e[_0x387c('0x4d')]));channels[_0x22ca9e[_0x387c('0x7')]][_0x387c('0x4e')]=_0x22ca9e[_0x387c('0x4d')];channels[_0x22ca9e[_0x387c('0x7')]][_0x387c('0x2d')]='\x22'+_0x22ca9e[_0x387c('0x4d')]+_0x387c('0x4f')+_0x22ca9e[_0x387c('0x4d')]+'>';}if(!_[_0x387c('0x22')](_0x22ca9e[_0x387c('0x48')][_0x387c('0x50')])||!_[_0x387c('0x22')](_0x22ca9e[_0x387c('0x48')][_0x387c('0x51')])){utils[_0x387c('0xa')](util[_0x387c('0xb')]('[%s][calls][varset]\x20variable:%s\x20value:%s',_0x22ca9e[_0x387c('0x7')],!_[_0x387c('0x22')](_0x22ca9e['variable'][_0x387c('0x50')])?_0x387c('0x50'):_0x387c('0x51'),_0x22ca9e[_0x387c('0x4d')]));channels[_0x22ca9e['uniqueid']]['callerid']=_0x22ca9e[_0x387c('0x4d')];}if(!_['isNil'](_0x22ca9e[_0x387c('0x48')]['xmd-queue'])||!_[_0x387c('0x22')](_0x22ca9e[_0x387c('0x48')][_0x387c('0x52')])){utils[_0x387c('0xa')](util[_0x387c('0xb')](_0x387c('0x53'),_0x22ca9e[_0x387c('0x7')],!_[_0x387c('0x22')](_0x22ca9e[_0x387c('0x48')][_0x387c('0x54')])?_0x387c('0x54'):'xmcs-queue',_0x22ca9e[_0x387c('0x4d')]));channels[_0x22ca9e[_0x387c('0x7')]]['lastapplication']='Queue';channels[_0x22ca9e[_0x387c('0x7')]][_0x387c('0x55')]=_0x22ca9e[_0x387c('0x4d')];channels[_0x22ca9e['uniqueid']][_0x387c('0xd')]=!![];}if(!_[_0x387c('0x22')](_0x22ca9e[_0x387c('0x48')][_0x387c('0x56')])){utils[_0x387c('0xa')](util[_0x387c('0xb')](_0x387c('0x57'),_0x22ca9e[_0x387c('0x7')],_0x22ca9e[_0x387c('0x4d')]));channels[_0x22ca9e[_0x387c('0x7')]]['ContactId']=_0x22ca9e['value'];}if(!_['isNil'](_0x22ca9e[_0x387c('0x48')]['xmd-cdrtype'])){utils[_0x387c('0xa')](util[_0x387c('0xb')](_0x387c('0x58'),_0x22ca9e[_0x387c('0x7')],_0x22ca9e[_0x387c('0x4d')]));channels[_0x22ca9e[_0x387c('0x7')]][_0x387c('0x59')]=_0x22ca9e[_0x387c('0x4d')];}if(!_['isNil'](_0x22ca9e[_0x387c('0x48')][_0x387c('0x5a')])){utils['info'](util['format'](_0x387c('0x5b'),_0x22ca9e['uniqueid'],_0x22ca9e['value']));channels[_0x22ca9e[_0x387c('0x7')]][_0x387c('0x5c')]=_0x22ca9e[_0x387c('0x4d')];}if(!_[_0x387c('0x22')](_0x22ca9e[_0x387c('0x48')][_0x387c('0x5d')])){utils[_0x387c('0xa')](util[_0x387c('0xb')](_0x387c('0x5e'),_0x22ca9e['uniqueid'],_0x22ca9e[_0x387c('0x4d')]));channels[_0x22ca9e[_0x387c('0x7')]]['sipcallid']=_0x22ca9e[_0x387c('0x4d')];}}}catch(_0x574574){utils['error'](util[_0x387c('0xb')](_0x387c('0x47'),_0x22ca9e[_0x387c('0x7')]),_0x574574);}};exports[_0x387c('0x5f')]=function(_0x37dd46){try{if(!_[_0x387c('0x22')](channels[_0x37dd46[_0x387c('0x7')]])){utils[_0x387c('0x2b')](util[_0x387c('0xb')](_0x387c('0x60'),_0x37dd46[_0x387c('0x7')]),_0x37dd46);utils[_0x387c('0xa')](util[_0x387c('0xb')](_0x387c('0x61'),_0x37dd46[_0x387c('0x7')],_0x37dd46['application'],_0x37dd46['appdata']));if(_0x37dd46[_0x387c('0x62')][_0x387c('0x63')]()==_0x387c('0x64')&&_[_0x387c('0x65')](_0x37dd46['appdata'][_0x387c('0x63')](),_0x387c('0x66'))){var _0x4aa77f=_0x37dd46[_0x387c('0x67')][_0x387c('0x68')]('=');var _0x380218=_0x4aa77f[0x0][_0x387c('0x69')](_0x4aa77f[0x0][_0x387c('0x6a')]('(')+0x1,_0x4aa77f[0x0][_0x387c('0x6a')](')'));var _0x4f45e2=_0x4aa77f[0x1];channels[_0x37dd46[_0x387c('0x7')]][_0x380218]=_0x4f45e2;}if(!_[_0x387c('0x6b')]([_0x387c('0x6c'),_0x387c('0x6d'),_0x387c('0x6e'),'set','gotoif'],_0x37dd46[_0x387c('0x62')]['toLowerCase']())){channels[_0x37dd46['uniqueid']][_0x387c('0x6f')]=_0x37dd46[_0x387c('0x62')];channels[_0x37dd46[_0x387c('0x7')]][_0x387c('0x55')]=_0x37dd46[_0x387c('0x67')];}}}catch(_0x1094ee){utils[_0x387c('0x1f')](util[_0x387c('0xb')](_0x387c('0x60'),_0x37dd46[_0x387c('0x7')]),_0x1094ee);}};