Amazon Kinesis Webrtc C SDK
NatBehaviorDiscovery.h
Go to the documentation of this file.
1 #ifndef __KINESIS_VIDEO_WEBRTC_ICE_NAT_BEHAVIOR_DISCOVERY__
2 #define __KINESIS_VIDEO_WEBRTC_ICE_NAT_BEHAVIOR_DISCOVERY__
3 
4 #pragma once
5 
6 #ifdef __cplusplus
7 extern "C" {
8 #endif
9 
10 #define DEFAULT_NAT_TEST_MAX_BINDING_REQUEST_COUNT 5
11 #define DEFAULT_TEST_NAT_TEST_RESPONSE_WAIT_TIME 500 * HUNDREDS_OF_NANOS_IN_A_MILLISECOND
12 #define NAT_BEHAVIOR_DISCOVER_PROCESS_TEST_COUNT 3
13 
14 #define NAT_BEHAVIOR_NONE_STR (PCHAR) "NONE"
15 #define NAT_BEHAVIOR_NOT_BEHIND_ANY_NAT_STR (PCHAR) "NOT_BEHIND_ANY_NAT"
16 #define NAT_BEHAVIOR_NO_UDP_CONNECTIVITY_STR (PCHAR) "NO_UDP_CONNECTIVITY"
17 #define NAT_BEHAVIOR_ENDPOINT_INDEPENDENT_STR (PCHAR) "ENDPOINT_INDEPENDENT"
18 #define NAT_BEHAVIOR_ADDRESS_DEPENDENT_STR (PCHAR) "ADDRESS_DEPENDENT"
19 #define NAT_BEHAVIOR_PORT_DEPENDENT_STR (PCHAR) "PORT_DEPENDENT"
20 
21 typedef struct {
22  /* Should be able to contain max number of binding response we can get */
25  CVAR cvar;
26  MUTEX lock;
28 
30 
32 
34 
36 
38 
39 #ifdef __cplusplus
40 }
41 #endif
42 #endif /* __KINESIS_VIDEO_WEBRTC_ICE_NAT_BEHAVIOR_DISCOVERY__ */
STATUS natTestIncomingDataHandler(UINT64, PSocketConnection, PBYTE, UINT32, PKvsIpAddress, PKvsIpAddress)
Definition: NatBehaviorDiscovery.c:5
#define NAT_BEHAVIOR_DISCOVER_PROCESS_TEST_COUNT
Definition: NatBehaviorDiscovery.h:12
STATUS discoverNatFilteringBehavior(PIceServer, PNatTestData, PSocketConnection, NAT_BEHAVIOR *)
Definition: NatBehaviorDiscovery.c:196
#define DEFAULT_NAT_TEST_MAX_BINDING_REQUEST_COUNT
Definition: NatBehaviorDiscovery.h:10
STATUS executeNatTest(PStunPacket, PKvsIpAddress, PSocketConnection, UINT32, PNatTestData, PStunPacket *)
Definition: NatBehaviorDiscovery.c:35
STATUS discoverNatMappingBehavior(PIceServer, PNatTestData, PSocketConnection, NAT_BEHAVIOR *)
Definition: NatBehaviorDiscovery.c:106
struct NatTestData * PNatTestData
STATUS getMappAddressAttribute(PStunPacket, PStunAttributeAddress *)
Definition: NatBehaviorDiscovery.c:78
NAT_BEHAVIOR
Detected network environment.
Definition: Include.h:941
Definition: IceUtils.h:53
Definition: Include_i.h:99
Definition: NatBehaviorDiscovery.h:21
MUTEX lock
Definition: NatBehaviorDiscovery.h:26
CVAR cvar
Definition: NatBehaviorDiscovery.h:25
UINT32 bindingResponseCount
Definition: NatBehaviorDiscovery.h:24
Definition: Stun.h:244
Definition: Stun.h:357
Definition: SocketConnection.h:25