Built motion from commit a679711e.|2.6.15
[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 _0x5353=['format','[%s][calls][newchannel]','linkedid','channel','OutgoingSpoolFailed','[%s][calls][newchannel]\x20context:%s\x20exten:%s','exten','now','DOCUMENTATION','error','[%s][calls][newstate]','isNil','[%s][calls][newstate]\x20context:%s\x20channel:%s','context','systemanswertime','channelstate','destinationchannel','answertime','disposition','toNumber','hangup','callerid','calleridname','cause-txt','endtime','duration','diffTime','starttime','[%s][calls][hangup]','attendedtransfer','localtwolinkedid','[%s][calls][attendedtransfer]','origtransfereruniqueid','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','secondtransfererchannel','userfield','_attended','transfertargetchannel','origtransfererchannel','musiconholdstart','[%s][calls][musiconholdstart]','[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s','musiconholdstartAt','[%s][calls][musiconholdstop]','mohtime','[%s][calls][musiconholdstop]\x20mohtime:%s','varset','[%s][calls][varset]','[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s','value','source','xmd-phone','\x22\x20<','variable','xmd-callerid-preview','xmd-callerid','[%s][calls][varset]\x20variable:%s\x20value:%s','xmd-queue','xmcs-queue','lastapplication','lastdata','xmd-contactid','[%s][calls][varset]\x20variable:xmd-contactid\x20value:%s','ContactId','[%s][calls][varset]\x20variable:xmd-cdrtype\x20value:%s','type','outboundrouteid','[%s][calls][varset]\x20variable:outboundrouteid\x20value:%s','sipcallid','[%s][calls][varset]\x20variable:sipcallid\x20value:%s','[%s][calls][newexten]','[%s][calls][newexten]\x20application:%s\x20appdata:%s','application','appdata','set','startsWith','toLowerCase','cdr','split','substring','lastIndexOf','includes','noop','execif','gotoif','lodash','./utils','./transfers.controller','NO\x20ANSWER','FAILED','ANSWERED','BUSY','blinds','uniqueid','transfereeuniqueid','info','[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','queue','calleridnum','connectedlinenum','lastevent','accountcode','getUserByInternal','then','UserId','CreateVoiceCallReport','request','recording','debug'];(function(_0x117ae4,_0x6de6c8){var _0x5d9a89=function(_0x2fca34){while(--_0x2fca34){_0x117ae4['push'](_0x117ae4['shift']());}};_0x5d9a89(++_0x6de6c8);}(_0x5353,0x12f));var _0x3535=function(_0x420192,_0x28e98c){_0x420192=_0x420192-0x0;var _0x5226c2=_0x5353[_0x420192];return _0x5226c2;};'use strict';var _=require(_0x3535('0x0'));var util=require('util');var utils=require(_0x3535('0x1'));var transfers=require(_0x3535('0x2'));var dispositions=[_0x3535('0x3'),_0x3535('0x4'),_0x3535('0x4'),_0x3535('0x3'),_0x3535('0x3'),_0x3535('0x3'),_0x3535('0x5'),_0x3535('0x6'),'FAILED',_0x3535('0x4'),'FAILED'];var channels={};function writeDB(_0x1c92fd){var _0x268873;if(transfers[_0x3535('0x7')][_0x1c92fd['uniqueid']]){_0x268873=_0x1c92fd[_0x3535('0x8')];_0x1c92fd[_0x3535('0x8')]=transfers[_0x3535('0x7')][_0x1c92fd[_0x3535('0x8')]][_0x3535('0x9')];}utils[_0x3535('0xa')](util['format'](_0x3535('0xb'),_0x1c92fd[_0x3535('0x8')],_0x1c92fd['channel'],_0x1c92fd[_0x3535('0xc')],_0x1c92fd['membername'],_0x1c92fd['interface'],_0x1c92fd[_0x3535('0xd')],_0x1c92fd[_0x3535('0xe')],_0x1c92fd[_0x3535('0xf')]));if(_0x1c92fd[_0x3535('0x10')]){utils[_0x3535('0x11')](_0x1c92fd[_0x3535('0x10')])[_0x3535('0x12')](function(_0x5115bd){if(_0x5115bd){_0x1c92fd[_0x3535('0x13')]=_0x5115bd['id'];}utils['request'](_0x3535('0x14'),_0x1c92fd);});}else{utils[_0x3535('0x15')](_0x3535('0x14'),_0x1c92fd);}if(channels[_0x1c92fd['uniqueid']]){delete channels[_0x1c92fd[_0x3535('0x8')]];}else if(_0x268873&&channels[_0x268873]){if(!transfers['blinds'][_0x268873][_0x3535('0x16')])delete transfers['blinds'][_0x268873];delete channels[_0x268873];}}exports['newchannel']=function(_0x4243c1){try{utils[_0x3535('0x17')](util[_0x3535('0x18')](_0x3535('0x19'),_0x4243c1[_0x3535('0x8')]),_0x4243c1);if(_0x4243c1[_0x3535('0x8')]==_0x4243c1[_0x3535('0x1a')]&&_0x4243c1[_0x3535('0x1b')]!=_0x3535('0x1c')){utils[_0x3535('0xa')](util[_0x3535('0x18')](_0x3535('0x1d'),_0x4243c1['uniqueid'],_0x4243c1['context'],_0x4243c1[_0x3535('0x1e')]));channels[_0x4243c1['uniqueid']]={'uniqueid':_0x4243c1['uniqueid'],'accountcode':_0x4243c1[_0x3535('0x10')],'source':_0x4243c1[_0x3535('0xd')],'destination':_0x4243c1[_0x3535('0x1e')],'destinationcontext':_0x4243c1['context'],'channel':_0x4243c1['channel'],'starttime':utils[_0x3535('0x1f')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':'NO\x20ANSWER','amaflags':_0x3535('0x20')};}}catch(_0x542372){utils[_0x3535('0x21')](util['format'](_0x3535('0x19'),_0x4243c1['uniqueid']),_0x542372);}};exports['newstate']=function(_0x333946){try{utils[_0x3535('0x17')](util['format'](_0x3535('0x22'),_0x333946[_0x3535('0x8')]),_0x333946);if(!_[_0x3535('0x23')](channels[_0x333946[_0x3535('0x8')]])&&_0x333946['channelstate']==0x6){utils[_0x3535('0xa')](util[_0x3535('0x18')](_0x3535('0x24'),_0x333946[_0x3535('0x8')],_0x333946[_0x3535('0x25')],_0x333946[_0x3535('0x1b')]));if(_[_0x3535('0x23')](channels[_0x333946[_0x3535('0x8')]]['systemanswertime'])){channels[_0x333946[_0x3535('0x8')]][_0x3535('0x26')]=utils['now']();}}else if(!_[_0x3535('0x23')](channels[_0x333946[_0x3535('0x1a')]])&&_0x333946[_0x3535('0x27')]==0x6&&_0x333946['context']!='transfer'){utils[_0x3535('0xa')](util[_0x3535('0x18')]('[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s',_0x333946[_0x3535('0x8')],_0x333946[_0x3535('0x1a')],_0x333946[_0x3535('0x25')],_0x333946[_0x3535('0x1b')]));channels[_0x333946['linkedid']][_0x3535('0x10')]=_0x333946[_0x3535('0x10')];channels[_0x333946['linkedid']][_0x3535('0x28')]=_0x333946[_0x3535('0x1b')];if(_[_0x3535('0x23')](channels[_0x333946[_0x3535('0x1a')]][_0x3535('0x29')])){channels[_0x333946[_0x3535('0x1a')]][_0x3535('0x29')]=utils['now']();}channels[_0x333946['linkedid']][_0x3535('0x2a')]=dispositions[_[_0x3535('0x2b')](_0x333946[_0x3535('0x27')])]||_0x3535('0x5');}}catch(_0x3f5558){utils[_0x3535('0x21')](util[_0x3535('0x18')](_0x3535('0x22'),_0x333946['uniqueid']),_0x3f5558);}};exports[_0x3535('0x2c')]=function(_0x36d865){try{if(!_[_0x3535('0x23')](channels[_0x36d865[_0x3535('0x8')]])){utils[_0x3535('0x17')](util[_0x3535('0x18')]('[%s][calls][hangup]',_0x36d865[_0x3535('0x8')]),_0x36d865);if(_['isNil'](channels[_0x36d865[_0x3535('0x8')]][_0x3535('0x2d')])){channels[_0x36d865['uniqueid']][_0x3535('0x2d')]=_0x36d865[_0x3535('0x2e')]+'\x20<'+_0x36d865[_0x3535('0xd')]+'>';}utils[_0x3535('0xa')](util['format']('[%s][calls][hangup]\x20callerid:%s\x20reason:%s',_0x36d865[_0x3535('0x8')],channels[_0x36d865[_0x3535('0x8')]][_0x3535('0x2d')],_0x36d865[_0x3535('0x2f')]));channels[_0x36d865[_0x3535('0x8')]][_0x3535('0x30')]=utils[_0x3535('0x1f')]();channels[_0x36d865[_0x3535('0x8')]][_0x3535('0x31')]=utils[_0x3535('0x32')](channels[_0x36d865[_0x3535('0x8')]][_0x3535('0x30')],channels[_0x36d865['uniqueid']][_0x3535('0x33')]);channels[_0x36d865[_0x3535('0x8')]]['billableseconds']=channels[_0x36d865[_0x3535('0x8')]][_0x3535('0x29')]?utils[_0x3535('0x32')](channels[_0x36d865[_0x3535('0x8')]][_0x3535('0x30')],channels[_0x36d865[_0x3535('0x8')]]['answertime']):0x0;writeDB(channels[_0x36d865[_0x3535('0x8')]]);}}catch(_0x3c3691){utils[_0x3535('0x21')](util['format'](_0x3535('0x34'),_0x36d865[_0x3535('0x8')]),_0x3c3691);}};exports[_0x3535('0x35')]=function(_0x3990f7){try{if(!_[_0x3535('0x23')](channels[_0x3990f7[_0x3535('0x36')]])){utils[_0x3535('0x17')](util[_0x3535('0x18')](_0x3535('0x37'),_0x3990f7[_0x3535('0x38')]),_0x3990f7);if(channels[_0x3990f7[_0x3535('0x36')]][_0x3535('0x1b')]==_0x3990f7['transfereechannel']){utils[_0x3535('0xa')](util['format'](_0x3535('0x39'),_0x3990f7['origtransfereruniqueid'],_0x3990f7[_0x3535('0x36')],_0x3990f7[_0x3535('0x3a')]));channels[_0x3990f7[_0x3535('0x36')]][_0x3535('0x28')]=_0x3990f7[_0x3535('0x3a')];channels[_0x3990f7['localtwolinkedid']][_0x3535('0x3b')]=_0x3535('0x3c');}else if(channels[_0x3990f7['localtwolinkedid']][_0x3535('0x1b')]=_0x3990f7[_0x3535('0x3d')]){utils[_0x3535('0xa')](util[_0x3535('0x18')](_0x3535('0x39'),_0x3990f7[_0x3535('0x38')],_0x3990f7['localtwolinkedid'],_0x3990f7[_0x3535('0x3e')]));channels[_0x3990f7[_0x3535('0x36')]]['destinationchannel']=_0x3990f7[_0x3535('0x3e')];channels[_0x3990f7['localtwolinkedid']][_0x3535('0x3b')]=_0x3535('0x3c');}}}catch(_0x234518){utils[_0x3535('0x21')](util[_0x3535('0x18')](_0x3535('0x37'),_0x3990f7[_0x3535('0x38')]),_0x234518);}};exports[_0x3535('0x3f')]=function(_0x5f2ea8){try{if(!_[_0x3535('0x23')](channels[_0x5f2ea8[_0x3535('0x8')]])){utils[_0x3535('0x17')](util['format'](_0x3535('0x40'),_0x5f2ea8[_0x3535('0x8')]),_0x5f2ea8);channels[_0x5f2ea8[_0x3535('0x8')]]['musiconholdstartAt']=utils['now']();utils[_0x3535('0xa')](util[_0x3535('0x18')](_0x3535('0x41'),_0x5f2ea8[_0x3535('0x8')],channels[_0x5f2ea8[_0x3535('0x8')]][_0x3535('0x42')]));}}catch(_0x4c9e13){utils[_0x3535('0x21')](util[_0x3535('0x18')](_0x3535('0x40'),_0x5f2ea8[_0x3535('0x8')]),_0x4c9e13);}};exports['musiconholdstop']=function(_0x5b59b2){try{if(!_['isNil'](channels[_0x5b59b2[_0x3535('0x8')]])){utils[_0x3535('0x17')](util[_0x3535('0x18')](_0x3535('0x43'),_0x5b59b2[_0x3535('0x8')]),_0x5b59b2);if(!_[_0x3535('0x23')](channels[_0x5b59b2[_0x3535('0x8')]][_0x3535('0x42')])){channels[_0x5b59b2[_0x3535('0x8')]][_0x3535('0x44')]+=utils[_0x3535('0x32')](utils[_0x3535('0x1f')](),channels[_0x5b59b2[_0x3535('0x8')]][_0x3535('0x42')]);utils[_0x3535('0xa')](util[_0x3535('0x18')](_0x3535('0x45'),_0x5b59b2[_0x3535('0x8')],channels[_0x5b59b2[_0x3535('0x8')]]['mohtime']));delete channels[_0x5b59b2['uniqueid']][_0x3535('0x42')];}}}catch(_0x5786da){utils[_0x3535('0x21')](util[_0x3535('0x18')]('[%s][calls][musiconholdstop]',_0x5b59b2[_0x3535('0x8')]),_0x5786da);}};exports[_0x3535('0x46')]=function(_0x130112){try{if(!_[_0x3535('0x23')](channels[_0x130112[_0x3535('0x8')]])){utils['debug'](util[_0x3535('0x18')](_0x3535('0x47'),_0x130112['uniqueid']),_0x130112);if(!_['isNil'](_0x130112['variable']['xmd-originatecalleridnum'])){utils[_0x3535('0xa')](util[_0x3535('0x18')](_0x3535('0x48'),_0x130112[_0x3535('0x8')],_0x130112[_0x3535('0x49')]));channels[_0x130112['uniqueid']][_0x3535('0x4a')]=_0x130112[_0x3535('0x49')];}if(!_[_0x3535('0x23')](_0x130112['variable'][_0x3535('0x4b')])){utils[_0x3535('0xa')](util['format']('[%s][calls][varset]\x20variable:xmd-phone\x20value:%s',_0x130112[_0x3535('0x8')],_0x130112['value']));channels[_0x130112[_0x3535('0x8')]]['destination']=_0x130112['value'];channels[_0x130112[_0x3535('0x8')]][_0x3535('0x2d')]='\x22'+_0x130112['value']+_0x3535('0x4c')+_0x130112[_0x3535('0x49')]+'>';}if(!_[_0x3535('0x23')](_0x130112[_0x3535('0x4d')][_0x3535('0x4e')])||!_[_0x3535('0x23')](_0x130112[_0x3535('0x4d')][_0x3535('0x4f')])){utils[_0x3535('0xa')](util['format'](_0x3535('0x50'),_0x130112[_0x3535('0x8')],!_[_0x3535('0x23')](_0x130112['variable']['xmd-callerid-preview'])?'xmd-callerid-preview':_0x3535('0x4f'),_0x130112['value']));channels[_0x130112[_0x3535('0x8')]]['callerid']=_0x130112[_0x3535('0x49')];}if(!_[_0x3535('0x23')](_0x130112[_0x3535('0x4d')][_0x3535('0x51')])||!_[_0x3535('0x23')](_0x130112['variable']['xmcs-queue'])){utils['info'](util[_0x3535('0x18')](_0x3535('0x50'),_0x130112[_0x3535('0x8')],!_[_0x3535('0x23')](_0x130112[_0x3535('0x4d')][_0x3535('0x51')])?'xmd-queue':_0x3535('0x52'),_0x130112['value']));channels[_0x130112[_0x3535('0x8')]][_0x3535('0x53')]='Queue';channels[_0x130112['uniqueid']][_0x3535('0x54')]=_0x130112[_0x3535('0x49')];channels[_0x130112[_0x3535('0x8')]]['queue']=!![];}if(!_[_0x3535('0x23')](_0x130112[_0x3535('0x4d')][_0x3535('0x55')])){utils['info'](util[_0x3535('0x18')](_0x3535('0x56'),_0x130112[_0x3535('0x8')],_0x130112['value']));channels[_0x130112[_0x3535('0x8')]][_0x3535('0x57')]=_0x130112[_0x3535('0x49')];}if(!_[_0x3535('0x23')](_0x130112['variable']['xmd-cdrtype'])){utils[_0x3535('0xa')](util[_0x3535('0x18')](_0x3535('0x58'),_0x130112[_0x3535('0x8')],_0x130112[_0x3535('0x49')]));channels[_0x130112[_0x3535('0x8')]][_0x3535('0x59')]=_0x130112[_0x3535('0x49')];}if(!_[_0x3535('0x23')](_0x130112[_0x3535('0x4d')][_0x3535('0x5a')])){utils[_0x3535('0xa')](util[_0x3535('0x18')](_0x3535('0x5b'),_0x130112[_0x3535('0x8')],_0x130112['value']));channels[_0x130112['uniqueid']]['routeid']=_0x130112[_0x3535('0x49')];}if(!_[_0x3535('0x23')](_0x130112[_0x3535('0x4d')][_0x3535('0x5c')])){utils[_0x3535('0xa')](util[_0x3535('0x18')](_0x3535('0x5d'),_0x130112[_0x3535('0x8')],_0x130112[_0x3535('0x49')]));channels[_0x130112[_0x3535('0x8')]]['sipcallid']=_0x130112['value'];}}}catch(_0x5810fd){utils['error'](util[_0x3535('0x18')]('[%s][calls][varset]',_0x130112[_0x3535('0x8')]),_0x5810fd);}};exports['newexten']=function(_0x13a475){try{if(!_[_0x3535('0x23')](channels[_0x13a475[_0x3535('0x8')]])){utils[_0x3535('0x17')](util[_0x3535('0x18')](_0x3535('0x5e'),_0x13a475[_0x3535('0x8')]),_0x13a475);utils[_0x3535('0xa')](util[_0x3535('0x18')](_0x3535('0x5f'),_0x13a475['uniqueid'],_0x13a475[_0x3535('0x60')],_0x13a475[_0x3535('0x61')]));if(_0x13a475[_0x3535('0x60')]['toLowerCase']()==_0x3535('0x62')&&_[_0x3535('0x63')](_0x13a475[_0x3535('0x61')][_0x3535('0x64')](),_0x3535('0x65'))){var _0x5db2ad=_0x13a475[_0x3535('0x61')][_0x3535('0x66')]('=');var _0x152d07=_0x5db2ad[0x0][_0x3535('0x67')](_0x5db2ad[0x0][_0x3535('0x68')]('(')+0x1,_0x5db2ad[0x0]['lastIndexOf'](')'));var _0x56001f=_0x5db2ad[0x1];channels[_0x13a475[_0x3535('0x8')]][_0x152d07]=_0x56001f;}if(!_[_0x3535('0x69')](['hangup',_0x3535('0x6a'),_0x3535('0x6b'),_0x3535('0x62'),_0x3535('0x6c')],_0x13a475['application'][_0x3535('0x64')]())){channels[_0x13a475[_0x3535('0x8')]][_0x3535('0x53')]=_0x13a475['application'];channels[_0x13a475['uniqueid']][_0x3535('0x54')]=_0x13a475[_0x3535('0x61')];}}}catch(_0x11429d){utils[_0x3535('0x21')](util[_0x3535('0x18')]('[%s][calls][newexten]',_0x13a475[_0x3535('0x8')]),_0x11429d);}};