082c8455481d4f182a599f07cb43a91d511d5fe8
[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 _0x635d=['called','error','ANSWER','answertime','connect','[%s][dials][dialend]\x20dialstatus:%s\x20answertime:%s\x20lastevent:connect','[%s][dials][dialend]\x20dialstatus:%s','hangup','[%s][dials][hangup]','[%s][dials][hangup]\x20calleridnum:%s\x20calleridname:%s\x20lastevent:complete\x20reason:%s','calleridnum','calleridname','complete','diffTime','endtime','holdtime','billableseconds','lodash','./utils','info','format','[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s','uniqueid','channel','dialstring','connectedlinenum','dialstatus','request','newexten','[%s][dials][newexten]','[%s][dials][newexten]\x20application:%s\x20appdata:%s','application','toLowerCase','set','startsWith','appdata','cdr(routeid)','split','varset','debug','[%s][dials][varset]','outboundrouteid','[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s','value','dialbegin','isNil','[%s][dials][dialbegin]','assign','starttime','now','lastevent'];(function(_0x370872,_0x4265b6){var _0x34aa16=function(_0x8567c8){while(--_0x8567c8){_0x370872['push'](_0x370872['shift']());}};_0x34aa16(++_0x4265b6);}(_0x635d,0x77));var _0xd635=function(_0x1098f3,_0x2d9803){_0x1098f3=_0x1098f3-0x0;var _0x37a3aa=_0x635d[_0x1098f3];return _0x37a3aa;};'use strict';var _=require(_0xd635('0x0'));var util=require('util');var utils=require(_0xd635('0x1'));var dials={};function writeDB(_0x5a75b5){utils[_0xd635('0x2')](util[_0xd635('0x3')](_0xd635('0x4'),_0x5a75b5[_0xd635('0x5')],_0x5a75b5[_0xd635('0x6')],_0x5a75b5[_0xd635('0x7')],_0x5a75b5['calleridnum'],_0x5a75b5[_0xd635('0x8')],_0x5a75b5[_0xd635('0x9')]));utils[_0xd635('0xa')]('CreateVoiceDialReport',_0x5a75b5);delete dials[_0x5a75b5[_0xd635('0x5')]];}exports[_0xd635('0xb')]=function(_0x1534cb){try{utils['debug'](util[_0xd635('0x3')](_0xd635('0xc'),_0x1534cb['uniqueid']),_0x1534cb);utils[_0xd635('0x2')](util[_0xd635('0x3')](_0xd635('0xd'),_0x1534cb['uniqueid'],_0x1534cb['application'],_0x1534cb['appdata']));if(_0x1534cb[_0xd635('0xe')][_0xd635('0xf')]()==_0xd635('0x10')&&_[_0xd635('0x11')](_0x1534cb[_0xd635('0x12')]['toLowerCase'](),_0xd635('0x13'))){var _0x25abc3=_0x1534cb[_0xd635('0x12')][_0xd635('0x14')]('=');dials[_0x1534cb[_0xd635('0x5')]]={'routeId':_0x25abc3[0x1]};}}catch(_0x19f1ae){utils['error'](util[_0xd635('0x3')](_0xd635('0xc'),_0x1534cb[_0xd635('0x5')]),_0x19f1ae);}};exports[_0xd635('0x15')]=function(_0x2dc261){try{utils[_0xd635('0x16')](util[_0xd635('0x3')](_0xd635('0x17'),_0x2dc261[_0xd635('0x5')]),_0x2dc261);if(!_['isNil'](_0x2dc261['variable'][_0xd635('0x18')])){utils[_0xd635('0x2')](util['format'](_0xd635('0x19'),_0x2dc261[_0xd635('0x5')],_0x2dc261[_0xd635('0x1a')]));dials[_0x2dc261[_0xd635('0x5')]]={'routeId':_0x2dc261[_0xd635('0x1a')]};}}catch(_0x3c789a){utils['error'](util['format'](_0xd635('0x17'),_0x2dc261[_0xd635('0x5')]),_0x3c789a);}};exports[_0xd635('0x1b')]=function(_0x420161){try{if(!_[_0xd635('0x1c')](dials[_0x420161['uniqueid']])){utils[_0xd635('0x16')](util['format'](_0xd635('0x1d'),_0x420161['uniqueid']),_0x420161);dials[_0x420161[_0xd635('0x5')]]=_[_0xd635('0x1e')](dials[_0x420161[_0xd635('0x5')]],_0x420161);dials[_0x420161[_0xd635('0x5')]][_0xd635('0x1f')]=utils[_0xd635('0x20')]();dials[_0x420161[_0xd635('0x5')]][_0xd635('0x21')]=_0xd635('0x22');utils[_0xd635('0x2')](util[_0xd635('0x3')]('[%s][dials][hangup]\x20starttime:%s\x20lastevent:called',_0x420161[_0xd635('0x5')],dials[_0x420161[_0xd635('0x5')]][_0xd635('0x1f')]));}}catch(_0x4327ba){utils[_0xd635('0x23')](util[_0xd635('0x3')](_0xd635('0x1d'),_0x420161[_0xd635('0x5')]),_0x4327ba);}};exports['dialend']=function(_0x20aea3){try{if(!_[_0xd635('0x1c')](dials[_0x20aea3[_0xd635('0x5')]])){utils['debug'](util[_0xd635('0x3')]('[%s][dials][dialend]',_0x20aea3[_0xd635('0x5')]),_0x20aea3);dials[_0x20aea3[_0xd635('0x5')]][_0xd635('0x9')]=_0x20aea3[_0xd635('0x9')];if(_0x20aea3[_0xd635('0x9')]==_0xd635('0x24')){dials[_0x20aea3[_0xd635('0x5')]]=_[_0xd635('0x1e')](dials[_0x20aea3[_0xd635('0x5')]],_0x20aea3);dials[_0x20aea3['uniqueid']][_0xd635('0x25')]=utils[_0xd635('0x20')]();dials[_0x20aea3[_0xd635('0x5')]][_0xd635('0x21')]=_0xd635('0x26');utils[_0xd635('0x2')](util[_0xd635('0x3')](_0xd635('0x27'),_0x20aea3[_0xd635('0x5')],_0x20aea3[_0xd635('0x9')],dials[_0x20aea3['uniqueid']][_0xd635('0x25')]));}else{utils[_0xd635('0x2')](util[_0xd635('0x3')](_0xd635('0x28'),_0x20aea3[_0xd635('0x5')],_0x20aea3['dialstatus']));}}}catch(_0x4a5976){utils[_0xd635('0x23')](util[_0xd635('0x3')]('[%s][dials][dialend]',_0x20aea3[_0xd635('0x5')]),_0x4a5976);}};exports[_0xd635('0x29')]=function(_0x3a9100){try{if(!_[_0xd635('0x1c')](dials[_0x3a9100['uniqueid']])){utils[_0xd635('0x16')](util[_0xd635('0x3')](_0xd635('0x2a'),_0x3a9100[_0xd635('0x5')]),_0x3a9100);utils[_0xd635('0x2')](util[_0xd635('0x3')](_0xd635('0x2b'),_0x3a9100['uniqueid'],_0x3a9100[_0xd635('0x2c')],_0x3a9100[_0xd635('0x2d')],_0x3a9100['cause-txt']));dials[_0x3a9100['uniqueid']]=_[_0xd635('0x1e')](dials[_0x3a9100[_0xd635('0x5')]],{'endtime':utils[_0xd635('0x20')](),'lastevent':_0xd635('0x2e')});dials[_0x3a9100[_0xd635('0x5')]]['duration']=utils[_0xd635('0x2f')](dials[_0x3a9100[_0xd635('0x5')]][_0xd635('0x30')],dials[_0x3a9100[_0xd635('0x5')]]['starttime']);dials[_0x3a9100[_0xd635('0x5')]][_0xd635('0x31')]=utils[_0xd635('0x2f')](dials[_0x3a9100[_0xd635('0x5')]][_0xd635('0x25')]||dials[_0x3a9100[_0xd635('0x5')]]['endtime'],dials[_0x3a9100[_0xd635('0x5')]][_0xd635('0x1f')]);dials[_0x3a9100[_0xd635('0x5')]][_0xd635('0x32')]=dials[_0x3a9100[_0xd635('0x5')]][_0xd635('0x25')]?utils[_0xd635('0x2f')](dials[_0x3a9100['uniqueid']]['endtime'],dials[_0x3a9100['uniqueid']]['answertime']):0x0;writeDB(dials[_0x3a9100[_0xd635('0x5')]]);}}catch(_0x4a2020){utils['error'](util['format']('[%s][dials][hangup]',_0x3a9100[_0xd635('0x5')]),_0x4a2020);}};