⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 voip_parse.c

📁 telcobridges voip develop
💻 C
📖 第 1 页 / 共 5 页
字号:
/*--------------------------------------------------------------------------------------------------------------------------------
 |
 |	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 + -