Asterisk Project : Asterisk 13 REST Data Models

AsteriskInfo

Asterisk system information

 Expand source
{
  "properties": {
    "status": {
      "required": false,
      "type": "StatusInfo",
      "description": "Info about Asterisk status"
    },
    "config": {
      "required": false,
      "type": "ConfigInfo",
      "description": "Info about Asterisk configuration"
    },
    "build": {
      "required": false,
      "type": "BuildInfo",
      "description": "Info about how Asterisk was built"
    },
    "system": {
      "required": false,
      "type": "SystemInfo",
      "description": "Info about the system running Asterisk"
    }
  },
  "id": "AsteriskInfo",
  "description": "Asterisk system information"
}
  • build: BuildInfo (optional) - Info about how Asterisk was built
  • config: ConfigInfo (optional) - Info about Asterisk configuration
  • status: StatusInfo (optional) - Info about Asterisk status
  • system: SystemInfo (optional) - Info about the system running Asterisk

BuildInfo

Info about how Asterisk was built

 Expand source
{
  "properties": {
    "kernel": {
      "required": true,
      "type": "string",
      "description": "Kernel version Asterisk was built on."
    },
    "machine": {
      "required": true,
      "type": "string",
      "description": "Machine architecture (x86_64, i686, ppc, etc.)"
    },
    "user": {
      "required": true,
      "type": "string",
      "description": "Username that build Asterisk"
    },
    "date": {
      "required": true,
      "type": "string",
      "description": "Date and time when Asterisk was built."
    },
    "os": {
      "required": true,
      "type": "string",
      "description": "OS Asterisk was built on."
    },
    "options": {
      "required": true,
      "type": "string",
      "description": "Compile time options, or empty string if default."
    }
  },
  "id": "BuildInfo",
  "description": "Info about how Asterisk was built"
}
  • date: string - Date and time when Asterisk was built.
  • kernel: string - Kernel version Asterisk was built on.
  • machine: string - Machine architecture (x86_64, i686, ppc, etc.)
  • options: string - Compile time options, or empty string if default.
  • os: string - OS Asterisk was built on.
  • user: string - Username that build Asterisk

ConfigInfo

Info about Asterisk configuration

 Expand source
{
  "properties": {
    "name": {
      "required": true,
      "type": "string",
      "description": "Asterisk system name."
    },
    "default_language": {
      "required": true,
      "type": "string",
      "description": "Default language for media playback."
    },
    "max_load": {
      "required": false,
      "type": "double",
      "description": "Maximum load avg on system."
    },
    "setid": {
      "required": true,
      "type": "SetId",
      "description": "Effective user/group id for running Asterisk."
    },
    "max_open_files": {
      "required": false,
      "type": "int",
      "description": "Maximum number of open file handles (files, sockets)."
    },
    "max_channels": {
      "required": false,
      "type": "int",
      "description": "Maximum number of simultaneous channels."
    }
  },
  "id": "ConfigInfo",
  "description": "Info about Asterisk configuration"
}
  • default_language: string - Default language for media playback.
  • max_channels: int (optional) - Maximum number of simultaneous channels.
  • max_load: double (optional) - Maximum load avg on system.
  • max_open_files: int (optional) - Maximum number of open file handles (files, sockets).
  • name: string - Asterisk system name.
  • setid: SetId - Effective user/group id for running Asterisk.

SetId

Effective user/group id

 Expand source
{
  "properties": {
    "group": {
      "required": true,
      "type": "string",
      "description": "Effective group id."
    },
    "user": {
      "required": true,
      "type": "string",
      "description": "Effective user id."
    }
  },
  "id": "SetId",
  "description": "Effective user/group id"
}
  • group: string - Effective group id.
  • user: string - Effective user id.

StatusInfo

Info about Asterisk status

 Expand source
{
  "properties": {
    "last_reload_time": {
      "required": true,
      "type": "Date",
      "description": "Time when Asterisk was last reloaded."
    },
    "startup_time": {
      "required": true,
      "type": "Date",
      "description": "Time when Asterisk was started."
    }
  },
  "id": "StatusInfo",
  "description": "Info about Asterisk status"
}
  • last_reload_time: Date - Time when Asterisk was last reloaded.
  • startup_time: Date - Time when Asterisk was started.

SystemInfo

Info about Asterisk

 Expand source
{
  "properties": {
    "entity_id": {
      "required": true,
      "type": "string",
      "description": ""
    },
    "version": {
      "required": true,
      "type": "string",
      "description": "Asterisk version."
    }
  },
  "id": "SystemInfo",
  "description": "Info about Asterisk"
}
  • entity_id: string
  • version: string - Asterisk version.

Variable

The value of a channel variable

 Expand source
{
  "properties": {
    "value": {
      "required": true,
      "type": "string",
      "description": "The value of the variable requested"
    }
  },
  "id": "Variable",
  "description": "The value of a channel variable"
}
  • value: string - The value of the variable requested

Endpoint

An external device that may offer/accept calls to/from Asterisk.

Unlike most resources, which have a single unique identifier, an endpoint is uniquely identified by the technology/resource pair.

 Expand source
{
  "properties": {
    "resource": {
      "required": true,
      "type": "string",
      "description": "Identifier of the endpoint, specific to the given technology."
    },
    "state": {
      "allowableValues": {
        "valueType": "LIST",
        "values": [
          "unknown",
          "offline",
          "online"
        ]
      },
      "required": false,
      "type": "string",
      "description": "Endpoint's state"
    },
    "technology": {
      "required": true,
      "type": "string",
      "description": "Technology of the endpoint"
    },
    "channel_ids": {
      "required": true,
      "type": "List[string]",
      "description": "Id's of channels associated with this endpoint"
    }
  },
  "id": "Endpoint",
  "description": "An external device that may offer/accept calls to/from Asterisk.\n\nUnlike most resources, which have a single unique identifier, an endpoint is uniquely identified by the technology/resource pair."
}
  • channel_ids: List[string] - Id's of channels associated with this endpoint
  • resource: string - Identifier of the endpoint, specific to the given technology.
  • state: string (optional) - Endpoint's state
  • technology: string - Technology of the endpoint

TextMessage

A text message.

 Expand source
{
  "properties": {
    "body": {
      "required": true,
      "type": "string",
      "description": "The text of the message."
    },
    "to": {
      "required": true,
      "type": "string",
      "description": "A technology specific URI specifying the destination of the message. Valid technologies include sip, pjsip, and xmp. The destination of a message should be an endpoint."
    },
    "variables": {
      "required": false,
      "type": "List[TextMessageVariable]",
      "description": "Technology specific key/value pairs associated with the message."
    },
    "from": {
      "required": true,
      "type": "string",
      "description": "A technology specific URI specifying the source of the message. For sip and pjsip technologies, any SIP URI can be specified. For xmpp, the URI must correspond to the client connection being used to send the message."
    }
  },
  "id": "TextMessage",
  "description": "A text message."
}
  • body: string - The text of the message.
  • from: string - A technology specific URI specifying the source of the message. For sip and pjsip technologies, any SIP URI can be specified. For xmpp, the URI must correspond to the client connection being used to send the message.
  • to: string - A technology specific URI specifying the destination of the message. Valid technologies include sip, pjsip, and xmp. The destination of a message should be an endpoint.
  • variables: List[TextMessageVariable] (optional) - Technology specific key/value pairs associated with the message.

TextMessageVariable

A key/value pair variable in a text message.

 Expand source
{
  "properties": {
    "value": {
      "required": true,
      "type": "string",
      "description": "The value of the variable."
    },
    "key": {
      "required": true,
      "type": "string",
      "description": "A unique key identifying the variable."
    }
  },
  "id": "TextMessageVariable",
  "description": "A key/value pair variable in a text message."
}
  • key: string - A unique key identifying the variable.
  • value: string - The value of the variable.

CallerID

Caller identification

 Expand source
{
  "properties": {
    "name": {
      "required": true,
      "type": "string"
    },
    "number": {
      "required": true,
      "type": "string"
    }
  },
  "id": "CallerID",
  "description": "Caller identification"
}
  • name: string
  • number: string

Channel

A specific communication connection between Asterisk and an Endpoint.

 Expand source
{
  "properties": {
    "accountcode": {
      "required": true,
      "type": "string"
    },
    "name": {
      "required": true,
      "type": "string",
      "description": "Name of the channel (i.e. SIP/foo-0000a7e3)"
    },
    "caller": {
      "required": true,
      "type": "CallerID"
    },
    "creationtime": {
      "required": true,
      "type": "Date",
      "description": "Timestamp when channel was created"
    },
    "state": {
      "allowableValues": {
        "valueType": "LIST",
        "values": [
          "Down",
          "Rsrved",
          "OffHook",
          "Dialing",
          "Ring",
          "Ringing",
          "Up",
          "Busy",
          "Dialing Offhook",
          "Pre-ring",
          "Unknown"
        ]
      },
      "required": true,
      "type": "string"
    },
    "connected": {
      "required": true,
      "type": "CallerID"
    },
    "dialplan": {
      "required": true,
      "type": "DialplanCEP",
      "description": "Current location in the dialplan"
    },
    "id": {
      "required": true,
      "type": "string",
      "description": "Unique identifier of the channel.\n\nThis is the same as the Uniqueid field in AMI."
    }
  },
  "id": "Channel",
  "description": "A specific communication connection between Asterisk and an Endpoint."
}
  • accountcode: string
  • caller: CallerID
  • connected: CallerID
  • creationtime: Date - Timestamp when channel was created
  • dialplan: DialplanCEP - Current location in the dialplan
  • id: string - Unique identifier of the channel.

This is the same as the Uniqueid field in AMI.

  • name: string - Name of the channel (i.e. SIP/foo-0000a7e3)
  • state: string

Dialed

Dialed channel information.

 Expand source
{
  "properties": {},
  "id": "Dialed",
  "description": "Dialed channel information."
}

DialplanCEP

Dialplan location (context/extension/priority)

 Expand source
{
  "properties": {
    "priority": {
      "required": true,
      "type": "long",
      "description": "Priority in the dialplan"
    },
    "exten": {
      "required": true,
      "type": "string",
      "description": "Extension in the dialplan"
    },
    "context": {
      "required": true,
      "type": "string",
      "description": "Context in the dialplan"
    }
  },
  "id": "DialplanCEP",
  "description": "Dialplan location (context/extension/priority)"
}
  • context: string - Context in the dialplan
  • exten: string - Extension in the dialplan
  • priority: long - Priority in the dialplan

Bridge

The merging of media from one or more channels.

Everyone on the bridge receives the same audio.

 Expand source
{
  "properties": {
    "bridge_type": {
      "allowableValues": {
        "valueType": "LIST",
        "values": [
          "mixing",
          "holding"
        ]
      },
      "required": true,
      "type": "string",
      "description": "Type of bridge technology"
    },
    "name": {
      "required": true,
      "type": "string",
      "description": "Name the creator gave the bridge"
    },
    "creator": {
      "required": true,
      "type": "string",
      "description": "Entity that created the bridge"
    },
    "channels": {
      "required": true,
      "type": "List[string]",
      "description": "Ids of channels participating in this bridge"
    },
    "bridge_class": {
      "required": true,
      "type": "string",
      "description": "Bridging class"
    },
    "technology": {
      "required": true,
      "type": "string",
      "description": "Name of the current bridging technology"
    },
    "id": {
      "required": true,
      "type": "string",
      "description": "Unique identifier for this bridge"
    }
  },
  "id": "Bridge",
  "description": "The merging of media from one or more channels.\n\nEveryone on the bridge receives the same audio."
}
  • bridge_class: string - Bridging class
  • bridge_type: string - Type of bridge technology
  • channels: List[string] - Ids of channels participating in this bridge
  • creator: string - Entity that created the bridge
  • id: string - Unique identifier for this bridge
  • name: string - Name the creator gave the bridge
  • technology: string - Name of the current bridging technology

LiveRecording

A recording that is in progress

 Expand source
{
  "properties": {
    "talking_duration": {
      "required": false,
      "type": "int",
      "description": "Duration of talking, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds."
    },
    "name": {
      "required": true,
      "type": "string",
      "description": "Base name for the recording"
    },
    "target_uri": {
      "required": true,
      "type": "string",
      "description": "URI for the channel or bridge being recorded"
    },
    "format": {
      "required": true,
      "type": "string",
      "description": "Recording format (wav, gsm, etc.)"
    },
    "cause": {
      "required": false,
      "type": "string",
      "description": "Cause for recording failure if failed"
    },
    "state": {
      "allowableValues": {
        "valueType": "LIST",
        "values": [
          "queued",
          "recording",
          "paused",
          "done",
          "failed",
          "canceled"
        ]
      },
      "required": true,
      "type": "string"
    },
    "duration": {
      "required": false,
      "type": "int",
      "description": "Duration in seconds of the recording"
    },
    "silence_duration": {
      "required": false,
      "type": "int",
      "description": "Duration of silence, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds."
    }
  },
  "id": "LiveRecording",
  "description": "A recording that is in progress"
}
  • cause: string (optional) - Cause for recording failure if failed
  • duration: int (optional) - Duration in seconds of the recording
  • format: string - Recording format (wav, gsm, etc.)
  • name: string - Base name for the recording
  • silence_duration: int (optional) - Duration of silence, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds.
  • state: string
  • talking_duration: int (optional) - Duration of talking, in seconds, detected in the recording. This is only available if the recording was initiated with a non-zero maxSilenceSeconds.
  • target_uri: string - URI for the channel or bridge being recorded

StoredRecording

A past recording that may be played back.

 Expand source
{
  "properties": {
    "name": {
      "required": true,
      "type": "string"
    },
    "format": {
      "required": true,
      "type": "string"
    }
  },
  "id": "StoredRecording",
  "description": "A past recording that may be played back."
}
  • format: string
  • name: string

FormatLangPair

Identifies the format and language of a sound file

 Expand source
{
  "properties": {
    "language": {
      "required": true,
      "type": "string"
    },
    "format": {
      "required": true,
      "type": "string"
    }
  },
  "id": "FormatLangPair",
  "description": "Identifies the format and language of a sound file"
}
  • format: string
  • language: string

Sound

A media file that may be played back.

 Expand source
{
  "properties": {
    "text": {
      "required": false,
      "type": "string",
      "description": "Text description of the sound, usually the words spoken."
    },
    "id": {
      "required": true,
      "type": "string",
      "description": "Sound's identifier."
    },
    "formats": {
      "required": true,
      "type": "List[FormatLangPair]",
      "description": "The formats and languages in which this sound is available."
    }
  },
  "id": "Sound",
  "description": "A media file that may be played back."
}
  • formats: List[FormatLangPair] - The formats and languages in which this sound is available.
  • id: string - Sound's identifier.
  • text: string (optional) - Text description of the sound, usually the words spoken.

Playback

Object representing the playback of media to a channel

 Expand source
{
  "properties": {
    "language": {
      "type": "string",
      "description": "For media types that support multiple languages, the language requested for playback."
    },
    "media_uri": {
      "required": true,
      "type": "string",
      "description": "URI for the media to play back."
    },
    "id": {
      "required": true,
      "type": "string",
      "description": "ID for this playback operation"
    },
    "target_uri": {
      "required": true,
      "type": "string",
      "description": "URI for the channel or bridge to play the media on"
    },
    "state": {
      "allowableValues": {
        "valueType": "LIST",
        "values": [
          "queued",
          "playing",
          "complete"
        ]
      },
      "required": true,
      "type": "string",
      "description": "Current state of the playback operation."
    }
  },
  "id": "Playback",
  "description": "Object representing the playback of media to a channel"
}
  • id: string - ID for this playback operation
  • language: string (optional) - For media types that support multiple languages, the language requested for playback.
  • media_uri: string - URI for the media to play back.
  • state: string - Current state of the playback operation.
  • target_uri: string - URI for the channel or bridge to play the media on

DeviceState

Represents the state of a device.

 Expand source
{
  "properties": {
    "state": {
      "allowableValues": {
        "valueType": "LIST",
        "values": [
          "UNKNOWN",
          "NOT_INUSE",
          "INUSE",
          "BUSY",
          "INVALID",
          "UNAVAILABLE",
          "RINGING",
          "RINGINUSE",
          "ONHOLD"
        ]
      },
      "required": true,
      "type": "string",
      "description": "Device's state"
    },
    "name": {
      "required": true,
      "type": "string",
      "description": "Name of the device."
    }
  },
  "id": "DeviceState",
  "description": "Represents the state of a device."
}
  • name: string - Name of the device.
  • state: string - Device's state

Mailbox

Represents the state of a mailbox.

 Expand source
{
  "properties": {
    "old_messages": {
      "required": true,
      "type": "int",
      "description": "Count of old messages in the mailbox."
    },
    "name": {
      "required": true,
      "type": "string",
      "description": "Name of the mailbox."
    },
    "new_messages": {
      "required": true,
      "type": "int",
      "description": "Count of new messages in the mailbox."
    }
  },
  "id": "Mailbox",
  "description": "Represents the state of a mailbox."
}
  • name: string - Name of the mailbox.
  • new_messages: int - Count of new messages in the mailbox.
  • old_messages: int - Count of old messages in the mailbox.

ApplicationReplaced

Base type: Event

Notification that another WebSocket has taken over for an application.

An application may only be subscribed to by a single WebSocket at a time. If multiple WebSockets attempt to subscribe to the same application, the newer WebSocket wins, and the older one receives this event.

 Expand source
{
  "properties": {},
  "id": "ApplicationReplaced",
  "description": "Notification that another WebSocket has taken over for an application.\n\nAn application may only be subscribed to by a single WebSocket at a time. If multiple WebSockets attempt to subscribe to the same application, the newer WebSocket wins, and the older one receives this event."
}
  • type: string - Indicates the type of this message.
  • application: string - Name of the application receiving the event.
  • timestamp: Date (optional) - Time at which this event was created.

BridgeAttendedTransfer

Base type: Event

Notification that an attended transfer has occurred.

 Expand source
{
  "properties": {
    "replace_channel": {
      "required": false,
      "type": "Channel",
      "description": "The channel that is replacing transferer_first_leg in the swap"
    },
    "is_external": {
      "required": true,
      "type": "boolean",
      "description": "Whether the transfer was externally initiated or not"
    },
    "transferer_second_leg_bridge": {
      "type": "Bridge",
      "description": "Bridge the transferer second leg is in"
    },
    "destination_bridge": {
      "type": "string",
      "description": "Bridge that survived the merge result"
    },
    "transferer_second_leg": {
      "required": true,
      "type": "Channel",
      "description": "Second leg of the transferer"
    },
    "destination_link_second_leg": {
      "type": "Channel",
      "description": "Second leg of a link transfer result"
    },
    "destination_threeway_channel": {
      "type": "Channel",
      "description": "Transferer channel that survived the threeway result"
    },
    "transfer_target": {
      "required": false,
      "type": "Channel",
      "description": "The channel that is being transferred to"
    },
    "result": {
      "required": true,
      "type": "string",
      "description": "The result of the transfer attempt"
    },
    "destination_type": {
      "required": true,
      "type": "string",
      "description": "How the transfer was accomplished"
    },
    "destination_application": {
      "type": "string",
      "description": "Application that has been transferred into"
    },
    "destination_threeway_bridge": {
      "type": "Bridge",
      "description": "Bridge that survived the threeway result"
    },
    "destination_link_first_leg": {
      "type": "Channel",
      "description": "First leg of a link transfer result"
    },
    "transferee": {
      "required": false,
      "type": "Channel",
      "description": "The channel that is being transferred"
    },
    "transferer_first_leg": {
      "required": true,
      "type": "Channel",
      "description": "First leg of the transferer"
    },
    "transferer_first_leg_bridge": {
      "type": "Bridge",
      "description": "Bridge the transferer first leg is in"
    }
  },
  "id": "BridgeAttendedTransfer",
  "description": "Notification that an attended transfer has occurred."
}
  • type: string - Indicates the type of this message.
  • application: string - Name of the application receiving the event.
  • timestamp: Date (optional) - Time at which this event was created.
  • destination_application: string (optional) - Application that has been transferred into
  • destination_bridge: string (optional) - Bridge that survived the merge result
  • destination_link_first_leg: Channel (optional) - First leg of a link transfer result
  • destination_link_second_leg: Channel (optional) - Second leg of a link transfer result
  • destination_threeway_bridge: Bridge (optional) - Bridge that survived the threeway result
  • destination_threeway_channel: Channel (optional) - Transferer channel that survived the threeway result
  • destination_type: string - How the transfer was accomplished
  • is_external: boolean - Whether the transfer was externally initiated or not
  • replace_channel: Channel (optional) - The channel that is replacing transferer_first_leg in the swap
  • result: string - The result of the transfer attempt
  • transfer_target: Channel (optional) - The channel that is being transferred to
  • transferee: Channel (optional) - The channel that is being transferred
  • transferer_first_leg: Channel - First leg of the transferer
  • transferer_first_leg_bridge: Bridge (optional) - Bridge the transferer first leg is in
  • transferer_second_leg: Channel - Second leg of the transferer
  • transferer_second_leg_bridge: Bridge (optional) - Bridge the transferer second leg is in

BridgeBlindTransfer

Base type: Event

Notification that a blind transfer has occurred.

 Expand source
{
  "properties": {
    "bridge": {
      "type": "Bridge",
      "description": "The bridge being transferred"
    },
    "is_external": {
      "required": true,
      "type": "boolean",
      "description": "Whether the transfer was externally initiated or not"
    },
    "exten": {
      "required": true,
      "type": "string",
      "description": "The extension transferred to"
    },
    "result": {
      "required": true,
      "type": "string",
      "description": "The result of the transfer attempt"
    },
    "context": {
      "required": true,
      "type": "string",
      "description": "The context transferred to"
    },
    "transferee": {
      "required": false,
      "type": "Channel",
      "description": "The channel that is being transferred"
    },
    "channel": {
      "required": true,
      "type": "Channel",
      "description": "The channel performing the blind transfer"
    }
  },
  "id": "BridgeBlindTransfer",
  "description": "Notification that a blind transfer has occurred."
}
  • type: string - Indicates the type of this message.
  • application: string - Name of the application receiving the event.
  • timestamp: Date (optional) - Time at which this event was created.
  • bridge: Bridge (optional) - The bridge being transferred
  • channel: Channel - The channel performing the blind transfer
  • context: string - The context transferred to
  • exten: string - The extension transferred to
  • is_external: boolean - Whether the transfer was externally initiated or not
  • result: string - The result of the transfer attempt
  • transferee: Channel (optional) - The channel that is being transferred

BridgeCreated

Base type: Event

Notification that a bridge has been created.

 Expand source
{
  "properties": {
    "bridge": {
      "required": true,
      "type": "Bridge"
    }
  },
  "id": "BridgeCreated",
  "description": "Notification that a bridge has been created."
}
  • type: string - Indicates the type of this message.
  • application: string - Name of the application receiving the event.
  • timestamp: Date (optional) - Time at which this event was created.
  • bridge: Bridge

BridgeDestroyed

Base type: Event

Notification that a bridge has been destroyed.

 Expand source
{
  "properties": {
    "bridge": {
      "required": true,
      "type": "Bridge"
    }
  },
  "id": "BridgeDestroyed",
  "description": "Notification that a bridge has been destroyed."
}
  • type: string - Indicates the type of this message.
  • application: string - Name of the application receiving the event.
  • timestamp: Date (optional) - Time at which this event was created.
  • bridge: Bridge

BridgeMerged

Base type: Event

Notification that one bridge has merged into another.

 Expand source
{
  "properties": {
    "bridge": {
      "required": true,
      "type": "Bridge"
    },
    "bridge_from": {
      "required": true,
      "type": "Bridge"
    }
  },
  "id": "BridgeMerged",
  "description": "Notification that one bridge has merged into another."
}
  • type: string - Indicates the type of this message.
  • application: string - Name of the application receiving the event.
  • timestamp: Date (optional) - Time at which this event was created.
  • bridge: Bridge
  • bridge_from: Bridge

ChannelCallerId

Base type: Event

Channel changed Caller ID.

 Expand source
{
  "properties": {
    "caller_presentation_txt": {
      "required": true,
      "type": "string",
      "description": "The text representation of the Caller Presentation value."
    },
    "caller_presentation": {
      "required": true,
      "type": "int",
      "description": "The integer representation of the Caller Presentation value."
    },
    "channel": {
      "required": true,
      "type": "Channel",
      "description": "The channel that changed Caller ID."
    }
  },
  "id": "ChannelCallerId",
  "description": "Channel changed Caller ID."
}
  • type: string - Indicates the type of this message.
  • application: string - Name of the application receiving the event.
  • timestamp: Date (optional) - Time at which this event was created.
  • caller_presentation: int - The integer representation of the Caller Presentation value.
  • caller_presentation_txt: string - The text representation of the Caller Presentation value.
  • channel: Channel - The channel that changed Caller ID.

ChannelCreated

Base type: Event

Notification that a channel has been created.

 Expand source
{
  "properties": {
    "channel": {
      "required": true,
      "type": "Channel"
    }
  },
  "id": "ChannelCreated",
  "description": "Notification that a channel has been created."
}
  • type: string - Indicates the type of this message.
  • application: string - Name of the application receiving the event.
  • timestamp: Date (optional) - Time at which this event was created.
  • channel: Channel

ChannelDestroyed

Base type: Event

Notification that a channel has been destroyed.

 Expand source
{
  "properties": {
    "cause": {
      "required": true,
      "type": "int",
      "description": "Integer representation of the cause of the hangup"
    },
    "cause_txt": {
      "required": true,
      "type": "string",
      "description": "Text representation of the cause of the hangup"
    },
    "channel": {
      "required": true,
      "type": "Channel"
    }
  },
  "id": "ChannelDestroyed",
  "description": "Notification that a channel has been destroyed."
}
  • type: string - Indicates the type of this message.
  • application: string - Name of the application receiving the event.
  • timestamp: Date (optional) - Time at which this event was created.
  • cause: int - Integer representation of the cause of the hangup
  • cause_txt: string - Text representation of the cause of the hangup
  • channel: Channel

ChannelDialplan

Base type: Event

Channel changed location in the dialplan.

 Expand source
{
  "properties": {
    "dialplan_app_data": {
      "required": true,
      "type": "string",
      "description": "The data to be passed to the application."
    },
    "channel": {
      "required": true,
      "type": "Channel",
      "description": "The channel that changed dialplan location."
    },
    "dialplan_app": {
      "required": true,
      "type": "string",
      "description": "The application about to be executed."
    }
  },
  "id": "ChannelDialplan",
  "description": "Channel changed location in the dialplan."
}
  • type: string - Indicates the type of this message.
  • application: string - Name of the application receiving the event.
  • timestamp: Date (optional) - Time at which this event was created.
  • channel: Channel - The channel that changed dialplan location.
  • dialplan_app: string - The application about to be executed.
  • dialplan_app_data: string - The data to be passed to the application.

ChannelDtmfReceived

Base type: Event

DTMF received on a channel.

This event is sent when the DTMF ends. There is no notification about the start of DTMF

 Expand source
{
  "properties": {
    "duration_ms": {
      "required": true,
      "type": "int",
      "description": "Number of milliseconds DTMF was received"
    },
    "digit": {
      "required": true,
      "type": "string",
      "description": "DTMF digit received (0-9, A-E, # or *)"
    },
    "channel": {
      "required": true,
      "type": "Channel",
      "description": "The channel on which DTMF was received"
    }
  },
  "id": "ChannelDtmfReceived",
  "description": "DTMF received on a channel.\n\nThis event is sent when the DTMF ends. There is no notification about the start of DTMF"
}
  • type: string - Indicates the type of this message.
  • application: string - Name of the application receiving the event.
  • timestamp: Date (optional) - Time at which this event was created.
  • channel: Channel - The channel on which DTMF was received
  • digit: string - DTMF digit received (0-9, A-E, # or *)
  • duration_ms: int - Number of milliseconds DTMF was received

ChannelEnteredBridge

Base type: Event

Notification that a channel has entered a bridge.

 Expand source
{
  "properties": {
    "bridge": {
      "required": true,
      "type": "Bridge"
    },
    "channel": {
      "type": "Channel"
    }
  },
  "id": "ChannelEnteredBridge",
  "description": "Notification that a channel has entered a bridge."
}
  • type: string - Indicates the type of this message.
  • application: string - Name of the application receiving the event.
  • timestamp: Date (optional) - Time at which this event was created.
  • bridge: Bridge
  • channel: Channel (optional)

ChannelHangupRequest

Base type: Event

A hangup was requested on the channel.

 Expand source
{
  "properties": {
    "soft": {
      "type": "boolean",
      "description": "Whether the hangup request was a soft hangup request."
    },
    "cause": {
      "type": "int",
      "description": "Integer representation of the cause of the hangup."
    },
    "channel": {
      "required": true,
      "type": "Channel",
      "description": "The channel on which the hangup was requested."
    }
  },
  "id": "ChannelHangupRequest",
  "description": "A hangup was requested on the channel."
}
  • type: string - Indicates the type of this message.
  • application: string - Name of the application receiving the event.
  • timestamp: Date (optional) - Time at which this event was created.
  • cause: int (optional) - Integer representation of the cause of the hangup.
  • channel: Channel - The channel on which the hangup was requested.
  • soft: boolean (optional) - Whether the hangup request was a soft hangup request.

ChannelLeftBridge

Base type: Event

Notification that a channel has left a bridge.

 Expand source
{
  "properties": {
    "bridge": {
      "required": true,
      "type": "Bridge"
    },
    "channel": {
      "required": true,
      "type": "Channel"
    }
  },
  "id": "ChannelLeftBridge",
  "description": "Notification that a channel has left a bridge."
}
  • type: string - Indicates the type of this message.
  • application: string - Name of the application receiving the event.
  • timestamp: Date (optional) - Time at which this event was created.
  • bridge: Bridge
  • channel: Channel

ChannelStateChange

Base type: Event

Notification of a channel's state change.

 Expand source
{
  "properties": {
    "channel": {
      "required": true,
      "type": "Channel"
    }
  },
  "id": "ChannelStateChange",
  "description": "Notification of a channel's state change."
}
  • type: string - Indicates the type of this message.
  • application: string - Name of the application receiving the event.
  • timestamp: Date (optional) - Time at which this event was created.
  • channel: Channel

ChannelTalkingFinished

Base type: Event

Talking is no longer detected on the channel.

 Expand source
{
  "properties": {
    "duration": {
      "required": true,
      "type": "int",
      "description": "The length of time, in milliseconds, that talking was detected on the channel"
    },
    "channel": {
      "required": true,
      "type": "Channel",
      "description": "The channel on which talking completed."
    }
  },
  "id": "ChannelTalkingFinished",
  "description": "Talking is no longer detected on the channel."
}
  • type: string - Indicates the type of this message.
  • application: string - Name of the application receiving the event.
  • timestamp: Date (optional) - Time at which this event was created.
  • channel: Channel - The channel on which talking completed.
  • duration: int - The length of time, in milliseconds, that talking was detected on the channel

ChannelTalkingStarted

Base type: Event

Talking was detected on the channel.

 Expand source
{
  "properties": {
    "channel": {
      "required": true,
      "type": "Channel",
      "description": "The channel on which talking started."
    }
  },
  "id": "ChannelTalkingStarted",
  "description": "Talking was detected on the channel."
}
  • type: string - Indicates the type of this message.
  • application: string - Name of the application receiving the event.
  • timestamp: Date (optional) - Time at which this event was created.
  • channel: Channel - The channel on which talking started.

ChannelUserevent

Base type: Event

User-generated event with additional user-defined fields in the object.

 Expand source
{
  "properties": {
    "eventname": {
      "required": true,
      "type": "string",
      "description": "The name of the user event."
    },
    "bridge": {
      "required": false,
      "type": "Bridge",
      "description": "A bridge that is signaled with the user event."
    },
    "userevent": {
      "required": true,
      "type": "object",
      "description": "Custom Userevent data"
    },
    "endpoint": {
      "required": false,
      "type": "Endpoint",
      "description": "A endpoint that is signaled with the user event."
    },
    "channel": {
      "required": false,
      "type": "Channel",
      "description": "A channel that is signaled with the user event."
    }
  },
  "id": "ChannelUserevent",
  "description": "User-generated event with additional user-defined fields in the object."
}
  • type: string - Indicates the type of this message.
  • application: string - Name of the application receiving the event.
  • timestamp: Date (optional) - Time at which this event was created.
  • bridge: Bridge (optional) - A bridge that is signaled with the user event.
  • channel: Channel (optional) - A channel that is signaled with the user event.
  • endpoint: Endpoint (optional) - A endpoint that is signaled with the user event.
  • eventname: string - The name of the user event.
  • userevent: object - Custom Userevent data

ChannelVarset

Base type: Event

Channel variable changed.

 Expand source
{
  "properties": {
    "variable": {
      "required": true,
      "type": "string",
      "description": "The variable that changed."
    },
    "channel": {
      "required": false,
      "type": "Channel",
      "description": "The channel on which the variable was set.\n\nIf missing, the variable is a global variable."
    },
    "value": {
      "required": true,
      "type": "string",
      "description": "The new value of the variable."
    }
  },
  "id": "ChannelVarset",
  "description": "Channel variable changed."
}
  • type: string - Indicates the type of this message.
  • application: string - Name of the application receiving the event.
  • timestamp: Date (optional) - Time at which this event was created.
  • channel: Channel (optional) - The channel on which the variable was set.

If missing, the variable is a global variable.

  • value: string - The new value of the variable.
  • variable: string - The variable that changed.

DeviceStateChanged

Base type: Event

Notification that a device state has changed.

 Expand source
{
  "properties": {
    "device_state": {
      "required": true,
      "type": "DeviceState",
      "description": "Device state object"
    }
  },
  "id": "DeviceStateChanged",
  "description": "Notification that a device state has changed."
}
  • type: string - Indicates the type of this message.
  • application: string - Name of the application receiving the event.
  • timestamp: Date (optional) - Time at which this event was created.
  • device_state: DeviceState - Device state object

Dial

Base type: Event

Dialing state has changed.

 Expand source
{
  "properties": {
    "forwarded": {
      "required": false,
      "type": "Channel",
      "description": "Channel that the caller has been forwarded to."
    },
    "caller": {
      "required": false,
      "type": "Channel",
      "description": "The calling channel."
    },
    "dialstatus": {
      "required": true,
      "type": "string",
      "description": "Current status of the dialing attempt to the peer."
    },
    "forward": {
      "required": false,
      "type": "string",
      "description": "Forwarding target requested by the original dialed channel."
    },
    "dialstring": {
      "required": false,
      "type": "string",
      "description": "The dial string for calling the peer channel."
    },
    "peer": {
      "required": true,
      "type": "Channel",
      "description": "The dialed channel."
    }
  },
  "id": "Dial",
  "description": "Dialing state has changed."
}
  • type: string - Indicates the type of this message.
  • application: string - Name of the application receiving the event.
  • timestamp: Date (optional) - Time at which this event was created.
  • caller: Channel (optional) - The calling channel.
  • dialstatus: string - Current status of the dialing attempt to the peer.
  • dialstring: string (optional) - The dial string for calling the peer channel.
  • forward: string (optional) - Forwarding target requested by the original dialed channel.
  • forwarded: Channel (optional) - Channel that the caller has been forwarded to.
  • peer: Channel - The dialed channel.

EndpointStateChange

Base type: Event

Endpoint state changed.

 Expand source
{
  "properties": {
    "endpoint": {
      "required": true,
      "type": "Endpoint"
    }
  },
  "id": "EndpointStateChange",
  "description": "Endpoint state changed."
}
  • type: string - Indicates the type of this message.
  • application: string - Name of the application receiving the event.
  • timestamp: Date (optional) - Time at which this event was created.
  • endpoint: Endpoint

Event

Base type: Message
Subtypes: ApplicationReplaced BridgeAttendedTransfer BridgeBlindTransfer BridgeCreated BridgeDestroyed BridgeMerged ChannelCallerId ChannelCreated ChannelDestroyed ChannelDialplan ChannelDtmfReceived ChannelEnteredBridge ChannelHangupRequest ChannelLeftBridge ChannelStateChange ChannelTalkingFinished ChannelTalkingStarted ChannelUserevent ChannelVarset DeviceStateChanged Dial EndpointStateChange PlaybackFinished PlaybackStarted RecordingFailed RecordingFinished RecordingStarted StasisEnd StasisStart TextMessageReceived

Base type for asynchronous events from Asterisk.

 Expand source
{
  "subTypes": [
    "DeviceStateChanged",
    "PlaybackStarted",
    "PlaybackFinished",
    "RecordingStarted",
    "RecordingFinished",
    "RecordingFailed",
    "ApplicationReplaced",
    "BridgeCreated",
    "BridgeDestroyed",
    "BridgeMerged",
    "BridgeBlindTransfer",
    "BridgeAttendedTransfer",
    "ChannelCreated",
    "ChannelDestroyed",
    "ChannelEnteredBridge",
    "ChannelLeftBridge",
    "ChannelStateChange",
    "ChannelDtmfReceived",
    "ChannelDialplan",
    "ChannelCallerId",
    "ChannelUserevent",
    "ChannelHangupRequest",
    "ChannelVarset",
    "ChannelTalkingStarted",
    "ChannelTalkingFinished",
    "EndpointStateChange",
    "Dial",
    "StasisEnd",
    "StasisStart",
    "TextMessageReceived"
  ],
  "properties": {
    "application": {
      "required": true,
      "type": "string",
      "description": "Name of the application receiving the event."
    },
    "timestamp": {
      "required": false,
      "type": "Date",
      "description": "Time at which this event was created."
    }
  },
  "id": "Event",
  "description": "Base type for asynchronous events from Asterisk."
}
  • type: string - Indicates the type of this message.
  • application: string - Name of the application receiving the event.
  • timestamp: Date (optional) - Time at which this event was created.

Message

Subtypes: ApplicationReplaced BridgeAttendedTransfer BridgeBlindTransfer BridgeCreated BridgeDestroyed BridgeMerged ChannelCallerId ChannelCreated ChannelDestroyed ChannelDialplan ChannelDtmfReceived ChannelEnteredBridge ChannelHangupRequest ChannelLeftBridge ChannelStateChange ChannelTalkingFinished ChannelTalkingStarted ChannelUserevent ChannelVarset DeviceStateChanged Dial EndpointStateChange Event MissingParams PlaybackFinished PlaybackStarted RecordingFailed RecordingFinished RecordingStarted StasisEnd StasisStart TextMessageReceived

Base type for errors and events

 Expand source
{
  "discriminator": "type",
  "properties": {
    "type": {
      "required": true,
      "type": "string",
      "description": "Indicates the type of this message."
    }
  },
  "subTypes": [
    "MissingParams",
    "Event"
  ],
  "id": "Message",
  "description": "Base type for errors and events"
}
  • type: string - Indicates the type of this message.

MissingParams

Base type: Message

Error event sent when required params are missing.

 Expand source
{
  "properties": {
    "params": {
      "required": true,
      "type": "List[string]",
      "description": "A list of the missing parameters"
    }
  },
  "id": "MissingParams",
  "description": "Error event sent when required params are missing."
}
  • type: string - Indicates the type of this message.
  • params: List[string] - A list of the missing parameters

PlaybackFinished

Base type: Event

Event showing the completion of a media playback operation.

 Expand source
{
  "properties": {
    "playback": {
      "required": true,
      "type": "Playback",
      "description": "Playback control object"
    }
  },
  "id": "PlaybackFinished",
  "description": "Event showing the completion of a media playback operation."
}
  • type: string - Indicates the type of this message.
  • application: string - Name of the application receiving the event.
  • timestamp: Date (optional) - Time at which this event was created.
  • playback: Playback - Playback control object

PlaybackStarted

Base type: Event

Event showing the start of a media playback operation.

 Expand source
{
  "properties": {
    "playback": {
      "required": true,
      "type": "Playback",
      "description": "Playback control object"
    }
  },
  "id": "PlaybackStarted",
  "description": "Event showing the start of a media playback operation."
}
  • type: string - Indicates the type of this message.
  • application: string - Name of the application receiving the event.
  • timestamp: Date (optional) - Time at which this event was created.
  • playback: Playback - Playback control object

RecordingFailed

Base type: Event

Event showing failure of a recording operation.

 Expand source
{
  "properties": {
    "recording": {
      "required": true,
      "type": "LiveRecording",
      "description": "Recording control object"
    }
  },
  "extends": "Event",
  "id": "RecordingFailed",
  "description": "Event showing failure of a recording operation."
}
  • type: string - Indicates the type of this message.
  • application: string - Name of the application receiving the event.
  • timestamp: Date (optional) - Time at which this event was created.
  • recording: LiveRecording - Recording control object

RecordingFinished

Base type: Event

Event showing the completion of a recording operation.

 Expand source
{
  "properties": {
    "recording": {
      "required": true,
      "type": "LiveRecording",
      "description": "Recording control object"
    }
  },
  "extends": "Event",
  "id": "RecordingFinished",
  "description": "Event showing the completion of a recording operation."
}
  • type: string - Indicates the type of this message.
  • application: string - Name of the application receiving the event.
  • timestamp: Date (optional) - Time at which this event was created.
  • recording: LiveRecording - Recording control object

RecordingStarted

Base type: Event

Event showing the start of a recording operation.

 Expand source
{
  "properties": {
    "recording": {
      "required": true,
      "type": "LiveRecording",
      "description": "Recording control object"
    }
  },
  "extends": "Event",
  "id": "RecordingStarted",
  "description": "Event showing the start of a recording operation."
}
  • type: string - Indicates the type of this message.
  • application: string - Name of the application receiving the event.
  • timestamp: Date (optional) - Time at which this event was created.
  • recording: LiveRecording - Recording control object

StasisEnd

Base type: Event

Notification that a channel has left a Stasis application.

 Expand source
{
  "properties": {
    "channel": {
      "required": true,
      "type": "Channel"
    }
  },
  "id": "StasisEnd",
  "description": "Notification that a channel has left a Stasis application."
}
  • type: string - Indicates the type of this message.
  • application: string - Name of the application receiving the event.
  • timestamp: Date (optional) - Time at which this event was created.
  • channel: Channel

StasisStart

Base type: Event

Notification that a channel has entered a Stasis application.

 Expand source
{
  "properties": {
    "args": {
      "required": true,
      "type": "List[string]",
      "description": "Arguments to the application"
    },
    "replace_channel": {
      "required": false,
      "type": "Channel"
    },
    "channel": {
      "required": true,
      "type": "Channel"
    }
  },
  "id": "StasisStart",
  "description": "Notification that a channel has entered a Stasis application."
}
  • type: string - Indicates the type of this message.
  • application: string - Name of the application receiving the event.
  • timestamp: Date (optional) - Time at which this event was created.
  • args: List[string] - Arguments to the application
  • channel: Channel
  • replace_channel: Channel (optional)

TextMessageReceived

Base type: Event

A text message was received from an endpoint.

 Expand source
{
  "properties": {
    "message": {
      "required": true,
      "type": "TextMessage"
    },
    "endpoint": {
      "required": false,
      "type": "Endpoint"
    }
  },
  "id": "TextMessageReceived",
  "description": "A text message was received from an endpoint."
}
  • type: string - Indicates the type of this message.
  • application: string - Name of the application receiving the event.
  • timestamp: Date (optional) - Time at which this event was created.
  • endpoint: Endpoint (optional)
  • message: TextMessage

Application

Details of a Stasis application

 Expand source
{
  "properties": {
    "endpoint_ids": {
      "required": true,
      "type": "List[string]",
      "description": "{tech}/{resource} for endpoints subscribed to."
    },
    "channel_ids": {
      "required": true,
      "type": "List[string]",
      "description": "Id's for channels subscribed to."
    },
    "bridge_ids": {
      "required": true,
      "type": "List[string]",
      "description": "Id's for bridges subscribed to."
    },
    "device_names": {
      "required": true,
      "type": "List[string]",
      "description": "Names of the devices subscribed to."
    },
    "name": {
      "required": true,
      "type": "string",
      "description": "Name of this application"
    }
  },
  "id": "Application",
  "description": "Details of a Stasis application"
}
  • bridge_ids: List[string] - Id's for bridges subscribed to.
  • channel_ids: List[string] - Id's for channels subscribed to.
  • device_names: List[string] - Names of the devices subscribed to.
  • endpoint_ids: List[string] - {tech}/{resource} for endpoints subscribed to.
  • name: string - Name of this application