github.com/CyCoreSystems/ari@v4.8.4+incompatible/events_gen.go (about) 1 // file generated by eventgen 2 3 package ari 4 5 import ( 6 "encoding/json" 7 8 "github.com/pkg/errors" 9 ) 10 11 // EventTypes enumerates the list of event types 12 type EventTypes struct { 13 All string 14 ApplicationReplaced string 15 BridgeAttendedTransfer string 16 BridgeBlindTransfer string 17 BridgeCreated string 18 BridgeDestroyed string 19 BridgeMerged string 20 BridgeVideoSourceChanged string 21 ChannelCallerID string 22 ChannelConnectedLine string 23 ChannelCreated string 24 ChannelDestroyed string 25 ChannelDialplan string 26 ChannelDtmfReceived string 27 ChannelEnteredBridge string 28 ChannelHangupRequest string 29 ChannelHold string 30 ChannelLeftBridge string 31 ChannelStateChange string 32 ChannelTalkingFinished string 33 ChannelTalkingStarted string 34 ChannelUnhold string 35 ChannelUserevent string 36 ChannelVarset string 37 ContactInfo string 38 ContactStatusChange string 39 DeviceStateChanged string 40 Dial string 41 EndpointStateChange string 42 MissingParams string 43 Peer string 44 PeerStatusChange string 45 PlaybackContinuing string 46 PlaybackFinished string 47 PlaybackStarted string 48 RecordingFailed string 49 RecordingFinished string 50 RecordingStarted string 51 StasisEnd string 52 StasisStart string 53 TextMessageReceived string 54 } 55 56 // Events is the instance for grabbing event types 57 var Events EventTypes 58 59 func init() { 60 Events.All = "all" 61 Events.ApplicationReplaced = "ApplicationReplaced" 62 Events.BridgeAttendedTransfer = "BridgeAttendedTransfer" 63 Events.BridgeBlindTransfer = "BridgeBlindTransfer" 64 Events.BridgeCreated = "BridgeCreated" 65 Events.BridgeDestroyed = "BridgeDestroyed" 66 Events.BridgeMerged = "BridgeMerged" 67 Events.BridgeVideoSourceChanged = "BridgeVideoSourceChanged" 68 Events.ChannelCallerID = "ChannelCallerId" 69 Events.ChannelConnectedLine = "ChannelConnectedLine" 70 Events.ChannelCreated = "ChannelCreated" 71 Events.ChannelDestroyed = "ChannelDestroyed" 72 Events.ChannelDialplan = "ChannelDialplan" 73 Events.ChannelDtmfReceived = "ChannelDtmfReceived" 74 Events.ChannelEnteredBridge = "ChannelEnteredBridge" 75 Events.ChannelHangupRequest = "ChannelHangupRequest" 76 Events.ChannelHold = "ChannelHold" 77 Events.ChannelLeftBridge = "ChannelLeftBridge" 78 Events.ChannelStateChange = "ChannelStateChange" 79 Events.ChannelTalkingFinished = "ChannelTalkingFinished" 80 Events.ChannelTalkingStarted = "ChannelTalkingStarted" 81 Events.ChannelUnhold = "ChannelUnhold" 82 Events.ChannelUserevent = "ChannelUserevent" 83 Events.ChannelVarset = "ChannelVarset" 84 Events.ContactInfo = "ContactInfo" 85 Events.ContactStatusChange = "ContactStatusChange" 86 Events.DeviceStateChanged = "DeviceStateChanged" 87 Events.Dial = "Dial" 88 Events.EndpointStateChange = "EndpointStateChange" 89 Events.MissingParams = "MissingParams" 90 Events.Peer = "Peer" 91 Events.PeerStatusChange = "PeerStatusChange" 92 Events.PlaybackContinuing = "PlaybackContinuing" 93 Events.PlaybackFinished = "PlaybackFinished" 94 Events.PlaybackStarted = "PlaybackStarted" 95 Events.RecordingFailed = "RecordingFailed" 96 Events.RecordingFinished = "RecordingFinished" 97 Events.RecordingStarted = "RecordingStarted" 98 Events.StasisEnd = "StasisEnd" 99 Events.StasisStart = "StasisStart" 100 Events.TextMessageReceived = "TextMessageReceived" 101 102 } 103 104 // DecodeEvent converts a JSON-encoded event to an ARI event. 105 func DecodeEvent(data []byte) (Event, error) { 106 // Decode the event type 107 var typer Message 108 err := json.Unmarshal(data, &typer) 109 if err != nil { 110 return nil, errors.Wrap(err, "failed to decode type") 111 } 112 if typer.Type == "" { 113 return nil, errors.New("no type found") 114 } 115 116 switch typer.Type { 117 case Events.ApplicationReplaced: 118 var e ApplicationReplaced 119 err = json.Unmarshal(data, &e) 120 return &e, err 121 case Events.BridgeAttendedTransfer: 122 var e BridgeAttendedTransfer 123 err = json.Unmarshal(data, &e) 124 return &e, err 125 case Events.BridgeBlindTransfer: 126 var e BridgeBlindTransfer 127 err = json.Unmarshal(data, &e) 128 return &e, err 129 case Events.BridgeCreated: 130 var e BridgeCreated 131 err = json.Unmarshal(data, &e) 132 return &e, err 133 case Events.BridgeDestroyed: 134 var e BridgeDestroyed 135 err = json.Unmarshal(data, &e) 136 return &e, err 137 case Events.BridgeMerged: 138 var e BridgeMerged 139 err = json.Unmarshal(data, &e) 140 return &e, err 141 case Events.BridgeVideoSourceChanged: 142 var e BridgeVideoSourceChanged 143 err = json.Unmarshal(data, &e) 144 return &e, err 145 case Events.ChannelCallerID: 146 var e ChannelCallerID 147 err = json.Unmarshal(data, &e) 148 return &e, err 149 case Events.ChannelConnectedLine: 150 var e ChannelConnectedLine 151 err = json.Unmarshal(data, &e) 152 return &e, err 153 case Events.ChannelCreated: 154 var e ChannelCreated 155 err = json.Unmarshal(data, &e) 156 return &e, err 157 case Events.ChannelDestroyed: 158 var e ChannelDestroyed 159 err = json.Unmarshal(data, &e) 160 return &e, err 161 case Events.ChannelDialplan: 162 var e ChannelDialplan 163 err = json.Unmarshal(data, &e) 164 return &e, err 165 case Events.ChannelDtmfReceived: 166 var e ChannelDtmfReceived 167 err = json.Unmarshal(data, &e) 168 return &e, err 169 case Events.ChannelEnteredBridge: 170 var e ChannelEnteredBridge 171 err = json.Unmarshal(data, &e) 172 return &e, err 173 case Events.ChannelHangupRequest: 174 var e ChannelHangupRequest 175 err = json.Unmarshal(data, &e) 176 return &e, err 177 case Events.ChannelHold: 178 var e ChannelHold 179 err = json.Unmarshal(data, &e) 180 return &e, err 181 case Events.ChannelLeftBridge: 182 var e ChannelLeftBridge 183 err = json.Unmarshal(data, &e) 184 return &e, err 185 case Events.ChannelStateChange: 186 var e ChannelStateChange 187 err = json.Unmarshal(data, &e) 188 return &e, err 189 case Events.ChannelTalkingFinished: 190 var e ChannelTalkingFinished 191 err = json.Unmarshal(data, &e) 192 return &e, err 193 case Events.ChannelTalkingStarted: 194 var e ChannelTalkingStarted 195 err = json.Unmarshal(data, &e) 196 return &e, err 197 case Events.ChannelUnhold: 198 var e ChannelUnhold 199 err = json.Unmarshal(data, &e) 200 return &e, err 201 case Events.ChannelUserevent: 202 var e ChannelUserevent 203 err = json.Unmarshal(data, &e) 204 return &e, err 205 case Events.ChannelVarset: 206 var e ChannelVarset 207 err = json.Unmarshal(data, &e) 208 return &e, err 209 case Events.ContactInfo: 210 var e ContactInfo 211 err = json.Unmarshal(data, &e) 212 return &e, err 213 case Events.ContactStatusChange: 214 var e ContactStatusChange 215 err = json.Unmarshal(data, &e) 216 return &e, err 217 case Events.DeviceStateChanged: 218 var e DeviceStateChanged 219 err = json.Unmarshal(data, &e) 220 return &e, err 221 case Events.Dial: 222 var e Dial 223 err = json.Unmarshal(data, &e) 224 return &e, err 225 case Events.EndpointStateChange: 226 var e EndpointStateChange 227 err = json.Unmarshal(data, &e) 228 return &e, err 229 case Events.MissingParams: 230 var e MissingParams 231 err = json.Unmarshal(data, &e) 232 return &e, err 233 case Events.Peer: 234 var e Peer 235 err = json.Unmarshal(data, &e) 236 return &e, err 237 case Events.PeerStatusChange: 238 var e PeerStatusChange 239 err = json.Unmarshal(data, &e) 240 return &e, err 241 case Events.PlaybackContinuing: 242 var e PlaybackContinuing 243 err = json.Unmarshal(data, &e) 244 return &e, err 245 case Events.PlaybackFinished: 246 var e PlaybackFinished 247 err = json.Unmarshal(data, &e) 248 return &e, err 249 case Events.PlaybackStarted: 250 var e PlaybackStarted 251 err = json.Unmarshal(data, &e) 252 return &e, err 253 case Events.RecordingFailed: 254 var e RecordingFailed 255 err = json.Unmarshal(data, &e) 256 return &e, err 257 case Events.RecordingFinished: 258 var e RecordingFinished 259 err = json.Unmarshal(data, &e) 260 return &e, err 261 case Events.RecordingStarted: 262 var e RecordingStarted 263 err = json.Unmarshal(data, &e) 264 return &e, err 265 case Events.StasisEnd: 266 var e StasisEnd 267 err = json.Unmarshal(data, &e) 268 return &e, err 269 case Events.StasisStart: 270 var e StasisStart 271 err = json.Unmarshal(data, &e) 272 return &e, err 273 case Events.TextMessageReceived: 274 var e TextMessageReceived 275 err = json.Unmarshal(data, &e) 276 return &e, err 277 278 } 279 return nil, errors.New("unhandled type: " + typer.Type) 280 } 281 282 // ApplicationReplaced - "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." 283 type ApplicationReplaced struct { 284 EventData `json:",inline"` 285 286 // Header describes any transport-related metadata 287 Header Header `json:"-"` 288 } 289 290 // BridgeAttendedTransfer - "Notification that an attended transfer has occurred." 291 type BridgeAttendedTransfer struct { 292 EventData `json:",inline"` 293 294 // Header describes any transport-related metadata 295 Header Header `json:"-"` 296 297 DestinationApplication string `json:"destination_application"` // Application that has been transferred into 298 DestinationBridge string `json:"destination_bridge"` // Bridge that survived the merge result 299 DestinationLinkFirstLeg ChannelData `json:"destination_link_first_leg"` // First leg of a link transfer result 300 DestinationLinkSecondLeg ChannelData `json:"destination_link_second_leg"` // Second leg of a link transfer result 301 DestinationThreewayBridge BridgeData `json:"destination_threeway_bridge"` // Bridge that survived the threeway result 302 DestinationThreewayChannel ChannelData `json:"destination_threeway_channel"` // Transferer channel that survived the threeway result 303 DestinationType string `json:"destination_type"` // How the transfer was accomplished 304 IsExternal bool `json:"is_external"` // Whether the transfer was externally initiated or not 305 ReplaceChannel ChannelData `json:"replace_channel,omitempty"` // The channel that is replacing transferer_first_leg in the swap 306 Result string `json:"result"` // The result of the transfer attempt 307 TransferTarget ChannelData `json:"transfer_target,omitempty"` // The channel that is being transferred to 308 Transferee ChannelData `json:"transferee,omitempty"` // The channel that is being transferred 309 TransfererFirstLeg ChannelData `json:"transferer_first_leg"` // First leg of the transferer 310 TransfererFirstLegBridge BridgeData `json:"transferer_first_leg_bridge"` // Bridge the transferer first leg is in 311 TransfererSecondLeg ChannelData `json:"transferer_second_leg"` // Second leg of the transferer 312 TransfererSecondLegBridge BridgeData `json:"transferer_second_leg_bridge"` // Bridge the transferer second leg is in 313 } 314 315 // BridgeBlindTransfer - "Notification that a blind transfer has occurred." 316 type BridgeBlindTransfer struct { 317 EventData `json:",inline"` 318 319 // Header describes any transport-related metadata 320 Header Header `json:"-"` 321 322 Bridge BridgeData `json:"bridge"` // The bridge being transferred 323 Channel ChannelData `json:"channel"` // The channel performing the blind transfer 324 Context string `json:"context"` // The context transferred to 325 Exten string `json:"exten"` // The extension transferred to 326 IsExternal bool `json:"is_external"` // Whether the transfer was externally initiated or not 327 ReplaceChannel ChannelData `json:"replace_channel,omitempty"` // The channel that is replacing transferer when the transferee(s) can not be transferred directly 328 Result string `json:"result"` // The result of the transfer attempt 329 Transferee ChannelData `json:"transferee,omitempty"` // The channel that is being transferred 330 } 331 332 // BridgeCreated - "Notification that a bridge has been created." 333 type BridgeCreated struct { 334 EventData `json:",inline"` 335 336 // Header describes any transport-related metadata 337 Header Header `json:"-"` 338 339 Bridge BridgeData `json:"bridge"` 340 } 341 342 // BridgeDestroyed - "Notification that a bridge has been destroyed." 343 type BridgeDestroyed struct { 344 EventData `json:",inline"` 345 346 // Header describes any transport-related metadata 347 Header Header `json:"-"` 348 349 Bridge BridgeData `json:"bridge"` 350 } 351 352 // BridgeMerged - "Notification that one bridge has merged into another." 353 type BridgeMerged struct { 354 EventData `json:",inline"` 355 356 // Header describes any transport-related metadata 357 Header Header `json:"-"` 358 359 Bridge BridgeData `json:"bridge"` 360 BridgeFrom BridgeData `json:"bridge_from"` 361 } 362 363 // BridgeVideoSourceChanged - "Notification that the source of video in a bridge has changed." 364 type BridgeVideoSourceChanged struct { 365 EventData `json:",inline"` 366 367 // Header describes any transport-related metadata 368 Header Header `json:"-"` 369 370 Bridge BridgeData `json:"bridge"` 371 OldVideoSourceId string `json:"old_video_source_id,omitempty"` 372 } 373 374 // ChannelCallerID - "Channel changed Caller ID." 375 type ChannelCallerID struct { 376 EventData `json:",inline"` 377 378 // Header describes any transport-related metadata 379 Header Header `json:"-"` 380 381 CallerPresentation int `json:"caller_presentation"` // The integer representation of the Caller Presentation value. 382 CallerPresentationTxt string `json:"caller_presentation_txt"` // The text representation of the Caller Presentation value. 383 Channel ChannelData `json:"channel"` // The channel that changed Caller ID. 384 } 385 386 // ChannelConnectedLine - "Channel changed Connected Line." 387 type ChannelConnectedLine struct { 388 EventData `json:",inline"` 389 390 // Header describes any transport-related metadata 391 Header Header `json:"-"` 392 393 Channel ChannelData `json:"channel"` // The channel whose connected line has changed. 394 } 395 396 // ChannelCreated - "Notification that a channel has been created." 397 type ChannelCreated struct { 398 EventData `json:",inline"` 399 400 // Header describes any transport-related metadata 401 Header Header `json:"-"` 402 403 Channel ChannelData `json:"channel"` 404 } 405 406 // ChannelDestroyed - "Notification that a channel has been destroyed." 407 type ChannelDestroyed struct { 408 EventData `json:",inline"` 409 410 // Header describes any transport-related metadata 411 Header Header `json:"-"` 412 413 Cause int `json:"cause"` // Integer representation of the cause of the hangup 414 CauseTxt string `json:"cause_txt"` // Text representation of the cause of the hangup 415 Channel ChannelData `json:"channel"` 416 } 417 418 // ChannelDialplan - "Channel changed location in the dialplan." 419 type ChannelDialplan struct { 420 EventData `json:",inline"` 421 422 // Header describes any transport-related metadata 423 Header Header `json:"-"` 424 425 Channel ChannelData `json:"channel"` // The channel that changed dialplan location. 426 DialplanApp string `json:"dialplan_app"` // The application about to be executed. 427 DialplanAppData string `json:"dialplan_app_data"` // The data to be passed to the application. 428 } 429 430 // ChannelDtmfReceived - "DTMF received on a channel.This event is sent when the DTMF ends. There is no notification about the start of DTMF" 431 type ChannelDtmfReceived struct { 432 EventData `json:",inline"` 433 434 // Header describes any transport-related metadata 435 Header Header `json:"-"` 436 437 Channel ChannelData `json:"channel"` // The channel on which DTMF was received 438 Digit string `json:"digit"` // DTMF digit received (0-9, A-E, # or *) 439 DurationMs int `json:"duration_ms"` // Number of milliseconds DTMF was received 440 } 441 442 // ChannelEnteredBridge - "Notification that a channel has entered a bridge." 443 type ChannelEnteredBridge struct { 444 EventData `json:",inline"` 445 446 // Header describes any transport-related metadata 447 Header Header `json:"-"` 448 449 Bridge BridgeData `json:"bridge"` 450 Channel ChannelData `json:"channel"` 451 } 452 453 // ChannelHangupRequest - "A hangup was requested on the channel." 454 type ChannelHangupRequest struct { 455 EventData `json:",inline"` 456 457 // Header describes any transport-related metadata 458 Header Header `json:"-"` 459 460 Cause int `json:"cause"` // Integer representation of the cause of the hangup. 461 Channel ChannelData `json:"channel"` // The channel on which the hangup was requested. 462 Soft bool `json:"soft"` // Whether the hangup request was a soft hangup request. 463 } 464 465 // ChannelHold - "A channel initiated a media hold." 466 type ChannelHold struct { 467 EventData `json:",inline"` 468 469 // Header describes any transport-related metadata 470 Header Header `json:"-"` 471 472 Channel ChannelData `json:"channel"` // The channel that initiated the hold event. 473 Musicclass string `json:"musicclass,omitempty"` // The music on hold class that the initiator requested. 474 } 475 476 // ChannelLeftBridge - "Notification that a channel has left a bridge." 477 type ChannelLeftBridge struct { 478 EventData `json:",inline"` 479 480 // Header describes any transport-related metadata 481 Header Header `json:"-"` 482 483 Bridge BridgeData `json:"bridge"` 484 Channel ChannelData `json:"channel"` 485 } 486 487 // ChannelStateChange - "Notification of a channel's state change." 488 type ChannelStateChange struct { 489 EventData `json:",inline"` 490 491 // Header describes any transport-related metadata 492 Header Header `json:"-"` 493 494 Channel ChannelData `json:"channel"` 495 } 496 497 // ChannelTalkingFinished - "Talking is no longer detected on the channel." 498 type ChannelTalkingFinished struct { 499 EventData `json:",inline"` 500 501 // Header describes any transport-related metadata 502 Header Header `json:"-"` 503 504 Channel ChannelData `json:"channel"` // The channel on which talking completed. 505 Duration int `json:"duration"` // The length of time, in milliseconds, that talking was detected on the channel 506 } 507 508 // ChannelTalkingStarted - "Talking was detected on the channel." 509 type ChannelTalkingStarted struct { 510 EventData `json:",inline"` 511 512 // Header describes any transport-related metadata 513 Header Header `json:"-"` 514 515 Channel ChannelData `json:"channel"` // The channel on which talking started. 516 } 517 518 // ChannelUnhold - "A channel initiated a media unhold." 519 type ChannelUnhold struct { 520 EventData `json:",inline"` 521 522 // Header describes any transport-related metadata 523 Header Header `json:"-"` 524 525 Channel ChannelData `json:"channel"` // The channel that initiated the unhold event. 526 } 527 528 // ChannelUserevent - "User-generated event with additional user-defined fields in the object." 529 type ChannelUserevent struct { 530 EventData `json:",inline"` 531 532 // Header describes any transport-related metadata 533 Header Header `json:"-"` 534 535 Bridge BridgeData `json:"bridge,omitempty"` // A bridge that is signaled with the user event. 536 Channel ChannelData `json:"channel,omitempty"` // A channel that is signaled with the user event. 537 Endpoint EndpointData `json:"endpoint,omitempty"` // A endpoint that is signaled with the user event. 538 Eventname string `json:"eventname"` // The name of the user event. 539 Userevent interface{} `json:"userevent"` // Custom Userevent data 540 } 541 542 // ChannelVarset - "Channel variable changed." 543 type ChannelVarset struct { 544 EventData `json:",inline"` 545 546 // Header describes any transport-related metadata 547 Header Header `json:"-"` 548 549 Channel ChannelData `json:"channel,omitempty"` // The channel on which the variable was set.If missing, the variable is a global variable. 550 Value string `json:"value"` // The new value of the variable. 551 Variable string `json:"variable"` // The variable that changed. 552 } 553 554 // ContactInfo - "Detailed information about a contact on an endpoint." 555 type ContactInfo struct { 556 EventData `json:",inline"` 557 558 // Header describes any transport-related metadata 559 Header Header `json:"-"` 560 561 Aor string `json:"aor"` // The Address of Record this contact belongs to. 562 ContactStatus string `json:"contact_status"` // The current status of the contact. 563 RoundtripUsec string `json:"roundtrip_usec,omitempty"` // Current round trip time, in microseconds, for the contact. 564 Uri string `json:"uri"` // The location of the contact. 565 } 566 567 // ContactStatusChange - "The state of a contact on an endpoint has changed." 568 type ContactStatusChange struct { 569 EventData `json:",inline"` 570 571 // Header describes any transport-related metadata 572 Header Header `json:"-"` 573 574 ContactInfo ContactInfo `json:"contact_info"` 575 Endpoint EndpointData `json:"endpoint"` 576 } 577 578 // DeviceStateChanged - "Notification that a device state has changed." 579 type DeviceStateChanged struct { 580 EventData `json:",inline"` 581 582 // Header describes any transport-related metadata 583 Header Header `json:"-"` 584 585 DeviceState DeviceStateData `json:"device_state"` // Device state object 586 } 587 588 // Dial - "Dialing state has changed." 589 type Dial struct { 590 EventData `json:",inline"` 591 592 // Header describes any transport-related metadata 593 Header Header `json:"-"` 594 595 Caller ChannelData `json:"caller,omitempty"` // The calling channel. 596 Dialstatus string `json:"dialstatus"` // Current status of the dialing attempt to the peer. 597 Dialstring string `json:"dialstring,omitempty"` // The dial string for calling the peer channel. 598 Forward string `json:"forward,omitempty"` // Forwarding target requested by the original dialed channel. 599 Forwarded ChannelData `json:"forwarded,omitempty"` // Channel that the caller has been forwarded to. 600 Peer ChannelData `json:"peer"` // The dialed channel. 601 } 602 603 // EndpointStateChange - "Endpoint state changed." 604 type EndpointStateChange struct { 605 EventData `json:",inline"` 606 607 // Header describes any transport-related metadata 608 Header Header `json:"-"` 609 610 Endpoint EndpointData `json:"endpoint"` 611 } 612 613 // MissingParams - "Error event sent when required params are missing." 614 type MissingParams struct { 615 EventData `json:",inline"` 616 617 // Header describes any transport-related metadata 618 Header Header `json:"-"` 619 620 Params []string `json:"params"` // A list of the missing parameters 621 } 622 623 // Peer - "Detailed information about a remote peer that communicates with Asterisk." 624 type Peer struct { 625 EventData `json:",inline"` 626 627 // Header describes any transport-related metadata 628 Header Header `json:"-"` 629 630 Address string `json:"address,omitempty"` // The IP address of the peer. 631 Cause string `json:"cause,omitempty"` // An optional reason associated with the change in peer_status. 632 PeerStatus string `json:"peer_status"` // The current state of the peer. Note that the values of the status are dependent on the underlying peer technology. 633 Port string `json:"port,omitempty"` // The port of the peer. 634 Time string `json:"time,omitempty"` // The last known time the peer was contacted. 635 } 636 637 // PeerStatusChange - "The state of a peer associated with an endpoint has changed." 638 type PeerStatusChange struct { 639 EventData `json:",inline"` 640 641 // Header describes any transport-related metadata 642 Header Header `json:"-"` 643 644 Endpoint EndpointData `json:"endpoint"` 645 Peer Peer `json:"peer"` 646 } 647 648 // PlaybackContinuing - "Event showing the continuation of a media playback operation from one media URI to the next in the list." 649 type PlaybackContinuing struct { 650 EventData `json:",inline"` 651 652 // Header describes any transport-related metadata 653 Header Header `json:"-"` 654 655 Playback PlaybackData `json:"playback"` // Playback control object 656 } 657 658 // PlaybackFinished - "Event showing the completion of a media playback operation." 659 type PlaybackFinished struct { 660 EventData `json:",inline"` 661 662 // Header describes any transport-related metadata 663 Header Header `json:"-"` 664 665 Playback PlaybackData `json:"playback"` // Playback control object 666 } 667 668 // PlaybackStarted - "Event showing the start of a media playback operation." 669 type PlaybackStarted struct { 670 EventData `json:",inline"` 671 672 // Header describes any transport-related metadata 673 Header Header `json:"-"` 674 675 Playback PlaybackData `json:"playback"` // Playback control object 676 } 677 678 // RecordingFailed - "Event showing failure of a recording operation." 679 type RecordingFailed struct { 680 EventData `json:",inline"` 681 682 // Header describes any transport-related metadata 683 Header Header `json:"-"` 684 685 Recording LiveRecordingData `json:"recording"` // Recording control object 686 } 687 688 // RecordingFinished - "Event showing the completion of a recording operation." 689 type RecordingFinished struct { 690 EventData `json:",inline"` 691 692 // Header describes any transport-related metadata 693 Header Header `json:"-"` 694 695 Recording LiveRecordingData `json:"recording"` // Recording control object 696 } 697 698 // RecordingStarted - "Event showing the start of a recording operation." 699 type RecordingStarted struct { 700 EventData `json:",inline"` 701 702 // Header describes any transport-related metadata 703 Header Header `json:"-"` 704 705 Recording LiveRecordingData `json:"recording"` // Recording control object 706 } 707 708 // StasisEnd - "Notification that a channel has left a Stasis application." 709 type StasisEnd struct { 710 EventData `json:",inline"` 711 712 // Header describes any transport-related metadata 713 Header Header `json:"-"` 714 715 Channel ChannelData `json:"channel"` 716 } 717 718 // StasisStart - "Notification that a channel has entered a Stasis application." 719 type StasisStart struct { 720 EventData `json:",inline"` 721 722 // Header describes any transport-related metadata 723 Header Header `json:"-"` 724 725 Args []string `json:"args"` // Arguments to the application 726 Channel ChannelData `json:"channel"` 727 ReplaceChannel ChannelData `json:"replace_channel,omitempty"` 728 } 729 730 // TextMessageReceived - "A text message was received from an endpoint." 731 type TextMessageReceived struct { 732 EventData `json:",inline"` 733 734 // Header describes any transport-related metadata 735 Header Header `json:"-"` 736 737 Endpoint EndpointData `json:"endpoint,omitempty"` 738 Message TextMessageData `json:"message"` 739 }