OBSERVERTC / Getting started
Send samples to your backend
Connect browser monitoring to server-side call analysis.
A browser can tell you what happened at one endpoint. Sending its observations to your backend lets you connect that evidence to a call: which participants were affected, what they were sending or receiving, and how the problem developed.
You do not need to study the schema or generate code to begin. Client Monitor creates the samples; your application delivers them. Start with a working browser monitor and a backend transport you control.
- 01Collect in the browser
Client Monitor creates a sample of the endpoint's observations.
- 02Deliver to your backend
Your application authenticates the sender and transports the sample.
- 03Build the call picture
Observer updates live state; your storage retains history when needed.
Decide what you need
- Browser diagnostics only: stay with Client Monitor. Sending samples is optional.
- Compare participants: use Observer to organize accepted samples into live calls and clients.
- Keep diagnostic history: connect your own storage through an Observer sink.
- Reduce payload size later: explore Codecs after the basic delivery path works.
What is a sample?
A ClientSample is the record Client Monitor prepares for transport. It carries timestamped observations and identifiers that let the backend associate them with a client and call. It is not a recording of the media, and it does not contain every property available in the live monitor.
For a first integration, consume the sample the library provides. The detailed field reference is useful when you need a specific field or write a custom consumer. Code generation is for working on the schema contract, rather than a setup step for sending samples.
Connect the pipeline
- Assign
callIdandclientIdin Client Monitor from your application’s identity model. - Attach a
sample-createdlistener before samples begin. Forward itssamplethrough your transport. - Authenticate and validate requests at your backend. Check that the sender may report for those identities.
- If you use a codec, decode its ordered stream before processing the resulting sample.
- Pass the decoded sample to
observer.accept(sample). - Register the server detectors you need and choose a sink if you require history.
Confirm the result
The first accepted sample creates live call/client state. Subsequent samples update that state. Listen to call-added and client-issue as shown in the Observer quick start.
If no call appears, confirm that the sample reached your handler, validation succeeded, and both identifiers are present. Observer does not create your endpoint or decode a codec stream automatically.
See backend integration and ingestion behavior for the authoritative implementation boundaries.