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

📄 voip_cli.h

📁 telcobridges voip develop
💻 H
📖 第 1 页 / 共 2 页
字号:
/*--------------------------------------------------------------------------------------------------------------------------------
 |
 |	Project:    	VOIP sample
 |
 |	Filename:   	voip_cli.h
 |
 |	Copyright:  	TelcoBridges 2002-2004, All Rights Reserved
 |
 |	Description:	This file contains definitions and types used by the CLI functions.
 |
 |	Notes:      	Tabs = 4
 |
 *-------------------------------------------------------------------------------------------------------------------------------
 |
 |	Revision:   	$Revision: 1.52 $
 |
 *------------------------------------------------------------------------------------------------------------------------------*/


/*--------------------------------------------------------------------------------------------------------------------------------
 |  Define header file
 *------------------------------------------------------------------------------------------------------------------------------*/
#ifndef __VOIP_CLI_H__
#define __VOIP_CLI_H__


/*--------------------------------------------------------------------------------------------------------------------------------
 |  C++ support
 *------------------------------------------------------------------------------------------------------------------------------*/
#ifdef __cplusplus
extern "C"
{
#endif /* __cplusplus */


/*--------------------------------------------------------------------------------------------------------------------------------
 |  Global variables
 *------------------------------------------------------------------------------------------------------------------------------*/


/*--------------------------------------------------------------------------------------------------------------------------------
 |  Defines
 *------------------------------------------------------------------------------------------------------------------------------*/

/* Configuration of the command-line interface formatting */
#define VOIP_CLI_SCREEN_WIDTH_MAX				512	/* Maximum display command-line length */
#define VOIP_CLI_SCREEN_HEIGHT_MAX				128	/* Maximum display command-line length */
#define VOIP_CLI_SCREEN_WIDTH_MIN				128	/* Min display command-line length */
#define VOIP_CLI_SCREEN_HEIGHT_MIN				40	/* Min display command-line length */
#define VOIP_CLI_PROMPT_NB_LINES				13
#define VOIP_CLI_NB_LOG_LINES_SCROLLBACK		1000
#define VOIP_CLI_MIN_DELAY_BETWEEN_REFRESH_MS	TBX_CLI_TOOLS_CLI_MIN_DELAY_BETWEEN_REFRESH_MS
#define VOIP_CLI_MAX_DELAY_BETWEEN_REFRESH_MS	TBX_CLI_TOOLS_CLI_MAX_DELAY_BETWEEN_REFRESH_MS
#define VOIP_CLI_SCROLL_SPEED					2
#define VOIP_CLI_NB_LINES_IN_USER_INPUT			11
#define VOIP_CLI_STRESS_TEST_MAX_NB_LINES		15

#define VOIP_CLI_RAW_DATA_FILE_DISP_MAX_LINES	32	/* Number of lines in the raw data file display */

/* Available menu options */
#define VOIP_CLI_MENU_KEY_QUIT						'q'
#define VOIP_CLI_MENU_KEY_NEED_CLS					' '
#define VOIP_CLI_MENU_KEY_ADJUST_TRACE_LEVEL		't'
#define VOIP_CLI_MENU_KEY_RELOAD_CONFIG				'r'
#define VOIP_CLI_MENU_KEY_ALLOCATE_CONNECTION		'a'
#define VOIP_CLI_MENU_KEY_CLEAR_CONNECTION			'c'
#define VOIP_CLI_MENU_KEY_STRESS_TEST				's'
#define VOIP_CLI_MENU_KEY_RESET_STRESS_TEST_STATS	'f'
#define VOIP_CLI_MENU_KEY_DEMO						'd'
#define VOIP_CLI_MENU_KEY_NEXT_DEMO_STEP			'n'
#define VOIP_CLI_MENU_KEY_SELECT_PAGE				'p'
#define VOIP_CLI_MENU_KEY_SELECT_STREAM				's'
#define VOIP_CLI_MENU_KEY_RESET_BERT_STATS			'r'

/* General trunk status character */
#define VOIP_CLI_TRUNK_RES_STATUS_DISABLED				FCYAN	"."
#define VOIP_CLI_TRUNK_RES_STATUS_ENABLED				FYELLOW	"+"
#define VOIP_CLI_TRUNK_RES_STATUS_ALLOCATED				FYELLOW	"*"
#define VOIP_CLI_TRUNK_RES_STATUS_RESERVED				FYELLOW	"#"
#define VOIP_CLI_TRUNK_RES_STATUS_USED					FYELLOW	"-"
#define VOIP_CLI_TRUNK_RES_STATUS_UNKNOWN				FRED	"?"

/* Base interface trunk status characters */
#define VOIP_CLI_TRUNK_RES_STATUS_BASE_IF_G711			FGREEN "a"
#define VOIP_CLI_TRUNK_RES_STATUS_BASE_IF_G711A			FGREEN "b"

/* VOIP interface trunk status characters */
#define VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_G711			FGREEN "A"
#define VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_G711A			FGREEN "B"
#define VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_G723			FGREEN "C"
#define VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_G726_16		FGREEN "D"
#define VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_G726_24		FGREEN "E"
#define VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_G726_32		FGREEN "F"
#define VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_G726_40		FGREEN "G"
#define VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_G728			FGREEN "H"
#define VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_G729AB		FGREEN "I"
#define VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_G729E			FGREEN "J"
#define VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_AMR			FGREEN "K"
#define VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_EFR			FGREEN "L"
#define VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_PASSTHRU_ULAW	FGREEN "M"
#define VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_PASSTHRU_ALAW	FGREEN "N"
#define VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_SMV			FGREEN "O"
#define VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_EVRC			FGREEN "P"
#define VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_QCELP8		FGREEN "Q"
#define VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_QCELP13		FGREEN "R"
#define VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_CLEAR_CHANNEL	FGREEN "S"
#define VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_IFP			FGREEN "T"
#define VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_ILBC13		FGREEN "U"
#define VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_ILBC15		FGREEN "V"
#define VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_FR			FGREEN "W"

/* Packet type identification string */
#define VOIP_CLI_PACKET_TYPE_STR_BASE_IF_G711			"G711-ULAW / DSP"
#define VOIP_CLI_PACKET_TYPE_STR_BASE_IF_G711A			"G711-ALAW / DSP"
#define VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_G711			"G711-ULAW"
#define VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_G711A			"G711-ALAW"
#define VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_G723			"G723"
#define VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_G726_16		"G726-16"
#define VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_G726_24		"G726-24"
#define VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_G726_32		"G726-32"
#define VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_G726_40		"G726-40"
#define VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_G728			"G728"
#define VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_G729AB			"G729AB"
#define VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_G729E			"G729E"
#define VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_AMR			"AMR"
#define VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_EFR			"EFR"
#define VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_G711_FAX		"G711-ULAW / FAX"
#define VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_G711A_FAX		"G711-ALAW / FAX"
#define VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_CLEAR_CHANNEL	"No codec"
#define VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_SMV			"SMV"
#define VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_EVRC			"EVRC"
#define VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_QCELP8			"QCELP8"
#define VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_QCELP13		"QCELP13"
#define VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_ILBC13			"ILBC13"
#define VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_ILBC15			"ILBC15"
#define VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_FR				"FR"
#define VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_IFP			"T38"
#define VOIP_CLI_PACKET_TYPE_STR_UNKNOWN				"Unknown"

/* Simulated extended ASCII for compatibility between OSes */
#define VOIP_CLI_KEY_FIRST				0x1000
#define VOIP_CLI_KEY_UP_ARROW_KEY		0x1001
#define VOIP_CLI_KEY_DOWN_ARROW_KEY		0x1002
#define VOIP_CLI_KEY_LEFT_ARROW_KEY		0x1003
#define VOIP_CLI_KEY_RIGHT_ARROW_KEY	0x1004
#define VOIP_CLI_KEY_PAGE_UP_KEY		0x1005
#define VOIP_CLI_KEY_PAGE_DOWN_KEY		0x1006
#define VOIP_CLI_KEY_HOME_KEY			0x1007
#define VOIP_CLI_KEY_END_KEY			0x1008
#define VOIP_CLI_KEY_ESCAPE				0x1009


/*--------------------------------------------------------------------------------------------------------------------------------
 |  Types
 *------------------------------------------------------------------------------------------------------------------------------*/

/* Forward declaration */
typedef struct _VOIP_ADAPTER_CONTEXT	VOIP_ADAPTER_CONTEXT, *PVOIP_ADAPTER_CONTEXT;
typedef struct _VOIP_CONNECTION_PARAMS	VOIP_CONNECTION_PARAMS, *PVOIP_CONNECTION_PARAMS;

/* Display type identifiers */
typedef enum _VOIP_CLI_DISPLAY_TYPE
{
	VOIP_CLI_DISPLAY_TYPE_MAIN										= 0,
	VOIP_CLI_DISPLAY_TYPE_CONNECTION_INFO							= 1,
	VOIP_CLI_DISPLAY_TYPE_STREAM_INFO								= 2,
	VOIP_CLI_DISPLAY_TYPE_TRUNK_INFO								= 3,
	VOIP_CLI_DISPLAY_TYPE_PROMPT_INFO								= 4,
	VOIP_CLI_DISPLAY_TYPE_RAW_DATA_FILE_INFO						= 5,
	VOIP_CLI_DISPLAY_TYPE_BERT_INFO									= 6,
	VOIP_CLI_DISPLAY_TYPE_TRUNK_RES_MAP								= 7,
	VOIP_CLI_DISPLAY_TYPE_TRUNK_RES_INV_MAP							= 8,
	VOIP_CLI_DISPLAY_TYPE_PACKET_TYPE_GRAPH							= 9,
	VOIP_CLI_DISPLAY_TYPE_TRUNK_RES_MAP_AND_PACKET_TYPE_GRAPH		= 10,
	VOIP_CLI_DISPLAY_TYPE_TRUNK_RES_INV_MAP_AND_PACKET_TYPE_GRAPH	= 11,

	VOIP_CLI_DISPLAY_TYPE_MAX_COUNT									= 12,
	VOIP_CLI_DISPLAY_TYPE_UNKNOWN									= -1

} VOIP_CLI_DISPLAY_TYPE, *PVOIP_CLI_DISPLAY_TYPE;

/* Trunk resource status */
typedef struct _VOIP_CLI_TRUNK_RES_STATUS
{
	TBX_STREAM_PACKET_TYPE		PacketType;
	PTBX_CHAR					pszStatus;

} VOIP_CLI_TRUNK_RES_STATUS, *PVOIP_CLI_TRUNK_RES_STATUS;

/* Packet type statistics */
typedef struct _VOIP_CLI_PACKET_TYPE_STATUS
{
	TBX_STREAM_PACKET_TYPE		PacketType;
	PTBX_CHAR					pszPacketTypeStr;
	TBX_UINT32					un32Count;

} VOIP_CLI_PACKET_TYPE_STATUS, *PVOIP_CLI_PACKET_TYPE_STATUS;

/* Command type identifiers */
typedef enum _VOIP_CLI_CMD_TYPE
{
	VOIP_CLI_CMD_TYPE_QUIT						= 1,	/* Quit application */
	VOIP_CLI_CMD_TYPE_LOG_FIND					= 2,	/* Find a string int the log */
	VOIP_CLI_CMD_TYPE_RELOAD_CONFIG				= 3,	/* Choosing configuration file name */
	VOIP_CLI_CMD_TYPE_SET_TRACE_LEVEL			= 4,	/* Choosing trace level */
	VOIP_CLI_CMD_TYPE_START_STRESS_TEST			= 5,	/* Start a stress test */
	VOIP_CLI_CMD_TYPE_STOP_STRESS_TEST			= 6,	/* Stop a stress test */
	VOIP_CLI_CMD_TYPE_RESET_STRESS_TEST_STATS	= 7,	/* Reset stress test stats */
	VOIP_CLI_CMD_TYPE_START_DEMO				= 8,	/* Start a demo */
	VOIP_CLI_CMD_TYPE_STOP_DEMO					= 9,	/* Stop a demo */
	VOIP_CLI_CMD_TYPE_NEXT_DEMO_STEP			= 10,	/* Next demo step */
	VOIP_CLI_CMD_TYPE_ALLOCATE_CONNECTION		= 11,	/* Connect resources */
	VOIP_CLI_CMD_TYPE_CLEAR_CONNECTION			= 12,	/* Disconnect resources */
	VOIP_CLI_CMD_TYPE_SELECT_PAGE				= 13,	/* Select page number */
	VOIP_CLI_CMD_TYPE_SELECT_STREAM				= 14,	/* Select stream */

	VOIP_CLI_CMD_TYPE_NONE						= 0		/* No command being entered now */

} VOIP_CLI_CMD_TYPE, *PVOIP_CLI_CMD_TYPE;

/* Structure that contains information used when user enters commands */
typedef struct _VOIP_CLI_CMD
{
	/* Type of command actually being entered */
	VOIP_CLI_CMD_TYPE	CmdType;
	TBX_UINT32			un32SubCommand;
	TBX_BOOL			fUserEnteredValue;
	TBX_BOOL			fEnteredValueValid;
	TBX_UINT32			un32EnteredValueTimestamp;

	/* Prompt to display to user */
	TBX_CHAR			aszPrompt[ VOIP_CLI_NB_LINES_IN_USER_INPUT ][ VOIP_CLI_SCREEN_WIDTH_MAX ];
	TBX_CHAR			aszUserInput[ VOIP_CLI_NB_LINES_IN_USER_INPUT ][ VOIP_CLI_SCREEN_WIDTH_MAX ];

} VOIP_CLI_CMD, *PVOIP_CLI_CMD;

/* Context of the CLI interface */
typedef struct _VOIP_CLI_CONTEXT
{
	TBX_CLI_TOOLS_HANDLE			hCliTools;	/* Handle of the command-line tool library */
	TBX_UINT32						un32CheckpointCounter;
	TBX_BOOL						fCliToolsSafe;		/* Tells when it's safe to handle TBX CLI Tools callbacks */

	/* Adapter selection */
	TBX_UINT32						un32AdaptersCount;
	TBX_UINT32						un32AdapterIndex;
	PVOIP_ADAPTER_CONTEXT			pActiveAdapterContext;

	/* Display selection */
	TBX_UINT32						un32DisplayCount;
	TBX_UINT32						un32DisplayIndex;
	VOIP_CLI_DISPLAY_TYPE			aDisplay[ VOIP_CLI_DISPLAY_TYPE_MAX_COUNT ];

	/* Page selection */
	TBX_UINT32						un32PageCount;
	TBX_UINT32						un32PageIndex;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -