Integration Checklist

Step-by-step checklist for connecting a product to Blendlix Call Service.

Integration Checklist

Backend checklist

  • Product credentials are issued by Blendlix.
  • Product secret is stored only in backend environment variables.
  • Client apps never receive X-BCS-Product-Secret.
  • Backend validates caller login.
  • Backend validates caller is allowed to call this callee.
  • Backend validates context access before issuing a token.
  • Backend calls POST /v1/call/session-token.
  • Backend returns only the token response needed by the client.
  • Backend has graceful fallback if Blendlix Call Service is unavailable.

Client checklist

  • Client requests a token from the application backend, not directly from Blendlix Call Service.
  • WebSocket uses new WebSocket(wsUrl, ["jwt", token]) on browsers.
  • Client listens for auth.ok before assuming the socket is ready.
  • Client handles call.ringing, call.accepted, call.rejected, call.canceled, call.missed, and call.ended.
  • Client sends and receives webrtc.offer, webrtc.answer, and webrtc.ice_candidate.
  • Client stops microphone tracks when a call ends.
  • Client closes RTCPeerConnection when a call ends.
  • Client shows a clear error and fallback when microphone permission is denied.

Security checklist

  • Tokens are short-lived.
  • Product secrets are rotated if exposed.
  • Role names are controlled by the application backend.
  • allowed_peer_role is set narrowly for each call use case.
  • Logs do not print product secrets or full JWT values.
  • Calls are tied to an application context.

Network readiness checklist

  • TURN/STUN is reachable from real mobile networks.
  • WebSocket connection works over TLS.
  • readyz returns OK.
  • Production product credentials are enabled.
  • Staging and production credentials are separate.

Manual test checklist

  1. caller can call allowed peer
  2. caller cannot call a role not in allowed_peer_role
  3. wrong user cannot request token from product backend
  4. expired token cannot connect
  5. one user cannot maintain two active calls
  6. reject clears call UI
  7. cancel clears call UI
  8. missed call clears call UI
  9. end call stops microphone
  10. network drop shows reconnect or fallback