ed201f44c306332b49c1786ee571696f1dcdb7b2
[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 _0xbf37=['connectedlinenum','dialstatus','request','uniqueid','debug','[%s][dials][newexten]','[%s][dials][newexten]\x20application:%s\x20appdata:%s','application','appdata','toLowerCase','set','startsWith','cdr(routeid)','split','error','[%s][dials][varset]','isNil','value','[%s][dials][dialbegin]','assign','lastevent','called','[%s][dials][hangup]\x20starttime:%s\x20lastevent:called','starttime','dialend','[%s][dials][dialend]','now','connect','[%s][dials][dialend]\x20dialstatus:%s\x20answertime:%s\x20lastevent:connect','[%s][dials][dialend]\x20dialstatus:%s','[%s][dials][hangup]','calleridname','complete','diffTime','endtime','holdtime','answertime','billableseconds','lodash','util','./utils','info','format','[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s','channel','dialstring','calleridnum'];(function(_0x2c5a14,_0x4359de){var _0xbd78=function(_0xee1578){while(--_0xee1578){_0x2c5a14['push'](_0x2c5a14['shift']());}};_0xbd78(++_0x4359de);}(_0xbf37,0x1cd));var _0x7bf3=function(_0x145f38,_0x43c17d){_0x145f38=_0x145f38-0x0;var _0x31f6ac=_0xbf37[_0x145f38];return _0x31f6ac;};'use strict';var _=require(_0x7bf3('0x0'));var util=require(_0x7bf3('0x1'));var utils=require(_0x7bf3('0x2'));var dials={};function writeDB(_0x30d0c8){utils[_0x7bf3('0x3')](util[_0x7bf3('0x4')](_0x7bf3('0x5'),_0x30d0c8['uniqueid'],_0x30d0c8[_0x7bf3('0x6')],_0x30d0c8[_0x7bf3('0x7')],_0x30d0c8[_0x7bf3('0x8')],_0x30d0c8[_0x7bf3('0x9')],_0x30d0c8[_0x7bf3('0xa')]));utils[_0x7bf3('0xb')]('CreateVoiceDialReport',_0x30d0c8);delete dials[_0x30d0c8[_0x7bf3('0xc')]];}exports['newexten']=function(_0x9113d1){try{utils[_0x7bf3('0xd')](util['format'](_0x7bf3('0xe'),_0x9113d1[_0x7bf3('0xc')]),_0x9113d1);utils[_0x7bf3('0x3')](util['format'](_0x7bf3('0xf'),_0x9113d1[_0x7bf3('0xc')],_0x9113d1[_0x7bf3('0x10')],_0x9113d1[_0x7bf3('0x11')]));if(_0x9113d1[_0x7bf3('0x10')][_0x7bf3('0x12')]()==_0x7bf3('0x13')&&_[_0x7bf3('0x14')](_0x9113d1['appdata'][_0x7bf3('0x12')](),_0x7bf3('0x15'))){var _0x2e882d=_0x9113d1['appdata'][_0x7bf3('0x16')]('=');dials[_0x9113d1[_0x7bf3('0xc')]]={'routeId':_0x2e882d[0x1]};}}catch(_0x3be4f0){utils[_0x7bf3('0x17')](util[_0x7bf3('0x4')](_0x7bf3('0xe'),_0x9113d1[_0x7bf3('0xc')]),_0x3be4f0);}};exports['varset']=function(_0x3778d0){try{utils[_0x7bf3('0xd')](util[_0x7bf3('0x4')](_0x7bf3('0x18'),_0x3778d0['uniqueid']),_0x3778d0);if(!_[_0x7bf3('0x19')](_0x3778d0['variable']['outboundrouteid'])){utils[_0x7bf3('0x3')](util[_0x7bf3('0x4')]('[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s',_0x3778d0['uniqueid'],_0x3778d0[_0x7bf3('0x1a')]));dials[_0x3778d0[_0x7bf3('0xc')]]={'routeId':_0x3778d0[_0x7bf3('0x1a')]};}}catch(_0x18e31a){utils[_0x7bf3('0x17')](util[_0x7bf3('0x4')](_0x7bf3('0x18'),_0x3778d0[_0x7bf3('0xc')]),_0x18e31a);}};exports['dialbegin']=function(_0x1f0818){try{if(!_[_0x7bf3('0x19')](dials[_0x1f0818[_0x7bf3('0xc')]])){utils[_0x7bf3('0xd')](util['format'](_0x7bf3('0x1b'),_0x1f0818[_0x7bf3('0xc')]),_0x1f0818);dials[_0x1f0818[_0x7bf3('0xc')]]=_[_0x7bf3('0x1c')](dials[_0x1f0818[_0x7bf3('0xc')]],_0x1f0818);dials[_0x1f0818[_0x7bf3('0xc')]]['starttime']=utils['now']();dials[_0x1f0818['uniqueid']][_0x7bf3('0x1d')]=_0x7bf3('0x1e');utils[_0x7bf3('0x3')](util[_0x7bf3('0x4')](_0x7bf3('0x1f'),_0x1f0818[_0x7bf3('0xc')],dials[_0x1f0818['uniqueid']][_0x7bf3('0x20')]));}}catch(_0x6c69ca){utils[_0x7bf3('0x17')](util[_0x7bf3('0x4')](_0x7bf3('0x1b'),_0x1f0818['uniqueid']),_0x6c69ca);}};exports[_0x7bf3('0x21')]=function(_0x4ddcf2){try{if(!_['isNil'](dials[_0x4ddcf2[_0x7bf3('0xc')]])){utils['debug'](util[_0x7bf3('0x4')](_0x7bf3('0x22'),_0x4ddcf2[_0x7bf3('0xc')]),_0x4ddcf2);dials[_0x4ddcf2['uniqueid']]['dialstatus']=_0x4ddcf2['dialstatus'];if(_0x4ddcf2[_0x7bf3('0xa')]=='ANSWER'){dials[_0x4ddcf2[_0x7bf3('0xc')]]=_['assign'](dials[_0x4ddcf2[_0x7bf3('0xc')]],_0x4ddcf2);dials[_0x4ddcf2[_0x7bf3('0xc')]]['answertime']=utils[_0x7bf3('0x23')]();dials[_0x4ddcf2[_0x7bf3('0xc')]]['lastevent']=_0x7bf3('0x24');utils[_0x7bf3('0x3')](util['format'](_0x7bf3('0x25'),_0x4ddcf2['uniqueid'],_0x4ddcf2[_0x7bf3('0xa')],dials[_0x4ddcf2[_0x7bf3('0xc')]]['answertime']));}else{utils['info'](util['format'](_0x7bf3('0x26'),_0x4ddcf2[_0x7bf3('0xc')],_0x4ddcf2['dialstatus']));}}}catch(_0xf09ab6){utils[_0x7bf3('0x17')](util['format'](_0x7bf3('0x22'),_0x4ddcf2[_0x7bf3('0xc')]),_0xf09ab6);}};exports['hangup']=function(_0x55f1e7){try{if(!_[_0x7bf3('0x19')](dials[_0x55f1e7[_0x7bf3('0xc')]])){utils[_0x7bf3('0xd')](util[_0x7bf3('0x4')](_0x7bf3('0x27'),_0x55f1e7[_0x7bf3('0xc')]),_0x55f1e7);utils['info'](util[_0x7bf3('0x4')]('[%s][dials][hangup]\x20calleridnum:%s\x20calleridname:%s\x20lastevent:complete\x20reason:%s',_0x55f1e7['uniqueid'],_0x55f1e7[_0x7bf3('0x8')],_0x55f1e7[_0x7bf3('0x28')],_0x55f1e7['cause-txt']));dials[_0x55f1e7[_0x7bf3('0xc')]]=_[_0x7bf3('0x1c')](dials[_0x55f1e7[_0x7bf3('0xc')]],{'endtime':utils[_0x7bf3('0x23')](),'lastevent':_0x7bf3('0x29')});dials[_0x55f1e7[_0x7bf3('0xc')]]['duration']=utils[_0x7bf3('0x2a')](dials[_0x55f1e7[_0x7bf3('0xc')]][_0x7bf3('0x2b')],dials[_0x55f1e7[_0x7bf3('0xc')]][_0x7bf3('0x20')]);dials[_0x55f1e7[_0x7bf3('0xc')]][_0x7bf3('0x2c')]=utils['diffTime'](dials[_0x55f1e7[_0x7bf3('0xc')]][_0x7bf3('0x2d')]||dials[_0x55f1e7[_0x7bf3('0xc')]][_0x7bf3('0x2b')],dials[_0x55f1e7[_0x7bf3('0xc')]][_0x7bf3('0x20')]);dials[_0x55f1e7[_0x7bf3('0xc')]][_0x7bf3('0x2e')]=dials[_0x55f1e7[_0x7bf3('0xc')]][_0x7bf3('0x2d')]?utils[_0x7bf3('0x2a')](dials[_0x55f1e7[_0x7bf3('0xc')]]['endtime'],dials[_0x55f1e7['uniqueid']]['answertime']):0x0;writeDB(dials[_0x55f1e7[_0x7bf3('0xc')]]);}}catch(_0x1d8c2c){utils[_0x7bf3('0x17')](util[_0x7bf3('0x4')]('[%s][dials][hangup]',_0x55f1e7[_0x7bf3('0xc')]),_0x1d8c2c);}};