For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Log inSign up
Support
GuidesReference
GuidesReference
    • Core
      • Overview
    • Agents
      • Overview
      • AgentBase
      • AgentServer
      • Configuration
      • ContextBuilder
      • DataMap
      • FunctionResult
      • Helper Functions & Utilities
      • LiveWire
      • PomBuilder
      • Prefabs
      • SkillBase
      • SkillManager
      • SkillRegistry
      • Skills
      • SwaigFunction
      • SwmlBuilder
      • SWMLService
    • RELAY
      • Overview
      • Actions
      • Call
      • Constants
      • Events
      • Message
      • RelayClient
      • RelayError
    • REST Client
      • Overview
      • Addresses
      • Calling
      • ChatResource
      • Compat
      • Datasphere
      • Fabric
      • ImportedNumbersResource
      • Logs
      • LookupResource
      • MFA
      • Number Groups
      • Phone Numbers
      • Project
      • PubSubResource
      • Queues
      • Recordings
      • Registry
      • RestClient
      • RestError
      • Short Codes
      • SIP Profile
      • Verified Callers
      • Video
LogoLogoSignalWire Docs
Log inSign up
Support
On this page
  • Call States
  • Connect States
  • Event Types
  • Calling Events
  • Messaging Events
  • Message States
  • Example
RELAY

Constants

|View as Markdown|Open in Claude|
Was this page helpful?
Edit this page
Previous

Events

Next
Built with

The @signalwire/sdk package re-exports string constants for call states, connect states, event types, and message states. Import any of them from the package root:

1import {
2 CALL_STATE_ANSWERED,
3 CALL_STATE_ENDED,
4 CONNECT_STATE_CONNECTED,
5 EVENT_CALL_STATE,
6 MESSAGE_STATE_DELIVERED,
7} from '@signalwire/sdk';

Call States

Constants representing the lifecycle states of a RELAY call. A call progresses through these states in order: created -> ringing -> answered -> ending -> ended.

ConstantValueDescription
CALL_STATE_CREATED"created"Call object has been created
CALL_STATE_RINGING"ringing"Call is ringing at the destination
CALL_STATE_ANSWERED"answered"Call has been answered
CALL_STATE_ENDING"ending"Call is in the process of ending
CALL_STATE_ENDED"ended"Call has ended

Connect States

Constants representing the state of a call bridge (connect) operation. Used in ConnectEvent.connectState.

ConstantValueDescription
CONNECT_STATE_CONNECTING"connecting"Bridge is being established
CONNECT_STATE_CONNECTED"connected"Bridge is active
CONNECT_STATE_DISCONNECTED"disconnected"Bridge has been disconnected
CONNECT_STATE_FAILED"failed"Bridge attempt failed

Event Types

String constants for RELAY event types. Use these when registering event handlers with Call.on() or when matching against RelayEvent.eventType.

Calling Events

ConstantValue
EVENT_CALL_STATE"calling.call.state"
EVENT_CALL_RECEIVE"calling.call.receive"
EVENT_CALL_CONNECT"calling.call.connect"
EVENT_CALL_PLAY"calling.call.play"
EVENT_CALL_COLLECT"calling.call.collect"
EVENT_CALL_RECORD"calling.call.record"
EVENT_CALL_DETECT"calling.call.detect"
EVENT_CALL_FAX"calling.call.fax"
EVENT_CALL_TAP"calling.call.tap"
EVENT_CALL_SEND_DIGITS"calling.call.send_digits"
EVENT_CALL_DIAL"calling.call.dial"
EVENT_CALL_REFER"calling.call.refer"
EVENT_CALL_DENOISE"calling.call.denoise"
EVENT_CALL_PAY"calling.call.pay"
EVENT_CALL_QUEUE"calling.call.queue"
EVENT_CALL_STREAM"calling.call.stream"
EVENT_CALL_ECHO"calling.call.echo"
EVENT_CALL_TRANSCRIBE"calling.call.transcribe"
EVENT_CALL_HOLD"calling.call.hold"
EVENT_CONFERENCE"calling.conference"
EVENT_CALLING_ERROR"calling.error"

Messaging Events

ConstantValue
EVENT_MESSAGING_RECEIVE"messaging.receive"
EVENT_MESSAGING_STATE"messaging.state"

Message States

Constants representing the lifecycle states of an SMS/MMS message. Outbound messages progress through: queued -> initiated -> sent -> delivered (or undelivered / failed). Inbound messages arrive with state received.

ConstantValueDescription
MESSAGE_STATE_QUEUED"queued"Message has been queued for sending
MESSAGE_STATE_INITIATED"initiated"Send process has started
MESSAGE_STATE_SENT"sent"Message has been sent to the carrier
MESSAGE_STATE_DELIVERED"delivered"Message was delivered to the recipient
MESSAGE_STATE_UNDELIVERED"undelivered"Message could not be delivered
MESSAGE_STATE_FAILED"failed"Message send failed
MESSAGE_STATE_RECEIVED"received"Inbound message received

Example

1import {
2 CALL_STATE_ANSWERED,
3 CALL_STATE_ENDED,
4 EVENT_CALL_STATE,
5 MESSAGE_STATE_DELIVERED,
6 MESSAGE_STATE_UNDELIVERED,
7 MESSAGE_STATE_FAILED,
8} from '@signalwire/sdk';
9import type { CallStateEvent } from '@signalwire/sdk';
10
11// Use in event handlers
12function handleCallState(event: CallStateEvent) {
13 if (event.callState === CALL_STATE_ANSWERED) {
14 console.log('Call answered!');
15 } else if (event.callState === CALL_STATE_ENDED) {
16 console.log(`Call ended: ${event.endReason}`);
17 }
18}
19
20// Check terminal message states
21const TERMINAL = [MESSAGE_STATE_DELIVERED, MESSAGE_STATE_UNDELIVERED, MESSAGE_STATE_FAILED];
22function handleMessageState(message: { state: string }) {
23 if (TERMINAL.includes(message.state)) {
24 console.log('Message delivery complete');
25 }
26}