Amazon Kinesis Webrtc C SDK
Loading...
Searching...
No Matches
IceAgent.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  RtcIceServerDiagnostics
struct  RtcIceCandidateDiagnostics
struct  RtcIceCandidatePairDiagnostics
struct  IceAgentCallbacks
struct  IceCandidate
struct  IceCandidatePair
struct  IceAgentProfileDiagnostics
struct  __IceAgent

Macros

#define KVS_ICE_MAX_CANDIDATE_PAIR_COUNT   1024
#define KVS_ICE_MAX_REMOTE_CANDIDATE_COUNT   100
#define KVS_ICE_MAX_LOCAL_CANDIDATE_COUNT   100
#define KVS_ICE_GATHER_REFLEXIVE_AND_RELAYED_CANDIDATE_TIMEOUT   (10 * HUNDREDS_OF_NANOS_IN_A_SECOND)
#define KVS_ICE_CONNECTIVITY_CHECK_TIMEOUT    (12 * HUNDREDS_OF_NANOS_IN_A_SECOND)
#define KVS_ICE_CANDIDATE_NOMINATION_TIMEOUT    (12 * HUNDREDS_OF_NANOS_IN_A_SECOND)
#define KVS_ICE_SEND_KEEP_ALIVE_INTERVAL   (15 * HUNDREDS_OF_NANOS_IN_A_SECOND)
#define KVS_ICE_TURN_CONNECTION_SHUTDOWN_TIMEOUT   (1 * HUNDREDS_OF_NANOS_IN_A_SECOND)
#define KVS_ICE_DEFAULT_TIMER_START_DELAY   (3 * HUNDREDS_OF_NANOS_IN_A_MILLISECOND)
#define KVS_ICE_SHORT_CHECK_DELAY   (50 * HUNDREDS_OF_NANOS_IN_A_MILLISECOND)
#define KVS_ICE_CONNECTION_CHECK_POLLING_INTERVAL   (50 * HUNDREDS_OF_NANOS_IN_A_MILLISECOND)
#define KVS_ICE_STATE_READY_TIMER_POLLING_INTERVAL   (1 * HUNDREDS_OF_NANOS_IN_A_SECOND)
#define KVS_ICE_GATHER_CANDIDATE_TIMER_POLLING_INTERVAL   (50 * HUNDREDS_OF_NANOS_IN_A_MILLISECOND)
#define KVS_ICE_ENTER_STATE_DISCONNECTION_GRACE_PERIOD   (2 * KVS_ICE_SEND_KEEP_ALIVE_INTERVAL)
#define KVS_ICE_ENTER_STATE_FAILED_GRACE_PERIOD   (15 * HUNDREDS_OF_NANOS_IN_A_SECOND)
#define STUN_HEADER_MAGIC_BYTE_OFFSET   4
#define KVS_ICE_MAX_RELAY_CANDIDATE_COUNT   4
#define KVS_ICE_MAX_NEW_LOCAL_CANDIDATES_TO_REPORT_AT_ONCE   10
#define ICE_PRIORITY_HOST_CANDIDATE_TYPE_PREFERENCE   126
#define ICE_PRIORITY_SERVER_REFLEXIVE_CANDIDATE_TYPE_PREFERENCE   100
#define ICE_PRIORITY_PEER_REFLEXIVE_CANDIDATE_TYPE_PREFERENCE   110
#define ICE_PRIORITY_RELAYED_CANDIDATE_TYPE_PREFERENCE   0
#define ICE_PRIORITY_LOCAL_PREFERENCE   65535
#define IS_STUN_PACKET(pBuf)
#define GET_STUN_PACKET_SIZE(pBuf)
#define IS_CANN_PAIR_SENDING_FROM_RELAYED(p)
#define KVS_ICE_DEFAULT_TURN_PROTOCOL   KVS_SOCKET_PROTOCOL_TCP
#define ICE_HASH_TABLE_BUCKET_COUNT   100
#define ICE_HASH_TABLE_BUCKET_LENGTH   2
#define ICE_CANDIDATE_ID_LEN   8
#define STATS_NOT_APPLICABLE_STR   (PCHAR) "N/A"
#define ICE_STATE_MACHINE_NAME   (PCHAR) "ICE"

Typedefs

typedef VOID(* IceInboundPacketFunc) (UINT64, PBYTE, UINT32)
typedef VOID(* IceConnectionStateChangedFunc) (UINT64, UINT64)
typedef VOID(* IceNewLocalCandidateFunc) (UINT64, PCHAR)
typedef struct __IceAgent IceAgent
typedef struct __IceAgent * PIceAgent
typedef struct RtcIceServerDiagnostics * PRtcIceServerDiagnostics
typedef struct RtcIceCandidateDiagnostics * PRtcIceCandidateDiagnostics
typedef struct RtcIceCandidatePairDiagnostics * PRtcIceCandidatePairDiagnostics
typedef struct IceAgentCallbacks * PIceAgentCallbacks
typedef struct IceCandidate * PIceCandidate
typedef struct IceCandidatePair * PIceCandidatePair
typedef struct IceAgentProfileDiagnostics * PIceAgentProfileDiagnostics

Enumerations

enum  ICE_CANDIDATE_STATE { ICE_CANDIDATE_STATE_NEW , ICE_CANDIDATE_STATE_VALID , ICE_CANDIDATE_STATE_INVALID }

Functions

STATUS createIceAgent (PCHAR, PCHAR, PIceAgentCallbacks, PRtcConfiguration, TIMER_QUEUE_HANDLE, PConnectionListener, PIceAgent *)
STATUS freeIceAgent (PIceAgent *)
STATUS iceAgentAddIceServers (PIceAgent pIceAgent, PRtcIceServer pIceServers, UINT32 iceServersCount)
STATUS iceAgentAddRemoteCandidate (PIceAgent, PCHAR)
STATUS iceAgentStartAgent (PIceAgent, PCHAR, PCHAR, BOOL)
STATUS iceAgentStartGathering (PIceAgent)
STATUS iceCandidateSerialize (PIceCandidate, PCHAR, PUINT32)
STATUS iceAgentSendPacket (PIceAgent, PBYTE, UINT32)
STATUS iceAgentInitHostCandidate (PIceAgent)
STATUS iceAgentPopulateSdpMediaDescriptionCandidates (PIceAgent, PSdpMediaDescription, UINT32, PUINT32)
STATUS iceAgentShutdown (PIceAgent)
STATUS iceAgentRestart (PIceAgent, PCHAR, PCHAR)
STATUS iceAgentReportNewLocalCandidate (PIceAgent, PIceCandidate)
STATUS iceAgentValidateKvsRtcConfig (PKvsRtcConfiguration)
STATUS incomingDataHandler (UINT64, PSocketConnection, PBYTE, UINT32, PKvsIpAddress, PKvsIpAddress)
STATUS incomingRelayedDataHandler (UINT64, PSocketConnection, PBYTE, UINT32, PKvsIpAddress, PKvsIpAddress)
STATUS handleStunPacket (PIceAgent, PBYTE, UINT32, PSocketConnection, PKvsIpAddress, PKvsIpAddress, PSocketConnection *)
STATUS updateCandidateAddress (PIceCandidate, PKvsIpAddress)
STATUS findCandidateWithIp (PKvsIpAddress, PDoubleList, PIceCandidate *)
STATUS findCandidateWithSocketConnection (PSocketConnection, PDoubleList, PIceCandidate *)
STATUS createIceCandidatePairs (PIceAgent, PIceCandidate, BOOL)
STATUS freeIceCandidatePair (PIceCandidatePair *)
STATUS insertIceCandidatePair (PDoubleList, PIceCandidatePair)
STATUS findIceCandidatePairWithLocalSocketConnectionAndRemoteAddr (PIceAgent, PSocketConnection, PKvsIpAddress, BOOL, PIceCandidatePair *)
STATUS pruneUnconnectedIceCandidatePair (PIceAgent)
STATUS iceCandidatePairCheckConnection (PStunPacket, PIceAgent, PIceCandidatePair)
STATUS iceAgentSendSrflxCandidateRequest (PIceAgent)
STATUS iceAgentCheckCandidatePairConnection (PIceAgent)
STATUS iceAgentSendCandidateNomination (PIceAgent)
STATUS iceAgentSendStunPacket (PStunPacket, PBYTE, UINT32, PIceAgent, PIceCandidate, PKvsIpAddress)
STATUS iceAgentInitSrflxCandidate (PIceAgent)
STATUS iceAgentInitRelayCandidates (PIceAgent)
STATUS iceAgentInitRelayCandidate (PIceAgent, UINT32, KVS_SOCKET_PROTOCOL, KVS_IP_FAMILY_TYPE)
STATUS iceAgentCheckConnectionStateSetup (PIceAgent)
STATUS iceAgentConnectedStateSetup (PIceAgent)
STATUS iceAgentNominatingStateSetup (PIceAgent)
STATUS iceAgentReadyStateSetup (PIceAgent)
STATUS iceAgentStateTransitionTimerCallback (UINT32, UINT64, UINT64)
STATUS iceAgentSendKeepAliveTimerCallback (UINT32, UINT64, UINT64)
STATUS iceAgentGatherCandidateTimerCallback (UINT32, UINT64, UINT64)
UINT64 iceAgentGetCurrentTime (UINT64)
STATUS iceAgentNominateCandidatePair (PIceAgent)
STATUS iceAgentInvalidateCandidatePair (PIceAgent)
STATUS iceAgentCheckPeerReflexiveCandidate (PIceAgent, PKvsIpAddress, UINT32, BOOL, PSocketConnection)
STATUS iceAgentFatalError (PIceAgent, STATUS)
VOID iceAgentLogNewCandidate (PIceCandidate)
UINT32 computeCandidatePriority (PIceCandidate)
UINT64 computeCandidatePairPriority (PIceCandidatePair, BOOL)
PCHAR iceAgentGetCandidateTypeStr (ICE_CANDIDATE_TYPE)
STATUS updateSelectedLocalRemoteCandidateStats (PIceAgent)
STATUS getIceAgentStats (PIceAgent, PKvsIceAgentMetrics)

Macro Definition Documentation

◆ GET_STUN_PACKET_SIZE

#define GET_STUN_PACKET_SIZE ( pBuf)
Value:
((UINT32) getInt16(*(PINT16) ((pBuf) + SIZEOF(UINT16))))

◆ ICE_CANDIDATE_ID_LEN

#define ICE_CANDIDATE_ID_LEN   8

◆ ICE_HASH_TABLE_BUCKET_COUNT

#define ICE_HASH_TABLE_BUCKET_COUNT   100

◆ ICE_HASH_TABLE_BUCKET_LENGTH

#define ICE_HASH_TABLE_BUCKET_LENGTH   2

◆ ICE_PRIORITY_HOST_CANDIDATE_TYPE_PREFERENCE

#define ICE_PRIORITY_HOST_CANDIDATE_TYPE_PREFERENCE   126

◆ ICE_PRIORITY_LOCAL_PREFERENCE

#define ICE_PRIORITY_LOCAL_PREFERENCE   65535

◆ ICE_PRIORITY_PEER_REFLEXIVE_CANDIDATE_TYPE_PREFERENCE

#define ICE_PRIORITY_PEER_REFLEXIVE_CANDIDATE_TYPE_PREFERENCE   110

◆ ICE_PRIORITY_RELAYED_CANDIDATE_TYPE_PREFERENCE

#define ICE_PRIORITY_RELAYED_CANDIDATE_TYPE_PREFERENCE   0

◆ ICE_PRIORITY_SERVER_REFLEXIVE_CANDIDATE_TYPE_PREFERENCE

#define ICE_PRIORITY_SERVER_REFLEXIVE_CANDIDATE_TYPE_PREFERENCE   100

◆ ICE_STATE_MACHINE_NAME

#define ICE_STATE_MACHINE_NAME   (PCHAR) "ICE"

◆ IS_CANN_PAIR_SENDING_FROM_RELAYED

#define IS_CANN_PAIR_SENDING_FROM_RELAYED ( p)
Value:
((p)->local->iceCandidateType == ICE_CANDIDATE_TYPE_RELAYED)
@ ICE_CANDIDATE_TYPE_RELAYED
ICE_CANDIDATE_TYPE_RELAYED.
Definition Stats.h:108

◆ IS_STUN_PACKET

#define IS_STUN_PACKET ( pBuf)
Value:
(getInt32(*(PUINT32) ((pBuf) + STUN_HEADER_MAGIC_BYTE_OFFSET)) == STUN_HEADER_MAGIC_COOKIE)
#define STUN_HEADER_MAGIC_BYTE_OFFSET
Definition IceAgent.h:38
#define STUN_HEADER_MAGIC_COOKIE
Definition Stun.h:24

◆ KVS_ICE_CANDIDATE_NOMINATION_TIMEOUT

#define KVS_ICE_CANDIDATE_NOMINATION_TIMEOUT    (12 * HUNDREDS_OF_NANOS_IN_A_SECOND)

◆ KVS_ICE_CONNECTION_CHECK_POLLING_INTERVAL

#define KVS_ICE_CONNECTION_CHECK_POLLING_INTERVAL   (50 * HUNDREDS_OF_NANOS_IN_A_MILLISECOND)

◆ KVS_ICE_CONNECTIVITY_CHECK_TIMEOUT

#define KVS_ICE_CONNECTIVITY_CHECK_TIMEOUT    (12 * HUNDREDS_OF_NANOS_IN_A_SECOND)

◆ KVS_ICE_DEFAULT_TIMER_START_DELAY

#define KVS_ICE_DEFAULT_TIMER_START_DELAY   (3 * HUNDREDS_OF_NANOS_IN_A_MILLISECOND)

◆ KVS_ICE_DEFAULT_TURN_PROTOCOL

#define KVS_ICE_DEFAULT_TURN_PROTOCOL   KVS_SOCKET_PROTOCOL_TCP

◆ KVS_ICE_ENTER_STATE_DISCONNECTION_GRACE_PERIOD

#define KVS_ICE_ENTER_STATE_DISCONNECTION_GRACE_PERIOD   (2 * KVS_ICE_SEND_KEEP_ALIVE_INTERVAL)

◆ KVS_ICE_ENTER_STATE_FAILED_GRACE_PERIOD

#define KVS_ICE_ENTER_STATE_FAILED_GRACE_PERIOD   (15 * HUNDREDS_OF_NANOS_IN_A_SECOND)

◆ KVS_ICE_GATHER_CANDIDATE_TIMER_POLLING_INTERVAL

#define KVS_ICE_GATHER_CANDIDATE_TIMER_POLLING_INTERVAL   (50 * HUNDREDS_OF_NANOS_IN_A_MILLISECOND)

◆ KVS_ICE_GATHER_REFLEXIVE_AND_RELAYED_CANDIDATE_TIMEOUT

#define KVS_ICE_GATHER_REFLEXIVE_AND_RELAYED_CANDIDATE_TIMEOUT   (10 * HUNDREDS_OF_NANOS_IN_A_SECOND)

◆ KVS_ICE_MAX_CANDIDATE_PAIR_COUNT

#define KVS_ICE_MAX_CANDIDATE_PAIR_COUNT   1024

◆ KVS_ICE_MAX_LOCAL_CANDIDATE_COUNT

#define KVS_ICE_MAX_LOCAL_CANDIDATE_COUNT   100

◆ KVS_ICE_MAX_NEW_LOCAL_CANDIDATES_TO_REPORT_AT_ONCE

#define KVS_ICE_MAX_NEW_LOCAL_CANDIDATES_TO_REPORT_AT_ONCE   10

◆ KVS_ICE_MAX_RELAY_CANDIDATE_COUNT

#define KVS_ICE_MAX_RELAY_CANDIDATE_COUNT   4

◆ KVS_ICE_MAX_REMOTE_CANDIDATE_COUNT

#define KVS_ICE_MAX_REMOTE_CANDIDATE_COUNT   100

◆ KVS_ICE_SEND_KEEP_ALIVE_INTERVAL

#define KVS_ICE_SEND_KEEP_ALIVE_INTERVAL   (15 * HUNDREDS_OF_NANOS_IN_A_SECOND)

◆ KVS_ICE_SHORT_CHECK_DELAY

#define KVS_ICE_SHORT_CHECK_DELAY   (50 * HUNDREDS_OF_NANOS_IN_A_MILLISECOND)

◆ KVS_ICE_STATE_READY_TIMER_POLLING_INTERVAL

#define KVS_ICE_STATE_READY_TIMER_POLLING_INTERVAL   (1 * HUNDREDS_OF_NANOS_IN_A_SECOND)

◆ KVS_ICE_TURN_CONNECTION_SHUTDOWN_TIMEOUT

#define KVS_ICE_TURN_CONNECTION_SHUTDOWN_TIMEOUT   (1 * HUNDREDS_OF_NANOS_IN_A_SECOND)

◆ STATS_NOT_APPLICABLE_STR

#define STATS_NOT_APPLICABLE_STR   (PCHAR) "N/A"

◆ STUN_HEADER_MAGIC_BYTE_OFFSET

#define STUN_HEADER_MAGIC_BYTE_OFFSET   4

Typedef Documentation

◆ IceAgent

typedef struct __IceAgent IceAgent

◆ IceConnectionStateChangedFunc

typedef VOID(* IceConnectionStateChangedFunc) (UINT64, UINT64)

◆ IceInboundPacketFunc

typedef VOID(* IceInboundPacketFunc) (UINT64, PBYTE, UINT32)

◆ IceNewLocalCandidateFunc

typedef VOID(* IceNewLocalCandidateFunc) (UINT64, PCHAR)

◆ PIceAgent

typedef struct __IceAgent* PIceAgent

◆ PIceAgentCallbacks

◆ PIceAgentProfileDiagnostics

◆ PIceCandidate

typedef struct IceCandidate * PIceCandidate

◆ PIceCandidatePair

◆ PRtcIceCandidateDiagnostics

◆ PRtcIceCandidatePairDiagnostics

◆ PRtcIceServerDiagnostics

Enumeration Type Documentation

◆ ICE_CANDIDATE_STATE

Enumerator
ICE_CANDIDATE_STATE_NEW 
ICE_CANDIDATE_STATE_VALID 
ICE_CANDIDATE_STATE_INVALID 

Function Documentation

◆ computeCandidatePairPriority()

UINT64 computeCandidatePairPriority ( PIceCandidatePair pIceCandidatePair,
BOOL isLocalControlling )
Here is the caller graph for this function:

◆ computeCandidatePriority()

UINT32 computeCandidatePriority ( PIceCandidate pIceCandidate)
Here is the caller graph for this function:

◆ createIceAgent()

STATUS createIceAgent ( PCHAR username,
PCHAR password,
PIceAgentCallbacks pIceAgentCallbacks,
PRtcConfiguration pRtcConfiguration,
TIMER_QUEUE_HANDLE timerQueueHandle,
PConnectionListener pConnectionListener,
PIceAgent * ppIceAgent )

allocate the IceAgent struct and store username and password

Parameters
-PCHAR - IN - username
-PCHAR - IN - password
-PIceAgentCallbacks - IN - callback for inbound packets
-PRtcConfiguration - IN - RtcConfig
-PIceAgent* - OUT - the created IceAgent struct
Returns
- STATUS - status of execution
Here is the call graph for this function:
Here is the caller graph for this function:

◆ createIceCandidatePairs()

STATUS createIceCandidatePairs ( PIceAgent pIceAgent,
PIceCandidate pIceCandidate,
BOOL isRemoteCandidate )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ findCandidateWithIp()

STATUS findCandidateWithIp ( PKvsIpAddress pIpAddress,
PDoubleList pCandidateList,
PIceCandidate * ppIceCandidate )
Here is the caller graph for this function:

◆ findCandidateWithSocketConnection()

STATUS findCandidateWithSocketConnection ( PSocketConnection pSocketConnection,
PDoubleList pCandidateList,
PIceCandidate * ppIceCandidate )
Here is the caller graph for this function:

◆ findIceCandidatePairWithLocalSocketConnectionAndRemoteAddr()

STATUS findIceCandidatePairWithLocalSocketConnectionAndRemoteAddr ( PIceAgent pIceAgent,
PSocketConnection pSocketConnection,
PKvsIpAddress pRemoteAddr,
BOOL checkPort,
PIceCandidatePair * ppIceCandidatePair )
Here is the caller graph for this function:

◆ freeIceAgent()

STATUS freeIceAgent ( PIceAgent * ppIceAgent)

deallocate the PIceAgent object and all its resources.

Returns
- STATUS - status of execution

Not thread-safe

Parameters
ppIceAgent
Returns
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freeIceCandidatePair()

STATUS freeIceCandidatePair ( PIceCandidatePair * ppIceCandidatePair)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getIceAgentStats()

STATUS getIceAgentStats ( PIceAgent pIceAgent,
PKvsIceAgentMetrics pKvsIceAgentMetrics )
Here is the caller graph for this function:

◆ handleStunPacket()

STATUS handleStunPacket ( PIceAgent pIceAgent,
PBYTE pBuffer,
UINT32 bufferLen,
PSocketConnection pSocketConnection,
PKvsIpAddress pSrcAddr,
PKvsIpAddress pDestAddr,
PSocketConnection * ppSocketConnectionToShutdown )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ iceAgentAddIceServers()

STATUS iceAgentAddIceServers ( PIceAgent pIceAgent,
PRtcIceServer pIceServers,
UINT32 iceServersCount )

Add new ICE servers to an existing ICE agent and initialize relay candidates for TURN servers

Parameters
-PIceAgent - IN - IceAgent object
-PRtcIceServer - IN - Array of new ICE servers to add
-UINT32 - IN - Number of ICE servers in the array
Returns
- STATUS - status of execution
Here is the call graph for this function:
Here is the caller graph for this function:

◆ iceAgentAddRemoteCandidate()

STATUS iceAgentAddRemoteCandidate ( PIceAgent pIceAgent,
PCHAR pIceCandidateString )

if PIceCandidate doesnt exist already in remoteCandidates, create a copy and add to remoteCandidates

Parameters
-PIceAgent - IN - IceAgent object
-PIceCandidate - IN - new remote candidate to add
Returns
- STATUS - status of execution
Here is the call graph for this function:
Here is the caller graph for this function:

◆ iceAgentCheckCandidatePairConnection()

STATUS iceAgentCheckCandidatePairConnection ( PIceAgent pIceAgent)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ iceAgentCheckConnectionStateSetup()

STATUS iceAgentCheckConnectionStateSetup ( PIceAgent pIceAgent)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ iceAgentCheckPeerReflexiveCandidate()

STATUS iceAgentCheckPeerReflexiveCandidate ( PIceAgent pIceAgent,
PKvsIpAddress pIpAddress,
UINT32 priority,
BOOL isRemote,
PSocketConnection pSocketConnection )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ iceAgentConnectedStateSetup()

STATUS iceAgentConnectedStateSetup ( PIceAgent pIceAgent)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ iceAgentFatalError()

STATUS iceAgentFatalError ( PIceAgent pIceAgent,
STATUS errorStatus )
Here is the caller graph for this function:

◆ iceAgentGatherCandidateTimerCallback()

STATUS iceAgentGatherCandidateTimerCallback ( UINT32 timerId,
UINT64 currentTime,
UINT64 customData )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ iceAgentGetCandidateTypeStr()

PCHAR iceAgentGetCandidateTypeStr ( ICE_CANDIDATE_TYPE candidateType)
Here is the caller graph for this function:

◆ iceAgentGetCurrentTime()

UINT64 iceAgentGetCurrentTime ( UINT64 customData)
Here is the caller graph for this function:

◆ iceAgentInitHostCandidate()

STATUS iceAgentInitHostCandidate ( PIceAgent pIceAgent)

gather local IP addresses and create a udp port. If port creation succeeded then create a new candidate and store it in localCandidates. Ips that are already a local candidate will not be added again.

Parameters
-PIceAgent - IN - IceAgent object
Returns
- STATUS - status of execution
Here is the call graph for this function:
Here is the caller graph for this function:

◆ iceAgentInitRelayCandidate()

STATUS iceAgentInitRelayCandidate ( PIceAgent pIceAgent,
UINT32 iceServerIndex,
KVS_SOCKET_PROTOCOL protocol,
KVS_IP_FAMILY_TYPE turnServerIpFamily )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ iceAgentInitRelayCandidates()

STATUS iceAgentInitRelayCandidates ( PIceAgent pIceAgent)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ iceAgentInitSrflxCandidate()

STATUS iceAgentInitSrflxCandidate ( PIceAgent pIceAgent)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ iceAgentInvalidateCandidatePair()

STATUS iceAgentInvalidateCandidatePair ( PIceAgent pIceAgent)
Here is the caller graph for this function:

◆ iceAgentLogNewCandidate()

VOID iceAgentLogNewCandidate ( PIceCandidate pIceCandidate)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ iceAgentNominateCandidatePair()

STATUS iceAgentNominateCandidatePair ( PIceAgent pIceAgent)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ iceAgentNominatingStateSetup()

STATUS iceAgentNominatingStateSetup ( PIceAgent pIceAgent)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ iceAgentPopulateSdpMediaDescriptionCandidates()

STATUS iceAgentPopulateSdpMediaDescriptionCandidates ( PIceAgent pIceAgent,
PSdpMediaDescription pSdpMediaDescription,
UINT32 attrBufferLen,
PUINT32 pIndex )

Starting from given index, fillout PSdpMediaDescription->sdpAttributes with serialize local candidate strings.

Parameters
-PIceAgent - IN - IceAgent object
-PSdpMediaDescription - IN - PSdpMediaDescription object whose sdpAttributes will be filled with local candidate strings
-UINT32 - IN - buffer length of pSdpMediaDescription->sdpAttributes[index].attributeValue
-PUINT32 - IN - starting index in sdpAttributes
Returns
- STATUS - status of execution
Here is the call graph for this function:
Here is the caller graph for this function:

◆ iceAgentReadyStateSetup()

STATUS iceAgentReadyStateSetup ( PIceAgent pIceAgent)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ iceAgentReportNewLocalCandidate()

STATUS iceAgentReportNewLocalCandidate ( PIceAgent pIceAgent,
PIceCandidate pIceCandidate )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ iceAgentRestart()

STATUS iceAgentRestart ( PIceAgent pIceAgent,
PCHAR localIceUfrag,
PCHAR localIcePwd )

Restart IceAgent. IceAgent is reset back to the same state when it was first created. Once iceAgentRestart() return, call iceAgentStartGathering() to start gathering and call iceAgentStartAgent() to give iceAgent the new remote uFrag and uPwd. While Ice is restarting, iceAgentSendPacket can still be called to send data if a connected pair exists.

Parameters
-PIceAgent - IN - IceAgent object
-PCHAR - IN - new local uFrag
-PCHAR - IN - new local uPwd
Returns
- STATUS - status of execution
Here is the call graph for this function:
Here is the caller graph for this function:

◆ iceAgentSendCandidateNomination()

STATUS iceAgentSendCandidateNomination ( PIceAgent pIceAgent)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ iceAgentSendKeepAliveTimerCallback()

STATUS iceAgentSendKeepAliveTimerCallback ( UINT32 timerId,
UINT64 currentTime,
UINT64 customData )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ iceAgentSendPacket()

STATUS iceAgentSendPacket ( PIceAgent pIceAgent,
PBYTE pBuffer,
UINT32 bufferLen )

Send data through selected connection. PIceAgent has to be in ICE_AGENT_CONNECTION_STATE_CONNECTED state.

Parameters
-PIceAgent - IN - IceAgent object
-PBYTE - IN - buffer storing the data to be sent
-UINT32 - IN - length of data
Returns
- STATUS - status of execution
Here is the call graph for this function:
Here is the caller graph for this function:

◆ iceAgentSendSrflxCandidateRequest()

STATUS iceAgentSendSrflxCandidateRequest ( PIceAgent pIceAgent)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ iceAgentSendStunPacket()

STATUS iceAgentSendStunPacket ( PStunPacket pStunPacket,
PBYTE password,
UINT32 passwordLen,
PIceAgent pIceAgent,
PIceCandidate pLocalCandidate,
PKvsIpAddress pDestAddr )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ iceAgentShutdown()

STATUS iceAgentShutdown ( PIceAgent pIceAgent)

Start shutdown sequence for IceAgent. Once the function returns Ice will not deliver anymore data and IceAgent is ready to be freed. User should stop calling iceAgentSendPacket after iceAgentShutdown returns. iceAgentShutdown is idempotent.

Parameters
-PIceAgent - IN - IceAgent object
Returns
- STATUS - status of execution
Here is the call graph for this function:
Here is the caller graph for this function:

◆ iceAgentStartAgent()

STATUS iceAgentStartAgent ( PIceAgent pIceAgent,
PCHAR remoteUsername,
PCHAR remotePassword,
BOOL isControlling )

Initiates stun communication with remote candidates.

Parameters
-PIceAgent - IN - IceAgent object
-PCHAR - IN - remote username
-PCHAR - IN - remote password
-BOOL - IN - is controlling agent
Returns
- STATUS - status of execution
Here is the call graph for this function:
Here is the caller graph for this function:

◆ iceAgentStartGathering()

STATUS iceAgentStartGathering ( PIceAgent pIceAgent)

Initiates candidate gathering

Parameters
-PIceAgent - IN - IceAgent object
Returns
- STATUS - status of execution
Here is the call graph for this function:
Here is the caller graph for this function:

◆ iceAgentStateTransitionTimerCallback()

STATUS iceAgentStateTransitionTimerCallback ( UINT32 timerId,
UINT64 currentTime,
UINT64 customData )

timer queue callbacks are interlocked by time queue lock.

Parameters
timerId- timer queue task id
currentTime
customData- custom data passed to timer queue when task was added
Returns
Here is the call graph for this function:
Here is the caller graph for this function:

◆ iceAgentValidateKvsRtcConfig()

STATUS iceAgentValidateKvsRtcConfig ( PKvsRtcConfiguration pKvsRtcConfiguration)
Here is the caller graph for this function:

◆ iceCandidatePairCheckConnection()

STATUS iceCandidatePairCheckConnection ( PStunPacket pStunBindingRequest,
PIceAgent pIceAgent,
PIceCandidatePair pIceCandidatePair )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ iceCandidateSerialize()

STATUS iceCandidateSerialize ( PIceCandidate pIceCandidate,
PCHAR pOutputData,
PUINT32 pOutputLength )

Serialize a candidate for Trickle ICE or exchange via SDP

Parameters
-PIceAgent - IN - IceAgent object
-PCHAR - OUT - Destination buffer
-UINT32 - OUT - Size of destination buffer
Returns
- STATUS - status of execution
Here is the call graph for this function:
Here is the caller graph for this function:

◆ incomingDataHandler()

STATUS incomingDataHandler ( UINT64 customData,
PSocketConnection pSocketConnection,
PBYTE pBuffer,
UINT32 bufferLen,
PKvsIpAddress pSrc,
PKvsIpAddress pDest )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ incomingRelayedDataHandler()

STATUS incomingRelayedDataHandler ( UINT64 customData,
PSocketConnection pSocketConnection,
PBYTE pBuffer,
UINT32 bufferLen,
PKvsIpAddress pSrc,
PKvsIpAddress pDest )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ insertIceCandidatePair()

STATUS insertIceCandidatePair ( PDoubleList iceCandidatePairs,
PIceCandidatePair pIceCandidatePair )
Here is the caller graph for this function:

◆ pruneUnconnectedIceCandidatePair()

STATUS pruneUnconnectedIceCandidatePair ( PIceAgent pIceAgent)
Here is the call graph for this function:

◆ updateCandidateAddress()

STATUS updateCandidateAddress ( PIceCandidate pIceCandidate,
PKvsIpAddress pIpAddr )
Here is the caller graph for this function:

◆ updateSelectedLocalRemoteCandidateStats()

STATUS updateSelectedLocalRemoteCandidateStats ( PIceAgent pIceAgent)
Here is the call graph for this function:
Here is the caller graph for this function: