3ceca72683e78cdd96d17e9153d979a8575084a0
[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 _0x9bbe=['set','startsWith','appdata','error','[%s][dials][varset]','isNil','variable','outboundrouteid','[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s','value','dialbegin','assign','starttime','now','called','[%s][dials][hangup]\x20starttime:%s\x20lastevent:called','[%s][dials][dialend]','ANSWER','answertime','connect','[%s][dials][dialend]\x20dialstatus:%s\x20answertime:%s\x20lastevent:connect','[%s][dials][dialend]\x20dialstatus:%s','hangup','[%s][dials][hangup]','calleridname','cause-txt','complete','duration','diffTime','endtime','holdtime','lodash','./utils','info','[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s','uniqueid','dialstring','calleridnum','dialstatus','request','CreateVoiceDialReport','newexten','debug','format','[%s][dials][newexten]','application','toLowerCase'];(function(_0x50ca47,_0x123352){var _0x5815ed=function(_0x559690){while(--_0x559690){_0x50ca47['push'](_0x50ca47['shift']());}};_0x5815ed(++_0x123352);}(_0x9bbe,0xac));var _0xe9bb=function(_0x410846,_0x178b5b){_0x410846=_0x410846-0x0;var _0x2fc941=_0x9bbe[_0x410846];return _0x2fc941;};'use strict';var _=require(_0xe9bb('0x0'));var util=require('util');var utils=require(_0xe9bb('0x1'));var dials={};function writeDB(_0xb4e5b5){utils[_0xe9bb('0x2')](util['format'](_0xe9bb('0x3'),_0xb4e5b5[_0xe9bb('0x4')],_0xb4e5b5['channel'],_0xb4e5b5[_0xe9bb('0x5')],_0xb4e5b5[_0xe9bb('0x6')],_0xb4e5b5['connectedlinenum'],_0xb4e5b5[_0xe9bb('0x7')]));utils[_0xe9bb('0x8')](_0xe9bb('0x9'),_0xb4e5b5);delete dials[_0xb4e5b5[_0xe9bb('0x4')]];}exports[_0xe9bb('0xa')]=function(_0x58d49d){try{utils[_0xe9bb('0xb')](util[_0xe9bb('0xc')](_0xe9bb('0xd'),_0x58d49d['uniqueid']),_0x58d49d);utils[_0xe9bb('0x2')](util[_0xe9bb('0xc')]('[%s][dials][newexten]\x20application:%s\x20appdata:%s',_0x58d49d['uniqueid'],_0x58d49d[_0xe9bb('0xe')],_0x58d49d['appdata']));if(_0x58d49d[_0xe9bb('0xe')][_0xe9bb('0xf')]()==_0xe9bb('0x10')&&_[_0xe9bb('0x11')](_0x58d49d[_0xe9bb('0x12')][_0xe9bb('0xf')](),'cdr(routeid)')){var _0x4eb8f0=_0x58d49d[_0xe9bb('0x12')]['split']('=');dials[_0x58d49d[_0xe9bb('0x4')]]={'routeId':_0x4eb8f0[0x1]};}}catch(_0x300399){utils[_0xe9bb('0x13')](util[_0xe9bb('0xc')]('[%s][dials][newexten]',_0x58d49d['uniqueid']),_0x300399);}};exports['varset']=function(_0x33e7ba){try{utils['debug'](util[_0xe9bb('0xc')](_0xe9bb('0x14'),_0x33e7ba[_0xe9bb('0x4')]),_0x33e7ba);if(!_[_0xe9bb('0x15')](_0x33e7ba[_0xe9bb('0x16')][_0xe9bb('0x17')])){utils[_0xe9bb('0x2')](util['format'](_0xe9bb('0x18'),_0x33e7ba['uniqueid'],_0x33e7ba['value']));dials[_0x33e7ba[_0xe9bb('0x4')]]={'routeId':_0x33e7ba[_0xe9bb('0x19')]};}}catch(_0x455aa6){utils[_0xe9bb('0x13')](util[_0xe9bb('0xc')](_0xe9bb('0x14'),_0x33e7ba[_0xe9bb('0x4')]),_0x455aa6);}};exports[_0xe9bb('0x1a')]=function(_0x5ee2cd){try{if(!_[_0xe9bb('0x15')](dials[_0x5ee2cd[_0xe9bb('0x4')]])){utils[_0xe9bb('0xb')](util[_0xe9bb('0xc')]('[%s][dials][dialbegin]',_0x5ee2cd[_0xe9bb('0x4')]),_0x5ee2cd);dials[_0x5ee2cd[_0xe9bb('0x4')]]=_[_0xe9bb('0x1b')](dials[_0x5ee2cd[_0xe9bb('0x4')]],_0x5ee2cd);dials[_0x5ee2cd[_0xe9bb('0x4')]][_0xe9bb('0x1c')]=utils[_0xe9bb('0x1d')]();dials[_0x5ee2cd[_0xe9bb('0x4')]]['lastevent']=_0xe9bb('0x1e');utils[_0xe9bb('0x2')](util[_0xe9bb('0xc')](_0xe9bb('0x1f'),_0x5ee2cd['uniqueid'],dials[_0x5ee2cd[_0xe9bb('0x4')]][_0xe9bb('0x1c')]));}}catch(_0x41399e){utils['error'](util[_0xe9bb('0xc')]('[%s][dials][dialbegin]',_0x5ee2cd[_0xe9bb('0x4')]),_0x41399e);}};exports['dialend']=function(_0xe886a5){try{if(!_[_0xe9bb('0x15')](dials[_0xe886a5[_0xe9bb('0x4')]])){utils[_0xe9bb('0xb')](util[_0xe9bb('0xc')](_0xe9bb('0x20'),_0xe886a5[_0xe9bb('0x4')]),_0xe886a5);dials[_0xe886a5[_0xe9bb('0x4')]][_0xe9bb('0x7')]=_0xe886a5[_0xe9bb('0x7')];if(_0xe886a5[_0xe9bb('0x7')]==_0xe9bb('0x21')){dials[_0xe886a5[_0xe9bb('0x4')]]=_['assign'](dials[_0xe886a5[_0xe9bb('0x4')]],_0xe886a5);dials[_0xe886a5['uniqueid']][_0xe9bb('0x22')]=utils[_0xe9bb('0x1d')]();dials[_0xe886a5[_0xe9bb('0x4')]]['lastevent']=_0xe9bb('0x23');utils[_0xe9bb('0x2')](util[_0xe9bb('0xc')](_0xe9bb('0x24'),_0xe886a5[_0xe9bb('0x4')],_0xe886a5[_0xe9bb('0x7')],dials[_0xe886a5[_0xe9bb('0x4')]][_0xe9bb('0x22')]));}else{utils[_0xe9bb('0x2')](util[_0xe9bb('0xc')](_0xe9bb('0x25'),_0xe886a5[_0xe9bb('0x4')],_0xe886a5[_0xe9bb('0x7')]));}}}catch(_0x4c1168){utils[_0xe9bb('0x13')](util['format'](_0xe9bb('0x20'),_0xe886a5[_0xe9bb('0x4')]),_0x4c1168);}};exports[_0xe9bb('0x26')]=function(_0x2e5c7f){try{if(!_[_0xe9bb('0x15')](dials[_0x2e5c7f[_0xe9bb('0x4')]])){utils[_0xe9bb('0xb')](util[_0xe9bb('0xc')](_0xe9bb('0x27'),_0x2e5c7f[_0xe9bb('0x4')]),_0x2e5c7f);utils[_0xe9bb('0x2')](util[_0xe9bb('0xc')]('[%s][dials][hangup]\x20calleridnum:%s\x20calleridname:%s\x20lastevent:complete\x20reason:%s',_0x2e5c7f[_0xe9bb('0x4')],_0x2e5c7f['calleridnum'],_0x2e5c7f[_0xe9bb('0x28')],_0x2e5c7f[_0xe9bb('0x29')]));dials[_0x2e5c7f['uniqueid']]=_[_0xe9bb('0x1b')](dials[_0x2e5c7f[_0xe9bb('0x4')]],{'endtime':utils[_0xe9bb('0x1d')](),'lastevent':_0xe9bb('0x2a')});dials[_0x2e5c7f['uniqueid']][_0xe9bb('0x2b')]=utils[_0xe9bb('0x2c')](dials[_0x2e5c7f['uniqueid']][_0xe9bb('0x2d')],dials[_0x2e5c7f[_0xe9bb('0x4')]]['starttime']);dials[_0x2e5c7f['uniqueid']][_0xe9bb('0x2e')]=utils[_0xe9bb('0x2c')](dials[_0x2e5c7f[_0xe9bb('0x4')]][_0xe9bb('0x22')]||dials[_0x2e5c7f['uniqueid']]['endtime'],dials[_0x2e5c7f[_0xe9bb('0x4')]]['starttime']);dials[_0x2e5c7f[_0xe9bb('0x4')]]['billableseconds']=dials[_0x2e5c7f[_0xe9bb('0x4')]][_0xe9bb('0x22')]?utils[_0xe9bb('0x2c')](dials[_0x2e5c7f[_0xe9bb('0x4')]][_0xe9bb('0x2d')],dials[_0x2e5c7f[_0xe9bb('0x4')]]['answertime']):0x0;writeDB(dials[_0x2e5c7f[_0xe9bb('0x4')]]);}}catch(_0x3c7fd4){utils[_0xe9bb('0x13')](util['format'](_0xe9bb('0x27'),_0x2e5c7f['uniqueid']),_0x3c7fd4);}};