/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\

File: OCTVC1_NET_API.h

$Octasic_Copyright: $

Description: Contains the definition of the NET API.

$Octasic_Confidentiality: $

$Octasic_Release: $

$Revision: $

\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/

#ifndef __OCTVC1_NET_API_H__
#define __OCTVC1_NET_API_H__


/*****************************  INCLUDE FILES  *******************************/
#include "../../octdev_types.h"
#include "../octvc1_msg.h"
#include "../octvc1_handle.h"
#include "../octvc1_cursor.h"
#include "../octvc1_ip.h"
#include "../octvc1_udp.h"
#include "../octvc1_mac.h"
#include "../octvc1_fifo.h"
#include "../octvocnet_pkt.h"

#include "octvc1_net_id.h"
#include "octvc1_net_rc.h"

/************************  COMMON DEFINITIONS  *******************************/

#define cOCTVC1_NET_MEMBER_ID_INVALID						0		 	/* Invalid RTP Member ID definition. */
#define cOCTVC1_NET_MAX_RTP_PROFILE_ENTRY					8		 	/* RTP profile table size. */
#define cOCTVC1_NET_ETH_LINK_MAX_CACHE_ENTRY				16		 	/* Ethernet cache entry definitions. */
#define cOCTVC1_NET_ICMP_PING_MAX_PAYLOAD_LENGTH			32		 	/* ICMP PING definitions. */

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_RTP_PROFILE_MODIFY_ENUM :
-------------------------------------------------------------------------------------*/
#define tOCTVC1_NET_RTP_PROFILE_MODIFY_ENUM						tOCT_UINT32

#define cOCTVC1_NET_RTP_PROFILE_MODIFY_ENUM_RTP_PAYLOAD_TYPE	0		
#define cOCTVC1_NET_RTP_PROFILE_MODIFY_ENUM_PKT_ENCODING_TYPE	1		

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_LOCAL_HOST_ADDR_STATUS_ENUM :
-------------------------------------------------------------------------------------*/
#define tOCTVC1_NET_LOCAL_HOST_ADDR_STATUS_ENUM				tOCT_UINT32

#define cOCTVC1_NET_LOCAL_HOST_ADDR_STATUS_ENUM_NONE		0		
#define cOCTVC1_NET_LOCAL_HOST_ADDR_STATUS_ENUM_TENTATIVE	1		
#define cOCTVC1_NET_LOCAL_HOST_ADDR_STATUS_ENUM_VALID		2		
#define cOCTVC1_NET_LOCAL_HOST_ADDR_STATUS_ENUM_INVALID		3		

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_LOCAL_HOST_ADDR_STATUS_CHANGE_CAUSE_ENUM :
-------------------------------------------------------------------------------------*/
#define tOCTVC1_NET_LOCAL_HOST_ADDR_STATUS_CHANGE_CAUSE_ENUM								tOCT_UINT32

#define cOCTVC1_NET_LOCAL_HOST_ADDR_STATUS_CHANGE_CAUSE_ENUM_IPV4_DAD_PASSED				0		
#define cOCTVC1_NET_LOCAL_HOST_ADDR_STATUS_CHANGE_CAUSE_ENUM_IPV4_DAD_FAILED				1		
#define cOCTVC1_NET_LOCAL_HOST_ADDR_STATUS_CHANGE_CAUSE_ENUM_IPV6_DAD_PASSED				2		
#define cOCTVC1_NET_LOCAL_HOST_ADDR_STATUS_CHANGE_CAUSE_ENUM_IPV6_DAD_FAILED				3		
#define cOCTVC1_NET_LOCAL_HOST_ADDR_STATUS_CHANGE_CAUSE_ENUM_IPV6_AUTO_CONFIG_PREFIX_FOUND	4		
#define cOCTVC1_NET_LOCAL_HOST_ADDR_STATUS_CHANGE_CAUSE_ENUM_IPV6_PREFIX_PREFER_EXPIRED		5		
#define cOCTVC1_NET_LOCAL_HOST_ADDR_STATUS_CHANGE_CAUSE_ENUM_IPV6_PREFIX_VALID_EXPIRED		6		
#define cOCTVC1_NET_LOCAL_HOST_ADDR_STATUS_CHANGE_CAUSE_ENUM_IPV6_ROUTER_ADVERTISEMENT		7		
#define cOCTVC1_NET_LOCAL_HOST_ADDR_STATUS_CHANGE_CAUSE_ENUM_IPV6_PREFIX_USER_REMOVED		8		
#define cOCTVC1_NET_LOCAL_HOST_ADDR_STATUS_CHANGE_CAUSE_ENUM_IPV6_PREFIX_USER_ADDED			9		
#define cOCTVC1_NET_LOCAL_HOST_ADDR_STATUS_CHANGE_CAUSE_ENUM_DHCPV4_LEASE_EXPIRED			10		
#define cOCTVC1_NET_LOCAL_HOST_ADDR_STATUS_CHANGE_CAUSE_ENUM_DHCPV4_RENEW_REQUEST_SENT		11		
#define cOCTVC1_NET_LOCAL_HOST_ADDR_STATUS_CHANGE_CAUSE_ENUM_DHCPV4_REBIND_REQUEST_SENT		12		
#define cOCTVC1_NET_LOCAL_HOST_ADDR_STATUS_CHANGE_CAUSE_ENUM_DHCPV4_OFFER_REQUEST_SENT		13		
#define cOCTVC1_NET_LOCAL_HOST_ADDR_STATUS_CHANGE_CAUSE_ENUM_DHCPV4_ADDR_LEASED				14		

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_LOCAL_HOST_ADDR_DUPLICATE_SOURCE_ENUM :
-------------------------------------------------------------------------------------*/
#define tOCTVC1_NET_LOCAL_HOST_ADDR_DUPLICATE_SOURCE_ENUM							tOCT_UINT32

#define cOCTVC1_NET_LOCAL_HOST_ADDR_DUPLICATE_SOURCE_ENUM_ARP_PROBE					0		
#define cOCTVC1_NET_LOCAL_HOST_ADDR_DUPLICATE_SOURCE_ENUM_ARP_REQUEST				1		
#define cOCTVC1_NET_LOCAL_HOST_ADDR_DUPLICATE_SOURCE_ENUM_ARP_REPLY					2		
#define cOCTVC1_NET_LOCAL_HOST_ADDR_DUPLICATE_SOURCE_ENUM_GARP_REQUEST				3		
#define cOCTVC1_NET_LOCAL_HOST_ADDR_DUPLICATE_SOURCE_ENUM_GARP_REPLY				4		
#define cOCTVC1_NET_LOCAL_HOST_ADDR_DUPLICATE_SOURCE_ENUM_NEIGHBOR_ADVERTISEMENT	5		

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_ICMP_ENUM :
-------------------------------------------------------------------------------------*/
#define tOCTVC1_NET_ICMP_ENUM								tOCT_UINT32

#define cOCTVC1_NET_ICMP_ENUM_OK							0		
#define cOCTVC1_NET_ICMP_ENUM_NO_REPLY						1		
#define cOCTVC1_NET_ICMP_ENUM_DEST_UNREACHABLE				2		
#define cOCTVC1_NET_ICMP_ENUM_TIME_EXCEEDED					3		
#define cOCTVC1_NET_ICMP_ENUM_UNKNOWN_ERROR					4		

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_LOCAL_HOST_EVT_MASK :
-------------------------------------------------------------------------------------*/
#define tOCTVC1_NET_LOCAL_HOST_EVT_MASK							tOCT_UINT32

#define cOCTVC1_NET_LOCAL_HOST_EVT_MASK_NONE					0x00000000	
#define cOCTVC1_NET_LOCAL_HOST_EVT_MASK_ICMP_DEST_UNREACHABLE	0x00000001	
#define cOCTVC1_NET_LOCAL_HOST_EVT_MASK_ICMP_TIME_EXCEEDED		0x00000002	
#define cOCTVC1_NET_LOCAL_HOST_EVT_MASK_ICMP_UNKNOWN_ERROR		0x00000004	
#define cOCTVC1_NET_LOCAL_HOST_EVT_MASK_ICMP_REDIRECT			0x00000008	
#define cOCTVC1_NET_LOCAL_HOST_EVT_MASK_ADDR_STATUS_CHANGE		0x00000010	
#define cOCTVC1_NET_LOCAL_HOST_EVT_MASK_ADDR_DUPLICATE_FOUND	0x00000020	

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_LINK_EVT_MASK :
-------------------------------------------------------------------------------------*/
#define tOCTVC1_NET_LINK_EVT_MASK							tOCT_UINT32

#define cOCTVC1_NET_LINK_EVT_MASK_NONE						0x00000000	
#define cOCTVC1_NET_LINK_EVT_MASK_GATEWAY_STATUS_CHANGE		0x00000001	

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_LINK_GATEWAY_STATUS_ENUM :
-------------------------------------------------------------------------------------*/
#define tOCTVC1_NET_LINK_GATEWAY_STATUS_ENUM				tOCT_UINT32

#define cOCTVC1_NET_LINK_GATEWAY_STATUS_ENUM_TENTATIVE		0		
#define cOCTVC1_NET_LINK_GATEWAY_STATUS_ENUM_REACHABLE		1		
#define cOCTVC1_NET_LINK_GATEWAY_STATUS_ENUM_UNREACHABLE	2		

#define cOCTVC1_NET_INFINITE								0xFFFFFFFF	 	/* Infinite amout of time definition. */
#define cOCTVC1_NET_MAX_LOCAL_HOST							8		 	/* Local IP host definitions. */
#define cOCTVC1_NET_LINK_MAX_GATEWAY						8		 	/* Link gateway definitions. */
#define cOCTVC1_NET_LINK_MAX_IPV6_PREFIX					8		 	/* Neighbor Discovery prefix definitions. */
#define cOCTVC1_NET_LINK_MAX_IPV4_DHCP						2		 	/* Maximum number of concurrent DHCP requests. */
#define cOCTVC1_NET_MAX_PING_INFO							8		 	/* Maximum number of pending ping requests. */
#define cOCTVC1_NET_MAX_CNAME_LENGTH						255		 	/* Maximum byte length of a CNAME. */
#define cOCTVC1_NET_MAX_RTCP_REPORTS						2		 	/* Maximum number of Receiver and Sender reports per API response. */
#define cOCTVC1_NET_UDP_PORT_INVALID						cOCTVC1_UDP_PORT_INVALID	 	/* Invalid UDP port specification. */
#define cOCTVC1_NET_ETHERNET_PQ_TCI_INVALID					0xFFFFFFFF	 	/* Invalid Ethernet PQ TCI definition. */

/*-------------------------------------------------------------------------------------
 	SRTP values.
-------------------------------------------------------------------------------------*/

#define cOCTVC1_NET_MAX_SRTP_MASTER_KEY_BYTE_SIZE			32		
#define cOCTVC1_NET_MAX_SRTP_MASTER_SALT_KEY_BYTE_SIZE		16		
#define cOCTVC1_NET_MAX_SRTP_SESSION_CRYPTO_KEY_BYTE_SIZE	32		
#define cOCTVC1_NET_MAX_SRTP_SESSION_SALT_KEY_BYTE_SIZE		16		
#define cOCTVC1_NET_MAX_SRTP_SESSION_AUTH_KEY_BYTE_SIZE		64		
#define cOCTVC1_NET_MAX_SRTP_MKI_VALUE_BYTE_SIZE			4		
#define cOCTVC1_NET_MAX_SRTP_KEY_LIST_NUM					4		

/*-------------------------------------------------------------------------------------
 	NET API configuration default values.
-------------------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_RTP_EVT_MASK : 	RTP Session Event mask definitions.
-------------------------------------------------------------------------------------*/
#define tOCTVC1_NET_RTP_EVT_MASK							tOCT_UINT32

#define cOCTVC1_NET_RTP_EVT_MASK_NONE						0x00000000	
#define cOCTVC1_NET_RTP_EVT_MASK_RX_ALARM					0x00000001	
#define cOCTVC1_NET_RTP_EVT_MASK_TX_STATE_CHANGE			0x00000002	
#define cOCTVC1_NET_RTP_EVT_MASK_REMOTE_AUTO_DETECT			0x00000004	
#define cOCTVC1_NET_RTP_EVT_MASK_ALL						0xFFFFFFFF	

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_RX_PKT_FILTER_ENUM : 	Packet filter applied to IP packets received for this member once a valid
 	remote member
-------------------------------------------------------------------------------------*/
#define tOCTVC1_NET_RX_PKT_FILTER_ENUM						tOCT_UINT32

#define cOCTVC1_NET_RX_PKT_FILTER_ENUM_NONE					0		
#define cOCTVC1_NET_RX_PKT_FILTER_ENUM_SRCIPUDP				1		
#define cOCTVC1_NET_RX_PKT_FILTER_ENUM_SSRC					2		
#define cOCTVC1_NET_RX_PKT_FILTER_ENUM_SRCIPUDP_SSRC		3		

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_RTCP_EVT_MASK : 	RTCP Event mask definitions.
-------------------------------------------------------------------------------------*/
#define tOCTVC1_NET_RTCP_EVT_MASK							tOCT_UINT32

#define cOCTVC1_NET_RTCP_EVT_MASK_NONE						0x00000000	
#define cOCTVC1_NET_RTCP_EVT_MASK_PKT_ERROR					0x00000001	
#define cOCTVC1_NET_RTCP_EVT_MASK_PKT_COMPOUND				0x00000002	
#define cOCTVC1_NET_RTCP_EVT_MASK_PKT_TYPE_SR				0x00000004	
#define cOCTVC1_NET_RTCP_EVT_MASK_PKT_TYPE_RR				0x00000008	
#define cOCTVC1_NET_RTCP_EVT_MASK_PKT_TYPE_SDES				0x00000010	
#define cOCTVC1_NET_RTCP_EVT_MASK_PKT_TYPE_BYE				0x00000020	
#define cOCTVC1_NET_RTCP_EVT_MASK_PKT_TYPE_APP				0x00000040	
#define cOCTVC1_NET_RTCP_EVT_MASK_PKT_TYPE_FEEDBACK_MSG		0x00000080	
#define cOCTVC1_NET_RTCP_EVT_MASK_PKT_TYPE_UNKNOWN			0x00000100	
#define cOCTVC1_NET_RTCP_EVT_MASK_SSRC_CHANGE_LOCAL			0x00000200	
#define cOCTVC1_NET_RTCP_EVT_MASK_SSRC_CHANGE_REMOTE		0x00000400	
#define cOCTVC1_NET_RTCP_EVT_MASK_REMOTE_MEMBER_DETECTED	0x00000800	
#define cOCTVC1_NET_RTCP_EVT_MASK_ALL						0xFFFFFFFF	

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_SRTP_EVT_MASK : 	SRTP Event mask definitions.
-------------------------------------------------------------------------------------*/
#define tOCTVC1_NET_SRTP_EVT_MASK									tOCT_UINT32

#define cOCTVC1_NET_SRTP_EVT_MASK_NONE								0x00000000	
#define cOCTVC1_NET_SRTP_EVT_MASK_MASTER_RE_KEY_THRESHOLD_REACHED	0x00000001	
#define cOCTVC1_NET_SRTP_EVT_MASK_MASTER_KEY_EXPIRED				0x00000002	
#define cOCTVC1_NET_SRTP_EVT_MASK_MASTER_KEY_CHANGE_DETECTED		0x00000004	
#define cOCTVC1_NET_SRTP_EVT_MASK_REPLAY_ATTACK_DETECTED			0x00000008	
#define cOCTVC1_NET_SRTP_EVT_MASK_UNAUTH_PKT_DETECTED				0x00000010	
#define cOCTVC1_NET_SRTP_EVT_MASK_UNKNOWN_MKI_RECEIVED				0x00000020	
#define cOCTVC1_NET_SRTP_EVT_MASK_SESSION_SSRC_VIOLATION			0x00000040	
#define cOCTVC1_NET_SRTP_EVT_MASK_ALL								0xFFFFFFFF	

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_RTP_FORCED_PARAMETER_MASK : 	Force RTP parameter mask.
-------------------------------------------------------------------------------------*/
#define tOCTVC1_NET_RTP_FORCED_PARAMETER_MASK						tOCT_UINT32

#define cOCTVC1_NET_RTP_FORCED_PARAMETER_MASK_NONE					0x00000000	
#define cOCTVC1_NET_RTP_FORCED_PARAMETER_MASK_SSRC					0x00000001	
#define cOCTVC1_NET_RTP_FORCED_PARAMETER_MASK_INITIAL_SEQ_NUMBER	0x00000002	

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_RTCP_PKT_TYPE_ENUM : 	RTCP Packet Type definitions.
-------------------------------------------------------------------------------------*/
#define tOCTVC1_NET_RTCP_PKT_TYPE_ENUM						tOCT_UINT32

#define cOCTVC1_NET_RTCP_PKT_TYPE_ENUM_COMPOUND				1		
#define cOCTVC1_NET_RTCP_PKT_TYPE_ENUM_COMPOUND_WITH_ERROR	2		
#define cOCTVC1_NET_RTCP_PKT_TYPE_ENUM_RR					3		
#define cOCTVC1_NET_RTCP_PKT_TYPE_ENUM_SR					4		
#define cOCTVC1_NET_RTCP_PKT_TYPE_ENUM_SDES					5		
#define cOCTVC1_NET_RTCP_PKT_TYPE_ENUM_BYE					6		
#define cOCTVC1_NET_RTCP_PKT_TYPE_ENUM_APP					7		
#define cOCTVC1_NET_RTCP_PKT_TYPE_ENUM_FEEDBACK_MSG			8		
#define cOCTVC1_NET_RTCP_PKT_TYPE_ENUM_UNKNOWN				9		

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_RTP_SENDER_STATE_ENUM : 	RTP Member Sender State.
-------------------------------------------------------------------------------------*/
#define tOCTVC1_NET_RTP_SENDER_STATE_ENUM					tOCT_UINT32

#define cOCTVC1_NET_RTP_SENDER_STATE_ENUM_PENDING			0		
#define cOCTVC1_NET_RTP_SENDER_STATE_ENUM_INACTIVE			1		
#define cOCTVC1_NET_RTP_SENDER_STATE_ENUM_ACTIVE			2		
#define cOCTVC1_NET_RTP_SENDER_STATE_ENUM_UNRESOLVED		3		
#define cOCTVC1_NET_RTP_SENDER_STATE_ENUM_PAUSED			4		

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_OPERATION_MODE_ENUM : 	RTP Member Operation Mode.
-------------------------------------------------------------------------------------*/
#define tOCTVC1_NET_OPERATION_MODE_ENUM							tOCT_UINT32

#define cOCTVC1_NET_OPERATION_MODE_ENUM_ENDPOINT					0		
#define cOCTVC1_NET_OPERATION_MODE_ENUM_RTP_ONLY					1		
#define cOCTVC1_NET_OPERATION_MODE_ENUM_FULL_TRANSLATOR				2		
#define cOCTVC1_NET_OPERATION_MODE_ENUM_HALF_TRANSLATOR				3		
#define cOCTVC1_NET_OPERATION_MODE_ENUM_RECOVER_NTP_FROM_RTP_TS		4		

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_RTP_MEMBER_CONN_STATE_ENUM : 	Connection state of a RTP Member.
-------------------------------------------------------------------------------------*/
#define tOCTVC1_NET_RTP_MEMBER_CONN_STATE_ENUM				tOCT_UINT32

#define cOCTVC1_NET_RTP_MEMBER_CONN_STATE_ENUM_DISCONNECTED		0		
#define cOCTVC1_NET_RTP_MEMBER_CONN_STATE_ENUM_CONNECTED		1		

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_RX_ALARM_MASK : 	RX Alarm Conditions.
-------------------------------------------------------------------------------------*/
#define tOCTVC1_NET_RX_ALARM_MASK							tOCT_UINT32

#define cOCTVC1_NET_RX_ALARM_MASK_NONE						0x00000000	
#define cOCTVC1_NET_RX_ALARM_MASK_THRESH_FRACTION_LOST		0x00000001	
#define cOCTVC1_NET_RX_ALARM_MASK_THRESH_JITTER				0x00000002	
#define cOCTVC1_NET_RX_ALARM_MASK_THRESH_RTT				0x00000004	
#define cOCTVC1_NET_RX_ALARM_MASK_THRESH_CUMUL_PKT_LOST		0x00000008	

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_SRTP_STREAM_TYPE_ENUM : 	SRTP Stream Type
-------------------------------------------------------------------------------------*/
#define tOCTVC1_NET_SRTP_STREAM_TYPE_ENUM					tOCT_UINT32

#define cOCTVC1_NET_SRTP_STREAM_TYPE_ENUM_SENDER			0		
#define cOCTVC1_NET_SRTP_STREAM_TYPE_ENUM_RECEIVER			1		

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_SRTP_STREAM_KEY_CHANGE_REASON_ENUM : 	SRTP Stream key change reasons
-------------------------------------------------------------------------------------*/
#define tOCTVC1_NET_SRTP_STREAM_KEY_CHANGE_REASON_ENUM			tOCT_UINT32

#define cOCTVC1_NET_SRTP_STREAM_KEY_CHANGE_REASON_ENUM_MKI		0		
#define cOCTVC1_NET_SRTP_STREAM_KEY_CHANGE_REASON_ENUM_FROM_TO	1		

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_SRTP_CRYPTO_TRANSFORM_ENUM : 	Cryptographic Transform type
-------------------------------------------------------------------------------------*/
#define tOCTVC1_NET_SRTP_CRYPTO_TRANSFORM_ENUM				tOCT_UINT32

#define cOCTVC1_NET_SRTP_CRYPTO_TRANSFORM_ENUM_NULL			0		
#define cOCTVC1_NET_SRTP_CRYPTO_TRANSFORM_ENUM_AES_CM		1		
#define cOCTVC1_NET_SRTP_CRYPTO_TRANSFORM_ENUM_AES_F8		2		

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_SRTP_AUTH_TRANSFORM_ENUM : 	Authentication Transfer type
-------------------------------------------------------------------------------------*/
#define tOCTVC1_NET_SRTP_AUTH_TRANSFORM_ENUM				tOCT_UINT32

#define cOCTVC1_NET_SRTP_AUTH_TRANSFORM_ENUM_NULL			0		
#define cOCTVC1_NET_SRTP_AUTH_TRANSFORM_ENUM_HMAC_SHA1		1		

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_SRTP_STREAM_STATE_ENUM : 	SRTP Stream state
-------------------------------------------------------------------------------------*/
#define tOCTVC1_NET_SRTP_STREAM_STATE_ENUM					tOCT_UINT32

#define cOCTVC1_NET_SRTP_STREAM_STATE_ENUM_INVALID			0		
#define cOCTVC1_NET_SRTP_STREAM_STATE_ENUM_INACTIVE			1		
#define cOCTVC1_NET_SRTP_STREAM_STATE_ENUM_ACTIVE			2		
#define cOCTVC1_NET_SRTP_STREAM_STATE_ENUM_ERROR			3		

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_SRTP_KEY_STATE_ENUM : 	SRTP Key state
-------------------------------------------------------------------------------------*/
#define tOCTVC1_NET_SRTP_KEY_STATE_ENUM							tOCT_UINT32

#define cOCTVC1_NET_SRTP_KEY_STATE_ENUM_INVALID					0		
#define cOCTVC1_NET_SRTP_KEY_STATE_ENUM_INACTIVE				1		
#define cOCTVC1_NET_SRTP_KEY_STATE_ENUM_ACTIVE					2		
#define cOCTVC1_NET_SRTP_KEY_STATE_ENUM_ACTIVE_THRESHOLD_REACH	3		
#define cOCTVC1_NET_SRTP_KEY_STATE_ENUM_EXPIRE					4		

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_SRTP_KEY_BIT_SIZE_ENUM : 	SRTP Key Byte Size
-------------------------------------------------------------------------------------*/
#define tOCTVC1_NET_SRTP_KEY_BIT_SIZE_ENUM					tOCT_UINT32

#define cOCTVC1_NET_SRTP_KEY_BIT_SIZE_ENUM_128				128		
#define cOCTVC1_NET_SRTP_KEY_BIT_SIZE_ENUM_192				192		
#define cOCTVC1_NET_SRTP_KEY_BIT_SIZE_ENUM_256				256		

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_SRTP_SALT_KEY_BIT_SIZE_ENUM : 	SRTP Salt Key Byte Size
-------------------------------------------------------------------------------------*/
#define tOCTVC1_NET_SRTP_SALT_KEY_BIT_SIZE_ENUM				tOCT_UINT32

#define cOCTVC1_NET_SRTP_SALT_KEY_BIT_SIZE_ENUM_0			0		
#define cOCTVC1_NET_SRTP_SALT_KEY_BIT_SIZE_ENUM_112			112		

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_SRTP_SERVICE_MASK : 	SRTP Service
-------------------------------------------------------------------------------------*/
#define tOCTVC1_NET_SRTP_SERVICE_MASK						tOCT_UINT32

#define cOCTVC1_NET_SRTP_SERVICE_MASK_NONE					0x00000000	
#define cOCTVC1_NET_SRTP_SERVICE_MASK_CONFIDENTIALITY		0x00000001	
#define cOCTVC1_NET_SRTP_SERVICE_MASK_AUTHENTICATION		0x00000002	

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_RTP_SESSION_MODIFY_MEMBER_MASK : 	Session RTP Member Modify Mask.
-------------------------------------------------------------------------------------*/
#define tOCTVC1_NET_RTP_SESSION_MODIFY_MEMBER_MASK								tOCT_UINT32

#define cOCTVC1_NET_RTP_SESSION_MODIFY_MEMBER_MASK_NONE							0		
#define cOCTVC1_NET_RTP_SESSION_MODIFY_MEMBER_MASK_REMOTE_RTP					((tOCT_UINT32)(1<<0) )	
#define cOCTVC1_NET_RTP_SESSION_MODIFY_MEMBER_MASK_REMOTE_RTCP					((tOCT_UINT32)(1<<1) )	
#define cOCTVC1_NET_RTP_SESSION_MODIFY_MEMBER_MASK_REMOTE_T38					((tOCT_UINT32)(1<<2) )	
#define cOCTVC1_NET_RTP_SESSION_MODIFY_MEMBER_MASK_REMOTE_CNAME					((tOCT_UINT32)(1<<3) )	
#define cOCTVC1_NET_RTP_SESSION_MODIFY_MEMBER_MASK_SRTP_STREAM_CONFIG_SENDER	((tOCT_UINT32)(1<<4) )	
#define cOCTVC1_NET_RTP_SESSION_MODIFY_MEMBER_MASK_SRTP_KEY_ENTRY_SENDER		((tOCT_UINT32)(1<<5) )	
#define cOCTVC1_NET_RTP_SESSION_MODIFY_MEMBER_MASK_SRTP_STREAM_CONFIG_RECEIVER	((tOCT_UINT32)(1<<6) )	
#define cOCTVC1_NET_RTP_SESSION_MODIFY_MEMBER_MASK_SRTP_KEY_ENTRY_RECEIVER		((tOCT_UINT32)(1<<7) )	
#define cOCTVC1_NET_RTP_SESSION_MODIFY_MEMBER_MASK_LOCAL_RTP					((tOCT_UINT32)(1<<8) )	
#define cOCTVC1_NET_RTP_SESSION_MODIFY_MEMBER_MASK_LOCAL_RTCP					((tOCT_UINT32)(1<<9) )	
#define cOCTVC1_NET_RTP_SESSION_MODIFY_MEMBER_MASK_LOCAL_T38					((tOCT_UINT32)(1<<10) )	
#define cOCTVC1_NET_RTP_SESSION_MODIFY_MEMBER_MASK_ALL							0xFFFFFFFF	

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_VIDEO_RTCP_FB_MSG_MASK : 	Session RTCP Member feedback Mask.
-------------------------------------------------------------------------------------*/
#define tOCTVC1_NET_VIDEO_RTCP_FB_MSG_MASK					tOCT_UINT32

#define cOCTVC1_NET_VIDEO_RTCP_FB_MSG_MASK_NONE				0x00000000	
#define cOCTVC1_NET_VIDEO_RTCP_FB_MSG_MASK_PLI				0x00000001	
#define cOCTVC1_NET_VIDEO_RTCP_FB_MSG_MASK_FIR				0x00000002	
#define cOCTVC1_NET_VIDEO_RTCP_FB_MSG_MASK_ALL				0xFFFFFFFF	

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_ETHERTYPE_ENCODING_ENUM : 	Ethernet Encoding Types
-------------------------------------------------------------------------------------*/
#define tOCTVC1_NET_ETHERTYPE_ENCODING_ENUM					tOCT_UINT32

#define cOCTVC1_NET_ETHERTYPE_ENCODING_ENUM_ETH_II			0		

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_RTP_MEMBER_STREAM_IDX_ENUM : 	Tramport index of the various RTP member data streams.
-------------------------------------------------------------------------------------*/
#define tOCTVC1_NET_RTP_MEMBER_STREAM_IDX_ENUM				tOCT_UINT32

#define cOCTVC1_NET_RTP_MEMBER_STREAM_IDX_ENUM_RTP			0		
#define cOCTVC1_NET_RTP_MEMBER_STREAM_IDX_ENUM_RTCP			1		
#define cOCTVC1_NET_RTP_MEMBER_STREAM_IDX_ENUM_T38_UDPTL	2		

#define cOCTVC1_NET_RTP_MEMBER_MAX_STREAM					3		
#define cOCTVC1_NET_MAX_VLAN_TAG							4		

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_CUSTOM_MEMBER_MODIFY_MASK : 	Modify mask.
-------------------------------------------------------------------------------------*/
#define tOCTVC1_NET_CUSTOM_MEMBER_MODIFY_MASK					tOCT_UINT32

#define cOCTVC1_NET_CUSTOM_MEMBER_MODIFY_MASK_NONE				0x00000000	
#define cOCTVC1_NET_CUSTOM_MEMBER_MODIFY_MASK_STREAM_RTP		0x00000001	
#define cOCTVC1_NET_CUSTOM_MEMBER_MODIFY_MASK_STREAM_RTCP		0x00000002	
#define cOCTVC1_NET_CUSTOM_MEMBER_MODIFY_MASK_STREAM_T38_UDPTL	0x00000004	
#define cOCTVC1_NET_CUSTOM_MEMBER_MODIFY_MASK_CNAME_LOCAL		0x00000008	
#define cOCTVC1_NET_CUSTOM_MEMBER_MODIFY_MASK_CNAME_REMOTE		0x00000010	
#define cOCTVC1_NET_CUSTOM_MEMBER_MODIFY_MASK_ALL				0x0000001F	

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_CUSTOM_MEMBER_STREAM_MODIFY_MASK : 	RRP member transport modify mask.
-------------------------------------------------------------------------------------*/
#define tOCTVC1_NET_CUSTOM_MEMBER_STREAM_MODIFY_MASK					tOCT_UINT32

#define cOCTVC1_NET_CUSTOM_MEMBER_STREAM_MODIFY_MASK_NONE					0x00000000	
#define cOCTVC1_NET_CUSTOM_MEMBER_STREAM_MODIFY_MASK_TX_PKT_ENABLE_FLAG		0x00000001	
#define cOCTVC1_NET_CUSTOM_MEMBER_STREAM_MODIFY_MASK_RX_PKT_FILTER			0x00000002	
#define cOCTVC1_NET_CUSTOM_MEMBER_STREAM_MODIFY_MASK_PKT_HEADER				0x00000004	
#define cOCTVC1_NET_CUSTOM_MEMBER_STREAM_MODIFY_MASK_ALL					0x00000007	

/*-------------------------------------------------------------------------------------
 	NET API Object Type.
-------------------------------------------------------------------------------------*/

#define cOCTVC1_NET_OBJ_TYPE_LOCAL_HOST						(0x0001|cOCTVC1_HANDLE_BASE_OBJ_TYPE_NET)	
#define cOCTVC1_NET_OBJ_TYPE_RTP_SESSION					(0x0003|cOCTVC1_HANDLE_BASE_OBJ_TYPE_NET)	
#define cOCTVC1_NET_OBJ_TYPE_ETH_LINK						(0x0004|cOCTVC1_HANDLE_BASE_OBJ_TYPE_NET)	
#define cOCTVC1_NET_OBJ_TYPE_CUSTOM_LOCAL_HOST				(0x0005|cOCTVC1_HANDLE_BASE_OBJ_TYPE_NET)	

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_IP_CURSOR

 Members:
	hLink
	IpAddress
	ulGetMode
		Default:	cOCTVC1_OBJECT_CURSOR_ENUM_FIRST
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_HANDLE				hLink;
	tOCTVC1_IP_ADDRESS			IpAddress;
	tOCTVC1_OBJECT_CURSOR_ENUM	ulGetMode;

} tOCTVC1_NET_IP_CURSOR;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_RTP_PROFILE_ENTRY

 Members:
	ulRtpPayloadType
	ulPktEncodingType
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCT_UINT32					ulRtpPayloadType;
	tOCTVOCNET_PKT_D_TYPE_ENUM	ulPktEncodingType;

} tOCTVC1_NET_RTP_PROFILE_ENTRY;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_RTP_PROFILE_MODIFY_ENTRY

 Members:
	ulModifyType
	Entry
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_NET_RTP_PROFILE_MODIFY_ENUM	ulModifyType;
	tOCTVC1_NET_RTP_PROFILE_ENTRY		Entry;

} tOCTVC1_NET_RTP_PROFILE_MODIFY_ENTRY;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_SRTP_KEY_ENTRY

 Members:
	ulMasterKeyBitSize
		Default:	cOCTVC1_NET_SRTP_KEY_BIT_SIZE_ENUM_128
 		Size in bits of the master key array.
	abyMasterKey
 		Master Key. The number of significant bytes is defined by ulMasterKeyBitSize.
	ulMasterSaltBitSize
		Default:	cOCTVC1_NET_SRTP_SALT_KEY_BIT_SIZE_ENUM_112
 		Size in bits of the master key array.
	abyMasterSalt
 		The Master Salt Key. The number of significant bytes is defined by
 		ulMasterSaltBitSize.
	ulKeyDerivationRateLog2
		Range:		[0..24]
 		The Key derivation rate expressed as a power of 2 number (derivation rate =
 		2^ulKeyDerivationRateLog2). The key derivation is configured to periodically
 		refresh the session keys, which limits the amount of ciphertext produced by a
 		fixed key available for an adversary to cryptanalyze.
	aulRtpMasterKeyMaxLifeTime
 		Values: 0 ... 2^48 - 1 Sets the maximum key lifetime( number of RTP packets
 		allowed to be encrypted / decrypted using this key ). Zero means maximum (2^48
 		packets). aulRtpMasterKeyMaxLifeTime[0] = bits 47:32,
 		aulRtpMasterKeyMaxLifeTime[1] = bits 31:0..
	aulRtpMasterKeyFromLifeTime
 		Values: 0 ... 2^48 - 1 Sets the master key "From" lifetime. The "From, To"
 		lifetimes are used to indicate the range of packets indexes for which this key
 		is valid. Index wrap around is supported. As a result, "From" may be set to a
 		higher value than "To". The following is an example with RTP packets: "From" =
 		0x7FFFFFFFFFFF and "To" = 1. This key is valid for packets with index
 		0x7FFFFFFFFFFF, 0 and 1. aulRtpMasterKeyFromLifeTime[0] = bits 47:32,
 		aulRtpMasterKeyFromLifeTime[1] = bits 31:0
	aulRtpMasterKeyToLifeTime
 		Values: 0 ... 2^48 - 1 Sets the master key "To" lifetime. The "From, To"
 		lifetimes are used to indicate the range of packets index where this key is
 		valid. Index wrap around is supported. As a result, "From" may be set to a
 		higher value than "To". aulRtpMasterKeyToLifeTime[0] = bits 47:32,
 		aulRtpMasterKeyToLifeTime[1] = bits 31:0
	aulRtpReKeyEventThreshold
 		Values: 0 ... 2^48 - 1 When the internal RTP packet count is greater or equal
 		than the aulRtpReKeyEventThreshold, a rekey event is generated. When such an
 		event is detected, the aulRtpReKeyEventThreshold is cleared in order to disable
 		the mechanism. The value zero is used to disable the mechanism.
 		aulRtpReKeyEventThreshold[0] = bits 47:32, aulRtpReKeyEventThreshold[1] = bits
 		31:0
	ulRtcpMasterKeyMaxLifeTime
		Range:		[0..0x7FFFFFFF]
 		Sets the maximum key lifetime( number of RTCP packets allowed to be encrypted /
 		decrypted using this key ). Zero means maximum (2^31 packets). After reaching
 		the maximum lifetime, the packets are discarded.
	ulRtcpMasterKeyFromLifeTime
		Range:		[0..0x7FFFFFFF]
 		Sets the master key "From" lifetime. The "From, To" lifetimes are used to
 		indicate the range of RTCP packets indexes for which this key is valid. Index
 		wrap around is supported. As a result, "From" may be set to a higher value than
 		"To". The following is an example with RTCP packets: "From" = 0x7FFFFFFF and
 		"To" = 1. This key is valid for packets with index 0x7FFFFFFF, 0 and 1.
	ulRtcpMasterKeyToLifeTime
		Range:		[0..0x7FFFFFFF]
 		Sets the master key "To" lifetime. The "From, To" lifetimes are used to
 		indicate the range of RTCP packets index where this key is valid. Index wrap
 		around is supported. As a result, "From" may be set to a higher value than "To".
	ulRtcpReKeyEventThreshold
		Range:		[0..0x7FFFFFFF]
 		When the internal RTCP packet count is greater that or equal to the
 		ulRtcpReKeyEventThreshold, a rekey event is generated. When such an event is
 		detected, the ulRtcpReKeyEventThreshold is cleared in order to disable the
 		mechanism. The value zero is used to disable the mechanism.
	abyMkiValue
 		This method is used to assign a Master Key Identifier (MKI) to the current key.
 		The purpose of MKI is to identify the master key to be used in the current
 		context to protect or unprotect a packet. When enabled, MKI is used in addition
 		to the "From, To" lifetime for key retrieval. For incoming packets (decryption
 		path), the received MKI is compared to the MKI of configured keys. It must
 		match for the key to be retrieved. For the outgoing packets (encryption path),
 		the MKI information from the configured key is used to fill the MKI field in
 		the packet to transmit. The MKI Size, is set in the cryptographic context, and
 		is the same for all configured key.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_NET_SRTP_KEY_BIT_SIZE_ENUM		ulMasterKeyBitSize;
	tOCT_UINT8								abyMasterKey[cOCTVC1_NET_MAX_SRTP_MASTER_KEY_BYTE_SIZE];
	tOCTVC1_NET_SRTP_SALT_KEY_BIT_SIZE_ENUM	ulMasterSaltBitSize;
	tOCT_UINT8								abyMasterSalt[cOCTVC1_NET_MAX_SRTP_MASTER_SALT_KEY_BYTE_SIZE];
	tOCT_UINT32								ulKeyDerivationRateLog2;
	tOCT_UINT32								aulRtpMasterKeyMaxLifeTime[2];
	tOCT_UINT32								aulRtpMasterKeyFromLifeTime[2];
	tOCT_UINT32								aulRtpMasterKeyToLifeTime[2];
	tOCT_UINT32								aulRtpReKeyEventThreshold[2];
	tOCT_UINT32								ulRtcpMasterKeyMaxLifeTime;
	tOCT_UINT32								ulRtcpMasterKeyFromLifeTime;
	tOCT_UINT32								ulRtcpMasterKeyToLifeTime;
	tOCT_UINT32								ulRtcpReKeyEventThreshold;
	tOCT_UINT8								abyMkiValue[cOCTVC1_NET_MAX_SRTP_MKI_VALUE_BYTE_SIZE];

} tOCTVC1_NET_SRTP_KEY_ENTRY;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_SRTP_STREAM_CONFIG

 Members:
	ulCryptoTransform
		Default:	cOCTVC1_NET_SRTP_CRYPTO_TRANSFORM_ENUM_AES_CM
 		Sets the cryptographic transform for this context. This transform is used for
 		packets encryption and decryption. If set to NULL, no encryption is made
	ulAuthTransform
		Default:	cOCTVC1_NET_SRTP_AUTH_TRANSFORM_ENUM_HMAC_SHA1
 		Sets the authentication transform mode for RTP ans RTCP in this context. This
 		transform is used to authenticate packets or to verify packets authentication.
 		Notes: When authentication is used (not NULL), the replay protection is
 		automatically enabled on the decryption context.
	ulAuthTagBitSize
		Range:		[0..160]
		Default:	80
 		Sets the authentication tag length. For RTP, the authentication is
 		automatically computed when an authentication transform is selected (not NULL),
 		for RTCP authentication is always computed. The authentication is appended to
 		outgoing packets or verified for incoming packets. Recommended value is 32 bits
 		for voice and 80 bits for other. When set to zero, no message authentication.
	ulMkiByteSize
		Range:		[0..4]
 		Size in bytes of the master key identifier value for all configured key. When
 		set to zero, MKI feature is disable.
	ulSessionCryptoKeyBitSize
		Default:	cOCTVC1_NET_SRTP_KEY_BIT_SIZE_ENUM_128
 		Sets the session cryptographic key size in bits.The session cryptographic key
 		is automatically derived by using the master key and master salt key when
 		protecting packets
	ulSessionSaltKeyBitSize
		Range:		[0..112]
		Default:	112
 		Sets the session salt key size in bits. The session salt key is automatically
 		derived by using the master key and master salt key when protecting packets.
	ulSessionAuthKeyBitSize
		Range:		[0..512]
		Default:	128
 		Sets the session authentication key size in bits. The session authentication
 		key is automatically derived by using the master key and master salt key when
 		protecting packets.
	ulInitialRoc
	ulSrtpServiceMask
		Default:	cOCTVC1_NET_SRTP_SERVICE_MASK_NONE
 		Sets security services use for RTP. Note that replay protection is
 		automatically enable when authentication is enable with non-null transform.
	ulSrtcpServiceMask
		Default:	cOCTVC1_NET_SRTP_SERVICE_MASK_NONE
 		Sets security services use for RTCP. Note that replay protection is
 		automatically enable when authentication is enable with non-null transform.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_NET_SRTP_CRYPTO_TRANSFORM_ENUM	ulCryptoTransform;
	tOCTVC1_NET_SRTP_AUTH_TRANSFORM_ENUM	ulAuthTransform;
	tOCT_UINT32								ulAuthTagBitSize;
	tOCT_UINT32								ulMkiByteSize;
	tOCTVC1_NET_SRTP_KEY_BIT_SIZE_ENUM		ulSessionCryptoKeyBitSize;
	tOCT_UINT32								ulSessionSaltKeyBitSize;
	tOCT_UINT32								ulSessionAuthKeyBitSize;
	tOCT_UINT32								ulInitialRoc;
	tOCTVC1_NET_SRTP_SERVICE_MASK			ulSrtpServiceMask;
	tOCTVC1_NET_SRTP_SERVICE_MASK			ulSrtcpServiceMask;

} tOCTVC1_NET_SRTP_STREAM_CONFIG;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_SRTP_KEY_STATS

 Members:
	ulKeyState
	aulSrtpPacketCnt
 		Values: 48-bit counter value. Number of SRTP packet sent with this Key Entry.
	ulSrtcpPacketCnt
 		Number of SRTCP packet sent with this Key Entry.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_NET_SRTP_KEY_STATE_ENUM	ulKeyState;
	tOCT_UINT32						aulSrtpPacketCnt[2];
	tOCT_UINT32						ulSrtcpPacketCnt;

} tOCTVC1_NET_SRTP_KEY_STATS;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_SRTP_STREAM_STATS

 Members:
	ulSrtpState
	ulSsrc
 		RTP SSRC associate with this SRTP Stream.
	ulLastRoc
 		Last ROC (Roll over conter of RTP sequences). Number of SRTP packet sent with
 		this Key Entry.
	ulLastSeq
 		Last RTP Sequence Number sent or received. Number of SRTP packet sent with this
 		Key Entry.
	ulLastSrtcpIndex
 		Last SRTCP index sent or received. Number of SRTCP packet sent with this Key
 		Entry.
	aulTotalSrtpPktCnt
 		Values: 64-bit counter value. Total of SRTP packet sent or received by this
 		SRTP Stream.
	aulTotalSrtcpPktCnt
 		Values: 64-bit counter value. Total of SRTCP packet sent or received by this
 		SRTP Stream.
	ulUnAuthPktCnt
 		Values: 16-bit counter value Total of SRTP/SRTCP unauthaurized packets sent or
 		received by this SRTP Stream.
	ulReplayPktCnt
 		Values: 16-bit counter value Total of Replay SRTP/SRTCP packets detected by
 		this SRTP Stream. Only valid for SRTP Receiver Stream.
	ulReKeyCnt
 		Values: 8-bit counter value Total of Master Re-Key with MKI method or From,To
 		method.
	ulActiveKeyIdx
 		Idx of the active key.
	ulSrtpKeyNum
 		Number of key stats in aSrtpKeyStats.
	aSrtpKeyStats
 		SRTP Steam Key statistics.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_NET_SRTP_STREAM_STATE_ENUM	ulSrtpState;
	tOCT_UINT32							ulSsrc;
	tOCT_UINT32							ulLastRoc;
	tOCT_UINT32							ulLastSeq;
	tOCT_UINT32							ulLastSrtcpIndex;
	tOCT_UINT32							aulTotalSrtpPktCnt[2];
	tOCT_UINT32							aulTotalSrtcpPktCnt[2];
	tOCT_UINT32							ulUnAuthPktCnt;
	tOCT_UINT32							ulReplayPktCnt;
	tOCT_UINT32							ulReKeyCnt;
	tOCT_UINT32							ulActiveKeyIdx;
	tOCT_UINT32							ulSrtpKeyNum;
	tOCTVC1_NET_SRTP_KEY_STATS			aSrtpKeyStats[4];

} tOCTVC1_NET_SRTP_STREAM_STATS;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_CONFIG_STATIC

 Members:
	ulMaxRtpMember
	ulMaxRtpSession
	ulMaxLocalIpHost
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCT_UINT32	ulMaxRtpMember;
	tOCT_UINT32	ulMaxRtpSession;
	tOCT_UINT32	ulMaxLocalIpHost;

} tOCTVC1_NET_CONFIG_STATIC;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_RTP_MEMBER_CONN_INFO

 Members:
	ulConnectionState
 		Connection state of the RTP Member:
 		cOCTVC1_NET_RTP_MEMBER_CONN_STATE_DISCONNECTED: The member is not connected to
 		an other member
 		cOCTVC1_NET_RTP_MEMBER_CONN_STATE_CONNECTED: The member is connected to an
 		other member.
	hConnectedRtpSession
 		RTP Session handle of the connected RTP Member.
 		Significant only if ulConnectionState is set to
 		cOCTVC1_NET_RTP_MEMBER_CONN_STATE_CONNECTED.
	ulConnectedMemberId
 		Member identifier of the connected RTP Member.
 		Significant only if ulConnectionState is set to
 		cOCTVC1_NET_RTP_MEMBER_CONN_STATE_CONNECTED.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_NET_RTP_MEMBER_CONN_STATE_ENUM	ulConnectionState;
	tOCTVC1_HANDLE							hConnectedRtpSession;
	tOCT_UINT32								ulConnectedMemberId;

} tOCTVC1_NET_RTP_MEMBER_CONN_INFO;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_RTCP_SENDER_STATS

 Members:
	aulSentPktCnt
	aulSentByteCnt
	aulNtpTimestamp
	ulRtpTimestamp
	ulSenderSsrc
	ulSenderStartTime
	ulSenderReportCnt
	ulSenderState
	ulLastSenderReportTime
	ulSsrcChangeCnt
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCT_UINT32							aulSentPktCnt[2];
	tOCT_UINT32							aulSentByteCnt[2];
	tOCT_UINT32							aulNtpTimestamp[2];
	tOCT_UINT32							ulRtpTimestamp;
	tOCT_UINT32							ulSenderSsrc;
	tOCT_UINT32							ulSenderStartTime;
	tOCT_UINT32							ulSenderReportCnt;
	tOCTVC1_NET_RTP_SENDER_STATE_ENUM	ulSenderState;
	tOCT_UINT32							ulLastSenderReportTime;
	tOCT_UINT32							ulSsrcChangeCnt;

} tOCTVC1_NET_RTCP_SENDER_STATS;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_RTCP_RECEIVER_STATS

 Members:
	ulHighestSeqNumber
	ulCumulativeLostCnt
	ulFractionLost
	ulInterArrivalJitter
	ulMaxFractionLost
	ulMaxInterArrivalJitter
	ulAverageFractionLost
	ulAverageInterArrivalJitter
	ulReceiverStartTime
	ulReceiverReportCnt
	ulLastReceiverReportTime
	ulRemoteSenderSsrc
	ulAlarmRxThreshold
	ulAlarmRxThresholdCnt
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCT_UINT32					ulHighestSeqNumber;
	tOCT_UINT32					ulCumulativeLostCnt;
	tOCT_UINT32					ulFractionLost;
	tOCT_UINT32					ulInterArrivalJitter;
	tOCT_UINT32					ulMaxFractionLost;
	tOCT_UINT32					ulMaxInterArrivalJitter;
	tOCT_UINT32					ulAverageFractionLost;
	tOCT_UINT32					ulAverageInterArrivalJitter;
	tOCT_UINT32					ulReceiverStartTime;
	tOCT_UINT32					ulReceiverReportCnt;
	tOCT_UINT32					ulLastReceiverReportTime;
	tOCT_UINT32					ulRemoteSenderSsrc;
	tOCTVC1_NET_RX_ALARM_MASK	ulAlarmRxThreshold;
	tOCT_UINT32					ulAlarmRxThresholdCnt;

} tOCTVC1_NET_RTCP_RECEIVER_STATS;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_VLAN_TAG

 Members:
	ulPriority
		Range:		[0..7]
		Default:	5
	ulVlanId
		Range:		[0..4095]
		Default:	0
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCT_UINT32	ulPriority;
	tOCT_UINT32	ulVlanId;

} tOCTVC1_NET_VLAN_TAG;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_HEADER_INFO_ETHERNET

 Members:
	ulEthertypeEncoding
		Default:	cOCTVC1_NET_ETHERTYPE_ENCODING_ENUM_ETH_II
 		Ethertype encoding used to create the transmission header.
	ulEthertype
		Range:		[0..0xFFFF]
		Default:	0x0800
	LocalMacAddress
	RemoteMacAddress
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_NET_ETHERTYPE_ENCODING_ENUM	ulEthertypeEncoding;
	tOCT_UINT32							ulEthertype;
	tOCTVC1_MAC_ADDRESS					LocalMacAddress;
	tOCTVC1_MAC_ADDRESS					RemoteMacAddress;

} tOCTVC1_NET_HEADER_INFO_ETHERNET;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_HEADER_INFO_VLAN

 Members:
	ulNumVlanTag
		Range:		[0..cOCTVC1_NET_MAX_VLAN_TAG]
		Default:	0
 		Number of Vlan TAGs present in the header. The tag inserted right after the
 		Ethernet header must be located at index 0 of aVlanTag while the one at the
 		highest index is located right before the transport header.
	aVlanTag
 		Array containing the VLAN TAG to present in the header for this member.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCT_UINT32				ulNumVlanTag;
	tOCTVC1_NET_VLAN_TAG	aVlanTag[cOCTVC1_NET_MAX_VLAN_TAG];

} tOCTVC1_NET_HEADER_INFO_VLAN;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_HEADER_INFO_IP

 Members:
	ulIpVersion
		Default:	cOCTVC1_IP_VERSION_ENUM_4
	ulTypeOfService
		Range:		[0..255]
		Default:	0
 		###CPP### (See ulTypeOfService) Specifies the IPv4 Type of Service parameter
 		inserted in the IP header of packets transmitted by this member.
	ulTimeToLive
		Range:		[1..255]
		Default:	127
 		###CPP### (See ulTimeToLive) Specifies the IP V4 Time to Live Parameter
 		inserted in the IP header of packets transmitted by this member.
	ulIpv6FlowLabel
		Range:		[0..1048575]
		Default:	0
 		Value for FlowLabel field of IPv6 packets.
	LocalIpAddress
	RemoteIpAddress
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_IP_VERSION_ENUM	ulIpVersion;
	tOCT_UINT32				ulTypeOfService;
	tOCT_UINT32				ulTimeToLive;
	tOCT_UINT32				ulIpv6FlowLabel;
	tOCTVC1_IP_ADDRESS		LocalIpAddress;
	tOCTVC1_IP_ADDRESS		RemoteIpAddress;

} tOCTVC1_NET_HEADER_INFO_IP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_HEADER_INFO_UDP

 Members:
	ulLocalUdpPort
		Range:		[0x0000..0xFFFF]
		Default:	0x0000
	ulRemoteUdpPort
		Range:		[0x0000..0xFFFF]
		Default:	0x0000
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCT_UINT32	ulLocalUdpPort;
	tOCT_UINT32	ulRemoteUdpPort;

} tOCTVC1_NET_HEADER_INFO_UDP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_HEADER_IPUDP

 Members:
	Ethernet
	Vlan
	Ip
	Udp
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_NET_HEADER_INFO_ETHERNET	Ethernet;
	tOCTVC1_NET_HEADER_INFO_VLAN		Vlan;
	tOCTVC1_NET_HEADER_INFO_IP			Ip;
	tOCTVC1_NET_HEADER_INFO_UDP			Udp;

} tOCTVC1_NET_HEADER_IPUDP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_CACHE_ENTRY_CURSOR

 Members:
	hLink
	Vlan
	IpAddress
	ulGetMode
		Default:	cOCTVC1_OBJECT_CURSOR_ENUM_FIRST
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_HANDLE					hLink;
	tOCTVC1_NET_HEADER_INFO_VLAN	Vlan;
	tOCTVC1_IP_ADDRESS				IpAddress;
	tOCTVC1_OBJECT_CURSOR_ENUM		ulGetMode;

} tOCTVC1_NET_CACHE_ENTRY_CURSOR;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_ETH_LINK_CACHE_ENTRY

 Members:
	hLink
	Vlan
	IpAddress
	MacAddress
	ulStaticFlag
	ulReachableFlag
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_HANDLE					hLink;
	tOCTVC1_NET_HEADER_INFO_VLAN	Vlan;
	tOCTVC1_IP_ADDRESS				IpAddress;
	tOCTVC1_MAC_ADDRESS				MacAddress;
	tOCT_BOOL32						ulStaticFlag;
	tOCT_BOOL32						ulReachableFlag;

} tOCTVC1_NET_ETH_LINK_CACHE_ENTRY;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_LINK_GATEWAY_INFO

 Members:
	IpAddress
	ulLifetimeSec
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_IP_ADDRESS	IpAddress;
	tOCT_UINT32			ulLifetimeSec;

} tOCTVC1_NET_LINK_GATEWAY_INFO;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_LINK_IPV6_PREFIX

 Members:
	IpAddress
	ulBitLength
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_IP_ADDRESS	IpAddress;
	tOCT_UINT32			ulBitLength;

} tOCTVC1_NET_LINK_IPV6_PREFIX;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_LINK_IPV6_PREFIX_INFO

 Members:
	IPv6Prefix
	ulOnLinkFlag
	ulAddrAutoConfigFlag
	ulValidLifetimeSec
		Default:	cOCTVC1_NET_INFINITE
	ulPreferredLifetimeSec
		Default:	cOCTVC1_NET_INFINITE
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_NET_LINK_IPV6_PREFIX	IPv6Prefix;
	tOCT_BOOL32						ulOnLinkFlag;
	tOCT_BOOL32						ulAddrAutoConfigFlag;
	tOCT_UINT32						ulValidLifetimeSec;
	tOCT_UINT32						ulPreferredLifetimeSec;

} tOCTVC1_NET_LINK_IPV6_PREFIX_INFO;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_IPV6_PREFIX_CURSOR

 Members:
	hLink
	IPv6Prefix
	ulGetMode
		Default:	cOCTVC1_OBJECT_CURSOR_ENUM_FIRST
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_HANDLE					hLink;
	tOCTVC1_NET_LINK_IPV6_PREFIX	IPv6Prefix;
	tOCTVC1_OBJECT_CURSOR_ENUM		ulGetMode;

} tOCTVC1_NET_IPV6_PREFIX_CURSOR;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_IPV4_ADDR_AUTOCONFIG_MODE_ENUM :
-------------------------------------------------------------------------------------*/
#define tOCTVC1_NET_IPV4_ADDR_AUTOCONFIG_MODE_ENUM			tOCT_UINT32

#define cOCTVC1_NET_IPV4_ADDR_AUTOCONFIG_MODE_ENUM_DHCP			0		
#define cOCTVC1_NET_IPV4_ADDR_AUTOCONFIG_MODE_ENUM_DISABLED		2		

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_IPV6_ADDR_AUTOCONFIG_MODE_ENUM :
-------------------------------------------------------------------------------------*/
#define tOCTVC1_NET_IPV6_ADDR_AUTOCONFIG_MODE_ENUM				tOCT_UINT32

#define cOCTVC1_NET_IPV6_ADDR_AUTOCONFIG_MODE_ENUM_STATELESS	0		
#define cOCTVC1_NET_IPV6_ADDR_AUTOCONFIG_MODE_ENUM_STATEFUL		1		
#define cOCTVC1_NET_IPV6_ADDR_AUTOCONFIG_MODE_ENUM_DISABLED		2		

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_ETH_LINK_CONFIG_IPV4

 Members:
	ulEnableFlag
		Default:	cOCT_TRUE
 		When set to cOCT_TRUE, support for IPv4 is enabled on the Link.
	ulAddrAutoconfigMode
		Default:	cOCTVC1_NET_IPV4_ADDR_AUTOCONFIG_MODE_ENUM_DISABLED
 		This parameter controls the address auto configuration on this Link.
 		- cOCTVC1_NET_IPV4_ADDR_AUTOCONFIG_MODE_ENUM_DHCP: API communicates with an
 		IPv4 address leasing server using DHCPv4 and creates host on the link based on
 		the information retrieved from the address server.
 		- cOCTVC1-NET_ADDR_AUTOCONFIG_MODE_ENUM_DISABLED: In this mode, the API does
 		not perform address auto configuration on the Link.
	ulNDPBaseReachableTimeMs
		Default:	30000
 		Base time, in millisecond, since the last valid confirmation that the path to
 		the Neighbor was functioning properly before changing the state of that
 		Neighbor cache entry from REACHABLE to STALE or DELAY.
 		This value is used to create the internal ReachableTIme value by multiplying
 		the base time with a random modificator between 0.5 and 1.5.
	ulARPRefreshTimeMs
		Default:	5000
 		Time, in millisecond, since the last attempt to resolve the link-layer address
 		of a remote IP address was attempted or between the generation of GARP packets.
	ulARPReplyTimeMs
		Default:	500
 		Time, in millisecond, between retransmission of ARP Requests if no associated
 		ARP Replies are received.
	ulARPUnusedTimeMs
		Default:	60000
 		Time, in millisecond, that an unused ARP cache entry is allowed to remain in
 		the cache before being purged. Setting this parameter to 0 disables the removal
 		of unused entries.
	ulARPReqCreateCnt
		Default:	3
 		Number ARP Request allowed while resolving the address of a newly created ARP
 		cache entry. These packets are always transmitted using the broadcast MAC
 		address.
	ulARPReqRefreshCnt
		Default:	3
 		Number of ARP Request packets allowed while refreshing an ARP entry. These
 		packets are always transmitted using the currently cached link-layer address.
	ulARPReqRefreshBroadcastCnt
		Default:	0
 		Number of ARP Request packets allowed while refreshing an ARP entry. These
 		packets are always transmitted using the broadcast MAC address.
 		Broadcast ARP Requests are always transmitted after ARP Request using the
 		currently cached link-layer address.
	ulARPReqDupAddrCnt
		Range:		[0..15]
		Default:	0
 		Number of ARP Probes to send either at host opening or on demand using the
 		cOCTVC1_NET_MSG_LOCAL_HOST_START_ADDR_VALIDATE_CID command. Please refer to RFC
 		5227 for more details.
	ulGARPRequestCnt
		Default:	0
 		Number of GARP Request packets sent when a Local Host is open or modified.
 		These packets are always transmitted using the broadcast MAC address.
 		GARP is disabled when this parameter is set to 0.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCT_BOOL32									ulEnableFlag;
	tOCTVC1_NET_IPV4_ADDR_AUTOCONFIG_MODE_ENUM	ulAddrAutoconfigMode;
	tOCT_UINT32									ulNDPBaseReachableTimeMs;
	tOCT_UINT32									ulARPRefreshTimeMs;
	tOCT_UINT32									ulARPReplyTimeMs;
	tOCT_UINT32									ulARPUnusedTimeMs;
	tOCT_UINT32									ulARPReqCreateCnt;
	tOCT_UINT32									ulARPReqRefreshCnt;
	tOCT_UINT32									ulARPReqRefreshBroadcastCnt;
	tOCT_UINT32									ulARPReqDupAddrCnt;
	tOCT_UINT32									ulGARPRequestCnt;

} tOCTVC1_NET_ETH_LINK_CONFIG_IPV4;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_ETH_LINK_CONFIG_IPV6

 Members:
	ulEnableFlag
		Default:	cOCT_FALSE
 		When set to cOCT_TRUE, support for IPv6 is enabled on the Link.
	ulCreateLoopbackEntryFlag
		Default:	cOCT_FALSE
 		When set to cOCT_TRUE, an IPv6 Loopback (addresse ::1) routing entry is created
 		on the Link.
	ulAddrAutoconfigMode
		Default:	cOCTVC1_NET_IPV6_ADDR_AUTOCONFIG_MODE_ENUM_DISABLED
 		This parameter controls the address auto configuration on this Link.
 		- cOCTVC1_NET_IPV6_ADDR_AUTOCONFIG_MODE_ENUM_STATELESS: API attempts to create
 		IPv6 host on the Link based on the Linkâ€™s EUI64 Interface Identifier and the
 		prefix provided by ND Router Advertisements. For more information, please refer
 		to RFC 4862. This mode is not supported in the current implementation.
 		- cOCTVC1_NET_IPV6_ADDR_AUTOCONFIG_MODE_ENUM_STATEFUL: API communicates with an
 		IPv6 address leasing server using DHCPv6 and creates host on the link based on
 		the information retrieved from the address server. This mode is not supported
 		in the current implementation.
 		- cOCTVC1_NET_IPV6_ADDR_AUTOCONFIG_MODE_ENUM_DISABLED: API does not perform
 		address auto configuration on the Link.
	ulNDPBaseReachableTimeMs
		Default:	30000
 		Base time, in millisecond, since the last valid confirmation that the path to
 		the Neighbor was functioning properly before changing the state of that
 		Neighbor cache entry from REACHABLE to STALE or DELAY.
 		This value is used to create the internal ReachableTIme value by multiplying
 		the base time with a random modificator between 0.5 and 1.5.
	ulNDPRetransTimeMs
		Default:	1000
 		Time, in millisecond, between retransmission of Neighbor Solicitation messages
 		when resolving an address or while probing the reachability of a Neighbor.
	ulNDPUnusedTimeMs
		Default:	60000
 		Time, in millisecond, that an unused Neighbor cache entry is allowed to remain
 		in the cache before being purged. Setting this parameter to 0 disables the
 		removal of unused entries.
	ulNDPSolicitCreateCnt
		Default:	3
 		Number of Neighbor Solicitation messages allowed while resolving the address of
 		a newly created cache entry. These messages are always sent to the
 		solicited-node multicast address of the destination.
	ulNDPSolicitDupAddrCnt
		Default:	1
 		Number of Neighbor Solicitation messages allowed while performing duplicate
 		address detection.
	ulNDPSolicitProbeCnt
		Default:	3
 		Number of Neighbor Solicitation messages allowed while probing a Neighbor.
 		These messages use the currently cached link-layer address and are sent to the
 		Unicast address of the Neighbor.
	ulNDPSolicitProbeMulticastCnt
		Default:	0
 		Number of Neighbor Solicitation messages allowed while probing a Neighbor.
 		These messages are always sent to the solicited-node multicast address of the
 		destination.
 		Multicast probe messages are always transmitted after Unicast probe messages.
	ulNDPSolicitRouterCnt
		Default:	3
 		Number of Router Solicitation messages allowed after the creation of the link.
 		The link will send less than ulNDPSolicitRouterCnt router solicitations if a
 		router advertisement
 		is received.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCT_BOOL32									ulEnableFlag;
	tOCT_BOOL32									ulCreateLoopbackEntryFlag;
	tOCTVC1_NET_IPV6_ADDR_AUTOCONFIG_MODE_ENUM	ulAddrAutoconfigMode;
	tOCT_UINT32									ulNDPBaseReachableTimeMs;
	tOCT_UINT32									ulNDPRetransTimeMs;
	tOCT_UINT32									ulNDPUnusedTimeMs;
	tOCT_UINT32									ulNDPSolicitCreateCnt;
	tOCT_UINT32									ulNDPSolicitDupAddrCnt;
	tOCT_UINT32									ulNDPSolicitProbeCnt;
	tOCT_UINT32									ulNDPSolicitProbeMulticastCnt;
	tOCT_UINT32									ulNDPSolicitRouterCnt;

} tOCTVC1_NET_ETH_LINK_CONFIG_IPV6;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_ETH_LINK_CONFIG_ETH_802_1PQ

 Members:
	ulEnableFlag
		Default:	cOCT_FALSE
 		When set to cOCT_TRUE, 802.1 encapsulation is enabled on this Link. The API
 		adds an 802.1pQ header to all packets transmitted through this Link.
	ulDefaultUserPriority
		Default:	0
 		Default Priority inserted in packets transmitted through this Link. This value
 		is inserted in the TCI bits [15:13] of the 802.1 header.
	ulVlanId
		Default:	0
 		802.1 Virtual LAN Identifier for this Link. This value is inserted in the TCI
 		bits [11:0] of the 802.1 header.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCT_BOOL32	ulEnableFlag;
	tOCT_UINT32	ulDefaultUserPriority;
	tOCT_UINT32	ulVlanId;

} tOCTVC1_NET_ETH_LINK_CONFIG_ETH_802_1PQ;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_EUI64_INTERFACE_ID

 Members:
	ausInterfaceId
 		IEEE EUI-64 Interface Identifier created from the link-layer address of the
 		Linkâ€™s physical interface address.
 		The 16 most significant bits of the identifier are stored in ausInterfaceId[0]
 		while the 16 least significant bits are store in ausInterfaceId[3].
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCT_UINT16	ausInterfaceId[4];

} tOCTVC1_NET_EUI64_INTERFACE_ID;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_CUSTOM_MEMBER_IPUDP_STREAM

 Members:
	ulEnableFlag
		Default:	cOCT_FALSE
 		Enable flag used to control the allocation of routing resources for this
 		stream. Should be set to cOCT_FALSE if not required.
	ulTxPktEnableFlag
		Default:	cOCT_FALSE
 		Enable flag used to control packets transmission by this stream. Must only be
 		set to cOCT_TRUE if all required header fields are provided in "Header".
	ulRxPktFilter
		Default:	cOCTVC1_NET_RX_PKT_FILTER_ENUM_NONE
	Header
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCT_BOOL32						ulEnableFlag;
	tOCT_BOOL32						ulTxPktEnableFlag;
	tOCTVC1_NET_RX_PKT_FILTER_ENUM	ulRxPktFilter;
	tOCTVC1_NET_HEADER_IPUDP		Header;

} tOCTVC1_NET_CUSTOM_MEMBER_IPUDP_STREAM;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_CUSTOM_MEMBER_IPUDP_STREAM_MODIFY

 Members:
	ulModifyMask
		Default:	0
	Modify
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_NET_CUSTOM_MEMBER_STREAM_MODIFY_MASK	ulModifyMask;
	tOCTVC1_NET_CUSTOM_MEMBER_IPUDP_STREAM			Modify;

} tOCTVC1_NET_CUSTOM_MEMBER_IPUDP_STREAM_MODIFY;

/*****************************  METHODS  *************************************/
/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_RTP_SESSION_CLOSE_CMD

 Members:
	Header
 		OCTVC1 Message Header
	hRtpSession
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCTVC1_HANDLE		hRtpSession;

} tOCTVC1_NET_MSG_RTP_SESSION_CLOSE_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_RTP_SESSION_CLOSE_RSP

 Members:
	Header
 		OCTVC1 Message Header
	hRtpSession
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCTVC1_HANDLE		hRtpSession;

} tOCTVC1_NET_MSG_RTP_SESSION_CLOSE_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_RTP_SESSION_INFO_CMD

 Members:
	Header
 		OCTVC1 Message Header
	ObjectGet
 		Generic object get structure.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER			Header;
	tOCTVC1_CURSOR_HANDLE_GET	ObjectGet;

} tOCTVC1_NET_MSG_RTP_SESSION_INFO_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_RTP_SESSION_INFO_RSP

 Members:
	Header
 		OCTVC1 Message Header
	ObjectGet
 		Generic object get structure.
	hLocalHost
	ulFifoId
	ulRtpEventMask
	ulRtcpEventMask
	ulSrtpEventMask
	ulUserEventId
	ulInitialOperationMode
	ulSenderMaxPendingTimeSec
	ulSenderMaxInactiveTimeSec
	ulRtcpEnableFlag
	ulRtpSessionBandwidth
	ulHighFractionLost
	ulHighCumulativePacketLost
	ulHighJitter
	ulHighRoundTripTime
	ulLowFractionLost
	ulLowJitter
	ulLowRoundTripTime
	hEventDestObj
	ulEventDestObjPort
	ulEventDestObjFifoId
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER				Header;
	tOCTVC1_CURSOR_HANDLE_GET		ObjectGet;
	tOCTVC1_HANDLE					hLocalHost;
	tOCT_UINT32						ulFifoId;
	tOCTVC1_NET_RTP_EVT_MASK		ulRtpEventMask;
	tOCTVC1_NET_RTCP_EVT_MASK		ulRtcpEventMask;
	tOCTVC1_NET_SRTP_EVT_MASK		ulSrtpEventMask;
	tOCT_UINT32						ulUserEventId;
	tOCTVC1_NET_OPERATION_MODE_ENUM	ulInitialOperationMode;
	tOCT_UINT32						ulSenderMaxPendingTimeSec;
	tOCT_UINT32						ulSenderMaxInactiveTimeSec;
	tOCT_BOOL32						ulRtcpEnableFlag;
	tOCT_UINT32						ulRtpSessionBandwidth;
	tOCT_UINT32						ulHighFractionLost;
	tOCT_UINT32						ulHighCumulativePacketLost;
	tOCT_UINT32						ulHighJitter;
	tOCT_UINT32						ulHighRoundTripTime;
	tOCT_UINT32						ulLowFractionLost;
	tOCT_UINT32						ulLowJitter;
	tOCT_UINT32						ulLowRoundTripTime;
	tOCTVC1_HANDLE					hEventDestObj;
	tOCT_UINT32						ulEventDestObjPort;
	tOCT_UINT32						ulEventDestObjFifoId;

} tOCTVC1_NET_MSG_RTP_SESSION_INFO_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_RTP_SESSION_PAUSE_RTCP_CMD

 Members:
	Header
 		OCTVC1 Message Header
	hRtpSession
	ulTxRtcpPauseFlag
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCTVC1_HANDLE		hRtpSession;
	tOCT_BOOL32			ulTxRtcpPauseFlag;

} tOCTVC1_NET_MSG_RTP_SESSION_PAUSE_RTCP_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_RTP_SESSION_PAUSE_RTCP_RSP

 Members:
	Header
 		OCTVC1 Message Header
	hRtpSession
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCTVC1_HANDLE		hRtpSession;

} tOCTVC1_NET_MSG_RTP_SESSION_PAUSE_RTCP_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_RTP_SESSION_MODIFY_CMD

 Members:
	Header
 		OCTVC1 Message Header
	hRtpSession
	ulHighFractionLost
	ulHighCumulativePacketLost
	ulHighJitter
	ulHighRoundTripTime
	ulLowFractionLost
	ulLowJitter
	ulLowRoundTripTime
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCTVC1_HANDLE		hRtpSession;
	tOCT_UINT32			ulHighFractionLost;
	tOCT_UINT32			ulHighCumulativePacketLost;
	tOCT_UINT32			ulHighJitter;
	tOCT_UINT32			ulHighRoundTripTime;
	tOCT_UINT32			ulLowFractionLost;
	tOCT_UINT32			ulLowJitter;
	tOCT_UINT32			ulLowRoundTripTime;

} tOCTVC1_NET_MSG_RTP_SESSION_MODIFY_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_RTP_SESSION_MODIFY_RSP

 Members:
	Header
 		OCTVC1 Message Header
	hRtpSession
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCTVC1_HANDLE		hRtpSession;

} tOCTVC1_NET_MSG_RTP_SESSION_MODIFY_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_RTP_SESSION_ACTIVATE_MEMBER_CMD

 Members:
	Header
 		OCTVC1 Message Header
	hRtpSession
	hTerm
	ulRxPktFilter
		Default:	cOCTVC1_NET_RX_PKT_FILTER_ENUM_SRCIPUDP_SSRC
 		Packet filter applied to IP packets received for this member once a valid
 		remote member
	ulLocalUdpPortRtp
		Range:		[0..65535]
		Default:	cOCTVC1_UDP_PORT_INVALID
 		Local RTP UDP port. This value must not be the same as ulLocalUdpPortT38 or
 		ulLocalUdpPortRtcp, and must not be used by another session.
	ulLocalUdpPortRtcp
		Range:		[0..65535]
		Default:	cOCTVC1_UDP_PORT_INVALID
 		Local RTCP UDP port. This value must not be the same as ulLocalUdpPortRtp or
 		ulLocalUdpPortT38, and must not be used by another session.
	ulLocalUdpPortT38
		Default:	cOCTVC1_UDP_PORT_INVALID
 		Local T38 UDP port. This value must not be the same as ulLocalUdpPortRtp or
 		ulLocalUdpPortRtcp, and must not be used by another session.
	ulLocalCnameLength
		Range:		[0..255]
 		Specifies the length of the local RTCP Canonical Name. The Canonical Name is
 		not NULL-terminated.
	achLocalCname
 		Specifies the local canonical name to be used for RTCP reports. The user
 		application must specify a non-zero length string. The name is encoded
 		according to the UTF-2 encoding specified in Annex F of ISO standard 10646.
 		US-ASCII is a subset of this encoding and requires no additional encoding. The
 		name is not null terminated. The size of this field is aligned on a 32-bit
 		boundary. Characters beyond the 255th characters are ignored.
	ulLocalForcedRtpParmMask
		Default:	cOCTVC1_NET_RTP_FORCED_PARAMETER_MASK_NONE
 		This mask is used for RTP parameters that can be automatically set by
 		Media-Gateway or force by User.
	ulLocalForcedSsrc
 		RTP SSRC value for the connection, , when
 		cOCTVC1_NET_RTP_FORCED_PARAMETER_MASK_SSRC bit is set in
 		ulLocalForcedRtpParmMask.
	ulLocalForcedInitialSeqNumber
 		16-bit value. Initial Local Sequence Number, when
 		cOCTVC1_NET_RTP_FORCED_PARAMETER_MASK_INITIAL_SEQ_NUMBER bit is set in
 		ulLocalForcedRtpParmMask. For SRTP, it is recommended for the initial sequence
 		number to be smaller or equal to 2^15. Note this parameter is only used when
 		ulValidRemoteFlag toggle from cOCT_FALSE to cOCT_TRUE.
	ulRemoteAutoDetectFlag
 		Flag used to activate or deactivate the remote UDP address auto-detection
 		mechanism.
	RemoteUdpAddressRtp
 		IP address and UDP port of remote device that sends and receives RTP packets.
	RemoteUdpAddressRtcp
 		IP address and UDP port of remote device that sends and receives RTCP packets.
 		When the IP address is set to all-zeros, then the IP address for RTCP packet is
 		automatically set to RemoteIpAddressRtp.
	RemoteUdpAddressT38
 		IP address and UDP port of remote device that sends and receives T38 packets.
 		When the IP address is set to all-zeros, then the IP address for RTCP packet is
 		automatically set to RemoteIpAddressRtp.
	ulRemoteCnameLength
		Range:		[0..255]
 		Specifies the length of the remote RTCP Canonical Name. The Canonical Name is
 		not NULL-terminated.
	achRemoteCname
 		RTP Canonical Name associated with the remote source. The name is encoded
 		according to the UTF-2 encoding specified in Annex F of ISO standard 10646.
 		US-ASCII is a subset of this encoding and requires no additional encoding. The
 		name is not null terminated.The size of this field is aligned on a 32-bit
 		boundary. Characters beyond the 255th characters are ignored.
	ulRemoteForcedRtpParmMask
		Default:	cOCTVC1_NET_RTP_FORCED_PARAMETER_MASK_NONE
 		This mask is used for RTP parameters that can be automatically set by
 		Media-Gateway or force by User.
	ulRemoteForcedSsrc
 		RTP SSRC value for the connection, , when
 		cOCTVC1_NET_RTP_FORCED_PARAMETER_MASK_SSRC bit is set in
 		ulLocalForcedRtpParmMask.
	ulRemoteForcedInitialSeqNumber
 		16-bit value. Inital Remote Sequence Number, when
 		cOCTVC1_NET_RTP_FORCED_PARAMETER_MASK_INITIAL_SEQ_NUMBER bit is set in
 		ulLocalForcedRtpParmMask. For SRTP, it is recommended for the initial sequence
 		number to be smaller or equal to 2^15. Note this parameter is only used when
 		ulValidRemoteFlag toggle from cOCT_FALSE to cOCT_TRUE.
	ulIpv4TimeToLive
		Range:		[1..255]
		Default:	127
 		###CPP### (See ulTimeToLive) Specifies the IP V4 Time to Live Parameter
 		inserted in the IP header of packets transmitted by this member.
	ulIpv4TypeOfService
		Range:		[0..255]
 		###CPP### (See ulTypeOfService) Specifies the IP V4 Type of Service parameter
 		inserted in the IP header of packets transmitted by this member.
	ulIpv6HopLimit
		Range:		[1..255]
 		Value for HopLimit field of IPv6 packets.
	ulIpv6FlowLabel
		Range:		[0..1048575]
 		Value for FlowLabel field of IPv6 packets.
	ulIpv6TrafficClass
		Range:		[0..255]
 		Value for TrafficClass field of IPv6 packets.
	ulNumProfEntry
		Range:		[0..8]
 		Number of profile entries included in aRtpProfEntry.
	aRtpProfEntry
 		Array containing the mapping between the RTP Payload types and the Vocallo
 		encoding types supported by this Member.
	SenderSrtp
 		SRTP/SRTCP configuration of sender direction.
	SenderSrtpKey
 		SRTP/SRTCP first active key configuration for local sender.
	ReceiverSrtp
 		SRTP/SRTCP configuration of remote sender direction. Note, only valid if
 		ulValidRemoteFlag set to cOCT_TRUE.
	ReceiverSrtpKey
 		SRTP/SRTCP first active key configuration for remote sender. Note, only valid
 		if ulValidRemoteFlag set to cOCT_TRUE.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER						Header;
	tOCTVC1_HANDLE							hRtpSession;
	tOCTVC1_HANDLE							hTerm;
	tOCTVC1_NET_RX_PKT_FILTER_ENUM			ulRxPktFilter;
	tOCT_UINT32								ulLocalUdpPortRtp;
	tOCT_UINT32								ulLocalUdpPortRtcp;
	tOCT_UINT32								ulLocalUdpPortT38;
	tOCT_UINT32								ulLocalCnameLength;
	tOCT_UINT8								achLocalCname[(cOCTVC1_NET_MAX_CNAME_LENGTH+1)];
	tOCTVC1_NET_RTP_FORCED_PARAMETER_MASK	ulLocalForcedRtpParmMask;
	tOCT_UINT32								ulLocalForcedSsrc;
	tOCT_UINT32								ulLocalForcedInitialSeqNumber;
	tOCT_BOOL32								ulRemoteAutoDetectFlag;
	tOCTVC1_UDP_ADDRESS						RemoteUdpAddressRtp;
	tOCTVC1_UDP_ADDRESS						RemoteUdpAddressRtcp;
	tOCTVC1_UDP_ADDRESS						RemoteUdpAddressT38;
	tOCT_UINT32								ulRemoteCnameLength;
	tOCT_UINT8								achRemoteCname[(cOCTVC1_NET_MAX_CNAME_LENGTH+1)];
	tOCTVC1_NET_RTP_FORCED_PARAMETER_MASK	ulRemoteForcedRtpParmMask;
	tOCT_UINT32								ulRemoteForcedSsrc;
	tOCT_UINT32								ulRemoteForcedInitialSeqNumber;
	tOCT_UINT32								ulIpv4TimeToLive;
	tOCT_UINT32								ulIpv4TypeOfService;
	tOCT_UINT32								ulIpv6HopLimit;
	tOCT_UINT32								ulIpv6FlowLabel;
	tOCT_UINT32								ulIpv6TrafficClass;
	tOCT_UINT32								ulNumProfEntry;
	tOCTVC1_NET_RTP_PROFILE_ENTRY			aRtpProfEntry[cOCTVC1_NET_MAX_RTP_PROFILE_ENTRY];
	tOCTVC1_NET_SRTP_STREAM_CONFIG			SenderSrtp;
	tOCTVC1_NET_SRTP_KEY_ENTRY				SenderSrtpKey;
	tOCTVC1_NET_SRTP_STREAM_CONFIG			ReceiverSrtp;
	tOCTVC1_NET_SRTP_KEY_ENTRY				ReceiverSrtpKey;

} tOCTVC1_NET_MSG_RTP_SESSION_ACTIVATE_MEMBER_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_RTP_SESSION_ACTIVATE_MEMBER_RSP

 Members:
	Header
 		OCTVC1 Message Header
	hRtpSession
	ulLocalMemberId
	ulLocalSsrc
 		Local Ssrc (automatic or forced)
	ulLocalInitialSeqNumber
 		Local Ssrc (automatic or forced)
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER		Header;
	tOCTVC1_HANDLE			hRtpSession;
	tOCTVC1_SUB_OBJECT_ID	ulLocalMemberId;
	tOCT_UINT32				ulLocalSsrc;
	tOCT_UINT32				ulLocalInitialSeqNumber;

} tOCTVC1_NET_MSG_RTP_SESSION_ACTIVATE_MEMBER_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_RTP_SESSION_DEACTIVATE_MEMBER_CMD

 Members:
	Header
 		OCTVC1 Message Header
	hRtpSession
	ulLocalMemberId
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER		Header;
	tOCTVC1_HANDLE			hRtpSession;
	tOCTVC1_SUB_OBJECT_ID	ulLocalMemberId;

} tOCTVC1_NET_MSG_RTP_SESSION_DEACTIVATE_MEMBER_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_RTP_SESSION_DEACTIVATE_MEMBER_RSP

 Members:
	Header
 		OCTVC1 Message Header
	hRtpSession
	ulLocalMemberId
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER		Header;
	tOCTVC1_HANDLE			hRtpSession;
	tOCTVC1_SUB_OBJECT_ID	ulLocalMemberId;

} tOCTVC1_NET_MSG_RTP_SESSION_DEACTIVATE_MEMBER_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_RTP_SESSION_INFO_MEMBER_CMD

 Members:
	Header
 		OCTVC1 Message Header
	SubObjectIdGet
 		Sub-Object Id get structure.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER						Header;
	tOCTVC1_CURSOR_HANDLE_GET_SUB_OBJECT_ID	SubObjectIdGet;

} tOCTVC1_NET_MSG_RTP_SESSION_INFO_MEMBER_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_RTP_SESSION_INFO_MEMBER_RSP

 Members:
	Header
 		OCTVC1 Message Header
	SubObjectIdGet
 		Sub-Object Id get structure.
	ulOperationMode
	ulTxRtpPauseFlag
	ulTxRtcpPauseFlag
	hTerm
	hDestObj
	ulDestObjPort
	ulRxPktFilter
	ulDestObjFifoId
	ulLocalUdpPortRtp
		Default:	cOCTVC1_UDP_PORT_INVALID
	ulLocalUdpPortRtcp
		Default:	cOCTVC1_UDP_PORT_INVALID
	ulLocalUdpPortT38
		Default:	cOCTVC1_UDP_PORT_INVALID
	ulLocalCnameLength
	achLocalCname
	ulRemoteAutoDetectFlag
	ulValidRemoteFlag
	RemoteUdpAddressRtp
	RemoteUdpAddressRtcp
	RemoteUdpAddressT38
	ulRemoteCnameLength
	achRemoteCname
	ulIpv4TimeToLive
	ulIpv4TypeOfService
	ulIpv6HopLimit
	ulIpv6FlowLabel
	ulIpv6TrafficClass
	ulNumProfEntry
	aRtpProfEntry
	RtpMemberConnInfo
 		Contains connection information about the RTP Member.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER						Header;
	tOCTVC1_CURSOR_HANDLE_GET_SUB_OBJECT_ID	SubObjectIdGet;
	tOCTVC1_NET_OPERATION_MODE_ENUM			ulOperationMode;
	tOCT_BOOL32								ulTxRtpPauseFlag;
	tOCT_BOOL32								ulTxRtcpPauseFlag;
	tOCTVC1_HANDLE							hTerm;
	tOCTVC1_HANDLE							hDestObj;
	tOCT_UINT32								ulDestObjPort;
	tOCTVC1_NET_RX_PKT_FILTER_ENUM			ulRxPktFilter;
	tOCT_UINT32								ulDestObjFifoId;
	tOCT_UINT32								ulLocalUdpPortRtp;
	tOCT_UINT32								ulLocalUdpPortRtcp;
	tOCT_UINT32								ulLocalUdpPortT38;
	tOCT_UINT32								ulLocalCnameLength;
	tOCT_UINT8								achLocalCname[(cOCTVC1_NET_MAX_CNAME_LENGTH+1)];
	tOCT_BOOL32								ulRemoteAutoDetectFlag;
	tOCT_BOOL32								ulValidRemoteFlag;
	tOCTVC1_UDP_ADDRESS						RemoteUdpAddressRtp;
	tOCTVC1_UDP_ADDRESS						RemoteUdpAddressRtcp;
	tOCTVC1_UDP_ADDRESS						RemoteUdpAddressT38;
	tOCT_UINT32								ulRemoteCnameLength;
	tOCT_UINT8								achRemoteCname[(cOCTVC1_NET_MAX_CNAME_LENGTH+1)];
	tOCT_UINT32								ulIpv4TimeToLive;
	tOCT_UINT32								ulIpv4TypeOfService;
	tOCT_UINT32								ulIpv6HopLimit;
	tOCT_UINT32								ulIpv6FlowLabel;
	tOCT_UINT32								ulIpv6TrafficClass;
	tOCT_UINT32								ulNumProfEntry;
	tOCTVC1_NET_RTP_PROFILE_ENTRY			aRtpProfEntry[cOCTVC1_NET_MAX_RTP_PROFILE_ENTRY];
	tOCTVC1_NET_RTP_MEMBER_CONN_INFO		RtpMemberConnInfo;

} tOCTVC1_NET_MSG_RTP_SESSION_INFO_MEMBER_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_RTP_SESSION_PAUSE_MEMBER_CMD

 Members:
	Header
 		OCTVC1 Message Header
	hRtpSession
	ulLocalMemberId
	ulTxRtpPauseFlag
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER		Header;
	tOCTVC1_HANDLE			hRtpSession;
	tOCTVC1_SUB_OBJECT_ID	ulLocalMemberId;
	tOCT_BOOL32				ulTxRtpPauseFlag;

} tOCTVC1_NET_MSG_RTP_SESSION_PAUSE_MEMBER_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_RTP_SESSION_PAUSE_MEMBER_RSP

 Members:
	Header
 		OCTVC1 Message Header
	hRtpSession
	ulLocalMemberId
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER		Header;
	tOCTVC1_HANDLE			hRtpSession;
	tOCTVC1_SUB_OBJECT_ID	ulLocalMemberId;

} tOCTVC1_NET_MSG_RTP_SESSION_PAUSE_MEMBER_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_RTP_SESSION_MODIFY_MEMBER_CMD

 Members:
	Header
 		OCTVC1 Message Header
	hRtpSession
	ulLocalMemberId
	ulModifyMask
		Default:	cOCTVC1_NET_RTP_SESSION_MODIFY_MEMBER_MASK_NONE
 		Specify which parameter must be modified.
	ulRemoteAutoDetectFlag
	ulLocalUdpPortRtp
		Range:		[0..65535]
		Default:	cOCTVC1_UDP_PORT_INVALID
 		Local RTP UDP port. This value must not be the same as ulLocalUdpPortT38 or
 		ulLocalUdpPortRtcp, and must not be used by another session.
	ulLocalUdpPortRtcp
		Range:		[0..65535]
		Default:	cOCTVC1_UDP_PORT_INVALID
 		Local RTCP UDP port. This value must not be the same as ulLocalUdpPortRtp or
 		ulLocalUdpPortT38, and must not be used by another session.
	ulLocalUdpPortT38
		Default:	cOCTVC1_UDP_PORT_INVALID
 		Local T38 UDP port. This value must not be the same as ulLocalUdpPortRtp or
 		ulLocalUdpPortRtcp, and must not be used by another session.
	RemoteUdpAddressRtp
	RemoteUdpAddressRtcp
	RemoteUdpAddressT38
	ulRemoteCnameLength
		Default:	0
	achRemoteCname
	ulRemoteForcedRtpParmMask
		Default:	cOCTVC1_NET_RTP_FORCED_PARAMETER_MASK_NONE
 		This mask is used for RTP parameters that can be automatically set by
 		Media-Gateway or force by User
	ulRemoteForcedSsrc
 		RTP SSRC value for the connection, , when
 		cOCTVC1_NET_RTP_FORCED_PARAMETER_MASK_SSRC bit is set in ulRtpParmForcedMask.
	ulRemoteForcedInitialSeqNumber
		Range:		[..0xFFFF]
 		Inital Remote Sequence Number, when
 		cOCTVC1_NET_RTP_FORCED_PARAMETER_MASK_INITIAL_SEQ_NUMBER bit is set in
 		ulRtpParmForcedMask. For SRTP, it's recommanded that initial sequence number be
 		smaller or egals to 2^15. Note this parameter is only used when
 		ulValidRemoteFlag toggle from cOCT_FALSE to cOCT_TRUE.
	SenderSrtp
 		SRTP/SRTCP configuration of SRTP sender.
	SenderSrtpKey
 		SRTP/SRTCP active key configuration for SRTP sender.
	ReceiverSrtp
 		SRTP/SRTCP configuration of SRTP sender.
	ReceiverSrtpKey
 		SRTP/SRTCP active key configuration for SRTP sender.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER							Header;
	tOCTVC1_HANDLE								hRtpSession;
	tOCTVC1_SUB_OBJECT_ID						ulLocalMemberId;
	tOCTVC1_NET_RTP_SESSION_MODIFY_MEMBER_MASK	ulModifyMask;
	tOCT_BOOL32									ulRemoteAutoDetectFlag;
	tOCT_UINT32									ulLocalUdpPortRtp;
	tOCT_UINT32									ulLocalUdpPortRtcp;
	tOCT_UINT32									ulLocalUdpPortT38;
	tOCTVC1_UDP_ADDRESS							RemoteUdpAddressRtp;
	tOCTVC1_UDP_ADDRESS							RemoteUdpAddressRtcp;
	tOCTVC1_UDP_ADDRESS							RemoteUdpAddressT38;
	tOCT_UINT32									ulRemoteCnameLength;
	tOCT_UINT8									achRemoteCname[(cOCTVC1_NET_MAX_CNAME_LENGTH+1)];
	tOCTVC1_NET_RTP_FORCED_PARAMETER_MASK		ulRemoteForcedRtpParmMask;
	tOCT_UINT32									ulRemoteForcedSsrc;
	tOCT_UINT32									ulRemoteForcedInitialSeqNumber;
	tOCTVC1_NET_SRTP_STREAM_CONFIG				SenderSrtp;
	tOCTVC1_NET_SRTP_KEY_ENTRY					SenderSrtpKey;
	tOCTVC1_NET_SRTP_STREAM_CONFIG				ReceiverSrtp;
	tOCTVC1_NET_SRTP_KEY_ENTRY					ReceiverSrtpKey;

} tOCTVC1_NET_MSG_RTP_SESSION_MODIFY_MEMBER_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_RTP_SESSION_MODIFY_MEMBER_RSP

 Members:
	Header
 		OCTVC1 Message Header
	hRtpSession
	ulLocalMemberId
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER		Header;
	tOCTVC1_HANDLE			hRtpSession;
	tOCTVC1_SUB_OBJECT_ID	ulLocalMemberId;

} tOCTVC1_NET_MSG_RTP_SESSION_MODIFY_MEMBER_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_RTP_SESSION_CONNECT_MEMBER_CMD

 Members:
	Header
 		OCTVC1 Message Header
	ulForceFlag
		Default:	cOCT_FALSE
 		What to do when one or both members are already connected.
 		cOCT_TRUE: The connected members are disconnected and a new connection is
 		established between the ones specified by the command.
 		cOCT_FALSE: The command is rejected if one of the members is already connected.
	ulRecoverNtpFromRtpTsFlag
		Default:	cOCT_FALSE
 		cOCT_TRUE: In translator mode, Rtcp report will be generated at each normal
 		RTCP interval
 		cOCT_FALSE: In translator mode, Rtcp will be generated upon reception of an
 		RTCP report at the associated RTP member.
	hRtpSession
		Default:	cOCTVC1_HANDLE_INVALID
 		RTP Session handle of the RTP Member to connect.
	ulLocalMemberId
		Default:	0
 		Identifier associated to the RTP member to connect.
	hRtpSessionAssociated
		Default:	cOCTVC1_HANDLE_INVALID
 		RTP Session handle of the RTP Member to connect to.
	ulLocalMemberIdAssociated
		Default:	0
 		Identifier associated to the RTP member to connect to.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER		Header;
	tOCT_BOOL32				ulForceFlag;
	tOCT_BOOL32				ulRecoverNtpFromRtpTsFlag;
	tOCTVC1_HANDLE			hRtpSession;
	tOCTVC1_SUB_OBJECT_ID	ulLocalMemberId;
	tOCTVC1_HANDLE			hRtpSessionAssociated;
	tOCTVC1_SUB_OBJECT_ID	ulLocalMemberIdAssociated;

} tOCTVC1_NET_MSG_RTP_SESSION_CONNECT_MEMBER_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_RTP_SESSION_CONNECT_MEMBER_RSP

 Members:
	Header
 		OCTVC1 Message Header
	hRtpSession
 		RTP Session handle of the RTP Member to connect.
	ulLocalMemberId
 		Identifier associated to the RTP member to connect.
	RtpMemberPrevConnInfo
 		Contains connection information about the RTP Member before the command was
 		received.
	hRtpSessionAssociated
 		RTP Session handle of the RTP Member to connect to.
	ulLocalMemberIdAssociated
 		Identifier associated to the RTP member to connect to.
	RtpMemberPrevConnInfoAssociated
 		Contains connection information about the RTP Member before the command was
 		received.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER					Header;
	tOCTVC1_HANDLE						hRtpSession;
	tOCTVC1_SUB_OBJECT_ID				ulLocalMemberId;
	tOCTVC1_NET_RTP_MEMBER_CONN_INFO	RtpMemberPrevConnInfo;
	tOCTVC1_HANDLE						hRtpSessionAssociated;
	tOCTVC1_SUB_OBJECT_ID				ulLocalMemberIdAssociated;
	tOCTVC1_NET_RTP_MEMBER_CONN_INFO	RtpMemberPrevConnInfoAssociated;

} tOCTVC1_NET_MSG_RTP_SESSION_CONNECT_MEMBER_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_RTP_SESSION_DISCONNECT_MEMBER_CMD

 Members:
	Header
 		OCTVC1 Message Header
	hRtpSession
		Default:	cOCTVC1_HANDLE_INVALID
 		RTP Session handle of the RTP Member to disconnect.
	ulLocalMemberId
		Default:	0
 		Identifier associated of the member to disconnect.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER		Header;
	tOCTVC1_HANDLE			hRtpSession;
	tOCTVC1_SUB_OBJECT_ID	ulLocalMemberId;

} tOCTVC1_NET_MSG_RTP_SESSION_DISCONNECT_MEMBER_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_RTP_SESSION_DISCONNECT_MEMBER_RSP

 Members:
	Header
 		OCTVC1 Message Header
	hRtpSession
 		RTP Session handle of the RTP Member.
	ulLocalMemberId
 		Identifier associated of the member.
	RtpMemberPrevConnInfo
 		Contains connection information about the RTP Member before the command was
 		received.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER					Header;
	tOCTVC1_HANDLE						hRtpSession;
	tOCTVC1_SUB_OBJECT_ID				ulLocalMemberId;
	tOCTVC1_NET_RTP_MEMBER_CONN_INFO	RtpMemberPrevConnInfo;

} tOCTVC1_NET_MSG_RTP_SESSION_DISCONNECT_MEMBER_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_RTP_SESSION_STATS_MEMBER_LOCAL_CMD

 Members:
	Header
 		OCTVC1 Message Header
	SubObjectIdGet
 		Sub-Object Id get structure.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER						Header;
	tOCTVC1_CURSOR_HANDLE_GET_SUB_OBJECT_ID	SubObjectIdGet;

} tOCTVC1_NET_MSG_RTP_SESSION_STATS_MEMBER_LOCAL_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_RTP_SESSION_STATS_MEMBER_LOCAL_RSP

 Members:
	Header
 		OCTVC1 Message Header
	SubObjectIdGet
 		Sub-Object Id get structure.
	ulRemoteMemberId
	aulReceivedPktCnt
	aulReceivedByteCnt
	SenderStats
	ReceiverStats
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER						Header;
	tOCTVC1_CURSOR_HANDLE_GET_SUB_OBJECT_ID	SubObjectIdGet;
	tOCT_UINT32								ulRemoteMemberId;
	tOCT_UINT32								aulReceivedPktCnt[2];
	tOCT_UINT32								aulReceivedByteCnt[2];
	tOCTVC1_NET_RTCP_SENDER_STATS			SenderStats;
	tOCTVC1_NET_RTCP_RECEIVER_STATS			ReceiverStats;

} tOCTVC1_NET_MSG_RTP_SESSION_STATS_MEMBER_LOCAL_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_RTP_SESSION_STATS_MEMBER_REMOTE_CMD

 Members:
	Header
 		OCTVC1 Message Header
	SubObjectIdGet
 		Sub-Object Id get structure.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER						Header;
	tOCTVC1_CURSOR_HANDLE_GET_SUB_OBJECT_ID	SubObjectIdGet;

} tOCTVC1_NET_MSG_RTP_SESSION_STATS_MEMBER_REMOTE_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_RTP_SESSION_STATS_MEMBER_REMOTE_RSP

 Members:
	Header
 		OCTVC1 Message Header
	SubObjectIdGet
 		Sub-Object Id get structure.
	ulRoundTripTime
	ulMaxRoundTripTime
	ulAverageRoundTripTime
	SenderStats
	ReceiverStats
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER						Header;
	tOCTVC1_CURSOR_HANDLE_GET_SUB_OBJECT_ID	SubObjectIdGet;
	tOCT_UINT32								ulRoundTripTime;
	tOCT_UINT32								ulMaxRoundTripTime;
	tOCT_UINT32								ulAverageRoundTripTime;
	tOCTVC1_NET_RTCP_SENDER_STATS			SenderStats;
	tOCTVC1_NET_RTCP_RECEIVER_STATS			ReceiverStats;

} tOCTVC1_NET_MSG_RTP_SESSION_STATS_MEMBER_REMOTE_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_RTP_SESSION_STATS_CMD

 Members:
	Header
 		OCTVC1 Message Header
	ObjectGet
 		Generic object get structure.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER			Header;
	tOCTVC1_CURSOR_HANDLE_GET	ObjectGet;

} tOCTVC1_NET_MSG_RTP_SESSION_STATS_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_RTP_SESSION_STATS_RSP

 Members:
	Header
 		OCTVC1 Message Header
	ObjectGet
 		Generic object get structure.
	ulNumMember
	ulNumSender
	ulSessionStartTime
	ulRxByePktCnt
	ulRxSenderJoinCnt
	ulRxMemberJoinCnt
	ulErrCollisionCnt
	ulErrLoopCnt
	ulErrRtcpPktInvalidCnt
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER			Header;
	tOCTVC1_CURSOR_HANDLE_GET	ObjectGet;
	tOCT_UINT32					ulNumMember;
	tOCT_UINT32					ulNumSender;
	tOCT_UINT32					ulSessionStartTime;
	tOCT_UINT32					ulRxByePktCnt;
	tOCT_UINT32					ulRxSenderJoinCnt;
	tOCT_UINT32					ulRxMemberJoinCnt;
	tOCT_UINT32					ulErrCollisionCnt;
	tOCT_UINT32					ulErrLoopCnt;
	tOCT_UINT32					ulErrRtcpPktInvalidCnt;

} tOCTVC1_NET_MSG_RTP_SESSION_STATS_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_RTP_SESSION_MODIFY_MEMBER_SRTP_KEY_LIST_CMD

 Members:
	Header
 		OCTVC1 Message Header
	hRtpSession
		Default:	cOCTVC1_HANDLE_INVALID
	ulLocalMemberId
	ulSenderSrtpKeyActiveIdx
		Default:	cOCTVC1_DO_NOT_MODIFY
 		Index of the Active Sender SRTP key. Range:0..ulSenderSrtpKeyNum-1
	ulSenderSrtpKeyNum
		Range:		[1..4]
		Default:	cOCTVC1_DO_NOT_MODIFY
	aSenderSrtpKeyList
 		Local sender key list. The number of key in the list is define in
 		ulLocalSenderKeyNum. Note, the new list replace older one.
	ulReceiverSrtpKeyActiveIdx
		Default:	cOCTVC1_DO_NOT_MODIFY
 		Index of the Active Receiver SRTP key. Values: 0..ulReceiverSrtpKeyNum-1
	ulReceiverSrtpKeyNum
		Range:		[1..4]
		Default:	cOCTVC1_DO_NOT_MODIFY
 		Number of Key included in aReceiverSrtpKeyList. Value of cOCTVC1_DO_NOT_MODIFY
 		means not modify the remote key list. Note, the new list replace older one.
	aReceiverSrtpKeyList
		Default:	cOCTVC1_DO_NOT_MODIFY
 		Local sender key list. The number of key in the list is define in
 		ulRemoteSenderKeyNum. Note, the new list replace older one.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER			Header;
	tOCTVC1_HANDLE				hRtpSession;
	tOCTVC1_SUB_OBJECT_ID		ulLocalMemberId;
	tOCT_UINT32					ulSenderSrtpKeyActiveIdx;
	tOCT_UINT32					ulSenderSrtpKeyNum;
	tOCTVC1_NET_SRTP_KEY_ENTRY	aSenderSrtpKeyList[cOCTVC1_NET_MAX_SRTP_KEY_LIST_NUM];
	tOCT_UINT32					ulReceiverSrtpKeyActiveIdx;
	tOCT_UINT32					ulReceiverSrtpKeyNum;
	tOCTVC1_NET_SRTP_KEY_ENTRY	aReceiverSrtpKeyList[cOCTVC1_NET_MAX_SRTP_KEY_LIST_NUM];

} tOCTVC1_NET_MSG_RTP_SESSION_MODIFY_MEMBER_SRTP_KEY_LIST_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_RTP_SESSION_MODIFY_MEMBER_SRTP_KEY_LIST_RSP

 Members:
	Header
 		OCTVC1 Message Header
	hRtpSession
	ulLocalMemberId
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER		Header;
	tOCTVC1_HANDLE			hRtpSession;
	tOCTVC1_SUB_OBJECT_ID	ulLocalMemberId;

} tOCTVC1_NET_MSG_RTP_SESSION_MODIFY_MEMBER_SRTP_KEY_LIST_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_RTP_SESSION_INFO_MEMBER_SRTP_CMD

 Members:
	Header
 		OCTVC1 Message Header
	SubObjectIdGet
 		Sub-Object Id get structure.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER						Header;
	tOCTVC1_CURSOR_HANDLE_GET_SUB_OBJECT_ID	SubObjectIdGet;

} tOCTVC1_NET_MSG_RTP_SESSION_INFO_MEMBER_SRTP_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_RTP_SESSION_INFO_MEMBER_SRTP_RSP

 Members:
	Header
 		OCTVC1 Message Header
	SubObjectIdGet
 		Sub-Object Id get structure.
	SenderSrtp
	ulSenderSrtpKeyActiveIdx
	ulSenderSrtpKeyNum
	aSenderSrtpKeyList
	ReceiverSrtp
	ulReceiverSrtpKeyActiveIdx
	ulReceiverSrtpKeyNum
	aReceiverSrtpKeyList
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER						Header;
	tOCTVC1_CURSOR_HANDLE_GET_SUB_OBJECT_ID	SubObjectIdGet;
	tOCTVC1_NET_SRTP_STREAM_CONFIG			SenderSrtp;
	tOCT_UINT32								ulSenderSrtpKeyActiveIdx;
	tOCT_UINT32								ulSenderSrtpKeyNum;
	tOCTVC1_NET_SRTP_KEY_ENTRY				aSenderSrtpKeyList[cOCTVC1_NET_MAX_SRTP_KEY_LIST_NUM];
	tOCTVC1_NET_SRTP_STREAM_CONFIG			ReceiverSrtp;
	tOCT_UINT32								ulReceiverSrtpKeyActiveIdx;
	tOCT_UINT32								ulReceiverSrtpKeyNum;
	tOCTVC1_NET_SRTP_KEY_ENTRY				aReceiverSrtpKeyList[cOCTVC1_NET_MAX_SRTP_KEY_LIST_NUM];

} tOCTVC1_NET_MSG_RTP_SESSION_INFO_MEMBER_SRTP_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_RTP_SESSION_STATS_MEMBER_SRTP_CMD

 Members:
	Header
 		OCTVC1 Message Header
	SubObjectIdGet
 		Sub-Object Id get structure.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER						Header;
	tOCTVC1_CURSOR_HANDLE_GET_SUB_OBJECT_ID	SubObjectIdGet;

} tOCTVC1_NET_MSG_RTP_SESSION_STATS_MEMBER_SRTP_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_RTP_SESSION_STATS_MEMBER_SRTP_RSP

 Members:
	Header
 		OCTVC1 Message Header
	SubObjectIdGet
 		Sub-Object Id get structure.
	SenderSrtpStats
	ReceiverSrtpStats
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER						Header;
	tOCTVC1_CURSOR_HANDLE_GET_SUB_OBJECT_ID	SubObjectIdGet;
	tOCTVC1_NET_SRTP_STREAM_STATS			SenderSrtpStats;
	tOCTVC1_NET_SRTP_STREAM_STATS			ReceiverSrtpStats;

} tOCTVC1_NET_MSG_RTP_SESSION_STATS_MEMBER_SRTP_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_RTP_SESSION_MODIFY_MEMBER_RTP_PROFILE_ENTRY_CMD

 Members:
	Header
 		OCTVC1 Message Header
	hRtpSession
	ulLocalMemberId
	ulNumEntry
	aEntry
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER						Header;
	tOCTVC1_HANDLE							hRtpSession;
	tOCTVC1_SUB_OBJECT_ID					ulLocalMemberId;
	tOCT_UINT32								ulNumEntry;
	tOCTVC1_NET_RTP_PROFILE_MODIFY_ENTRY	aEntry[cOCTVC1_NET_MAX_RTP_PROFILE_ENTRY];

} tOCTVC1_NET_MSG_RTP_SESSION_MODIFY_MEMBER_RTP_PROFILE_ENTRY_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_RTP_SESSION_MODIFY_MEMBER_RTP_PROFILE_ENTRY_RSP

 Members:
	Header
 		OCTVC1 Message Header
	hRtpSession
	ulLocalMemberId
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER		Header;
	tOCTVC1_HANDLE			hRtpSession;
	tOCTVC1_SUB_OBJECT_ID	ulLocalMemberId;

} tOCTVC1_NET_MSG_RTP_SESSION_MODIFY_MEMBER_RTP_PROFILE_ENTRY_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_LOCAL_HOST_OPEN_CMD

 Members:
	Header
 		OCTVC1 Message Header
	IpAddress
 		IP address of the Local Host. This is the IP address used by the host to send
 		and receive IP packets.
 		See ulAddrAutoConfigFlag to determine if the parameter must be configured.
	NetworkMask
 		IP mask of the Local Host. The IP version of the mask must match the one
 		defined in
 		IpAddress. In the case of IPv6, the mask indicates which bits from IpAddress
 		represent the address’s prefix.
 		See ulAddrAutoConfigFlag to determine if the parameter must be configured.
	ulAddrAutoConfigFlag
		Default:	cOCT_FALSE
 		Whether or not to use auto-configuration to configure the host.
 		If set to cOCT_FALSE, use IpAddress and NetworkMask to configure the host.
 		If set to cOCT_TRUE, only use IpAddress.ulIpVersion and auto-configuration to
 		configure the host.
	ulMuteOnAddrExpireFlag
		Default:	cOCT_TRUE
 		Determines what to do with terminations active on an auto-configured host whose
 		address has expired.
 		If set to cOCT_TRUE will disable all Tx termination traffic, and the host will
 		no longer reply
 		to any ICMP messages.
 		Setting to cOCT_FALSE does nothing to either the terminations or the host.
 		This parameter is used only if ulAddrAutoConfigFlag is set to cOCT_TRUE.
	hLink
 		Handle that uniquely identifies the Link Object.
	ulUserEventId
 		User-specified value that is included in the events packets generated by this
 		object.
	ulEventMask
 		Bit mask used to configure the type of Internet Control Message Protocol (ICMP)
 		packet that will generate events.
	ulEventThrottle
 		Maximum number of Host events that can be generated every second.
	hEventDestObj
 		Event object handle inserted in packets sent on port 256.
	ulEventDestObjPort
 		Event object Packet Port inserted in packets sent on port 256.
	ulEventDestObjFifoId
		Default:	cOCTVC1_FIFO_ID_INVALID
 		Event FIFO ID inserted in packets sent on port 256.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER				Header;
	tOCTVC1_IP_ADDRESS				IpAddress;
	tOCTVC1_IP_ADDRESS				NetworkMask;
	tOCT_BOOL32						ulAddrAutoConfigFlag;
	tOCT_BOOL32						ulMuteOnAddrExpireFlag;
	tOCTVC1_HANDLE					hLink;
	tOCT_UINT32						ulUserEventId;
	tOCTVC1_NET_LOCAL_HOST_EVT_MASK	ulEventMask;
	tOCT_UINT32						ulEventThrottle;
	tOCTVC1_HANDLE					hEventDestObj;
	tOCT_UINT32						ulEventDestObjPort;
	tOCT_UINT32						ulEventDestObjFifoId;

} tOCTVC1_NET_MSG_LOCAL_HOST_OPEN_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_LOCAL_HOST_OPEN_RSP

 Members:
	Header
 		OCTVC1 Message Header
	hLocalHost
 		Handle that uniquely identifies the Local Host.
	ulAddrStatus
 		Status of the IP address assigned to the Local Host. This status is determined
 		using Duplicate Address Detection (DAD).
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER						Header;
	tOCTVC1_HANDLE							hLocalHost;
	tOCTVC1_NET_LOCAL_HOST_ADDR_STATUS_ENUM	ulAddrStatus;

} tOCTVC1_NET_MSG_LOCAL_HOST_OPEN_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_LOCAL_HOST_CLOSE_CMD

 Members:
	Header
 		OCTVC1 Message Header
	hLocalHost
 		Handle of the Local Host.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCTVC1_HANDLE		hLocalHost;

} tOCTVC1_NET_MSG_LOCAL_HOST_CLOSE_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_LOCAL_HOST_CLOSE_RSP

 Members:
	Header
 		OCTVC1 Message Header
	hLocalHost
 		Handle of the Local Host.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCTVC1_HANDLE		hLocalHost;

} tOCTVC1_NET_MSG_LOCAL_HOST_CLOSE_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_LOCAL_HOST_INFO_CMD

 Members:
	Header
 		OCTVC1 Message Header
	ObjectGet
 		Generic object get structure.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER			Header;
	tOCTVC1_CURSOR_HANDLE_GET	ObjectGet;

} tOCTVC1_NET_MSG_LOCAL_HOST_INFO_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_LOCAL_HOST_INFO_RSP

 Members:
	Header
 		OCTVC1 Message Header
	ObjectGet
 		Generic object get structure.
	ulAddrAutoConfigFlag
 		Whether or not auto-configuration was used to configure the host.
	IpAddress
 		IP address of the Local Host. This is the IP address used by the host to send
 		and
 		receive IP packets.
	NetworkMask
 		IP mask of Local Host. The IP version of the mask must match the one defined in
 		IpAddress. In the case of IPv6, the mask indicates which bits from IpAddress
 		represent the address’s prefix.
	hLink
 		Handle that uniquely identifies the Link Object.
	ulAddrStatus
 		Status of the IP address assigned to the Local Host. This status is determined
 		using
 		Duplicate Address Detection (DAD).
	ulUserEventId
 		User-specified value that is included in the events packets generated by this
 		object.
	ulEventThrottle
 		Maximum number of Host events that can be generated every second.
	ulEventMask
 		Bit mask used to configure the type of Internet Control Message Protocol (ICMP)
 		packet that will generate events.
	hEventDestObj
 		Event object handle inserted in packets sent on port 256.
	ulEventDestObjPort
 		Event object Packet Port inserted in packets sent on port 256.
	ulEventDestObjFifoId
 		Event FIFO ID inserted in packets sent on port 256.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER						Header;
	tOCTVC1_CURSOR_HANDLE_GET				ObjectGet;
	tOCT_BOOL32								ulAddrAutoConfigFlag;
	tOCTVC1_IP_ADDRESS						IpAddress;
	tOCTVC1_IP_ADDRESS						NetworkMask;
	tOCTVC1_HANDLE							hLink;
	tOCTVC1_NET_LOCAL_HOST_ADDR_STATUS_ENUM	ulAddrStatus;
	tOCT_UINT32								ulUserEventId;
	tOCT_UINT32								ulEventThrottle;
	tOCTVC1_NET_LOCAL_HOST_EVT_MASK			ulEventMask;
	tOCTVC1_HANDLE							hEventDestObj;
	tOCT_UINT32								ulEventDestObjPort;
	tOCT_UINT32								ulEventDestObjFifoId;

} tOCTVC1_NET_MSG_LOCAL_HOST_INFO_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_LOCAL_HOST_SEND_ICMP_PING_CMD

 Members:
	Header
 		OCTVC1 Message Header
	hLocalHost
	RemoteIpAddress
	ulTimeout
		Default:	2000
	ulTimeToLive
		Default:	8
	ulUserEventId
	ulPayloadLength
	abyPayload
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCTVC1_HANDLE		hLocalHost;
	tOCTVC1_IP_ADDRESS	RemoteIpAddress;
	tOCT_UINT32			ulTimeout;
	tOCT_UINT32			ulTimeToLive;
	tOCT_UINT32			ulUserEventId;
	tOCT_UINT32			ulPayloadLength;
	tOCT_UINT8			abyPayload[cOCTVC1_NET_ICMP_PING_MAX_PAYLOAD_LENGTH];

} tOCTVC1_NET_MSG_LOCAL_HOST_SEND_ICMP_PING_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_LOCAL_HOST_SEND_ICMP_PING_RSP

 Members:
	Header
 		OCTVC1 Message Header
	hLocalHost
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCTVC1_HANDLE		hLocalHost;

} tOCTVC1_NET_MSG_LOCAL_HOST_SEND_ICMP_PING_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_LOCAL_HOST_START_ADDR_VALIDATE_CMD

 Members:
	Header
 		OCTVC1 Message Header
	hLocalHost
	ulProbeIntervalMs
		Default:	500
	ulNumProbe
		Range:		[0..15]
		Default:	3
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCTVC1_HANDLE		hLocalHost;
	tOCT_UINT32			ulProbeIntervalMs;
	tOCT_UINT32			ulNumProbe;

} tOCTVC1_NET_MSG_LOCAL_HOST_START_ADDR_VALIDATE_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_LOCAL_HOST_START_ADDR_VALIDATE_RSP

 Members:
	Header
 		OCTVC1 Message Header
	hLocalHost
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCTVC1_HANDLE		hLocalHost;

} tOCTVC1_NET_MSG_LOCAL_HOST_START_ADDR_VALIDATE_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_LOCAL_HOST_STATS_CMD

 Members:
	Header
 		OCTVC1 Message Header
	ObjectGet
 		Generic object get structure.
	ulResetStatsFlag
 		Reset stats flag.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER			Header;
	tOCTVC1_CURSOR_HANDLE_GET	ObjectGet;
	tOCT_BOOL32					ulResetStatsFlag;

} tOCTVC1_NET_MSG_LOCAL_HOST_STATS_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_LOCAL_HOST_STATS_RSP

 Members:
	Header
 		OCTVC1 Message Header
	ObjectGet
 		Generic object get structure.
	ulApiEventCnt
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER			Header;
	tOCTVC1_CURSOR_HANDLE_GET	ObjectGet;
	tOCT_UINT32					ulApiEventCnt;

} tOCTVC1_NET_MSG_LOCAL_HOST_STATS_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_LINK_ADD_GATEWAY_CMD

 Members:
	Header
 		OCTVC1 Message Header
	hLink
	IpAddress
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCTVC1_HANDLE		hLink;
	tOCTVC1_IP_ADDRESS	IpAddress;

} tOCTVC1_NET_MSG_LINK_ADD_GATEWAY_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_LINK_ADD_GATEWAY_RSP

 Members:
	Header
 		OCTVC1 Message Header
	hLink
	IpAddress
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCTVC1_HANDLE		hLink;
	tOCTVC1_IP_ADDRESS	IpAddress;

} tOCTVC1_NET_MSG_LINK_ADD_GATEWAY_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_LINK_REMOVE_GATEWAY_CMD

 Members:
	Header
 		OCTVC1 Message Header
	hLink
	IpAddress
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCTVC1_HANDLE		hLink;
	tOCTVC1_IP_ADDRESS	IpAddress;

} tOCTVC1_NET_MSG_LINK_REMOVE_GATEWAY_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_LINK_REMOVE_GATEWAY_RSP

 Members:
	Header
 		OCTVC1 Message Header
	hLink
	IpAddress
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCTVC1_HANDLE		hLink;
	tOCTVC1_IP_ADDRESS	IpAddress;

} tOCTVC1_NET_MSG_LINK_REMOVE_GATEWAY_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_LINK_INFO_GATEWAY_CMD

 Members:
	Header
 		OCTVC1 Message Header
	GatewayGet
 		IP Address cursor
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER		Header;
	tOCTVC1_NET_IP_CURSOR	GatewayGet;

} tOCTVC1_NET_MSG_LINK_INFO_GATEWAY_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_LINK_INFO_GATEWAY_RSP

 Members:
	Header
 		OCTVC1 Message Header
	GatewayGet
 		IP Address cursor
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER		Header;
	tOCTVC1_NET_IP_CURSOR	GatewayGet;

} tOCTVC1_NET_MSG_LINK_INFO_GATEWAY_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_LINK_ADD_IPV6_PREFIX_CMD

 Members:
	Header
 		OCTVC1 Message Header
	hLink
	IPv6Prefix
	ulOnLinkFlag
	ulAddrAutoConfigFlag
	ulValidLifetimeSec
	ulPreferredLifetimeSec
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER				Header;
	tOCTVC1_HANDLE					hLink;
	tOCTVC1_NET_LINK_IPV6_PREFIX	IPv6Prefix;
	tOCT_BOOL32						ulOnLinkFlag;
	tOCT_BOOL32						ulAddrAutoConfigFlag;
	tOCT_UINT32						ulValidLifetimeSec;
	tOCT_UINT32						ulPreferredLifetimeSec;

} tOCTVC1_NET_MSG_LINK_ADD_IPV6_PREFIX_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_LINK_ADD_IPV6_PREFIX_RSP

 Members:
	Header
 		OCTVC1 Message Header
	hLink
	IPv6Prefix
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER				Header;
	tOCTVC1_HANDLE					hLink;
	tOCTVC1_NET_LINK_IPV6_PREFIX	IPv6Prefix;

} tOCTVC1_NET_MSG_LINK_ADD_IPV6_PREFIX_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_LINK_REMOVE_IPV6_PREFIX_CMD

 Members:
	Header
 		OCTVC1 Message Header
	hLink
	IPv6Prefix
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER				Header;
	tOCTVC1_HANDLE					hLink;
	tOCTVC1_NET_LINK_IPV6_PREFIX	IPv6Prefix;

} tOCTVC1_NET_MSG_LINK_REMOVE_IPV6_PREFIX_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_LINK_REMOVE_IPV6_PREFIX_RSP

 Members:
	Header
 		OCTVC1 Message Header
	hLink
	IPv6Prefix
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER				Header;
	tOCTVC1_HANDLE					hLink;
	tOCTVC1_NET_LINK_IPV6_PREFIX	IPv6Prefix;

} tOCTVC1_NET_MSG_LINK_REMOVE_IPV6_PREFIX_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_LINK_INFO_IPV6_PREFIX_CMD

 Members:
	Header
 		OCTVC1 Message Header
	IPv6PrefixGet
 		IP Address cursor
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER				Header;
	tOCTVC1_NET_IPV6_PREFIX_CURSOR	IPv6PrefixGet;

} tOCTVC1_NET_MSG_LINK_INFO_IPV6_PREFIX_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_LINK_INFO_IPV6_PREFIX_RSP

 Members:
	Header
 		OCTVC1 Message Header
	IPv6PrefixGet
 		IP Address cursor
	IPv6PrefixInfo
 		IPv6 information structure.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER					Header;
	tOCTVC1_NET_IPV6_PREFIX_CURSOR		IPv6PrefixGet;
	tOCTVC1_NET_LINK_IPV6_PREFIX_INFO	IPv6PrefixInfo;

} tOCTVC1_NET_MSG_LINK_INFO_IPV6_PREFIX_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_RTP_SESSION_ACTIVATE_CUSTOM_MEMBER_IPUDP_CMD

 Members:
	Header
 		OCTVC1 Message Header
	hRtpSession
	hTerm
	aStream
 		Array of transport structure. Each entry contains packet headers and routing
 		config for one of these data streams: RTP, RTCP or T38_UDPTL.
	ulLocalForcedRtpParmMask
		Default:	cOCTVC1_NET_RTP_FORCED_PARAMETER_MASK_NONE
 		This mask is used for RTP parameters that can be automatically set by
 		Media-Gateway or force by User.
	ulLocalForcedSsrc
 		RTP SSRC value for the connection, , when
 		cOCTVC1_NET_RTP_FORCED_PARAMETER_MASK_SSRC bit is set in
 		ulLocalForcedRtpParmMask.
	ulLocalForcedInitialSeqNumber
 		16-bit value. Initial Local Sequence Number, when
 		cOCTVC1_NET_RTP_FORCED_PARAMETER_MASK_INITIAL_SEQ_NUMBER bit is set in
 		ulLocalForcedRtpParmMask. For SRTP, it is recommended for the initial sequence
 		number to be smaller or equal to 2^15. Note this parameter is only used when
 		ulValidRemoteFlag toggle from cOCT_FALSE to cOCT_TRUE.
	ulNumRtpProfEntry
		Default:	1
 		Number of valid RTP profile entry.
	aRtpProfEntry
 		Array of RTP profille entry.
	ulLocalCnameByteLength
		Default:	0
 		Byte length of the local CNAME.
	achLocalCname
 		Specifies the local canonical name to be used for RTCP reports. The user
 		application must specify a non-zero length string. The name is encoded
 		according to the UTF-2 encoding specified in Annex F of ISO standard 10646.
 		US-ASCII is a subset of this encoding and requires no additional encoding. The
 		name is not null terminated. The size of this field is aligned on a 32-bit
 		boundary. Characters beyond the 255th characters are ignored.
	ulRemoteCnameByteLength
		Default:	0
 		Byte length of the remote CNAME.
	achRemoteCname
 		RTP Canonical Name associated with the remote source. The name is encoded
 		according to the UTF-2 encoding specified in Annex F of ISO standard 10646.
 		US-ASCII is a subset of this encoding and requires no additional encoding. The
 		name is not null terminated.The size of this field is aligned on a 32-bit
 		boundary. Characters beyond the 255th characters are ignored.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER						Header;
	tOCTVC1_HANDLE							hRtpSession;
	tOCTVC1_HANDLE							hTerm;
	tOCTVC1_NET_CUSTOM_MEMBER_IPUDP_STREAM	aStream[cOCTVC1_NET_RTP_MEMBER_MAX_STREAM];
	tOCTVC1_NET_RTP_FORCED_PARAMETER_MASK	ulLocalForcedRtpParmMask;
	tOCT_UINT32								ulLocalForcedSsrc;
	tOCT_UINT32								ulLocalForcedInitialSeqNumber;
	tOCT_UINT32								ulNumRtpProfEntry;
	tOCTVC1_NET_RTP_PROFILE_ENTRY			aRtpProfEntry[cOCTVC1_NET_MAX_RTP_PROFILE_ENTRY];
	tOCT_UINT32								ulLocalCnameByteLength;
	tOCT_UINT8								achLocalCname[(cOCTVC1_NET_MAX_CNAME_LENGTH+1)];
	tOCT_UINT32								ulRemoteCnameByteLength;
	tOCT_UINT8								achRemoteCname[(cOCTVC1_NET_MAX_CNAME_LENGTH+1)];

} tOCTVC1_NET_MSG_RTP_SESSION_ACTIVATE_CUSTOM_MEMBER_IPUDP_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_RTP_SESSION_ACTIVATE_CUSTOM_MEMBER_IPUDP_RSP

 Members:
	Header
 		OCTVC1 Message Header
	hRtpSession
	ulLocalMemberId
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER		Header;
	tOCTVC1_HANDLE			hRtpSession;
	tOCTVC1_SUB_OBJECT_ID	ulLocalMemberId;

} tOCTVC1_NET_MSG_RTP_SESSION_ACTIVATE_CUSTOM_MEMBER_IPUDP_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_RTP_SESSION_MODIFY_CUSTOM_MEMBER_IPUDP_CMD

 Members:
	Header
 		OCTVC1 Message Header
	hRtpSession
	ulLocalMemberId
	ulModifyMask
		Default:	cOCTVC1_NET_CUSTOM_MEMBER_MODIFY_MASK_NONE
 		Bit mask used to modify some fields of an RTP session custom member
	aStream
 		Array of transport structure. Each entry contains packet headers and routing
 		config for one of these data streams: RTP, RTCP or T38_UDPTL. To modify one of
 		those entry, the associated bit in ulModifyMask must be set to 1
	ulLocalCnameByteLength
		Default:	0
 		Byte length of the local CNAME. This field is only processed if ulModifyMask is
 		set to cOCTVC1_NET_CUSTOM_MEMBER_MODIFY_MASK_CNAME_LOCAL.
	achLocalCname
 		Specifies the local canonical name to be used for RTCP reports. The user
 		application must specify a non-zero length string. The name is encoded
 		according to the UTF-2 encoding specified in Annex F of ISO standard 10646.
 		US-ASCII is a subset of this encoding and requires no additional encoding. The
 		name is not null terminated. The size of this field is aligned on a 32-bit
 		boundary. Characters beyond the 255th characters are ignored. This field is
 		only processed if ulModifyMask is set to
 		cOCTVC1_NET_CUSTOM_MEMBER_MODIFY_MASK_CNAME_LOCAL.
	ulRemoteCnameByteLength
		Default:	0
 		Byte length of the remote CNAME.This field is only processed if ulModifyMask is
 		set to cOCTVC1_NET_CUSTOM_MEMBER_MODIFY_MASK_CNAME_REMOTE.
	achRemoteCname
 		RTP Canonical Name associated with the remote source. The name is encoded
 		according to the UTF-2 encoding specified in Annex F of ISO standard 10646.
 		US-ASCII is a subset of this encoding and requires no additional encoding. The
 		name is not null terminated.The size of this field is aligned on a 32-bit
 		boundary. Characters beyond the 255th characters are ignored.This field is only
 		processed if ulModifyMask is set to
 		cOCTVC1_NET_CUSTOM_MEMBER_MODIFY_MASK_CNAME_REMOTE.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER								Header;
	tOCTVC1_HANDLE									hRtpSession;
	tOCTVC1_SUB_OBJECT_ID							ulLocalMemberId;
	tOCTVC1_NET_CUSTOM_MEMBER_MODIFY_MASK			ulModifyMask;
	tOCTVC1_NET_CUSTOM_MEMBER_IPUDP_STREAM_MODIFY	aStream[cOCTVC1_NET_RTP_MEMBER_MAX_STREAM];
	tOCT_UINT32										ulLocalCnameByteLength;
	tOCT_UINT8										achLocalCname[(cOCTVC1_NET_MAX_CNAME_LENGTH+1)];
	tOCT_UINT32										ulRemoteCnameByteLength;
	tOCT_UINT8										achRemoteCname[(cOCTVC1_NET_MAX_CNAME_LENGTH+1)];

} tOCTVC1_NET_MSG_RTP_SESSION_MODIFY_CUSTOM_MEMBER_IPUDP_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_RTP_SESSION_MODIFY_CUSTOM_MEMBER_IPUDP_RSP

 Members:
	Header
 		OCTVC1 Message Header
	hRtpSession
	ulLocalMemberId
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER		Header;
	tOCTVC1_HANDLE			hRtpSession;
	tOCTVC1_SUB_OBJECT_ID	ulLocalMemberId;

} tOCTVC1_NET_MSG_RTP_SESSION_MODIFY_CUSTOM_MEMBER_IPUDP_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_RTP_SESSION_INFO_CUSTOM_MEMBER_IPUDP_CMD

 Members:
	Header
 		OCTVC1 Message Header
	SubObjectIdGet
 		Sub-Object Id get structure.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER						Header;
	tOCTVC1_CURSOR_HANDLE_GET_SUB_OBJECT_ID	SubObjectIdGet;

} tOCTVC1_NET_MSG_RTP_SESSION_INFO_CUSTOM_MEMBER_IPUDP_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_RTP_SESSION_INFO_CUSTOM_MEMBER_IPUDP_RSP

 Members:
	Header
 		OCTVC1 Message Header
	SubObjectIdGet
 		Sub-Object Id get structure.
	ulOperationMode
	hTerm
	aStream
 		Array of transport structure. Each entry contains packet headers and routing
 		config for one of these data streams: RTP, RTCP or T38_UDPTL.
	ulNumRtpProfEntry
 		Number of valid RTP profile entry.
	aRtpProfEntry
 		Array of RTP profille entry.
	ulLocalCnameByteLength
 		Byte length of the local CNAME.
	achLocalCname
 		Specifies the local canonical name to be used for RTCP reports. The user
 		application must specify a non-zero length string. The name is encoded
 		according to the UTF-2 encoding specified in Annex F of ISO standard 10646.
 		US-ASCII is a subset of this encoding and requires no additional encoding. The
 		name is not null terminated. The size of this field is aligned on a 32-bit
 		boundary. Characters beyond the 255th characters are ignored.
	ulRemoteCnameByteLength
 		Byte length of the remote CNAME.
	achRemoteCname
 		RTP Canonical Name associated with the remote source. The name is encoded
 		according to the UTF-2 encoding specified in Annex F of ISO standard 10646.
 		US-ASCII is a subset of this encoding and requires no additional encoding. The
 		name is not null terminated.The size of this field is aligned on a 32-bit
 		boundary. Characters beyond the 255th characters are ignored.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER						Header;
	tOCTVC1_CURSOR_HANDLE_GET_SUB_OBJECT_ID	SubObjectIdGet;
	tOCTVC1_NET_OPERATION_MODE_ENUM			ulOperationMode;
	tOCTVC1_HANDLE							hTerm;
	tOCTVC1_NET_CUSTOM_MEMBER_IPUDP_STREAM	aStream[cOCTVC1_NET_RTP_MEMBER_MAX_STREAM];
	tOCT_UINT32								ulNumRtpProfEntry;
	tOCTVC1_NET_RTP_PROFILE_ENTRY			aRtpProfEntry[cOCTVC1_NET_MAX_RTP_PROFILE_ENTRY];
	tOCT_UINT32								ulLocalCnameByteLength;
	tOCT_UINT8								achLocalCname[(cOCTVC1_NET_MAX_CNAME_LENGTH+1)];
	tOCT_UINT32								ulRemoteCnameByteLength;
	tOCT_UINT8								achRemoteCname[(cOCTVC1_NET_MAX_CNAME_LENGTH+1)];

} tOCTVC1_NET_MSG_RTP_SESSION_INFO_CUSTOM_MEMBER_IPUDP_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_RTP_SESSION_OPEN_CMD

 Members:
	Header
 		OCTVC1 Message Header
	hLocalHost
	ulRtpEventMask
	ulRtcpEventMask
	ulSrtpEventMask
		Default:	cOCTVC1_NET_SRTP_EVT_MASK_NONE
 		Bit field that contains the list of RTCP events that can be generated by this
 		session.
	ulUserEventId
	ulInitialOperationMode
		Default:	cOCTVC1_NET_OPERATION_MODE_ENUM_ENDPOINT
	ulSenderMaxPendingTimeSec
		Default:	0
	ulSenderMaxInactiveTimeSec
		Default:	0
	ulRtcpEnableFlag
		Default:	cOCT_TRUE
	ulRtcpVideoFeedbackEnableFlagMask
	ulRtpSessionBandwidth
		Default:	160
	ulHighFractionLost
	ulHighCumulativePacketLost
	ulHighJitter
	ulHighRoundTripTime
	ulLowFractionLost
	ulLowJitter
	ulLowRoundTripTime
	hEventDestObj
	ulEventDestObjPort
	ulEventDestObjFifoId
		Default:	cOCTVC1_FIFO_ID_INVALID
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER					Header;
	tOCTVC1_HANDLE						hLocalHost;
	tOCTVC1_NET_RTP_EVT_MASK			ulRtpEventMask;
	tOCTVC1_NET_RTCP_EVT_MASK			ulRtcpEventMask;
	tOCTVC1_NET_SRTP_EVT_MASK			ulSrtpEventMask;
	tOCT_UINT32							ulUserEventId;
	tOCTVC1_NET_OPERATION_MODE_ENUM		ulInitialOperationMode;
	tOCT_UINT32							ulSenderMaxPendingTimeSec;
	tOCT_UINT32							ulSenderMaxInactiveTimeSec;
	tOCT_BOOL32							ulRtcpEnableFlag;
	tOCTVC1_NET_VIDEO_RTCP_FB_MSG_MASK	ulRtcpVideoFeedbackEnableFlagMask;
	tOCT_UINT32							ulRtpSessionBandwidth;
	tOCT_UINT32							ulHighFractionLost;
	tOCT_UINT32							ulHighCumulativePacketLost;
	tOCT_UINT32							ulHighJitter;
	tOCT_UINT32							ulHighRoundTripTime;
	tOCT_UINT32							ulLowFractionLost;
	tOCT_UINT32							ulLowJitter;
	tOCT_UINT32							ulLowRoundTripTime;
	tOCTVC1_HANDLE						hEventDestObj;
	tOCT_UINT32							ulEventDestObjPort;
	tOCT_UINT32							ulEventDestObjFifoId;

} tOCTVC1_NET_MSG_RTP_SESSION_OPEN_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_NET_MSG_RTP_SESSION_OPEN_RSP

 Members:
	Header
 		OCTVC1 Message Header
	hRtpSession
	ulFifoId
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCTVC1_HANDLE		hRtpSession;
	tOCT_UINT32			ulFifoId;

} tOCTVC1_NET_MSG_RTP_SESSION_OPEN_RSP;


/***************  INCLUDE FILES WITH DEPENDENCIES ON THIS FILE  **************/
#include "octvc1_net_evt.h"

#ifdef cDO_PRAGMA_PACK_POP
#pragma pack( pop )
#endif /* cDO_PRAGMA_PACK_POP */
#undef cDO_PRAGMA_PACK_POP

#endif /* __OCTVC1_NET_API_H__ */

