Skip to main content

Enumerations

OPBX uses PHP 8.1+ backed enums for fixed value sets.

Auto Dialer Enums

CallerIdStrategy

Distribution strategy for Caller ID pools.

File: App\Enums\CallerIdStrategy
Table Column: auto_dialer_campaigns.caller_id_strategy

CaseValueDescription
ROUND_ROBINround_robinSequential cycling
RANDOMrandomRandom selection
LEAST_RECENTLY_USEDleast_recently_usedSelect least recently used

CampaignStatus

Campaign lifecycle states.

File: App\Enums\CampaignStatus
Table Column: auto_dialer_campaigns.status

CaseValueDescription
DRAFTdraftInitial configuration
ACTIVEactiveCurrently dialing
PAUSEDpausedTemporarily stopped
COMPLETEDcompletedAll destinations processed
ARCHIVEDarchivedSoft-deleted

DestinationStatus

Status of a destination (phone number) in a campaign.

File: App\Enums\DestinationStatus
Table Column: auto_dialer_destinations.status

CaseValueDescription
PENDINGpendingWaiting to be called
DIALINGdialingCurrently being dialed
CONNECTEDconnectedCall connected
COMPLETEDcompletedSuccessfully completed
FAILEDfailedFailed after all retries
INVALIDinvalidInvalid number

AmdMode

Answering Machine Detection modes.

File: App\Enums\AmdMode
Table Column: auto_dialer_campaigns.amd_mode

CaseValueDescription
ENABLEDEnabledDetect human or machine
DETECT_MESSAGE_ENDDetectMessageEndWait for greeting to end

ListStatus

Distribution list states.

File: App\Enums\ListStatus
Table Column: auto_dialer_lists.status

CaseValueDescription
DRAFTdraftCreating/uploading
PENDINGpendingAwaiting processing
PROCESSINGprocessingCSV being processed
READYreadyAvailable for use
FAILEDfailedUpload/processing failed
IN_USEin_useAssigned to campaign
USEDusedCampaign completed
ARCHIVEDarchivedNo longer used

Core PBX Enums

ExtensionType

Types of PBX extensions.

File: App\Enums\ExtensionType
Table Column: extensions.type

CaseValueDescription
USERuserHuman user extension
CONFERENCEconferenceConference room endpoint
RING_GROUPring_groupRing group endpoint
IVRivrIVR menu endpoint
AI_ASSISTANTai_assistantAI assistant endpoint
AI_LOAD_BALANCERai_load_balancerLoad balancer endpoint
FORWARDforwardCall forwarding
CUSTOM_LOGICcustom_logicCustom routing logic

RoutingDestinationType

Destination types for call routing.

File: App\Enums\RoutingDestinationType
Table Column: auto_dialer_campaigns.routing_destination_type

CaseValueDescription
EXTENSIONextensionRoute to extension
RING_GROUPring_groupRoute to ring group
CONFERENCE_ROOMconference_roomRoute to conference room
IVR_MENUivr_menuRoute to IVR menu
AI_ASSISTANTai_assistantRoute to AI assistant
AI_LOAD_BALANCERai_load_balancerRoute via load balancer
HANGUPhangupDisconnect call

RingGroupStrategy

Call distribution strategies.

File: App\Enums\RingGroupStrategy
Table Column: ring_groups.strategy

CaseValueDescription
SIMULTANEOUSsimultaneousRing all members at once
ROUND_ROBINround_robinRotate through members
SEQUENTIALsequentialRing in order

RingGroupStatus

Ring group states.

File: App\Enums\RingGroupStatus
Table Column: ring_groups.status

CaseValueDescription
ACTIVEactiveOperational
INACTIVEinactiveDisabled

RingGroupFallbackAction

Actions when a ring group fails.

File: App\Enums\RingGroupFallbackAction
Table Column: ring_groups.fallback_action

CaseValueDescription
EXTENSIONextensionForward to extension
RING_GROUPring_groupForward to ring group
IVR_MENUivr_menuForward to IVR menu
AI_ASSISTANTai_assistantForward to AI assistant
AI_LOAD_BALANCERai_load_balancerForward to AI load balancer
HANGUPhangupEnd call

AI Integration Enums

AiAssistantStatus

AI assistant states.

File: App\Enums\AiAssistantStatus
Table Column: ai_assistants.status

CaseValueDescription
ACTIVEactiveReady to receive calls
INACTIVEinactiveDisabled

AlbsStrategy

Load balancer distribution strategies.

File: App\Enums\AlbsStrategy
Table Column: ai_assistant_load_balancers.strategy

CaseValueDescription
ROUND_ROBINround_robinRotate through assistants
PRIORITYpriorityFirst active by priority
PERCENTAGEpercentageWeighted random

AlbsStatus

Load balancer states.

File: App\Enums\AlbsStatus
Table Column: ai_assistant_load_balancers.status

CaseValueDescription
ACTIVEactiveOperational
INACTIVEinactiveDisabled

User & Organization Enums

UserRole

Role-based access control.

File: App\Enums\UserRole
Table Column: users.role

CaseValueLevelDescription
OWNERowner1Full organization access
PBX_ADMINpbx_admin2PBX configuration access
PBX_USERpbx_user3Basic PBX usage
REPORTERreporter4View-only access

UserStatus

User account states.

File: App\Enums\UserStatus
Table Column: users.status

CaseValueDescription
ACTIVEactiveCan log in
INACTIVEinactiveSuspended
PENDINGpendingInvitation pending activation

OrganizationStatus

Organization states.

File: App\Enums\OrganizationStatus
Table Column: organizations.status

CaseValueDescription
ACTIVEactiveNormal operation
SUSPENDEDsuspendedAccess restricted
DELETEDdeletedSoft-deleted

Call & Logging Enums

CallStatus

Call session states.

File: App\Enums\CallStatus

CaseValueDescription
INITIATEDinitiatedCall created
RINGINGringingDestination ringing
ANSWEREDansweredCall connected
COMPLETEDcompletedCall ended normally
BUSYbusyBusy signal
NO_ANSWERno_answerNo answer
FAILEDfailedCall failed

Call Tracking Enums

CallTrackingCampaignStatus

Campaign states.

File: App\Enums\CallTrackingCampaignStatus

CaseValueDescription
ACTIVEactiveCampaign is live
INACTIVEinactiveCampaign is paused

CallTrackingDestinationType

Destination types for tracked calls.

File: App\Enums\CallTrackingDestinationType

CaseValueDescription
FORWARDforwardForward to external number
EXTENSIONextensionRoute to extension
RING_GROUPring_groupRoute to ring group
BUSINESS_HOURSbusiness_hoursRoute via business hours
CONFERENCE_ROOMconference_roomRoute to conference room
IVR_MENUivr_menuRoute to IVR menu
AI_ASSISTANTai_assistantRoute to AI assistant
AI_LOAD_BALANCERai_load_balancerRoute via AI load balancer

CallTrackingEventType

Webhook event types.

File: App\Enums\CallTrackingEventType

CaseValueDescription
CALL_RECEIVEDcall.receivedCall received
CALL_ANSWEREDcall.answeredCall answered
CALL_MISSEDcall.missedCall missed
CALL_CONVERTEDcall.convertedCall converted
CALL_FAILEDcall.failedCall failed

Business Hours Enums

BusinessHoursStatus

Schedule states.

File: App\Enums\BusinessHoursStatus

CaseValueDescription
ACTIVEactiveIn use
INACTIVEinactiveNot in use

BusinessHoursActionType

Actions for business hours routing.

File: App\Enums\BusinessHoursActionType

CaseValueDescription
EXTENSIONextensionRoute to extension
RING_GROUPring_groupRoute to ring group
CONFERENCE_ROOMconference_roomRoute to conference room
IVR_MENUivr_menuRoute to IVR menu
AI_ASSISTANTai_assistantRoute to AI assistant
AI_LOAD_BALANCERai_load_balancerRoute to AI load balancer

BusinessHoursExceptionType

Schedule exception types.

File: App\Enums\BusinessHoursExceptionType

CaseValueDescription
CLOSEDclosedClosed all day
SPECIAL_HOURSspecial_hoursSpecial operating hours

DayOfWeek

Days for scheduling.

File: App\Enums\DayOfWeek

CaseValue
MONDAYmonday
TUESDAYtuesday
WEDNESDAYwednesday
THURSDAYthursday
FRIDAYfriday
SATURDAYsaturday
SUNDAYsunday

Security Enums

InboundBlacklistMatchType

Pattern matching strategies.

File: App\Enums\InboundBlacklistMatchType
Table Column: inbound_blacklists.match_type

CaseValueDescription
EXACTexactExact match
PREFIXprefixStarts with pattern
WILDCARDwildcardfnmatch pattern

InboundBlacklistRejectionStrategy

How blocked calls are handled.

File: App\Enums\InboundBlacklistRejectionStrategy
Table Column: inbound_blacklists.rejection_strategy

CaseValueDescription
DROPdropSilent hangup
REJECTrejectPlay rejection message
TORMENTtormentConference hold music

InboundBlacklistStatus

Blacklist entry states.

File: App\Enums\InboundBlacklistStatus
Table Column: inbound_blacklists.status

CaseValueDescription
ACTIVEactiveBlocking calls
INACTIVEinactiveNot enforced

WhitelistStatus

Whitelist entry states.

File: App\Enums\WhitelistStatus
Table Column: outbound_whitelists.status

CaseValueDescription
ACTIVEactiveRule active
INACTIVEinactiveRule disabled

IVR Enums

IvrMenuStatus

IVR menu states.

File: App\Enums\IvrMenuStatus

CaseValueDescription
ACTIVEactiveOperational
INACTIVEinactiveDisabled

IvrDestinationType

IVR option routing types.

File: App\Enums\IvrDestinationType
Table Column: ivr_menu_options.destination_type

CaseValueDescription
EXTENSIONextensionRoute to extension
RING_GROUPring_groupRoute to ring group
CONFERENCE_ROOMconference_roomRoute to conference room
IVR_MENUivr_menuSub-menu
BUSINESS_HOURSbusiness_hoursBusiness hours schedule
AI_ASSISTANTai_assistantRoute to AI assistant
AI_LOAD_BALANCERai_load_balancerRoute to AI load balancer
HANGUPhangupEnd call

Using Enums

use App\Enums\CampaignStatus;

// From value
$status = CampaignStatus::from('active');

// Safely
$status = CampaignStatus::tryFrom($value);

// All cases
$all = CampaignStatus::cases();

// Value and label
$value = $status->value;
$label = $status->label();

// Validation
Rule::enum(CampaignStatus::class)