Built motion from commit (unavailable).|2.5.3
[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 _0x1e00=['outboundrouteid','value','error','dialbegin','isNil','assign','starttime','now','lastevent','called','stack','dialend','ANSWER','answertime','diffTime','holdtime','endtime','./utils','info','format','channel','dialstring','dialstatus','CreateVoiceDialReport','uniqueid','newexten','toLowerCase','startsWith','appdata','cdr(routeid)','split','varset','variable'];(function(_0x441970,_0x3af552){var _0x224624=function(_0x2861f9){while(--_0x2861f9){_0x441970['push'](_0x441970['shift']());}};_0x224624(++_0x3af552);}(_0x1e00,0x1df));var _0x01e0=function(_0x8b405d,_0x2ecb04){_0x8b405d=_0x8b405d-0x0;var _0x30ae0a=_0x1e00[_0x8b405d];return _0x30ae0a;};'use strict';var _=require('lodash');var util=require('util');var utils=require(_0x01e0('0x0'));var dials={};function writeDB(_0x54161e){utils[_0x01e0('0x1')](util[_0x01e0('0x2')]('DIAL|%s|%s|%s|%s|%s|%s',_0x54161e['uniqueid'],_0x54161e[_0x01e0('0x3')],_0x54161e[_0x01e0('0x4')],_0x54161e['calleridnum'],_0x54161e['connectedlinenum'],_0x54161e[_0x01e0('0x5')]));utils['request'](_0x01e0('0x6'),_0x54161e);delete dials[_0x54161e[_0x01e0('0x7')]];}exports[_0x01e0('0x8')]=function(_0x2cebf5){try{if(_0x2cebf5['application'][_0x01e0('0x9')]()=='set'&&_[_0x01e0('0xa')](_0x2cebf5[_0x01e0('0xb')][_0x01e0('0x9')](),_0x01e0('0xc'))){var _0x23c7e9=_0x2cebf5['appdata'][_0x01e0('0xd')]('=');dials[_0x2cebf5[_0x01e0('0x7')]]={'routeId':_0x23c7e9[0x1]};}}catch(_0x23e3fa){utils['error'](_0x23e3fa['stack']);}};exports[_0x01e0('0xe')]=function(_0x6a75fe){try{if(!_['isNil'](_0x6a75fe[_0x01e0('0xf')][_0x01e0('0x10')])){dials[_0x6a75fe[_0x01e0('0x7')]]={'routeId':_0x6a75fe[_0x01e0('0x11')]};}}catch(_0x590ff3){utils[_0x01e0('0x12')](_0x590ff3['stack']);}};exports[_0x01e0('0x13')]=function(_0x33ddcb){try{if(!_[_0x01e0('0x14')](dials[_0x33ddcb[_0x01e0('0x7')]])){dials[_0x33ddcb[_0x01e0('0x7')]]=_[_0x01e0('0x15')](dials[_0x33ddcb[_0x01e0('0x7')]],_0x33ddcb);dials[_0x33ddcb['uniqueid']][_0x01e0('0x16')]=utils[_0x01e0('0x17')]();dials[_0x33ddcb[_0x01e0('0x7')]][_0x01e0('0x18')]=_0x01e0('0x19');}}catch(_0x89f690){utils[_0x01e0('0x12')](_0x89f690[_0x01e0('0x1a')]);}};exports[_0x01e0('0x1b')]=function(_0x8e42a0){try{if(!_[_0x01e0('0x14')](dials[_0x8e42a0[_0x01e0('0x7')]])){dials[_0x8e42a0[_0x01e0('0x7')]][_0x01e0('0x5')]=_0x8e42a0[_0x01e0('0x5')];if(_0x8e42a0['dialstatus']==_0x01e0('0x1c')){dials[_0x8e42a0['uniqueid']]=_['assign'](dials[_0x8e42a0[_0x01e0('0x7')]],_0x8e42a0);dials[_0x8e42a0[_0x01e0('0x7')]][_0x01e0('0x1d')]=utils[_0x01e0('0x17')]();dials[_0x8e42a0[_0x01e0('0x7')]][_0x01e0('0x18')]='connect';}}}catch(_0x440747){utils['error'](_0x440747[_0x01e0('0x1a')]);}};exports['hangup']=function(_0x443b6f){try{if(!_[_0x01e0('0x14')](dials[_0x443b6f[_0x01e0('0x7')]])){dials[_0x443b6f[_0x01e0('0x7')]]=_['assign'](dials[_0x443b6f[_0x01e0('0x7')]],{'endtime':utils['now'](),'lastevent':'complete'});dials[_0x443b6f[_0x01e0('0x7')]]['duration']=utils[_0x01e0('0x1e')](dials[_0x443b6f[_0x01e0('0x7')]]['endtime'],dials[_0x443b6f['uniqueid']][_0x01e0('0x16')]);dials[_0x443b6f[_0x01e0('0x7')]][_0x01e0('0x1f')]=utils[_0x01e0('0x1e')](dials[_0x443b6f[_0x01e0('0x7')]][_0x01e0('0x1d')]||dials[_0x443b6f[_0x01e0('0x7')]]['endtime'],dials[_0x443b6f[_0x01e0('0x7')]][_0x01e0('0x16')]);dials[_0x443b6f[_0x01e0('0x7')]]['billableseconds']=dials[_0x443b6f[_0x01e0('0x7')]][_0x01e0('0x1d')]?utils[_0x01e0('0x1e')](dials[_0x443b6f[_0x01e0('0x7')]][_0x01e0('0x20')],dials[_0x443b6f[_0x01e0('0x7')]][_0x01e0('0x1d')]):0x0;writeDB(dials[_0x443b6f[_0x01e0('0x7')]]);}}catch(_0x10251d){utils[_0x01e0('0x12')](_0x10251d[_0x01e0('0x1a')]);}};