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