📄 voip_parse.h
字号:
/*--------------------------------------------------------------------------------------------------------------------------------
|
| Project: VOIP sample
|
| Filename: voip_parse.h
|
| Copyright: TelcoBridges 2002-2004, All Rights Reserved
|
| Description: This file contains definitions to use during configuration file parsing.
|
| Notes: Tabs = 4
|
*-------------------------------------------------------------------------------------------------------------------------------
|
| Revision: $Revision: 1.23 $
|
*------------------------------------------------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------------------------------------------------
| Define header file
*------------------------------------------------------------------------------------------------------------------------------*/
#ifndef __VOIP_PARSE_H__
#define __VOIP_PARSE_H__
/*--------------------------------------------------------------------------------------------------------------------------------
| C++ support
*------------------------------------------------------------------------------------------------------------------------------*/
#ifdef __cplusplus
extern "C"
{
#endif /* __cplusplus */
/*--------------------------------------------------------------------------------------------------------------------------------
| Forward declarations
*------------------------------------------------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------------------------------------------------
| Defines
*------------------------------------------------------------------------------------------------------------------------------*/
#define VOIP_PARSING_DELIMITERS " \t\n\r"
#define VOIP_LINE_PARSING_DELIMITERS ", \t\n\r"
#define VOIP_MAX_CONFIGURATION_LINE_LENGTH 512
/*--------------------------------------------------------------------------------------------------------------------------------
| Types
*------------------------------------------------------------------------------------------------------------------------------*/
/* This enumeration describes the different types of group that can be found from the configuration file or command string */
typedef enum _VOIP_PARSING_GROUP
{
VOIP_PARSING_GROUP_PARAMS = 0,
VOIP_PARSING_GROUP_STREAM_SERVER = 1,
VOIP_PARSING_GROUP_PROMPT = 2,
VOIP_PARSING_GROUP_ADAPTER = 3,
VOIP_PARSING_GROUP_BERT = 4,
VOIP_PARSING_GROUP_CLOCK = 5,
VOIP_PARSING_GROUP_TRUNK = 6,
VOIP_PARSING_GROUP_MBL = 7,
VOIP_PARSING_GROUP_VP = 8,
VOIP_PARSING_GROUP_CONNECTION = 9,
VOIP_PARSING_GROUP_STRESS = 10,
VOIP_PARSING_GROUP_DEMO = 11,
VOIP_PARSING_GROUP_RAW_DATA_FILE = 12,
VOIP_PARSING_GROUP_UNKNOWN = 13
} VOIP_PARSING_GROUP, *PVOIP_PARSING_GROUP;
/* The following enumeration describes the different types of token that can be read from the configuration file or command string */
typedef enum _VOIP_PARSING_TOKEN
{
VOIP_PARSING_TOKEN_COMMENT = 0,
VOIP_PARSING_TOKEN_PARAMS_GROUP_START = 1,
VOIP_PARSING_TOKEN_STREAM_SERVER_GROUP_START = 2,
VOIP_PARSING_TOKEN_PROMPT_GROUP_START = 3,
VOIP_PARSING_TOKEN_ADAPTER_GROUP_START = 4,
VOIP_PARSING_TOKEN_BERT_GROUP_START = 5,
VOIP_PARSING_TOKEN_CLOCK_GROUP_START = 6,
VOIP_PARSING_TOKEN_TRUNK_GROUP_START = 7,
VOIP_PARSING_TOKEN_MBL_GROUP_START = 8,
VOIP_PARSING_TOKEN_VP_GROUP_START = 9,
VOIP_PARSING_TOKEN_CONNECTION_GROUP_START = 10,
VOIP_PARSING_TOKEN_STRESS_GROUP_START = 11,
VOIP_PARSING_TOKEN_DEMO_GROUP_START = 12,
VOIP_PARSING_TOKEN_GROUP_END = 13,
VOIP_PARSING_TOKEN_LOG_FILENAME = 14,
VOIP_PARSING_TOKEN_LOG_FILE_LEVEL = 15,
VOIP_PARSING_TOKEN_LOG_DISPLAY_LEVEL = 16,
VOIP_PARSING_TOKEN_MIN_REFRESH = 17,
VOIP_PARSING_TOKEN_SHOW_CONNECTION_INFO_DISPLAY = 18,
VOIP_PARSING_TOKEN_SHOW_STREAM_INFO_DISPLAY = 19,
VOIP_PARSING_TOKEN_SHOW_TRUNK_INFO_DISPLAY = 20,
VOIP_PARSING_TOKEN_SHOW_PROMPT_INFO_DISPLAY = 21,
VOIP_PARSING_TOKEN_SHOW_RAW_DATA_FILE_INFO_DISPLAY = 22,
VOIP_PARSING_TOKEN_SHOW_BERT_INFO_DISPLAY = 23,
VOIP_PARSING_TOKEN_SHOW_TRUNK_RES_MAP_DISPLAY = 24,
VOIP_PARSING_TOKEN_SHOW_TRUNK_RES_INV_MAP_DISPLAY = 25,
VOIP_PARSING_TOKEN_SHOW_PACKET_TYPE_GRAPH_DISPLAY = 26,
VOIP_PARSING_TOKEN_SHOW_TRUNK_RES_MAP_AND_PACKET_TYPE_GRAPH_DISPLAY = 27,
VOIP_PARSING_TOKEN_SHOW_TRUNK_RES_INV_MAP_AND_PACKET_TYPE_GRAPH_DISPLAY = 28,
VOIP_PARSING_TOKEN_INTERFACE_IP = 29,
VOIP_PARSING_TOKEN_GATEWAY_PORT = 30,
VOIP_PARSING_TOKEN_NETWORK_DOWN_DELAY_MS = 31,
VOIP_PARSING_TOKEN_ADAPTER_DOWN_DELAY_MS = 32,
VOIP_PARSING_TOKEN_POLL_DELAY_MS = 33,
VOIP_PARSING_TOKEN_STREAM_SERVER_IP = 34,
VOIP_PARSING_TOKEN_PROMPT_CONFIG = 35,
VOIP_PARSING_TOKEN_BERT_CONFIG = 36,
VOIP_PARSING_TOKEN_CLOCK_CONFIG = 37,
VOIP_PARSING_TOKEN_TRUNK_CONFIG = 38,
VOIP_PARSING_TOKEN_MBL_CONFIG = 39,
VOIP_PARSING_TOKEN_VP_GRP0_TDM_TONE_CONFIG = 40,
VOIP_PARSING_TOKEN_VP_GRP0_TDM_AGC_CONFIG = 41,
VOIP_PARSING_TOKEN_VP_GRP0_TDM_VAD_CONFIG = 42,
VOIP_PARSING_TOKEN_VP_GRP0_STREAM_CONFIG = 43,
VOIP_PARSING_TOKEN_VP_GRP0_STREAM_TONE_CONFIG = 44,
VOIP_PARSING_TOKEN_VP_GRP0_STREAM_AGC_CONFIG = 45,
VOIP_PARSING_TOKEN_VP_GRP0_STREAM_JITTER_PARAMS_CONFIG = 46,
VOIP_PARSING_TOKEN_VP_GRP1_TDM_TONE_CONFIG = 47,
VOIP_PARSING_TOKEN_VP_GRP1_TDM_AGC_CONFIG = 48,
VOIP_PARSING_TOKEN_VP_GRP1_TDM_VAD_CONFIG = 49,
VOIP_PARSING_TOKEN_VP_GRP1_TDM_ECHO_CONFIG = 50,
VOIP_PARSING_TOKEN_VP_GRP1_STREAM_CONFIG = 51,
VOIP_PARSING_TOKEN_VP_GRP1_STREAM_TONE_CONFIG = 52,
VOIP_PARSING_TOKEN_VP_GRP1_STREAM_JITTER_PARAMS_CONFIG = 53,
VOIP_PARSING_TOKEN_VP_GRP1_STREAM_RTCP_CONFIG = 54,
VOIP_PARSING_TOKEN_VP_GRP1_STREAM_T38_CONFIG = 55,
VOIP_PARSING_TOKEN_CONNECT = 56,
VOIP_PARSING_TOKEN_DISCONNECT = 57,
VOIP_PARSING_TOKEN_STRESS_IP = 58,
VOIP_PARSING_TOKEN_STRESS_CONFIG = 59,
VOIP_PARSING_TOKEN_PAUSE = 60,
VOIP_PARSING_TOKEN_TITLE = 61,
VOIP_PARSING_TOKEN_RAW_DATA_FILE_GROUP_START = 62,
VOIP_PARSING_TOKEN_RAW_DATA_FILE_CONFIG = 63,
VOIP_PARSING_TOKEN_UNKNOWN = 64
} VOIP_PARSING_TOKEN, *PVOIP_PARSING_TOKEN;
/* The following type is used to match a string to a parsing token */
typedef struct _VOIP_PARSING_ENTRY
{
PTBX_CHAR pszIdentifier;
TBX_UINT32 un32Value;
} VOIP_PARSING_ENTRY, *PVOIP_PARSING_ENTRY;
/*--------------------------------------------------------------------------------------------------------------------------------
| Global variables
*------------------------------------------------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------------------------------------------------
| Macros
*------------------------------------------------------------------------------------------------------------------------------*/
#define VOIP_PARSE_ERROR_DISPLAY(__Line__,__Index__,__pOriginalString__,__pErrorDescriptionString__) \
{ \
TBX_UINT32 un32Count; \
TBX_CHAR szPrintLine [VOIP_MAX_CONFIGURATION_LINE_LENGTH]; \
\
TbxCliToolsLogPrint( pCliContext->hCliTools, TRACE_LEVEL_ERROR, NULL, "Error in configuration file '%s' at line %d\n", g_pContext->szConfigFileName, (__Line__)); \
TbxCliToolsLogPrint( pCliContext->hCliTools, TRACE_LEVEL_ERROR, NULL, "\t%s\n", (__pOriginalString__)); \
szPrintLine [0] = '\t'; \
for (un32Count=0; un32Count<(TBX_UINT32)(__Index__);un32Count++) \
{ \
szPrintLine [un32Count+1] = ' '; \
} \
szPrintLine [un32Count+1] = 0; \
sprintf (&(szPrintLine [un32Count+1]), "^ %s\n", (__pErrorDescriptionString__)); \
TbxCliToolsLogPrint( pCliContext->hCliTools, TRACE_LEVEL_ERROR, NULL, szPrintLine); \
}
#define VOIP_PARSE_GET_PARAMETER( __TYPE__ ,__pun32Value__, __fExitOnError__) \
{ \
TBX_CHAR szErrorString[ 256 ]; \
strcpy( szErrorString, #__TYPE__ ": Invalid value, expecting " ); \
*(__pun32Value__) = (TBX_UINT32)-1; \
VoipCompareEntriesBuildErrString (pArg, (g_aParse_ ##__TYPE__), (PTBX_UINT32)(__pun32Value__), &un32SizeOfEntry, szErrorString); \
if ( ((__fExitOnError__) == TBX_TRUE) && ((TBX_UINT32)-1 == *(__pun32Value__)) ) \
{ \
VOIP_PARSE_ERROR_DISPLAY (in_un32Line, (pArg-szLine+in_un32Index), in_pszOriginalLine, szErrorString); \
TBX_EXIT_SUCCESS(TBX_RESULT_FAIL); \
} \
}
#define VOIP_PARSE_GET_TRUNK_PARAMETER(__variable__,__E1_TYPE__,__T1_TYPE__,__J1_TYPE__) \
{ \
if (pTrunkConfig->TrunkCfg.Type == TB640_TRUNK_TYPE_E1) \
{ \
/* Get the E1 framing type */ \
VOIP_PARSE_GET_PARAMETER (__E1_TYPE__, &(pTrunkConfig->TrunkCfg.Cfg.E1.__variable__), TBX_TRUE); \
} \
else if (pTrunkConfig->TrunkCfg.Type == TB640_TRUNK_TYPE_T1) \
{ \
/* Get the T1 framing type */ \
VOIP_PARSE_GET_PARAMETER (__T1_TYPE__, &(pTrunkConfig->TrunkCfg.Cfg.T1.__variable__), TBX_TRUE); \
} \
else \
{ \
/* Get the J1 framing type */ \
VOIP_PARSE_GET_PARAMETER (__J1_TYPE__, &(pTrunkConfig->TrunkCfg.Cfg.J1.__variable__), TBX_TRUE); \
} \
}
/*--------------------------------------------------------------------------------------------------------------------------------
| Function Prototypes
*------------------------------------------------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------------------------------------------------
| C++ support
*------------------------------------------------------------------------------------------------------------------------------*/
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* __VOIP_PARSE_H__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -