Ctrl K
ring2all.com

Tenants Module Documentation

Table of Contents

  1. Module Overview (Technical)
  2. Module Overview (Commercial/Business)
  3. Module Overview (End User/Administrator)
  4. Configuration Sections
  5. Settings Reference
  6. Common Scenarios & Examples
  7. Limitations & Important Notes
  8. Troubleshooting Tips
  9. Glossary

---

1. Module Overview (Technical)

What Is the Tenants Module?

Tenants is a multi-tenant management module that creates and manages isolated organizations within the platform. Each tenant has its own SIP domain, user access, resource limits, branding, and data retention policies.

Architecture

Plaintext
┌─────────────────────────────────────────────────────────────────┐
│                 Tenants Architecture                           │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  Tenant Definition                                              │
│  ┌──────────────────────────────────────────────────────────┐   │
│  │        Tenant: Acme Corporation                          │   │
│  │                                                          │   │
│  │  Basic Info:                                             │   │
│  │  ├─ Name: Acme Corporation                              │   │
│  │  ├─ Slug: acme-corp                                     │   │
│  │  ├─ Admin Email: admin@acme.com                         │   │
│  │  └─ Status: Active                                       │   │
│  │                                                          │   │
│  │  Domain:                                                 │   │
│  │  ├─ SIP Domain: acme.pbx.company.com                    │   │
│  │  ├─ Voice Language: English                             │   │
│  │  └─ Timezone: America/New_York                          │   │
│  │                                                          │   │
│  │  Privileges:                                             │   │
│  │  ├─ Max Extensions: 100                                 │   │
│  │  ├─ Max Trunks: 10                                      │   │
│  │  ├─ Max Queues: 20                                      │   │
│  │  └─ Recording: Allowed                                  │   │
│  │                                                          │   │
│  │  Retention:                                              │   │
│  │  ├─ Recordings: 90 days                                 │   │
│  │  ├─ Voicemails: 60 days                                 │   │
│  │  └─ CDR: 365 days                                       │   │
│  │                                                          │   │
│  └──────────────────────────────────────────────────────────┘   │
│       │                                                         │
│       ▼ Creates isolated resources                             │
│  ┌──────────────────────────────────────────────────────────┐   │
│  │        Tenant Resources                                  │   │
│  │                                                          │   │
│  │  ├─ SIP Domain (FreeSWITCH)                             │   │
│  │  ├─ Extensions, Ring Groups, Queues                     │   │
│  │  ├─ Users, Roles                                        │   │
│  │  ├─ Routing (Inbound, Outbound, IVR)                    │   │
│  │  ├─ Recordings, Voicemails, CDR                         │   │
│  │  └─ Branding (Logo, Colors)                             │   │
│  │                                                          │   │
│  └──────────────────────────────────────────────────────────┘   │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

Key Tables

TablePurpose
public.tenantsTenant records
public.user_tenantsUser-tenant mapping
telephony.domainsSIP domains

Key Files

FileDescription
modules/tenants/Frontend module
---

2. Module Overview (Commercial/Business)

Business Value

Tenants provides complete isolation:

Without TenantsWith Tenants
Single organizationMultiple organizations
Shared resourcesIsolated resources
No limitsResource quotas
Single billingPer-tenant capacity

Use Cases

  1. Service Provider
- Multiple customers

- Per-customer billing

  1. Enterprise Departments
- Separate divisions

- Isolated management

  1. Reseller Model
- White-label tenants

- Customer self-management

  1. Compliance
- Data isolation

- Separate retention

Feature Highlights

FeatureBenefit
Slug IdentifierUnique URL/API access
SIP DomainIsolated telephony
Resource LimitsCapacity control
Retention PoliciesStorage management
User AccessAdmin assignment
BrandingCustom appearance
---

3. Module Overview (End User/Administrator)

What Can You Do?

  • Create new tenants
  • Configure SIP domains
  • Set resource limits (extensions, trunks, queues)
  • Assign tenant administrators
  • Configure data retention
  • Enable/disable tenants
  • Duplicate existing tenants

Tenants Interface

Plaintext
┌─────────────────────────────────────────────────────────────────┐
│              Tenants                                            │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  Manage multi-tenant organizations                              │
│                                                                 │
│  [+ Add Tenant]                                                 │
│                                                                 │
│  [🔍 Search tenants...]                                         │
│                                                                 │
│  ┌───────────────────────────────────────────────────────────┐  │
│  │ Tenant Name     │ Slug       │ Users │ Status  │ Created │  │
│  ├─────────────────┼────────────┼───────┼─────────┼─────────┤  │
│  │ Main ⭐         │ main       │ 5     │ ● Active│ 2024-01 │  │
│  │ Acme Corp       │ acme-corp  │ 25    │ ● Active│ 2024-06 │  │
│  │ Beta Inc        │ beta-inc   │ 10    │ ● Active│ 2024-08 │  │
│  │ Test Tenant     │ test       │ 2     │ ○ Inactive│ 2024-10│  │
│  └───────────────────────────────────────────────────────────┘  │
│                                                                 │
│  ⭐ = Primary Tenant (cannot be deleted)                        │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

Add/Edit Tenant - Tenant Information Tab

Plaintext
┌─────────────────────────────────────────────────────────────────┐
│              Add Tenant                                         │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  [Tenant Information] [Domain Configuration] [User Access]     │
│                                                                 │
│  ▼ Basic Information                                            │
│                                                                 │
│  Tenant Name: [Acme Corporation              ]                 │
│                                                                 │
│  Slug: [acme-corp                            ]                 │
│    Lowercase letters, numbers, and hyphens only                 │
│                                                                 │
│  Admin Email: [admin@acme.com                ]                 │
│                                                                 │
│  Enabled: ✓                                                    │
│                                                                 │
│  ──────────────────────────────────────────────────────────────│
│                                                                 │
│  ▼ Appearance                                                   │
│                                                                 │
│  Primary Color: [#3B82F6    ] [🎨]                             │
│  Secondary Color: [#64748B  ] [🎨]                             │
│  Logo: [Upload...]                                              │
│  Favicon: [Upload...]                                           │
│                                                                 │
│  ──────────────────────────────────────────────────────────────│
│                                                                 │
│  ▼ Localization                                                 │
│                                                                 │
│  Default Locale: [English (US) ▼]                              │
│  Timezone: [America/New_York ▼]                                │
│                                                                 │
│  ──────────────────────────────────────────────────────────────│
│                                                                 │
│  ▼ Telephony Privileges                                         │
│                                                                 │
│  Max Extensions: [100       ]  Max Trunks: [10        ]        │
│  Max Queues: [20            ]  Max IVR: [10           ]        │
│  Max Conferences: [5        ]  Max Parking Lots: [5   ]        │
│  Allow Recording: ✓                                            │
│                                                                 │
│  ──────────────────────────────────────────────────────────────│
│                                                                 │
│  ▼ Recording Retention                                          │
│                                                                 │
│  Delete Oldest Recordings: [90        ] days                   │
│  Delete Oldest Voicemails: [60        ] days                   │
│  Delete Oldest CDR: [365              ] days                   │
│                                                                 │
│  [Next: Domain Configuration]                                   │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

Add/Edit Tenant - Domain Configuration Tab

Plaintext
┌─────────────────────────────────────────────────────────────────┐
│              Add Tenant                                         │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  [Tenant Information] [Domain Configuration] [User Access]     │
│                                                                 │
│  Configure the telephony domain for this tenant                │
│                                                                 │
│  Domain Name: [acme.pbx.company.com          ]                 │
│    Unique SIP domain (realm) for SIP registration              │
│                                                                 │
│  Description: [Acme Corporation PBX          ]                 │
│    Brief description for identification                         │
│                                                                 │
│  Voice Language: [English ▼]                                   │
│    Language for voice prompts and announcements                 │
│                                                                 │
│  Default Timezone: [America/New_York ▼]                        │
│    Sets the local timezone for voicemail and call logs         │
│                                                                 │
│  Default Country Code: [+1 (US) ▼]                             │
│    Used for caller ID normalization (E.164 format)             │
│                                                                 │
│  [Back] [Next: User Access]                                     │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

Add/Edit Tenant - User Access Tab

Plaintext
┌─────────────────────────────────────────────────────────────────┐
│              Add Tenant                                         │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  [Tenant Information] [Domain Configuration] [User Access]     │
│                                                                 │
│  Configure user access for this tenant                          │
│                                                                 │
│  ○ Use Current User                                             │
│    Use the current logged-in user as the tenant administrator  │
│                                                                 │
│  ● Create New                                                   │
│                                                                 │
│  ──────────────────────────────────────────────────────────────│
│                                                                 │
│  Username: [acme.admin                       ]                 │
│  Email: [admin@acme.com                      ]                 │
│  Password: [••••••••••                       ]                 │
│  Full Name: [John Smith                      ]                 │
│  Department: [IT                             ]                 │
│                                                                 │
│  Locale: [English (US) ▼]                                      │
│  Timezone: [America/New_York ▼]                                │
│  Startup Dialog: [Dashboard ▼]                                 │
│                                                                 │
│  TOTP Enabled: ☐     Active: ✓                                │
│                                                                 │
│  [Back] [Create Tenant]                                         │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

Quick Tips

TIP
Slug Format: Use lowercase, hyphens. Example: acme-corp.
TIP
Domain Name: Must be unique SIP realm.
WARNING
Primary Tenant: The main tenant cannot be deleted.

---

4. Configuration Sections

Basic Information

FieldDescription
Tenant NameDisplay name
SlugUnique URL identifier
Admin EmailContact email
EnabledActive/Inactive

Appearance

FieldDescription
Primary ColorMain accent
Secondary ColorBackground accent
LogoTenant logo
FaviconBrowser icon

Localization

FieldDescription
Default LocaleUI language
TimezoneDefault timezone

Telephony Privileges

FieldDescription
Max ExtensionsExtension limit
Max TrunksTrunk limit
Max QueuesQueue limit
Max IVRIVR menu limit
Max ConferencesConference limit
Max Parking LotsParking lot limit
Allow RecordingEnable/disable recording

Recording Retention

FieldDescription
Delete Oldest RecordingsDays to keep recordings
Delete Oldest VoicemailsDays to keep voicemails
Delete Oldest CDRDays to keep call records

Domain Configuration

FieldDescription
Domain NameSIP domain (realm)
DescriptionDomain description
Voice LanguagePrompt language
Default TimezoneCall log timezone
Default Country CodeE.164 normalization

User Access

FieldDescription
Use Current UserAssign current user
Create NewCreate new admin
UsernameLogin username
EmailUser email
PasswordUser password
Full NameDisplay name
---

5. Settings Reference

Resource Limit Guidelines

ResourceSmallMediumLarge
Extensions25100500+
Trunks21050+
Queues520100+
IVR31050+
Conferences2520+

Retention Guidelines

Data TypeMinimumRecommendedMaximum
Recordings30 days90 days365 days
Voicemails30 days60 days180 days
CDR90 days365 daysUnlimited

Slug Requirements

RuleExample
Lowercaseacme-corp
No spacesacme corp
Hyphens allowedacme-corp
Numbers allowedacme123
No special charsacme_corp
---

6. Common Scenarios & Examples

Scenario 1: Create New Customer Tenant

  1. Click Add Tenant
  2. Name = "Acme Corporation"
  3. Slug = "acme-corp"
  4. Set Enabled = ✓
  5. Configure limits (extensions, trunks)
  6. Set retention policies
  7. Next: Configure domain
  8. Next: Create admin user
  9. Save

Scenario 2: Duplicate Existing Tenant

  1. Find similar tenant
  2. Click Duplicate
  3. Change name and slug
  4. Adjust limits as needed
  5. Save as new tenant

Scenario 3: Disable Tenant

  1. Edit tenant
  2. Enabled = ☐
  3. Save
  4. Users can't access, data preserved

Scenario 4: Update Resource Limits

  1. Edit tenant
  2. Increase Max Extensions
  3. Increase Max Trunks
  4. Save
  5. New limits apply immediately

---

7. Limitations & Important Notes

Technical Notes

NOTE
Primary Tenant: Cannot be deleted or disabled.
NOTE
Slug Immutable: Cannot change after creation.
WARNING
Domain Unique: Each tenant needs unique SIP domain.

Best Practices

  1. Meaningful Slugs: Use company name
  2. Conservative Limits: Start small, increase as needed
  3. Retention Balance: Storage vs. compliance
  4. Admin Assignment: Always assign an admin
  5. Test First: Create test tenant before production

Multi-Tenant Isolation

IsolatedShared
ExtensionsSystem settings
RoutingTemplates
Users (per tenant)Global users
CDRCertificates
RecordingsHTTP server
---

8. Troubleshooting Tips

Common Issues

SymptomPossible CauseSolution
Slug existsDuplicate slugUse different slug
Domain existsDuplicate domainUse different domain
Can't deletePrimary tenantCannot delete main
User can't accessTenant disabledEnable tenant

Check Tenant

Sql
SELECT 
  name,
  slug,
  is_enabled,
  max_extensions,
  max_trunks
FROM public.tenants
WHERE slug = 'acme-corp';

Check Domain

Sql
SELECT 
  domain,
  description,
  language
FROM telephony.domains
WHERE tenant_id = 'tenant-uuid';

---

9. Glossary

TermDefinition
TenantIsolated organization
SlugURL-safe identifier
SIP DomainTelephony realm
PrivilegesResource limits
RetentionData lifecycle
Multi-tenantMultiple organizations
---

Lua Script Status ℹ️

Administration Module

ComponentStatus
Tenantsℹ️ Multi-tenant management - no Lua handler required
Tenants is a platform administration module. It manages tenant configurations and SIP domains. No Lua handlers are used - domain creation and isolation is handled by the backend service and FreeSWITCH configuration.

---

Documentation last updated: January 2026
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?