d46d9a1e03c36410394c8347a14a516fc39bd632
[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 _0x1ea0=['lodash','util','./utils','info','format','[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s','uniqueid','channel','dialstring','calleridnum','connectedlinenum','dialstatus','CreateVoiceDialReport','newexten','application','appdata','toLowerCase','startsWith','[%s][dials][newexten]','debug','isNil','variable','outboundrouteid','[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s','value','dialbegin','[%s][dials][dialbegin]','assign','starttime','now','lastevent','called','[%s][dials][hangup]\x20starttime:%s\x20lastevent:called','error','dialend','[%s][dials][dialend]','ANSWER','answertime','connect','hangup','[%s][dials][hangup]','[%s][dials][hangup]\x20calleridnum:%s\x20calleridname:%s\x20lastevent:complete\x20reason:%s','cause-txt','complete','duration','endtime','holdtime','diffTime'];(function(_0x3b95e2,_0x3d2dfb){var _0x1191c4=function(_0x4a18b3){while(--_0x4a18b3){_0x3b95e2['push'](_0x3b95e2['shift']());}};_0x1191c4(++_0x3d2dfb);}(_0x1ea0,0x1e0));var _0x01ea=function(_0x4565bf,_0x5ad9d6){_0x4565bf=_0x4565bf-0x0;var _0x5610ba=_0x1ea0[_0x4565bf];return _0x5610ba;};'use strict';var _=require(_0x01ea('0x0'));var util=require(_0x01ea('0x1'));var utils=require(_0x01ea('0x2'));var dials={};function writeDB(_0x1ea48d){utils[_0x01ea('0x3')](util[_0x01ea('0x4')](_0x01ea('0x5'),_0x1ea48d[_0x01ea('0x6')],_0x1ea48d[_0x01ea('0x7')],_0x1ea48d[_0x01ea('0x8')],_0x1ea48d[_0x01ea('0x9')],_0x1ea48d[_0x01ea('0xa')],_0x1ea48d[_0x01ea('0xb')]));utils['request'](_0x01ea('0xc'),_0x1ea48d);delete dials[_0x1ea48d[_0x01ea('0x6')]];}exports[_0x01ea('0xd')]=function(_0x14acd0){try{utils['debug'](util['format']('[%s][dials][newexten]',_0x14acd0[_0x01ea('0x6')]),_0x14acd0);utils[_0x01ea('0x3')](util[_0x01ea('0x4')]('[%s][dials][newexten]\x20application:%s\x20appdata:%s',_0x14acd0[_0x01ea('0x6')],_0x14acd0[_0x01ea('0xe')],_0x14acd0[_0x01ea('0xf')]));if(_0x14acd0[_0x01ea('0xe')][_0x01ea('0x10')]()=='set'&&_[_0x01ea('0x11')](_0x14acd0[_0x01ea('0xf')]['toLowerCase'](),'cdr(routeid)')){var _0x41b2f1=_0x14acd0[_0x01ea('0xf')]['split']('=');dials[_0x14acd0[_0x01ea('0x6')]]={'routeId':_0x41b2f1[0x1]};}}catch(_0x5a2a87){utils['error'](util['format'](_0x01ea('0x12'),_0x14acd0[_0x01ea('0x6')]),_0x5a2a87);}};exports['varset']=function(_0x2fa0bb){try{utils[_0x01ea('0x13')](util['format']('[%s][dials][varset]',_0x2fa0bb[_0x01ea('0x6')]),_0x2fa0bb);if(!_[_0x01ea('0x14')](_0x2fa0bb[_0x01ea('0x15')][_0x01ea('0x16')])){utils[_0x01ea('0x3')](util['format'](_0x01ea('0x17'),_0x2fa0bb['uniqueid'],_0x2fa0bb[_0x01ea('0x18')]));dials[_0x2fa0bb[_0x01ea('0x6')]]={'routeId':_0x2fa0bb[_0x01ea('0x18')]};}}catch(_0x58a82d){utils['error'](util[_0x01ea('0x4')]('[%s][dials][varset]',_0x2fa0bb[_0x01ea('0x6')]),_0x58a82d);}};exports[_0x01ea('0x19')]=function(_0x557c58){try{if(!_[_0x01ea('0x14')](dials[_0x557c58[_0x01ea('0x6')]])){utils[_0x01ea('0x13')](util[_0x01ea('0x4')](_0x01ea('0x1a'),_0x557c58[_0x01ea('0x6')]),_0x557c58);dials[_0x557c58[_0x01ea('0x6')]]=_[_0x01ea('0x1b')](dials[_0x557c58[_0x01ea('0x6')]],_0x557c58);dials[_0x557c58[_0x01ea('0x6')]][_0x01ea('0x1c')]=utils[_0x01ea('0x1d')]();dials[_0x557c58[_0x01ea('0x6')]][_0x01ea('0x1e')]=_0x01ea('0x1f');utils['info'](util[_0x01ea('0x4')](_0x01ea('0x20'),_0x557c58[_0x01ea('0x6')],dials[_0x557c58[_0x01ea('0x6')]][_0x01ea('0x1c')]));}}catch(_0xfb1915){utils[_0x01ea('0x21')](util[_0x01ea('0x4')]('[%s][dials][dialbegin]',_0x557c58[_0x01ea('0x6')]),_0xfb1915);}};exports[_0x01ea('0x22')]=function(_0x14025f){try{if(!_['isNil'](dials[_0x14025f[_0x01ea('0x6')]])){utils[_0x01ea('0x13')](util[_0x01ea('0x4')](_0x01ea('0x23'),_0x14025f[_0x01ea('0x6')]),_0x14025f);dials[_0x14025f['uniqueid']][_0x01ea('0xb')]=_0x14025f[_0x01ea('0xb')];if(_0x14025f['dialstatus']==_0x01ea('0x24')){dials[_0x14025f[_0x01ea('0x6')]]=_[_0x01ea('0x1b')](dials[_0x14025f[_0x01ea('0x6')]],_0x14025f);dials[_0x14025f[_0x01ea('0x6')]][_0x01ea('0x25')]=utils[_0x01ea('0x1d')]();dials[_0x14025f[_0x01ea('0x6')]][_0x01ea('0x1e')]=_0x01ea('0x26');utils[_0x01ea('0x3')](util[_0x01ea('0x4')]('[%s][dials][dialend]\x20dialstatus:%s\x20answertime:%s\x20lastevent:connect',_0x14025f[_0x01ea('0x6')],_0x14025f['dialstatus'],dials[_0x14025f[_0x01ea('0x6')]][_0x01ea('0x25')]));}else{utils[_0x01ea('0x3')](util[_0x01ea('0x4')]('[%s][dials][dialend]\x20dialstatus:%s',_0x14025f[_0x01ea('0x6')],_0x14025f[_0x01ea('0xb')]));}}}catch(_0x1a6692){utils['error'](util[_0x01ea('0x4')](_0x01ea('0x23'),_0x14025f['uniqueid']),_0x1a6692);}};exports[_0x01ea('0x27')]=function(_0x186a0e){try{if(!_['isNil'](dials[_0x186a0e['uniqueid']])){utils[_0x01ea('0x13')](util[_0x01ea('0x4')](_0x01ea('0x28'),_0x186a0e['uniqueid']),_0x186a0e);utils['info'](util[_0x01ea('0x4')](_0x01ea('0x29'),_0x186a0e[_0x01ea('0x6')],_0x186a0e[_0x01ea('0x9')],_0x186a0e['calleridname'],_0x186a0e[_0x01ea('0x2a')]));dials[_0x186a0e[_0x01ea('0x6')]]=_[_0x01ea('0x1b')](dials[_0x186a0e[_0x01ea('0x6')]],{'endtime':utils[_0x01ea('0x1d')](),'lastevent':_0x01ea('0x2b')});dials[_0x186a0e[_0x01ea('0x6')]][_0x01ea('0x2c')]=utils['diffTime'](dials[_0x186a0e[_0x01ea('0x6')]][_0x01ea('0x2d')],dials[_0x186a0e[_0x01ea('0x6')]]['starttime']);dials[_0x186a0e[_0x01ea('0x6')]][_0x01ea('0x2e')]=utils['diffTime'](dials[_0x186a0e[_0x01ea('0x6')]][_0x01ea('0x25')]||dials[_0x186a0e[_0x01ea('0x6')]][_0x01ea('0x2d')],dials[_0x186a0e[_0x01ea('0x6')]][_0x01ea('0x1c')]);dials[_0x186a0e[_0x01ea('0x6')]]['billableseconds']=dials[_0x186a0e[_0x01ea('0x6')]][_0x01ea('0x25')]?utils[_0x01ea('0x2f')](dials[_0x186a0e['uniqueid']][_0x01ea('0x2d')],dials[_0x186a0e[_0x01ea('0x6')]][_0x01ea('0x25')]):0x0;writeDB(dials[_0x186a0e[_0x01ea('0x6')]]);}}catch(_0x22c5f0){utils[_0x01ea('0x21')](util[_0x01ea('0x4')](_0x01ea('0x28'),_0x186a0e['uniqueid']),_0x22c5f0);}};