Built motion from commit (unavailable).|2.5.28
[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 _0x6aca=['[%s][dials][dialend]','assign','answertime','[%s][dials][dialend]\x20dialstatus:%s','hangup','[%s][dials][hangup]','[%s][dials][hangup]\x20calleridnum:%s\x20calleridname:%s\x20lastevent:complete\x20reason:%s','calleridnum','calleridname','cause-txt','complete','duration','endtime','holdtime','diffTime','billableseconds','lodash','util','info','format','[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s','uniqueid','channel','dialstring','connectedlinenum','dialstatus','request','debug','[%s][dials][newexten]','[%s][dials][newexten]\x20application:%s\x20appdata:%s','appdata','application','toLowerCase','startsWith','split','error','[%s][dials][varset]','isNil','variable','outboundrouteid','dialbegin','[%s][dials][dialbegin]','starttime','now','lastevent','called','[%s][dials][hangup]\x20starttime:%s\x20lastevent:called'];(function(_0x153edc,_0x3ba592){var _0x5b5375=function(_0x13ac25){while(--_0x13ac25){_0x153edc['push'](_0x153edc['shift']());}};_0x5b5375(++_0x3ba592);}(_0x6aca,0x9d));var _0xa6ac=function(_0x13ac10,_0x46e79e){_0x13ac10=_0x13ac10-0x0;var _0x28eda2=_0x6aca[_0x13ac10];return _0x28eda2;};'use strict';var _=require(_0xa6ac('0x0'));var util=require(_0xa6ac('0x1'));var utils=require('./utils');var dials={};function writeDB(_0x4b9b7c){utils[_0xa6ac('0x2')](util[_0xa6ac('0x3')](_0xa6ac('0x4'),_0x4b9b7c[_0xa6ac('0x5')],_0x4b9b7c[_0xa6ac('0x6')],_0x4b9b7c[_0xa6ac('0x7')],_0x4b9b7c['calleridnum'],_0x4b9b7c[_0xa6ac('0x8')],_0x4b9b7c[_0xa6ac('0x9')]));utils[_0xa6ac('0xa')]('CreateVoiceDialReport',_0x4b9b7c);delete dials[_0x4b9b7c['uniqueid']];}exports['newexten']=function(_0x3bd900){try{utils[_0xa6ac('0xb')](util[_0xa6ac('0x3')](_0xa6ac('0xc'),_0x3bd900[_0xa6ac('0x5')]),_0x3bd900);utils[_0xa6ac('0x2')](util[_0xa6ac('0x3')](_0xa6ac('0xd'),_0x3bd900[_0xa6ac('0x5')],_0x3bd900['application'],_0x3bd900[_0xa6ac('0xe')]));if(_0x3bd900[_0xa6ac('0xf')][_0xa6ac('0x10')]()=='set'&&_[_0xa6ac('0x11')](_0x3bd900[_0xa6ac('0xe')][_0xa6ac('0x10')](),'cdr(routeid)')){var _0x150d89=_0x3bd900['appdata'][_0xa6ac('0x12')]('=');dials[_0x3bd900[_0xa6ac('0x5')]]={'routeId':_0x150d89[0x1]};}}catch(_0x2c632f){utils[_0xa6ac('0x13')](util['format']('[%s][dials][newexten]',_0x3bd900[_0xa6ac('0x5')]),_0x2c632f);}};exports['varset']=function(_0x711ac3){try{utils[_0xa6ac('0xb')](util[_0xa6ac('0x3')](_0xa6ac('0x14'),_0x711ac3[_0xa6ac('0x5')]),_0x711ac3);if(!_[_0xa6ac('0x15')](_0x711ac3[_0xa6ac('0x16')][_0xa6ac('0x17')])){utils['info'](util[_0xa6ac('0x3')]('[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s',_0x711ac3[_0xa6ac('0x5')],_0x711ac3['value']));dials[_0x711ac3[_0xa6ac('0x5')]]={'routeId':_0x711ac3['value']};}}catch(_0x59155e){utils[_0xa6ac('0x13')](util['format'](_0xa6ac('0x14'),_0x711ac3[_0xa6ac('0x5')]),_0x59155e);}};exports[_0xa6ac('0x18')]=function(_0x599bfc){try{if(!_['isNil'](dials[_0x599bfc[_0xa6ac('0x5')]])){utils['debug'](util['format'](_0xa6ac('0x19'),_0x599bfc[_0xa6ac('0x5')]),_0x599bfc);dials[_0x599bfc[_0xa6ac('0x5')]]=_['assign'](dials[_0x599bfc[_0xa6ac('0x5')]],_0x599bfc);dials[_0x599bfc['uniqueid']][_0xa6ac('0x1a')]=utils[_0xa6ac('0x1b')]();dials[_0x599bfc[_0xa6ac('0x5')]][_0xa6ac('0x1c')]=_0xa6ac('0x1d');utils[_0xa6ac('0x2')](util[_0xa6ac('0x3')](_0xa6ac('0x1e'),_0x599bfc[_0xa6ac('0x5')],dials[_0x599bfc['uniqueid']][_0xa6ac('0x1a')]));}}catch(_0x296ef3){utils[_0xa6ac('0x13')](util[_0xa6ac('0x3')](_0xa6ac('0x19'),_0x599bfc['uniqueid']),_0x296ef3);}};exports['dialend']=function(_0x5025b2){try{if(!_['isNil'](dials[_0x5025b2[_0xa6ac('0x5')]])){utils['debug'](util[_0xa6ac('0x3')](_0xa6ac('0x1f'),_0x5025b2[_0xa6ac('0x5')]),_0x5025b2);dials[_0x5025b2['uniqueid']][_0xa6ac('0x9')]=_0x5025b2[_0xa6ac('0x9')];if(_0x5025b2[_0xa6ac('0x9')]=='ANSWER'){dials[_0x5025b2[_0xa6ac('0x5')]]=_[_0xa6ac('0x20')](dials[_0x5025b2[_0xa6ac('0x5')]],_0x5025b2);dials[_0x5025b2[_0xa6ac('0x5')]][_0xa6ac('0x21')]=utils['now']();dials[_0x5025b2[_0xa6ac('0x5')]][_0xa6ac('0x1c')]='connect';utils['info'](util[_0xa6ac('0x3')]('[%s][dials][dialend]\x20dialstatus:%s\x20answertime:%s\x20lastevent:connect',_0x5025b2[_0xa6ac('0x5')],_0x5025b2['dialstatus'],dials[_0x5025b2[_0xa6ac('0x5')]][_0xa6ac('0x21')]));}else{utils[_0xa6ac('0x2')](util[_0xa6ac('0x3')](_0xa6ac('0x22'),_0x5025b2[_0xa6ac('0x5')],_0x5025b2[_0xa6ac('0x9')]));}}}catch(_0x19805f){utils['error'](util[_0xa6ac('0x3')]('[%s][dials][dialend]',_0x5025b2['uniqueid']),_0x19805f);}};exports[_0xa6ac('0x23')]=function(_0x2bea44){try{if(!_[_0xa6ac('0x15')](dials[_0x2bea44[_0xa6ac('0x5')]])){utils[_0xa6ac('0xb')](util[_0xa6ac('0x3')](_0xa6ac('0x24'),_0x2bea44[_0xa6ac('0x5')]),_0x2bea44);utils['info'](util['format'](_0xa6ac('0x25'),_0x2bea44[_0xa6ac('0x5')],_0x2bea44[_0xa6ac('0x26')],_0x2bea44[_0xa6ac('0x27')],_0x2bea44[_0xa6ac('0x28')]));dials[_0x2bea44[_0xa6ac('0x5')]]=_['assign'](dials[_0x2bea44[_0xa6ac('0x5')]],{'endtime':utils['now'](),'lastevent':_0xa6ac('0x29')});dials[_0x2bea44['uniqueid']][_0xa6ac('0x2a')]=utils['diffTime'](dials[_0x2bea44[_0xa6ac('0x5')]][_0xa6ac('0x2b')],dials[_0x2bea44[_0xa6ac('0x5')]][_0xa6ac('0x1a')]);dials[_0x2bea44[_0xa6ac('0x5')]][_0xa6ac('0x2c')]=utils[_0xa6ac('0x2d')](dials[_0x2bea44[_0xa6ac('0x5')]][_0xa6ac('0x21')]||dials[_0x2bea44[_0xa6ac('0x5')]][_0xa6ac('0x2b')],dials[_0x2bea44[_0xa6ac('0x5')]][_0xa6ac('0x1a')]);dials[_0x2bea44[_0xa6ac('0x5')]][_0xa6ac('0x2e')]=dials[_0x2bea44[_0xa6ac('0x5')]][_0xa6ac('0x21')]?utils[_0xa6ac('0x2d')](dials[_0x2bea44[_0xa6ac('0x5')]][_0xa6ac('0x2b')],dials[_0x2bea44[_0xa6ac('0x5')]][_0xa6ac('0x21')]):0x0;writeDB(dials[_0x2bea44[_0xa6ac('0x5')]]);}}catch(_0x5d07f1){utils[_0xa6ac('0x13')](util[_0xa6ac('0x3')](_0xa6ac('0x24'),_0x2bea44['uniqueid']),_0x5d07f1);}};