📄 voip_parse.c
字号:
/*--------------------------------------------------------------------------------------------------------------------------------
|
| Project: VOIP sample
|
| Filename: voip_parse.c
|
| Copyright: TelcoBridges 2002-2004, All Rights Reserved
|
| Description: This file contains the configuration script parsing
|
| Notes: Tabs = 4
|
*-------------------------------------------------------------------------------------------------------------------------------
|
| Revision: $Revision: 1.50 $
|
*------------------------------------------------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------------------------------------------------
| Includes
*------------------------------------------------------------------------------------------------------------------------------*/
#include "voip_includes.h"
/*--------------------------------------------------------------------------------------------------------------------------------
| Forward declarations
*------------------------------------------------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------------------------------------------------
| Defines
*------------------------------------------------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------------------------------------------------
| Types
*------------------------------------------------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------------------------------------------------
| Versioning
*------------------------------------------------------------------------------------------------------------------------------*/
#ifdef WIN32
/*@unused@*/ static char g_szFileVersion [] = "$Revision: 1.50 $";
#endif
/*--------------------------------------------------------------------------------------------------------------------------------
| Global variables
*------------------------------------------------------------------------------------------------------------------------------*/
static VOIP_PARSING_ENTRY g_aParseMainConfigItems [] = {
{ ".PARAMS", VOIP_PARSING_TOKEN_PARAMS_GROUP_START},
{ ".STREAMSERVER", VOIP_PARSING_TOKEN_STREAM_SERVER_GROUP_START},
{ ".PROMPT", VOIP_PARSING_TOKEN_PROMPT_GROUP_START},
{ ".FILE", VOIP_PARSING_TOKEN_RAW_DATA_FILE_GROUP_START},
{ ".ADAPTER=", VOIP_PARSING_TOKEN_ADAPTER_GROUP_START},
{ ".BERT", VOIP_PARSING_TOKEN_BERT_GROUP_START},
{ ".CLOCK", VOIP_PARSING_TOKEN_CLOCK_GROUP_START},
{ ".TRUNK", VOIP_PARSING_TOKEN_TRUNK_GROUP_START},
{ ".MBL", VOIP_PARSING_TOKEN_MBL_GROUP_START},
{ ".VP", VOIP_PARSING_TOKEN_VP_GROUP_START},
{ ".CONNECTION", VOIP_PARSING_TOKEN_CONNECTION_GROUP_START},
{ ".STRESS", VOIP_PARSING_TOKEN_STRESS_GROUP_START},
{ ".DEMO", VOIP_PARSING_TOKEN_DEMO_GROUP_START},
{ ".END", VOIP_PARSING_TOKEN_GROUP_END},
{ "LOG_FILENAME=", VOIP_PARSING_TOKEN_LOG_FILENAME},
{ "LOG_FILE_LEVEL=", VOIP_PARSING_TOKEN_LOG_FILE_LEVEL},
{ "LOG_DISPLAY_LEVEL=", VOIP_PARSING_TOKEN_LOG_DISPLAY_LEVEL},
{ "MIN_REFRESH=", VOIP_PARSING_TOKEN_MIN_REFRESH},
{ "SHOW_CONNECTION_INFO_DISPLAY=", VOIP_PARSING_TOKEN_SHOW_CONNECTION_INFO_DISPLAY},
{ "SHOW_STREAM_INFO_DISPLAY=", VOIP_PARSING_TOKEN_SHOW_STREAM_INFO_DISPLAY},
{ "SHOW_TRUNK_INFO_DISPLAY=", VOIP_PARSING_TOKEN_SHOW_TRUNK_INFO_DISPLAY},
{ "SHOW_PROMPT_INFO_DISPLAY=", VOIP_PARSING_TOKEN_SHOW_PROMPT_INFO_DISPLAY},
{ "SHOW_FILE_INFO_DISPLAY=", VOIP_PARSING_TOKEN_SHOW_RAW_DATA_FILE_INFO_DISPLAY},
{ "SHOW_BERT_INFO_DISPLAY=", VOIP_PARSING_TOKEN_SHOW_BERT_INFO_DISPLAY},
{ "SHOW_TRUNK_RES_MAP_DISPLAY=", VOIP_PARSING_TOKEN_SHOW_TRUNK_RES_MAP_DISPLAY},
{ "SHOW_TRUNK_RES_INV_MAP_DISPLAY=", VOIP_PARSING_TOKEN_SHOW_TRUNK_RES_INV_MAP_DISPLAY},
{ "SHOW_PACKET_TYPE_GRAPH_DISPLAY=", VOIP_PARSING_TOKEN_SHOW_PACKET_TYPE_GRAPH_DISPLAY},
{ "SHOW_TRUNK_RES_MAP_AND_PACKET_TYPE_GRAPH_DISPLAY=", VOIP_PARSING_TOKEN_SHOW_TRUNK_RES_MAP_AND_PACKET_TYPE_GRAPH_DISPLAY},
{ "SHOW_TRUNK_RES_INV_MAP_AND_PACKET_TYPE_GRAPH_DISPLAY=", VOIP_PARSING_TOKEN_SHOW_TRUNK_RES_INV_MAP_AND_PACKET_TYPE_GRAPH_DISPLAY},
{ "INTERFACE_IP=", VOIP_PARSING_TOKEN_INTERFACE_IP},
{ "GATEWAY_PORT=", VOIP_PARSING_TOKEN_GATEWAY_PORT},
{ "NETWORK_DOWN_DELAY=", VOIP_PARSING_TOKEN_NETWORK_DOWN_DELAY_MS},
{ "ADAPTER_DOWN_DELAY=", VOIP_PARSING_TOKEN_ADAPTER_DOWN_DELAY_MS},
{ "POLL_DELAY=", VOIP_PARSING_TOKEN_POLL_DELAY_MS},
{ "STREAMSERVER_IP=", VOIP_PARSING_TOKEN_STREAM_SERVER_IP},
{ "PROMPT_CFG=", VOIP_PARSING_TOKEN_PROMPT_CONFIG},
{ "FILE_CFG=", VOIP_PARSING_TOKEN_RAW_DATA_FILE_CONFIG},
{ "BERT_CFG=", VOIP_PARSING_TOKEN_BERT_CONFIG},
{ "CLOCK_CFG=", VOIP_PARSING_TOKEN_CLOCK_CONFIG},
{ "TRUNK_CFG=", VOIP_PARSING_TOKEN_TRUNK_CONFIG},
{ "MBL_CFG=", VOIP_PARSING_TOKEN_MBL_CONFIG},
{ "VP_GRP0_TDM_TONE_CFG=", VOIP_PARSING_TOKEN_VP_GRP0_TDM_TONE_CONFIG},
{ "VP_GRP0_TDM_AGC_CFG=", VOIP_PARSING_TOKEN_VP_GRP0_TDM_AGC_CONFIG},
{ "VP_GRP0_TDM_VAD_CFG=", VOIP_PARSING_TOKEN_VP_GRP0_TDM_VAD_CONFIG},
{ "VP_GRP0_STREAM_CFG=", VOIP_PARSING_TOKEN_VP_GRP0_STREAM_CONFIG},
{ "VP_GRP0_STREAM_TONE_CFG=", VOIP_PARSING_TOKEN_VP_GRP0_STREAM_TONE_CONFIG},
{ "VP_GRP0_STREAM_AGC_CFG=", VOIP_PARSING_TOKEN_VP_GRP0_STREAM_AGC_CONFIG},
{ "VP_GRP0_STREAM_JITTER_PARAMS_CFG=", VOIP_PARSING_TOKEN_VP_GRP0_STREAM_JITTER_PARAMS_CONFIG},
{ "VP_GRP1_TDM_TONE_CFG=", VOIP_PARSING_TOKEN_VP_GRP1_TDM_TONE_CONFIG},
{ "VP_GRP1_TDM_AGC_CFG=", VOIP_PARSING_TOKEN_VP_GRP1_TDM_AGC_CONFIG},
{ "VP_GRP1_TDM_VAD_CFG=", VOIP_PARSING_TOKEN_VP_GRP1_TDM_VAD_CONFIG},
{ "VP_GRP1_TDM_ECHO_CFG=", VOIP_PARSING_TOKEN_VP_GRP1_TDM_ECHO_CONFIG},
{ "VP_GRP1_STREAM_CFG=", VOIP_PARSING_TOKEN_VP_GRP1_STREAM_CONFIG},
{ "VP_GRP1_STREAM_TONE_CFG=", VOIP_PARSING_TOKEN_VP_GRP1_STREAM_TONE_CONFIG},
{ "VP_GRP1_STREAM_JITTER_PARAMS_CFG=", VOIP_PARSING_TOKEN_VP_GRP1_STREAM_JITTER_PARAMS_CONFIG},
{ "VP_GRP1_STREAM_RTCP_CFG=", VOIP_PARSING_TOKEN_VP_GRP1_STREAM_RTCP_CONFIG},
{ "VP_GRP1_STREAM_T38_CFG=", VOIP_PARSING_TOKEN_VP_GRP1_STREAM_T38_CONFIG},
{ "CONNECT=", VOIP_PARSING_TOKEN_CONNECT},
{ "DISCONNECT", VOIP_PARSING_TOKEN_DISCONNECT},
{ "STRESS_IP=", VOIP_PARSING_TOKEN_STRESS_IP},
{ "STRESS_CFG=", VOIP_PARSING_TOKEN_STRESS_CONFIG},
{ "PAUSE", VOIP_PARSING_TOKEN_PAUSE},
{ "TITLE=", VOIP_PARSING_TOKEN_TITLE},
{ NULL, 0}
};
static VOIP_PARSING_ENTRY g_aParse_TBX_BOOL [] = {
{ "TRUE", TBX_TRUE},
{ "1", TBX_TRUE},
{ "Y", TBX_TRUE},
{ "FALSE", TBX_FALSE},
{ "0", TBX_FALSE},
{ "N", TBX_FALSE},
{ NULL, 0}
};
static VOIP_PARSING_ENTRY g_aParse_TB640_CLK_DEFINITION [] = {
{ "NONE", TB640_CLK_SRC_NONE},
{ "OSC", TB640_CLK_SRC_OSC},
{ "TRUNK", TB640_CLK_SRC_TRUNK},
{ "NETREF1", TB640_CLK_SRC_NETREF1},
{ "NETREF2", TB640_CLK_SRC_NETREF2},
{ "PTMC1", TB640_CLK_SRC_PTMC1},
{ "PTMC2", TB640_CLK_SRC_PTMC2},
{ "CT8A", TB640_CLK_SRC_CT8A},
{ "CT8B", TB640_CLK_SRC_CT8B},
{ "MBL", TB640_CLK_SRC_MBL},
{ "BITS", TB640_CLK_SRC_BITS},
{ NULL, 0}
};
static VOIP_PARSING_ENTRY g_aParse_TB640_MASTER_CLK [] = {
{ "NONE", TB640_MASTER_CLK_NONE},
{ "CTBUSA", TB640_MASTER_CLK_CTBUSA},
{ "CTBUSB", TB640_MASTER_CLK_CTBUSB},
{ NULL, 0}
};
static VOIP_PARSING_ENTRY g_aParse_TB640_MASTER_ROLE [] = {
{ "PRIMARY", TB640_MASTER_ROLE_PRIMARY},
{ "SECONDARY", TB640_MASTER_ROLE_SECONDARY},
{ NULL, 0}
};
static VOIP_PARSING_ENTRY g_aParse_TB640_NETREF_FREQ_TYPE [] = {
{ "8KHZ", TB640_NETREF_FREQ_8KHZ},
{ "1_5MHZ", TB640_NETREF_FREQ_1_5MHZ},
{ "2MHZ", TB640_NETREF_FREQ_2MHZ},
{ NULL, 0}
};
static VOIP_PARSING_ENTRY g_aParse_TB640_TRUNK_TYPE [] = {
{ "E1", TB640_TRUNK_TYPE_E1},
{ "T1", TB640_TRUNK_TYPE_T1},
{ "J1", TB640_TRUNK_TYPE_J1},
{ NULL, 0}
};
static VOIP_PARSING_ENTRY g_aParse_TB640_E1_FRAMING [] =
{
{ "DFRAME", TB640_E1_FRAMING_DFRAME_NOCRC4},
{ "MFRAME", TB640_E1_FRAMING_MFRAME_CRC4},
{ "AUTO", TB640_E1_FRAMING_AUTO},
{ NULL, 0}
};
static VOIP_PARSING_ENTRY g_aParse_TB640_E1_LINE_ENCODING [] =
{
{ "HDB3", TB640_E1_LINE_ENCODING_HDB3},
{ "AMI", TB640_E1_LINE_ENCODING_AMI},
{ NULL, 0}
};
static VOIP_PARSING_ENTRY g_aParse_TB640_E1_LINE_TERMINATION [] =
{
{ "SHORT", TB640_E1_LINE_TERMINATION_SHORT},
{ "LONG", TB640_E1_LINE_TERMINATION_LONG},
{ NULL, 0}
};
static VOIP_PARSING_ENTRY g_aParse_TB640_T1_FRAMING [] =
{
{ "SF", TB640_T1_FRAMING_SF},
{ "ESF", TB640_T1_FRAMING_ESF},
{ "SLC96", TB640_T1_FRAMING_SLC96},
{ NULL, 0}
};
static VOIP_PARSING_ENTRY g_aParse_TB640_T1_LINE_ENCODING [] =
{
{ "B8ZS", TB640_T1_LINE_ENCODING_B8ZS},
{ "AMI", TB640_T1_LINE_ENCODING_AMI},
{ NULL, 0}
};
static VOIP_PARSING_ENTRY g_aParse_TB640_T1_LINE_TERMINATION [] =
{
{ "SHORT", TB640_T1_LINE_TERMINATION_SHORT},
{ "LONG", TB640_T1_LINE_TERMINATION_LONG},
{ NULL, 0}
};
static VOIP_PARSING_ENTRY g_aParse_TB640_J1_FRAMING [] =
{
{ "SF", TB640_J1_FRAMING_SF},
{ "ESF", TB640_J1_FRAMING_ESF},
{ "SLC96", TB640_J1_FRAMING_SLC96},
{ NULL, 0}
};
static VOIP_PARSING_ENTRY g_aParse_TB640_J1_LINE_ENCODING [] =
{
{ "B8ZS", TB640_J1_LINE_ENCODING_B8ZS},
{ "AMI", TB640_J1_LINE_ENCODING_AMI},
{ NULL, 0}
};
static VOIP_PARSING_ENTRY g_aParse_TB640_J1_LINE_TERMINATION [] =
{
{ "SHORT", TB640_J1_LINE_TERMINATION_SHORT},
{ "LONG", TB640_J1_LINE_TERMINATION_LONG},
{ NULL, 0}
};
static VOIP_PARSING_ENTRY g_aParse_TB640_BERT_PATTERN_TYPE [] =
{
{ "FIXED", TB640_BERT_PATTERN_TYPE_FIXED},
{ "PSEUDO_2_23", TB640_BERT_PATTERN_TYPE_PSEUDO_2_23},
{ "PSEUDO_2_23_INVERTED", TB640_BERT_PATTERN_TYPE_PSEUDO_2_23_INVERTED},
{ NULL, 0}
};
static VOIP_PARSING_ENTRY g_aParse_VOIP_RESOURCE_TYPE [] =
{
{ "TRUNK", VOIP_RESOURCE_TYPE_TRUNK},
{ "MBL", VOIP_RESOURCE_TYPE_MBL_PORT},
{ "PROMPT", VOIP_RESOURCE_TYPE_PROMPT},
{ "FILE", VOIP_RESOURCE_TYPE_RAW_DATA_FILE},
{ "BERT", VOIP_RESOURCE_TYPE_BERT},
{ "STREAM", VOIP_RESOURCE_TYPE_STREAM_SOCKET},
{ NULL, 0}
};
//static VOIP_PARSING_ENTRY g_aParse_TB640_RESOURCE_CLASS [] =
//{
// { "TRUNK", TB640_RESOURCE_CLASS_TRUNK},
// { "MBL", TB640_RESOURCE_CLASS_MBL_PORT},
// { "PROMPT", TB640_RESOURCE_CLASS_TDM_DSP},
// { "BERT", TB640_RESOURCE_CLASS_BERT},
// { NULL, 0}
//};
//
static VOIP_PARSING_ENTRY g_aParse_TBX_STREAM_PACKET_TYPE [] =
{
{ "G711", TBX_STREAM_PACKET_TYPE_PCMU},
{ "G711A", TBX_STREAM_PACKET_TYPE_PCMA},
{ "G723", TBX_STREAM_PACKET_TYPE_G723},
{ "G726-16", TBX_STREAM_PACKET_TYPE_G726_16},
{ "G726-24", TBX_STREAM_PACKET_TYPE_G726_24},
{ "G726-32", TBX_STREAM_PACKET_TYPE_G726_32},
{ "G726-40", TBX_STREAM_PACKET_TYPE_G726_40},
{ "G728", TBX_STREAM_PACKET_TYPE_G728},
{ "G729AB", TBX_STREAM_PACKET_TYPE_G729AB},
{ "G729E", TBX_STREAM_PACKET_TYPE_G729E},
{ "AMR", TBX_STREAM_PACKET_TYPE_AMR},
{ "EFR", TBX_STREAM_PACKET_TYPE_EFR},
{ "G711-FAX", TBX_STREAM_PACKET_TYPE_PASSTHRU_ULAW},
{ "G711A-FAX", TBX_STREAM_PACKET_TYPE_PASSTHRU_ALAW},
{ "CLEAR", TBX_STREAM_PACKET_TYPE_CLEAR_CHANNEL},
{ "SMV", TBX_STREAM_PACKET_TYPE_SMV},
{ "EVRC", TBX_STREAM_PACKET_TYPE_EVRC},
{ "QCELP8", TBX_STREAM_PACKET_TYPE_QCELP8},
{ "QCELP13", TBX_STREAM_PACKET_TYPE_QCELP13},
{ "ILBC13", TBX_STREAM_PACKET_TYPE_ILBC_13K},
{ "ILBC15", TBX_STREAM_PACKET_TYPE_ILBC_15K},
{ "FR", TBX_STREAM_PACKET_TYPE_FR},
{ "T38", TBX_STREAM_PACKET_TYPE_IFP},
{ NULL, 0}
};
static VOIP_PARSING_ENTRY g_aParse_TBX_STREAM_PACKET_DURATION [] =
{
{ "5", TBX_STREAM_PACKET_DURATION_5MS},
{ "10", TBX_STREAM_PACKET_DURATION_10MS},
{ "20", TBX_STREAM_PACKET_DURATION_20MS},
{ "30", TBX_STREAM_PACKET_DURATION_30MS},
{ "40", TBX_STREAM_PACKET_DURATION_40MS},
{ "60", TBX_STREAM_PACKET_DURATION_60MS},
{ "80", TBX_STREAM_PACKET_DURATION_80MS},
{ "160", TBX_STREAM_PACKET_DURATION_160MS},
{ NULL, 0}
};
static VOIP_PARSING_ENTRY g_aParse_TB640_VP_T38_PACKET_LOSS_CONCEALMENT [] =
{
{ "NONE", TB640_VP_T38_PACKET_LOSS_CONCEALMENT_NONE},
{ "WHITE_LINE", TB640_VP_T38_PACKET_LOSS_CONCEALMENT_WHITE_LINE},
{ "LAST_GOOD_LINE", TB640_VP_T38_PACKET_LOSS_CONCEALMENT_LAST_GOOD_LINE},
{ NULL, 0}
};
static VOIP_PARSING_ENTRY g_aParse_TB640_VP_FAX_SPEED_LIMIT [] =
{
{ "NONE", TB640_VP_FAX_SPEED_LIMIT_NONE},
{ "2400", TB640_VP_FAX_SPEED_LIMIT_2400_BPS},
{ "4800", TB640_VP_FAX_SPEED_LIMIT_4800_BPS},
{ "7200", TB640_VP_FAX_SPEED_LIMIT_7200_BPS},
{ "9600", TB640_VP_FAX_SPEED_LIMIT_9600_BPS},
{ "12000", TB640_VP_FAX_SPEED_LIMIT_12000_BPS},
{ "14400", TB640_VP_FAX_SPEED_LIMIT_14400_BPS},
{ NULL, 0}
};
static VOIP_PARSING_ENTRY g_aParse_TB640_VP_T38_ERROR_RECOVERY_TYPE [] =
{
{ "REDUNDANCY", TB640_VP_T38_ERROR_RECOVERY_TYPE_REDUNDANCY},
{ "FEC", TB640_VP_T38_ERROR_RECOVERY_TYPE_FEC},
{ NULL, 0}
};
static VOIP_PARSING_ENTRY g_aParse_TB640_VP_T38_TCF_PROCEDURE [] =
{
{ "1", TB640_VP_T38_TCF_PROCEDURE_1},
{ "2", TB640_VP_T38_TCF_PROCEDURE_2},
{ NULL, 0}
};
static VOIP_PARSING_ENTRY g_aParse_VOIP_RAW_DATAFILE_DIRECTION [] =
{
{ "RECORD", VOIP_RAW_DATAFILE_DIRECTION_REC},
{ "PLAY", VOIP_RAW_DATAFILE_DIRECTION_PLAY},
{ "REC_PLAY", VOIP_RAW_DATAFILE_DIRECTION_REC_PLAY},
{ NULL, 0}
};
/*--------------------------------------------------------------------------------------------------------------------------------
| Macros
*------------------------------------------------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------------------------------------------------
| Function Prototypes
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -