Ctrl K
ring2all.com

SMS Settings

Ring2All Platform — SMS Domain Configuration
Parent Module: SMS Messaging

---

Overview

SMS Settings control domain-level configuration for text messaging, including rate limiting, country restrictions, and quiet hours for compliance with messaging regulations.

Admin Panel → SMS → Settings

---

Configuration Fields

Field NameTechnical DescriptionUser-Friendly TooltipExampleNotes
SMS EnabledMaster toggle in sms_enabled.Enable SMS messaging for this domain.trueMust be enabled for any SMS functionality.
Allowed CountriesArray in allowed_countries.Countries that can receive messages (ISO codes).["US", "CA", "MX"]Empty = all countries allowed.
Blocked PrefixesArray in blocked_prefixes.Number prefixes that are blocked.["+44", "+91"]For blocking specific country codes or ranges.
Rate Limit (per minute)Throttle in rate_limit_per_minute.Maximum messages per minute for this domain.60Protects against abuse and runaway scripts.
Rate Limit (per hour)Throttle in rate_limit_per_hour.Maximum messages per hour for this domain.500Carrier compliance limit.
Rate Limit (per day)Throttle in rate_limit_per_day.Maximum messages per day for this domain.5000Cost control and carrier limits.
Quiet Hours EnabledToggle in quiet_hours_enabled.Enable quiet hours (no messages sent).falseRespects do-not-disturb times.
Quiet Hours StartTime in quiet_hours_start.Start of quiet hours.22:00Messages queued until end of quiet period.
Quiet Hours EndTime in quiet_hours_end.End of quiet hours.08:00Messages resume after this time.
Quiet Hours TimezoneTimezone in quiet_hours_timezone.Timezone for quiet hours.America/New_YorkStandard IANA timezone identifier.
---

SMS Enabled Toggle

The master sms_enabled toggle controls all SMS functionality:

StateEffect
EnabledAll SMS features work normally
DisabledNo messages sent or received domain-wide
> ⚠️ Note: Disabling SMS does not delete providers, numbers, or pending messages. Re-enabling resumes normal operation.

---

Country Restrictions

Allowed Countries

Limit outbound SMS to specific countries using ISO 2-letter codes:

Json
["US", "CA", "MX", "GB"]

ScenarioConfiguration
US only["US"]
North America["US", "CA", "MX"]
All countries[] (empty array)
If a message destination doesn't match allowed countries, it's rejected with status rejected.

Blocked Prefixes

Block specific number prefixes:

Json
["+44", "+91", "+86"]

Useful for:

  • Blocking high-cost international destinations
  • Preventing messages to known spam prefixes
  • Compliance with business policies

💡 Tip: Blocked prefixes take precedence over allowed countries.

---

Rate Limiting

Rate limits protect against abuse and carrier blocks:

Three-Tier Limits

Limit TypePurposeRecommended
Per MinutePrevents burst abuse60
Per HourSustained rate control500
Per DayBudget/cost protection5000

How Rate Limiting Works

Plaintext
Message Request
      │
      ▼
┌─────────────────────┐
│ Check per-minute    │
│ limit: 60/min       │
└──────────┬──────────┘
           │ Under limit?
      Yes  │  No
      ─────┼─────
           │    └──▶ Queue for later
           ▼
┌─────────────────────┐
│ Check per-hour      │
│ limit: 500/hr       │
└──────────┬──────────┘
           │ Under limit?
      Yes  │  No
      ─────┼─────
           │    └──▶ Queue for later
           ▼
┌─────────────────────┐
│ Check per-day       │
│ limit: 5000/day     │
└──────────┬──────────┘
           │ Under limit?
      Yes  │  No
      ─────┼─────
           │    └──▶ Reject with error
           ▼
     Send Message

Rate Limit Recommendations

Use CasePer MinutePer HourPer Day
Small Business302001000
Medium Business605005000
Enterprise120200020000
High-Volume Marketing300500050000
---

Quiet Hours

Quiet Hours prevent messages from being sent during specified times (e.g., nighttime).

Configuration

SettingDescriptionExample
EnabledTurn quiet hours on/offtrue
Start TimeWhen quiet period begins22:00 (10 PM)
End TimeWhen quiet period ends08:00 (8 AM)
TimezoneTimezone for evaluationAmerica/New_York

Behavior During Quiet Hours

  • Messages are queued, not rejected
  • Queue processes when quiet hours end
  • Urgent/system messages bypass (if configured)

Common Timezones

TimezoneDescription
America/New_YorkEastern Time (US)
America/ChicagoCentral Time (US)
America/DenverMountain Time (US)
America/Los_AngelesPacific Time (US)
America/ManaguaCentral America
Europe/LondonUK/GMT
UTCCoordinated Universal Time
---

Compliance Considerations

TCPA (US)

The Telephone Consumer Protection Act regulates SMS:

RequirementSetting
No late-night messagesEnable Quiet Hours (9 PM - 8 AM)
Honor opt-outsAutomatic via Opt-out Management
Prior consentBusiness process (not in settings)

GDPR (EU)

For European recipients:

RequirementSetting
Consent-basedBusiness process
Right to objectOpt-out Management
Data retentionMessage history policies

CASL (Canada)

Canadian Anti-Spam Legislation:

RequirementSetting
Express consentBusiness process
Unsubscribe mechanismAutomatic STOP handling
Sender identificationConfigured in provider
---

Troubleshooting

IssueCauseSolution
No messages sendingSMS Enabled = falseEnable SMS in settings
Messages rejectedCountry not in allowed listAdd country to allowed_countries
"Rate limit exceeded"Too many messagesIncrease rate limits or throttle sending
Messages delayedQuiet Hours activeWait for quiet hours to end
Specific numbers blockedPrefix in blocked listRemove from blocked_prefixes
---

Database Schema

Sql
CREATE TABLE sms_settings (
    id                   SERIAL PRIMARY KEY,
    uuid                 UUID DEFAULT gen_random_uuid(),
    domain_id            INTEGER NOT NULL UNIQUE,
    sms_enabled          BOOLEAN DEFAULT FALSE,
    allowed_countries    TEXT[] DEFAULT '{}',
    blocked_prefixes     TEXT[] DEFAULT '{}',
    rate_limit_per_minute INTEGER DEFAULT 60,
    rate_limit_per_hour   INTEGER DEFAULT 500,
    rate_limit_per_day    INTEGER DEFAULT 5000,
    quiet_hours_enabled   BOOLEAN DEFAULT FALSE,
    quiet_hours_start     TIME,
    quiet_hours_end       TIME,
    quiet_hours_timezone  VARCHAR(50) DEFAULT 'UTC',
    created_at           TIMESTAMP DEFAULT NOW(),
    created_by           INTEGER,
    updated_at           TIMESTAMP,
    updated_by           INTEGER
);

---

See also: SMS Providers | SMS Opt-outs | SMS Messages

Glossary

TermDefinition
SMSShort Message Service (text messaging)
---

Lua Script Status ℹ️

Integration Module

ComponentStatusNotes
SMS Settingsℹ️ Configuration moduleDomain-level variables loaded by the main SMS handler
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?