?? voip_cli.c
字號:
/*--------------------------------------------------------------------------------------------------------------------------------
|
| 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 + -