📄 voip_cli.h
字号:
/*--------------------------------------------------------------------------------------------------------------------------------
|
| 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 + -