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

📄 voip_prototypes.h

📁 telcobridges voip develop
💻 H
字号:
/*--------------------------------------------------------------------------------------------------------------------------------
 |
 |	Project:    	VOIP sample
 |
 |	Filename:   	voip_prototypes.h
 |
 |	Copyright:  	TelcoBridges 2002-2004, All Rights Reserved
 |
 |	Description:	This file contains macros and function prototypes
 |					of functions called across c files in this project.
 |
 |	Notes:      	Tabs = 4
 |
 *-------------------------------------------------------------------------------------------------------------------------------
 |
 |	Revision:   	$Revision: 1.12 $
 |
 *------------------------------------------------------------------------------------------------------------------------------*/


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


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


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

/* Variables related to quitting the application */
extern TBX_BOOL			g_fContinue;
extern TBX_BOOL			g_fRunStateMachine;
extern time_t			g_QuitLastPrintTime;
extern TBX_RESULT		g_AppResult;

/* Context of this application */
extern PVOIP_CONTEXT	g_pContext;


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

/*-------------------------------------------------------------------------------------------------------------------------------
 |
 |  VoipFormatPrivateMsg	:	Format a message that is suitable to send to local state machine,
 |								as if it was coming from the adapter/host of this state machine.
 |								Used to force state changes.
 |
 |  in_un32MsgId			:	Message Id to use
 |	in_un32MsgSize			:	Message size to use
 |	in_hAdapter				:	Adapter handle to use
 |	in_un64UserContext		:	Value that will be passed to the receiver in the user context 1 field of the message header
 |
 |  Note					:	~
 |
 |  Return					:	The handle of the allocated message
 |								(or TBX_HANDLE_INVALID if out of memory)
 |
 *------------------------------------------------------------------------------------------------------------------------------*/
static __inline TBX_MSG_HANDLE VoipFormatPrivateMsg(
	IN		TBX_UINT32				in_un32MsgId,
	IN		TBX_UINT32				in_un32MsgSize,
	IN		TBX_ADAPTER_HANDLE		in_hAdapter,
	IN		TBX_UINT64				in_un64UserContext)
{
	TBX_RESULT		Result;
	TBX_MSG_HANDLE	hMsg = (TBX_MSG_HANDLE)TBX_HANDLE_INVALID;

	/* Get a message buffer */
	Result = TBXGetMsg (g_pContext->hTbxLib, in_un32MsgSize, &hMsg);
	if( TBX_RESULT_SUCCESS( Result ) )
	{
		TBX_FORMAT_MSG_HEADER
		(
			hMsg,
			in_un32MsgId,
			TBX_MSG_TYPE_EVENT,
			in_un32MsgSize,
			0,
			in_hAdapter,
			in_un64UserContext
		);
	}

	return hMsg;
}

/*
 | Function to print the adapter state as a string
 */
static __inline PTBX_CHAR VOIP_ADAPTER_STATE_GET_STRING(
	IN		VOIP_ADAPTER_STATE		in_AdapterState)
{
	switch( in_AdapterState )
	{
		case VOIP_ADAPTER_STATE_NOT_USED:			return "Not Used";
		case VOIP_ADAPTER_STATE_NOT_READY:			return "Not Ready";
		case VOIP_ADAPTER_STATE_SYNC:				return "Sync";
		case VOIP_ADAPTER_STATE_CONFIGURING_CLEAR:	return "Configuring clear";
		case VOIP_ADAPTER_STATE_CONFIGURING_ALLOC:	return "Configuring alloc";
		case VOIP_ADAPTER_STATE_READY:				return "Ready";
		case VOIP_ADAPTER_STATE_CLEAR:				return "Clear";

		default:
			break;
	}

	return "Unknown";
}


/*--------------------------------------------------------------------------------------------------------------------------------
 |  Function prototypes
 *------------------------------------------------------------------------------------------------------------------------------*/

/*
 * Application initialization
 */
TBX_RESULT	VoipLoadInitialConfig();
TBX_RESULT	VoipStartInitialConfig();
TBX_RESULT	VoipConfigureNetworkRedundancy( TBX_ADAPTER_HANDLE, TBX_BOOL );
TBX_RESULT	VoipCreateTbxLibFilter( TBX_VOID );

/*
 * Application's main state machine
 */
TBX_RESULT	VoipStateMachineMain( TBX_VOID );
TBX_VOID	VoipEnterQuitSequence( TBX_VOID );
TBX_RESULT	VoipLogFilesRotation( TBX_VOID );

/*
 * Run-time functions
 */
TBX_RESULT	VoipHandleAdapterAdded( TBX_MSG_HANDLE );
TBX_RESULT	VoipHandleAdapterRemoved( PTBX_EVT_API_NOTIF_ADAPTER_REMOVED );
TBX_RESULT	VoipAdapterStopUsing( PVOIP_ADAPTER_CONTEXT );

/*
 * Adapter's state machine functions
 */
TBX_RESULT	VoipAdapterChangeState( PTBX_VOID, VOIP_ADAPTER_STATE );
TBX_RESULT	VoipAdapterPollStateTimeout();
TBX_RESULT	VoipAdapterSetStateTimeout( PVOIP_ADAPTER_CONTEXT, TBX_UINT32 );
TBX_VOID	VoipAdapterStateUndefined( PTBX_VOID, TBX_MSG_HANDLE );
TBX_VOID	VoipAdapterStateNotUsed( PTBX_VOID, TBX_MSG_HANDLE );
TBX_VOID	VoipAdapterStateNotReady( PTBX_VOID, TBX_MSG_HANDLE );
TBX_VOID	VoipAdapterStateSync( PTBX_VOID, TBX_MSG_HANDLE );
TBX_VOID	VoipAdapterStateConfiguringClear( PTBX_VOID, TBX_MSG_HANDLE );
TBX_VOID	VoipAdapterStateConfiguringAlloc( PTBX_VOID, TBX_MSG_HANDLE );
TBX_VOID	VoipAdapterStateReady( PTBX_VOID, TBX_MSG_HANDLE );
TBX_VOID	VoipAdapterStateClear( PTBX_VOID, TBX_MSG_HANDLE );

/*
 * Config files parsing
 */
TBX_RESULT	VoipParseAndLoadConfiguration();
TBX_VOID	VoipToUpper( PTBX_CHAR in_pszLine );
TBX_VOID	VoipToLower( PTBX_CHAR in_pszLine );
TBX_VOID	VoipRemoveTabs( PTBX_CHAR in_pszLine );
TBX_RESULT	VoipParseToken( const PTBX_CHAR, PVOIP_PARSING_TOKEN, PTBX_CHAR *, PTBX_CHAR * );
TBX_RESULT	VoipParseShellCmd( const PTBX_CHAR, PVOIP_PARSING_TOKEN, PTBX_CHAR *, PTBX_CHAR * );
TBX_RESULT	VoipCompareEntries( const PTBX_CHAR, PVOIP_PARSING_ENTRY, PTBX_UINT32, PTBX_UINT32 );
TBX_RESULT	VoipCompareEntriesBuildErrString( const PTBX_CHAR, PVOIP_PARSING_ENTRY, PTBX_UINT32, PTBX_UINT32, PTBX_CHAR );

/*
 *	Stream server functions
 */
TBX_RESULT	VoipStreamServerOpen( PTBX_CHAR, PTBX_CHAR );
TBX_RESULT	VoipStreamServerStart();
TBX_RESULT	VoipStreamServerClose();
TBX_UINT32	VoipStreamServerPromptAlloc( TBX_UINT16, PTBX_CHAR, PTBX_CHAR, PTBX_UINT32, TBX_UINT32 );
TBX_RESULT	VoipStreamServerPromptClear( TBX_UINT32 );
TBX_RESULT	VoipStreamServerStartPlay( TBX_UINT32 );
TBX_RESULT	VoipStreamServerStopPlay( TBX_UINT32 );
TBX_RESULT	VoipStreamServerPromptCleanup();

/*
 *	Play Raw data file runtime functions
 */
TBX_RESULT	VoipStreamLibOpen( PTBX_CHAR, PTBX_CHAR );
TBX_RESULT	VoipStreamLibClose();
TBX_UINT32	VoipRawDataFilePlayAlloc( PVOIP_RAW_DATA_FILE_CONTEXT, TBX_UINT16, PTBX_CHAR, PTBX_CHAR, TBX_UINT32 );
TBX_RESULT	VoipRawDataFilePlayClear( PVOIP_RAW_DATA_FILE_PLAY_CONTEXT );
TBX_RESULT	VoipRawDataFileStartPlay( PVOIP_RAW_DATA_FILE_PLAY_CONTEXT );
TBX_RESULT	VoipRawDataFileStopPlay( PVOIP_RAW_DATA_FILE_PLAY_CONTEXT );
TBX_RESULT	VoipRawDataFilePlayCleanup();
TBX_UINT32	VoipRawDataFileRecordAlloc( PVOIP_RAW_DATA_FILE_CONTEXT, TBX_UINT16, PTBX_CHAR, PTBX_CHAR);
TBX_RESULT	VoipRawDataFileRecordClear( PVOIP_RAW_DATA_FILE_RECORD_CONTEXT );
TBX_RESULT	VoipRawDataFileStartRecord( PVOIP_RAW_DATA_FILE_RECORD_CONTEXT );
TBX_RESULT	VoipRawDataFileStopRecord( PVOIP_RAW_DATA_FILE_RECORD_CONTEXT );
TBX_RESULT	VoipRawDataFileRecordCleanup();
TBX_RESULT VoipStreamLibGetDataAddrCallback(
	IN		TBX_STREAM_LIB_HANDLE		in_hLib,
	IN		TBX_STREAM_LIB_PLAY_HANDLE	in_hPlay,
	IN		TBX_STREAM_LIB_ACK_HANDLE	in_hAcknowledge,
	IN		TBX_UINT64					in_un64UserContext,
	OUT		PTBX_VOID*					out_ppBuffer);
TBX_RESULT VoipStreamLibSaveDataCallback
(
	IN		TBX_STREAM_LIB_HANDLE						in_hLib,
	IN		TBX_STREAM_LIB_PLAY_HANDLE					in_hRecord,
	IN		TBX_STREAM_LIB_ACK_HANDLE					in_hAcknowledge,
	IN		TBX_UINT64									in_un64UserContext,
	IN		PTBX_VOID									in_pBuffer,
	IN		TBX_UINT32									in_un32Length
);														
TBX_RESULT VoipStreamLibStopConfirmCallback(
	IN		TBX_STREAM_LIB_HANDLE		in_hLib,
	IN		TBX_STREAM_LIB_PLAY_HANDLE	in_hPlay,
	IN		TBX_UINT64					in_un64UserContext );

/*--------------------------------------------------------------------------------------------------------------------------------
 |  C++ support
 *------------------------------------------------------------------------------------------------------------------------------*/
#ifdef __cplusplus
}
#endif /* __cplusplus */

#endif /* __VOIP_PROTOTYPES_H__ */

⌨️ 快捷键说明

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