d80b7b3a4d4418da08c15572bf75ab66de014721
[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 _0x3363=['[%s][calls][varset]\x20variable:outboundrouteid\x20value:%s','routeid','sipcallid','[%s][calls][varset]\x20variable:sipcallid\x20value:%s','newexten','[%s][calls][newexten]','application','toLowerCase','set','startsWith','cdr','appdata','substring','lastIndexOf','includes','noop','execif','gotoif','util','./utils','NO\x20ANSWER','FAILED','ANSWERED','BUSY','info','format','[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','channel','queue','membername','connectedlinenum','lastevent','getUserByInternal','accountcode','UserId','CreateVoiceCallReport','request','uniqueid','[%s][calls][newchannel]','linkedid','OutgoingSpoolFailed','[%s][calls][newchannel]\x20context:%s\x20exten:%s','exten','calleridnum','context','now','[%s][calls][newstate]','isNil','channelstate','[%s][calls][newstate]\x20context:%s\x20channel:%s','systemanswertime','transfer','[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s','destinationchannel','answertime','disposition','toNumber','error','hangup','debug','[%s][calls][hangup]','callerid','[%s][calls][hangup]\x20callerid:%s\x20reason:%s','cause-txt','endtime','duration','billableseconds','diffTime','localtwolinkedid','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','origtransfereruniqueid','_attended','origtransfererchannel','userfield','[%s][calls][attendedtransfer]','musiconholdstart','[%s][calls][musiconholdstart]','musiconholdstartAt','musiconholdstop','[%s][calls][musiconholdstop]','[%s][calls][musiconholdstop]\x20mohtime:%s','mohtime','varset','[%s][calls][varset]','variable','xmd-originatecalleridnum','[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s','xmd-phone','[%s][calls][varset]\x20variable:xmd-phone\x20value:%s','value','destination','\x22\x20<','xmd-callerid-preview','xmd-callerid','[%s][calls][varset]\x20variable:%s\x20value:%s','xmd-queue','xmcs-queue','lastapplication','Queue','lastdata','[%s][calls][varset]\x20variable:xmd-contactid\x20value:%s','xmd-cdrtype','[%s][calls][varset]\x20variable:xmd-cdrtype\x20value:%s','type','outboundrouteid'];(function(_0xe962a2,_0x48461d){var _0x1693b3=function(_0x59360d){while(--_0x59360d){_0xe962a2['push'](_0xe962a2['shift']());}};_0x1693b3(++_0x48461d);}(_0x3363,0x7b));var _0x3336=function(_0x478e17,_0x508549){_0x478e17=_0x478e17-0x0;var _0x367d06=_0x3363[_0x478e17];return _0x367d06;};'use strict';var _=require('lodash');var util=require(_0x3336('0x0'));var utils=require(_0x3336('0x1'));var dispositions=[_0x3336('0x2'),_0x3336('0x3'),_0x3336('0x3'),'NO\x20ANSWER','NO\x20ANSWER','NO\x20ANSWER',_0x3336('0x4'),_0x3336('0x5'),_0x3336('0x3'),'FAILED',_0x3336('0x3')];var channels={};function writeDB(_0x2c4d79){utils[_0x3336('0x6')](util[_0x3336('0x7')](_0x3336('0x8'),_0x2c4d79['uniqueid'],_0x2c4d79[_0x3336('0x9')],_0x2c4d79[_0x3336('0xa')],_0x2c4d79[_0x3336('0xb')],_0x2c4d79['interface'],_0x2c4d79['calleridnum'],_0x2c4d79[_0x3336('0xc')],_0x2c4d79[_0x3336('0xd')]));if(_0x2c4d79['accountcode']){utils[_0x3336('0xe')](_0x2c4d79[_0x3336('0xf')])['then'](function(_0x1bfccf){if(_0x1bfccf){_0x2c4d79[_0x3336('0x10')]=_0x1bfccf['id'];}utils['request'](_0x3336('0x11'),_0x2c4d79);});}else{utils[_0x3336('0x12')](_0x3336('0x11'),_0x2c4d79);}if(channels[_0x2c4d79[_0x3336('0x13')]]){delete channels[_0x2c4d79[_0x3336('0x13')]];}}exports['newchannel']=function(_0x581197){try{utils['debug'](util[_0x3336('0x7')](_0x3336('0x14'),_0x581197[_0x3336('0x13')]),_0x581197);if(_0x581197[_0x3336('0x13')]==_0x581197[_0x3336('0x15')]&&_0x581197['channel']!=_0x3336('0x16')){utils[_0x3336('0x6')](util[_0x3336('0x7')](_0x3336('0x17'),_0x581197[_0x3336('0x13')],_0x581197['context'],_0x581197[_0x3336('0x18')]));channels[_0x581197['uniqueid']]={'uniqueid':_0x581197['uniqueid'],'accountcode':_0x581197['accountcode'],'source':_0x581197[_0x3336('0x19')],'destination':_0x581197[_0x3336('0x18')],'destinationcontext':_0x581197[_0x3336('0x1a')],'channel':_0x581197['channel'],'starttime':utils[_0x3336('0x1b')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':'NO\x20ANSWER','amaflags':'DOCUMENTATION'};}}catch(_0x31be71){utils['error'](util[_0x3336('0x7')](_0x3336('0x14'),_0x581197[_0x3336('0x13')]),_0x31be71);}};exports['newstate']=function(_0x2aaa50){try{utils['debug'](util[_0x3336('0x7')](_0x3336('0x1c'),_0x2aaa50[_0x3336('0x13')]),_0x2aaa50);if(!_[_0x3336('0x1d')](channels[_0x2aaa50[_0x3336('0x13')]])&&_0x2aaa50[_0x3336('0x1e')]==0x6){utils['info'](util['format'](_0x3336('0x1f'),_0x2aaa50['uniqueid'],_0x2aaa50[_0x3336('0x1a')],_0x2aaa50[_0x3336('0x9')]));if(_['isNil'](channels[_0x2aaa50[_0x3336('0x13')]]['systemanswertime'])){channels[_0x2aaa50[_0x3336('0x13')]][_0x3336('0x20')]=utils['now']();}}else if(!_[_0x3336('0x1d')](channels[_0x2aaa50[_0x3336('0x15')]])&&_0x2aaa50[_0x3336('0x1e')]==0x6&&_0x2aaa50[_0x3336('0x1a')]!=_0x3336('0x21')){utils[_0x3336('0x6')](util[_0x3336('0x7')](_0x3336('0x22'),_0x2aaa50[_0x3336('0x13')],_0x2aaa50[_0x3336('0x15')],_0x2aaa50[_0x3336('0x1a')],_0x2aaa50['channel']));channels[_0x2aaa50[_0x3336('0x15')]][_0x3336('0xf')]=_0x2aaa50[_0x3336('0xf')];channels[_0x2aaa50[_0x3336('0x15')]][_0x3336('0x23')]=_0x2aaa50[_0x3336('0x9')];if(_[_0x3336('0x1d')](channels[_0x2aaa50[_0x3336('0x15')]][_0x3336('0x24')])){channels[_0x2aaa50[_0x3336('0x15')]]['answertime']=utils[_0x3336('0x1b')]();}channels[_0x2aaa50['linkedid']][_0x3336('0x25')]=dispositions[_[_0x3336('0x26')](_0x2aaa50[_0x3336('0x1e')])]||_0x3336('0x4');}}catch(_0x393461){utils[_0x3336('0x27')](util['format'](_0x3336('0x1c'),_0x2aaa50[_0x3336('0x13')]),_0x393461);}};exports[_0x3336('0x28')]=function(_0x382f30){try{if(!_[_0x3336('0x1d')](channels[_0x382f30[_0x3336('0x13')]])){utils[_0x3336('0x29')](util[_0x3336('0x7')](_0x3336('0x2a'),_0x382f30['uniqueid']),_0x382f30);if(_[_0x3336('0x1d')](channels[_0x382f30[_0x3336('0x13')]][_0x3336('0x2b')])){channels[_0x382f30[_0x3336('0x13')]]['callerid']=_0x382f30['calleridname']+'\x20<'+_0x382f30[_0x3336('0x19')]+'>';}utils[_0x3336('0x6')](util[_0x3336('0x7')](_0x3336('0x2c'),_0x382f30[_0x3336('0x13')],channels[_0x382f30[_0x3336('0x13')]][_0x3336('0x2b')],_0x382f30[_0x3336('0x2d')]));channels[_0x382f30['uniqueid']][_0x3336('0x2e')]=utils['now']();channels[_0x382f30[_0x3336('0x13')]][_0x3336('0x2f')]=utils['diffTime'](channels[_0x382f30[_0x3336('0x13')]][_0x3336('0x2e')],channels[_0x382f30['uniqueid']]['starttime']);channels[_0x382f30['uniqueid']][_0x3336('0x30')]=channels[_0x382f30[_0x3336('0x13')]][_0x3336('0x24')]?utils[_0x3336('0x31')](channels[_0x382f30[_0x3336('0x13')]][_0x3336('0x2e')],channels[_0x382f30[_0x3336('0x13')]][_0x3336('0x24')]):0x0;writeDB(channels[_0x382f30[_0x3336('0x13')]]);}}catch(_0x947231){utils['error'](util['format'](_0x3336('0x2a'),_0x382f30[_0x3336('0x13')]),_0x947231);}};exports['attendedtransfer']=function(_0x2641c5){try{if(!_[_0x3336('0x1d')](channels[_0x2641c5['localtwolinkedid']])){utils[_0x3336('0x29')](util[_0x3336('0x7')]('[%s][calls][attendedtransfer]',_0x2641c5['origtransfereruniqueid']),_0x2641c5);if(channels[_0x2641c5[_0x3336('0x32')]][_0x3336('0x9')]==_0x2641c5['transfereechannel']){utils['info'](util[_0x3336('0x7')](_0x3336('0x33'),_0x2641c5[_0x3336('0x34')],_0x2641c5[_0x3336('0x32')],_0x2641c5['secondtransfererchannel']));channels[_0x2641c5[_0x3336('0x32')]][_0x3336('0x23')]=_0x2641c5['secondtransfererchannel'];channels[_0x2641c5[_0x3336('0x32')]]['userfield']=_0x3336('0x35');}else if(channels[_0x2641c5[_0x3336('0x32')]]['channel']=_0x2641c5['transfertargetchannel']){utils[_0x3336('0x6')](util[_0x3336('0x7')](_0x3336('0x33'),_0x2641c5[_0x3336('0x34')],_0x2641c5[_0x3336('0x32')],_0x2641c5[_0x3336('0x36')]));channels[_0x2641c5[_0x3336('0x32')]][_0x3336('0x23')]=_0x2641c5[_0x3336('0x36')];channels[_0x2641c5[_0x3336('0x32')]][_0x3336('0x37')]=_0x3336('0x35');}}}catch(_0x4dd6da){utils[_0x3336('0x27')](util[_0x3336('0x7')](_0x3336('0x38'),_0x2641c5[_0x3336('0x34')]),_0x4dd6da);}};exports[_0x3336('0x39')]=function(_0x1997b3){try{if(!_[_0x3336('0x1d')](channels[_0x1997b3['uniqueid']])){utils[_0x3336('0x29')](util[_0x3336('0x7')](_0x3336('0x3a'),_0x1997b3[_0x3336('0x13')]),_0x1997b3);channels[_0x1997b3[_0x3336('0x13')]][_0x3336('0x3b')]=utils[_0x3336('0x1b')]();utils['info'](util[_0x3336('0x7')]('[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s',_0x1997b3['uniqueid'],channels[_0x1997b3[_0x3336('0x13')]][_0x3336('0x3b')]));}}catch(_0x512e15){utils[_0x3336('0x27')](util[_0x3336('0x7')](_0x3336('0x3a'),_0x1997b3[_0x3336('0x13')]),_0x512e15);}};exports[_0x3336('0x3c')]=function(_0x21516c){try{if(!_[_0x3336('0x1d')](channels[_0x21516c[_0x3336('0x13')]])){utils['debug'](util[_0x3336('0x7')](_0x3336('0x3d'),_0x21516c[_0x3336('0x13')]),_0x21516c);if(!_[_0x3336('0x1d')](channels[_0x21516c[_0x3336('0x13')]][_0x3336('0x3b')])){channels[_0x21516c[_0x3336('0x13')]]['mohtime']+=utils['diffTime'](utils['now'](),channels[_0x21516c[_0x3336('0x13')]][_0x3336('0x3b')]);utils[_0x3336('0x6')](util[_0x3336('0x7')](_0x3336('0x3e'),_0x21516c[_0x3336('0x13')],channels[_0x21516c[_0x3336('0x13')]][_0x3336('0x3f')]));delete channels[_0x21516c[_0x3336('0x13')]][_0x3336('0x3b')];}}}catch(_0x11f8d6){utils[_0x3336('0x27')](util['format'](_0x3336('0x3d'),_0x21516c[_0x3336('0x13')]),_0x11f8d6);}};exports[_0x3336('0x40')]=function(_0x59d1a4){try{if(!_[_0x3336('0x1d')](channels[_0x59d1a4[_0x3336('0x13')]])){utils['debug'](util['format'](_0x3336('0x41'),_0x59d1a4[_0x3336('0x13')]),_0x59d1a4);if(!_[_0x3336('0x1d')](_0x59d1a4[_0x3336('0x42')][_0x3336('0x43')])){utils[_0x3336('0x6')](util[_0x3336('0x7')](_0x3336('0x44'),_0x59d1a4[_0x3336('0x13')],_0x59d1a4['value']));channels[_0x59d1a4['uniqueid']]['source']=_0x59d1a4['value'];}if(!_[_0x3336('0x1d')](_0x59d1a4['variable'][_0x3336('0x45')])){utils[_0x3336('0x6')](util[_0x3336('0x7')](_0x3336('0x46'),_0x59d1a4['uniqueid'],_0x59d1a4[_0x3336('0x47')]));channels[_0x59d1a4[_0x3336('0x13')]][_0x3336('0x48')]=_0x59d1a4[_0x3336('0x47')];channels[_0x59d1a4[_0x3336('0x13')]]['callerid']='\x22'+_0x59d1a4[_0x3336('0x47')]+_0x3336('0x49')+_0x59d1a4['value']+'>';}if(!_['isNil'](_0x59d1a4['variable'][_0x3336('0x4a')])||!_[_0x3336('0x1d')](_0x59d1a4[_0x3336('0x42')][_0x3336('0x4b')])){utils['info'](util[_0x3336('0x7')](_0x3336('0x4c'),_0x59d1a4[_0x3336('0x13')],!_[_0x3336('0x1d')](_0x59d1a4[_0x3336('0x42')][_0x3336('0x4a')])?_0x3336('0x4a'):_0x3336('0x4b'),_0x59d1a4[_0x3336('0x47')]));channels[_0x59d1a4[_0x3336('0x13')]][_0x3336('0x2b')]=_0x59d1a4['value'];}if(!_[_0x3336('0x1d')](_0x59d1a4['variable'][_0x3336('0x4d')])||!_['isNil'](_0x59d1a4[_0x3336('0x42')][_0x3336('0x4e')])){utils[_0x3336('0x6')](util[_0x3336('0x7')]('[%s][calls][varset]\x20variable:%s\x20value:%s',_0x59d1a4[_0x3336('0x13')],!_[_0x3336('0x1d')](_0x59d1a4[_0x3336('0x42')][_0x3336('0x4d')])?_0x3336('0x4d'):_0x3336('0x4e'),_0x59d1a4[_0x3336('0x47')]));channels[_0x59d1a4[_0x3336('0x13')]][_0x3336('0x4f')]=_0x3336('0x50');channels[_0x59d1a4[_0x3336('0x13')]][_0x3336('0x51')]=_0x59d1a4[_0x3336('0x47')];channels[_0x59d1a4['uniqueid']][_0x3336('0xa')]=!![];}if(!_[_0x3336('0x1d')](_0x59d1a4[_0x3336('0x42')]['xmd-contactid'])){utils[_0x3336('0x6')](util[_0x3336('0x7')](_0x3336('0x52'),_0x59d1a4['uniqueid'],_0x59d1a4[_0x3336('0x47')]));channels[_0x59d1a4[_0x3336('0x13')]]['ContactId']=_0x59d1a4[_0x3336('0x47')];}if(!_[_0x3336('0x1d')](_0x59d1a4[_0x3336('0x42')][_0x3336('0x53')])){utils[_0x3336('0x6')](util[_0x3336('0x7')](_0x3336('0x54'),_0x59d1a4[_0x3336('0x13')],_0x59d1a4[_0x3336('0x47')]));channels[_0x59d1a4[_0x3336('0x13')]][_0x3336('0x55')]=_0x59d1a4[_0x3336('0x47')];}if(!_[_0x3336('0x1d')](_0x59d1a4[_0x3336('0x42')][_0x3336('0x56')])){utils[_0x3336('0x6')](util[_0x3336('0x7')](_0x3336('0x57'),_0x59d1a4[_0x3336('0x13')],_0x59d1a4[_0x3336('0x47')]));channels[_0x59d1a4[_0x3336('0x13')]][_0x3336('0x58')]=_0x59d1a4[_0x3336('0x47')];}if(!_[_0x3336('0x1d')](_0x59d1a4[_0x3336('0x42')][_0x3336('0x59')])){utils[_0x3336('0x6')](util[_0x3336('0x7')](_0x3336('0x5a'),_0x59d1a4[_0x3336('0x13')],_0x59d1a4[_0x3336('0x47')]));channels[_0x59d1a4['uniqueid']]['sipcallid']=_0x59d1a4[_0x3336('0x47')];}}}catch(_0x31aef2){utils[_0x3336('0x27')](util[_0x3336('0x7')](_0x3336('0x41'),_0x59d1a4[_0x3336('0x13')]),_0x31aef2);}};exports[_0x3336('0x5b')]=function(_0x5f45b0){try{if(!_[_0x3336('0x1d')](channels[_0x5f45b0[_0x3336('0x13')]])){utils[_0x3336('0x29')](util[_0x3336('0x7')](_0x3336('0x5c'),_0x5f45b0[_0x3336('0x13')]),_0x5f45b0);utils['info'](util[_0x3336('0x7')]('[%s][calls][newexten]\x20application:%s\x20appdata:%s',_0x5f45b0['uniqueid'],_0x5f45b0[_0x3336('0x5d')],_0x5f45b0['appdata']));if(_0x5f45b0[_0x3336('0x5d')][_0x3336('0x5e')]()==_0x3336('0x5f')&&_[_0x3336('0x60')](_0x5f45b0['appdata'][_0x3336('0x5e')](),_0x3336('0x61'))){var _0x1c45b7=_0x5f45b0[_0x3336('0x62')]['split']('=');var _0x3b14fb=_0x1c45b7[0x0][_0x3336('0x63')](_0x1c45b7[0x0][_0x3336('0x64')]('(')+0x1,_0x1c45b7[0x0][_0x3336('0x64')](')'));var _0x23c5a8=_0x1c45b7[0x1];channels[_0x5f45b0[_0x3336('0x13')]][_0x3b14fb]=_0x23c5a8;}if(!_[_0x3336('0x65')]([_0x3336('0x28'),_0x3336('0x66'),_0x3336('0x67'),_0x3336('0x5f'),_0x3336('0x68')],_0x5f45b0['application']['toLowerCase']())){channels[_0x5f45b0[_0x3336('0x13')]][_0x3336('0x4f')]=_0x5f45b0[_0x3336('0x5d')];channels[_0x5f45b0[_0x3336('0x13')]][_0x3336('0x51')]=_0x5f45b0[_0x3336('0x62')];}}}catch(_0x3c2f81){utils['error'](util[_0x3336('0x7')](_0x3336('0x5c'),_0x5f45b0['uniqueid']),_0x3c2f81);}};