Example #1
0
        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
 };