c93199d7a8ec633401c00dcfdef271c8d90eee6f
[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 _0x8ee5=['./utils','info','format','DIAL|%s|%s|%s|%s|%s|%s','channel','dialstring','request','CreateVoiceDialReport','newexten','application','toLowerCase','set','startsWith','appdata','uniqueid','varset','isNil','variable','outboundrouteid','value','error','stack','dialbegin','assign','now','lastevent','dialend','dialstatus','ANSWER','answertime','connect','duration','endtime','starttime','billableseconds','diffTime','lodash','util'];(function(_0x2caa3c,_0x3cc8bc){var _0x204fe2=function(_0x11de16){while(--_0x11de16){_0x2caa3c['push'](_0x2caa3c['shift']());}};_0x204fe2(++_0x3cc8bc);}(_0x8ee5,0xbc));var _0x58ee=function(_0x55f8f9,_0x37fc4f){_0x55f8f9=_0x55f8f9-0x0;var _0x36a8e5=_0x8ee5[_0x55f8f9];return _0x36a8e5;};'use strict';var _=require(_0x58ee('0x0'));var util=require(_0x58ee('0x1'));var utils=require(_0x58ee('0x2'));var dials={};function writeDB(_0x456d6a){utils[_0x58ee('0x3')](util[_0x58ee('0x4')](_0x58ee('0x5'),_0x456d6a['uniqueid'],_0x456d6a[_0x58ee('0x6')],_0x456d6a[_0x58ee('0x7')],_0x456d6a['calleridnum'],_0x456d6a['connectedlinenum'],_0x456d6a['dialstatus']));utils[_0x58ee('0x8')](_0x58ee('0x9'),_0x456d6a);delete dials[_0x456d6a['uniqueid']];}exports[_0x58ee('0xa')]=function(_0x29007c){try{if(_0x29007c[_0x58ee('0xb')][_0x58ee('0xc')]()==_0x58ee('0xd')&&_[_0x58ee('0xe')](_0x29007c[_0x58ee('0xf')][_0x58ee('0xc')](),'cdr(routeid)')){var _0x403f73=_0x29007c[_0x58ee('0xf')]['split']('=');dials[_0x29007c[_0x58ee('0x10')]]={'routeId':_0x403f73[0x1]};}}catch(_0x5224be){utils['error'](_0x5224be['stack']);}};exports[_0x58ee('0x11')]=function(_0x316559){try{if(!_[_0x58ee('0x12')](_0x316559[_0x58ee('0x13')][_0x58ee('0x14')])){dials[_0x316559[_0x58ee('0x10')]]={'routeId':_0x316559[_0x58ee('0x15')]};}}catch(_0x59ac80){utils[_0x58ee('0x16')](_0x59ac80[_0x58ee('0x17')]);}};exports[_0x58ee('0x18')]=function(_0x40e18b){try{if(!_[_0x58ee('0x12')](dials[_0x40e18b[_0x58ee('0x10')]])){dials[_0x40e18b['uniqueid']]=_[_0x58ee('0x19')](dials[_0x40e18b[_0x58ee('0x10')]],_0x40e18b);dials[_0x40e18b[_0x58ee('0x10')]]['starttime']=utils[_0x58ee('0x1a')]();dials[_0x40e18b[_0x58ee('0x10')]][_0x58ee('0x1b')]='called';}}catch(_0x4ab195){utils[_0x58ee('0x16')](_0x4ab195['stack']);}};exports[_0x58ee('0x1c')]=function(_0x105dd2){try{if(!_[_0x58ee('0x12')](dials[_0x105dd2[_0x58ee('0x10')]])){dials[_0x105dd2[_0x58ee('0x10')]]['dialstatus']=_0x105dd2[_0x58ee('0x1d')];if(_0x105dd2['dialstatus']==_0x58ee('0x1e')){dials[_0x105dd2['uniqueid']]=_['assign'](dials[_0x105dd2[_0x58ee('0x10')]],_0x105dd2);dials[_0x105dd2['uniqueid']][_0x58ee('0x1f')]=utils[_0x58ee('0x1a')]();dials[_0x105dd2[_0x58ee('0x10')]]['lastevent']=_0x58ee('0x20');}}}catch(_0x135980){utils['error'](_0x135980[_0x58ee('0x17')]);}};exports['hangup']=function(_0x48589c){try{if(!_[_0x58ee('0x12')](dials[_0x48589c['uniqueid']])){dials[_0x48589c[_0x58ee('0x10')]]=_[_0x58ee('0x19')](dials[_0x48589c[_0x58ee('0x10')]],{'endtime':utils['now'](),'lastevent':'complete'});dials[_0x48589c['uniqueid']][_0x58ee('0x21')]=utils['diffTime'](dials[_0x48589c[_0x58ee('0x10')]][_0x58ee('0x22')],dials[_0x48589c[_0x58ee('0x10')]][_0x58ee('0x23')]);dials[_0x48589c[_0x58ee('0x10')]]['holdtime']=utils['diffTime'](dials[_0x48589c[_0x58ee('0x10')]][_0x58ee('0x1f')]||dials[_0x48589c['uniqueid']]['endtime'],dials[_0x48589c[_0x58ee('0x10')]]['starttime']);dials[_0x48589c[_0x58ee('0x10')]][_0x58ee('0x24')]=dials[_0x48589c[_0x58ee('0x10')]][_0x58ee('0x1f')]?utils[_0x58ee('0x25')](dials[_0x48589c[_0x58ee('0x10')]]['endtime'],dials[_0x48589c[_0x58ee('0x10')]][_0x58ee('0x1f')]):0x0;writeDB(dials[_0x48589c[_0x58ee('0x10')]]);}}catch(_0x10567d){utils['error'](_0x10567d[_0x58ee('0x17')]);}};