Amazon Kinesis Webrtc C SDK
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)   (getInt32(*(PUINT32) ((pBuf) + STUN_HEADER_MAGIC_BYTE_OFFSET)) == STUN_HEADER_MAGIC_COOKIE)
 
#define GET_STUN_PACKET_SIZE(pBuf)   ((UINT32) getInt16(*(PINT16) ((pBuf) + SIZEOF(UINT16))))
 
#define IS_CANN_PAIR_SENDING_FROM_RELAYED(p)   ((p)->local->iceCandidateType == ICE_CANDIDATE_TYPE_RELAYED)
 
#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 __IceAgentPIceAgent
 
typedef struct RtcIceServerDiagnosticsPRtcIceServerDiagnostics
 
typedef struct RtcIceCandidateDiagnosticsPRtcIceCandidateDiagnostics
 
typedef struct RtcIceCandidatePairDiagnosticsPRtcIceCandidatePairDiagnostics
 
typedef struct IceAgentCallbacksPIceAgentCallbacks
 
typedef struct IceCandidatePIceCandidate
 
typedef struct IceCandidatePairPIceCandidatePair
 
typedef struct IceAgentProfileDiagnosticsPIceAgentProfileDiagnostics
 

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 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)
 
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)
 
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)
 
STATUS iceAgentAddConfig (PIceAgent, PIceConfigInfo)
 

Macro Definition Documentation

◆ GET_STUN_PACKET_SIZE

#define GET_STUN_PACKET_SIZE (   pBuf)    ((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)    ((p)->local->iceCandidateType == ICE_CANDIDATE_TYPE_RELAYED)

◆ IS_STUN_PACKET

#define IS_STUN_PACKET (   pBuf)    (getInt32(*(PUINT32) ((pBuf) + STUN_HEADER_MAGIC_BYTE_OFFSET)) == STUN_HEADER_MAGIC_COOKIE)

◆ 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 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ iceAgentAddConfig()

STATUS iceAgentAddConfig ( PIceAgent  pIceAgent,
PIceConfigInfo  pIceConfigInfo 
)
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 
)
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: