Built motion from commit 9d0783e6.|2.6.13
[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 _0xf811=['lastIndexOf','includes','noop','execif','toLowerCase','lastapplication','lodash','util','./utils','./transfers.controller','NO\x20ANSWER','FAILED','ANSWERED','BUSY','blinds','uniqueid','info','format','[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','channel','queue','membername','interface','calleridnum','connectedlinenum','lastevent','accountcode','getUserByInternal','then','request','CreateVoiceCallReport','recording','newchannel','[%s][calls][newchannel]','linkedid','OutgoingSpoolFailed','context','exten','DOCUMENTATION','error','[%s][calls][newstate]','isNil','channelstate','[%s][calls][newstate]\x20context:%s\x20channel:%s','systemanswertime','now','transfer','[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s','destinationchannel','answertime','disposition','toNumber','hangup','debug','callerid','calleridname','[%s][calls][hangup]\x20callerid:%s\x20reason:%s','endtime','diffTime','billableseconds','attendedtransfer','origtransfereruniqueid','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','localtwolinkedid','userfield','_attended','transfertargetchannel','origtransfererchannel','[%s][calls][attendedtransfer]','musiconholdstart','[%s][calls][musiconholdstart]','musiconholdstartAt','[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s','musiconholdstop','[%s][calls][musiconholdstop]','mohtime','varset','[%s][calls][varset]','[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s','value','source','variable','xmd-phone','xmd-callerid','[%s][calls][varset]\x20variable:%s\x20value:%s','xmd-callerid-preview','xmcs-queue','xmd-queue','Queue','lastdata','ContactId','xmd-cdrtype','[%s][calls][varset]\x20variable:xmd-cdrtype\x20value:%s','outboundrouteid','[%s][calls][varset]\x20variable:outboundrouteid\x20value:%s','routeid','newexten','[%s][calls][newexten]','appdata','application','set','startsWith','cdr','split','substring'];(function(_0x1623d6,_0x44aecd){var _0x253d7d=function(_0x1b4439){while(--_0x1b4439){_0x1623d6['push'](_0x1623d6['shift']());}};_0x253d7d(++_0x44aecd);}(_0xf811,0x6f));var _0x1f81=function(_0x15c421,_0x6366f7){_0x15c421=_0x15c421-0x0;var _0x5e5ed5=_0xf811[_0x15c421];return _0x5e5ed5;};'use strict';var _=require(_0x1f81('0x0'));var util=require(_0x1f81('0x1'));var utils=require(_0x1f81('0x2'));var transfers=require(_0x1f81('0x3'));var dispositions=[_0x1f81('0x4'),_0x1f81('0x5'),_0x1f81('0x5'),_0x1f81('0x4'),_0x1f81('0x4'),_0x1f81('0x4'),_0x1f81('0x6'),_0x1f81('0x7'),_0x1f81('0x5'),_0x1f81('0x5'),'FAILED'];var channels={};function writeDB(_0x2238b2){var _0x42b31b;if(transfers[_0x1f81('0x8')][_0x2238b2['uniqueid']]){_0x42b31b=_0x2238b2[_0x1f81('0x9')];_0x2238b2[_0x1f81('0x9')]=transfers['blinds'][_0x2238b2[_0x1f81('0x9')]]['transfereeuniqueid'];}utils[_0x1f81('0xa')](util[_0x1f81('0xb')](_0x1f81('0xc'),_0x2238b2[_0x1f81('0x9')],_0x2238b2[_0x1f81('0xd')],_0x2238b2[_0x1f81('0xe')],_0x2238b2[_0x1f81('0xf')],_0x2238b2[_0x1f81('0x10')],_0x2238b2[_0x1f81('0x11')],_0x2238b2[_0x1f81('0x12')],_0x2238b2[_0x1f81('0x13')]));if(_0x2238b2[_0x1f81('0x14')]){utils[_0x1f81('0x15')](_0x2238b2[_0x1f81('0x14')])[_0x1f81('0x16')](function(_0x247b10){if(_0x247b10){_0x2238b2['UserId']=_0x247b10['id'];}utils[_0x1f81('0x17')](_0x1f81('0x18'),_0x2238b2);});}else{utils['request']('CreateVoiceCallReport',_0x2238b2);}if(channels[_0x2238b2[_0x1f81('0x9')]]){delete channels[_0x2238b2[_0x1f81('0x9')]];}else if(_0x42b31b&&channels[_0x42b31b]){if(!transfers['blinds'][_0x42b31b][_0x1f81('0x19')])delete transfers[_0x1f81('0x8')][_0x42b31b];delete channels[_0x42b31b];}}exports[_0x1f81('0x1a')]=function(_0x95a32d){try{utils['debug'](util['format'](_0x1f81('0x1b'),_0x95a32d[_0x1f81('0x9')]),_0x95a32d);if(_0x95a32d['uniqueid']==_0x95a32d[_0x1f81('0x1c')]&&_0x95a32d['channel']!=_0x1f81('0x1d')){utils[_0x1f81('0xa')](util[_0x1f81('0xb')]('[%s][calls][newchannel]\x20context:%s\x20exten:%s',_0x95a32d[_0x1f81('0x9')],_0x95a32d[_0x1f81('0x1e')],_0x95a32d[_0x1f81('0x1f')]));channels[_0x95a32d[_0x1f81('0x9')]]={'uniqueid':_0x95a32d[_0x1f81('0x9')],'accountcode':_0x95a32d[_0x1f81('0x14')],'source':_0x95a32d['calleridnum'],'destination':_0x95a32d[_0x1f81('0x1f')],'destinationcontext':_0x95a32d[_0x1f81('0x1e')],'channel':_0x95a32d[_0x1f81('0xd')],'starttime':utils['now'](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':'NO\x20ANSWER','amaflags':_0x1f81('0x20')};}}catch(_0x4aaf6e){utils[_0x1f81('0x21')](util['format']('[%s][calls][newchannel]',_0x95a32d[_0x1f81('0x9')]),_0x4aaf6e);}};exports['newstate']=function(_0x3d97a3){try{utils['debug'](util[_0x1f81('0xb')](_0x1f81('0x22'),_0x3d97a3[_0x1f81('0x9')]),_0x3d97a3);if(!_[_0x1f81('0x23')](channels[_0x3d97a3[_0x1f81('0x9')]])&&_0x3d97a3[_0x1f81('0x24')]==0x6){utils[_0x1f81('0xa')](util[_0x1f81('0xb')](_0x1f81('0x25'),_0x3d97a3[_0x1f81('0x9')],_0x3d97a3['context'],_0x3d97a3[_0x1f81('0xd')]));if(_['isNil'](channels[_0x3d97a3[_0x1f81('0x9')]][_0x1f81('0x26')])){channels[_0x3d97a3['uniqueid']][_0x1f81('0x26')]=utils[_0x1f81('0x27')]();}}else if(!_[_0x1f81('0x23')](channels[_0x3d97a3[_0x1f81('0x1c')]])&&_0x3d97a3[_0x1f81('0x24')]==0x6&&_0x3d97a3[_0x1f81('0x1e')]!=_0x1f81('0x28')){utils[_0x1f81('0xa')](util['format'](_0x1f81('0x29'),_0x3d97a3[_0x1f81('0x9')],_0x3d97a3[_0x1f81('0x1c')],_0x3d97a3[_0x1f81('0x1e')],_0x3d97a3[_0x1f81('0xd')]));channels[_0x3d97a3[_0x1f81('0x1c')]][_0x1f81('0x14')]=_0x3d97a3[_0x1f81('0x14')];channels[_0x3d97a3[_0x1f81('0x1c')]][_0x1f81('0x2a')]=_0x3d97a3[_0x1f81('0xd')];if(_['isNil'](channels[_0x3d97a3[_0x1f81('0x1c')]][_0x1f81('0x2b')])){channels[_0x3d97a3[_0x1f81('0x1c')]][_0x1f81('0x2b')]=utils['now']();}channels[_0x3d97a3[_0x1f81('0x1c')]][_0x1f81('0x2c')]=dispositions[_[_0x1f81('0x2d')](_0x3d97a3['channelstate'])]||'ANSWERED';}}catch(_0xb1969e){utils['error'](util[_0x1f81('0xb')]('[%s][calls][newstate]',_0x3d97a3[_0x1f81('0x9')]),_0xb1969e);}};exports[_0x1f81('0x2e')]=function(_0x276e90){try{if(!_[_0x1f81('0x23')](channels[_0x276e90[_0x1f81('0x9')]])){utils[_0x1f81('0x2f')](util[_0x1f81('0xb')]('[%s][calls][hangup]',_0x276e90[_0x1f81('0x9')]),_0x276e90);if(_['isNil'](channels[_0x276e90[_0x1f81('0x9')]][_0x1f81('0x30')])){channels[_0x276e90['uniqueid']][_0x1f81('0x30')]=_0x276e90[_0x1f81('0x31')]+'\x20<'+_0x276e90[_0x1f81('0x11')]+'>';}utils['info'](util[_0x1f81('0xb')](_0x1f81('0x32'),_0x276e90[_0x1f81('0x9')],channels[_0x276e90[_0x1f81('0x9')]][_0x1f81('0x30')],_0x276e90['cause-txt']));channels[_0x276e90[_0x1f81('0x9')]][_0x1f81('0x33')]=utils['now']();channels[_0x276e90['uniqueid']]['duration']=utils[_0x1f81('0x34')](channels[_0x276e90[_0x1f81('0x9')]]['endtime'],channels[_0x276e90['uniqueid']]['starttime']);channels[_0x276e90[_0x1f81('0x9')]][_0x1f81('0x35')]=channels[_0x276e90['uniqueid']][_0x1f81('0x2b')]?utils[_0x1f81('0x34')](channels[_0x276e90[_0x1f81('0x9')]]['endtime'],channels[_0x276e90[_0x1f81('0x9')]][_0x1f81('0x2b')]):0x0;writeDB(channels[_0x276e90[_0x1f81('0x9')]]);}}catch(_0x2133b5){utils[_0x1f81('0x21')](util[_0x1f81('0xb')]('[%s][calls][hangup]',_0x276e90[_0x1f81('0x9')]),_0x2133b5);}};exports[_0x1f81('0x36')]=function(_0x4714db){try{if(!_[_0x1f81('0x23')](channels[_0x4714db['localtwolinkedid']])){utils[_0x1f81('0x2f')](util[_0x1f81('0xb')]('[%s][calls][attendedtransfer]',_0x4714db[_0x1f81('0x37')]),_0x4714db);if(channels[_0x4714db['localtwolinkedid']][_0x1f81('0xd')]==_0x4714db['transfereechannel']){utils[_0x1f81('0xa')](util['format'](_0x1f81('0x38'),_0x4714db[_0x1f81('0x37')],_0x4714db[_0x1f81('0x39')],_0x4714db['secondtransfererchannel']));channels[_0x4714db[_0x1f81('0x39')]][_0x1f81('0x2a')]=_0x4714db['secondtransfererchannel'];channels[_0x4714db[_0x1f81('0x39')]][_0x1f81('0x3a')]=_0x1f81('0x3b');}else if(channels[_0x4714db[_0x1f81('0x39')]][_0x1f81('0xd')]=_0x4714db[_0x1f81('0x3c')]){utils[_0x1f81('0xa')](util['format'](_0x1f81('0x38'),_0x4714db[_0x1f81('0x37')],_0x4714db['localtwolinkedid'],_0x4714db[_0x1f81('0x3d')]));channels[_0x4714db[_0x1f81('0x39')]][_0x1f81('0x2a')]=_0x4714db['origtransfererchannel'];channels[_0x4714db[_0x1f81('0x39')]][_0x1f81('0x3a')]='_attended';}}}catch(_0x38df8c){utils['error'](util['format'](_0x1f81('0x3e'),_0x4714db[_0x1f81('0x37')]),_0x38df8c);}};exports[_0x1f81('0x3f')]=function(_0x4fc5f6){try{if(!_['isNil'](channels[_0x4fc5f6[_0x1f81('0x9')]])){utils['debug'](util[_0x1f81('0xb')](_0x1f81('0x40'),_0x4fc5f6[_0x1f81('0x9')]),_0x4fc5f6);channels[_0x4fc5f6[_0x1f81('0x9')]][_0x1f81('0x41')]=utils['now']();utils[_0x1f81('0xa')](util[_0x1f81('0xb')](_0x1f81('0x42'),_0x4fc5f6[_0x1f81('0x9')],channels[_0x4fc5f6['uniqueid']]['musiconholdstartAt']));}}catch(_0x1611ff){utils[_0x1f81('0x21')](util['format'](_0x1f81('0x40'),_0x4fc5f6['uniqueid']),_0x1611ff);}};exports[_0x1f81('0x43')]=function(_0x539c3f){try{if(!_[_0x1f81('0x23')](channels[_0x539c3f['uniqueid']])){utils[_0x1f81('0x2f')](util['format'](_0x1f81('0x44'),_0x539c3f[_0x1f81('0x9')]),_0x539c3f);if(!_[_0x1f81('0x23')](channels[_0x539c3f['uniqueid']][_0x1f81('0x41')])){channels[_0x539c3f[_0x1f81('0x9')]][_0x1f81('0x45')]+=utils[_0x1f81('0x34')](utils['now'](),channels[_0x539c3f['uniqueid']][_0x1f81('0x41')]);utils[_0x1f81('0xa')](util[_0x1f81('0xb')]('[%s][calls][musiconholdstop]\x20mohtime:%s',_0x539c3f[_0x1f81('0x9')],channels[_0x539c3f['uniqueid']][_0x1f81('0x45')]));delete channels[_0x539c3f['uniqueid']][_0x1f81('0x41')];}}}catch(_0x44cef5){utils[_0x1f81('0x21')](util[_0x1f81('0xb')](_0x1f81('0x44'),_0x539c3f[_0x1f81('0x9')]),_0x44cef5);}};exports[_0x1f81('0x46')]=function(_0x4c7ff0){try{if(!_['isNil'](channels[_0x4c7ff0[_0x1f81('0x9')]])){utils['debug'](util[_0x1f81('0xb')](_0x1f81('0x47'),_0x4c7ff0['uniqueid']),_0x4c7ff0);if(!_['isNil'](_0x4c7ff0['variable']['xmd-originatecalleridnum'])){utils['info'](util['format'](_0x1f81('0x48'),_0x4c7ff0['uniqueid'],_0x4c7ff0[_0x1f81('0x49')]));channels[_0x4c7ff0['uniqueid']][_0x1f81('0x4a')]=_0x4c7ff0[_0x1f81('0x49')];}if(!_[_0x1f81('0x23')](_0x4c7ff0[_0x1f81('0x4b')][_0x1f81('0x4c')])){utils['info'](util['format']('[%s][calls][varset]\x20variable:xmd-phone\x20value:%s',_0x4c7ff0[_0x1f81('0x9')],_0x4c7ff0['value']));channels[_0x4c7ff0[_0x1f81('0x9')]]['destination']=_0x4c7ff0['value'];channels[_0x4c7ff0['uniqueid']]['callerid']='\x22'+_0x4c7ff0[_0x1f81('0x49')]+'\x22\x20<'+_0x4c7ff0[_0x1f81('0x49')]+'>';}if(!_[_0x1f81('0x23')](_0x4c7ff0[_0x1f81('0x4b')]['xmd-callerid-preview'])||!_[_0x1f81('0x23')](_0x4c7ff0[_0x1f81('0x4b')][_0x1f81('0x4d')])){utils[_0x1f81('0xa')](util['format'](_0x1f81('0x4e'),_0x4c7ff0[_0x1f81('0x9')],!_[_0x1f81('0x23')](_0x4c7ff0[_0x1f81('0x4b')][_0x1f81('0x4f')])?_0x1f81('0x4f'):'xmd-callerid',_0x4c7ff0[_0x1f81('0x49')]));channels[_0x4c7ff0[_0x1f81('0x9')]][_0x1f81('0x30')]=_0x4c7ff0[_0x1f81('0x49')];}if(!_['isNil'](_0x4c7ff0[_0x1f81('0x4b')]['xmd-queue'])||!_[_0x1f81('0x23')](_0x4c7ff0[_0x1f81('0x4b')][_0x1f81('0x50')])){utils[_0x1f81('0xa')](util['format'](_0x1f81('0x4e'),_0x4c7ff0[_0x1f81('0x9')],!_[_0x1f81('0x23')](_0x4c7ff0[_0x1f81('0x4b')][_0x1f81('0x51')])?'xmd-queue':_0x1f81('0x50'),_0x4c7ff0[_0x1f81('0x49')]));channels[_0x4c7ff0[_0x1f81('0x9')]]['lastapplication']=_0x1f81('0x52');channels[_0x4c7ff0[_0x1f81('0x9')]][_0x1f81('0x53')]=_0x4c7ff0[_0x1f81('0x49')];channels[_0x4c7ff0['uniqueid']][_0x1f81('0xe')]=!![];}if(!_['isNil'](_0x4c7ff0['variable']['xmd-contactid'])){utils['info'](util['format']('[%s][calls][varset]\x20variable:xmd-contactid\x20value:%s',_0x4c7ff0['uniqueid'],_0x4c7ff0['value']));channels[_0x4c7ff0[_0x1f81('0x9')]][_0x1f81('0x54')]=_0x4c7ff0[_0x1f81('0x49')];}if(!_[_0x1f81('0x23')](_0x4c7ff0[_0x1f81('0x4b')][_0x1f81('0x55')])){utils[_0x1f81('0xa')](util[_0x1f81('0xb')](_0x1f81('0x56'),_0x4c7ff0[_0x1f81('0x9')],_0x4c7ff0['value']));channels[_0x4c7ff0[_0x1f81('0x9')]]['type']=_0x4c7ff0[_0x1f81('0x49')];}if(!_[_0x1f81('0x23')](_0x4c7ff0['variable'][_0x1f81('0x57')])){utils[_0x1f81('0xa')](util[_0x1f81('0xb')](_0x1f81('0x58'),_0x4c7ff0['uniqueid'],_0x4c7ff0[_0x1f81('0x49')]));channels[_0x4c7ff0['uniqueid']][_0x1f81('0x59')]=_0x4c7ff0[_0x1f81('0x49')];}if(!_['isNil'](_0x4c7ff0['variable']['sipcallid'])){utils[_0x1f81('0xa')](util[_0x1f81('0xb')]('[%s][calls][varset]\x20variable:sipcallid\x20value:%s',_0x4c7ff0[_0x1f81('0x9')],_0x4c7ff0[_0x1f81('0x49')]));channels[_0x4c7ff0[_0x1f81('0x9')]]['sipcallid']=_0x4c7ff0[_0x1f81('0x49')];}}}catch(_0x2973d0){utils['error'](util[_0x1f81('0xb')](_0x1f81('0x47'),_0x4c7ff0[_0x1f81('0x9')]),_0x2973d0);}};exports[_0x1f81('0x5a')]=function(_0x2125d9){try{if(!_[_0x1f81('0x23')](channels[_0x2125d9['uniqueid']])){utils[_0x1f81('0x2f')](util[_0x1f81('0xb')](_0x1f81('0x5b'),_0x2125d9[_0x1f81('0x9')]),_0x2125d9);utils['info'](util[_0x1f81('0xb')]('[%s][calls][newexten]\x20application:%s\x20appdata:%s',_0x2125d9['uniqueid'],_0x2125d9['application'],_0x2125d9[_0x1f81('0x5c')]));if(_0x2125d9[_0x1f81('0x5d')]['toLowerCase']()==_0x1f81('0x5e')&&_[_0x1f81('0x5f')](_0x2125d9[_0x1f81('0x5c')]['toLowerCase'](),_0x1f81('0x60'))){var _0x8ed2b2=_0x2125d9[_0x1f81('0x5c')][_0x1f81('0x61')]('=');var _0x534472=_0x8ed2b2[0x0][_0x1f81('0x62')](_0x8ed2b2[0x0][_0x1f81('0x63')]('(')+0x1,_0x8ed2b2[0x0]['lastIndexOf'](')'));var _0x40f989=_0x8ed2b2[0x1];channels[_0x2125d9[_0x1f81('0x9')]][_0x534472]=_0x40f989;}if(!_[_0x1f81('0x64')]([_0x1f81('0x2e'),_0x1f81('0x65'),_0x1f81('0x66'),_0x1f81('0x5e'),'gotoif'],_0x2125d9['application'][_0x1f81('0x67')]())){channels[_0x2125d9[_0x1f81('0x9')]][_0x1f81('0x68')]=_0x2125d9[_0x1f81('0x5d')];channels[_0x2125d9['uniqueid']][_0x1f81('0x53')]=_0x2125d9[_0x1f81('0x5c')];}}}catch(_0xfb3571){utils['error'](util['format'](_0x1f81('0x5b'),_0x2125d9[_0x1f81('0x9')]),_0xfb3571);}};