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

📄 voip_cli.c

📁 telcobridges voip develop
💻 C
📖 第 1 页 / 共 5 页
字号:
/*--------------------------------------------------------------------------------------------------------------------------------
 |
 |	Project:    	VOIP sample
 |
 |	Filename:   	voip_cli.c
 |
 |	Copyright:  	TelcoBridges 2002-2004, All Rights Reserved
 |
 |	Description:	This file contains the client interface functions
 |
 |	Notes:      	Tabs = 4
 |
 *-------------------------------------------------------------------------------------------------------------------------------
 |
 |	Revision:   	$Revision: 1.71 $
 |
 *------------------------------------------------------------------------------------------------------------------------------*/

/*--------------------------------------------------------------------------------------------------------------------------------
 |  Includes
 *------------------------------------------------------------------------------------------------------------------------------*/

#include "voip_includes.h"


/*--------------------------------------------------------------------------------------------------------------------------------
 |  Forward declarations
 *------------------------------------------------------------------------------------------------------------------------------*/


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

#ifdef WIN32
#define vsnprintf _vsnprintf
#define snprintf _snprintf
#endif

/* Enable/disable demo mode */
/*#define VOIP_DEMO_MODE*/


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


/*--------------------------------------------------------------------------------------------------------------------------------
 |  Versioning
 *------------------------------------------------------------------------------------------------------------------------------*/

#ifdef WIN32
/*@unused@*/ static char g_szFileVersion [] = "$Revision: 1.71 $";
#endif


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

extern VOIP_DEFAULT_PROMPTS		g_DefaultPrompts;

#ifdef VOIP_DEMO_MODE

/* Trunk resource status legend string table */
static PTBX_CHAR g_aszTrunkResStatusLegend[] =
{
	FWHITE "  (" VOIP_CLI_TRUNK_RES_STATUS_DISABLED					FWHITE ") Disabled"													DEFAULT_COLOR,
	FWHITE "  (" VOIP_CLI_TRUNK_RES_STATUS_ENABLED					FWHITE ") Enabled"													DEFAULT_COLOR,
	FWHITE "  (" VOIP_CLI_TRUNK_RES_STATUS_ALLOCATED				FWHITE ") Allocated"												DEFAULT_COLOR,
	FWHITE "  (" VOIP_CLI_TRUNK_RES_STATUS_RESERVED					FWHITE ") Reserved"													DEFAULT_COLOR,
	FWHITE "  (" VOIP_CLI_TRUNK_RES_STATUS_USED						FWHITE ") Used"														DEFAULT_COLOR,
	FWHITE "  (" VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_G711				FWHITE ") " VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_G711		" (128ms)"	DEFAULT_COLOR,
	FWHITE "  (" VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_G711A			FWHITE ") " VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_G711A		" (128ms)"	DEFAULT_COLOR,
	FWHITE "  (" VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_G723				FWHITE ") " VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_G723		" (128ms)"	DEFAULT_COLOR,
	FWHITE "  (" VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_G726_16			FWHITE ") " VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_G726_16	" (128ms)"	DEFAULT_COLOR,
	FWHITE "  (" VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_G726_24			FWHITE ") " VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_G726_24	" (128ms)"	DEFAULT_COLOR,
	FWHITE "  (" VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_G726_32			FWHITE ") " VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_G726_32	" (128ms)"	DEFAULT_COLOR,
	FWHITE "  (" VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_G726_40			FWHITE ") " VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_G726_40	" (128ms)"	DEFAULT_COLOR,
	FWHITE "  (" VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_G728				FWHITE ") " VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_G728		" (128ms)"	DEFAULT_COLOR,
	FWHITE "  (" VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_G729AB			FWHITE ") " VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_G729AB		" (128ms)"	DEFAULT_COLOR,
	FWHITE "  (" VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_G729E			FWHITE ") " VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_G729E		" (128ms)"	DEFAULT_COLOR,
	FWHITE "  (" VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_IFP				FWHITE ") " VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_IFP					DEFAULT_COLOR,
	FWHITE "  (" VOIP_CLI_TRUNK_RES_STATUS_UNKNOWN					FWHITE ") " VOIP_CLI_PACKET_TYPE_STR_UNKNOWN						DEFAULT_COLOR,
	NULL
};

#else

/* Trunk resource status legend string table */
static PTBX_CHAR g_aszTrunkResStatusLegend[] =
{
	FWHITE "  (" VOIP_CLI_TRUNK_RES_STATUS_DISABLED					FWHITE ") Disabled"											DEFAULT_COLOR,
	FWHITE "  (" VOIP_CLI_TRUNK_RES_STATUS_ENABLED					FWHITE ") Enabled"											DEFAULT_COLOR,
	FWHITE "  (" VOIP_CLI_TRUNK_RES_STATUS_ALLOCATED				FWHITE ") Allocated"										DEFAULT_COLOR,
	FWHITE "  (" VOIP_CLI_TRUNK_RES_STATUS_RESERVED					FWHITE ") Reserved"											DEFAULT_COLOR,
	FWHITE "  (" VOIP_CLI_TRUNK_RES_STATUS_USED						FWHITE ") Used"												DEFAULT_COLOR,
	FWHITE "  (" VOIP_CLI_TRUNK_RES_STATUS_BASE_IF_G711				FWHITE ") "	VOIP_CLI_PACKET_TYPE_STR_BASE_IF_G711			DEFAULT_COLOR,
	FWHITE "  (" VOIP_CLI_TRUNK_RES_STATUS_BASE_IF_G711A			FWHITE ") " VOIP_CLI_PACKET_TYPE_STR_BASE_IF_G711A			DEFAULT_COLOR,
	FWHITE "  (" VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_G711				FWHITE ") " VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_G711			DEFAULT_COLOR,
	FWHITE "  (" VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_G711A			FWHITE ") " VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_G711A			DEFAULT_COLOR,
	FWHITE "  (" VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_G723				FWHITE ") " VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_G723			DEFAULT_COLOR,
	FWHITE "  (" VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_G726_16			FWHITE ") " VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_G726_16		DEFAULT_COLOR,
	FWHITE "  (" VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_G726_24			FWHITE ") " VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_G726_24		DEFAULT_COLOR,
	FWHITE "  (" VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_G726_32			FWHITE ") " VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_G726_32		DEFAULT_COLOR,
	FWHITE "  (" VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_G726_40			FWHITE ") " VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_G726_40		DEFAULT_COLOR,
	FWHITE "  (" VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_G728				FWHITE ") " VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_G728			DEFAULT_COLOR,
	FWHITE "  (" VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_G729AB			FWHITE ") " VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_G729AB			DEFAULT_COLOR,
	FWHITE "  (" VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_G729E			FWHITE ") " VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_G729E			DEFAULT_COLOR,
	FWHITE "  (" VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_AMR				FWHITE ") " VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_AMR			DEFAULT_COLOR,
	FWHITE "  (" VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_EFR				FWHITE ") " VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_EFR			DEFAULT_COLOR,
	FWHITE "  (" VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_PASSTHRU_ULAW	FWHITE ") " VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_G711_FAX		DEFAULT_COLOR,
	FWHITE "  (" VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_PASSTHRU_ALAW	FWHITE ") " VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_G711A_FAX		DEFAULT_COLOR,
	FWHITE "  (" VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_CLEAR_CHANNEL	FWHITE ") " VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_CLEAR_CHANNEL	DEFAULT_COLOR,
	FWHITE "  (" VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_SMV				FWHITE ") " VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_SMV			DEFAULT_COLOR,
	FWHITE "  (" VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_EVRC				FWHITE ") " VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_EVRC			DEFAULT_COLOR,
	FWHITE "  (" VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_QCELP8			FWHITE ") " VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_QCELP8			DEFAULT_COLOR,
	FWHITE "  (" VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_QCELP13			FWHITE ") " VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_QCELP13		DEFAULT_COLOR,
	FWHITE "  (" VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_IFP				FWHITE ") " VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_IFP			DEFAULT_COLOR,
	FWHITE "  (" VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_FR				FWHITE ") " VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_FR				DEFAULT_COLOR,
	FWHITE "  (" VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_ILBC13			FWHITE ") " VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_ILBC13			DEFAULT_COLOR,
	FWHITE "  (" VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_ILBC15			FWHITE ") " VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_ILBC15			DEFAULT_COLOR,
	FWHITE "  (" VOIP_CLI_TRUNK_RES_STATUS_UNKNOWN					FWHITE ") " VOIP_CLI_PACKET_TYPE_STR_UNKNOWN				DEFAULT_COLOR,
	NULL
};

#endif

/* Trunk resource status lookup table for base interface stream packet type */
static VOIP_CLI_TRUNK_RES_STATUS g_aBaseIfPacketTypeToTrunkResStatus[] =
{
	{TBX_STREAM_PACKET_TYPE_PCMU,			VOIP_CLI_TRUNK_RES_STATUS_BASE_IF_G711},
	{TBX_STREAM_PACKET_TYPE_PCMA,			VOIP_CLI_TRUNK_RES_STATUS_BASE_IF_G711A},
	{TBX_STREAM_PACKET_TYPE_UNKNOWN,		VOIP_CLI_TRUNK_RES_STATUS_UNKNOWN}
};

/* Trunk resource status lookup table for voip interface stream packet type */
static VOIP_CLI_TRUNK_RES_STATUS g_aVoipIfPacketTypeToTrunkResStatus[] =
{
	{TBX_STREAM_PACKET_TYPE_PCMU,			VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_G711},
	{TBX_STREAM_PACKET_TYPE_PCMA,			VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_G711A},
	{TBX_STREAM_PACKET_TYPE_G723,			VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_G723},
	{TBX_STREAM_PACKET_TYPE_G726_16,		VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_G726_16},
	{TBX_STREAM_PACKET_TYPE_G726_24,		VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_G726_24},
	{TBX_STREAM_PACKET_TYPE_G726_32,		VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_G726_32},
	{TBX_STREAM_PACKET_TYPE_G726_40,		VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_G726_40},
	{TBX_STREAM_PACKET_TYPE_G728,			VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_G728},
	{TBX_STREAM_PACKET_TYPE_G729AB,			VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_G729AB},
	{TBX_STREAM_PACKET_TYPE_G729E,			VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_G729E},
	{TBX_STREAM_PACKET_TYPE_AMR,			VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_AMR},
	{TBX_STREAM_PACKET_TYPE_EFR,			VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_EFR},
	{TBX_STREAM_PACKET_TYPE_PASSTHRU_ULAW,	VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_PASSTHRU_ULAW},
	{TBX_STREAM_PACKET_TYPE_PASSTHRU_ALAW,	VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_PASSTHRU_ALAW},
	{TBX_STREAM_PACKET_TYPE_CLEAR_CHANNEL,	VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_CLEAR_CHANNEL},
	{TBX_STREAM_PACKET_TYPE_SMV,			VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_SMV},
	{TBX_STREAM_PACKET_TYPE_EVRC,			VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_EVRC},
	{TBX_STREAM_PACKET_TYPE_QCELP8,			VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_QCELP8},
	{TBX_STREAM_PACKET_TYPE_QCELP13,		VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_QCELP13},
	{TBX_STREAM_PACKET_TYPE_ILBC_13K,		VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_ILBC13},
	{TBX_STREAM_PACKET_TYPE_ILBC_15K,		VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_ILBC15},
	{TBX_STREAM_PACKET_TYPE_FR		,		VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_FR},
	{TBX_STREAM_PACKET_TYPE_IFP,			VOIP_CLI_TRUNK_RES_STATUS_VOIP_IF_IFP},
	{TBX_STREAM_PACKET_TYPE_UNKNOWN,		VOIP_CLI_TRUNK_RES_STATUS_UNKNOWN}
};

/* Packet type statistics */
static VOIP_CLI_PACKET_TYPE_STATUS g_aszBaseIfPacketTypeStatus[] =
{
#ifndef VOIP_DEMO_MODE	/* Removed in demo mode */
	{TBX_STREAM_PACKET_TYPE_PCMU,			VOIP_CLI_PACKET_TYPE_STR_BASE_IF_G711,	0},
	{TBX_STREAM_PACKET_TYPE_PCMA,			VOIP_CLI_PACKET_TYPE_STR_BASE_IF_G711A,	0},
#endif
	{TBX_STREAM_PACKET_TYPE_UNKNOWN,		VOIP_CLI_PACKET_TYPE_STR_UNKNOWN,		0}
};

/* Packet type statistics */
static VOIP_CLI_PACKET_TYPE_STATUS g_aszVoipIfPacketTypeStatus[] =
{
	{TBX_STREAM_PACKET_TYPE_PCMU,			VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_G711,			0},
	{TBX_STREAM_PACKET_TYPE_PCMA,			VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_G711A,			0},
	{TBX_STREAM_PACKET_TYPE_G723,			VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_G723,			0},
	{TBX_STREAM_PACKET_TYPE_G726_16,		VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_G726_16,		0},
	{TBX_STREAM_PACKET_TYPE_G726_24,		VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_G726_24,		0},
	{TBX_STREAM_PACKET_TYPE_G726_32,		VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_G726_32,		0},
	{TBX_STREAM_PACKET_TYPE_G726_40,		VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_G726_40,		0},
	{TBX_STREAM_PACKET_TYPE_G728,			VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_G728,			0},
	{TBX_STREAM_PACKET_TYPE_G729AB,			VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_G729AB,		0},
	{TBX_STREAM_PACKET_TYPE_G729E,			VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_G729E,			0},
#ifndef VOIP_DEMO_MODE /* Removed in demo mode */
	{TBX_STREAM_PACKET_TYPE_AMR,			VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_AMR,			0},
	{TBX_STREAM_PACKET_TYPE_EFR,			VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_EFR,			0},
	{TBX_STREAM_PACKET_TYPE_PASSTHRU_ULAW,	VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_G711_FAX,		0},
	{TBX_STREAM_PACKET_TYPE_PASSTHRU_ALAW,	VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_G711A_FAX,		0},
	{TBX_STREAM_PACKET_TYPE_CLEAR_CHANNEL,	VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_CLEAR_CHANNEL,	0},
	{TBX_STREAM_PACKET_TYPE_SMV,			VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_SMV,			0},
	{TBX_STREAM_PACKET_TYPE_EVRC,			VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_EVRC,			0},
	{TBX_STREAM_PACKET_TYPE_QCELP8,			VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_QCELP8,		0},
	{TBX_STREAM_PACKET_TYPE_QCELP13,		VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_QCELP13,		0},
	{TBX_STREAM_PACKET_TYPE_ILBC_13K,		VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_ILBC13,		0},
	{TBX_STREAM_PACKET_TYPE_ILBC_15K,		VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_ILBC15,		0},
	{TBX_STREAM_PACKET_TYPE_FR,				VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_FR,			0},
#endif
	{TBX_STREAM_PACKET_TYPE_IFP,			VOIP_CLI_PACKET_TYPE_STR_VOIP_IF_IFP,			0},
	{TBX_STREAM_PACKET_TYPE_UNKNOWN,		VOIP_CLI_PACKET_TYPE_STR_UNKNOWN,				0}
};


/*--------------------------------------------------------------------------------------------------------------------------------
 |  Macros
 *------------------------------------------------------------------------------------------------------------------------------*/


/*--------------------------------------------------------------------------------------------------------------------------------
 |  Function Prototypes
 *------------------------------------------------------------------------------------------------------------------------------*/


/*--------------------------------------------------------------------------------------------------------------------------------
 |  Implementation
 *------------------------------------------------------------------------------------------------------------------------------*/

/*--------------------------------------------------------------------------------------------------------------------------------
 |
 |  VoipCliDisplay		:	Callback, called by the CLI Tools, to display the menu.
 |
 |  in_hCliTools	:	Handle of the TBX CLI Tool library
 |  in_pContext		:	Context of this function
 |
 |  Note			:	~
 |
 |  Return			:	~
 |
 *------------------------------------------------------------------------------------------------------------------------------*/
TBX_VOID VoipCliDisplay(
	IN		TBX_CLI_TOOLS_HANDLE	in_hCliTools,
	IN		PTBX_VOID				in_pContext)
{
	PVOIP_CLI_CONTEXT		pCliContext;
	PVOIP_ADAPTER_CONTEXT	pAdapterContext;

	/*---------------------------------------------------------------------------------------------------------------------------
	 |  Code section
	 *--------------------------------------------------------------------------------------------------------------------------*/
	CODE
	{
		TBX_SEM_GET (g_pContext->hThreadSem, TBX_SEM_WAIT_FOREVER);

		/* Initialize local variables */
		pCliContext		= &g_pContext->CliContext;
		pAdapterContext	= pCliContext->pActiveAdapterContext;

		(TBX_VOID)in_hCliTools;
		(TBX_VOID)in_pContext;

		if( pAdapterContext != NULL )
		{
			/* Start filling display buffer with the status display buffer */
			VoipCliDisplayStatus();

			if( pCliContext->un32DisplayCount > 0 )
			{
				if( pAdapterContext->Demo.fActive == TBX_TRUE )
				{
					/* Display demo information */
					VoipCliDisplayDemoInfo();
				}
				else if( pAdapterContext->StressTest.fActive == TBX_TRUE )
				{
					TBX_CHAR	aszTmpBuffer[ VOIP_CLI_STRESS_TEST_MAX_NB_LINES ][ TBX_CLI_TOOLS_CLI_SCREEN_WIDTH_MAX ];
					TBX_UINT32	un32NbLines;
					TBX_UINT32	un32Line;

					/*
					 * Display stress test stats begin
					 */
					TbxCliToolsPrint( pCliContext->hCliTools, "\n" );
					TbxCliToolsPrintFillLine( pCliContext->hCliTools, '-' );

					/* Display stress test stats */
					VoipCliPrintStressTestStats( aszTmpBuffer, &un32NbLines );
					for( un32Line = 0; un32Line < un32NbLines; un32Line++ )
					{
						TbxCliToolsPrint( pCliContext->hCliTools, aszTmpBuffer[ un32Line ] );
					}
				}

				if( pCliContext->aDisplay[ pCliContext->un32DisplayIndex ] == VOIP_CLI_DISPLAY_TYPE_CONNECTION_INFO )
				{
					/* Display connection information */
					VoipCliDisplayConnectionInfo();
				}
				else if( pCliContext->aDisplay[ pCliContext->un32DisplayIndex ] == VOIP_CLI_DISPLAY_TYPE_STREAM_INFO )
				{
					/* Display stream information */
					VoipCliDisplayStreamInfo();
				}
				else if( pCliContext->aDisplay[ pCliContext->un32DisplayIndex ] == VOIP_CLI_DISPLAY_TYPE_TRUNK_INFO )
				{
					/* Display trunk information */
					VoipCliDisplayTrunkInfo();
				}
				else if( pCliContext->aDisplay[ pCliContext->un32DisplayIndex ] == VOIP_CLI_DISPLAY_TYPE_PROMPT_INFO )
				{
					/* Display prompt information */
					VoipCliDisplayPromptInfo();
				}
				else if( pCliContext->aDisplay[ pCliContext->un32DisplayIndex ] == VOIP_CLI_DISPLAY_TYPE_RAW_DATA_FILE_INFO )
				{
					/* Display prompt information */
					VoipCliDisplayRawDataFileInfo();
				}
				else if( pCliContext->aDisplay[ pCliContext->un32DisplayIndex ] == VOIP_CLI_DISPLAY_TYPE_BERT_INFO )
				{
					/* Display BERT information */
					VoipCliDisplayBertInfo();
				}
				else if( pCliContext->aDisplay[ pCliContext->un32DisplayIndex ] == VOIP_CLI_DISPLAY_TYPE_TRUNK_RES_MAP )
				{
					/* Display trunk resource map */
					VoipCliDisplayTrunkResMap();
				}
				else if( pCliContext->aDisplay[ pCliContext->un32DisplayIndex ] == VOIP_CLI_DISPLAY_TYPE_TRUNK_RES_INV_MAP )
				{
					/* Display trunk resource inverted map */
					VoipCliDisplayTrunkResInvMap();
				}
				else if( pCliContext->aDisplay[ pCliContext->un32DisplayIndex ] == VOIP_CLI_DISPLAY_TYPE_PACKET_TYPE_GRAPH )
				{
					/* Display packet type graphic */
					VoipCliDisplayPacketTypeGraph();
				}
				else if( pCliContext->aDisplay[ pCliContext->un32DisplayIndex ] == VOIP_CLI_DISPLAY_TYPE_TRUNK_RES_MAP_AND_PACKET_TYPE_GRAPH )
				{
					/* Display trunk resource map and packet type graphic */
					VoipCliDisplayTrunkResMapAndPacketTypeGraph();
				}
				else if( pCliContext->aDisplay[ pCliContext->un32DisplayIndex ] == VOIP_CLI_DISPLAY_TYPE_TRUNK_RES_INV_MAP_AND_PACKET_TYPE_GRAPH )
				{
					/* Display trunk resource inverted map and packet type graphic */
					VoipCliDisplayTrunkResInvMapAndPacketTypeGraph();
				}

				/* Continue filling display buffer with the menu */
				VoipCliDisplayMenu();
			}
		}
		else
		{
			/* Display application introduction */
			VoipCliDisplayIntro();
		}

		/* End of the code (skip to cleanup) */
		TBX_EXIT_SUCCESS (TBX_RESULT_OK);
	}

	/*---------------------------------------------------------------------------------------------------------------------------
	 |  Error handling section
	 *--------------------------------------------------------------------------------------------------------------------------*/
	ERROR_HANDLING
	{
		TbxCliToolsLogPrint(
			pCliContext->hCliTools, TRACE_LEVEL_ERROR, NULL,
			"VoipCliDisplay: %s (Result 0x%08X, %s, line %d)\n",
			TBX_ERROR_DESCRIPTION,
			(int)TBX_ERROR_RESULT,
			__FILE__,
			TBX_ERROR_LINE);
	}

	/*---------------------------------------------------------------------------------------------------------------------------
	 |  Cleanup section
	 *--------------------------------------------------------------------------------------------------------------------------*/
	CLEANUP

⌨️ 快捷键说明

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