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