Amazon Kinesis Webrtc C SDK
Loading...
Searching...
No Matches
IceAgent.c File Reference
#include "../Include_i.h"
Include dependency graph for IceAgent.c:

Macros

#define LOG_CLASS   "IceAgent"
#define MARK_STUNS_SRFLX_CANDIDATE_INVALID(logFn, candidate, ...)

Enumerations

enum  SDP_ICE_CANDIDATE_PARSER_STATE {
  SDP_ICE_CANDIDATE_PARSER_STATE_FOUNDATION = 0 , SDP_ICE_CANDIDATE_PARSER_STATE_COMPONENT , SDP_ICE_CANDIDATE_PARSER_STATE_PROTOCOL , SDP_ICE_CANDIDATE_PARSER_STATE_PRIORITY ,
  SDP_ICE_CANDIDATE_PARSER_STATE_IP , SDP_ICE_CANDIDATE_PARSER_STATE_PORT , SDP_ICE_CANDIDATE_PARSER_STATE_TYPE_ID , SDP_ICE_CANDIDATE_PARSER_STATE_TYPE_VAL ,
  SDP_ICE_CANDIDATE_PARSER_STATE_OTHERS
}

Functions

STATUS createIceAgent (PCHAR username, PCHAR password, PIceAgentCallbacks pIceAgentCallbacks, PRtcConfiguration pRtcConfiguration, TIMER_QUEUE_HANDLE timerQueueHandle, PConnectionListener pConnectionListener, PIceAgent *ppIceAgent)
STATUS freeIceAgent (PIceAgent *ppIceAgent)
STATUS iceAgentAddIceServers (PIceAgent pIceAgent, PRtcIceServer pIceServers, UINT32 iceServersCount)
STATUS iceAgentValidateKvsRtcConfig (PKvsRtcConfiguration pKvsRtcConfiguration)
STATUS iceAgentReportNewLocalCandidate (PIceAgent pIceAgent, PIceCandidate pIceCandidate)
STATUS iceAgentAddRemoteCandidate (PIceAgent pIceAgent, PCHAR pIceCandidateString)
STATUS iceAgentInitHostCandidate (PIceAgent pIceAgent)
STATUS iceAgentStartAgent (PIceAgent pIceAgent, PCHAR remoteUsername, PCHAR remotePassword, BOOL isControlling)
STATUS iceAgentStartGathering (PIceAgent pIceAgent)
STATUS iceAgentSendPacket (PIceAgent pIceAgent, PBYTE pBuffer, UINT32 bufferLen)
STATUS iceAgentPopulateSdpMediaDescriptionCandidates (PIceAgent pIceAgent, PSdpMediaDescription pSdpMediaDescription, UINT32 attrBufferLen, PUINT32 pIndex)
STATUS iceAgentShutdown (PIceAgent pIceAgent)
STATUS iceAgentRestart (PIceAgent pIceAgent, PCHAR localIceUfrag, PCHAR localIcePwd)
STATUS findCandidateWithIp (PKvsIpAddress pIpAddress, PDoubleList pCandidateList, PIceCandidate *ppIceCandidate)
STATUS findCandidateWithSocketConnection (PSocketConnection pSocketConnection, PDoubleList pCandidateList, PIceCandidate *ppIceCandidate)
STATUS createIceCandidatePairs (PIceAgent pIceAgent, PIceCandidate pIceCandidate, BOOL isRemoteCandidate)
STATUS freeIceCandidatePair (PIceCandidatePair *ppIceCandidatePair)
STATUS insertIceCandidatePair (PDoubleList iceCandidatePairs, PIceCandidatePair pIceCandidatePair)
STATUS findIceCandidatePairWithLocalSocketConnectionAndRemoteAddr (PIceAgent pIceAgent, PSocketConnection pSocketConnection, PKvsIpAddress pRemoteAddr, BOOL checkPort, PIceCandidatePair *ppIceCandidatePair)
STATUS pruneUnconnectedIceCandidatePair (PIceAgent pIceAgent)
STATUS iceCandidatePairCheckConnection (PStunPacket pStunBindingRequest, PIceAgent pIceAgent, PIceCandidatePair pIceCandidatePair)
STATUS iceAgentSendStunPacket (PStunPacket pStunPacket, PBYTE password, UINT32 passwordLen, PIceAgent pIceAgent, PIceCandidate pLocalCandidate, PKvsIpAddress pDestAddr)
STATUS iceAgentStateTransitionTimerCallback (UINT32 timerId, UINT64 currentTime, UINT64 customData)
STATUS iceAgentSendSrflxCandidateRequest (PIceAgent pIceAgent)
STATUS iceAgentCheckCandidatePairConnection (PIceAgent pIceAgent)
STATUS iceAgentSendKeepAliveTimerCallback (UINT32 timerId, UINT64 currentTime, UINT64 customData)
STATUS iceAgentGatherCandidateTimerCallback (UINT32 timerId, UINT64 currentTime, UINT64 customData)
STATUS iceAgentSendCandidateNomination (PIceAgent pIceAgent)
STATUS iceAgentInitSrflxCandidate (PIceAgent pIceAgent)
STATUS iceAgentInitRelayCandidates (PIceAgent pIceAgent)
STATUS turnStateFailedFn (PSocketConnection pSocketConnection, UINT64 data)
STATUS iceAgentInitRelayCandidate (PIceAgent pIceAgent, UINT32 iceServerIndex, KVS_SOCKET_PROTOCOL protocol, KVS_IP_FAMILY_TYPE turnServerIpFamily)
STATUS iceAgentCheckConnectionStateSetup (PIceAgent pIceAgent)
STATUS updateCandidateStats (PIceAgent pIceAgent, BOOL isRemote)
STATUS updateSelectedLocalRemoteCandidateStats (PIceAgent pIceAgent)
STATUS iceAgentConnectedStateSetup (PIceAgent pIceAgent)
STATUS iceAgentNominatingStateSetup (PIceAgent pIceAgent)
STATUS iceAgentReadyStateSetup (PIceAgent pIceAgent)
STATUS iceAgentNominateCandidatePair (PIceAgent pIceAgent)
STATUS iceAgentInvalidateCandidatePair (PIceAgent pIceAgent)
STATUS incomingRelayedDataHandler (UINT64 customData, PSocketConnection pSocketConnection, PBYTE pBuffer, UINT32 bufferLen, PKvsIpAddress pSrc, PKvsIpAddress pDest)
STATUS incomingDataHandler (UINT64 customData, PSocketConnection pSocketConnection, PBYTE pBuffer, UINT32 bufferLen, PKvsIpAddress pSrc, PKvsIpAddress pDest)
STATUS iceCandidateSerialize (PIceCandidate pIceCandidate, PCHAR pOutputData, PUINT32 pOutputLength)
STATUS handleStunPacket (PIceAgent pIceAgent, PBYTE pBuffer, UINT32 bufferLen, PSocketConnection pSocketConnection, PKvsIpAddress pSrcAddr, PKvsIpAddress pDestAddr, PSocketConnection *ppSocketConnectionToShutdown)
STATUS iceAgentCheckPeerReflexiveCandidate (PIceAgent pIceAgent, PKvsIpAddress pIpAddress, UINT32 priority, BOOL isRemote, PSocketConnection pSocketConnection)
STATUS iceAgentFatalError (PIceAgent pIceAgent, STATUS errorStatus)
VOID iceAgentLogNewCandidate (PIceCandidate pIceCandidate)
STATUS updateCandidateAddress (PIceCandidate pIceCandidate, PKvsIpAddress pIpAddr)
UINT32 computeCandidatePriority (PIceCandidate pIceCandidate)
UINT64 computeCandidatePairPriority (PIceCandidatePair pIceCandidatePair, BOOL isLocalControlling)
PCHAR iceAgentGetCandidateTypeStr (ICE_CANDIDATE_TYPE candidateType)
UINT64 iceAgentGetCurrentTime (UINT64 customData)
STATUS getIceAgentStats (PIceAgent pIceAgent, PKvsIceAgentMetrics pKvsIceAgentMetrics)

Variables

StateMachineState ICE_AGENT_STATE_MACHINE_STATES []
UINT32 ICE_AGENT_STATE_MACHINE_STATE_COUNT

Macro Definition Documentation

◆ LOG_CLASS

#define LOG_CLASS   "IceAgent"

Ice Agent APIs

◆ MARK_STUNS_SRFLX_CANDIDATE_INVALID

#define MARK_STUNS_SRFLX_CANDIDATE_INVALID ( logFn,
candidate,
... )
Value:
do { \
logFn(__VA_ARGS__); \
(candidate)->state = ICE_CANDIDATE_STATE_INVALID; \
} while (0)
@ ICE_CANDIDATE_STATE_INVALID
Definition IceAgent.h:69

Enumeration Type Documentation

◆ SDP_ICE_CANDIDATE_PARSER_STATE

Enumerator
SDP_ICE_CANDIDATE_PARSER_STATE_FOUNDATION 
SDP_ICE_CANDIDATE_PARSER_STATE_COMPONENT 
SDP_ICE_CANDIDATE_PARSER_STATE_PROTOCOL 
SDP_ICE_CANDIDATE_PARSER_STATE_PRIORITY 
SDP_ICE_CANDIDATE_PARSER_STATE_IP 
SDP_ICE_CANDIDATE_PARSER_STATE_PORT 
SDP_ICE_CANDIDATE_PARSER_STATE_TYPE_ID 
SDP_ICE_CANDIDATE_PARSER_STATE_TYPE_VAL 
SDP_ICE_CANDIDATE_PARSER_STATE_OTHERS 

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)

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:

◆ turnStateFailedFn()

STATUS turnStateFailedFn ( PSocketConnection pSocketConnection,
UINT64 data )
Here is the caller graph for this function:

◆ updateCandidateAddress()

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

◆ updateCandidateStats()

STATUS updateCandidateStats ( PIceAgent pIceAgent,
BOOL isRemote )
Here is the call graph for this function:
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:

Variable Documentation

◆ ICE_AGENT_STATE_MACHINE_STATE_COUNT

UINT32 ICE_AGENT_STATE_MACHINE_STATE_COUNT
extern

◆ ICE_AGENT_STATE_MACHINE_STATES

StateMachineState ICE_AGENT_STATE_MACHINE_STATES[]
extern

Static definitions of the states