Ctrl K
ring2all.com

SMS Providers

Ring2All Platform — SMS Provider Configuration
Parent Module: SMS Messaging

---

Overview

SMS Providers are external carrier services (Twilio, Telnyx, Bandwidth, etc.) that handle the actual delivery of text messages. Each provider requires specific API credentials and can be configured with rate limits and priority for routing.

Admin Panel → SMS → Providers

---

Configuration Fields

Field NameTechnical DescriptionUser-Friendly TooltipExampleNotes
NameUnique identifier in sms_providers.name.A friendly name for this SMS carrier.Twilio USMust be unique per domain.
Provider TypeCarrier type in provider_type.The SMS carrier service to use.twilioOptions: twilio, telnyx, bandwidth, signalwire, generic
API KeyAuthentication credential in api_key.Your API key from the provider.AC123...Keep secure. Never share.
API SecretAuthentication credential in api_secret.Your API secret or auth token.abcd1234...Stored encrypted in database.
Account SIDTwilio-specific identifier in account_sid.Your Twilio Account SID (Twilio only).AC123...Required for Twilio provider type.
API EndpointCustom endpoint in api_endpoint.Custom API URL for generic providers.https://api.carrier.com/smsOnly for generic HTTP providers.
Webhook URLInbound callback in webhook_url.URL for receiving delivery reports and incoming messages.https://yoursite.com/sms/webhookAuto-generated for Ring2All hosted.
Webhook SecretWebhook authentication in webhook_secret.Secret for validating webhook requests.whsec_123...Used to verify incoming webhooks are authentic.
PriorityRouting priority in priority.Provider priority for routing. Lower numbers are tried first.100Used when multiple providers match a route.
Is DefaultDefault provider flag in is_default.Use this provider when no route matches.trueOnly one provider per domain can be default.
Rate Limit (per second)Throttle in rate_limit_per_second.Maximum messages per second to this provider.10Prevents carrier rate limit violations.
EnabledToggle in enabled.Enable or disable this provider.trueDisabled providers are not used for routing.
---

Supported Provider Types

Twilio

FieldRequiredDescription
Account SIDFound in Twilio Console dashboard
API SecretAuth Token from Twilio Console
Webhook URLConfigure in Twilio phone number settings
Setup Steps:
  1. Create Twilio account at https://twilio.com
  2. Copy Account SID and Auth Token from Console
  3. Purchase or port a phone number
  4. Configure webhook URL for inbound messages

Telnyx

FieldRequiredDescription
API KeyAPI Key from Telnyx Portal
API SecretNot required for Telnyx v2 API
Webhook URLConfigure in Telnyx Messaging Profile
Setup Steps:
  1. Create Telnyx account at https://telnyx.com
  2. Generate API Key in Portal → Auth
  3. Create Messaging Profile with webhook URL
  4. Assign phone numbers to the profile

Bandwidth

FieldRequiredDescription
API KeyAPI Token from Bandwidth Dashboard
Account SIDAccount ID from Dashboard
Webhook URLConfigure in Application settings

SignalWire

FieldRequiredDescription
API KeyAPI Token from SignalWire Space
API EndpointYour SignalWire Space URL
Webhook URLConfigure in phone number settings

Generic HTTP

For custom or unsupported carriers that have an HTTP API.

FieldRequiredDescription
API EndpointFull URL to the SMS send endpoint
API KeyAuthentication header value
Settings (JSON)Custom configuration for the API
---

Priority and Routing

Providers are used in routing based on:

  1. Route Matching: Routes reference specific providers
  2. Priority: Lower priority number = higher preference
  3. Fallback: Routes can specify a fallback provider
  4. Default: Provider marked is_default handles unmatched routes

Plaintext
Message to +1555... 
    → Check Routes → Match "US Domestic" → Provider: Twilio
    → If Twilio fails → Fallback: Telnyx
    → If no route matches → Default Provider

---

Rate Limiting

The rate_limit_per_second field prevents overwhelming carrier APIs:

CarrierRecommended LimitNotes
Twilio10-100Depends on account tier
Telnyx10-50Per messaging profile
Bandwidth10Standard limit
Short Codes100+Much higher throughput
> ⚠️ Warning: Exceeding carrier rate limits can result in temporary blocks or account suspension.

---

Troubleshooting

IssueCauseSolution
"Invalid credentials"Wrong API key/secretVerify credentials in provider dashboard
"Rate limit exceeded"Too many requestsLower rate_limit_per_second
"Number not found"Number not in provider accountVerify phone number ownership
"Webhook signature invalid"Secret mismatchRe-copy webhook secret
Messages not sendingProvider disabledCheck enabled toggle
---

Database Schema

Sql
CREATE TABLE sms_providers (
    id              SERIAL PRIMARY KEY,
    uuid            UUID DEFAULT gen_random_uuid(),
    domain_id       INTEGER NOT NULL,
    name            VARCHAR(255) NOT NULL,
    provider_type   VARCHAR(50) NOT NULL,
    api_key         TEXT,
    api_secret      TEXT,
    api_endpoint    TEXT,
    account_sid     VARCHAR(255),
    webhook_url     TEXT,
    webhook_secret  TEXT,
    priority        INTEGER DEFAULT 100,
    is_default      BOOLEAN DEFAULT FALSE,
    enabled         BOOLEAN DEFAULT TRUE,
    rate_limit_per_second INTEGER DEFAULT 10,
    settings        JSONB DEFAULT '{}',
    created_at      TIMESTAMP DEFAULT NOW(),
    created_by      INTEGER,
    updated_at      TIMESTAMP,
    updated_by      INTEGER,
    UNIQUE(domain_id, name)
);

---

See also: SMS Numbers | SMS Routes | SMS Settings

Glossary

TermDefinition
SMS ProviderCarrier or gateway endpoint for routing text messages
---

Lua Script Status ℹ️

Integration Module

ComponentStatusNotes
SMS Providersℹ️ Configuration moduleOutbound messages dispatched via provider API endpoints
AI Assistant

👋 Hello! I'm your Ring2All documentation assistant. I can help you find information about configuring and using the Ring2All PBX platform.

How can I help you today?