c60ca545b688d9c06953da371c6d746740cbefcc
[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 _0x4d61=['ANSWER','assign','answertime','[%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','cause-txt','complete','duration','endtime','holdtime','diffTime','lodash','util','./utils','info','[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s','uniqueid','channel','dialstring','request','newexten','format','[%s][dials][newexten]','[%s][dials][newexten]\x20application:%s\x20appdata:%s','application','appdata','toLowerCase','cdr(routeid)','varset','debug','[%s][dials][varset]','variable','value','dialbegin','isNil','[%s][dials][dialbegin]','starttime','now','called','[%s][dials][hangup]\x20starttime:%s\x20lastevent:called','error','[%s][dials][dialend]','dialstatus'];(function(_0x495a29,_0x4dbe96){var _0x162e78=function(_0x512b4b){while(--_0x512b4b){_0x495a29['push'](_0x495a29['shift']());}};_0x162e78(++_0x4dbe96);}(_0x4d61,0x1b6));var _0x14d6=function(_0xd53b14,_0x54d7e7){_0xd53b14=_0xd53b14-0x0;var _0x542de3=_0x4d61[_0xd53b14];return _0x542de3;};'use strict';var _=require(_0x14d6('0x0'));var util=require(_0x14d6('0x1'));var utils=require(_0x14d6('0x2'));var dials={};function writeDB(_0x212905){utils[_0x14d6('0x3')](util['format'](_0x14d6('0x4'),_0x212905[_0x14d6('0x5')],_0x212905[_0x14d6('0x6')],_0x212905[_0x14d6('0x7')],_0x212905['calleridnum'],_0x212905['connectedlinenum'],_0x212905['dialstatus']));utils[_0x14d6('0x8')]('CreateVoiceDialReport',_0x212905);delete dials[_0x212905[_0x14d6('0x5')]];}exports[_0x14d6('0x9')]=function(_0x4c97e0){try{utils['debug'](util[_0x14d6('0xa')](_0x14d6('0xb'),_0x4c97e0['uniqueid']),_0x4c97e0);utils[_0x14d6('0x3')](util[_0x14d6('0xa')](_0x14d6('0xc'),_0x4c97e0['uniqueid'],_0x4c97e0[_0x14d6('0xd')],_0x4c97e0['appdata']));if(_0x4c97e0[_0x14d6('0xd')]['toLowerCase']()=='set'&&_['startsWith'](_0x4c97e0[_0x14d6('0xe')][_0x14d6('0xf')](),_0x14d6('0x10'))){var _0x11687f=_0x4c97e0['appdata']['split']('=');dials[_0x4c97e0['uniqueid']]={'routeId':_0x11687f[0x1]};}}catch(_0x50a0a4){utils['error'](util[_0x14d6('0xa')](_0x14d6('0xb'),_0x4c97e0[_0x14d6('0x5')]),_0x50a0a4);}};exports[_0x14d6('0x11')]=function(_0xd5cc58){try{utils[_0x14d6('0x12')](util[_0x14d6('0xa')](_0x14d6('0x13'),_0xd5cc58[_0x14d6('0x5')]),_0xd5cc58);if(!_['isNil'](_0xd5cc58[_0x14d6('0x14')]['outboundrouteid'])){utils['info'](util[_0x14d6('0xa')]('[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s',_0xd5cc58[_0x14d6('0x5')],_0xd5cc58[_0x14d6('0x15')]));dials[_0xd5cc58[_0x14d6('0x5')]]={'routeId':_0xd5cc58['value']};}}catch(_0x21da3e){utils['error'](util[_0x14d6('0xa')]('[%s][dials][varset]',_0xd5cc58[_0x14d6('0x5')]),_0x21da3e);}};exports[_0x14d6('0x16')]=function(_0x297eef){try{if(!_[_0x14d6('0x17')](dials[_0x297eef['uniqueid']])){utils[_0x14d6('0x12')](util['format'](_0x14d6('0x18'),_0x297eef['uniqueid']),_0x297eef);dials[_0x297eef[_0x14d6('0x5')]]=_['assign'](dials[_0x297eef[_0x14d6('0x5')]],_0x297eef);dials[_0x297eef[_0x14d6('0x5')]][_0x14d6('0x19')]=utils[_0x14d6('0x1a')]();dials[_0x297eef['uniqueid']]['lastevent']=_0x14d6('0x1b');utils[_0x14d6('0x3')](util[_0x14d6('0xa')](_0x14d6('0x1c'),_0x297eef[_0x14d6('0x5')],dials[_0x297eef['uniqueid']][_0x14d6('0x19')]));}}catch(_0x22caf7){utils[_0x14d6('0x1d')](util[_0x14d6('0xa')](_0x14d6('0x18'),_0x297eef[_0x14d6('0x5')]),_0x22caf7);}};exports['dialend']=function(_0x2020b0){try{if(!_['isNil'](dials[_0x2020b0[_0x14d6('0x5')]])){utils['debug'](util[_0x14d6('0xa')](_0x14d6('0x1e'),_0x2020b0[_0x14d6('0x5')]),_0x2020b0);dials[_0x2020b0[_0x14d6('0x5')]][_0x14d6('0x1f')]=_0x2020b0[_0x14d6('0x1f')];if(_0x2020b0[_0x14d6('0x1f')]==_0x14d6('0x20')){dials[_0x2020b0[_0x14d6('0x5')]]=_[_0x14d6('0x21')](dials[_0x2020b0[_0x14d6('0x5')]],_0x2020b0);dials[_0x2020b0[_0x14d6('0x5')]][_0x14d6('0x22')]=utils[_0x14d6('0x1a')]();dials[_0x2020b0[_0x14d6('0x5')]]['lastevent']='connect';utils[_0x14d6('0x3')](util[_0x14d6('0xa')](_0x14d6('0x23'),_0x2020b0[_0x14d6('0x5')],_0x2020b0[_0x14d6('0x1f')],dials[_0x2020b0[_0x14d6('0x5')]][_0x14d6('0x22')]));}else{utils[_0x14d6('0x3')](util[_0x14d6('0xa')](_0x14d6('0x24'),_0x2020b0[_0x14d6('0x5')],_0x2020b0['dialstatus']));}}}catch(_0x2d977c){utils[_0x14d6('0x1d')](util[_0x14d6('0xa')](_0x14d6('0x1e'),_0x2020b0[_0x14d6('0x5')]),_0x2d977c);}};exports[_0x14d6('0x25')]=function(_0x4a6c0d){try{if(!_[_0x14d6('0x17')](dials[_0x4a6c0d[_0x14d6('0x5')]])){utils['debug'](util[_0x14d6('0xa')](_0x14d6('0x26'),_0x4a6c0d[_0x14d6('0x5')]),_0x4a6c0d);utils[_0x14d6('0x3')](util[_0x14d6('0xa')](_0x14d6('0x27'),_0x4a6c0d['uniqueid'],_0x4a6c0d[_0x14d6('0x28')],_0x4a6c0d['calleridname'],_0x4a6c0d[_0x14d6('0x29')]));dials[_0x4a6c0d['uniqueid']]=_['assign'](dials[_0x4a6c0d['uniqueid']],{'endtime':utils[_0x14d6('0x1a')](),'lastevent':_0x14d6('0x2a')});dials[_0x4a6c0d[_0x14d6('0x5')]][_0x14d6('0x2b')]=utils['diffTime'](dials[_0x4a6c0d[_0x14d6('0x5')]][_0x14d6('0x2c')],dials[_0x4a6c0d[_0x14d6('0x5')]][_0x14d6('0x19')]);dials[_0x4a6c0d['uniqueid']][_0x14d6('0x2d')]=utils[_0x14d6('0x2e')](dials[_0x4a6c0d['uniqueid']]['answertime']||dials[_0x4a6c0d[_0x14d6('0x5')]][_0x14d6('0x2c')],dials[_0x4a6c0d[_0x14d6('0x5')]][_0x14d6('0x19')]);dials[_0x4a6c0d[_0x14d6('0x5')]]['billableseconds']=dials[_0x4a6c0d[_0x14d6('0x5')]][_0x14d6('0x22')]?utils[_0x14d6('0x2e')](dials[_0x4a6c0d[_0x14d6('0x5')]][_0x14d6('0x2c')],dials[_0x4a6c0d['uniqueid']][_0x14d6('0x22')]):0x0;writeDB(dials[_0x4a6c0d['uniqueid']]);}}catch(_0x3a2900){utils[_0x14d6('0x1d')](util[_0x14d6('0xa')](_0x14d6('0x26'),_0x4a6c0d[_0x14d6('0x5')]),_0x3a2900);}};