eef4b86bbd19433eeb667389de8b53882439df62
[motion2.git] / server / services / xdr / dials.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 _0x3a8f=['dialbegin','isNil','assign','starttime','now','lastevent','called','[%s][dials][hangup]\x20starttime:%s\x20lastevent:called','[%s][dials][dialbegin]','[%s][dials][dialend]','dialstatus','ANSWER','answertime','connect','[%s][dials][dialend]\x20dialstatus:%s\x20answertime:%s\x20lastevent:connect','[%s][dials][hangup]\x20calleridnum:%s\x20calleridname:%s\x20lastevent:complete\x20reason:%s','calleridname','duration','diffTime','endtime','[%s][dials][hangup]','lodash','util','info','format','uniqueid','dialstring','calleridnum','connectedlinenum','request','CreateVoiceDialReport','newexten','[%s][dials][newexten]','[%s][dials][newexten]\x20application:%s\x20appdata:%s','application','toLowerCase','startsWith','appdata','error','varset','debug','[%s][dials][varset]','[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s','value'];(function(_0x3ca34b,_0x14c706){var _0x149003=function(_0xa67827){while(--_0xa67827){_0x3ca34b['push'](_0x3ca34b['shift']());}};_0x149003(++_0x14c706);}(_0x3a8f,0x99));var _0xf3a8=function(_0xd65643,_0x2b8337){_0xd65643=_0xd65643-0x0;var _0x19dc56=_0x3a8f[_0xd65643];return _0x19dc56;};'use strict';var _=require(_0xf3a8('0x0'));var util=require(_0xf3a8('0x1'));var utils=require('./utils');var dials={};function writeDB(_0x52371d){utils[_0xf3a8('0x2')](util[_0xf3a8('0x3')]('[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s',_0x52371d[_0xf3a8('0x4')],_0x52371d['channel'],_0x52371d[_0xf3a8('0x5')],_0x52371d[_0xf3a8('0x6')],_0x52371d[_0xf3a8('0x7')],_0x52371d['dialstatus']));utils[_0xf3a8('0x8')](_0xf3a8('0x9'),_0x52371d);delete dials[_0x52371d['uniqueid']];}exports[_0xf3a8('0xa')]=function(_0x40e634){try{utils['debug'](util[_0xf3a8('0x3')](_0xf3a8('0xb'),_0x40e634[_0xf3a8('0x4')]),_0x40e634);utils[_0xf3a8('0x2')](util[_0xf3a8('0x3')](_0xf3a8('0xc'),_0x40e634[_0xf3a8('0x4')],_0x40e634[_0xf3a8('0xd')],_0x40e634['appdata']));if(_0x40e634[_0xf3a8('0xd')][_0xf3a8('0xe')]()=='set'&&_[_0xf3a8('0xf')](_0x40e634[_0xf3a8('0x10')][_0xf3a8('0xe')](),'cdr(routeid)')){var _0x1b05f3=_0x40e634['appdata']['split']('=');dials[_0x40e634[_0xf3a8('0x4')]]={'routeId':_0x1b05f3[0x1]};}}catch(_0x5d9077){utils[_0xf3a8('0x11')](util[_0xf3a8('0x3')]('[%s][dials][newexten]',_0x40e634[_0xf3a8('0x4')]),_0x5d9077);}};exports[_0xf3a8('0x12')]=function(_0xb24381){try{utils[_0xf3a8('0x13')](util[_0xf3a8('0x3')](_0xf3a8('0x14'),_0xb24381[_0xf3a8('0x4')]),_0xb24381);if(!_['isNil'](_0xb24381['variable']['outboundrouteid'])){utils[_0xf3a8('0x2')](util[_0xf3a8('0x3')](_0xf3a8('0x15'),_0xb24381[_0xf3a8('0x4')],_0xb24381[_0xf3a8('0x16')]));dials[_0xb24381[_0xf3a8('0x4')]]={'routeId':_0xb24381[_0xf3a8('0x16')]};}}catch(_0x337d42){utils[_0xf3a8('0x11')](util[_0xf3a8('0x3')](_0xf3a8('0x14'),_0xb24381[_0xf3a8('0x4')]),_0x337d42);}};exports[_0xf3a8('0x17')]=function(_0x9902bd){try{if(!_[_0xf3a8('0x18')](dials[_0x9902bd['uniqueid']])){utils['debug'](util[_0xf3a8('0x3')]('[%s][dials][dialbegin]',_0x9902bd[_0xf3a8('0x4')]),_0x9902bd);dials[_0x9902bd[_0xf3a8('0x4')]]=_[_0xf3a8('0x19')](dials[_0x9902bd[_0xf3a8('0x4')]],_0x9902bd);dials[_0x9902bd[_0xf3a8('0x4')]][_0xf3a8('0x1a')]=utils[_0xf3a8('0x1b')]();dials[_0x9902bd['uniqueid']][_0xf3a8('0x1c')]=_0xf3a8('0x1d');utils[_0xf3a8('0x2')](util[_0xf3a8('0x3')](_0xf3a8('0x1e'),_0x9902bd[_0xf3a8('0x4')],dials[_0x9902bd[_0xf3a8('0x4')]][_0xf3a8('0x1a')]));}}catch(_0x55019f){utils[_0xf3a8('0x11')](util['format'](_0xf3a8('0x1f'),_0x9902bd[_0xf3a8('0x4')]),_0x55019f);}};exports['dialend']=function(_0x18b105){try{if(!_['isNil'](dials[_0x18b105['uniqueid']])){utils[_0xf3a8('0x13')](util[_0xf3a8('0x3')](_0xf3a8('0x20'),_0x18b105[_0xf3a8('0x4')]),_0x18b105);dials[_0x18b105[_0xf3a8('0x4')]][_0xf3a8('0x21')]=_0x18b105[_0xf3a8('0x21')];if(_0x18b105['dialstatus']==_0xf3a8('0x22')){dials[_0x18b105[_0xf3a8('0x4')]]=_[_0xf3a8('0x19')](dials[_0x18b105[_0xf3a8('0x4')]],_0x18b105);dials[_0x18b105['uniqueid']][_0xf3a8('0x23')]=utils[_0xf3a8('0x1b')]();dials[_0x18b105[_0xf3a8('0x4')]][_0xf3a8('0x1c')]=_0xf3a8('0x24');utils[_0xf3a8('0x2')](util[_0xf3a8('0x3')](_0xf3a8('0x25'),_0x18b105[_0xf3a8('0x4')],_0x18b105[_0xf3a8('0x21')],dials[_0x18b105[_0xf3a8('0x4')]][_0xf3a8('0x23')]));}else{utils[_0xf3a8('0x2')](util['format']('[%s][dials][dialend]\x20dialstatus:%s',_0x18b105[_0xf3a8('0x4')],_0x18b105['dialstatus']));}}}catch(_0x4db5b3){utils[_0xf3a8('0x11')](util[_0xf3a8('0x3')]('[%s][dials][dialend]',_0x18b105[_0xf3a8('0x4')]),_0x4db5b3);}};exports['hangup']=function(_0x12bed5){try{if(!_[_0xf3a8('0x18')](dials[_0x12bed5[_0xf3a8('0x4')]])){utils[_0xf3a8('0x13')](util[_0xf3a8('0x3')]('[%s][dials][hangup]',_0x12bed5[_0xf3a8('0x4')]),_0x12bed5);utils['info'](util[_0xf3a8('0x3')](_0xf3a8('0x26'),_0x12bed5[_0xf3a8('0x4')],_0x12bed5[_0xf3a8('0x6')],_0x12bed5[_0xf3a8('0x27')],_0x12bed5['cause-txt']));dials[_0x12bed5['uniqueid']]=_[_0xf3a8('0x19')](dials[_0x12bed5[_0xf3a8('0x4')]],{'endtime':utils[_0xf3a8('0x1b')](),'lastevent':'complete'});dials[_0x12bed5['uniqueid']][_0xf3a8('0x28')]=utils[_0xf3a8('0x29')](dials[_0x12bed5['uniqueid']][_0xf3a8('0x2a')],dials[_0x12bed5[_0xf3a8('0x4')]][_0xf3a8('0x1a')]);dials[_0x12bed5['uniqueid']]['holdtime']=utils['diffTime'](dials[_0x12bed5[_0xf3a8('0x4')]][_0xf3a8('0x23')]||dials[_0x12bed5[_0xf3a8('0x4')]]['endtime'],dials[_0x12bed5[_0xf3a8('0x4')]]['starttime']);dials[_0x12bed5['uniqueid']]['billableseconds']=dials[_0x12bed5[_0xf3a8('0x4')]]['answertime']?utils[_0xf3a8('0x29')](dials[_0x12bed5[_0xf3a8('0x4')]][_0xf3a8('0x2a')],dials[_0x12bed5[_0xf3a8('0x4')]]['answertime']):0x0;writeDB(dials[_0x12bed5[_0xf3a8('0x4')]]);}}catch(_0x59355d){utils[_0xf3a8('0x11')](util[_0xf3a8('0x3')](_0xf3a8('0x2b'),_0x12bed5['uniqueid']),_0x59355d);}};