VoiceCallService
Chatto exposes this service below /api/connect.
Shared message and enum definitions are documented in Shared Types And Enums.
VoiceCallService
Section titled “VoiceCallService”Voice-call request/response APIs backed by Chatto call-state projections.
ListActiveCalls
Section titled “ListActiveCalls”Lists member channel rooms that currently have active calls as a finite runtime snapshot. Rooms the caller is not a member of are omitted.
Returns an empty list when LiveKit is not configured.
POST /api/connect/chatto.api.v1.VoiceCallService/ListActiveCallsInput: ListActiveCallsRequest
Section titled “Input: ListActiveCallsRequest”Request for active channel call snapshots.
Result: ListActiveCallsResponse
Section titled “Result: ListActiveCallsResponse”Finite runtime snapshot of active channel calls.
| Field | Type | Description |
|---|---|---|
calls | repeated ActiveCall | Active calls in room order returned by the call-state projection. |
GetActiveCall
Section titled “GetActiveCall”Gets the current active call snapshot for one room.
The caller must be a member of the room. Returns NOT_FOUND when the room does not exist, currently has no active call, or voice calls are not configured. The returned call_id lets clients ignore stale realtime call events from previous calls in the same room.
POST /api/connect/chatto.api.v1.VoiceCallService/GetActiveCallInput: GetActiveCallRequest
Section titled “Input: GetActiveCallRequest”Request for one room’s active call snapshot.
| Field | Type | Description |
|---|---|---|
room_id | string | Required. Room whose active call should be inspected. |
Result: GetActiveCallResponse
Section titled “Result: GetActiveCallResponse”Response for one room’s active call snapshot.
| Field | Type | Description |
|---|---|---|
call | ActiveCall | Current active call. |
BatchGetActiveCalls
Section titled “BatchGetActiveCalls”Gets current active call snapshots for many rooms.
Rooms that do not exist, are inaccessible, or currently have no active call are omitted. Results preserve first-seen request order and repeated room IDs are de-duplicated. Returns an empty list when LiveKit is not configured.
POST /api/connect/chatto.api.v1.VoiceCallService/BatchGetActiveCallsInput: BatchGetActiveCallsRequest
Section titled “Input: BatchGetActiveCallsRequest”Request active call snapshots for many rooms.
| Field | Type | Description |
|---|---|---|
room_ids | repeated string | Required room IDs. Unknown, inaccessible, and inactive rooms are omitted. |
Result: BatchGetActiveCallsResponse
Section titled “Result: BatchGetActiveCallsResponse”Active call batch response.
| Field | Type | Description |
|---|---|---|
calls | repeated ActiveCall | Active calls in first-seen request order. |
ListCallParticipants
Section titled “ListCallParticipants”Lists participants currently observed in a room’s active call as a finite runtime snapshot.
The caller must be a member of the room. Returns NOT_FOUND when the room does not exist and PERMISSION_DENIED when the caller is not a room member.
POST /api/connect/chatto.api.v1.VoiceCallService/ListCallParticipantsInput: ListCallParticipantsRequest
Section titled “Input: ListCallParticipantsRequest”Request for participants in a room call.
| Field | Type | Description |
|---|---|---|
room_id | string | Required. Room whose active call should be inspected. |
Result: ListCallParticipantsResponse
Section titled “Result: ListCallParticipantsResponse”Finite runtime snapshot of participants in one room call.
| Field | Type | Description |
|---|---|---|
participants | repeated CallParticipant | Participants currently projected for the room call. |
JoinCall
Section titled “JoinCall”Records the caller’s intent to join a room call.
Returns joined=false when LiveKit is not configured.
POST /api/connect/chatto.api.v1.VoiceCallService/JoinCallInput: JoinCallRequest
Section titled “Input: JoinCallRequest”Request to record joining a room call.
| Field | Type | Description |
|---|---|---|
room_id | string | Required. Room whose call is being joined. |
Result: JoinCallResponse
Section titled “Result: JoinCallResponse”Response from recording a join intent.
| Field | Type | Description |
|---|---|---|
joined | bool | True when a join fact was recorded. |
GetCallToken
Section titled “GetCallToken”Issues a LiveKit token for joining the room’s active call.
The caller must be a member of the room and a call must already be active. Returns NOT_FOUND when the room does not exist, PERMISSION_DENIED when the caller is not a room member, and FAILED_PRECONDITION when no call is active or voice and video calls are not configured.
POST /api/connect/chatto.api.v1.VoiceCallService/GetCallTokenInput: GetCallTokenRequest
Section titled “Input: GetCallTokenRequest”Request for a LiveKit token for a room call.
| Field | Type | Description |
|---|---|---|
room_id | string | Required. Room whose active call should be joined. |
Result: GetCallTokenResponse
Section titled “Result: GetCallTokenResponse”LiveKit token details for joining a room call.
| Field | Type | Description |
|---|---|---|
token | string | LiveKit JWT token. |
e2ee_key | string | Shared E2EE key for this active call. |
call_id | string | Active call session ID. |
LeaveCall
Section titled “LeaveCall”Records the caller’s intent to leave a room call.
Returns left=false when LiveKit is not configured.
POST /api/connect/chatto.api.v1.VoiceCallService/LeaveCallInput: LeaveCallRequest
Section titled “Input: LeaveCallRequest”Request to record leaving a room call.
| Field | Type | Description |
|---|---|---|
room_id | string | Required. Room whose call is being left. |
Result: LeaveCallResponse
Section titled “Result: LeaveCallResponse”Response from recording a leave intent.
| Field | Type | Description |
|---|---|---|
left | bool | True when a leave fact was recorded. |