d104a554456f96d60cc5726a27e0198f33224683
[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 _0xb997=['holdtime','lodash','./utils','format','[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s','channel','dialstring','calleridnum','connectedlinenum','dialstatus','request','uniqueid','newexten','[%s][dials][newexten]','[%s][dials][newexten]\x20application:%s\x20appdata:%s','application','appdata','toLowerCase','startsWith','cdr(routeid)','split','varset','debug','[%s][dials][varset]','isNil','variable','outboundrouteid','info','value','[%s][dials][dialbegin]','now','lastevent','called','[%s][dials][hangup]\x20starttime:%s\x20lastevent:called','starttime','error','[%s][dials][dialend]','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','calleridname','cause-txt','complete','diffTime','endtime'];(function(_0x217908,_0x456c70){var _0x4b3ef8=function(_0x5526f5){while(--_0x5526f5){_0x217908['push'](_0x217908['shift']());}};_0x4b3ef8(++_0x456c70);}(_0xb997,0x15f));var _0x7b99=function(_0x4e448b,_0x10dee3){_0x4e448b=_0x4e448b-0x0;var _0x13638d=_0xb997[_0x4e448b];return _0x13638d;};'use strict';var _=require(_0x7b99('0x0'));var util=require('util');var utils=require(_0x7b99('0x1'));var dials={};function writeDB(_0x5cc399){utils['info'](util[_0x7b99('0x2')](_0x7b99('0x3'),_0x5cc399['uniqueid'],_0x5cc399[_0x7b99('0x4')],_0x5cc399[_0x7b99('0x5')],_0x5cc399[_0x7b99('0x6')],_0x5cc399[_0x7b99('0x7')],_0x5cc399[_0x7b99('0x8')]));utils[_0x7b99('0x9')]('CreateVoiceDialReport',_0x5cc399);delete dials[_0x5cc399[_0x7b99('0xa')]];}exports[_0x7b99('0xb')]=function(_0x197965){try{utils['debug'](util[_0x7b99('0x2')](_0x7b99('0xc'),_0x197965[_0x7b99('0xa')]),_0x197965);utils['info'](util['format'](_0x7b99('0xd'),_0x197965['uniqueid'],_0x197965[_0x7b99('0xe')],_0x197965[_0x7b99('0xf')]));if(_0x197965[_0x7b99('0xe')][_0x7b99('0x10')]()=='set'&&_[_0x7b99('0x11')](_0x197965[_0x7b99('0xf')]['toLowerCase'](),_0x7b99('0x12'))){var _0x4de459=_0x197965['appdata'][_0x7b99('0x13')]('=');dials[_0x197965[_0x7b99('0xa')]]={'routeId':_0x4de459[0x1]};}}catch(_0x47a5c6){utils['error'](util['format']('[%s][dials][newexten]',_0x197965[_0x7b99('0xa')]),_0x47a5c6);}};exports[_0x7b99('0x14')]=function(_0x21b708){try{utils[_0x7b99('0x15')](util[_0x7b99('0x2')](_0x7b99('0x16'),_0x21b708[_0x7b99('0xa')]),_0x21b708);if(!_[_0x7b99('0x17')](_0x21b708[_0x7b99('0x18')][_0x7b99('0x19')])){utils[_0x7b99('0x1a')](util[_0x7b99('0x2')]('[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s',_0x21b708['uniqueid'],_0x21b708[_0x7b99('0x1b')]));dials[_0x21b708[_0x7b99('0xa')]]={'routeId':_0x21b708['value']};}}catch(_0x1fda11){utils['error'](util[_0x7b99('0x2')](_0x7b99('0x16'),_0x21b708[_0x7b99('0xa')]),_0x1fda11);}};exports['dialbegin']=function(_0x49de97){try{if(!_['isNil'](dials[_0x49de97[_0x7b99('0xa')]])){utils[_0x7b99('0x15')](util[_0x7b99('0x2')](_0x7b99('0x1c'),_0x49de97[_0x7b99('0xa')]),_0x49de97);dials[_0x49de97['uniqueid']]=_['assign'](dials[_0x49de97[_0x7b99('0xa')]],_0x49de97);dials[_0x49de97[_0x7b99('0xa')]]['starttime']=utils[_0x7b99('0x1d')]();dials[_0x49de97[_0x7b99('0xa')]][_0x7b99('0x1e')]=_0x7b99('0x1f');utils['info'](util[_0x7b99('0x2')](_0x7b99('0x20'),_0x49de97[_0x7b99('0xa')],dials[_0x49de97[_0x7b99('0xa')]][_0x7b99('0x21')]));}}catch(_0x12d3ee){utils[_0x7b99('0x22')](util[_0x7b99('0x2')]('[%s][dials][dialbegin]',_0x49de97[_0x7b99('0xa')]),_0x12d3ee);}};exports['dialend']=function(_0x3a5294){try{if(!_['isNil'](dials[_0x3a5294[_0x7b99('0xa')]])){utils[_0x7b99('0x15')](util[_0x7b99('0x2')](_0x7b99('0x23'),_0x3a5294[_0x7b99('0xa')]),_0x3a5294);dials[_0x3a5294[_0x7b99('0xa')]][_0x7b99('0x8')]=_0x3a5294[_0x7b99('0x8')];if(_0x3a5294[_0x7b99('0x8')]==_0x7b99('0x24')){dials[_0x3a5294['uniqueid']]=_[_0x7b99('0x25')](dials[_0x3a5294[_0x7b99('0xa')]],_0x3a5294);dials[_0x3a5294['uniqueid']][_0x7b99('0x26')]=utils[_0x7b99('0x1d')]();dials[_0x3a5294[_0x7b99('0xa')]][_0x7b99('0x1e')]='connect';utils[_0x7b99('0x1a')](util[_0x7b99('0x2')](_0x7b99('0x27'),_0x3a5294['uniqueid'],_0x3a5294[_0x7b99('0x8')],dials[_0x3a5294[_0x7b99('0xa')]][_0x7b99('0x26')]));}else{utils[_0x7b99('0x1a')](util['format'](_0x7b99('0x28'),_0x3a5294[_0x7b99('0xa')],_0x3a5294['dialstatus']));}}}catch(_0x39e981){utils[_0x7b99('0x22')](util[_0x7b99('0x2')](_0x7b99('0x23'),_0x3a5294['uniqueid']),_0x39e981);}};exports[_0x7b99('0x29')]=function(_0x111b3f){try{if(!_['isNil'](dials[_0x111b3f[_0x7b99('0xa')]])){utils[_0x7b99('0x15')](util['format'](_0x7b99('0x2a'),_0x111b3f[_0x7b99('0xa')]),_0x111b3f);utils[_0x7b99('0x1a')](util[_0x7b99('0x2')](_0x7b99('0x2b'),_0x111b3f[_0x7b99('0xa')],_0x111b3f[_0x7b99('0x6')],_0x111b3f[_0x7b99('0x2c')],_0x111b3f[_0x7b99('0x2d')]));dials[_0x111b3f['uniqueid']]=_[_0x7b99('0x25')](dials[_0x111b3f[_0x7b99('0xa')]],{'endtime':utils[_0x7b99('0x1d')](),'lastevent':_0x7b99('0x2e')});dials[_0x111b3f[_0x7b99('0xa')]]['duration']=utils[_0x7b99('0x2f')](dials[_0x111b3f[_0x7b99('0xa')]][_0x7b99('0x30')],dials[_0x111b3f[_0x7b99('0xa')]]['starttime']);dials[_0x111b3f[_0x7b99('0xa')]][_0x7b99('0x31')]=utils[_0x7b99('0x2f')](dials[_0x111b3f[_0x7b99('0xa')]][_0x7b99('0x26')]||dials[_0x111b3f[_0x7b99('0xa')]]['endtime'],dials[_0x111b3f[_0x7b99('0xa')]][_0x7b99('0x21')]);dials[_0x111b3f[_0x7b99('0xa')]]['billableseconds']=dials[_0x111b3f['uniqueid']][_0x7b99('0x26')]?utils['diffTime'](dials[_0x111b3f[_0x7b99('0xa')]]['endtime'],dials[_0x111b3f['uniqueid']]['answertime']):0x0;writeDB(dials[_0x111b3f[_0x7b99('0xa')]]);}}catch(_0x22d515){utils[_0x7b99('0x22')](util[_0x7b99('0x2')](_0x7b99('0x2a'),_0x111b3f['uniqueid']),_0x22d515);}};