Safe Haskell | Safe-Inferred |
---|---|
Language | GHC2021 |
Synopsis
- data RTCConfiguration
- rtcConfiguration :: NonEmpty RTCIceServer -> Maybe (NonEmpty SFTServer) -> Word32 -> Maybe [AuthSFTServer] -> Maybe Bool -> RTCConfiguration
- rtcConfIceServers :: Lens' RTCConfiguration (NonEmpty RTCIceServer)
- rtcConfSftServers :: Lens' RTCConfiguration (Maybe (NonEmpty SFTServer))
- rtcConfSftServersAll :: Lens' RTCConfiguration (Maybe [AuthSFTServer])
- rtcConfTTL :: Lens' RTCConfiguration Word32
- rtcConfIsFederating :: Lens' RTCConfiguration (Maybe Bool)
- data RTCIceServer
- rtcIceServer :: NonEmpty TurnURI -> TurnUsername -> AsciiBase64 -> RTCIceServer
- iceURLs :: Lens' RTCIceServer (NonEmpty TurnURI)
- iceUsername :: Lens' RTCIceServer TurnUsername
- iceCredential :: Lens' RTCIceServer AsciiBase64
- data TurnURI
- turnURI :: Scheme -> TurnHost -> Port -> Maybe Transport -> TurnURI
- turiScheme :: Lens' TurnURI Scheme
- data Scheme
- turiHost :: Lens' TurnURI TurnHost
- turiPort :: Lens' TurnURI Port
- turiTransport :: Lens' TurnURI (Maybe Transport)
- data Transport
- data TurnHost
- data SFTUsername
- mkSFTUsername :: Bool -> POSIXTime -> Text -> SFTUsername
- data TurnUsername
- turnUsername :: POSIXTime -> Text -> TurnUsername
- tuExpiresAt :: Lens' TurnUsername POSIXTime
- tuVersion :: Lens' TurnUsername Word
- tuKeyindex :: Lens' TurnUsername Word32
- tuT :: Lens' TurnUsername Char
- tuRandom :: Lens' TurnUsername Text
- data SFTServer
- sftServer :: HttpsUrl -> SFTServer
- sftURL :: Iso' SFTServer HttpsUrl
- data AuthSFTServer
- authSFTServer :: SFTServer -> SFTUsername -> AsciiBase64 -> AuthSFTServer
- nauthSFTServer :: SFTServer -> AuthSFTServer
- authURL :: Lens' AuthSFTServer HttpsUrl
- authUsername :: Lens' AuthSFTServer (Maybe SFTUsername)
- authCredential :: Lens' AuthSFTServer (Maybe AsciiBase64)
- isUdp :: TurnURI -> Bool
- isTcp :: TurnURI -> Bool
- isTls :: TurnURI -> Bool
- limitServers :: [TurnURI] -> Int -> [TurnURI]
RTCConfiguration
data RTCConfiguration Source #
A configuration object resembling "RTCConfiguration"
The "ttl" field is a proprietary extension The "sft_servers" field is a proprietary extension
Instances
rtcConfiguration :: NonEmpty RTCIceServer -> Maybe (NonEmpty SFTServer) -> Word32 -> Maybe [AuthSFTServer] -> Maybe Bool -> RTCConfiguration Source #
RTCIceServer
data RTCIceServer Source #
A configuration object resembling "RTCIceServer"
cf. https://developer.mozilla.org/en-US/docs/Web/API/RTCIceServer
Instances
rtcIceServer :: NonEmpty TurnURI -> TurnUsername -> AsciiBase64 -> RTCIceServer Source #
TurnURI
TURN server URI as described in https://tools.ietf.org/html/rfc7065, minus ext | | turnURI = scheme ":" host [ ":" port ] | [ "?transport=" transport ] | scheme = "turn" / "turns" | transport = "udp" "tcp" transport-ext | transport-ext = 1*unreserved
FUTUREWORK: Can contain, but refuses to deserialize IPv6 hosts, see parseTurnURI
and the Arbitrary
instance. Please fix this.
Instances
Instances
Arbitrary Scheme Source # | |
FromJSON Scheme Source # | |
ToJSON Scheme Source # | |
Generic Scheme Source # | |
Show Scheme Source # | |
FromByteString Scheme Source # | |
Defined in Wire.API.Call.Config | |
ToByteString Scheme Source # | |
Eq Scheme Source # | |
Ord Scheme Source # | |
ToSchema Scheme Source # | |
Defined in Wire.API.Call.Config | |
ToSchema Scheme Source # | |
Defined in Wire.API.Call.Config | |
type Rep Scheme Source # | |
Instances
Arbitrary Transport Source # | |
FromJSON Transport Source # | |
ToJSON Transport Source # | |
Generic Transport Source # | |
Show Transport Source # | |
FromByteString Transport Source # | |
Defined in Wire.API.Call.Config | |
ToByteString Transport Source # | |
Eq Transport Source # | |
Ord Transport Source # | |
Defined in Wire.API.Call.Config | |
ToSchema Transport Source # | |
Defined in Wire.API.Call.Config | |
ToSchema Transport Source # | |
Defined in Wire.API.Call.Config | |
type Rep Transport Source # | |
Instances
Arbitrary TurnHost Source # | |
FromJSON TurnHost Source # | |
ToJSON TurnHost Source # | |
Generic TurnHost Source # | |
Show TurnHost Source # | |
FromByteString TurnHost Source # | |
Defined in Wire.API.Call.Config | |
ToByteString TurnHost Source # | |
Eq TurnHost Source # | |
Ord TurnHost Source # | |
Defined in Wire.API.Call.Config | |
ToSchema TurnHost Source # | |
Defined in Wire.API.Call.Config | |
ToSchema TurnHost Source # | |
Defined in Wire.API.Call.Config | |
type Rep TurnHost Source # | |
Defined in Wire.API.Call.Config type Rep TurnHost = D1 ('MetaData "TurnHost" "Wire.API.Call.Config" "wire-api-0.1.0-EbZS9CKNOfZ8BBy5DRJfXi" 'False) (C1 ('MetaCons "TurnHostIp" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 IpAddr)) :+: C1 ('MetaCons "TurnHostName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Text))) |
SFTUsername
data SFTUsername Source #
Instances
mkSFTUsername :: Bool -> POSIXTime -> Text -> SFTUsername Source #
TurnUsername
data TurnUsername Source #
Instances
turnUsername :: POSIXTime -> Text -> TurnUsername Source #
SFTServer
Instances
Arbitrary SFTServer Source # | |
FromJSON SFTServer Source # | |
ToJSON SFTServer Source # | |
Generic SFTServer Source # | |
Show SFTServer Source # | |
Eq SFTServer Source # | |
Ord SFTServer Source # | |
Defined in Wire.API.Call.Config | |
ToSchema SFTServer Source # | |
Defined in Wire.API.Call.Config | |
ToSchema SFTServer Source # | |
Defined in Wire.API.Call.Config | |
type Rep SFTServer Source # | |
Defined in Wire.API.Call.Config |
AuthSFTServer
data AuthSFTServer Source #
Instances
authSFTServer :: SFTServer -> SFTUsername -> AsciiBase64 -> AuthSFTServer Source #
convenience
limitServers :: [TurnURI] -> Int -> [TurnURI] Source #
given a list of URIs and a size, limit URIs with order priority from highest to lowest: UDP -> TLS -> TCP i.e. (if enough servers of each type are available) 1 -> 1x UDP 2 -> 1x UDP, 1x TLS 3 -> 1x UDP, 1x TLS, 1x TCP 4 -> 2x UDP, 1x TLS, 1x TCP 5 -> 2x UDP, 2x TLS, 1x TCP ... etc if not enough servers are available, prefer udp, then tls