Built motion from commit 85328c08.|2.5.50
[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 _0x98a7=['split','substring','lastIndexOf','includes','noop','gotoif','[%s][calls][newexten]','lodash','util','./utils','./transfers.controller','NO\x20ANSWER','FAILED','ANSWERED','BUSY','blinds','uniqueid','transfereeuniqueid','info','format','[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','channel','queue','interface','calleridnum','connectedlinenum','getUserByInternal','accountcode','then','UserId','CreateVoiceCallReport','recording','[%s][calls][newchannel]','linkedid','OutgoingSpoolFailed','context','exten','now','error','newstate','debug','[%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','hangup','callerid','calleridname','[%s][calls][hangup]\x20callerid:%s\x20reason:%s','endtime','duration','diffTime','[%s][calls][hangup]','attendedtransfer','localtwolinkedid','origtransfereruniqueid','transfereechannel','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','userfield','_attended','origtransfererchannel','[%s][calls][attendedtransfer]','[%s][calls][musiconholdstart]','musiconholdstartAt','[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s','musiconholdstop','[%s][calls][musiconholdstop]','mohtime','varset','[%s][calls][varset]','variable','[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s','value','source','xmd-phone','destination','\x22\x20<','xmd-callerid-preview','[%s][calls][varset]\x20variable:%s\x20value:%s','xmd-callerid','xmd-queue','xmcs-queue','lastapplication','Queue','lastdata','xmd-contactid','[%s][calls][varset]\x20variable:xmd-contactid\x20value:%s','ContactId','xmd-cdrtype','type','outboundrouteid','[%s][calls][varset]\x20variable:outboundrouteid\x20value:%s','sipcallid','[%s][calls][varset]\x20variable:sipcallid\x20value:%s','newexten','[%s][calls][newexten]\x20application:%s\x20appdata:%s','application','appdata','toLowerCase','startsWith','cdr'];(function(_0x49478e,_0x777dce){var _0x4ff8a3=function(_0xeb97c3){while(--_0xeb97c3){_0x49478e['push'](_0x49478e['shift']());}};_0x4ff8a3(++_0x777dce);}(_0x98a7,0xdf));var _0x798a=function(_0xa6bdce,_0x491429){_0xa6bdce=_0xa6bdce-0x0;var _0x594480=_0x98a7[_0xa6bdce];return _0x594480;};'use strict';var _=require(_0x798a('0x0'));var util=require(_0x798a('0x1'));var utils=require(_0x798a('0x2'));var transfers=require(_0x798a('0x3'));var dispositions=[_0x798a('0x4'),_0x798a('0x5'),_0x798a('0x5'),'NO\x20ANSWER',_0x798a('0x4'),_0x798a('0x4'),_0x798a('0x6'),_0x798a('0x7'),_0x798a('0x5'),_0x798a('0x5'),_0x798a('0x5')];var channels={};function writeDB(_0x231211){var _0x23e98a;if(transfers[_0x798a('0x8')][_0x231211['uniqueid']]){_0x23e98a=_0x231211[_0x798a('0x9')];_0x231211['uniqueid']=transfers['blinds'][_0x231211[_0x798a('0x9')]][_0x798a('0xa')];}utils[_0x798a('0xb')](util[_0x798a('0xc')](_0x798a('0xd'),_0x231211['uniqueid'],_0x231211[_0x798a('0xe')],_0x231211[_0x798a('0xf')],_0x231211['membername'],_0x231211[_0x798a('0x10')],_0x231211[_0x798a('0x11')],_0x231211[_0x798a('0x12')],_0x231211['lastevent']));if(_0x231211['accountcode']){utils[_0x798a('0x13')](_0x231211[_0x798a('0x14')])[_0x798a('0x15')](function(_0x36a05a){if(_0x36a05a){_0x231211[_0x798a('0x16')]=_0x36a05a['id'];}utils['request'](_0x798a('0x17'),_0x231211);});}else{utils['request'](_0x798a('0x17'),_0x231211);}if(channels[_0x231211[_0x798a('0x9')]]){delete channels[_0x231211[_0x798a('0x9')]];}else if(_0x23e98a&&channels[_0x23e98a]){if(!transfers[_0x798a('0x8')][_0x23e98a][_0x798a('0x18')])delete transfers['blinds'][_0x23e98a];delete channels[_0x23e98a];}}exports['newchannel']=function(_0x3427d5){try{utils['debug'](util[_0x798a('0xc')](_0x798a('0x19'),_0x3427d5['uniqueid']),_0x3427d5);if(_0x3427d5[_0x798a('0x9')]==_0x3427d5[_0x798a('0x1a')]&&_0x3427d5[_0x798a('0xe')]!=_0x798a('0x1b')){utils[_0x798a('0xb')](util[_0x798a('0xc')]('[%s][calls][newchannel]\x20context:%s\x20exten:%s',_0x3427d5['uniqueid'],_0x3427d5[_0x798a('0x1c')],_0x3427d5[_0x798a('0x1d')]));channels[_0x3427d5[_0x798a('0x9')]]={'uniqueid':_0x3427d5[_0x798a('0x9')],'accountcode':_0x3427d5[_0x798a('0x14')],'source':_0x3427d5['calleridnum'],'destination':_0x3427d5[_0x798a('0x1d')],'destinationcontext':_0x3427d5[_0x798a('0x1c')],'channel':_0x3427d5[_0x798a('0xe')],'starttime':utils[_0x798a('0x1e')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':_0x798a('0x4'),'amaflags':'DOCUMENTATION'};}}catch(_0x3a9e9f){utils[_0x798a('0x1f')](util[_0x798a('0xc')]('[%s][calls][newchannel]',_0x3427d5['uniqueid']),_0x3a9e9f);}};exports[_0x798a('0x20')]=function(_0x546b4c){try{utils[_0x798a('0x21')](util[_0x798a('0xc')](_0x798a('0x22'),_0x546b4c[_0x798a('0x9')]),_0x546b4c);if(!_[_0x798a('0x23')](channels[_0x546b4c[_0x798a('0x9')]])&&_0x546b4c[_0x798a('0x24')]==0x6){utils[_0x798a('0xb')](util[_0x798a('0xc')](_0x798a('0x25'),_0x546b4c['uniqueid'],_0x546b4c[_0x798a('0x1c')],_0x546b4c[_0x798a('0xe')]));if(_[_0x798a('0x23')](channels[_0x546b4c[_0x798a('0x9')]][_0x798a('0x26')])){channels[_0x546b4c[_0x798a('0x9')]][_0x798a('0x26')]=utils[_0x798a('0x1e')]();}}else if(!_[_0x798a('0x23')](channels[_0x546b4c['linkedid']])&&_0x546b4c[_0x798a('0x24')]==0x6&&_0x546b4c['context']!=_0x798a('0x27')){utils[_0x798a('0xb')](util['format'](_0x798a('0x28'),_0x546b4c[_0x798a('0x9')],_0x546b4c[_0x798a('0x1a')],_0x546b4c[_0x798a('0x1c')],_0x546b4c[_0x798a('0xe')]));channels[_0x546b4c[_0x798a('0x1a')]][_0x798a('0x14')]=_0x546b4c['accountcode'];channels[_0x546b4c[_0x798a('0x1a')]][_0x798a('0x29')]=_0x546b4c[_0x798a('0xe')];if(_[_0x798a('0x23')](channels[_0x546b4c[_0x798a('0x1a')]][_0x798a('0x2a')])){channels[_0x546b4c[_0x798a('0x1a')]][_0x798a('0x2a')]=utils[_0x798a('0x1e')]();}channels[_0x546b4c[_0x798a('0x1a')]][_0x798a('0x2b')]=dispositions[_[_0x798a('0x2c')](_0x546b4c[_0x798a('0x24')])]||_0x798a('0x6');}}catch(_0x543374){utils[_0x798a('0x1f')](util[_0x798a('0xc')]('[%s][calls][newstate]',_0x546b4c[_0x798a('0x9')]),_0x543374);}};exports[_0x798a('0x2d')]=function(_0x47fdb0){try{if(!_[_0x798a('0x23')](channels[_0x47fdb0[_0x798a('0x9')]])){utils[_0x798a('0x21')](util[_0x798a('0xc')]('[%s][calls][hangup]',_0x47fdb0[_0x798a('0x9')]),_0x47fdb0);if(_[_0x798a('0x23')](channels[_0x47fdb0[_0x798a('0x9')]][_0x798a('0x2e')])){channels[_0x47fdb0[_0x798a('0x9')]][_0x798a('0x2e')]=_0x47fdb0[_0x798a('0x2f')]+'\x20<'+_0x47fdb0['calleridnum']+'>';}utils[_0x798a('0xb')](util['format'](_0x798a('0x30'),_0x47fdb0[_0x798a('0x9')],channels[_0x47fdb0[_0x798a('0x9')]][_0x798a('0x2e')],_0x47fdb0['cause-txt']));channels[_0x47fdb0[_0x798a('0x9')]][_0x798a('0x31')]=utils[_0x798a('0x1e')]();channels[_0x47fdb0[_0x798a('0x9')]][_0x798a('0x32')]=utils[_0x798a('0x33')](channels[_0x47fdb0[_0x798a('0x9')]][_0x798a('0x31')],channels[_0x47fdb0[_0x798a('0x9')]]['starttime']);channels[_0x47fdb0['uniqueid']]['billableseconds']=channels[_0x47fdb0[_0x798a('0x9')]]['answertime']?utils[_0x798a('0x33')](channels[_0x47fdb0[_0x798a('0x9')]][_0x798a('0x31')],channels[_0x47fdb0[_0x798a('0x9')]][_0x798a('0x2a')]):0x0;writeDB(channels[_0x47fdb0['uniqueid']]);}}catch(_0x325602){utils['error'](util[_0x798a('0xc')](_0x798a('0x34'),_0x47fdb0['uniqueid']),_0x325602);}};exports[_0x798a('0x35')]=function(_0xbb494b){try{if(!_[_0x798a('0x23')](channels[_0xbb494b[_0x798a('0x36')]])){utils[_0x798a('0x21')](util[_0x798a('0xc')]('[%s][calls][attendedtransfer]',_0xbb494b[_0x798a('0x37')]),_0xbb494b);if(channels[_0xbb494b['localtwolinkedid']][_0x798a('0xe')]==_0xbb494b[_0x798a('0x38')]){utils[_0x798a('0xb')](util[_0x798a('0xc')](_0x798a('0x39'),_0xbb494b[_0x798a('0x37')],_0xbb494b[_0x798a('0x36')],_0xbb494b['secondtransfererchannel']));channels[_0xbb494b[_0x798a('0x36')]][_0x798a('0x29')]=_0xbb494b['secondtransfererchannel'];channels[_0xbb494b[_0x798a('0x36')]][_0x798a('0x3a')]=_0x798a('0x3b');}else if(channels[_0xbb494b['localtwolinkedid']]['channel']=_0xbb494b['transfertargetchannel']){utils[_0x798a('0xb')](util['format'](_0x798a('0x39'),_0xbb494b[_0x798a('0x37')],_0xbb494b[_0x798a('0x36')],_0xbb494b[_0x798a('0x3c')]));channels[_0xbb494b['localtwolinkedid']][_0x798a('0x29')]=_0xbb494b[_0x798a('0x3c')];channels[_0xbb494b['localtwolinkedid']][_0x798a('0x3a')]=_0x798a('0x3b');}}}catch(_0x2e215a){utils[_0x798a('0x1f')](util['format'](_0x798a('0x3d'),_0xbb494b[_0x798a('0x37')]),_0x2e215a);}};exports['musiconholdstart']=function(_0x29ffb9){try{if(!_['isNil'](channels[_0x29ffb9[_0x798a('0x9')]])){utils[_0x798a('0x21')](util['format'](_0x798a('0x3e'),_0x29ffb9[_0x798a('0x9')]),_0x29ffb9);channels[_0x29ffb9[_0x798a('0x9')]][_0x798a('0x3f')]=utils[_0x798a('0x1e')]();utils[_0x798a('0xb')](util[_0x798a('0xc')](_0x798a('0x40'),_0x29ffb9[_0x798a('0x9')],channels[_0x29ffb9[_0x798a('0x9')]][_0x798a('0x3f')]));}}catch(_0x2a3d87){utils[_0x798a('0x1f')](util[_0x798a('0xc')](_0x798a('0x3e'),_0x29ffb9[_0x798a('0x9')]),_0x2a3d87);}};exports[_0x798a('0x41')]=function(_0x4cba9c){try{if(!_[_0x798a('0x23')](channels[_0x4cba9c[_0x798a('0x9')]])){utils['debug'](util[_0x798a('0xc')](_0x798a('0x42'),_0x4cba9c[_0x798a('0x9')]),_0x4cba9c);if(!_[_0x798a('0x23')](channels[_0x4cba9c[_0x798a('0x9')]][_0x798a('0x3f')])){channels[_0x4cba9c[_0x798a('0x9')]][_0x798a('0x43')]+=utils['diffTime'](utils[_0x798a('0x1e')](),channels[_0x4cba9c['uniqueid']][_0x798a('0x3f')]);utils[_0x798a('0xb')](util[_0x798a('0xc')]('[%s][calls][musiconholdstop]\x20mohtime:%s',_0x4cba9c[_0x798a('0x9')],channels[_0x4cba9c['uniqueid']][_0x798a('0x43')]));delete channels[_0x4cba9c[_0x798a('0x9')]][_0x798a('0x3f')];}}}catch(_0x244d29){utils['error'](util[_0x798a('0xc')](_0x798a('0x42'),_0x4cba9c[_0x798a('0x9')]),_0x244d29);}};exports[_0x798a('0x44')]=function(_0x171a55){try{if(!_[_0x798a('0x23')](channels[_0x171a55['uniqueid']])){utils[_0x798a('0x21')](util[_0x798a('0xc')](_0x798a('0x45'),_0x171a55['uniqueid']),_0x171a55);if(!_['isNil'](_0x171a55[_0x798a('0x46')]['xmd-originatecalleridnum'])){utils[_0x798a('0xb')](util[_0x798a('0xc')](_0x798a('0x47'),_0x171a55[_0x798a('0x9')],_0x171a55[_0x798a('0x48')]));channels[_0x171a55[_0x798a('0x9')]][_0x798a('0x49')]=_0x171a55[_0x798a('0x48')];}if(!_[_0x798a('0x23')](_0x171a55[_0x798a('0x46')][_0x798a('0x4a')])){utils[_0x798a('0xb')](util[_0x798a('0xc')]('[%s][calls][varset]\x20variable:xmd-phone\x20value:%s',_0x171a55[_0x798a('0x9')],_0x171a55[_0x798a('0x48')]));channels[_0x171a55['uniqueid']][_0x798a('0x4b')]=_0x171a55[_0x798a('0x48')];channels[_0x171a55[_0x798a('0x9')]][_0x798a('0x2e')]='\x22'+_0x171a55['value']+_0x798a('0x4c')+_0x171a55['value']+'>';}if(!_[_0x798a('0x23')](_0x171a55[_0x798a('0x46')][_0x798a('0x4d')])||!_[_0x798a('0x23')](_0x171a55[_0x798a('0x46')]['xmd-callerid'])){utils['info'](util[_0x798a('0xc')](_0x798a('0x4e'),_0x171a55['uniqueid'],!_['isNil'](_0x171a55[_0x798a('0x46')][_0x798a('0x4d')])?_0x798a('0x4d'):_0x798a('0x4f'),_0x171a55['value']));channels[_0x171a55[_0x798a('0x9')]][_0x798a('0x2e')]=_0x171a55['value'];}if(!_[_0x798a('0x23')](_0x171a55[_0x798a('0x46')][_0x798a('0x50')])||!_['isNil'](_0x171a55[_0x798a('0x46')]['xmcs-queue'])){utils[_0x798a('0xb')](util['format']('[%s][calls][varset]\x20variable:%s\x20value:%s',_0x171a55[_0x798a('0x9')],!_[_0x798a('0x23')](_0x171a55[_0x798a('0x46')][_0x798a('0x50')])?_0x798a('0x50'):_0x798a('0x51'),_0x171a55[_0x798a('0x48')]));channels[_0x171a55['uniqueid']][_0x798a('0x52')]=_0x798a('0x53');channels[_0x171a55[_0x798a('0x9')]][_0x798a('0x54')]=_0x171a55[_0x798a('0x48')];channels[_0x171a55['uniqueid']][_0x798a('0xf')]=!![];}if(!_[_0x798a('0x23')](_0x171a55[_0x798a('0x46')][_0x798a('0x55')])){utils[_0x798a('0xb')](util[_0x798a('0xc')](_0x798a('0x56'),_0x171a55[_0x798a('0x9')],_0x171a55[_0x798a('0x48')]));channels[_0x171a55[_0x798a('0x9')]][_0x798a('0x57')]=_0x171a55[_0x798a('0x48')];}if(!_[_0x798a('0x23')](_0x171a55[_0x798a('0x46')][_0x798a('0x58')])){utils[_0x798a('0xb')](util['format']('[%s][calls][varset]\x20variable:xmd-cdrtype\x20value:%s',_0x171a55['uniqueid'],_0x171a55[_0x798a('0x48')]));channels[_0x171a55[_0x798a('0x9')]][_0x798a('0x59')]=_0x171a55['value'];}if(!_[_0x798a('0x23')](_0x171a55[_0x798a('0x46')][_0x798a('0x5a')])){utils[_0x798a('0xb')](util[_0x798a('0xc')](_0x798a('0x5b'),_0x171a55[_0x798a('0x9')],_0x171a55[_0x798a('0x48')]));channels[_0x171a55['uniqueid']]['routeid']=_0x171a55[_0x798a('0x48')];}if(!_['isNil'](_0x171a55['variable'][_0x798a('0x5c')])){utils[_0x798a('0xb')](util['format'](_0x798a('0x5d'),_0x171a55[_0x798a('0x9')],_0x171a55['value']));channels[_0x171a55[_0x798a('0x9')]]['sipcallid']=_0x171a55[_0x798a('0x48')];}}}catch(_0x5bfc12){utils[_0x798a('0x1f')](util[_0x798a('0xc')]('[%s][calls][varset]',_0x171a55[_0x798a('0x9')]),_0x5bfc12);}};exports[_0x798a('0x5e')]=function(_0x4b6202){try{if(!_[_0x798a('0x23')](channels[_0x4b6202[_0x798a('0x9')]])){utils['debug'](util[_0x798a('0xc')]('[%s][calls][newexten]',_0x4b6202['uniqueid']),_0x4b6202);utils[_0x798a('0xb')](util['format'](_0x798a('0x5f'),_0x4b6202[_0x798a('0x9')],_0x4b6202[_0x798a('0x60')],_0x4b6202[_0x798a('0x61')]));if(_0x4b6202[_0x798a('0x60')][_0x798a('0x62')]()=='set'&&_[_0x798a('0x63')](_0x4b6202['appdata']['toLowerCase'](),_0x798a('0x64'))){var _0x31f90f=_0x4b6202[_0x798a('0x61')][_0x798a('0x65')]('=');var _0x4f9440=_0x31f90f[0x0][_0x798a('0x66')](_0x31f90f[0x0][_0x798a('0x67')]('(')+0x1,_0x31f90f[0x0][_0x798a('0x67')](')'));var _0x40cc19=_0x31f90f[0x1];channels[_0x4b6202[_0x798a('0x9')]][_0x4f9440]=_0x40cc19;}if(!_[_0x798a('0x68')]([_0x798a('0x2d'),_0x798a('0x69'),'execif','set',_0x798a('0x6a')],_0x4b6202[_0x798a('0x60')]['toLowerCase']())){channels[_0x4b6202[_0x798a('0x9')]]['lastapplication']=_0x4b6202[_0x798a('0x60')];channels[_0x4b6202[_0x798a('0x9')]][_0x798a('0x54')]=_0x4b6202['appdata'];}}}catch(_0x168fbb){utils[_0x798a('0x1f')](util['format'](_0x798a('0x6b'),_0x4b6202[_0x798a('0x9')]),_0x168fbb);}};