xref: /aosp_15_r20/external/webrtc/sdk/objc/api/peerconnection/RTCConfiguration.h (revision d9f758449e529ab9291ac668be2861e7a55c2422)
1*d9f75844SAndroid Build Coastguard Worker /*
2*d9f75844SAndroid Build Coastguard Worker  *  Copyright 2015 The WebRTC project authors. All Rights Reserved.
3*d9f75844SAndroid Build Coastguard Worker  *
4*d9f75844SAndroid Build Coastguard Worker  *  Use of this source code is governed by a BSD-style license
5*d9f75844SAndroid Build Coastguard Worker  *  that can be found in the LICENSE file in the root of the source
6*d9f75844SAndroid Build Coastguard Worker  *  tree. An additional intellectual property rights grant can be found
7*d9f75844SAndroid Build Coastguard Worker  *  in the file PATENTS.  All contributing project authors may
8*d9f75844SAndroid Build Coastguard Worker  *  be found in the AUTHORS file in the root of the source tree.
9*d9f75844SAndroid Build Coastguard Worker  */
10*d9f75844SAndroid Build Coastguard Worker 
11*d9f75844SAndroid Build Coastguard Worker #import <Foundation/Foundation.h>
12*d9f75844SAndroid Build Coastguard Worker 
13*d9f75844SAndroid Build Coastguard Worker #import "RTCCertificate.h"
14*d9f75844SAndroid Build Coastguard Worker #import "RTCCryptoOptions.h"
15*d9f75844SAndroid Build Coastguard Worker #import "RTCMacros.h"
16*d9f75844SAndroid Build Coastguard Worker 
17*d9f75844SAndroid Build Coastguard Worker @class RTC_OBJC_TYPE(RTCIceServer);
18*d9f75844SAndroid Build Coastguard Worker 
19*d9f75844SAndroid Build Coastguard Worker /**
20*d9f75844SAndroid Build Coastguard Worker  * Represents the ice transport policy. This exposes the same states in C++,
21*d9f75844SAndroid Build Coastguard Worker  * which include one more state than what exists in the W3C spec.
22*d9f75844SAndroid Build Coastguard Worker  */
23*d9f75844SAndroid Build Coastguard Worker typedef NS_ENUM(NSInteger, RTCIceTransportPolicy) {
24*d9f75844SAndroid Build Coastguard Worker   RTCIceTransportPolicyNone,
25*d9f75844SAndroid Build Coastguard Worker   RTCIceTransportPolicyRelay,
26*d9f75844SAndroid Build Coastguard Worker   RTCIceTransportPolicyNoHost,
27*d9f75844SAndroid Build Coastguard Worker   RTCIceTransportPolicyAll
28*d9f75844SAndroid Build Coastguard Worker };
29*d9f75844SAndroid Build Coastguard Worker 
30*d9f75844SAndroid Build Coastguard Worker /** Represents the bundle policy. */
31*d9f75844SAndroid Build Coastguard Worker typedef NS_ENUM(NSInteger, RTCBundlePolicy) {
32*d9f75844SAndroid Build Coastguard Worker   RTCBundlePolicyBalanced,
33*d9f75844SAndroid Build Coastguard Worker   RTCBundlePolicyMaxCompat,
34*d9f75844SAndroid Build Coastguard Worker   RTCBundlePolicyMaxBundle
35*d9f75844SAndroid Build Coastguard Worker };
36*d9f75844SAndroid Build Coastguard Worker 
37*d9f75844SAndroid Build Coastguard Worker /** Represents the rtcp mux policy. */
38*d9f75844SAndroid Build Coastguard Worker typedef NS_ENUM(NSInteger, RTCRtcpMuxPolicy) { RTCRtcpMuxPolicyNegotiate, RTCRtcpMuxPolicyRequire };
39*d9f75844SAndroid Build Coastguard Worker 
40*d9f75844SAndroid Build Coastguard Worker /** Represents the tcp candidate policy. */
41*d9f75844SAndroid Build Coastguard Worker typedef NS_ENUM(NSInteger, RTCTcpCandidatePolicy) {
42*d9f75844SAndroid Build Coastguard Worker   RTCTcpCandidatePolicyEnabled,
43*d9f75844SAndroid Build Coastguard Worker   RTCTcpCandidatePolicyDisabled
44*d9f75844SAndroid Build Coastguard Worker };
45*d9f75844SAndroid Build Coastguard Worker 
46*d9f75844SAndroid Build Coastguard Worker /** Represents the candidate network policy. */
47*d9f75844SAndroid Build Coastguard Worker typedef NS_ENUM(NSInteger, RTCCandidateNetworkPolicy) {
48*d9f75844SAndroid Build Coastguard Worker   RTCCandidateNetworkPolicyAll,
49*d9f75844SAndroid Build Coastguard Worker   RTCCandidateNetworkPolicyLowCost
50*d9f75844SAndroid Build Coastguard Worker };
51*d9f75844SAndroid Build Coastguard Worker 
52*d9f75844SAndroid Build Coastguard Worker /** Represents the continual gathering policy. */
53*d9f75844SAndroid Build Coastguard Worker typedef NS_ENUM(NSInteger, RTCContinualGatheringPolicy) {
54*d9f75844SAndroid Build Coastguard Worker   RTCContinualGatheringPolicyGatherOnce,
55*d9f75844SAndroid Build Coastguard Worker   RTCContinualGatheringPolicyGatherContinually
56*d9f75844SAndroid Build Coastguard Worker };
57*d9f75844SAndroid Build Coastguard Worker 
58*d9f75844SAndroid Build Coastguard Worker /** Represents the encryption key type. */
59*d9f75844SAndroid Build Coastguard Worker typedef NS_ENUM(NSInteger, RTCEncryptionKeyType) {
60*d9f75844SAndroid Build Coastguard Worker   RTCEncryptionKeyTypeRSA,
61*d9f75844SAndroid Build Coastguard Worker   RTCEncryptionKeyTypeECDSA,
62*d9f75844SAndroid Build Coastguard Worker };
63*d9f75844SAndroid Build Coastguard Worker 
64*d9f75844SAndroid Build Coastguard Worker /** Represents the chosen SDP semantics for the RTCPeerConnection. */
65*d9f75844SAndroid Build Coastguard Worker typedef NS_ENUM(NSInteger, RTCSdpSemantics) {
66*d9f75844SAndroid Build Coastguard Worker   // TODO(https://crbug.com/webrtc/13528): Remove support for Plan B.
67*d9f75844SAndroid Build Coastguard Worker   RTCSdpSemanticsPlanB,
68*d9f75844SAndroid Build Coastguard Worker   RTCSdpSemanticsUnifiedPlan,
69*d9f75844SAndroid Build Coastguard Worker };
70*d9f75844SAndroid Build Coastguard Worker 
71*d9f75844SAndroid Build Coastguard Worker NS_ASSUME_NONNULL_BEGIN
72*d9f75844SAndroid Build Coastguard Worker 
73*d9f75844SAndroid Build Coastguard Worker RTC_OBJC_EXPORT
74*d9f75844SAndroid Build Coastguard Worker @interface RTC_OBJC_TYPE (RTCConfiguration) : NSObject
75*d9f75844SAndroid Build Coastguard Worker 
76*d9f75844SAndroid Build Coastguard Worker /** If true, allows DSCP codes to be set on outgoing packets, configured using
77*d9f75844SAndroid Build Coastguard Worker  *  networkPriority field of RTCRtpEncodingParameters. Defaults to false.
78*d9f75844SAndroid Build Coastguard Worker  */
79*d9f75844SAndroid Build Coastguard Worker @property(nonatomic, assign) BOOL enableDscp;
80*d9f75844SAndroid Build Coastguard Worker 
81*d9f75844SAndroid Build Coastguard Worker /** An array of Ice Servers available to be used by ICE. */
82*d9f75844SAndroid Build Coastguard Worker @property(nonatomic, copy) NSArray<RTC_OBJC_TYPE(RTCIceServer) *> *iceServers;
83*d9f75844SAndroid Build Coastguard Worker 
84*d9f75844SAndroid Build Coastguard Worker /** An RTCCertificate for 're' use. */
85*d9f75844SAndroid Build Coastguard Worker @property(nonatomic, nullable) RTC_OBJC_TYPE(RTCCertificate) * certificate;
86*d9f75844SAndroid Build Coastguard Worker 
87*d9f75844SAndroid Build Coastguard Worker /** Which candidates the ICE agent is allowed to use. The W3C calls it
88*d9f75844SAndroid Build Coastguard Worker  * `iceTransportPolicy`, while in C++ it is called `type`. */
89*d9f75844SAndroid Build Coastguard Worker @property(nonatomic, assign) RTCIceTransportPolicy iceTransportPolicy;
90*d9f75844SAndroid Build Coastguard Worker 
91*d9f75844SAndroid Build Coastguard Worker /** The media-bundling policy to use when gathering ICE candidates. */
92*d9f75844SAndroid Build Coastguard Worker @property(nonatomic, assign) RTCBundlePolicy bundlePolicy;
93*d9f75844SAndroid Build Coastguard Worker 
94*d9f75844SAndroid Build Coastguard Worker /** The rtcp-mux policy to use when gathering ICE candidates. */
95*d9f75844SAndroid Build Coastguard Worker @property(nonatomic, assign) RTCRtcpMuxPolicy rtcpMuxPolicy;
96*d9f75844SAndroid Build Coastguard Worker @property(nonatomic, assign) RTCTcpCandidatePolicy tcpCandidatePolicy;
97*d9f75844SAndroid Build Coastguard Worker @property(nonatomic, assign) RTCCandidateNetworkPolicy candidateNetworkPolicy;
98*d9f75844SAndroid Build Coastguard Worker @property(nonatomic, assign) RTCContinualGatheringPolicy continualGatheringPolicy;
99*d9f75844SAndroid Build Coastguard Worker 
100*d9f75844SAndroid Build Coastguard Worker /** If set to YES, don't gather IPv6 ICE candidates on Wi-Fi.
101*d9f75844SAndroid Build Coastguard Worker  *  Only intended to be used on specific devices. Certain phones disable IPv6
102*d9f75844SAndroid Build Coastguard Worker  *  when the screen is turned off and it would be better to just disable the
103*d9f75844SAndroid Build Coastguard Worker  *  IPv6 ICE candidates on Wi-Fi in those cases.
104*d9f75844SAndroid Build Coastguard Worker  *  Default is NO.
105*d9f75844SAndroid Build Coastguard Worker  */
106*d9f75844SAndroid Build Coastguard Worker @property(nonatomic, assign) BOOL disableIPV6OnWiFi;
107*d9f75844SAndroid Build Coastguard Worker 
108*d9f75844SAndroid Build Coastguard Worker /** By default, the PeerConnection will use a limited number of IPv6 network
109*d9f75844SAndroid Build Coastguard Worker  *  interfaces, in order to avoid too many ICE candidate pairs being created
110*d9f75844SAndroid Build Coastguard Worker  *  and delaying ICE completion.
111*d9f75844SAndroid Build Coastguard Worker  *
112*d9f75844SAndroid Build Coastguard Worker  *  Can be set to INT_MAX to effectively disable the limit.
113*d9f75844SAndroid Build Coastguard Worker  */
114*d9f75844SAndroid Build Coastguard Worker @property(nonatomic, assign) int maxIPv6Networks;
115*d9f75844SAndroid Build Coastguard Worker 
116*d9f75844SAndroid Build Coastguard Worker /** Exclude link-local network interfaces
117*d9f75844SAndroid Build Coastguard Worker  *  from considertaion for gathering ICE candidates.
118*d9f75844SAndroid Build Coastguard Worker  *  Defaults to NO.
119*d9f75844SAndroid Build Coastguard Worker  */
120*d9f75844SAndroid Build Coastguard Worker @property(nonatomic, assign) BOOL disableLinkLocalNetworks;
121*d9f75844SAndroid Build Coastguard Worker 
122*d9f75844SAndroid Build Coastguard Worker @property(nonatomic, assign) int audioJitterBufferMaxPackets;
123*d9f75844SAndroid Build Coastguard Worker @property(nonatomic, assign) BOOL audioJitterBufferFastAccelerate;
124*d9f75844SAndroid Build Coastguard Worker @property(nonatomic, assign) int iceConnectionReceivingTimeout;
125*d9f75844SAndroid Build Coastguard Worker @property(nonatomic, assign) int iceBackupCandidatePairPingInterval;
126*d9f75844SAndroid Build Coastguard Worker 
127*d9f75844SAndroid Build Coastguard Worker /** Key type used to generate SSL identity. Default is ECDSA. */
128*d9f75844SAndroid Build Coastguard Worker @property(nonatomic, assign) RTCEncryptionKeyType keyType;
129*d9f75844SAndroid Build Coastguard Worker 
130*d9f75844SAndroid Build Coastguard Worker /** ICE candidate pool size as defined in JSEP. Default is 0. */
131*d9f75844SAndroid Build Coastguard Worker @property(nonatomic, assign) int iceCandidatePoolSize;
132*d9f75844SAndroid Build Coastguard Worker 
133*d9f75844SAndroid Build Coastguard Worker /** Prune turn ports on the same network to the same turn server.
134*d9f75844SAndroid Build Coastguard Worker  *  Default is NO.
135*d9f75844SAndroid Build Coastguard Worker  */
136*d9f75844SAndroid Build Coastguard Worker @property(nonatomic, assign) BOOL shouldPruneTurnPorts;
137*d9f75844SAndroid Build Coastguard Worker 
138*d9f75844SAndroid Build Coastguard Worker /** If set to YES, this means the ICE transport should presume TURN-to-TURN
139*d9f75844SAndroid Build Coastguard Worker  *  candidate pairs will succeed, even before a binding response is received.
140*d9f75844SAndroid Build Coastguard Worker  */
141*d9f75844SAndroid Build Coastguard Worker @property(nonatomic, assign) BOOL shouldPresumeWritableWhenFullyRelayed;
142*d9f75844SAndroid Build Coastguard Worker 
143*d9f75844SAndroid Build Coastguard Worker /* This flag is only effective when `continualGatheringPolicy` is
144*d9f75844SAndroid Build Coastguard Worker  * RTCContinualGatheringPolicyGatherContinually.
145*d9f75844SAndroid Build Coastguard Worker  *
146*d9f75844SAndroid Build Coastguard Worker  * If YES, after the ICE transport type is changed such that new types of
147*d9f75844SAndroid Build Coastguard Worker  * ICE candidates are allowed by the new transport type, e.g. from
148*d9f75844SAndroid Build Coastguard Worker  * RTCIceTransportPolicyRelay to RTCIceTransportPolicyAll, candidates that
149*d9f75844SAndroid Build Coastguard Worker  * have been gathered by the ICE transport but not matching the previous
150*d9f75844SAndroid Build Coastguard Worker  * transport type and as a result not observed by PeerConnectionDelegateAdapter,
151*d9f75844SAndroid Build Coastguard Worker  * will be surfaced to the delegate.
152*d9f75844SAndroid Build Coastguard Worker  */
153*d9f75844SAndroid Build Coastguard Worker @property(nonatomic, assign) BOOL shouldSurfaceIceCandidatesOnIceTransportTypeChanged;
154*d9f75844SAndroid Build Coastguard Worker 
155*d9f75844SAndroid Build Coastguard Worker /** If set to non-nil, controls the minimal interval between consecutive ICE
156*d9f75844SAndroid Build Coastguard Worker  *  check packets.
157*d9f75844SAndroid Build Coastguard Worker  */
158*d9f75844SAndroid Build Coastguard Worker @property(nonatomic, copy, nullable) NSNumber *iceCheckMinInterval;
159*d9f75844SAndroid Build Coastguard Worker 
160*d9f75844SAndroid Build Coastguard Worker /**
161*d9f75844SAndroid Build Coastguard Worker  * Configure the SDP semantics used by this PeerConnection. By default, this
162*d9f75844SAndroid Build Coastguard Worker  * is RTCSdpSemanticsUnifiedPlan which is compliant to the WebRTC 1.0
163*d9f75844SAndroid Build Coastguard Worker  * specification. It is possible to overrwite this to the deprecated
164*d9f75844SAndroid Build Coastguard Worker  * RTCSdpSemanticsPlanB SDP format, but note that RTCSdpSemanticsPlanB will be
165*d9f75844SAndroid Build Coastguard Worker  * deleted at some future date, see https://crbug.com/webrtc/13528.
166*d9f75844SAndroid Build Coastguard Worker  *
167*d9f75844SAndroid Build Coastguard Worker  * RTCSdpSemanticsUnifiedPlan will cause RTCPeerConnection to create offers and
168*d9f75844SAndroid Build Coastguard Worker  * answers with multiple m= sections where each m= section maps to one
169*d9f75844SAndroid Build Coastguard Worker  * RTCRtpSender and one RTCRtpReceiver (an RTCRtpTransceiver), either both audio
170*d9f75844SAndroid Build Coastguard Worker  * or both video. This will also cause RTCPeerConnection to ignore all but the
171*d9f75844SAndroid Build Coastguard Worker  * first a=ssrc lines that form a Plan B stream.
172*d9f75844SAndroid Build Coastguard Worker  *
173*d9f75844SAndroid Build Coastguard Worker  * RTCSdpSemanticsPlanB will cause RTCPeerConnection to create offers and
174*d9f75844SAndroid Build Coastguard Worker  * answers with at most one audio and one video m= section with multiple
175*d9f75844SAndroid Build Coastguard Worker  * RTCRtpSenders and RTCRtpReceivers specified as multiple a=ssrc lines within
176*d9f75844SAndroid Build Coastguard Worker  * the section. This will also cause RTCPeerConnection to ignore all but the
177*d9f75844SAndroid Build Coastguard Worker  * first m= section of the same media type.
178*d9f75844SAndroid Build Coastguard Worker  */
179*d9f75844SAndroid Build Coastguard Worker @property(nonatomic, assign) RTCSdpSemantics sdpSemantics;
180*d9f75844SAndroid Build Coastguard Worker 
181*d9f75844SAndroid Build Coastguard Worker /** Actively reset the SRTP parameters when the DTLS transports underneath are
182*d9f75844SAndroid Build Coastguard Worker  *  changed after offer/answer negotiation. This is only intended to be a
183*d9f75844SAndroid Build Coastguard Worker  *  workaround for crbug.com/835958
184*d9f75844SAndroid Build Coastguard Worker  */
185*d9f75844SAndroid Build Coastguard Worker @property(nonatomic, assign) BOOL activeResetSrtpParams;
186*d9f75844SAndroid Build Coastguard Worker 
187*d9f75844SAndroid Build Coastguard Worker /** If the remote side support mid-stream codec switches then allow encoder
188*d9f75844SAndroid Build Coastguard Worker  *  switching to be performed.
189*d9f75844SAndroid Build Coastguard Worker  */
190*d9f75844SAndroid Build Coastguard Worker 
191*d9f75844SAndroid Build Coastguard Worker @property(nonatomic, assign) BOOL allowCodecSwitching;
192*d9f75844SAndroid Build Coastguard Worker 
193*d9f75844SAndroid Build Coastguard Worker /**
194*d9f75844SAndroid Build Coastguard Worker  * Defines advanced optional cryptographic settings related to SRTP and
195*d9f75844SAndroid Build Coastguard Worker  * frame encryption for native WebRTC. Setting this will overwrite any
196*d9f75844SAndroid Build Coastguard Worker  * options set through the PeerConnectionFactory (which is deprecated).
197*d9f75844SAndroid Build Coastguard Worker  */
198*d9f75844SAndroid Build Coastguard Worker @property(nonatomic, nullable) RTC_OBJC_TYPE(RTCCryptoOptions) * cryptoOptions;
199*d9f75844SAndroid Build Coastguard Worker 
200*d9f75844SAndroid Build Coastguard Worker /**
201*d9f75844SAndroid Build Coastguard Worker  * An optional string that will be attached to the TURN_ALLOCATE_REQUEST which
202*d9f75844SAndroid Build Coastguard Worker  * which can be used to correlate client logs with backend logs.
203*d9f75844SAndroid Build Coastguard Worker  */
204*d9f75844SAndroid Build Coastguard Worker @property(nonatomic, nullable, copy) NSString *turnLoggingId;
205*d9f75844SAndroid Build Coastguard Worker 
206*d9f75844SAndroid Build Coastguard Worker /**
207*d9f75844SAndroid Build Coastguard Worker  * Time interval between audio RTCP reports.
208*d9f75844SAndroid Build Coastguard Worker  */
209*d9f75844SAndroid Build Coastguard Worker @property(nonatomic, assign) int rtcpAudioReportIntervalMs;
210*d9f75844SAndroid Build Coastguard Worker 
211*d9f75844SAndroid Build Coastguard Worker /**
212*d9f75844SAndroid Build Coastguard Worker  * Time interval between video RTCP reports.
213*d9f75844SAndroid Build Coastguard Worker  */
214*d9f75844SAndroid Build Coastguard Worker @property(nonatomic, assign) int rtcpVideoReportIntervalMs;
215*d9f75844SAndroid Build Coastguard Worker 
216*d9f75844SAndroid Build Coastguard Worker /**
217*d9f75844SAndroid Build Coastguard Worker  * Allow implicit rollback of local description when remote description
218*d9f75844SAndroid Build Coastguard Worker  * conflicts with local description.
219*d9f75844SAndroid Build Coastguard Worker  * See: https://w3c.github.io/webrtc-pc/#dom-peerconnection-setremotedescription
220*d9f75844SAndroid Build Coastguard Worker  */
221*d9f75844SAndroid Build Coastguard Worker @property(nonatomic, assign) BOOL enableImplicitRollback;
222*d9f75844SAndroid Build Coastguard Worker 
223*d9f75844SAndroid Build Coastguard Worker /**
224*d9f75844SAndroid Build Coastguard Worker  * Control if "a=extmap-allow-mixed" is included in the offer.
225*d9f75844SAndroid Build Coastguard Worker  * See: https://www.chromestatus.com/feature/6269234631933952
226*d9f75844SAndroid Build Coastguard Worker  */
227*d9f75844SAndroid Build Coastguard Worker @property(nonatomic, assign) BOOL offerExtmapAllowMixed;
228*d9f75844SAndroid Build Coastguard Worker 
229*d9f75844SAndroid Build Coastguard Worker /**
230*d9f75844SAndroid Build Coastguard Worker  * Defines the interval applied to ALL candidate pairs
231*d9f75844SAndroid Build Coastguard Worker  * when ICE is strongly connected, and it overrides the
232*d9f75844SAndroid Build Coastguard Worker  * default value of this interval in the ICE implementation;
233*d9f75844SAndroid Build Coastguard Worker  */
234*d9f75844SAndroid Build Coastguard Worker @property(nonatomic, copy, nullable) NSNumber *iceCheckIntervalStrongConnectivity;
235*d9f75844SAndroid Build Coastguard Worker 
236*d9f75844SAndroid Build Coastguard Worker /**
237*d9f75844SAndroid Build Coastguard Worker  * Defines the counterpart for ALL pairs when ICE is
238*d9f75844SAndroid Build Coastguard Worker  * weakly connected, and it overrides the default value of
239*d9f75844SAndroid Build Coastguard Worker  * this interval in the ICE implementation
240*d9f75844SAndroid Build Coastguard Worker  */
241*d9f75844SAndroid Build Coastguard Worker @property(nonatomic, copy, nullable) NSNumber *iceCheckIntervalWeakConnectivity;
242*d9f75844SAndroid Build Coastguard Worker 
243*d9f75844SAndroid Build Coastguard Worker /**
244*d9f75844SAndroid Build Coastguard Worker  * The min time period for which a candidate pair must wait for response to
245*d9f75844SAndroid Build Coastguard Worker  * connectivity checks before it becomes unwritable. This parameter
246*d9f75844SAndroid Build Coastguard Worker  * overrides the default value in the ICE implementation if set.
247*d9f75844SAndroid Build Coastguard Worker  */
248*d9f75844SAndroid Build Coastguard Worker @property(nonatomic, copy, nullable) NSNumber *iceUnwritableTimeout;
249*d9f75844SAndroid Build Coastguard Worker 
250*d9f75844SAndroid Build Coastguard Worker /**
251*d9f75844SAndroid Build Coastguard Worker  * The min number of connectivity checks that a candidate pair must sent
252*d9f75844SAndroid Build Coastguard Worker  * without receiving response before it becomes unwritable. This parameter
253*d9f75844SAndroid Build Coastguard Worker  * overrides the default value in the ICE implementation if set.
254*d9f75844SAndroid Build Coastguard Worker  */
255*d9f75844SAndroid Build Coastguard Worker @property(nonatomic, copy, nullable) NSNumber *iceUnwritableMinChecks;
256*d9f75844SAndroid Build Coastguard Worker 
257*d9f75844SAndroid Build Coastguard Worker /**
258*d9f75844SAndroid Build Coastguard Worker  * The min time period for which a candidate pair must wait for response to
259*d9f75844SAndroid Build Coastguard Worker  * connectivity checks it becomes inactive. This parameter overrides the
260*d9f75844SAndroid Build Coastguard Worker  * default value in the ICE implementation if set.
261*d9f75844SAndroid Build Coastguard Worker  */
262*d9f75844SAndroid Build Coastguard Worker @property(nonatomic, copy, nullable) NSNumber *iceInactiveTimeout;
263*d9f75844SAndroid Build Coastguard Worker 
264*d9f75844SAndroid Build Coastguard Worker - (instancetype)init;
265*d9f75844SAndroid Build Coastguard Worker 
266*d9f75844SAndroid Build Coastguard Worker @end
267*d9f75844SAndroid Build Coastguard Worker 
268*d9f75844SAndroid Build Coastguard Worker NS_ASSUME_NONNULL_END
269