from enum import Enum

class AsteriskEvent(str, Enum):
    ApplicationMoveFailed = "ApplicationMoveFailed"
    ApplicationReplaced = "ApplicationReplaced"
    BridgeAttendedTransfer = "BridgeAttendedTransfer"
    BridgeBlindTransfer = "BridgeBlindTransfer"
    BridgeCreated = "BridgeCreated"
    BridgeDestroyed = "BridgeDestroyed"
    BridgeMerged = "BridgeMerged"
    BridgeVideoSourceChanged = "BridgeVideoSourceChanged"
    ChannelCallerId = "ChannelCallerId"
    ChannelConnectedLine = "ChannelConnectedLine"
    ChannelCreated = "ChannelCreated"
    ChannelDestroyed = "ChannelDestroyed"
    ChannelDialplan = "ChannelDialplan"
    ChannelDtmfReceived = "ChannelDtmfReceived"
    ChannelEnteredBridge = "ChannelEnteredBridge"
    ChannelHangupRequest = "ChannelHangupRequest"
    ChannelHold = "ChannelHold"
    ChannelLeftBridge = "ChannelLeftBridge"
    ChannelStateChange = "ChannelStateChange"
    ChannelTalkingFinished = "ChannelTalkingFinished"
    ChannelTalkingStarted = "ChannelTalkingStarted"
    ChannelToneDetected = "ChannelToneDetected"
    ChannelTransfer = "ChannelTransfer"
    ChannelUnhold = "ChannelUnhold"
    ChannelUserevent = "ChannelUserevent"
    ChannelVarset = "ChannelVarset"
    ContactStatusChange = "ContactStatusChange"
    DeviceStateChanged = "DeviceStateChanged"
    Dial = "Dial"
    EndpointStateChange = "EndpointStateChange"
    PeerStatusChange = "PeerStatusChange"
    PlaybackContinuing = "PlaybackContinuing"
    PlaybackFinished = "PlaybackFinished"
    PlaybackStarted = "PlaybackStarted"
    RecordingFailed = "RecordingFailed"
    RecordingFinished = "RecordingFinished"
    RecordingStarted = "RecordingStarted"
    StasisEnd = "StasisEnd"
    StasisStart = "StasisStart"
    TextMessageReceived = "TextMessageReceived"


class ChannelState(str, Enum):
    #  ['Down' or 'Rsrved' or 'OffHook' or 'Dialing' or 'Ring' or 'Ringing' or 'Up' or 'Busy' or 'Dialing Offhook' or 'Pre-ring' or 'Unknown'],
    Down = "Down"
    Reserved = "Rsrved"
    OffHook = "OffHook"
    Dialing = "Dialing"
    Ring = "Ring"
    Ringing = "Ringing"
    Up = "Up"
    Busy = "Busy"
    DialingOffhook = "Dialing Offhook"
    PreRing = "Pre-ring"
    Unknown = "Unknown"