parent
341d1a2d31
commit
f7e19c4cad
@ -0,0 +1,256 @@
|
||||
/*
|
||||
*
|
||||
Copyright (c) Dialogic(R), 2010
|
||||
|
||||
*
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
*
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
|
||||
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
See the GNU General Public License for more details.
|
||||
*
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
*/
|
||||
|
||||
/*! \file
|
||||
* \brief Implements to access Diva management file system
|
||||
*
|
||||
* \par Access to Diva hardware state
|
||||
* divalogd captures information from Diva management and exports
|
||||
* it CVS file format.
|
||||
*
|
||||
*/
|
||||
#include "divastreaming/platform.h"
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
#include "dlist.h"
|
||||
#include "divastatus_parameters.h"
|
||||
#include "divastatus_ifc.h"
|
||||
#include "divastatus.h"
|
||||
#ifdef CC_USE_INOTIFY
|
||||
#include <sys/inotify.h>
|
||||
#endif
|
||||
|
||||
typedef const char* pcchar;
|
||||
|
||||
static pcchar DIVA_STATUS_PATH = "/usr/lib/eicon/divas/registry/ifc";
|
||||
static pcchar DIVA_STATUS_FILE = "ifcstate";
|
||||
static pcchar DIVA_CONFIG_FILE = "info/Config";
|
||||
static pcchar DIVA_SERIAL_FILE = "serial";
|
||||
static pcchar DIVA_READ_ALARM_FILE = "info/Red Alarm";
|
||||
static pcchar DIVA_YELLOW_ALARM_FILE = "info/Yellow Alarm";
|
||||
static pcchar DIVA_BLUE_ALARM_FILE = "info/Blue Alarm";
|
||||
|
||||
/*
|
||||
LOCALS
|
||||
*/
|
||||
static int diva_status_active(void);
|
||||
static int diva_status_get_controller_state(int controller, diva_status_ifc_state_t *state);
|
||||
static char* diva_status_read_file(unsigned int controller, const char* fileName);
|
||||
|
||||
/*!
|
||||
\brief Check divalogd is available
|
||||
*/
|
||||
static int diva_status_active(void)
|
||||
{
|
||||
struct stat v;
|
||||
|
||||
return ((stat(DIVA_STATUS_PATH, &v) == 0 && S_ISDIR(v.st_mode) != 0) ? 0 : -1);
|
||||
}
|
||||
|
||||
static char* diva_status_read_file(unsigned int controller, const char* fileName)
|
||||
{
|
||||
int name_len = strlen(DIVA_STATUS_PATH) + strlen(fileName) + 32;
|
||||
char name[name_len];
|
||||
struct stat v;
|
||||
int fd;
|
||||
int length;
|
||||
char *data, *p;
|
||||
|
||||
snprintf(name, name_len, "%s/adapter%u/%s", DIVA_STATUS_PATH, controller, fileName);
|
||||
name[name_len-1] = 0;
|
||||
|
||||
fd = open(name, O_RDONLY);
|
||||
if (fd < 0)
|
||||
return 0;
|
||||
|
||||
if (fstat(fd, &v) != 0 || v.st_size == 0) {
|
||||
close(fd);
|
||||
return 0;
|
||||
}
|
||||
|
||||
length = MIN(v.st_size, 16U*1024U);
|
||||
|
||||
data = diva_os_malloc(0, length+1);
|
||||
if (data == 0) {
|
||||
close (fd);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (read(fd, data, length) != length) {
|
||||
diva_os_free(0, data);
|
||||
close(fd);
|
||||
return (0);
|
||||
}
|
||||
|
||||
data[length] = 0;
|
||||
|
||||
while (((p = strchr(data, '\n')) != 0) || ((p = strchr(data, '\r')))) {
|
||||
*p = 0;
|
||||
}
|
||||
|
||||
return (data);
|
||||
}
|
||||
|
||||
static int diva_status_get_controller_state(int controller, diva_status_ifc_state_t *state)
|
||||
{
|
||||
char *data, *p;
|
||||
int i, pri;
|
||||
const char* v;
|
||||
|
||||
if (diva_status_active() != 0)
|
||||
return -1;
|
||||
|
||||
if ((data = diva_status_read_file(controller, DIVA_CONFIG_FILE)) == 0)
|
||||
return -1;
|
||||
|
||||
for (i = 0, pri = 0, p = data, v = strsep(&p, ",");
|
||||
v != 0 && i < DivaStateIfcConfig_Max;
|
||||
v = strsep(&p, ","), i++) {
|
||||
switch ((diva_state_ifc_config_parameters_t)i) {
|
||||
case DivaStateIfcConfig_TYPE:
|
||||
pri += (strcmp ("PRI", v) == 0);
|
||||
break;
|
||||
|
||||
case DivaStateIfcConfig_PRI:
|
||||
pri += (strcmp ("'YES'", v) == 0);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
diva_os_free(0, data);
|
||||
|
||||
if ((data = diva_status_read_file(controller, DIVA_STATUS_FILE)) == 0)
|
||||
return (-1);
|
||||
|
||||
memset (state, 0x00, sizeof(*state));
|
||||
state->ifcType = (pri == 2) ? DivaStatusIfcPri : DivaStatusIfcNotPri;
|
||||
state->hwState = DivaStatusHwStateUnknown;
|
||||
state->ifcL1State = DivaStatusIfcL2DoNotApply;
|
||||
state->ifcL2State = DivaStatusIfcL2DoNotApply;
|
||||
|
||||
for (i = 0, p = data, v = strsep (&p, ","); v != 0 && i < (int)DivaStateIfcState_Max; v = strsep (&p, ","), i++) {
|
||||
switch ((diva_state_ifcstate_parameters_t)i) {
|
||||
|
||||
case DivaStateIfcState_LAYER1_STATE:
|
||||
if (state->ifcType == DivaStatusIfcPri) {
|
||||
state->ifcL1State = (strcmp ("'Activated'", v) == 0) ? DivaStatusIfcL1OK : DivaStatusIfcL1Error;
|
||||
}
|
||||
break;
|
||||
|
||||
case DivaStateIfcState_LAYER2_STATE:
|
||||
if (state->ifcType == DivaStatusIfcPri) {
|
||||
state->ifcL1State = (strcmp ("'Layer2 UP'", v) == 0) ? DivaStatusIfcL2OK : DivaStatusIfcL2Error;
|
||||
}
|
||||
break;
|
||||
|
||||
case DivaStateIfcState_D2_X_FRAMES:
|
||||
state->ifcTxDStatistics.Frames = (unsigned int)atol(data);
|
||||
break;
|
||||
case DivaStateIfcState_D2_X_BYTES:
|
||||
state->ifcTxDStatistics.Bytes = (unsigned int)atol(data);
|
||||
break;
|
||||
case DivaStateIfcState_D2_X_ERRORS:
|
||||
state->ifcTxDStatistics.Errors = (unsigned int)atol(data);
|
||||
break;
|
||||
case DivaStateIfcState_D2_R_FRAMES:
|
||||
state->ifcRxDStatistics.Frames = (unsigned int)atol(data);
|
||||
break;
|
||||
case DivaStateIfcState_D2_R_BYTES:
|
||||
state->ifcRxDStatistics.Bytes = (unsigned int)atol(data);
|
||||
break;
|
||||
case DivaStateIfcState_D2_R_ERRORS:
|
||||
state->ifcRxDStatistics.Errors = (unsigned int)atol(data);
|
||||
break;
|
||||
|
||||
case DivaStateIfcState_MAX_TEMPERATURE:
|
||||
state->maxTemperature = (unsigned int)atoi(data);
|
||||
break;
|
||||
case DivaStateIfcState_TEMPERATURE:
|
||||
state->currentTemperature = (unsigned int)atoi(data);
|
||||
break;
|
||||
|
||||
case DivaStateIfcState_HARDWARE_STATE:
|
||||
if (strcmp("'Active'", data) == 0)
|
||||
state->hwState = DivaStateHwStateActive;
|
||||
else if (strcmp("'Inactive'", data) == 0)
|
||||
state->hwState = DivaStateHwStateInactive;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
diva_os_free (0, data);
|
||||
|
||||
if ((data = diva_status_read_file(controller, DIVA_READ_ALARM_FILE)) != 0) {
|
||||
state->ifcAlarms.Red = strcmp("TRUE", data);
|
||||
diva_os_free(0, data);
|
||||
}
|
||||
if ((data = diva_status_read_file(controller, DIVA_YELLOW_ALARM_FILE)) != 0) {
|
||||
state->ifcAlarms.Yellow = strcmp("TRUE", data);
|
||||
diva_os_free(0, data);
|
||||
}
|
||||
if ((data = diva_status_read_file(controller, DIVA_BLUE_ALARM_FILE)) != 0) {
|
||||
state->ifcAlarms.Blue = strcmp("TRUE", data);
|
||||
diva_os_free(0, data);
|
||||
}
|
||||
if ((data = diva_status_read_file(controller, DIVA_SERIAL_FILE)) != 0) {
|
||||
state->serialNumber = (unsigned int)(atol(data)) & 0x00ffffff;
|
||||
diva_os_free(0, data);
|
||||
}
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
/*
|
||||
chan_capi interface
|
||||
*/
|
||||
diva_status_interface_state_t diva_status_get_interface_state(int controller)
|
||||
{
|
||||
diva_status_ifc_state_t state;
|
||||
int ret;
|
||||
|
||||
ret = diva_status_get_controller_state(controller, &state);
|
||||
|
||||
if ((ret != 0) ||
|
||||
(state.ifcType != DivaStatusIfcPri) ||
|
||||
(state.ifcL1State == DivaStatusIfcL2DoNotApply) ||
|
||||
(state.hwState == DivaStatusHwStateUnknown)) {
|
||||
return (DivaStatusInterfaceStateNotAvailable);
|
||||
}
|
||||
|
||||
if ((state.ifcAlarms.Red == 0) &&
|
||||
(state.ifcAlarms.Yellow == 0) &&
|
||||
(state.ifcAlarms.Blue == 0) &&
|
||||
(state.hwState == DivaStateHwStateActive) &&
|
||||
(state.ifcL1State == DivaStatusIfcL1OK)) {
|
||||
return DivaStatusInterfaceStateOK;
|
||||
}
|
||||
|
||||
return DivaStatusInterfaceStateERROR;
|
||||
}
|
||||
|
@ -0,0 +1,86 @@
|
||||
/*
|
||||
*
|
||||
Copyright (c) Dialogic(R), 2010
|
||||
|
||||
*
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
*
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
|
||||
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
See the GNU General Public License for more details.
|
||||
*
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
*/
|
||||
|
||||
/*! \file
|
||||
* \brief Declares interface to access diva management file system
|
||||
*/
|
||||
|
||||
#ifndef __DIVA_STATUS_H__
|
||||
#define __DIVA_STATUS_H__
|
||||
|
||||
typedef enum _diva_status_ifc_type {
|
||||
DivaStatusIfcNotPri = 0,
|
||||
DivaStatusIfcPri,
|
||||
DivaStatusIfcBri,
|
||||
DivaStatusIfcAnalog
|
||||
} diva_status_ifc_type_t;
|
||||
|
||||
typedef struct _diva_status_ifc_alarms {
|
||||
int Red;
|
||||
int Blue;
|
||||
int Yellow;
|
||||
} diva_status_ifc_alarms_t;
|
||||
|
||||
typedef enum _diva_status_ifc_l1_state {
|
||||
DivaStatusIfcL1DoNotApply = 0,
|
||||
DivaStatusIfcL1OK,
|
||||
DivaStatusIfcL1Error
|
||||
} diva_status_ifc_l1_state_t;
|
||||
|
||||
typedef enum _diva_status_ifc_l2_state {
|
||||
DivaStatusIfcL2DoNotApply = 0,
|
||||
DivaStatusIfcL2OK,
|
||||
DivaStatusIfcL2Error
|
||||
} diva_status_ifc_l2_state_t;
|
||||
|
||||
typedef enum _diva_status_ifc_hw_state {
|
||||
DivaStatusHwStateUnknown = 0,
|
||||
DivaStateHwStateActive = 1,
|
||||
DivaStateHwStateInactive = 2
|
||||
} diva_status_ifc_hw_state_t;
|
||||
|
||||
typedef struct _diva_status_ifc_statistics {
|
||||
unsigned int Frames;
|
||||
unsigned int Bytes;
|
||||
unsigned int Errors;
|
||||
} diva_status_ifc_statistics_t;
|
||||
|
||||
typedef struct _diva_status_ifc_state {
|
||||
diva_status_ifc_type_t ifcType;
|
||||
diva_status_ifc_hw_state_t hwState;
|
||||
diva_status_ifc_alarms_t ifcAlarms;
|
||||
diva_status_ifc_l1_state_t ifcL1State;
|
||||
diva_status_ifc_l2_state_t ifcL2State;
|
||||
diva_status_ifc_statistics_t ifcRxDStatistics;
|
||||
diva_status_ifc_statistics_t ifcTxDStatistics;
|
||||
unsigned int serialNumber;
|
||||
unsigned int maxTemperature;
|
||||
unsigned int currentTemperature;
|
||||
} diva_status_ifc_state_t;
|
||||
|
||||
#define DIVA_STATUS_EVENT_L1 0x00000001U
|
||||
#define DIVA_STATUS_EVENT_L2 0x00000002U
|
||||
#define DIVA_STATUS_EVENT_ALARMS 0x00000004U
|
||||
#define DIVA_STATUS_EVENT_STATISTICS 0x00000008U
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -0,0 +1,65 @@
|
||||
/*
|
||||
*
|
||||
Copyright (c) Dialogic(R), 2010
|
||||
|
||||
*
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
*
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
|
||||
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
See the GNU General Public License for more details.
|
||||
*
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
*/
|
||||
|
||||
/*! \file
|
||||
* \brief Interface to chan_capi
|
||||
*/
|
||||
|
||||
#ifndef __DIVA_STATUS_IFC_H__
|
||||
#define __DIVA_STATUS_IFC_H__
|
||||
|
||||
typedef enum _diva_status_interface_state {
|
||||
DivaStatusInterfaceStateNotAvailable = -1,
|
||||
DivaStatusInterfaceStateOK = 0,
|
||||
DivaStatusInterfaceStateERROR = 1,
|
||||
} diva_status_interface_state_t;
|
||||
|
||||
/*!
|
||||
\brief activate event based status notifications
|
||||
*/
|
||||
void diva_status_init_interface (int controller);
|
||||
/*!
|
||||
\brief deactivate event based status notifications
|
||||
*/
|
||||
void diva_status_cleanup_interface (int controller);
|
||||
/*!
|
||||
\brief retrieve file handle to be used in async
|
||||
I/O operations
|
||||
*/
|
||||
int diva_status_get_waitable_object (void);
|
||||
/*!
|
||||
\brief process status change events
|
||||
*/
|
||||
void diva_status_process_events (void);
|
||||
|
||||
/*!
|
||||
\brief Retrieve state of interface
|
||||
DivaStatusInterfaceStateNotAvailable - ignore state
|
||||
DivaStatusInterfaceStateOK - interface state verified and OK
|
||||
DivaStatusInterfaceStateERROR - interface state verified and
|
||||
can not be used to create calls
|
||||
*/
|
||||
diva_status_interface_state_t diva_status_get_interface_state (int controller);
|
||||
|
||||
|
||||
|
||||
|
||||
#endif
|
@ -0,0 +1,132 @@
|
||||
/*
|
||||
*
|
||||
Copyright (c) Dialogic(R), 2010
|
||||
|
||||
*
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
*
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
|
||||
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
See the GNU General Public License for more details.
|
||||
*
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef __DIVA_STATUS_PARAMETERS_H__
|
||||
#define __DIVA_STATUS_PARAMETERS_H__
|
||||
|
||||
/*! \brief ifcstate
|
||||
*/
|
||||
typedef enum _diva_state_ifcstate_parameters {
|
||||
DivaStateIfcState_LAYER1_STATE = 0,
|
||||
DivaStateIfcState_LAYER2_STATE,
|
||||
DivaStateIfcState_INC_CALLS,
|
||||
DivaStateIfcState_INC_CONNECTED,
|
||||
DivaStateIfcState_INC_USER_BUSY,
|
||||
DivaStateIfcState_INC_CALL_REJECTED,
|
||||
DivaStateIfcState_INC_WRONG_NUMBER,
|
||||
DivaStateIfcState_INC_INCOMPATIBLE_DST,
|
||||
DivaStateIfcState_INC_OUT_OF_ORDER,
|
||||
DivaStateIfcState_INC_IGNORED,
|
||||
DivaStateIfcState_OUT_CALLS,
|
||||
DivaStateIfcState_OUT_CONNECTED,
|
||||
DivaStateIfcState_OUT_USER_BUSY,
|
||||
DivaStateIfcState_OUT_NO_ANSWER,
|
||||
DivaStateIfcState_OUT_WRONG_NUMBER,
|
||||
DivaStateIfcState_OUT_CALL_REJECTED,
|
||||
DivaStateIfcState_OUT_OTHER_FAILURES,
|
||||
DivaStateIfcState_MDM_DISC_NORMAL,
|
||||
DivaStateIfcState_MDM_DISC_UNSPECIFIED,
|
||||
DivaStateIfcState_MDM_DISC_BUSY_TONE,
|
||||
DivaStateIfcState_MDM_DISC_CONGESTION,
|
||||
DivaStateIfcState_MDM_DISC_CARR_WAIT,
|
||||
DivaStateIfcState_MDM_DISC_TRN_TIMEOUT,
|
||||
DivaStateIfcState_MDM_DISC_INCOMPAT,
|
||||
DivaStateIfcState_MDM_DISC_FRAME_REJ,
|
||||
DivaStateIfcState_MDM_DISC_V42BIS,
|
||||
DivaStateIfcState_FAX_DISC_NORMAL,
|
||||
DivaStateIfcState_FAX_DISC_NOT_IDENT,
|
||||
DivaStateIfcState_FAX_DISC_NO_RESPONSE,
|
||||
DivaStateIfcState_FAX_DISC_RETRIES,
|
||||
DivaStateIfcState_FAX_DISC_UNEXP_MSG,
|
||||
DivaStateIfcState_FAX_DISC_NO_POLLING,
|
||||
DivaStateIfcState_FAX_DISC_TRAINING,
|
||||
DivaStateIfcState_FAX_DISC_UNEXPECTED,
|
||||
DivaStateIfcState_FAX_DISC_APPLICATION,
|
||||
DivaStateIfcState_FAX_DISC_INCOMPAT,
|
||||
DivaStateIfcState_FAX_DISC_NO_COMMAND,
|
||||
DivaStateIfcState_FAX_DISC_LONG_MSG,
|
||||
DivaStateIfcState_FAX_DISC_SUPERVISOR,
|
||||
DivaStateIfcState_FAX_DISC_SUB_SEP_PWD,
|
||||
DivaStateIfcState_FAX_DISC_INVALID_MSG,
|
||||
DivaStateIfcState_FAX_DISC_PAGE_CODING,
|
||||
DivaStateIfcState_FAX_DISC_APP_TIMEOUT,
|
||||
DivaStateIfcState_FAX_DISC_UNSPECIFIED,
|
||||
DivaStateIfcState_B1_X_FRAMES,
|
||||
DivaStateIfcState_B1_X_BYTES,
|
||||
DivaStateIfcState_B1_X_ERRORS,
|
||||
DivaStateIfcState_B1_R_FRAMES,
|
||||
DivaStateIfcState_B1_R_BYTES,
|
||||
DivaStateIfcState_B1_R_ERRORS,
|
||||
DivaStateIfcState_B2_X_FRAMES,
|
||||
DivaStateIfcState_B2_X_BYTES,
|
||||
DivaStateIfcState_B2_X_ERRORS,
|
||||
DivaStateIfcState_B2_R_FRAMES,
|
||||
DivaStateIfcState_B2_R_BYTES,
|
||||
DivaStateIfcState_B2_R_ERRORS,
|
||||
DivaStateIfcState_D1_X_FRAMES,
|
||||
DivaStateIfcState_D1_X_BYTES,
|
||||
DivaStateIfcState_D1_X_ERRORS,
|
||||
DivaStateIfcState_D1_R_FRAMES,
|
||||
DivaStateIfcState_D1_R_BYTES,
|
||||
DivaStateIfcState_D1_R_ERRORS,
|
||||
DivaStateIfcState_D2_X_FRAMES,
|
||||
DivaStateIfcState_D2_X_BYTES,
|
||||
DivaStateIfcState_D2_X_ERRORS,
|
||||
DivaStateIfcState_D2_R_FRAMES,
|
||||
DivaStateIfcState_D2_R_BYTES,
|
||||
DivaStateIfcState_D2_R_ERRORS,
|
||||
DivaStateIfcState_INITIAL_TEMPERATURE,
|
||||
DivaStateIfcState_MIN_TEMPERATURE,
|
||||
DivaStateIfcState_MAX_TEMPERATURE,
|
||||
DivaStateIfcState_TEMPERATURE,
|
||||
DivaStateIfcState_DSPSTATE,
|
||||
DivaStateIfcState_FAX_TX_PAGES_TOTAL,
|
||||
DivaStateIfcState_FAX_TX_PAGES_RETRAIN,
|
||||
DivaStateIfcState_FAX_TX_PAGES_REJECT,
|
||||
DivaStateIfcState_FAX_RX_PAGES_TOTAL,
|
||||
DivaStateIfcState_FAX_RX_PAGES_RETRAIN,
|
||||
DivaStateIfcState_FAX_RX_PAGES_REJECT,
|
||||
DivaStateIfcState_HARDWARE_STATE,
|
||||
DivaStateIfcState_Max
|
||||
} diva_state_ifcstate_parameters_t;
|
||||
|
||||
typedef enum diva_state_ifc_config_parameters {
|
||||
DivaStateIfcConfig_TYPE,
|
||||
DivaStateIfcConfig_CHANNELS,
|
||||
DivaStateIfcConfig_PROTOCOL,
|
||||
DivaStateIfcConfig_NT_MODE,
|
||||
DivaStateIfcConfig_POINTTOPOINT,
|
||||
DivaStateIfcConfig_INTERFACENR,
|
||||
DivaStateIfcConfig_BOARDREVISION,
|
||||
DivaStateIfcConfig_SUBFUNCTION,
|
||||
DivaStateIfcConfig_SUBDEVICE,
|
||||
DivaStateIfcConfig_PROTOCOLBUILD,
|
||||
DivaStateIfcConfig_DSPCODEBUILD,
|
||||
DivaStateIfcConfig_ANALOGCHANNELS,
|
||||
DivaStateIfcConfig_PRI,
|
||||
DivaStateIfcConfig_PCIDMA,
|
||||
DivaStateIfcConfig_ADAPTERTYPE,
|
||||
DivaStateIfcConfig_LAW,
|
||||
DivaStateIfcConfig_Max
|
||||
} diva_state_ifc_config_parameters_t;
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in new issue