Create an instance
initialize() may resolve authenticated or anonymous:
- a valid session in
sessionStorageis restored, emittingsignedInandready; - otherwise it emits
authRequiredand waits for the OTP flow.
Email one-time code
challenge.resendAvailableAt to gate the resend button and challenge.expiresAt to show a countdown.
Ringee does not reveal whether an email exists. A code is “sent” for any well-formed address — do not build enumeration hints into your UI.
Place and control a call
Caller IDs
callerIdId to call(). Omit it to let Ringee choose.
Audio devices
deviceChanged fires when the selection changes.
Read current state
Unsubscribe
Everyon() returns an unsubscribe function:
Sign out and clean up
Building a good headless UI
Do not assume every state fires
Do not assume every state fires
The exact sequence varies with the browser, the network and the remote destination. Render from the current state rather than from an expected transition order.
Translate error codes yourself
Translate error codes yourself
The bundled UIs turn backend error codes into actionable messages. Headless gives you raw
RingeeError codes — map them to copy your users understand. See Errors.Require a user gesture
Require a user gesture
Start calls from a click. Browsers block audio playback that was not user-initiated.
Handle reconnecting
Handle reconnecting
reconnecting is a normal transient state on flaky networks. Show it, but do not tear the call down.Next steps
API reference
Every method, event and state
Errors
Every error code and how to react

