8843ebc8cbfc6d9ec71c7580bd2a48cde9240e14
[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 _0x1488=['lastdata','[%s][calls][varset]\x20variable:xmd-contactid\x20value:%s','ContactId','xmd-cdrtype','[%s][calls][varset]\x20variable:xmd-cdrtype\x20value:%s','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','appdata','toLowerCase','set','cdr','split','substring','lastIndexOf','includes','hangup','noop','execif','gotoif','[%s][calls][newexten]','lodash','./utils','./transfers.controller','NO\x20ANSWER','ANSWERED','BUSY','FAILED','uniqueid','blinds','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','UserId','request','CreateVoiceCallReport','recording','[%s][calls][newchannel]\x20context:%s\x20exten:%s','context','exten','now','DOCUMENTATION','error','newstate','debug','[%s][calls][newstate]','channelstate','[%s][calls][newstate]\x20context:%s\x20channel:%s','isNil','systemanswertime','linkedid','transfer','[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s','destinationchannel','answertime','disposition','toNumber','[%s][calls][hangup]','callerid','calleridname','[%s][calls][hangup]\x20callerid:%s\x20reason:%s','cause-txt','endtime','duration','starttime','billableseconds','diffTime','localtwolinkedid','[%s][calls][attendedtransfer]','origtransfereruniqueid','transfereechannel','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','userfield','_attended','origtransfererchannel','musiconholdstart','[%s][calls][musiconholdstart]','musiconholdstartAt','musiconholdstop','mohtime','[%s][calls][musiconholdstop]\x20mohtime:%s','[%s][calls][musiconholdstop]','varset','[%s][calls][varset]','variable','xmd-originatecalleridnum','[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s','value','xmd-phone','[%s][calls][varset]\x20variable:xmd-phone\x20value:%s','destination','xmd-callerid-preview','xmd-callerid','[%s][calls][varset]\x20variable:%s\x20value:%s','xmd-queue','xmcs-queue','Queue'];(function(_0x1beef3,_0x57c4b8){var _0x5af964=function(_0x36f463){while(--_0x36f463){_0x1beef3['push'](_0x1beef3['shift']());}};_0x5af964(++_0x57c4b8);}(_0x1488,0x88));var _0x8148=function(_0x4cefc3,_0x23f291){_0x4cefc3=_0x4cefc3-0x0;var _0x1cc779=_0x1488[_0x4cefc3];return _0x1cc779;};'use strict';var _=require(_0x8148('0x0'));var util=require('util');var utils=require(_0x8148('0x1'));var transfers=require(_0x8148('0x2'));var dispositions=[_0x8148('0x3'),'FAILED','FAILED',_0x8148('0x3'),'NO\x20ANSWER',_0x8148('0x3'),_0x8148('0x4'),_0x8148('0x5'),_0x8148('0x6'),_0x8148('0x6'),_0x8148('0x6')];var channels={};function writeDB(_0x696c2c){var _0x1254e9;if(transfers['blinds'][_0x696c2c[_0x8148('0x7')]]){_0x1254e9=_0x696c2c[_0x8148('0x7')];_0x696c2c[_0x8148('0x7')]=transfers[_0x8148('0x8')][_0x696c2c[_0x8148('0x7')]][_0x8148('0x9')];}utils[_0x8148('0xa')](util[_0x8148('0xb')](_0x8148('0xc'),_0x696c2c[_0x8148('0x7')],_0x696c2c[_0x8148('0xd')],_0x696c2c[_0x8148('0xe')],_0x696c2c['membername'],_0x696c2c[_0x8148('0xf')],_0x696c2c[_0x8148('0x10')],_0x696c2c[_0x8148('0x11')],_0x696c2c['lastevent']));if(_0x696c2c['accountcode']){utils[_0x8148('0x12')](_0x696c2c[_0x8148('0x13')])['then'](function(_0x1bf571){if(_0x1bf571){_0x696c2c[_0x8148('0x14')]=_0x1bf571['id'];}utils[_0x8148('0x15')](_0x8148('0x16'),_0x696c2c);});}else{utils[_0x8148('0x15')]('CreateVoiceCallReport',_0x696c2c);}if(channels[_0x696c2c[_0x8148('0x7')]]){delete channels[_0x696c2c['uniqueid']];}else if(_0x1254e9&&channels[_0x1254e9]){if(!transfers['blinds'][_0x1254e9][_0x8148('0x17')])delete transfers['blinds'][_0x1254e9];delete channels[_0x1254e9];}}exports['newchannel']=function(_0xdb0ed1){try{utils['debug'](util['format']('[%s][calls][newchannel]',_0xdb0ed1[_0x8148('0x7')]),_0xdb0ed1);if(_0xdb0ed1['uniqueid']==_0xdb0ed1['linkedid']&&_0xdb0ed1[_0x8148('0xd')]!='OutgoingSpoolFailed'){utils[_0x8148('0xa')](util['format'](_0x8148('0x18'),_0xdb0ed1[_0x8148('0x7')],_0xdb0ed1[_0x8148('0x19')],_0xdb0ed1[_0x8148('0x1a')]));channels[_0xdb0ed1[_0x8148('0x7')]]={'uniqueid':_0xdb0ed1[_0x8148('0x7')],'accountcode':_0xdb0ed1[_0x8148('0x13')],'source':_0xdb0ed1[_0x8148('0x10')],'destination':_0xdb0ed1[_0x8148('0x1a')],'destinationcontext':_0xdb0ed1[_0x8148('0x19')],'channel':_0xdb0ed1[_0x8148('0xd')],'starttime':utils[_0x8148('0x1b')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':_0x8148('0x3'),'amaflags':_0x8148('0x1c')};}}catch(_0x5b128a){utils[_0x8148('0x1d')](util[_0x8148('0xb')]('[%s][calls][newchannel]',_0xdb0ed1['uniqueid']),_0x5b128a);}};exports[_0x8148('0x1e')]=function(_0x4bb8a2){try{utils[_0x8148('0x1f')](util[_0x8148('0xb')](_0x8148('0x20'),_0x4bb8a2['uniqueid']),_0x4bb8a2);if(!_['isNil'](channels[_0x4bb8a2[_0x8148('0x7')]])&&_0x4bb8a2[_0x8148('0x21')]==0x6){utils['info'](util[_0x8148('0xb')](_0x8148('0x22'),_0x4bb8a2['uniqueid'],_0x4bb8a2[_0x8148('0x19')],_0x4bb8a2[_0x8148('0xd')]));if(_[_0x8148('0x23')](channels[_0x4bb8a2['uniqueid']][_0x8148('0x24')])){channels[_0x4bb8a2[_0x8148('0x7')]][_0x8148('0x24')]=utils[_0x8148('0x1b')]();}}else if(!_['isNil'](channels[_0x4bb8a2[_0x8148('0x25')]])&&_0x4bb8a2['channelstate']==0x6&&_0x4bb8a2['context']!=_0x8148('0x26')){utils['info'](util[_0x8148('0xb')](_0x8148('0x27'),_0x4bb8a2[_0x8148('0x7')],_0x4bb8a2[_0x8148('0x25')],_0x4bb8a2[_0x8148('0x19')],_0x4bb8a2[_0x8148('0xd')]));channels[_0x4bb8a2[_0x8148('0x25')]]['accountcode']=_0x4bb8a2[_0x8148('0x13')];channels[_0x4bb8a2[_0x8148('0x25')]][_0x8148('0x28')]=_0x4bb8a2['channel'];if(_[_0x8148('0x23')](channels[_0x4bb8a2[_0x8148('0x25')]][_0x8148('0x29')])){channels[_0x4bb8a2[_0x8148('0x25')]][_0x8148('0x29')]=utils['now']();}channels[_0x4bb8a2[_0x8148('0x25')]][_0x8148('0x2a')]=dispositions[_[_0x8148('0x2b')](_0x4bb8a2[_0x8148('0x21')])]||_0x8148('0x4');}}catch(_0x31c765){utils[_0x8148('0x1d')](util[_0x8148('0xb')](_0x8148('0x20'),_0x4bb8a2[_0x8148('0x7')]),_0x31c765);}};exports['hangup']=function(_0x3bcc5c){try{if(!_[_0x8148('0x23')](channels[_0x3bcc5c[_0x8148('0x7')]])){utils[_0x8148('0x1f')](util[_0x8148('0xb')](_0x8148('0x2c'),_0x3bcc5c['uniqueid']),_0x3bcc5c);if(_[_0x8148('0x23')](channels[_0x3bcc5c['uniqueid']]['callerid'])){channels[_0x3bcc5c[_0x8148('0x7')]][_0x8148('0x2d')]=_0x3bcc5c[_0x8148('0x2e')]+'\x20<'+_0x3bcc5c[_0x8148('0x10')]+'>';}utils['info'](util[_0x8148('0xb')](_0x8148('0x2f'),_0x3bcc5c[_0x8148('0x7')],channels[_0x3bcc5c[_0x8148('0x7')]][_0x8148('0x2d')],_0x3bcc5c[_0x8148('0x30')]));channels[_0x3bcc5c['uniqueid']][_0x8148('0x31')]=utils[_0x8148('0x1b')]();channels[_0x3bcc5c[_0x8148('0x7')]][_0x8148('0x32')]=utils['diffTime'](channels[_0x3bcc5c['uniqueid']][_0x8148('0x31')],channels[_0x3bcc5c[_0x8148('0x7')]][_0x8148('0x33')]);channels[_0x3bcc5c['uniqueid']][_0x8148('0x34')]=channels[_0x3bcc5c[_0x8148('0x7')]][_0x8148('0x29')]?utils[_0x8148('0x35')](channels[_0x3bcc5c['uniqueid']][_0x8148('0x31')],channels[_0x3bcc5c['uniqueid']][_0x8148('0x29')]):0x0;writeDB(channels[_0x3bcc5c[_0x8148('0x7')]]);}}catch(_0x320a03){utils['error'](util[_0x8148('0xb')]('[%s][calls][hangup]',_0x3bcc5c[_0x8148('0x7')]),_0x320a03);}};exports['attendedtransfer']=function(_0x3fa045){try{if(!_[_0x8148('0x23')](channels[_0x3fa045[_0x8148('0x36')]])){utils[_0x8148('0x1f')](util[_0x8148('0xb')](_0x8148('0x37'),_0x3fa045[_0x8148('0x38')]),_0x3fa045);if(channels[_0x3fa045[_0x8148('0x36')]][_0x8148('0xd')]==_0x3fa045[_0x8148('0x39')]){utils[_0x8148('0xa')](util['format'](_0x8148('0x3a'),_0x3fa045[_0x8148('0x38')],_0x3fa045[_0x8148('0x36')],_0x3fa045['secondtransfererchannel']));channels[_0x3fa045[_0x8148('0x36')]]['destinationchannel']=_0x3fa045['secondtransfererchannel'];channels[_0x3fa045['localtwolinkedid']][_0x8148('0x3b')]=_0x8148('0x3c');}else if(channels[_0x3fa045['localtwolinkedid']][_0x8148('0xd')]=_0x3fa045['transfertargetchannel']){utils['info'](util[_0x8148('0xb')](_0x8148('0x3a'),_0x3fa045['origtransfereruniqueid'],_0x3fa045[_0x8148('0x36')],_0x3fa045[_0x8148('0x3d')]));channels[_0x3fa045['localtwolinkedid']]['destinationchannel']=_0x3fa045[_0x8148('0x3d')];channels[_0x3fa045[_0x8148('0x36')]][_0x8148('0x3b')]=_0x8148('0x3c');}}}catch(_0x164034){utils[_0x8148('0x1d')](util[_0x8148('0xb')]('[%s][calls][attendedtransfer]',_0x3fa045[_0x8148('0x38')]),_0x164034);}};exports[_0x8148('0x3e')]=function(_0x7aae8e){try{if(!_[_0x8148('0x23')](channels[_0x7aae8e[_0x8148('0x7')]])){utils[_0x8148('0x1f')](util[_0x8148('0xb')](_0x8148('0x3f'),_0x7aae8e[_0x8148('0x7')]),_0x7aae8e);channels[_0x7aae8e['uniqueid']][_0x8148('0x40')]=utils[_0x8148('0x1b')]();utils[_0x8148('0xa')](util[_0x8148('0xb')]('[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s',_0x7aae8e[_0x8148('0x7')],channels[_0x7aae8e[_0x8148('0x7')]][_0x8148('0x40')]));}}catch(_0x5cd911){utils['error'](util[_0x8148('0xb')](_0x8148('0x3f'),_0x7aae8e[_0x8148('0x7')]),_0x5cd911);}};exports[_0x8148('0x41')]=function(_0x586e73){try{if(!_[_0x8148('0x23')](channels[_0x586e73[_0x8148('0x7')]])){utils['debug'](util['format']('[%s][calls][musiconholdstop]',_0x586e73[_0x8148('0x7')]),_0x586e73);if(!_[_0x8148('0x23')](channels[_0x586e73['uniqueid']]['musiconholdstartAt'])){channels[_0x586e73['uniqueid']][_0x8148('0x42')]+=utils['diffTime'](utils[_0x8148('0x1b')](),channels[_0x586e73[_0x8148('0x7')]][_0x8148('0x40')]);utils[_0x8148('0xa')](util[_0x8148('0xb')](_0x8148('0x43'),_0x586e73[_0x8148('0x7')],channels[_0x586e73[_0x8148('0x7')]][_0x8148('0x42')]));delete channels[_0x586e73[_0x8148('0x7')]][_0x8148('0x40')];}}}catch(_0x725b1e){utils['error'](util['format'](_0x8148('0x44'),_0x586e73[_0x8148('0x7')]),_0x725b1e);}};exports[_0x8148('0x45')]=function(_0x5e1704){try{if(!_[_0x8148('0x23')](channels[_0x5e1704[_0x8148('0x7')]])){utils['debug'](util[_0x8148('0xb')](_0x8148('0x46'),_0x5e1704[_0x8148('0x7')]),_0x5e1704);if(!_[_0x8148('0x23')](_0x5e1704[_0x8148('0x47')][_0x8148('0x48')])){utils[_0x8148('0xa')](util[_0x8148('0xb')](_0x8148('0x49'),_0x5e1704[_0x8148('0x7')],_0x5e1704[_0x8148('0x4a')]));channels[_0x5e1704[_0x8148('0x7')]]['source']=_0x5e1704['value'];}if(!_[_0x8148('0x23')](_0x5e1704[_0x8148('0x47')][_0x8148('0x4b')])){utils[_0x8148('0xa')](util[_0x8148('0xb')](_0x8148('0x4c'),_0x5e1704['uniqueid'],_0x5e1704['value']));channels[_0x5e1704['uniqueid']][_0x8148('0x4d')]=_0x5e1704[_0x8148('0x4a')];channels[_0x5e1704[_0x8148('0x7')]][_0x8148('0x2d')]='\x22'+_0x5e1704[_0x8148('0x4a')]+'\x22\x20<'+_0x5e1704[_0x8148('0x4a')]+'>';}if(!_['isNil'](_0x5e1704['variable'][_0x8148('0x4e')])||!_[_0x8148('0x23')](_0x5e1704['variable'][_0x8148('0x4f')])){utils['info'](util[_0x8148('0xb')](_0x8148('0x50'),_0x5e1704[_0x8148('0x7')],!_[_0x8148('0x23')](_0x5e1704[_0x8148('0x47')][_0x8148('0x4e')])?_0x8148('0x4e'):_0x8148('0x4f'),_0x5e1704[_0x8148('0x4a')]));channels[_0x5e1704[_0x8148('0x7')]][_0x8148('0x2d')]=_0x5e1704[_0x8148('0x4a')];}if(!_[_0x8148('0x23')](_0x5e1704[_0x8148('0x47')][_0x8148('0x51')])||!_['isNil'](_0x5e1704[_0x8148('0x47')][_0x8148('0x52')])){utils[_0x8148('0xa')](util[_0x8148('0xb')](_0x8148('0x50'),_0x5e1704['uniqueid'],!_[_0x8148('0x23')](_0x5e1704['variable'][_0x8148('0x51')])?'xmd-queue':'xmcs-queue',_0x5e1704['value']));channels[_0x5e1704[_0x8148('0x7')]]['lastapplication']=_0x8148('0x53');channels[_0x5e1704[_0x8148('0x7')]][_0x8148('0x54')]=_0x5e1704[_0x8148('0x4a')];channels[_0x5e1704[_0x8148('0x7')]]['queue']=!![];}if(!_[_0x8148('0x23')](_0x5e1704[_0x8148('0x47')]['xmd-contactid'])){utils['info'](util[_0x8148('0xb')](_0x8148('0x55'),_0x5e1704[_0x8148('0x7')],_0x5e1704['value']));channels[_0x5e1704['uniqueid']][_0x8148('0x56')]=_0x5e1704[_0x8148('0x4a')];}if(!_['isNil'](_0x5e1704[_0x8148('0x47')][_0x8148('0x57')])){utils['info'](util[_0x8148('0xb')](_0x8148('0x58'),_0x5e1704[_0x8148('0x7')],_0x5e1704[_0x8148('0x4a')]));channels[_0x5e1704[_0x8148('0x7')]]['type']=_0x5e1704['value'];}if(!_[_0x8148('0x23')](_0x5e1704[_0x8148('0x47')][_0x8148('0x59')])){utils['info'](util[_0x8148('0xb')](_0x8148('0x5a'),_0x5e1704[_0x8148('0x7')],_0x5e1704['value']));channels[_0x5e1704[_0x8148('0x7')]][_0x8148('0x5b')]=_0x5e1704[_0x8148('0x4a')];}if(!_[_0x8148('0x23')](_0x5e1704[_0x8148('0x47')][_0x8148('0x5c')])){utils[_0x8148('0xa')](util[_0x8148('0xb')](_0x8148('0x5d'),_0x5e1704[_0x8148('0x7')],_0x5e1704['value']));channels[_0x5e1704[_0x8148('0x7')]][_0x8148('0x5c')]=_0x5e1704['value'];}}}catch(_0x3bd224){utils[_0x8148('0x1d')](util['format']('[%s][calls][varset]',_0x5e1704[_0x8148('0x7')]),_0x3bd224);}};exports[_0x8148('0x5e')]=function(_0xe216ee){try{if(!_[_0x8148('0x23')](channels[_0xe216ee[_0x8148('0x7')]])){utils[_0x8148('0x1f')](util[_0x8148('0xb')]('[%s][calls][newexten]',_0xe216ee['uniqueid']),_0xe216ee);utils['info'](util['format'](_0x8148('0x5f'),_0xe216ee[_0x8148('0x7')],_0xe216ee[_0x8148('0x60')],_0xe216ee[_0x8148('0x61')]));if(_0xe216ee[_0x8148('0x60')][_0x8148('0x62')]()==_0x8148('0x63')&&_['startsWith'](_0xe216ee['appdata'][_0x8148('0x62')](),_0x8148('0x64'))){var _0x3a07e1=_0xe216ee['appdata'][_0x8148('0x65')]('=');var _0x365fcb=_0x3a07e1[0x0][_0x8148('0x66')](_0x3a07e1[0x0][_0x8148('0x67')]('(')+0x1,_0x3a07e1[0x0][_0x8148('0x67')](')'));var _0x354f93=_0x3a07e1[0x1];channels[_0xe216ee[_0x8148('0x7')]][_0x365fcb]=_0x354f93;}if(!_[_0x8148('0x68')]([_0x8148('0x69'),_0x8148('0x6a'),_0x8148('0x6b'),'set',_0x8148('0x6c')],_0xe216ee[_0x8148('0x60')][_0x8148('0x62')]())){channels[_0xe216ee[_0x8148('0x7')]]['lastapplication']=_0xe216ee[_0x8148('0x60')];channels[_0xe216ee[_0x8148('0x7')]][_0x8148('0x54')]=_0xe216ee[_0x8148('0x61')];}}}catch(_0x4b1926){utils['error'](util[_0x8148('0xb')](_0x8148('0x6d'),_0xe216ee[_0x8148('0x7')]),_0x4b1926);}};