speakers

Start audio playback

Play a given audio message or return a WebRTC signaling URL if no message ID is given.

Live audio playback using WebRTC

Every WebRTC signaling session for live audio playback starts by sending an SDP offer from the client to the corresponding Angelcam server followed by one or more local ICE candidates. The server then responds with an SDP answer followed by one or more of its local ICE candidates. The candidate exchange should conclude by sending a null candidate by each side to the other peer to signal that there are no more local ICE candidates. There is no lock-step mechanism for sending the ICE candidates. All available local candidates should be sent to the other peer immediately after sending the SDP offer/answer.

STUN/TURN servers

No external STUN or TURN servers are required as all Angelcam servers have a public IP address and, therefore, the host ICE candidates on the server side are always reachable. The client's server-reflexive candidates, if needed, are then discovered once the client contacts the server via the server's host candidates.

post/speakers/{speaker_id}/play/

Request

  • Base URL
    https://api.angelcam.com/v1
  • Auth
    • OAuth 2
      Authorization codehttps://my.angelcam.com/oauth/authorize/, token URL https://my.angelcam.com/oauth/token/
      PasswordToken URL https://api.angelcam.com/oauth/token/
      Scopesaudio_messages_play
    • or API key in header Authorization
  • TypeScript
    A function with typed inputs. Its response is checked against the schema.

Request body

messageinteger nullable

audio message ID

repeatboolean

repeat the audio message

stop_afterinteger nullable

Duration in seconds after which the playback will automatically stop. This is required when repeat is true to prevent infinite playback.

Response

WebRTC signaling URL.

webrtc_signaling_urlstring url required

WebRTC signaling URL

Example response

{
  "webrtc_signaling_url": "wss://m1-eu1.angelcam.com/speakers/123/web-rtc/"
}

Changes

No recorded changes to this operation across all 1 revision of this API.