Skip to main content

RingGroup Model

The RingGroup model represents a call distribution group that rings multiple extensions simultaneously or sequentially based on a configured strategy.

Overview

PropertyValue
NamespaceApp\Models
Tablering_groups
Primary Keyid
Global ScopeOrganizationScope

Database Schema

ColumnTypeNullableDefaultDescription
idbigint unsignedNoautoPrimary key
organization_idbigint unsignedNo-Foreign key to organizations
namevarchar(255)No-Ring group name
descriptiontextYesnullOptional description
strategyvarchar(50)NosimultaneousRingGroupStrategy enum
timeoutintNo30Ring timeout in seconds
ring_turnsintNo1Number of ring cycles
fallback_actionvarchar(50)NohangupRingGroupFallbackAction enum
fallback_extension_idbigint unsignedYesnullFallback extension
fallback_ring_group_idbigint unsignedYesnullFallback ring group
fallback_ivr_menu_idbigint unsignedYesnullFallback IVR menu
fallback_ai_assistant_idbigint unsignedYesnullFallback AI assistant
fallback_ai_load_balancer_idbigint unsignedYesnullFallback AI load balancer
statusvarchar(50)NoactiveRingGroupStatus enum
created_attimestampNo-Creation timestamp
updated_attimestampNo-Last update timestamp

Attributes

Fillable

protected $fillable = [
'organization_id',
'name',
'description',
'strategy',
'timeout',
'ring_turns',
'fallback_action',
'fallback_extension_id',
'fallback_ring_group_id',
'fallback_ivr_menu_id',
'fallback_ai_assistant_id',
'fallback_ai_load_balancer_id',
'status',
];

Casts

AttributeCastDescription
strategyRingGroupStrategy::classRing strategy enum
fallback_actionRingGroupFallbackAction::classFallback action enum
statusRingGroupStatus::classStatus enum
timeoutintegerInteger cast
ring_turnsintegerInteger cast

Constants

ConstantValueDescription
DEFAULT_RELATIONSHIP_FIELDS['members.extension.user:id,name', 'fallbackExtension:id,extension_number']Default eager load fields

Ring Strategies

StrategyDescription
simultaneousRing all members at once
round_robinRing members in sequence
priorityRing by priority order
weightedRing by configured weights
memoryRemember last answered and continue

Relationships

Belongs To

  • organization() → Organization
  • fallbackExtension() → Extension
  • fallbackRingGroup() → RingGroup (self)
  • fallbackIvrMenu() → IvrMenu
  • fallbackAiAssistant() → Extension
  • fallbackAiLoadBalancer() → AiAssistantLoadBalancer

Has Many

  • members() → RingGroupMember[] (ordered by priority)

Methods

  • isActive(): bool
  • isInactive(): bool
  • getMembers(): Collection - Get active member extensions
  • getActiveMemberCount(): int

Query Scopes

  • scopeForOrganization($query, $orgId)
  • scopeWithStrategy($query, $strategy)
  • scopeWithStatus($query, $status)
  • scopeSearch($query, $search)
  • scopeActive($query)