Built motion from commit ddca4d0d.|2.5.47
[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 _0x29f1=['error','newstate','[%s][calls][newstate]','isNil','channelstate','[%s][calls][newstate]\x20context:%s\x20channel:%s','systemanswertime','linkedid','transfer','[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s','answertime','disposition','toNumber','hangup','callerid','calleridname','cause-txt','duration','diffTime','endtime','starttime','billableseconds','[%s][calls][hangup]','localtwolinkedid','[%s][calls][attendedtransfer]','origtransfereruniqueid','transfereechannel','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','destinationchannel','secondtransfererchannel','_attended','transfertargetchannel','origtransfererchannel','userfield','musiconholdstart','[%s][calls][musiconholdstart]','[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s','musiconholdstop','[%s][calls][musiconholdstop]','musiconholdstartAt','mohtime','[%s][calls][musiconholdstop]\x20mohtime:%s','variable','xmd-originatecalleridnum','[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s','value','source','xmd-phone','\x22\x20<','xmd-callerid','xmd-callerid-preview','xmd-queue','xmcs-queue','lastapplication','Queue','lastdata','queue','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','sipcallid','[%s][calls][varset]\x20variable:sipcallid\x20value:%s','newexten','[%s][calls][newexten]','application','appdata','toLowerCase','set','startsWith','cdr','substring','lastIndexOf','includes','noop','execif','gotoif','util','./transfers.controller','NO\x20ANSWER','FAILED','ANSWERED','BUSY','uniqueid','blinds','info','format','channel','membername','interface','calleridnum','connectedlinenum','lastevent','accountcode','request','CreateVoiceCallReport','debug','[%s][calls][newchannel]','OutgoingSpoolFailed','[%s][calls][newchannel]\x20context:%s\x20exten:%s','context','exten','now','DOCUMENTATION'];(function(_0x10d76e,_0x132f99){var _0x98612d=function(_0x49ee33){while(--_0x49ee33){_0x10d76e['push'](_0x10d76e['shift']());}};_0x98612d(++_0x132f99);}(_0x29f1,0x195));var _0x129f=function(_0x402eff,_0x2525f2){_0x402eff=_0x402eff-0x0;var _0x2eb371=_0x29f1[_0x402eff];return _0x2eb371;};'use strict';var _=require('lodash');var util=require(_0x129f('0x0'));var utils=require('./utils');var transfers=require(_0x129f('0x1'));var dispositions=[_0x129f('0x2'),_0x129f('0x3'),_0x129f('0x3'),'NO\x20ANSWER',_0x129f('0x2'),_0x129f('0x2'),_0x129f('0x4'),_0x129f('0x5'),_0x129f('0x3'),_0x129f('0x3'),_0x129f('0x3')];var channels={};function writeDB(_0x16e416){var _0x27e5ee;if(transfers['blinds'][_0x16e416['uniqueid']]){_0x27e5ee=_0x16e416[_0x129f('0x6')];_0x16e416[_0x129f('0x6')]=transfers[_0x129f('0x7')][_0x16e416[_0x129f('0x6')]]['transfereeuniqueid'];}utils[_0x129f('0x8')](util[_0x129f('0x9')]('[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s',_0x16e416[_0x129f('0x6')],_0x16e416[_0x129f('0xa')],_0x16e416['queue'],_0x16e416[_0x129f('0xb')],_0x16e416[_0x129f('0xc')],_0x16e416[_0x129f('0xd')],_0x16e416[_0x129f('0xe')],_0x16e416[_0x129f('0xf')]));if(_0x16e416[_0x129f('0x10')]){utils['getUserByInternal'](_0x16e416[_0x129f('0x10')])['then'](function(_0x8bff1c){if(_0x8bff1c){_0x16e416['UserId']=_0x8bff1c['id'];}utils[_0x129f('0x11')](_0x129f('0x12'),_0x16e416);});}else{utils[_0x129f('0x11')](_0x129f('0x12'),_0x16e416);}if(channels[_0x16e416[_0x129f('0x6')]]){delete channels[_0x16e416['uniqueid']];}else if(_0x27e5ee&&channels[_0x27e5ee]){if(!transfers[_0x129f('0x7')][_0x27e5ee]['recording'])delete transfers['blinds'][_0x27e5ee];delete channels[_0x27e5ee];}}exports['newchannel']=function(_0x70b8a9){try{utils[_0x129f('0x13')](util['format'](_0x129f('0x14'),_0x70b8a9[_0x129f('0x6')]),_0x70b8a9);if(_0x70b8a9['uniqueid']==_0x70b8a9['linkedid']&&_0x70b8a9[_0x129f('0xa')]!=_0x129f('0x15')){utils[_0x129f('0x8')](util['format'](_0x129f('0x16'),_0x70b8a9[_0x129f('0x6')],_0x70b8a9[_0x129f('0x17')],_0x70b8a9[_0x129f('0x18')]));channels[_0x70b8a9[_0x129f('0x6')]]={'uniqueid':_0x70b8a9[_0x129f('0x6')],'accountcode':_0x70b8a9[_0x129f('0x10')],'source':_0x70b8a9['calleridnum'],'destination':_0x70b8a9[_0x129f('0x18')],'destinationcontext':_0x70b8a9['context'],'channel':_0x70b8a9[_0x129f('0xa')],'starttime':utils[_0x129f('0x19')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':'NO\x20ANSWER','amaflags':_0x129f('0x1a')};}}catch(_0x9feab1){utils[_0x129f('0x1b')](util[_0x129f('0x9')](_0x129f('0x14'),_0x70b8a9[_0x129f('0x6')]),_0x9feab1);}};exports[_0x129f('0x1c')]=function(_0x29c37e){try{utils[_0x129f('0x13')](util[_0x129f('0x9')](_0x129f('0x1d'),_0x29c37e['uniqueid']),_0x29c37e);if(!_[_0x129f('0x1e')](channels[_0x29c37e[_0x129f('0x6')]])&&_0x29c37e[_0x129f('0x1f')]==0x6){utils[_0x129f('0x8')](util['format'](_0x129f('0x20'),_0x29c37e[_0x129f('0x6')],_0x29c37e[_0x129f('0x17')],_0x29c37e['channel']));if(_[_0x129f('0x1e')](channels[_0x29c37e['uniqueid']][_0x129f('0x21')])){channels[_0x29c37e[_0x129f('0x6')]][_0x129f('0x21')]=utils['now']();}}else if(!_[_0x129f('0x1e')](channels[_0x29c37e[_0x129f('0x22')]])&&_0x29c37e[_0x129f('0x1f')]==0x6&&_0x29c37e[_0x129f('0x17')]!=_0x129f('0x23')){utils[_0x129f('0x8')](util['format'](_0x129f('0x24'),_0x29c37e['uniqueid'],_0x29c37e[_0x129f('0x22')],_0x29c37e[_0x129f('0x17')],_0x29c37e[_0x129f('0xa')]));channels[_0x29c37e[_0x129f('0x22')]][_0x129f('0x10')]=_0x29c37e[_0x129f('0x10')];channels[_0x29c37e[_0x129f('0x22')]]['destinationchannel']=_0x29c37e[_0x129f('0xa')];if(_[_0x129f('0x1e')](channels[_0x29c37e[_0x129f('0x22')]]['answertime'])){channels[_0x29c37e[_0x129f('0x22')]][_0x129f('0x25')]=utils[_0x129f('0x19')]();}channels[_0x29c37e[_0x129f('0x22')]][_0x129f('0x26')]=dispositions[_[_0x129f('0x27')](_0x29c37e[_0x129f('0x1f')])]||'ANSWERED';}}catch(_0x4cb983){utils[_0x129f('0x1b')](util[_0x129f('0x9')](_0x129f('0x1d'),_0x29c37e[_0x129f('0x6')]),_0x4cb983);}};exports[_0x129f('0x28')]=function(_0x211990){try{if(!_[_0x129f('0x1e')](channels[_0x211990[_0x129f('0x6')]])){utils['debug'](util['format']('[%s][calls][hangup]',_0x211990[_0x129f('0x6')]),_0x211990);if(_['isNil'](channels[_0x211990[_0x129f('0x6')]]['callerid'])){channels[_0x211990[_0x129f('0x6')]][_0x129f('0x29')]=_0x211990[_0x129f('0x2a')]+'\x20<'+_0x211990[_0x129f('0xd')]+'>';}utils[_0x129f('0x8')](util[_0x129f('0x9')]('[%s][calls][hangup]\x20callerid:%s\x20reason:%s',_0x211990[_0x129f('0x6')],channels[_0x211990['uniqueid']][_0x129f('0x29')],_0x211990[_0x129f('0x2b')]));channels[_0x211990['uniqueid']]['endtime']=utils['now']();channels[_0x211990[_0x129f('0x6')]][_0x129f('0x2c')]=utils[_0x129f('0x2d')](channels[_0x211990['uniqueid']][_0x129f('0x2e')],channels[_0x211990[_0x129f('0x6')]][_0x129f('0x2f')]);channels[_0x211990['uniqueid']][_0x129f('0x30')]=channels[_0x211990['uniqueid']][_0x129f('0x25')]?utils[_0x129f('0x2d')](channels[_0x211990['uniqueid']][_0x129f('0x2e')],channels[_0x211990[_0x129f('0x6')]][_0x129f('0x25')]):0x0;writeDB(channels[_0x211990[_0x129f('0x6')]]);}}catch(_0x5df833){utils['error'](util['format'](_0x129f('0x31'),_0x211990[_0x129f('0x6')]),_0x5df833);}};exports['attendedtransfer']=function(_0x155c9d){try{if(!_['isNil'](channels[_0x155c9d[_0x129f('0x32')]])){utils[_0x129f('0x13')](util[_0x129f('0x9')](_0x129f('0x33'),_0x155c9d[_0x129f('0x34')]),_0x155c9d);if(channels[_0x155c9d[_0x129f('0x32')]][_0x129f('0xa')]==_0x155c9d[_0x129f('0x35')]){utils[_0x129f('0x8')](util[_0x129f('0x9')](_0x129f('0x36'),_0x155c9d[_0x129f('0x34')],_0x155c9d[_0x129f('0x32')],_0x155c9d['secondtransfererchannel']));channels[_0x155c9d[_0x129f('0x32')]][_0x129f('0x37')]=_0x155c9d[_0x129f('0x38')];channels[_0x155c9d[_0x129f('0x32')]]['userfield']=_0x129f('0x39');}else if(channels[_0x155c9d[_0x129f('0x32')]]['channel']=_0x155c9d[_0x129f('0x3a')]){utils[_0x129f('0x8')](util[_0x129f('0x9')](_0x129f('0x36'),_0x155c9d[_0x129f('0x34')],_0x155c9d[_0x129f('0x32')],_0x155c9d[_0x129f('0x3b')]));channels[_0x155c9d[_0x129f('0x32')]][_0x129f('0x37')]=_0x155c9d[_0x129f('0x3b')];channels[_0x155c9d[_0x129f('0x32')]][_0x129f('0x3c')]=_0x129f('0x39');}}}catch(_0x15df23){utils[_0x129f('0x1b')](util[_0x129f('0x9')](_0x129f('0x33'),_0x155c9d[_0x129f('0x34')]),_0x15df23);}};exports[_0x129f('0x3d')]=function(_0x2ff5e8){try{if(!_['isNil'](channels[_0x2ff5e8[_0x129f('0x6')]])){utils['debug'](util['format'](_0x129f('0x3e'),_0x2ff5e8['uniqueid']),_0x2ff5e8);channels[_0x2ff5e8[_0x129f('0x6')]]['musiconholdstartAt']=utils[_0x129f('0x19')]();utils[_0x129f('0x8')](util[_0x129f('0x9')](_0x129f('0x3f'),_0x2ff5e8[_0x129f('0x6')],channels[_0x2ff5e8[_0x129f('0x6')]]['musiconholdstartAt']));}}catch(_0x13c3a5){utils[_0x129f('0x1b')](util[_0x129f('0x9')](_0x129f('0x3e'),_0x2ff5e8[_0x129f('0x6')]),_0x13c3a5);}};exports[_0x129f('0x40')]=function(_0x2edda0){try{if(!_[_0x129f('0x1e')](channels[_0x2edda0[_0x129f('0x6')]])){utils[_0x129f('0x13')](util[_0x129f('0x9')](_0x129f('0x41'),_0x2edda0[_0x129f('0x6')]),_0x2edda0);if(!_[_0x129f('0x1e')](channels[_0x2edda0[_0x129f('0x6')]][_0x129f('0x42')])){channels[_0x2edda0[_0x129f('0x6')]][_0x129f('0x43')]+=utils[_0x129f('0x2d')](utils[_0x129f('0x19')](),channels[_0x2edda0[_0x129f('0x6')]][_0x129f('0x42')]);utils[_0x129f('0x8')](util['format'](_0x129f('0x44'),_0x2edda0[_0x129f('0x6')],channels[_0x2edda0[_0x129f('0x6')]]['mohtime']));delete channels[_0x2edda0[_0x129f('0x6')]][_0x129f('0x42')];}}}catch(_0x3b27b5){utils[_0x129f('0x1b')](util[_0x129f('0x9')](_0x129f('0x41'),_0x2edda0[_0x129f('0x6')]),_0x3b27b5);}};exports['varset']=function(_0x572540){try{if(!_[_0x129f('0x1e')](channels[_0x572540[_0x129f('0x6')]])){utils[_0x129f('0x13')](util[_0x129f('0x9')]('[%s][calls][varset]',_0x572540[_0x129f('0x6')]),_0x572540);if(!_[_0x129f('0x1e')](_0x572540[_0x129f('0x45')][_0x129f('0x46')])){utils[_0x129f('0x8')](util[_0x129f('0x9')](_0x129f('0x47'),_0x572540[_0x129f('0x6')],_0x572540[_0x129f('0x48')]));channels[_0x572540['uniqueid']][_0x129f('0x49')]=_0x572540[_0x129f('0x48')];}if(!_[_0x129f('0x1e')](_0x572540['variable'][_0x129f('0x4a')])){utils[_0x129f('0x8')](util[_0x129f('0x9')]('[%s][calls][varset]\x20variable:xmd-phone\x20value:%s',_0x572540[_0x129f('0x6')],_0x572540[_0x129f('0x48')]));channels[_0x572540['uniqueid']]['destination']=_0x572540[_0x129f('0x48')];channels[_0x572540[_0x129f('0x6')]][_0x129f('0x29')]='\x22'+_0x572540['value']+_0x129f('0x4b')+_0x572540[_0x129f('0x48')]+'>';}if(!_[_0x129f('0x1e')](_0x572540['variable']['xmd-callerid-preview'])||!_[_0x129f('0x1e')](_0x572540[_0x129f('0x45')][_0x129f('0x4c')])){utils[_0x129f('0x8')](util[_0x129f('0x9')]('[%s][calls][varset]\x20variable:%s\x20value:%s',_0x572540[_0x129f('0x6')],!_[_0x129f('0x1e')](_0x572540[_0x129f('0x45')][_0x129f('0x4d')])?_0x129f('0x4d'):_0x129f('0x4c'),_0x572540[_0x129f('0x48')]));channels[_0x572540['uniqueid']]['callerid']=_0x572540[_0x129f('0x48')];}if(!_[_0x129f('0x1e')](_0x572540[_0x129f('0x45')][_0x129f('0x4e')])||!_[_0x129f('0x1e')](_0x572540['variable'][_0x129f('0x4f')])){utils[_0x129f('0x8')](util[_0x129f('0x9')]('[%s][calls][varset]\x20variable:%s\x20value:%s',_0x572540['uniqueid'],!_[_0x129f('0x1e')](_0x572540[_0x129f('0x45')][_0x129f('0x4e')])?'xmd-queue':'xmcs-queue',_0x572540[_0x129f('0x48')]));channels[_0x572540[_0x129f('0x6')]][_0x129f('0x50')]=_0x129f('0x51');channels[_0x572540[_0x129f('0x6')]][_0x129f('0x52')]=_0x572540[_0x129f('0x48')];channels[_0x572540[_0x129f('0x6')]][_0x129f('0x53')]=!![];}if(!_['isNil'](_0x572540[_0x129f('0x45')][_0x129f('0x54')])){utils[_0x129f('0x8')](util[_0x129f('0x9')](_0x129f('0x55'),_0x572540[_0x129f('0x6')],_0x572540['value']));channels[_0x572540[_0x129f('0x6')]][_0x129f('0x56')]=_0x572540[_0x129f('0x48')];}if(!_['isNil'](_0x572540[_0x129f('0x45')][_0x129f('0x57')])){utils[_0x129f('0x8')](util[_0x129f('0x9')](_0x129f('0x58'),_0x572540[_0x129f('0x6')],_0x572540[_0x129f('0x48')]));channels[_0x572540[_0x129f('0x6')]][_0x129f('0x59')]=_0x572540[_0x129f('0x48')];}if(!_[_0x129f('0x1e')](_0x572540[_0x129f('0x45')][_0x129f('0x5a')])){utils['info'](util[_0x129f('0x9')](_0x129f('0x5b'),_0x572540[_0x129f('0x6')],_0x572540['value']));channels[_0x572540[_0x129f('0x6')]]['routeid']=_0x572540[_0x129f('0x48')];}if(!_['isNil'](_0x572540[_0x129f('0x45')][_0x129f('0x5c')])){utils['info'](util[_0x129f('0x9')](_0x129f('0x5d'),_0x572540[_0x129f('0x6')],_0x572540[_0x129f('0x48')]));channels[_0x572540[_0x129f('0x6')]][_0x129f('0x5c')]=_0x572540[_0x129f('0x48')];}}}catch(_0x1c8ab5){utils['error'](util[_0x129f('0x9')]('[%s][calls][varset]',_0x572540[_0x129f('0x6')]),_0x1c8ab5);}};exports[_0x129f('0x5e')]=function(_0x4cf176){try{if(!_[_0x129f('0x1e')](channels[_0x4cf176[_0x129f('0x6')]])){utils[_0x129f('0x13')](util['format'](_0x129f('0x5f'),_0x4cf176['uniqueid']),_0x4cf176);utils['info'](util[_0x129f('0x9')]('[%s][calls][newexten]\x20application:%s\x20appdata:%s',_0x4cf176[_0x129f('0x6')],_0x4cf176[_0x129f('0x60')],_0x4cf176[_0x129f('0x61')]));if(_0x4cf176[_0x129f('0x60')][_0x129f('0x62')]()==_0x129f('0x63')&&_[_0x129f('0x64')](_0x4cf176[_0x129f('0x61')]['toLowerCase'](),_0x129f('0x65'))){var _0x16c662=_0x4cf176[_0x129f('0x61')]['split']('=');var _0x5c73d8=_0x16c662[0x0][_0x129f('0x66')](_0x16c662[0x0][_0x129f('0x67')]('(')+0x1,_0x16c662[0x0][_0x129f('0x67')](')'));var _0x3cd526=_0x16c662[0x1];channels[_0x4cf176[_0x129f('0x6')]][_0x5c73d8]=_0x3cd526;}if(!_[_0x129f('0x68')](['hangup',_0x129f('0x69'),_0x129f('0x6a'),_0x129f('0x63'),_0x129f('0x6b')],_0x4cf176[_0x129f('0x60')][_0x129f('0x62')]())){channels[_0x4cf176[_0x129f('0x6')]]['lastapplication']=_0x4cf176[_0x129f('0x60')];channels[_0x4cf176['uniqueid']][_0x129f('0x52')]=_0x4cf176[_0x129f('0x61')];}}}catch(_0x9887c1){utils['error'](util[_0x129f('0x9')](_0x129f('0x5f'),_0x4cf176['uniqueid']),_0x9887c1);}};