Deployment availability¶
TEBHOS runs as a single deployment at https://tebhos.com. Every route in this reference is registered on it; there are no routes that exist on one kind of deployment and not on another.
What can vary is whether a capability behind a route is switched on. The unauthenticated instance discovery document publishes this in its features object, so a client can read it before it holds any credential.
Instance features¶
{
"features": {
"voice_enabled": true,
"presigned_attachment_uploads": true,
"emails_enabled": true,
"sms_enabled": false,
"stripe_enabled": true,
"payment_provider": "polar",
"self_hosted": true
}
}
| Field | Type | Description |
|---|---|---|
voice_enabled |
boolean | Whether a voice server is configured. Voice channels, calls and screen sharing need it |
presigned_attachment_uploads |
boolean | Whether attachment upload URLs point to object storage (true) or to the API itself (false). The upload flow is the same either way |
emails_enabled |
boolean | Whether an email provider is configured, so verification, password reset and email change messages can be delivered |
sms_enabled |
boolean | Whether an SMS provider is configured. Phone verification and SMS two-factor authentication are usable only when it is true |
stripe_enabled |
boolean | Kept under this name for compatibility. true when premium payments are configured. The payment provider is named by payment_provider |
payment_provider |
string | Always polar. Premium and gift purchases are processed by Polar |
self_hosted |
boolean | Always true. It does not remove any route and can be ignored for availability decisions |
Routes behind a switched-off capability¶
The routes of a capability stay registered when its flag is false. Read the flag before offering the feature, instead of relying on the error:
- With
voice_enabledfalse, operations that issue voice connection credentials, such as joining a voice channel or starting a call, fail with 500INTERNAL_SERVER_ERROR. - With
stripe_enabledfalse, checkout and billing portal operations in Premium and Billing fail with 500INTERNAL_SERVER_ERROR. - With
sms_enabledfalse, hide phone verification and SMS two-factor entry points; the SMS provider cannot deliver codes. - With
emails_enabledfalse, flows that wait for an emailed code or link cannot complete.
Credentials, permissions, premium state and OAuth2 scopes never change which routes exist. They only change whether a particular caller may use them.