5a963cf55708ce315555a22a45ecf917ecd81d12
[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 _0x14d0=['dialstatus','request','CreateVoiceDialReport','debug','format','[%s][dials][newexten]','info','application','appdata','toLowerCase','set','startsWith','cdr(routeid)','error','isNil','variable','outboundrouteid','[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s','value','dialbegin','[%s][dials][dialbegin]','starttime','now','lastevent','called','[%s][dials][hangup]\x20starttime:%s\x20lastevent:called','dialend','ANSWER','assign','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','calleridname','complete','holdtime','diffTime','endtime','billableseconds','lodash','uniqueid','channel','dialstring','calleridnum','connectedlinenum'];(function(_0x3f126a,_0x579f8d){var _0x5e6715=function(_0x1151b3){while(--_0x1151b3){_0x3f126a['push'](_0x3f126a['shift']());}};_0x5e6715(++_0x579f8d);}(_0x14d0,0x11a));var _0x014d=function(_0x44dba1,_0x270ad5){_0x44dba1=_0x44dba1-0x0;var _0x2fbd3f=_0x14d0[_0x44dba1];return _0x2fbd3f;};'use strict';var _=require(_0x014d('0x0'));var util=require('util');var utils=require('./utils');var dials={};function writeDB(_0x2e4e72){utils['info'](util['format']('[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s',_0x2e4e72[_0x014d('0x1')],_0x2e4e72[_0x014d('0x2')],_0x2e4e72[_0x014d('0x3')],_0x2e4e72[_0x014d('0x4')],_0x2e4e72[_0x014d('0x5')],_0x2e4e72[_0x014d('0x6')]));utils[_0x014d('0x7')](_0x014d('0x8'),_0x2e4e72);delete dials[_0x2e4e72[_0x014d('0x1')]];}exports['newexten']=function(_0x32ab9c){try{utils[_0x014d('0x9')](util[_0x014d('0xa')](_0x014d('0xb'),_0x32ab9c[_0x014d('0x1')]),_0x32ab9c);utils[_0x014d('0xc')](util[_0x014d('0xa')]('[%s][dials][newexten]\x20application:%s\x20appdata:%s',_0x32ab9c[_0x014d('0x1')],_0x32ab9c[_0x014d('0xd')],_0x32ab9c[_0x014d('0xe')]));if(_0x32ab9c[_0x014d('0xd')][_0x014d('0xf')]()==_0x014d('0x10')&&_[_0x014d('0x11')](_0x32ab9c['appdata'][_0x014d('0xf')](),_0x014d('0x12'))){var _0x216bd0=_0x32ab9c[_0x014d('0xe')]['split']('=');dials[_0x32ab9c['uniqueid']]={'routeId':_0x216bd0[0x1]};}}catch(_0x50c79d){utils[_0x014d('0x13')](util[_0x014d('0xa')]('[%s][dials][newexten]',_0x32ab9c[_0x014d('0x1')]),_0x50c79d);}};exports['varset']=function(_0x5b34a2){try{utils[_0x014d('0x9')](util[_0x014d('0xa')]('[%s][dials][varset]',_0x5b34a2[_0x014d('0x1')]),_0x5b34a2);if(!_[_0x014d('0x14')](_0x5b34a2[_0x014d('0x15')][_0x014d('0x16')])){utils['info'](util[_0x014d('0xa')](_0x014d('0x17'),_0x5b34a2['uniqueid'],_0x5b34a2[_0x014d('0x18')]));dials[_0x5b34a2['uniqueid']]={'routeId':_0x5b34a2['value']};}}catch(_0x3b0673){utils[_0x014d('0x13')](util[_0x014d('0xa')]('[%s][dials][varset]',_0x5b34a2[_0x014d('0x1')]),_0x3b0673);}};exports[_0x014d('0x19')]=function(_0x4636b8){try{if(!_[_0x014d('0x14')](dials[_0x4636b8[_0x014d('0x1')]])){utils[_0x014d('0x9')](util['format'](_0x014d('0x1a'),_0x4636b8[_0x014d('0x1')]),_0x4636b8);dials[_0x4636b8[_0x014d('0x1')]]=_['assign'](dials[_0x4636b8[_0x014d('0x1')]],_0x4636b8);dials[_0x4636b8[_0x014d('0x1')]][_0x014d('0x1b')]=utils[_0x014d('0x1c')]();dials[_0x4636b8[_0x014d('0x1')]][_0x014d('0x1d')]=_0x014d('0x1e');utils[_0x014d('0xc')](util[_0x014d('0xa')](_0x014d('0x1f'),_0x4636b8[_0x014d('0x1')],dials[_0x4636b8['uniqueid']][_0x014d('0x1b')]));}}catch(_0xb9063b){utils[_0x014d('0x13')](util['format'](_0x014d('0x1a'),_0x4636b8[_0x014d('0x1')]),_0xb9063b);}};exports[_0x014d('0x20')]=function(_0x4f6211){try{if(!_['isNil'](dials[_0x4f6211['uniqueid']])){utils['debug'](util['format']('[%s][dials][dialend]',_0x4f6211[_0x014d('0x1')]),_0x4f6211);dials[_0x4f6211['uniqueid']][_0x014d('0x6')]=_0x4f6211['dialstatus'];if(_0x4f6211[_0x014d('0x6')]==_0x014d('0x21')){dials[_0x4f6211[_0x014d('0x1')]]=_[_0x014d('0x22')](dials[_0x4f6211['uniqueid']],_0x4f6211);dials[_0x4f6211[_0x014d('0x1')]][_0x014d('0x23')]=utils[_0x014d('0x1c')]();dials[_0x4f6211[_0x014d('0x1')]][_0x014d('0x1d')]=_0x014d('0x24');utils[_0x014d('0xc')](util[_0x014d('0xa')](_0x014d('0x25'),_0x4f6211[_0x014d('0x1')],_0x4f6211[_0x014d('0x6')],dials[_0x4f6211[_0x014d('0x1')]]['answertime']));}else{utils[_0x014d('0xc')](util[_0x014d('0xa')](_0x014d('0x26'),_0x4f6211[_0x014d('0x1')],_0x4f6211[_0x014d('0x6')]));}}}catch(_0x7770c3){utils[_0x014d('0x13')](util[_0x014d('0xa')]('[%s][dials][dialend]',_0x4f6211[_0x014d('0x1')]),_0x7770c3);}};exports[_0x014d('0x27')]=function(_0x5a9f67){try{if(!_[_0x014d('0x14')](dials[_0x5a9f67[_0x014d('0x1')]])){utils[_0x014d('0x9')](util[_0x014d('0xa')](_0x014d('0x28'),_0x5a9f67[_0x014d('0x1')]),_0x5a9f67);utils[_0x014d('0xc')](util[_0x014d('0xa')](_0x014d('0x29'),_0x5a9f67[_0x014d('0x1')],_0x5a9f67['calleridnum'],_0x5a9f67[_0x014d('0x2a')],_0x5a9f67['cause-txt']));dials[_0x5a9f67['uniqueid']]=_[_0x014d('0x22')](dials[_0x5a9f67[_0x014d('0x1')]],{'endtime':utils[_0x014d('0x1c')](),'lastevent':_0x014d('0x2b')});dials[_0x5a9f67['uniqueid']]['duration']=utils['diffTime'](dials[_0x5a9f67[_0x014d('0x1')]]['endtime'],dials[_0x5a9f67[_0x014d('0x1')]]['starttime']);dials[_0x5a9f67[_0x014d('0x1')]][_0x014d('0x2c')]=utils[_0x014d('0x2d')](dials[_0x5a9f67['uniqueid']][_0x014d('0x23')]||dials[_0x5a9f67[_0x014d('0x1')]][_0x014d('0x2e')],dials[_0x5a9f67[_0x014d('0x1')]][_0x014d('0x1b')]);dials[_0x5a9f67[_0x014d('0x1')]][_0x014d('0x2f')]=dials[_0x5a9f67['uniqueid']][_0x014d('0x23')]?utils[_0x014d('0x2d')](dials[_0x5a9f67[_0x014d('0x1')]][_0x014d('0x2e')],dials[_0x5a9f67[_0x014d('0x1')]]['answertime']):0x0;writeDB(dials[_0x5a9f67[_0x014d('0x1')]]);}}catch(_0x519a10){utils[_0x014d('0x13')](util[_0x014d('0xa')](_0x014d('0x28'),_0x5a9f67[_0x014d('0x1')]),_0x519a10);}};