1737b8b80e9bcc83527004021d9db9f36797717a
[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 _0xa63a=['cause-txt','complete','duration','diffTime','endtime','holdtime','util','./utils','info','format','uniqueid','calleridnum','dialstatus','request','newexten','debug','[%s][dials][newexten]','[%s][dials][newexten]\x20application:%s\x20appdata:%s','application','appdata','toLowerCase','set','startsWith','split','error','varset','isNil','variable','outboundrouteid','[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s','value','[%s][dials][varset]','dialbegin','[%s][dials][dialbegin]','assign','starttime','lastevent','called','[%s][dials][hangup]\x20starttime:%s\x20lastevent:called','dialend','ANSWER','answertime','now','connect','[%s][dials][dialend]\x20dialstatus:%s\x20answertime:%s\x20lastevent:connect','[%s][dials][dialend]\x20dialstatus:%s','hangup','[%s][dials][hangup]','calleridname'];(function(_0x411f4d,_0x2a29e0){var _0x4cc9c0=function(_0xeeb98d){while(--_0xeeb98d){_0x411f4d['push'](_0x411f4d['shift']());}};_0x4cc9c0(++_0x2a29e0);}(_0xa63a,0x15d));var _0xaa63=function(_0x4c1b76,_0x2cdc2d){_0x4c1b76=_0x4c1b76-0x0;var _0x3ace6b=_0xa63a[_0x4c1b76];return _0x3ace6b;};'use strict';var _=require('lodash');var util=require(_0xaa63('0x0'));var utils=require(_0xaa63('0x1'));var dials={};function writeDB(_0x84007){utils[_0xaa63('0x2')](util[_0xaa63('0x3')]('[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s',_0x84007[_0xaa63('0x4')],_0x84007['channel'],_0x84007['dialstring'],_0x84007[_0xaa63('0x5')],_0x84007['connectedlinenum'],_0x84007[_0xaa63('0x6')]));utils[_0xaa63('0x7')]('CreateVoiceDialReport',_0x84007);delete dials[_0x84007[_0xaa63('0x4')]];}exports[_0xaa63('0x8')]=function(_0x3fd11b){try{utils[_0xaa63('0x9')](util['format'](_0xaa63('0xa'),_0x3fd11b[_0xaa63('0x4')]),_0x3fd11b);utils[_0xaa63('0x2')](util[_0xaa63('0x3')](_0xaa63('0xb'),_0x3fd11b[_0xaa63('0x4')],_0x3fd11b[_0xaa63('0xc')],_0x3fd11b[_0xaa63('0xd')]));if(_0x3fd11b['application'][_0xaa63('0xe')]()==_0xaa63('0xf')&&_[_0xaa63('0x10')](_0x3fd11b[_0xaa63('0xd')][_0xaa63('0xe')](),'cdr(routeid)')){var _0x26d01c=_0x3fd11b[_0xaa63('0xd')][_0xaa63('0x11')]('=');dials[_0x3fd11b['uniqueid']]={'routeId':_0x26d01c[0x1]};}}catch(_0x1fbdfe){utils[_0xaa63('0x12')](util[_0xaa63('0x3')]('[%s][dials][newexten]',_0x3fd11b[_0xaa63('0x4')]),_0x1fbdfe);}};exports[_0xaa63('0x13')]=function(_0xe11d86){try{utils[_0xaa63('0x9')](util[_0xaa63('0x3')]('[%s][dials][varset]',_0xe11d86[_0xaa63('0x4')]),_0xe11d86);if(!_[_0xaa63('0x14')](_0xe11d86[_0xaa63('0x15')][_0xaa63('0x16')])){utils[_0xaa63('0x2')](util[_0xaa63('0x3')](_0xaa63('0x17'),_0xe11d86[_0xaa63('0x4')],_0xe11d86[_0xaa63('0x18')]));dials[_0xe11d86['uniqueid']]={'routeId':_0xe11d86[_0xaa63('0x18')]};}}catch(_0x4a9f43){utils[_0xaa63('0x12')](util[_0xaa63('0x3')](_0xaa63('0x19'),_0xe11d86['uniqueid']),_0x4a9f43);}};exports[_0xaa63('0x1a')]=function(_0x1a0522){try{if(!_[_0xaa63('0x14')](dials[_0x1a0522[_0xaa63('0x4')]])){utils[_0xaa63('0x9')](util[_0xaa63('0x3')](_0xaa63('0x1b'),_0x1a0522[_0xaa63('0x4')]),_0x1a0522);dials[_0x1a0522[_0xaa63('0x4')]]=_[_0xaa63('0x1c')](dials[_0x1a0522['uniqueid']],_0x1a0522);dials[_0x1a0522[_0xaa63('0x4')]][_0xaa63('0x1d')]=utils['now']();dials[_0x1a0522['uniqueid']][_0xaa63('0x1e')]=_0xaa63('0x1f');utils[_0xaa63('0x2')](util['format'](_0xaa63('0x20'),_0x1a0522['uniqueid'],dials[_0x1a0522[_0xaa63('0x4')]][_0xaa63('0x1d')]));}}catch(_0x27b5ae){utils[_0xaa63('0x12')](util[_0xaa63('0x3')](_0xaa63('0x1b'),_0x1a0522['uniqueid']),_0x27b5ae);}};exports[_0xaa63('0x21')]=function(_0x52316e){try{if(!_[_0xaa63('0x14')](dials[_0x52316e[_0xaa63('0x4')]])){utils[_0xaa63('0x9')](util['format']('[%s][dials][dialend]',_0x52316e[_0xaa63('0x4')]),_0x52316e);dials[_0x52316e[_0xaa63('0x4')]][_0xaa63('0x6')]=_0x52316e[_0xaa63('0x6')];if(_0x52316e[_0xaa63('0x6')]==_0xaa63('0x22')){dials[_0x52316e[_0xaa63('0x4')]]=_[_0xaa63('0x1c')](dials[_0x52316e[_0xaa63('0x4')]],_0x52316e);dials[_0x52316e[_0xaa63('0x4')]][_0xaa63('0x23')]=utils[_0xaa63('0x24')]();dials[_0x52316e[_0xaa63('0x4')]][_0xaa63('0x1e')]=_0xaa63('0x25');utils[_0xaa63('0x2')](util[_0xaa63('0x3')](_0xaa63('0x26'),_0x52316e[_0xaa63('0x4')],_0x52316e[_0xaa63('0x6')],dials[_0x52316e[_0xaa63('0x4')]]['answertime']));}else{utils[_0xaa63('0x2')](util[_0xaa63('0x3')](_0xaa63('0x27'),_0x52316e[_0xaa63('0x4')],_0x52316e['dialstatus']));}}}catch(_0x193d6f){utils[_0xaa63('0x12')](util['format']('[%s][dials][dialend]',_0x52316e[_0xaa63('0x4')]),_0x193d6f);}};exports[_0xaa63('0x28')]=function(_0x3e05bf){try{if(!_[_0xaa63('0x14')](dials[_0x3e05bf[_0xaa63('0x4')]])){utils[_0xaa63('0x9')](util[_0xaa63('0x3')](_0xaa63('0x29'),_0x3e05bf[_0xaa63('0x4')]),_0x3e05bf);utils[_0xaa63('0x2')](util['format']('[%s][dials][hangup]\x20calleridnum:%s\x20calleridname:%s\x20lastevent:complete\x20reason:%s',_0x3e05bf['uniqueid'],_0x3e05bf[_0xaa63('0x5')],_0x3e05bf[_0xaa63('0x2a')],_0x3e05bf[_0xaa63('0x2b')]));dials[_0x3e05bf['uniqueid']]=_[_0xaa63('0x1c')](dials[_0x3e05bf[_0xaa63('0x4')]],{'endtime':utils['now'](),'lastevent':_0xaa63('0x2c')});dials[_0x3e05bf[_0xaa63('0x4')]][_0xaa63('0x2d')]=utils[_0xaa63('0x2e')](dials[_0x3e05bf[_0xaa63('0x4')]][_0xaa63('0x2f')],dials[_0x3e05bf['uniqueid']]['starttime']);dials[_0x3e05bf[_0xaa63('0x4')]][_0xaa63('0x30')]=utils[_0xaa63('0x2e')](dials[_0x3e05bf['uniqueid']][_0xaa63('0x23')]||dials[_0x3e05bf[_0xaa63('0x4')]][_0xaa63('0x2f')],dials[_0x3e05bf[_0xaa63('0x4')]]['starttime']);dials[_0x3e05bf[_0xaa63('0x4')]]['billableseconds']=dials[_0x3e05bf[_0xaa63('0x4')]]['answertime']?utils[_0xaa63('0x2e')](dials[_0x3e05bf[_0xaa63('0x4')]]['endtime'],dials[_0x3e05bf[_0xaa63('0x4')]][_0xaa63('0x23')]):0x0;writeDB(dials[_0x3e05bf[_0xaa63('0x4')]]);}}catch(_0x5b662e){utils['error'](util[_0xaa63('0x3')]('[%s][dials][hangup]',_0x3e05bf[_0xaa63('0x4')]),_0x5b662e);}};