AR Live 서비스 API
HOST: https://api.maxverse.io/media
ENUM type field
field | description |
---|---|
room_status | RESERVED , MEETING , IDLE , ENDED 로 room 의 예약, 진행, 휴지, 종료에 대한 상태를 나타내주는 필드입니다. 방에 접속자가 처음 접속하면 MEETING 상태로 변경되고, 방에서 모든 참가자가 방을 나가면 IDLE , 방을 종료하면 ENDED 상태로 변경됩니다. Room Status에 대한 자세한 사항은 이해하기-RoomStatus 에서 확인할 수 있습니다. |
layout | SPEAKER , SINGLE_SPEAKER , GRID 로 각각 녹화의 레이아웃을 나타냅니다. |
Room 생성
POST /v1/rooms
--H Authorization : "Bearer ${Application_token}"
is_token_receive
를 true로 설정하여 요청하면, 방 생성 후 바로 방에 입장하여 미팅을 진행할 수 있도록access token
발급받을 수 있습니다.- 저희 서비스에서는 호스트를 제공합니다. 호스트는 방생성자 혹은 방에 처음 입장한 사람을 호스트로 선정할 수 있습니다. 각각 방생성 요청시
host_selection_type
을CREATOR
,FIRST_ENTER_USER
로 설정합니다. - 호스트가 방을 나갈 때 위임을 하지 않은 경우, 호스트를 다른 사람에게 위임할지 안할지 여부를 선택할 수 있습니다. 위임하지 않은 경우에는, 호스트가 없는 상태로 즉 호스트가 가지는 특수한 기능없이 미팅이 계속 진행됩니다. 호스트를 위임하게 되는 경우에는 참가자중 방에 가장 빨리 입장한 사람이 자동으로 호스트를 위임받게 됩니다.
is_elect_host
를 true로 설정하면 호스트가 방을 나갈 시 호스트 자동 위임이 실행됩니다. - 방은 생성이 되고 실제로 오픈이 되어야만 참가자들이 입장할 수 있도록
is_joinable
을 제공합니다.is_joinable
은 호스트나 방 생성자가 방 생성 이후 설정할 수 있는 값입니다. 입장 대기를 걸고 싶은 방은 false 로 설정했다가 입장을 허용하고자 하는 시간에 true로 변경하여 구현할 수 있습니다. - <주의!> 콘솔의 AR Live 의 방생성 설정 옵션을 설정해 두었다면 기존 요청해둔 값이 있음에도 콘솔의 설정값으로 적용됩니다.
Request
{
"name": "임시회의",
"is_public": true,
"host_selection_type": "CREATOR",
"is_elect_host": true,
"is_joinable": true,
"created_by": "dkvmw123-fj19jspz-fjdlank",
"is_token_receive": true,
"attendees": ["dkvmw123-fj19jspz-fjdlank", "vmw1fs23-tdxjspfz-5ddlanf"], //optional
"max_attendee_count": 30, //optional
"reserved_start_time": "2022-10-04T10:10:16.765Z", //optional
"reserved_end_time": "2022-10-04T10:50:16.765Z", //optional
"description": "conference description" //optinal
}
is_public
이true
인 경우에는, 누구나 회의에 참석할 수 있습니다. 그렇기 때문에attendees
필드에 값이 비어있어도 됩니다. 단host_selection_type
이CERATOR
인 경우에는, 방생성자도 호스트로써 방에 참가하는 유저이기 때문에, public이true
라도created_by
를attendees
필드에 넣어서 요청해야합니다.false
인 경우에는 비공개방을 의미하고,attendee
로 등록된 유저만 참가할 수 있습니다. 따라서 비공개인 경우에는 방에 접속하기 위한 토큰을 발급요청할 때 요청이 거부됩니다.reserved_
prefix 가 붙은 시간은 예약시간 관련 필드입니다. 회의가 시작되는 시간, 종료되는 시간을 기입하여 회의를 관리할 수 있습니다. 옵셔널 하며 빈값으로 요청한 경우 현재시간으로reserved_start_time
이 적용됩니다.attendees
는 참여자들을 예약하는 필드입니다. 단is_public
이false
인 경우에는 방에attendee
로 등록된 유저만 참가할 수 있습니다. 참가자를 추가하고 싶은 경우에는 attendee 추가 요청 을 할 수 있습니다.created_by
는 회의를 생성한 유저의 id 입니다.is_public
값이false
이거나host_selection_type
이CERATOR
인 경우에는, 무조건적으로 host 로 attendees 로 들어가야 합니다.created_by
와attendees
는 해당 api 가 사용되는 서비스의 id 시스템의 값이 들어가야됩니다.- 생성방 입장가능 , 방장선정 방식 , 방장퇴장시 자동위임 여부 는 콘솔의 AR Live 설정에서 설정시 해당 옵션으로 사용됩니다.
is_token_receive
가 false 일 경우 ResponseBody
{
"status": "SUCCESS",
"data": {
"room_id": "b3ab24od_dfa1df-fdfadgadf-clqa"
}
}
is_token_receive
가 true 일 경우 ResponseBody
{
"status": "SUCCESS",
"data": {
"room_id": "b3ab24od_dfa1df-fdfadgadf-clqa",
"token": "aciejjiodtdafdfadf2141k22sdafsjcngadf2o3pzxj1259dxhek"
}
}
is_token_receive
가 true인 경우에는 API 요청자가 바로 room 에 접속할 수 있도록 token 값을 발급받아서 전달해 줍니다.is_token_receive
가 false인 경우에는 방에 접속하기 위해서는 별도로 Room 참여 엑세스 토큰 요청 요청으로 token 을 얻어야 합니다.
Room 전체 목록 조회
- 방에 대한 정보 및 참가자들에 대한 정보를 반환합니다
GET /v1/rooms
--H Authorization : "Bearer ${Application_token}"
- 현재 만들어진 application 기준으로 생성된 방의 값들을 가져옵니다.
ResponseBody
{
"status": "SUCCESS",
"data": {
"room_id": "b3ab24od_dfa1df-fdfadgadf-clqa",
"name": "임시 회의",
"reserved_start_time": "2022-10-04T10:10:16.765Z",
"reserved_end_time": "2022-10-04T10:50:16.765Z",
"meeting_status": "RESERVED",
"max_attendee_count": 30,
"is_public": true,
"created_by": "fabfejiod_dfadf-fdfadgadf-clqa",
"description": "임시회의 설명",
"is_joinable": true,
"is_elect_host": true,
"host_selection_type": "FIRST_ENTER_USER"
}
}
- room_status 에 해당하는값은
RESERVED
|MEETING
|IDLE
|ENDED
로 각각 회의 예약, 진행, 휴지, 종료 순입니다. (자세한 내용은 이해하기-방 상태 에서 확인할 수 있습니다.)
Room 상세 조회
GET /v1/rooms/{room_Id}
--H Authorization : "Bearer ${Application_token}"
room 상세조회에서는 room 에 대한 정보가 제공됩니다. Room 을 create 할 때 사용한 정보외에도 attendee_count
를 통해서 실제 방에 접속중인 유저 present_count
와 예약 혹은 초대받은 이력이 있는 유저의 수 인 reserved_count
값을 받을 수 있습니다.
attendees
에서는 user id 및 유저가 host 여부인지 is_host
, 예약된 이력이 있는지 is_reserved
, 현재 방에 참석중인지 is_present
, 초대받은 유저인지 is_invited
를 통해서 정보를 확인 하실 수 있습니다.
Response Body
{
"status": "SUCCESS",
"data": {
"room_id": "b3ab24od_dfa1df-fdfadgadf-clqa",
"name": "임시 회의",
"reserved_start_time": "2022-10-04T10:10:16.765Z",
"reserved_end_time": "2022-10-04T10:50:16.765Z",
"meeting_status": "RESERVED",
"max_attendee_count": 30,
"is_public": true,
"created_by": "fabfejiod_dfadf-fdfadgadf-clqa",
"description": "임시회의 설명",
"is_joinable": true,
"is_elect_host": true,
"host_selection_type": "FIRST_ENTER_USER",
"attendees": [
{
"user_id": "fabfejiod_dfadf-fdfadgadf-clqa",
"is_host": false,
"is_present": false,
"is_reserved": true,
"is_invited": false
},
{
"user_id": "fjeicnd_yenhksdc3-sdjfe-7jsldkfj",
"is_host": false,
"is_present": false,
"is_reserved": true,
"is_invited": false
}
],
"attendee_count": {
"present_count": 0,
"reserved_count": 2,
"invited_count": 0
}
}
}
room_status
가RESERVED
인 경우에는start_time
,end_time
이 없습니다.attendees
에는 방생성, 참가자 추가를 통해 room 이 가지고 있는 attendees를 반환합니다. 방의 호스트, 방생성시 예약된 참가자, 참가자 추가를 통해 추가된 참가자, 현재 미팅중인 방의 경우 미팅 참가중인 참가자 정보를 알 수 있습니다.- is_host: 호스트이면 true
- is_present: 미팅중인 방인 경우 미팅 참가중이면 true
- is_reserved: 방생성 요청에서 예약된 참가자이면 true
- is_invited: 참가자 추가 요청으로 추가된 참가자이면 true
Room 정보 수정
PATCH /media/v1/rooms/{roomId}
--H Authorization : "Bearer ${Application_token}"
Name | Description | Remark | Required |
---|---|---|---|
name | 이름 | string | x |
max_attendee_count | Room에 참석할 수 있는 최대 인원 수 | number | x |
is_public | Room의 공개여부 | boolean | x |
reserved_start_time | Room의 예약 시작시간 | Date | x |
reserved_end_time | Room의 예약 종료시간 | Date | x |
description | Room에 대한 부연설명 | string | x |
requester_id | Room 변경에 대한 요청을 한 유저의 id( API 사용 서비스의 시스템 ID ) 로 host 가 아닐 시 error 발생 | string | O |
is_joinable | Room에 참여 가능 여부(true가 되어야지만 참여자가 방에 참석할 수 있습니다) | boolean | x |
RequestBody
{
"name": "changed room name", //optional
"description": "changed room description", //optional
"reserved_start_time": "2022-10-04T10:10:16.765Z", //optional
"reserved_end_time": "2022-10-04T10:50:16.765Z", //optional
"max_attendee_count": 12, //optional
"is_public": false, //optional
"user_id": "fabfejiod_dfadf-fdfadgadf-clqa",
"is_joinable": false // optional
}
room_status
값이RESERVED
인 room 에 한해서 optional field 전체를 바꿀 수 있습니다.room_status
값이MEETING
이나IDLE
인 상태의 방에서는reserved_*_time
,is_joinable
field 에 해당하는 값을 변경할 수 없습니다.room_status
값이ENDED
인 방의 경우에는 모든 필드에 대해서 업데이트가 불가능합니다.max_attendee_count
값은 현재 방의attendees
수보다 적을 수 없습니다.- room 에 대한 update 는 해당하는 유저가
HOST
인 경우에만 사용 될 수 있습니다.
ResponseBody
{
"status": "SUCCESS"
}
Room 참여자 전체 조회
유저에 대한 호스트여부, 예약여부, 참석여부, 초대여부 에대한 리스트값을 제공합니다.
GET /v1/rooms/{roomId}/attendees
--H Authorization : "Bearer ${Application_token}"
ResponseBody
{
"status": "SUCCESS",
"data": [
{
"user_id": "u4ekjfda-1x4jvfj-f1kf2dap4",
"is_host": true,
"is_reserved": true,
"is_present": true,
"is_invited": false
},
{
"user_id": "u4ekjfda-1x4jvfj-f1kf2dap4",
"is_host": false,
"is_reserved": false,
"is_present": true,
"is_invited": true
}
]
}
Room 참여자 추가, 초대
POST /v1/rooms/{roomId}/attendees
--H Authorization : "Bearer ${Application_token}"
RequestBody
{
"attendees": ["aciejjiod_dfadf-fsjcngadf-xhek"]
}
- 참여자를 두명 이상 추가 할 수 있습니다.
- 사용자가 기존 room 참석자 리스트에 없는경우 별도로 알림 전송을 받습니다.
is_public
이false
인 방인 경우에는 사용자는 엑세스토큰 요청 을 했을 때 해당 Room 에attendee
가 아닌 경우, 에러응답을 받습니다.- 해당 방의 attendees 는 Room 참여자 전체 조회 에서 확인할 수 있습니다.
- 참가자 추가 및 초대 요청은 요청자의 host 여부와 상관없이 초대 할 수 있습니다.
ResponseBody
{
"status": "SUCCESS"
}
Room 참여 액세스 토큰 요청
POST /v1/rooms/{roomId}/attendees/{userId}/token
--H Authorization : "Bearer ${Application_token}"
RequestBody
Name | Description | Remark | Required |
---|---|---|---|
user_name | 참석자이름(해당 방의 참석자 정보의 내부필드인 name) | string | x |
- 방에 참석하기 위한 토큰을 발급받는 요청입니다. 반환된 ResponseBody의 data 에 담긴 토큰으로 해당 방에 웹소켓 접속을 할 수 있습니다.
- RequestBody의
user_name
을 설정하면 웹소켓에서 방의participant
에 대한 name이 설정됩니다. - Room의 속성 중
is_public
이false
인 Room 은attendee
에 속한 유저들만 엑세스 토큰 요청에 대해 성공적으로 토큰을 반환받을 수 있습니다. - 반환받은 토큰을 이용하여 Room에 웹소켓으로 방에 연결을 합니다.
{
"user_name": "홍길동"
}
ResponseBody
{
"status": "SUCCESS",
"data": {
"token": "fabfejiod_dfadf-fdfadgadf-clqa"
}
}
Room 참여자 추방
POST /v1/rooms/{roomId}/block
--H Authorization : "Bearer ${Application_token}"
RequestBody
Name | Description | Remark | Required |
---|---|---|---|
requester_id | block 을 하려 request 요청을 보낸 사용자의 id로 host 가 아닐 시 error 발생 | string | O |
attendees | 추방하려는 유저들의 id 리스트 | string[] | O |
{
"requester_id": "fabfejiod_dfadf-fdfadgadf-clqa",
"attendees": ["aciejjiod_dfadf-fsjcngadf-xhek"]
}
ResponseBody
{
"status": "SUCCESS"
}
- 해당 요청은 방생성자(
created_by
)와 호스트만이 할 수 있습니다. - 미팅인 방(room_status =
MEETING
)에서만 유효한 요청입니다. - 호스트는 추방될 수 없습니다.
- 현재 미팅에 참석중(is_present = true) 인 참가자만이 추방될 수 있습니다.
- 추방되는 참가자는 강제로 미팅중인 방에서 강퇴됩니다.
- 추방된 참가자는 더 이상 추방된 방에서 회의를 참여할 수 없습니다. 즉 토큰발급과 방 입장이 불가능합니다.
blocked 유저들 (강퇴) 블록해제
POST /v1/rooms/{roomId}/restore
--H Authorization : "Bearer ${Application_token}"
RequestBody
Name | Description | Remark | Required |
---|---|---|---|
requester_id | block 해제를 하려 request 요청을 보낸 사용자의 id로 host 가 아닐 시 error 발생 | string | O |
attendees | block 된 유저들의 id 리스트 | string[] | O |
{
"requester_id": "fabfejiod_dfadf-fdfadgadf-clqa",
"attendees": ["aciejjiod_dfadf-fsjcngadf-xhek"]
}
ResponseBody
{
"status": "SUCCESS"
}
- 해당 요청은 호스트만이 할 수 있습니다.
- 미팅 혹은 휴지상태인 방(room_status =
MEETING
|IDLE
)에서만 유효한 요청입니다. - 요청된 attendees 들은 모두
block
된 유저여야 합니다. - block 이 해제된 유저들은 다시 토큰재발급을 받을 수 있습니다.
Room 삭제
DELETE /v1/rooms/{roomId}
--H Authorization : "Bearer ${Application_token}"
RequestBody
Name | Description | Remark | Required |
---|---|---|---|
requester_id | room을 삭제 하려 request 요청을 보낸 사용자의 id로 host 가 아닐 시 error 발생 | string | O |
{
"requester_id": "fabfejiod_dfadf-fdfadgadf-clqa"
}
ResponseBody
{
"status": "SUCCESS"
}
- 방 삭제는
room_status
값이RESERVED
혹은ENDED
인 경우에만 삭제가 가능합니다. - 방 삭제는
requester_id
에 해당하는 유저가host
인 경우에만 삭제가 가능합니다.
Room 종료
POST /v1/rooms/{roomId}/end
--H Authorization : "Bearer ${Application_token}"
RequestBody
Name | Description | Remark | Required |
---|---|---|---|
requester_id | room을 종료 하려 request 요청을 보낸 사용자의 id로 host 가 아닐 시 error 발생 | string | O |
{
"requester_id": "fabfejiod_dfadf-fdfadgadf-clqa"
}
- 방 종료는 requester_id 에 해당하는 유저가
host
인 경우에만 종료가 가능합니다. - 방 종료는 방상태가
MEETING
중인 경우에만 가능합니다.
ResponseBody
{
"status": "SUCCESS"
}
Room 프레젠터 업데이트
POST /v1/rooms/{roomId}/update-presenter
--H Authorization : "Bearer ${Application_token}"
RequestBody
Name | Description | Remark | Required |
---|---|---|---|
requester_id | room의 presenter를 업데이트하려 request 요청을 보낸 사용자의 id로 host 가 아닐 시 error 발생 | string | O |
user_id | room의 presenter 가 될 유저의 id | string | O |
{
"requester_id": "4fiof-fjdkai-fdfadgadf-clqa",
"user_id": "fabfejiod_dfadf-fdfadgadf-clqa"
}
- sdk 를 이용하여 미팅상태의 회의나 전화에서 대표로 띄우는 화면이 필요한 경우 사용될 수 있습니다. 해당 API 는 metadata 를 사용하여 room에 바로 업데이트 할 수 있도록 구성되었습니다
- 대표자를 바꿔야 하는 경우 해당 API 를 사용하면,
RoomMetadataChanged
이벤트가 발생하여 손쉽게 대표자 데이터가 변경됨을 알 수 있습니다. - Room의 메타데이터는 다음 형식으로 세팅됩니다.
JSON.stringfy({presenter:{userId}})
ResponseBody
{
"status": "SUCCESS"
}
Host 위임
POST /v1/rooms/{roomId}/delegate
--H Authorization : "Bearer ${Application_token}"
RequestBody
Name | Description | Remark | Required |
---|---|---|---|
requester_id | host 위임을 하려 api 요청을 한 요청자의 id 로 host 가 아닐 시 error 발생 | string | O |
user_id | 위임을 받을 유저의 id | string | O |
{
"requester_id": "4fiof-fjdkai-fdfadgadf-clqa",
"user_id": "fabfejiod_dfadf-fdfadgadf-clqa"
}
- 호스트 위임은
MEETING
상태의 Room 에서만 사용이 가능합니다. - requester은
host
이어야 하며 호스트간 위임은 불가합니다.
ResponseBody
{
"status": "SUCCESS"
}
Room 녹화시작 사용자 API
POST /v1/rooms/{roomId}/record
--H Authorization : "Bearer ${Application_token}"
RequestBody
Name | Description | Remark | Required |
---|---|---|---|
requester_id | 녹화 시작 request 요청을 보낸 사용자의 id로 host 가 아닐 시 error 발생 | string | O |
layout | 녹화될 화면의 레이아웃 타입 | ENUM(SPEAKER,SINGLE_SPEAKER,GRID) | O |
{
"requester_id": "fabfejiod_dfadf-fdfadgadf-clqa",
"layout": "SINGLE_SPEAKER"
}
- layout 에 대한 타입은
SPEAKER
,SINGLE_SPEAKER
,GRID
이 가능합니다. (위 enumtype 참조) - Room의 status가
MEETING
상태여야 성공적으로 요청됩니다. - 녹화 기능은 녹화를 요청한 유저가 host 인 경우에만 사용할 수 있습니다.
ResponseBody
{
"status": "SUCCESS"
}
Room 녹화중지
POST /v1/rooms/{roomId}/stop-record
--H Authorization : "Bearer ${Application_token}"
RequestBody
Name | Description | Remark | Required |
---|---|---|---|
requester_id | 녹화 중지 request 요청을 보낸 사용자의 id로 host 가 아닐 시 error 발생 | string | O |
{
"requester_id": "fabfejiod_dfadf-fdfadgadf-clqa"
}
- 해당하는 룸에 녹화 중지요청을 보냅니다.
- 현재 녹화되고 있지 않은 상태에서 요청시 에러가 발생합니다.
- 녹화 중지 기능은 녹화를 요청한 유저가 host 인 경우에만 사용할 수 있습니다.
ResponseBody
{
"status": "SUCCESS"
}
Room 녹화 다운로드 파일 제공
POST /v1/rooms/{roomId}/recordings
--H Authorization : "Bearer ${Application_token}"
ResponseBody
{
"status": "SUCCESS",
"data": [
{
"file_name": "livekit/xxx/xxxdfefadffe-23241213.mp4",
"file_size": 323212312223,
"duration": 231234213212
}
]
}
- roomId 에 해당하는 분할 녹화리스트들에 대한 정보를 반환합니다.
file_path
는 storage 에 저장되어있는 파일 네임 ,room_id
는 녹화한 room 의 uuid ,duration
은 영상에 대한 길이를 나타냅니다.
ErrorCode
공통 에러코드
Code | Description | solution |
---|---|---|
CE001 | 요청값이 잘못 입력된 경우 발생합니다 | 응답바디의 message 필드를 확인 후 올바른 값을 넣어서 재요청합니다. |
CE002 | 요청한 roomId 에 해당하는 Room 이 없거나 requesterId 에 해당하는 유저 레코드가 없을 경우 발생합니다. | 요청한 리소스가 있는지 확인합니다. |
CE003 | 요청에 대해 권한이 없는 경우 발생합니다. | 요청자의 권한을 확인하고, 요청에 대한 허용 권한을 API 문서에서 확인합니다. |
CE100 | 서버가 점검중일 때 발생합니다 | 서버점검이 완료되는 시점까지 기다립니다. |
CE101 | 서버의 싱크가 맞지 않는경우 발생합니다 | 서버점검이 완료되는 시점까지 기다리거나 해당 요청하려는 api 를 재요청해봅니다. |
CE200 | 발급받은 Application_token 을 Authorization 헤더에 제대로 넣지 않은경우 | Application_token을 정상적으로 발급받은 후 재요청합니다. |
Room 생성시 발생 에러코드
Code | Description | Solution |
---|---|---|
CE001 | Room을 생성하는데 적절하지 않은 값을 넣은 경우 발생합니다 | 응답바디의 message 필드를 확인 후 올바른 값을 넣어서 재요청합니다. |
Room 업데이트 시 발생 에러코드
Code | Description | Solution |
---|---|---|
CE001 | Room을 업데이트하려는 필드가 잘못된경우 발생합니다. | 응답바디의 message 필드를 확인 후 올바른 값을 넣어서 재요청합니다. message 가 maxAttendee 값은 현재 attendee 보다 많은 수로만 업데이트 가능합니다 를 반환 받은 경우에는, max_attendee_count 요청값이 잘못되어 발생합니다. Room 참여자 전체 조회 로 예약된 참여자들을 조회할 수 있습니다. max_attendee_count 를 해당 방의 예약된 참가자들의 수보다 큰 값을 요청하여 해결할 수 있습니다. |
CE002 | 요청한 roomId 에 해당하는 Room 이 없거나 requesterId 에 해당하는 유저 레코드가 없을 경우 발생합니다. | 요청한 room 이 맞는지 재확인을 하거나, 요청자가 해당 room에 속하는지 확인합니다 |
U001 | 변경이 불가능한 Room의 상태이기 때문에 발생합니다. | 방이 meeting 이 끝난 ENDED 방에 요청하는것인지 확인합니다. 혹은 MEETING 상태인 경우 reserved time 에 대한 요청이 있는지 확인 후 재요청합니다. |
Room 삭제 시 발생 에러코드
Code | Description | Solution |
---|---|---|
CE002 | 요청한 roomId 에 해당하는 Room 이 없거나 requesterId 에 해당하는 유저 레코드가 없을 경우 발생합니다. | 요청한 room 이 맞는지 재확인을 하거나, 요청자가 해당 room에 속하는지 확인합니다 |
D001 | 삭제요청을 하려는 room 의 status MEETING 인 경우 발생합니다. | 방 종료 요청 후에 삭제 요청을 시도하시거나, 혹은 사람이 없을 때까지 기다리신 후 요청 합니다. |
Room 입장 토큰 발급 시 발생 에러코드
Code | Description | Solution |
---|---|---|
CE001 | 참석하려는 입장인원 수가 초과되었을 때 발생합니다. | 요청한 room 의 참석자 수를 늘리거나 방을 새로 생성합니다. |
CE002 | 해당하는 roomId 의 room 이 없는 경우 요청합니다. | 요청한 room 이 맞는지 재확인을 합니다. 혹은 해당 room 에 대한 초대를 받 은 후 재요청합니다. |
T001 | 현재 방에 참여자목록에 없거나, block 되어 방에 입장 할 수 없는 경우에 발생합니다. | 참여자 초대 요청 를 통해 Room attendee 목록에 등록 후 재요청을 합니다. 방에 block 이 된 경우에는 호스트에게 요청하여 restore 할 수 있도록 합니다.(wip) |
T002 | 현재 방을 입장할 수 없는 ENDED 상태일 때 발생합니다 | 방 입장 토큰 요청은 수행되지 않습니다. |
Room 종료 시 발생 에러코드
Code | Description | Solution |
---|---|---|
CE002 | 요청한 roomId 에 해당하는 Room 이 없거나 requesterId 에 해당하는 유저 레코드가 없을 경우 발생합니다. | 요청한 room 이 맞는지 재확인을 하거나, 요청자가 해당 room에 속하는지 확인합니다 . |
ER001 | 종료요청을 하려는 room 의 status MEETING 이 아닌 경우 발생합니다. | 방에 접속하신 후 다시 api 를 요청합니다. |
참여자 추가 시 발생 에러코드
Code | Description | Solution |
---|---|---|
CE002 | 요청한 roomId 에 해당하는 Room 레코드 없을경우 발생합니다. | 요청한 room 이 맞는지 재확인을 합니다. |
AA001 | 현재 초대하려는 attendee 를 추가할 경우 현재 방의 attendee 수가 maxAttendees 값을 초과할경우 발생합니다. | Room 정보 수정 를 통해 현재 등록하려는 방의 maxAttendee 값 을 수정하도록 요청 후 재요청을 합니다. 혹은 참석자수를 maxAttendee 값 이하가 되도록 수정후 현재 api를 재요청합니다. |
AA002 | 현재 room 의 status 가 ENDED 상태이기 때문에, attendee 를 초대할 수 있는 상태가 아닌 경우 발생합니다. | 종료된 방은 해당 API 가 수행될 수 없습니다. |
참여자 추방 시 발생 에러코드
Code | Description | Solution |
---|---|---|
CE002 | 요청한 roomId 에 해당하는 Room 이 없을 때 발생합니다. | 요청한 room 이 맞는지 재확인을 합니다. |
BR001 | 현재 room 의 status 가 MEETING 상태가 아니거나, 추방하려는 유저의 상태가 미팅중(attendee.is_present=true) 가 아니기 때문에 발생합니다. | 방의 room.room_status 를 확인하시거나, 추방하려는 유저의 상태를 확인합니다. |
blocked 유저들 (추방) 블록해제 시 발생 에러코드
Code | Description | Solution |
---|---|---|
CE002 | 요청한 roomId 에 해당하는 Room 이 없을 때 발생합니다. | 요청한 room 이 맞는지 재확인을 합니다. |
CE003 | 요청에 대해 권한이 없는 경우 발생합니다. | 요청자의 권한을 확인하고, 요청에 대한 허용 권한을 API 문서에서 확인합니다. |
BA001 | 현재 room 의 status 가 MEETING 혹은 IDLE 이 아닌경우 발생합니다 | ENDED 인 경우 방을 다시 생성후 RESERVED 인 경우 방을 접속하여 room 의 상태를 변경 후 요청합니다. |
호스트 위임 시 발생 에러코드
Code | Description | Solution |
---|---|---|
CE001 | 위임하고자 하는 대상이 일반 유저가 아닌 호스트 혹은 참석중인 유저가 아닌 유저일 경우 발생합니다. | 위임하고자 하는 유저가 호스트가 아닌유저로 다시 재요청 합니다. |
CE002 | 현재 요청하는 유저 및 위임하려는 유저에 대한 레코드가 없을 경우 발생합니다. | 유저를 초대 혹은 참가하여 방에 유저에 대한 정보가 있도록 합니다. |
DH001 | 현재 요청하는 방의 상태가 MEETING 이 아닌 경우 발생하게 됩니다. | ENDED 상태인 방일 경우 다시 방을 생성 후 요청 , 그 외의 경우에는 방에 접속하여 방을 MEETING 상태로 만든 후 요청합니다. |
녹화시작 요청 시 발생 에러코드
Code | Description | Solution |
---|---|---|
CE001 | 값이 잘못 입력된 경우 발생합니다 | 해당하는 api 의 request 타입 혹은 올바른 값을 넣어서 재요청합니다. |
CE002 | 요청한 roomId 에 해당하는 Room 이 없거나 requesterId 에 해당하는 유저 레코드가 없을 경우 발생합니다. | 요청한 room 이 맞는지 재확인을 하거나, 요청자가 의 Id 가 Room 에 예약되어 있는지 확인합니다 . |
RE001 | room 의 status 값이 ENDED 이거나, 전에 진행되던 녹화가 있어서 녹화 실행을 할 수 없는경우 발생합니다. | 방의 host에게 host 의 권한을 받은 후 다시 요청합니다. 방이 ENDED 인 상태에서는 녹화요청을 할 수 없습니다. |
녹화중지 요청 시 발생 에러코드
Code | Description | Solution |
---|---|---|
CE001 | 값이 잘못 입력된 경우 발생합니다 | 해당하는 api 의 request 타입 혹은 올바른 값을 넣어서 재요청합니다. |
CE002 | 요청한 roomId 에 해당하는 Room 이 없거나 requesterId 에 해당하는 유저 레코드가 없을 경우 발생합니다. | 요청한 room 이 맞는지 재확인을 하거나, 요청자가 의 Id 가 Room 에 예약되어 있는지 확인합니다 . |
RE001 | room 의 status 값이 ENDED 이거나, 전에 진행되던 녹화가 없기때문에 녹화를 종료할 수 없는 상황에서 발생합니다. | 방의 host에게 host 의 권한을 받은 후 다시 요청합니다. 방이 ENDED 인 상태에서는 녹화요청을 할 수 없습니다. |
녹화파일 리스트 요청 시 발생 에러코드
Code | Description | Solution |
---|---|---|
RE003 | 반환된 파일이 하나도 없을경우 발생합니다 | POST /media/v1/room/{roomId}/record 를 통해서 녹화를 시작하고 POST /media/v1/room/{roomId}/stop-record 로 녹화를 종료한 후 다시 api 를 재요청합니다 |