Module: SignalWire::Relay
- Defined in:
- lib/signalwire/relay/call.rb,
lib/signalwire/relay/action.rb,
lib/signalwire/relay/client.rb,
lib/signalwire/relay/message.rb,
lib/signalwire/relay/constants.rb,
lib/signalwire/relay/relay_event.rb
Defined Under Namespace
Classes: AIAction, Action, ActionTimeoutError, Call, CallReceiveEvent, CallStateEvent, CallingErrorEvent, Client, CollectAction, CollectEvent, ConferenceEvent, ConnectEvent, DenoiseEvent, DetectAction, DetectEvent, DialEvent, EchoEvent, FaxAction, FaxEvent, HoldEvent, Message, MessageReceiveEvent, MessageStateEvent, PayAction, PayEvent, PlayAction, PlayEvent, QueueEvent, RecordAction, RecordEvent, ReferEvent, RelayError, RelayEvent, SendDigitsEvent, StandaloneCollectAction, StreamAction, StreamEvent, TapAction, TapEvent, TranscribeAction, TranscribeEvent
Constant Summary collapse
- PROTOCOL_VERSION =
Protocol version sent during signalwire.connect
{ 'major' => 2, 'minor' => 0, 'revision' => 0 }.freeze
- AGENT_STRING =
'signalwire-agents-ruby/1.0'- METHOD_SIGNALWIRE_CONNECT =
JSON-RPC methods
'signalwire.connect'- METHOD_SIGNALWIRE_EVENT =
'signalwire.event'- METHOD_SIGNALWIRE_PING =
'signalwire.ping'- METHOD_SIGNALWIRE_DISCONNECT =
'signalwire.disconnect'- METHOD_SIGNALWIRE_RECEIVE =
'signalwire.receive'- METHOD_SIGNALWIRE_UNRECEIVE =
'signalwire.unreceive'- EVENT_AUTHORIZATION_STATE =
Authorization state event
'signalwire.authorization.state'- CALL_STATE_CREATED =
Call states
'created'- CALL_STATE_RINGING =
'ringing'- CALL_STATE_ANSWERED =
'answered'- CALL_STATE_ENDING =
'ending'- CALL_STATE_ENDED =
'ended'- CALL_STATES =
[ CALL_STATE_CREATED, CALL_STATE_RINGING, CALL_STATE_ANSWERED, CALL_STATE_ENDING, CALL_STATE_ENDED ].freeze
- END_REASON_HANGUP =
End reasons
'hangup'- END_REASON_CANCEL =
'cancel'- END_REASON_BUSY =
'busy'- END_REASON_NO_ANSWER =
'noAnswer'- END_REASON_DECLINE =
'decline'- END_REASON_ERROR =
'error'- END_REASON_ABANDONED =
'abandoned'- END_REASON_MAX_DURATION =
'max_duration'- END_REASON_NOT_FOUND =
'not_found'- CONNECT_STATE_CONNECTING =
Connect states
'connecting'- CONNECT_STATE_CONNECTED =
'connected'- CONNECT_STATE_DISCONNECTED =
'disconnected'- CONNECT_STATE_FAILED =
'failed'- EVENT_CALL_STATE =
Event types — calling
'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_CONFERENCE =
'calling.conference'- EVENT_CALLING_ERROR =
'calling.error'- EVENT_MESSAGING_RECEIVE =
Messaging event types
'messaging.receive'- EVENT_MESSAGING_STATE =
'messaging.state'- MESSAGE_STATE_QUEUED =
Message states
'queued'- MESSAGE_STATE_INITIATED =
'initiated'- MESSAGE_STATE_SENT =
'sent'- MESSAGE_STATE_DELIVERED =
'delivered'- MESSAGE_STATE_UNDELIVERED =
'undelivered'- MESSAGE_STATE_FAILED =
'failed'- MESSAGE_STATE_RECEIVED =
'received'- MESSAGE_TERMINAL_STATES =
[ MESSAGE_STATE_DELIVERED, MESSAGE_STATE_UNDELIVERED, MESSAGE_STATE_FAILED ].freeze
- PLAY_STATE_PLAYING =
Play states
'playing'- PLAY_STATE_PAUSED =
'paused'- PLAY_STATE_FINISHED =
'finished'- PLAY_STATE_ERROR =
'error'- RECORD_STATE_RECORDING =
Record states
'recording'- RECORD_STATE_PAUSED =
'paused'- RECORD_STATE_FINISHED =
'finished'- RECORD_STATE_NO_INPUT =
'no_input'- DETECT_TYPE_MACHINE =
Detect types
'machine'- DETECT_TYPE_FAX =
'fax'- DETECT_TYPE_DIGIT =
'digit'- ROOM_STATE_JOINING =
Join room states
'joining'- ROOM_STATE_JOIN =
'join'- ROOM_STATE_LEAVING =
'leaving'- ROOM_STATE_LEAVE =
'leave'- RECONNECT_MIN_DELAY =
Reconnect settings
1.0- RECONNECT_MAX_DELAY =
30.0- RECONNECT_BACKOFF_FACTOR =
2.0- DEFAULT_RELAY_HOST =
Default host
'relay.signalwire.com'- EVENT_CLASS_MAP =
Map event_type string to typed event class
{ 'calling.call.state' => CallStateEvent, 'calling.call.receive' => CallReceiveEvent, 'calling.call.play' => PlayEvent, 'calling.call.record' => RecordEvent, 'calling.call.collect' => CollectEvent, 'calling.call.connect' => ConnectEvent, 'calling.call.detect' => DetectEvent, 'calling.call.fax' => FaxEvent, 'calling.call.tap' => TapEvent, 'calling.call.stream' => StreamEvent, 'calling.call.send_digits' => SendDigitsEvent, 'calling.call.dial' => DialEvent, 'calling.call.refer' => ReferEvent, 'calling.call.denoise' => DenoiseEvent, 'calling.call.pay' => PayEvent, 'calling.call.queue' => QueueEvent, 'calling.call.echo' => EchoEvent, 'calling.call.transcribe' => TranscribeEvent, 'calling.call.hold' => HoldEvent, 'calling.conference' => ConferenceEvent, 'calling.error' => CallingErrorEvent, 'messaging.receive' => MessageReceiveEvent, 'messaging.state' => MessageStateEvent }.freeze
Class Method Summary collapse
-
.parse_event(payload) ⇒ Object
Parse a raw signalwire.event params hash into a typed event object.
Class Method Details
.parse_event(payload) ⇒ Object
Parse a raw signalwire.event params hash into a typed event object.
664 665 666 667 668 |
# File 'lib/signalwire/relay/relay_event.rb', line 664 def self.parse_event(payload) event_type = payload['event_type'] || '' klass = EVENT_CLASS_MAP[event_type] || RelayEvent klass.from_payload(payload) end |