Built motion from commit (unavailable).|2.5.30
[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 _0xf467=['hangup','[%s][calls][hangup]','callerid','calleridname','[%s][calls][hangup]\x20callerid:%s\x20reason:%s','cause-txt','endtime','duration','diffTime','attendedtransfer','[%s][calls][attendedtransfer]','origtransfereruniqueid','transfereechannel','localtwolinkedid','secondtransfererchannel','userfield','_attended','transfertargetchannel','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','origtransfererchannel','destinationchannel','musiconholdstart','[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s','[%s][calls][musiconholdstart]','musiconholdstop','[%s][calls][musiconholdstop]','musiconholdstartAt','mohtime','[%s][calls][musiconholdstop]\x20mohtime:%s','varset','[%s][calls][varset]','variable','[%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','xmd-callerid-preview','xmd-queue','[%s][calls][varset]\x20variable:%s\x20value:%s','xmcs-queue','lastapplication','Queue','lastdata','xmd-contactid','ContactId','xmd-cdrtype','[%s][calls][varset]\x20variable:xmd-cdrtype\x20value:%s','type','outboundrouteid','[%s][calls][varset]\x20variable:outboundrouteid\x20value:%s','routeid','sipcallid','[%s][calls][varset]\x20variable:sipcallid\x20value:%s','newexten','[%s][calls][newexten]','[%s][calls][newexten]\x20application:%s\x20appdata:%s','application','appdata','set','startsWith','toLowerCase','cdr','split','lastIndexOf','includes','noop','gotoif','lodash','util','./transfers.controller','FAILED','NO\x20ANSWER','ANSWERED','BUSY','uniqueid','blinds','transfereeuniqueid','info','format','[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','channel','queue','calleridnum','connectedlinenum','lastevent','accountcode','getUserByInternal','then','UserId','CreateVoiceCallReport','request','newchannel','debug','[%s][calls][newchannel]','linkedid','OutgoingSpoolFailed','[%s][calls][newchannel]\x20context:%s\x20exten:%s','exten','context','now','DOCUMENTATION','error','isNil','channelstate','[%s][calls][newstate]\x20context:%s\x20channel:%s','systemanswertime','[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s','answertime','disposition','[%s][calls][newstate]'];(function(_0x2641f9,_0x26715f){var _0x585741=function(_0x2d1462){while(--_0x2d1462){_0x2641f9['push'](_0x2641f9['shift']());}};_0x585741(++_0x26715f);}(_0xf467,0xb9));var _0x7f46=function(_0x247ade,_0x488b59){_0x247ade=_0x247ade-0x0;var _0x364c0c=_0xf467[_0x247ade];return _0x364c0c;};'use strict';var _=require(_0x7f46('0x0'));var util=require(_0x7f46('0x1'));var utils=require('./utils');var transfers=require(_0x7f46('0x2'));var dispositions=['NO\x20ANSWER',_0x7f46('0x3'),_0x7f46('0x3'),_0x7f46('0x4'),_0x7f46('0x4'),'NO\x20ANSWER',_0x7f46('0x5'),_0x7f46('0x6'),'FAILED',_0x7f46('0x3'),'FAILED'];var channels={};function writeDB(_0x4d2fb8){var _0x36b806;if(transfers['blinds'][_0x4d2fb8[_0x7f46('0x7')]]){_0x36b806=_0x4d2fb8[_0x7f46('0x7')];_0x4d2fb8['uniqueid']=transfers[_0x7f46('0x8')][_0x4d2fb8[_0x7f46('0x7')]][_0x7f46('0x9')];}utils[_0x7f46('0xa')](util[_0x7f46('0xb')](_0x7f46('0xc'),_0x4d2fb8['uniqueid'],_0x4d2fb8[_0x7f46('0xd')],_0x4d2fb8[_0x7f46('0xe')],_0x4d2fb8['membername'],_0x4d2fb8['interface'],_0x4d2fb8[_0x7f46('0xf')],_0x4d2fb8[_0x7f46('0x10')],_0x4d2fb8[_0x7f46('0x11')]));if(_0x4d2fb8[_0x7f46('0x12')]){utils[_0x7f46('0x13')](_0x4d2fb8[_0x7f46('0x12')])[_0x7f46('0x14')](function(_0x2453f3){if(_0x2453f3){_0x4d2fb8[_0x7f46('0x15')]=_0x2453f3['id'];}utils['request'](_0x7f46('0x16'),_0x4d2fb8);});}else{utils[_0x7f46('0x17')](_0x7f46('0x16'),_0x4d2fb8);}if(channels[_0x4d2fb8[_0x7f46('0x7')]]){delete channels[_0x4d2fb8[_0x7f46('0x7')]];}else if(_0x36b806&&channels[_0x36b806]){delete transfers[_0x7f46('0x8')][_0x36b806];delete channels[_0x36b806];}}exports[_0x7f46('0x18')]=function(_0x1134d5){try{utils[_0x7f46('0x19')](util[_0x7f46('0xb')](_0x7f46('0x1a'),_0x1134d5[_0x7f46('0x7')]),_0x1134d5);if(_0x1134d5['uniqueid']==_0x1134d5[_0x7f46('0x1b')]&&_0x1134d5[_0x7f46('0xd')]!=_0x7f46('0x1c')){utils[_0x7f46('0xa')](util['format'](_0x7f46('0x1d'),_0x1134d5[_0x7f46('0x7')],_0x1134d5['context'],_0x1134d5[_0x7f46('0x1e')]));channels[_0x1134d5[_0x7f46('0x7')]]={'uniqueid':_0x1134d5[_0x7f46('0x7')],'accountcode':_0x1134d5[_0x7f46('0x12')],'source':_0x1134d5['calleridnum'],'destination':_0x1134d5[_0x7f46('0x1e')],'destinationcontext':_0x1134d5[_0x7f46('0x1f')],'channel':_0x1134d5[_0x7f46('0xd')],'starttime':utils[_0x7f46('0x20')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':_0x7f46('0x4'),'amaflags':_0x7f46('0x21')};}}catch(_0x13760a){utils[_0x7f46('0x22')](util[_0x7f46('0xb')](_0x7f46('0x1a'),_0x1134d5[_0x7f46('0x7')]),_0x13760a);}};exports['newstate']=function(_0x132f54){try{utils[_0x7f46('0x19')](util[_0x7f46('0xb')]('[%s][calls][newstate]',_0x132f54['uniqueid']),_0x132f54);if(!_[_0x7f46('0x23')](channels[_0x132f54[_0x7f46('0x7')]])&&_0x132f54[_0x7f46('0x24')]==0x6){utils[_0x7f46('0xa')](util[_0x7f46('0xb')](_0x7f46('0x25'),_0x132f54[_0x7f46('0x7')],_0x132f54['context'],_0x132f54[_0x7f46('0xd')]));if(_[_0x7f46('0x23')](channels[_0x132f54[_0x7f46('0x7')]][_0x7f46('0x26')])){channels[_0x132f54[_0x7f46('0x7')]]['systemanswertime']=utils[_0x7f46('0x20')]();}}else if(!_['isNil'](channels[_0x132f54[_0x7f46('0x1b')]])&&_0x132f54['channelstate']==0x6&&_0x132f54[_0x7f46('0x1f')]!='transfer'){utils[_0x7f46('0xa')](util[_0x7f46('0xb')](_0x7f46('0x27'),_0x132f54[_0x7f46('0x7')],_0x132f54['linkedid'],_0x132f54[_0x7f46('0x1f')],_0x132f54[_0x7f46('0xd')]));channels[_0x132f54['linkedid']]['accountcode']=_0x132f54['accountcode'];channels[_0x132f54[_0x7f46('0x1b')]]['destinationchannel']=_0x132f54[_0x7f46('0xd')];if(_['isNil'](channels[_0x132f54[_0x7f46('0x1b')]][_0x7f46('0x28')])){channels[_0x132f54[_0x7f46('0x1b')]][_0x7f46('0x28')]=utils[_0x7f46('0x20')]();}channels[_0x132f54['linkedid']][_0x7f46('0x29')]=dispositions[_['toNumber'](_0x132f54[_0x7f46('0x24')])]||_0x7f46('0x5');}}catch(_0x2647bd){utils[_0x7f46('0x22')](util[_0x7f46('0xb')](_0x7f46('0x2a'),_0x132f54['uniqueid']),_0x2647bd);}};exports[_0x7f46('0x2b')]=function(_0x2fcee9){try{if(!_[_0x7f46('0x23')](channels[_0x2fcee9['uniqueid']])){utils[_0x7f46('0x19')](util[_0x7f46('0xb')](_0x7f46('0x2c'),_0x2fcee9[_0x7f46('0x7')]),_0x2fcee9);if(_[_0x7f46('0x23')](channels[_0x2fcee9['uniqueid']][_0x7f46('0x2d')])){channels[_0x2fcee9['uniqueid']][_0x7f46('0x2d')]=_0x2fcee9[_0x7f46('0x2e')]+'\x20<'+_0x2fcee9[_0x7f46('0xf')]+'>';}utils['info'](util['format'](_0x7f46('0x2f'),_0x2fcee9[_0x7f46('0x7')],channels[_0x2fcee9[_0x7f46('0x7')]][_0x7f46('0x2d')],_0x2fcee9[_0x7f46('0x30')]));channels[_0x2fcee9[_0x7f46('0x7')]][_0x7f46('0x31')]=utils[_0x7f46('0x20')]();channels[_0x2fcee9[_0x7f46('0x7')]][_0x7f46('0x32')]=utils[_0x7f46('0x33')](channels[_0x2fcee9[_0x7f46('0x7')]][_0x7f46('0x31')],channels[_0x2fcee9[_0x7f46('0x7')]]['starttime']);channels[_0x2fcee9[_0x7f46('0x7')]]['billableseconds']=channels[_0x2fcee9[_0x7f46('0x7')]][_0x7f46('0x28')]?utils['diffTime'](channels[_0x2fcee9[_0x7f46('0x7')]]['endtime'],channels[_0x2fcee9['uniqueid']][_0x7f46('0x28')]):0x0;writeDB(channels[_0x2fcee9['uniqueid']]);}}catch(_0x926593){utils[_0x7f46('0x22')](util['format'](_0x7f46('0x2c'),_0x2fcee9[_0x7f46('0x7')]),_0x926593);}};exports[_0x7f46('0x34')]=function(_0xe9413b){try{if(!_[_0x7f46('0x23')](channels[_0xe9413b['localtwolinkedid']])){utils[_0x7f46('0x19')](util['format'](_0x7f46('0x35'),_0xe9413b[_0x7f46('0x36')]),_0xe9413b);if(channels[_0xe9413b['localtwolinkedid']][_0x7f46('0xd')]==_0xe9413b[_0x7f46('0x37')]){utils['info'](util[_0x7f46('0xb')]('[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s',_0xe9413b[_0x7f46('0x36')],_0xe9413b[_0x7f46('0x38')],_0xe9413b['secondtransfererchannel']));channels[_0xe9413b['localtwolinkedid']]['destinationchannel']=_0xe9413b[_0x7f46('0x39')];channels[_0xe9413b['localtwolinkedid']][_0x7f46('0x3a')]=_0x7f46('0x3b');}else if(channels[_0xe9413b[_0x7f46('0x38')]][_0x7f46('0xd')]=_0xe9413b[_0x7f46('0x3c')]){utils[_0x7f46('0xa')](util['format'](_0x7f46('0x3d'),_0xe9413b['origtransfereruniqueid'],_0xe9413b['localtwolinkedid'],_0xe9413b[_0x7f46('0x3e')]));channels[_0xe9413b[_0x7f46('0x38')]][_0x7f46('0x3f')]=_0xe9413b['origtransfererchannel'];channels[_0xe9413b[_0x7f46('0x38')]][_0x7f46('0x3a')]=_0x7f46('0x3b');}}}catch(_0x162a46){utils[_0x7f46('0x22')](util[_0x7f46('0xb')](_0x7f46('0x35'),_0xe9413b[_0x7f46('0x36')]),_0x162a46);}};exports[_0x7f46('0x40')]=function(_0x4c97fd){try{if(!_[_0x7f46('0x23')](channels[_0x4c97fd[_0x7f46('0x7')]])){utils['debug'](util[_0x7f46('0xb')]('[%s][calls][musiconholdstart]',_0x4c97fd[_0x7f46('0x7')]),_0x4c97fd);channels[_0x4c97fd['uniqueid']]['musiconholdstartAt']=utils[_0x7f46('0x20')]();utils[_0x7f46('0xa')](util[_0x7f46('0xb')](_0x7f46('0x41'),_0x4c97fd['uniqueid'],channels[_0x4c97fd[_0x7f46('0x7')]]['musiconholdstartAt']));}}catch(_0x1c3b7b){utils[_0x7f46('0x22')](util[_0x7f46('0xb')](_0x7f46('0x42'),_0x4c97fd[_0x7f46('0x7')]),_0x1c3b7b);}};exports[_0x7f46('0x43')]=function(_0x556959){try{if(!_[_0x7f46('0x23')](channels[_0x556959[_0x7f46('0x7')]])){utils['debug'](util[_0x7f46('0xb')](_0x7f46('0x44'),_0x556959[_0x7f46('0x7')]),_0x556959);if(!_[_0x7f46('0x23')](channels[_0x556959['uniqueid']][_0x7f46('0x45')])){channels[_0x556959[_0x7f46('0x7')]][_0x7f46('0x46')]+=utils[_0x7f46('0x33')](utils[_0x7f46('0x20')](),channels[_0x556959[_0x7f46('0x7')]][_0x7f46('0x45')]);utils['info'](util[_0x7f46('0xb')](_0x7f46('0x47'),_0x556959[_0x7f46('0x7')],channels[_0x556959['uniqueid']]['mohtime']));delete channels[_0x556959[_0x7f46('0x7')]][_0x7f46('0x45')];}}}catch(_0x17a7ae){utils[_0x7f46('0x22')](util[_0x7f46('0xb')](_0x7f46('0x44'),_0x556959[_0x7f46('0x7')]),_0x17a7ae);}};exports[_0x7f46('0x48')]=function(_0x107cc4){try{if(!_[_0x7f46('0x23')](channels[_0x107cc4[_0x7f46('0x7')]])){utils[_0x7f46('0x19')](util[_0x7f46('0xb')](_0x7f46('0x49'),_0x107cc4[_0x7f46('0x7')]),_0x107cc4);if(!_[_0x7f46('0x23')](_0x107cc4[_0x7f46('0x4a')]['xmd-originatecalleridnum'])){utils[_0x7f46('0xa')](util['format'](_0x7f46('0x4b'),_0x107cc4[_0x7f46('0x7')],_0x107cc4[_0x7f46('0x4c')]));channels[_0x107cc4['uniqueid']][_0x7f46('0x4d')]=_0x107cc4['value'];}if(!_[_0x7f46('0x23')](_0x107cc4[_0x7f46('0x4a')][_0x7f46('0x4e')])){utils['info'](util['format'](_0x7f46('0x4f'),_0x107cc4[_0x7f46('0x7')],_0x107cc4[_0x7f46('0x4c')]));channels[_0x107cc4[_0x7f46('0x7')]][_0x7f46('0x50')]=_0x107cc4[_0x7f46('0x4c')];channels[_0x107cc4['uniqueid']][_0x7f46('0x2d')]='\x22'+_0x107cc4[_0x7f46('0x4c')]+_0x7f46('0x51')+_0x107cc4[_0x7f46('0x4c')]+'>';}if(!_[_0x7f46('0x23')](_0x107cc4[_0x7f46('0x4a')]['xmd-callerid-preview'])||!_['isNil'](_0x107cc4[_0x7f46('0x4a')][_0x7f46('0x52')])){utils[_0x7f46('0xa')](util['format']('[%s][calls][varset]\x20variable:%s\x20value:%s',_0x107cc4[_0x7f46('0x7')],!_[_0x7f46('0x23')](_0x107cc4[_0x7f46('0x4a')]['xmd-callerid-preview'])?_0x7f46('0x53'):_0x7f46('0x52'),_0x107cc4[_0x7f46('0x4c')]));channels[_0x107cc4['uniqueid']][_0x7f46('0x2d')]=_0x107cc4[_0x7f46('0x4c')];}if(!_[_0x7f46('0x23')](_0x107cc4['variable'][_0x7f46('0x54')])||!_[_0x7f46('0x23')](_0x107cc4['variable']['xmcs-queue'])){utils[_0x7f46('0xa')](util[_0x7f46('0xb')](_0x7f46('0x55'),_0x107cc4[_0x7f46('0x7')],!_[_0x7f46('0x23')](_0x107cc4[_0x7f46('0x4a')][_0x7f46('0x54')])?_0x7f46('0x54'):_0x7f46('0x56'),_0x107cc4[_0x7f46('0x4c')]));channels[_0x107cc4[_0x7f46('0x7')]][_0x7f46('0x57')]=_0x7f46('0x58');channels[_0x107cc4['uniqueid']][_0x7f46('0x59')]=_0x107cc4[_0x7f46('0x4c')];channels[_0x107cc4[_0x7f46('0x7')]][_0x7f46('0xe')]=!![];}if(!_['isNil'](_0x107cc4[_0x7f46('0x4a')][_0x7f46('0x5a')])){utils[_0x7f46('0xa')](util[_0x7f46('0xb')]('[%s][calls][varset]\x20variable:xmd-contactid\x20value:%s',_0x107cc4[_0x7f46('0x7')],_0x107cc4[_0x7f46('0x4c')]));channels[_0x107cc4['uniqueid']][_0x7f46('0x5b')]=_0x107cc4[_0x7f46('0x4c')];}if(!_['isNil'](_0x107cc4[_0x7f46('0x4a')][_0x7f46('0x5c')])){utils[_0x7f46('0xa')](util[_0x7f46('0xb')](_0x7f46('0x5d'),_0x107cc4[_0x7f46('0x7')],_0x107cc4[_0x7f46('0x4c')]));channels[_0x107cc4[_0x7f46('0x7')]][_0x7f46('0x5e')]=_0x107cc4[_0x7f46('0x4c')];}if(!_[_0x7f46('0x23')](_0x107cc4[_0x7f46('0x4a')][_0x7f46('0x5f')])){utils['info'](util[_0x7f46('0xb')](_0x7f46('0x60'),_0x107cc4[_0x7f46('0x7')],_0x107cc4['value']));channels[_0x107cc4['uniqueid']][_0x7f46('0x61')]=_0x107cc4[_0x7f46('0x4c')];}if(!_[_0x7f46('0x23')](_0x107cc4['variable'][_0x7f46('0x62')])){utils[_0x7f46('0xa')](util['format'](_0x7f46('0x63'),_0x107cc4['uniqueid'],_0x107cc4[_0x7f46('0x4c')]));channels[_0x107cc4[_0x7f46('0x7')]][_0x7f46('0x62')]=_0x107cc4['value'];}}}catch(_0x3619e8){utils['error'](util[_0x7f46('0xb')](_0x7f46('0x49'),_0x107cc4[_0x7f46('0x7')]),_0x3619e8);}};exports[_0x7f46('0x64')]=function(_0x47f56e){try{if(!_[_0x7f46('0x23')](channels[_0x47f56e[_0x7f46('0x7')]])){utils['debug'](util[_0x7f46('0xb')](_0x7f46('0x65'),_0x47f56e[_0x7f46('0x7')]),_0x47f56e);utils[_0x7f46('0xa')](util['format'](_0x7f46('0x66'),_0x47f56e[_0x7f46('0x7')],_0x47f56e[_0x7f46('0x67')],_0x47f56e[_0x7f46('0x68')]));if(_0x47f56e[_0x7f46('0x67')]['toLowerCase']()==_0x7f46('0x69')&&_[_0x7f46('0x6a')](_0x47f56e[_0x7f46('0x68')][_0x7f46('0x6b')](),_0x7f46('0x6c'))){var _0x1421b7=_0x47f56e[_0x7f46('0x68')][_0x7f46('0x6d')]('=');var _0x5ed6a0=_0x1421b7[0x0]['substring'](_0x1421b7[0x0][_0x7f46('0x6e')]('(')+0x1,_0x1421b7[0x0][_0x7f46('0x6e')](')'));var _0x30555e=_0x1421b7[0x1];channels[_0x47f56e[_0x7f46('0x7')]][_0x5ed6a0]=_0x30555e;}if(!_[_0x7f46('0x6f')]([_0x7f46('0x2b'),_0x7f46('0x70'),'execif',_0x7f46('0x69'),_0x7f46('0x71')],_0x47f56e['application']['toLowerCase']())){channels[_0x47f56e[_0x7f46('0x7')]][_0x7f46('0x57')]=_0x47f56e[_0x7f46('0x67')];channels[_0x47f56e[_0x7f46('0x7')]][_0x7f46('0x59')]=_0x47f56e[_0x7f46('0x68')];}}}catch(_0x24a46e){utils[_0x7f46('0x22')](util['format']('[%s][calls][newexten]',_0x47f56e[_0x7f46('0x7')]),_0x24a46e);}};