Built motion from commit (unavailable).|2.4.17
[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 _0x771a=['answertime','connect','complete','duration','diffTime','endtime','holdtime','util','./utils','format','channel','dialstring','calleridnum','connectedlinenum','request','uniqueid','newexten','application','toLowerCase','set','startsWith','appdata','split','error','stack','isNil','variable','outboundrouteid','value','assign','starttime','now','lastevent','called','dialend','dialstatus','ANSWER'];(function(_0x16144b,_0x2100ec){var _0x2ea065=function(_0x3a60f4){while(--_0x3a60f4){_0x16144b['push'](_0x16144b['shift']());}};_0x2ea065(++_0x2100ec);}(_0x771a,0x10a));var _0xa771=function(_0x28aea5,_0x3bb12e){_0x28aea5=_0x28aea5-0x0;var _0x6a55f9=_0x771a[_0x28aea5];return _0x6a55f9;};'use strict';var _=require('lodash');var util=require(_0xa771('0x0'));var utils=require(_0xa771('0x1'));var dials={};function writeDB(_0x36c190){utils['info'](util[_0xa771('0x2')]('DIAL|%s|%s|%s|%s|%s|%s',_0x36c190['uniqueid'],_0x36c190[_0xa771('0x3')],_0x36c190[_0xa771('0x4')],_0x36c190[_0xa771('0x5')],_0x36c190[_0xa771('0x6')],_0x36c190['dialstatus']));utils[_0xa771('0x7')]('CreateVoiceDialReport',_0x36c190);delete dials[_0x36c190[_0xa771('0x8')]];}exports[_0xa771('0x9')]=function(_0x9b11b4){try{if(_0x9b11b4[_0xa771('0xa')][_0xa771('0xb')]()==_0xa771('0xc')&&_[_0xa771('0xd')](_0x9b11b4[_0xa771('0xe')][_0xa771('0xb')](),'cdr(routeid)')){var _0x3af912=_0x9b11b4[_0xa771('0xe')][_0xa771('0xf')]('=');dials[_0x9b11b4[_0xa771('0x8')]]={'routeId':_0x3af912[0x1]};}}catch(_0x573682){utils[_0xa771('0x10')](_0x573682[_0xa771('0x11')]);}};exports['varset']=function(_0x35b109){try{if(!_[_0xa771('0x12')](_0x35b109[_0xa771('0x13')][_0xa771('0x14')])){dials[_0x35b109[_0xa771('0x8')]]={'routeId':_0x35b109[_0xa771('0x15')]};}}catch(_0xf22dc){utils[_0xa771('0x10')](_0xf22dc['stack']);}};exports['dialbegin']=function(_0x528c9c){try{if(!_['isNil'](dials[_0x528c9c['uniqueid']])){dials[_0x528c9c['uniqueid']]=_[_0xa771('0x16')](dials[_0x528c9c[_0xa771('0x8')]],_0x528c9c);dials[_0x528c9c['uniqueid']][_0xa771('0x17')]=utils[_0xa771('0x18')]();dials[_0x528c9c[_0xa771('0x8')]][_0xa771('0x19')]=_0xa771('0x1a');}}catch(_0x1c8dbc){utils[_0xa771('0x10')](_0x1c8dbc[_0xa771('0x11')]);}};exports[_0xa771('0x1b')]=function(_0x3d0992){try{if(!_['isNil'](dials[_0x3d0992[_0xa771('0x8')]])){dials[_0x3d0992[_0xa771('0x8')]]['dialstatus']=_0x3d0992[_0xa771('0x1c')];if(_0x3d0992[_0xa771('0x1c')]==_0xa771('0x1d')){dials[_0x3d0992[_0xa771('0x8')]]=_['assign'](dials[_0x3d0992[_0xa771('0x8')]],_0x3d0992);dials[_0x3d0992[_0xa771('0x8')]][_0xa771('0x1e')]=utils[_0xa771('0x18')]();dials[_0x3d0992[_0xa771('0x8')]][_0xa771('0x19')]=_0xa771('0x1f');}}}catch(_0x34e23d){utils[_0xa771('0x10')](_0x34e23d[_0xa771('0x11')]);}};exports['hangup']=function(_0x5dcf8d){try{if(!_[_0xa771('0x12')](dials[_0x5dcf8d[_0xa771('0x8')]])){dials[_0x5dcf8d[_0xa771('0x8')]]=_[_0xa771('0x16')](dials[_0x5dcf8d[_0xa771('0x8')]],{'endtime':utils[_0xa771('0x18')](),'lastevent':_0xa771('0x20')});dials[_0x5dcf8d[_0xa771('0x8')]][_0xa771('0x21')]=utils[_0xa771('0x22')](dials[_0x5dcf8d[_0xa771('0x8')]][_0xa771('0x23')],dials[_0x5dcf8d[_0xa771('0x8')]][_0xa771('0x17')]);dials[_0x5dcf8d['uniqueid']][_0xa771('0x24')]=utils[_0xa771('0x22')](dials[_0x5dcf8d[_0xa771('0x8')]][_0xa771('0x1e')]||dials[_0x5dcf8d['uniqueid']][_0xa771('0x23')],dials[_0x5dcf8d[_0xa771('0x8')]][_0xa771('0x17')]);dials[_0x5dcf8d['uniqueid']]['billableseconds']=dials[_0x5dcf8d[_0xa771('0x8')]]['answertime']?utils[_0xa771('0x22')](dials[_0x5dcf8d[_0xa771('0x8')]][_0xa771('0x23')],dials[_0x5dcf8d[_0xa771('0x8')]]['answertime']):0x0;writeDB(dials[_0x5dcf8d[_0xa771('0x8')]]);}}catch(_0x468e7d){utils['error'](_0x468e7d[_0xa771('0x11')]);}};