43277bd8b7e2c38457cebe24774314b0ebb83018
[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 _0x9748=['[%s][dials][newexten]','varset','[%s][dials][varset]','isNil','variable','outboundrouteid','[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s','value','[%s][dials][dialbegin]','starttime','lastevent','called','[%s][dials][hangup]\x20starttime:%s\x20lastevent:called','[%s][dials][dialend]','ANSWER','answertime','now','connect','[%s][dials][dialend]\x20dialstatus:%s\x20answertime:%s\x20lastevent:connect','[%s][dials][dialend]\x20dialstatus:%s','hangup','debug','[%s][dials][hangup]','[%s][dials][hangup]\x20calleridnum:%s\x20calleridname:%s\x20lastevent:complete\x20reason:%s','calleridname','cause-txt','assign','duration','endtime','holdtime','diffTime','billableseconds','info','uniqueid','channel','dialstring','calleridnum','connectedlinenum','dialstatus','newexten','format','[%s][dials][newexten]\x20application:%s\x20appdata:%s','application','appdata','set','startsWith','toLowerCase','cdr(routeid)','split','error'];(function(_0x56bff2,_0xae0085){var _0x5d369e=function(_0x2a4160){while(--_0x2a4160){_0x56bff2['push'](_0x56bff2['shift']());}};_0x5d369e(++_0xae0085);}(_0x9748,0x1e2));var _0x8974=function(_0x209319,_0x48ccac){_0x209319=_0x209319-0x0;var _0xd0ddbb=_0x9748[_0x209319];return _0xd0ddbb;};'use strict';var _=require('lodash');var util=require('util');var utils=require('./utils');var dials={};function writeDB(_0x96ba66){utils[_0x8974('0x0')](util['format']('[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s',_0x96ba66[_0x8974('0x1')],_0x96ba66[_0x8974('0x2')],_0x96ba66[_0x8974('0x3')],_0x96ba66[_0x8974('0x4')],_0x96ba66[_0x8974('0x5')],_0x96ba66[_0x8974('0x6')]));utils['request']('CreateVoiceDialReport',_0x96ba66);delete dials[_0x96ba66['uniqueid']];}exports[_0x8974('0x7')]=function(_0x742eac){try{utils['debug'](util['format']('[%s][dials][newexten]',_0x742eac[_0x8974('0x1')]),_0x742eac);utils[_0x8974('0x0')](util[_0x8974('0x8')](_0x8974('0x9'),_0x742eac[_0x8974('0x1')],_0x742eac[_0x8974('0xa')],_0x742eac[_0x8974('0xb')]));if(_0x742eac[_0x8974('0xa')]['toLowerCase']()==_0x8974('0xc')&&_[_0x8974('0xd')](_0x742eac['appdata'][_0x8974('0xe')](),_0x8974('0xf'))){var _0x4668ca=_0x742eac[_0x8974('0xb')][_0x8974('0x10')]('=');dials[_0x742eac[_0x8974('0x1')]]={'routeId':_0x4668ca[0x1]};}}catch(_0x5163fe){utils[_0x8974('0x11')](util[_0x8974('0x8')](_0x8974('0x12'),_0x742eac['uniqueid']),_0x5163fe);}};exports[_0x8974('0x13')]=function(_0x4cb4bc){try{utils['debug'](util[_0x8974('0x8')](_0x8974('0x14'),_0x4cb4bc[_0x8974('0x1')]),_0x4cb4bc);if(!_[_0x8974('0x15')](_0x4cb4bc[_0x8974('0x16')][_0x8974('0x17')])){utils[_0x8974('0x0')](util[_0x8974('0x8')](_0x8974('0x18'),_0x4cb4bc['uniqueid'],_0x4cb4bc['value']));dials[_0x4cb4bc[_0x8974('0x1')]]={'routeId':_0x4cb4bc[_0x8974('0x19')]};}}catch(_0xb77cb0){utils[_0x8974('0x11')](util[_0x8974('0x8')](_0x8974('0x14'),_0x4cb4bc['uniqueid']),_0xb77cb0);}};exports['dialbegin']=function(_0x29ae5d){try{if(!_['isNil'](dials[_0x29ae5d['uniqueid']])){utils['debug'](util[_0x8974('0x8')](_0x8974('0x1a'),_0x29ae5d[_0x8974('0x1')]),_0x29ae5d);dials[_0x29ae5d['uniqueid']]=_['assign'](dials[_0x29ae5d[_0x8974('0x1')]],_0x29ae5d);dials[_0x29ae5d[_0x8974('0x1')]][_0x8974('0x1b')]=utils['now']();dials[_0x29ae5d[_0x8974('0x1')]][_0x8974('0x1c')]=_0x8974('0x1d');utils['info'](util[_0x8974('0x8')](_0x8974('0x1e'),_0x29ae5d[_0x8974('0x1')],dials[_0x29ae5d['uniqueid']]['starttime']));}}catch(_0x5b4f0e){utils[_0x8974('0x11')](util[_0x8974('0x8')](_0x8974('0x1a'),_0x29ae5d[_0x8974('0x1')]),_0x5b4f0e);}};exports['dialend']=function(_0x47b37b){try{if(!_[_0x8974('0x15')](dials[_0x47b37b[_0x8974('0x1')]])){utils['debug'](util[_0x8974('0x8')](_0x8974('0x1f'),_0x47b37b[_0x8974('0x1')]),_0x47b37b);dials[_0x47b37b[_0x8974('0x1')]][_0x8974('0x6')]=_0x47b37b[_0x8974('0x6')];if(_0x47b37b[_0x8974('0x6')]==_0x8974('0x20')){dials[_0x47b37b[_0x8974('0x1')]]=_['assign'](dials[_0x47b37b[_0x8974('0x1')]],_0x47b37b);dials[_0x47b37b[_0x8974('0x1')]][_0x8974('0x21')]=utils[_0x8974('0x22')]();dials[_0x47b37b[_0x8974('0x1')]][_0x8974('0x1c')]=_0x8974('0x23');utils[_0x8974('0x0')](util['format'](_0x8974('0x24'),_0x47b37b[_0x8974('0x1')],_0x47b37b[_0x8974('0x6')],dials[_0x47b37b[_0x8974('0x1')]][_0x8974('0x21')]));}else{utils[_0x8974('0x0')](util[_0x8974('0x8')](_0x8974('0x25'),_0x47b37b[_0x8974('0x1')],_0x47b37b['dialstatus']));}}}catch(_0x5194a4){utils[_0x8974('0x11')](util[_0x8974('0x8')](_0x8974('0x1f'),_0x47b37b[_0x8974('0x1')]),_0x5194a4);}};exports[_0x8974('0x26')]=function(_0x2077fd){try{if(!_[_0x8974('0x15')](dials[_0x2077fd[_0x8974('0x1')]])){utils[_0x8974('0x27')](util[_0x8974('0x8')](_0x8974('0x28'),_0x2077fd[_0x8974('0x1')]),_0x2077fd);utils[_0x8974('0x0')](util[_0x8974('0x8')](_0x8974('0x29'),_0x2077fd[_0x8974('0x1')],_0x2077fd[_0x8974('0x4')],_0x2077fd[_0x8974('0x2a')],_0x2077fd[_0x8974('0x2b')]));dials[_0x2077fd[_0x8974('0x1')]]=_[_0x8974('0x2c')](dials[_0x2077fd[_0x8974('0x1')]],{'endtime':utils[_0x8974('0x22')](),'lastevent':'complete'});dials[_0x2077fd[_0x8974('0x1')]][_0x8974('0x2d')]=utils['diffTime'](dials[_0x2077fd[_0x8974('0x1')]][_0x8974('0x2e')],dials[_0x2077fd[_0x8974('0x1')]]['starttime']);dials[_0x2077fd[_0x8974('0x1')]][_0x8974('0x2f')]=utils[_0x8974('0x30')](dials[_0x2077fd[_0x8974('0x1')]][_0x8974('0x21')]||dials[_0x2077fd[_0x8974('0x1')]]['endtime'],dials[_0x2077fd['uniqueid']][_0x8974('0x1b')]);dials[_0x2077fd[_0x8974('0x1')]][_0x8974('0x31')]=dials[_0x2077fd[_0x8974('0x1')]][_0x8974('0x21')]?utils[_0x8974('0x30')](dials[_0x2077fd[_0x8974('0x1')]][_0x8974('0x2e')],dials[_0x2077fd['uniqueid']]['answertime']):0x0;writeDB(dials[_0x2077fd[_0x8974('0x1')]]);}}catch(_0x265024){utils[_0x8974('0x11')](util[_0x8974('0x8')](_0x8974('0x28'),_0x2077fd['uniqueid']),_0x265024);}};