public static Webrtc.PeerConnection.RTCConfiguration ToNative(this RTCConfiguration configuration) { RTCIceServer[] iceServers = configuration.IceServers ?? new RTCIceServer[] { }; var nativeConfiguration = new Webrtc.PeerConnection.RTCConfiguration(iceServers .Select(server => server.ToNative()).ToList()); if (configuration.BundlePolicy.HasValue) { nativeConfiguration.BundlePolicy = configuration.BundlePolicy?.ToNative(); } if (configuration.Certificates is not null) { nativeConfiguration.Certificate = (Webrtc.RtcCertificatePem) (configuration.Certificates?.ElementAt(0).NativeObject); } if (configuration.IceCandidatePoolSize.HasValue) { nativeConfiguration.IceCandidatePoolSize = (int)configuration.IceCandidatePoolSize; } if (configuration.IceTransportPolicy.HasValue) { nativeConfiguration.IceTransportsType = configuration.IceTransportPolicy?.ToNative(); } if (configuration.RtcpMuxPolicy.HasValue) { nativeConfiguration.RtcpMuxPolicy = configuration.RtcpMuxPolicy?.ToNative(); } if (configuration.SdpSemantics.HasValue) { nativeConfiguration.SdpSemantics = configuration.SdpSemantics?.ToNative(); } return(nativeConfiguration); }
public static Core.RTCConfiguration ToNativePort(this RTCConfiguration platformNative) => new Core.RTCConfiguration { IceTransportPolicy = platformNative.IceTransportsType.ToNativePort(), BundlePolicy = platformNative.BundlePolicy.ToNativePort(), RtcpMuxPolicy = platformNative.RtcpMuxPolicy.ToNativePort(), TcpCandidatePolicy = platformNative.TcpCandidatePolicy.ToNativePort(), CandidateNetworkPolicy = platformNative.CandidateNetworkPolicy.ToNativePort(), AudioJitterBufferFastAccelerate = platformNative.AudioJitterBufferFastAccelerate, AudioJitterBufferMaxPackets = platformNative.AudioJitterBufferMaxPackets, IceConnectionReceivingTimeout = platformNative.IceConnectionReceivingTimeout, KeyType = platformNative.KeyType.ToNativePort(), ContinualGatheringPolicy = platformNative.ContinualGatheringPolicy.ToNativePort(), IceCandidatePoolSize = platformNative.IceCandidatePoolSize, ShouldPruneTurnPorts = platformNative.PruneTurnPorts, ShouldPresumeWritableWhenFullyRelayed = platformNative.PresumeWritableWhenFullyRelayed, IceCheckMinInterval = platformNative.IceCheckMinInterval.IntValue(), DisableIPV6OnWiFi = platformNative.DisableIPv6OnWifi, MaxIPv6Networks = platformNative.MaxIPv6Networks, DisableIPV6 = platformNative.DisableIpv6, SdpSemantics = platformNative.SdpSemantics.ToNativePort(), ActiveResetSrtpParams = platformNative.ActiveResetSrtpParams, UseMediaTransport = platformNative.UseMediaTransport, UseMediaTransportForDataChannels = platformNative.UseMediaTransportForDataChannels, EnableDtlsSrtp = platformNative.EnableDtlsSrtp.BooleanValue(), Certificate = platformNative.Certificate.ToNativePort(), IceBackupCandidatePairPingInterval = platformNative.IceBackupCandidatePairPingInterval };