Skip to content

Commit

Permalink
Initial FAQ (#461)
Browse files Browse the repository at this point in the history
  • Loading branch information
grahamking authored Mar 10, 2021
1 parent 44b912b commit 010ae78
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 1 deletion.
31 changes: 31 additions & 0 deletions FAQ.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Frequenty Asked Questions

### How can I join a session receive-only, without sending any media?

If you are using [ion-sdk-js](https://github.com/pion/ion-sdk-js) this should work by default. If not, read on.

If a participant does not have a microphone or camera, or denies access to them from the browser, how can they join? Something needs to be added to the publisher connection to generate valid SDP.

Add a datachannel to the publisher peer connection. e.g. `this.publisher.createDataChannel("ion-sfu")`

### Does ion-sfu support audio level indication, telling me who is talking?

Yes. The subscriber peer connection will contain a data channel. It gets sent an array of stream id that are making noise, ordered loudest first.

Stream id is the `msid` from the SDP, [defined here](https://tools.ietf.org/html/draft-ietf-mmusic-msid-17). It is up to your application to map that to a meaningful value, such as the user's name.

Here is an example in Typescript:
```
subscriber.ondatachannel = (e: RTCDataChannelEvent) => {
e.channel.onmessage = (e: MessageEvent) => {
this.mySpeakingCallback(JSON.parse(e.data));
}
}
```

Audio level indication can be tuned [here in the configuration file](https://github.com/pion/ion-sfu/blob/master/config.toml#L15-L28).

### Can I record the audio and/or video to disk?

Recording (and general audio/video processing) is provided by separate project [ion-avp](https://github.com/pion/ion-avp/).

7 changes: 6 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ A [selective forwarding unit](https://webrtcglossary.com/sfu/) is a video routin
* Congestion Control (TWCC, REMB, RR/SR)
* Unified plan semantics
* Pub/Sub Peer Connection (`O(n)` port usage)
* Audio level indication (RFC6464). "X is speaking"

## Quickstart

Expand Down Expand Up @@ -66,6 +67,10 @@ go build ./cmd/signal/grpc/main.go && ./main -c config.toml
docker run -p 50051:50051 -p 5000-5200:5000-5200/udp pionwebrtc/ion-sfu:latest-grpc
```

## Documentation

Answers to some [Frequenty Asked Questions](FAQ.md).

## Examples

To see some other ways of interacting with the ion-sfu instance, check out our [examples](examples).
Expand All @@ -84,7 +89,7 @@ MIT License - see [LICENSE](LICENSE) for full text

Generate the protocol buffers and grpc code:
1. Best choice (uses docker): `make protos`.
2. Manually:
2. Manually:
- Install protocol buffers and the protcol buffers compiler. On Fedora `dnf install protobuf protobuf-compiler`.
- `go get google.golang.org/grpc/cmd/protoc-gen-go-grpc`
- `go get google.golang.org/protobuf/cmd/protoc-gen-go`
Expand Down

0 comments on commit 010ae78

Please sign in to comment.