Scaling, capacity and high availability
How voice, API and edge capacity is grouped, scaled, limited and balanced, how services are drained for maintenance, and how the platform stays available when an instance or edge fails. Browse the feature map or configuration finder.
Availability: Next. Entries that depend on an optional feature, a role or a deployment choice name it in their own Availability line.
Features in this family
- Server groups
- Automatic scaling
- Scaling providers and provisioning scripts
- Concurrent call limit per voice instance and group
- Load balancing across voice instances
- Instance heartbeats and usage reports
- Stale instance detection
- Single active scaler and job runner
- Server group maintenance (drain, resume, refresh, restart)
- Draining an edge
- Two-edge high availability
- Edge routing handover integration
- Media floating address
- Edge instance overview
- Active calls per edge and voice server
- Voice server inventory
- Scaling events and alerts
- Capacity planning and measurements
Server groups
Server groups bundle voice, API or edge instances with their limits, balancing and scaling settings, and base numbers and teams are routed to a group.
For: Deployment operators
| Level | Where to change it | Owner section |
|---|---|---|
| Platform settings | Admin Settings › Server Groups(serverGroup, role, voice, api, telpro, teams, priority) | Configure a server group |
Read more:
- Set it up: Configure a server group
- Set it up: Remove a group safely
- Troubleshoot: Server-group recovery boundary
- Reference: Fleet controls
Related features: Automatic scaling, Load balancing across voice instances, Concurrent call limit per voice instance and group, Server group maintenance (drain, resume, refresh, restart).
Automatic scaling
The scaler adds or removes voice and API instances within a group's minimum and maximum, based on load thresholds and a cooldown between changes.
For: Deployment operators
| Level | Where to change it | Owner section |
|---|---|---|
| Platform settings | Admin Settings › Server Groups › Enable Auto-Scaling(scalingEnabled, minInstances, maxInstances, scaleUpThreshold, scaleDownThreshold, cooldownSeconds) | Configure a server group |
| Services and containers | Scaler environment(SCALING_EVALUATION_INTERVAL_MS, SCALING_MAX_PARALLEL_BELOW_MIN_SCALE_UPS, SCALING_DRAIN_TIMEOUT_MS, SCALER_INSTANCE_ID, SCALER_LOG_LEVEL) | Ops variables |
Read more:
- Set it up: Configure a server group
- How it works: Interpret scaling and health
- Reference: Scaler: follow authority, decision and provider result
Related features: Scaling providers and provisioning scripts, Scaling events and alerts, Server groups.
Scaling providers and provisioning scripts
Each group names a scaling provider whose scripts create and remove machines, so the scaler can work with different hosting environments.
For: Deployment operators
| Level | Where to change it | Owner section |
|---|---|---|
| Platform settings | Admin Settings › Server Groups › Scaling Provider(scalingProvider, scalingConfig) | Configure a server group |
| Services and containers | Scaler environment(SCALING_SCRIPTS_PATH) | Ops variables |
| Platform settings | Scaling Config JSON passed to provider scripts(SCALING_CONFIG_*, SCALING_SERVER_TYPE, HETZNER_API_TOKEN) | Pass provider configuration to scripts |
Read more:
- Set it up: Configure a server group
- Reference: Ops variables
Related features: Automatic scaling.
Concurrent call limit per voice instance and group
A voice instance and its server group accept only a set number of simultaneous calls, and calls above the limit are refused with a busy or unavailable response.
For: Deployment operators
| Level | Where to change it | Owner section |
|---|---|---|
| Platform settings | Admin Settings › Server Groups › Max Concurrent Calls(maxConcurrentCalls) | Configure a server group |
| Services and containers | TelPhi environment(MAX_CONCURRENT_CALLS) | Voice variables |
Read more:
- Set it up: Configure a server group
- Reference: Voice runtime limits under load
- How it works: Plan ready capacity
- Reference: ARI session limits
Related features: Trunk call limit field, Load balancing across voice instances, Capacity planning and measurements.
Load balancing across voice instances
Each server group picks how new calls spread over its voice instances, for example in turn or to the instance with the fewest calls.
For: Deployment operators
| Level | Where to change it | Owner section |
|---|---|---|
| Platform settings | Admin Settings › Server Groups › Load Balancing Method(lbMethod, round_robin, least_calls, random) | Configure a server group |
Read more:
- Set it up: Configure a server group
- How it works: Follow the request path
Related features: Voice host selection by the edge, Server groups.
Instance heartbeats and usage reports
Every voice and API instance reports its liveness, resources and active calls at fixed intervals, which drives call routing, scaling and stale-instance detection.
For: Deployment operators
| Level | Where to change it | Owner section |
|---|---|---|
| Services and containers | TelPhi and TelAPI environment(HEARTBEAT_INTERVAL, RESOURCE_MONITOR_INTERVAL, USAGE_MONITOR_INTERVAL, USAGE_MONITOR_HEARTBEAT_INTERVAL_MS, TELPHI_INSTANCE_ID, TELAPI_INSTANCE_ID, INSTANCE_ID) | Voice variables |
Read more:
- Reference: Heartbeat and call admission
- Reference: TelPhi heartbeat and the no-traces alert
- Troubleshoot: No-traces alert
Related features: Stale instance detection, Voice host selection by the edge, Automatic scaling.
Stale instance detection
Instances that stop sending heartbeats are marked offline after a grace period and dropped from routing and capacity counts.
For: Deployment operators
| Level | Where to change it | Owner section |
|---|---|---|
| Services and containers | Scaler environment(STALE_SERVER_HEARTBEAT_SECONDS) | Ops variables |
Read more:
- Reference: Heartbeat and call admission
- Reference: Alert rules
Related features: Instance heartbeats and usage reports, Scaling events and alerts.
Single active scaler and job runner
Several scaler or job runner instances can run at once while only the elected leader acts, and a standby takes over when the leader's lock expires.
For: Deployment operators
| Level | Where to change it | Owner section |
|---|---|---|
| Services and containers | Scaler and Tasker environment(LEADER_ELECTION_KEY, LEADER_LOCK_TTL_MS, LEADER_HEARTBEAT_INTERVAL_MS, LEADER_ACQUISITION_TIMEOUT_MS, TASKER_LEADER_ELECTION_KEY) | Ops variables |
Read more:
- Reference: Ops variables
- How it works: Capacity and high availability need measurements
Related features: Automatic scaling.
Server group maintenance (drain, resume, refresh, restart)
Super admins can drain a group or one edge without restart, resume admission, refresh configuration or restart a service, and follow the job and its history per target.
Availability: Needs the super-admin role; available from 0.9.19.
For: Deployment operators
| Level | Where to change it | Owner section |
|---|---|---|
| Platform settings | Admin Settings › Server Groups › Maintenance(CONFIG_REFRESH) | Target one server group |
Read more:
- Set it up: Target one server group
- Set it up: Maintain capacity during a refresh
- Set it up: Read the job and stop future work
- Set it up: Verify before restoring normal traffic
Related features: Service refresh and server group maintenance, Draining an edge, Edge instance overview, Voice service operation.
Draining an edge
An edge can be switched to refuse new calls while existing dialogs finish, so it can be maintained without cutting active calls.
For: Deployment operators
| Level | Where to change it | Owner section |
|---|---|---|
| Platform settings | Admin Settings › Server Groups › Maintenance › Drain without restart(accept_new_calls) | Drain an edge instance |
Read more:
- Set it up: Drain an edge instance
- Set it up: Target one server group
Related features: Server group maintenance (drain, resume, refresh, restart), Two-edge high availability, Trunk maintenance mode, Voice service operation.
Two-edge high availability
Two edges can run as a pair where a floating address and routing identity move to the healthy peer, keeping new calls flowing when one edge is drained or fails.
For: Deployment operators
| Level | Where to change it | Owner section |
|---|---|---|
| Services and containers | TelPro environment(TELPRO_HA_ENABLED, TELPRO_GROUP_NAME, TELPRO_INITIAL_ACTIVE_INSTANCE_ID, TELPRO_PEER_INSTANCE_ID, TELPRO_PEER_PROVIDER_SERVER_ID, TELPRO_PROVIDER_SERVER_ID, TELPRO_SIP_FLOATING_IP_ID, FLOATING_IP, HCLOUD_TOKEN) | TelPro variables |
Read more:
- How it works: Run two edges
- Set it up: Target one server group
- How it works: Capacity and high availability need measurements
Related features: Edge routing handover integration, Media floating address, Draining an edge.
Edge routing handover integration
When admission moves between edges, the platform calls a configured routing integration so that new traffic follows the active edge.
For: Deployment operators
| Level | Where to change it | Owner section |
|---|---|---|
| Services and containers | TelPro environment(TELPRO_ROUTING_PROVIDER, TELPRO_ROUTING_ENDPOINT, TELPRO_ROUTING_TARGET_IDS, TELPRO_ROUTING_TOKEN, configured-http) | TelPro variables |
Read more:
- How it works: Run two edges
- Reference: TelPro variables
Related features: Two-edge high availability.
Media floating address
A separate floating address can carry media for the active edge and is bound to its network interface when ownership moves.
For: Deployment operators
| Level | Where to change it | Owner section |
|---|---|---|
| Services and containers | TelPro environment(TELPRO_FLOATING_IP_BIND_ENABLED, TELPRO_MEDIA_FLOATING_IP_ID, TELPRO_MEDIA_INTERFACE) | Bind the floating media address |
| Services and containers | Cloud credential for floating addresses(HCLOUD_TOKEN) | TelPro variables |
Read more:
- Set it up: Bind the floating media address
Related features: Two-edge high availability, Public and private edge addresses (NAT).
Edge instance overview
The server group view lists each edge with its admission state, routing owners, maintenance lease, SIP dialogs and RTP sessions, marking stale data as unknown.
Availability: Available from 0.9.19.
For: Deployment operators
| Level | Where to change it | Owner section |
|---|---|---|
| Platform settings | Admin Settings › Server Groups › group details › TelPro instances | Target one server group |
Read more:
- Reference: Target one server group
- Set it up: Verify the fleet after a change
Related features: Server group maintenance (drain, resume, refresh, restart), Active calls per edge and voice server, SIP edge health.
Active calls per edge and voice server
Administrators can list the calls currently on an edge or voice server, expand one to see its state and jump to the matching conversation.
For: Deployment operators
| Level | Where to change it | Owner section |
|---|---|---|
| Platform settings | Admin Settings › Server Groups › Show calls | Target one server group |
Read more:
- Reference: Target one server group
Related features: Edge instance overview, Telephony details of a conversation.
Voice server inventory
The platform keeps a record per voice server with its address, status, active calls, used media ports and maintenance flag.
For: Deployment operators
| Level | Where to change it | Owner section |
|---|---|---|
| Platform settings | Admin Settings › Server Groups › servers(online, degraded, overloaded, maintenance, offline, usedRtpPorts) | Verify the fleet after a change |
Read more:
- Set it up: Verify the fleet after a change
- Reference: Recorded single-Voice-instance measurements
Related features: Instance heartbeats and usage reports, Server groups.
Scaling events and alerts
Scaling starts, completions and failures are recorded as operation events and raise notifications, so operators see when capacity changes or fails to change.
For: Deployment operators, Team administrators
| Level | Where to change it | Owner section |
|---|---|---|
| Platform settings | Notifications(SCALE_UP_STARTED, SCALE_UP_COMPLETED, SCALE_UP_FAILED, SCALE_DOWN_STARTED, SCALE_DOWN_COMPLETED, SCALE_DOWN_FAILED) | Review and acknowledge an alert |
Read more:
- Reference: Monitor maintenance and scaling operations
- Reference: Interpret operation phases
- Set it up: Review and acknowledge an alert
- Reference: Dashboard and alarm design
Related features: Automatic scaling, Stale instance detection, Operation events, Notification types.
Capacity planning and measurements
Operators plan ready capacity from recorded call and resource measurements instead of assumed per-host figures.
For: Deployment operators
| Level | Where to change it | Owner section |
|---|---|---|
| Services and containers | Monitoring dashboards | Plan ready capacity |
Read more:
- How it works: Plan ready capacity
- Reference: Recorded single-Voice-instance measurements
- Reference: Dashboards
Related features: Concurrent call limit per voice instance and group, Automatic scaling, API rate limits.