Skip to main content

AR Live 서비스 API

HOST: https://api.maxverse.io/media

ENUM type field

fielddescription
room_statusRESERVED, MEETING, IDLE, ENDED 로 room 의 예약, 진행, 휴지, 종료에 대한 상태를 나타내주는 필드입니다. 방에 접속자가 처음 접속하면 MEETING 상태로 변경되고, 방에서 모든 참가자가 방을 나가면 IDLE, 방을 종료하면 ENDED 상태로 변경됩니다. Room Status에 대한 자세한 사항은 이해하기-RoomStatus 에서 확인할 수 있습니다.
layoutSPEAKER , SINGLE_SPEAKER , GRID 로 각각 녹화의 레이아웃을 나타냅니다.

Room 생성

POST /v1/rooms

--H Authorization : "Bearer ${Application_token}"
  • is_token_receive를 true로 설정하여 요청하면, 방 생성 후 바로 방에 입장하여 미팅을 진행할 수 있도록 access token 발급받을 수 있습니다.
  • 저희 서비스에서는 호스트를 제공합니다. 호스트는 방생성자 혹은 방에 처음 입장한 사람을 호스트로 선정할 수 있습니다. 각각 방생성 요청시 host_selection_typeCREATOR, 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
}
  1. is_publictrue 인 경우에는, 누구나 회의에 참석할 수 있습니다. 그렇기 때문에 attendees 필드에 값이 비어있어도 됩니다. 단 host_selection_typeCERATOR인 경우에는, 방생성자도 호스트로써 방에 참가하는 유저이기 때문에, public이 true라도 created_byattendees필드에 넣어서 요청해야합니다. false 인 경우에는 비공개방을 의미하고, attendee 로 등록된 유저만 참가할 수 있습니다. 따라서 비공개인 경우에는 방에 접속하기 위한 토큰을 발급요청할 때 요청이 거부됩니다.
  2. reserved_ prefix 가 붙은 시간은 예약시간 관련 필드입니다. 회의가 시작되는 시간, 종료되는 시간을 기입하여 회의를 관리할 수 있습니다. 옵셔널 하며 빈값으로 요청한 경우 현재시간으로 reserved_start_time 이 적용됩니다.
  3. attendees 는 참여자들을 예약하는 필드입니다. 단 is_publicfalse 인 경우에는 방에 attendee 로 등록된 유저만 참가할 수 있습니다. 참가자를 추가하고 싶은 경우에는 attendee 추가 요청 을 할 수 있습니다.
  4. created_by 는 회의를 생성한 유저의 id 입니다. is_public 값이 false 이거나 host_selection_typeCERATOR인 경우에는, 무조건적으로 host 로 attendees 로 들어가야 합니다.
  5. created_byattendees 는 해당 api 가 사용되는 서비스의 id 시스템의 값이 들어가야됩니다.
  6. 생성방 입장가능 , 방장선정 방식 , 방장퇴장시 자동위임 여부 는 콘솔의 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"
}
}
  1. is_token_receive가 true인 경우에는 API 요청자가 바로 room 에 접속할 수 있도록 token 값을 발급받아서 전달해 줍니다.
  2. is_token_receive가 false인 경우에는 방에 접속하기 위해서는 별도로 Room 참여 엑세스 토큰 요청 요청으로 token 을 얻어야 합니다.

Room 전체 목록 조회

  • 방에 대한 정보 및 참가자들에 대한 정보를 반환합니다
GET /v1/rooms

--H Authorization : "Bearer ${Application_token}"

  1. 현재 만들어진 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
}
}
}
  1. room_statusRESERVED인 경우에는 start_time, end_time 이 없습니다.

  2. 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}"

NameDescriptionRemarkRequired
name이름stringx
max_attendee_countRoom에 참석할 수 있는 최대 인원 수numberx
is_publicRoom의 공개여부booleanx
reserved_start_timeRoom의 예약 시작시간Datex
reserved_end_timeRoom의 예약 종료시간Datex
descriptionRoom에 대한 부연설명stringx
requester_idRoom 변경에 대한 요청을 한 유저의 id( API 사용 서비스의 시스템 ID ) 로 host 가 아닐 시 error 발생stringO
is_joinableRoom에 참여 가능 여부(true가 되어야지만 참여자가 방에 참석할 수 있습니다)booleanx

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
}
  1. room_status 값이 RESERVED 인 room 에 한해서 optional field 전체를 바꿀 수 있습니다.
  2. room_status 값이 MEETING이나 IDLE 인 상태의 방에서는 reserved_*_time, is_joinable field 에 해당하는 값을 변경할 수 없습니다.
  3. room_status 값이 ENDED 인 방의 경우에는 모든 필드에 대해서 업데이트가 불가능합니다.
  4. max_attendee_count 값은 현재 방의 attendees 수보다 적을 수 없습니다.
  5. 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"]
}

  1. 참여자를 두명 이상 추가 할 수 있습니다.
  2. 사용자가 기존 room 참석자 리스트에 없는경우 별도로 알림 전송을 받습니다.
  3. is_publicfalse 인 방인 경우에는 사용자는 엑세스토큰 요청 을 했을 때 해당 Room 에 attendee가 아닌 경우, 에러응답을 받습니다.
  4. 해당 방의 attendees 는 Room 참여자 전체 조회 에서 확인할 수 있습니다.
  5. 참가자 추가 및 초대 요청은 요청자의 host 여부와 상관없이 초대 할 수 있습니다.

ResponseBody

{
"status": "SUCCESS"
}

Room 참여 액세스 토큰 요청

POST /v1/rooms/{roomId}/attendees/{userId}/token

--H Authorization : "Bearer ${Application_token}"

RequestBody

NameDescriptionRemarkRequired
user_name참석자이름(해당 방의 참석자 정보의 내부필드인 name)stringx

  1. 방에 참석하기 위한 토큰을 발급받는 요청입니다. 반환된 ResponseBody의 data 에 담긴 토큰으로 해당 방에 웹소켓 접속을 할 수 있습니다.
  2. RequestBody의 user_name을 설정하면 웹소켓에서 방의 participant에 대한 name이 설정됩니다.
  3. Room의 속성 중 is_publicfalse 인 Room 은 attendee 에 속한 유저들만 엑세스 토큰 요청에 대해 성공적으로 토큰을 반환받을 수 있습니다.
  4. 반환받은 토큰을 이용하여 Room에 웹소켓으로 방에 연결을 합니다.
{
"user_name": "홍길동"
}

ResponseBody

{
"status": "SUCCESS",
"data": {
"token": "fabfejiod_dfadf-fdfadgadf-clqa"
}
}

Room 참여자 추방

POST /v1/rooms/{roomId}/block

--H Authorization : "Bearer ${Application_token}"

RequestBody

NameDescriptionRemarkRequired
requester_idblock 을 하려 request 요청을 보낸 사용자의 id로 host 가 아닐 시 error 발생stringO
attendees추방하려는 유저들의 id 리스트string[]O
{
"requester_id": "fabfejiod_dfadf-fdfadgadf-clqa",
"attendees": ["aciejjiod_dfadf-fsjcngadf-xhek"]
}

ResponseBody

{
"status": "SUCCESS"
}
  1. 해당 요청은 방생성자(created_by)와 호스트만이 할 수 있습니다.
  2. 미팅인 방(room_status = MEETING)에서만 유효한 요청입니다.
  3. 호스트는 추방될 수 없습니다.
  4. 현재 미팅에 참석중(is_present = true) 인 참가자만이 추방될 수 있습니다.
  5. 추방되는 참가자는 강제로 미팅중인 방에서 강퇴됩니다.
  6. 추방된 참가자는 더 이상 추방된 방에서 회의를 참여할 수 없습니다. 즉 토큰발급과 방 입장이 불가능합니다.

blocked 유저들 (강퇴) 블록해제

POST /v1/rooms/{roomId}/restore

--H Authorization : "Bearer ${Application_token}"

RequestBody

NameDescriptionRemarkRequired
requester_idblock 해제를 하려 request 요청을 보낸 사용자의 id로 host 가 아닐 시 error 발생stringO
attendeesblock 된 유저들의 id 리스트string[]O
{
"requester_id": "fabfejiod_dfadf-fdfadgadf-clqa",
"attendees": ["aciejjiod_dfadf-fsjcngadf-xhek"]
}

ResponseBody

{
"status": "SUCCESS"
}
  1. 해당 요청은 호스트만이 할 수 있습니다.
  2. 미팅 혹은 휴지상태인 방(room_status = MEETING | IDLE )에서만 유효한 요청입니다.
  3. 요청된 attendees 들은 모두 block 된 유저여야 합니다.
  4. block 이 해제된 유저들은 다시 토큰재발급을 받을 수 있습니다.

Room 삭제

DELETE /v1/rooms/{roomId}

--H Authorization : "Bearer ${Application_token}"

RequestBody

NameDescriptionRemarkRequired
requester_idroom을 삭제 하려 request 요청을 보낸 사용자의 id로 host 가 아닐 시 error 발생stringO
{
"requester_id": "fabfejiod_dfadf-fdfadgadf-clqa"
}

ResponseBody

{
"status": "SUCCESS"
}

  1. 방 삭제는 room_status 값이 RESERVED 혹은 ENDED 인 경우에만 삭제가 가능합니다.
  2. 방 삭제는 requester_id 에 해당하는 유저가 host 인 경우에만 삭제가 가능합니다.

Room 종료

POST /v1/rooms/{roomId}/end

--H Authorization : "Bearer ${Application_token}"

RequestBody

NameDescriptionRemarkRequired
requester_idroom을 종료 하려 request 요청을 보낸 사용자의 id로 host 가 아닐 시 error 발생stringO
{
"requester_id": "fabfejiod_dfadf-fdfadgadf-clqa"
}
  1. 방 종료는 requester_id 에 해당하는 유저가 host 인 경우에만 종료가 가능합니다.
  2. 방 종료는 방상태가 MEETING 중인 경우에만 가능합니다.

ResponseBody

{
"status": "SUCCESS"
}

Room 프레젠터 업데이트

POST /v1/rooms/{roomId}/update-presenter

--H Authorization : "Bearer ${Application_token}"

RequestBody

NameDescriptionRemarkRequired
requester_idroom의 presenter를 업데이트하려 request 요청을 보낸 사용자의 id로 host 가 아닐 시 error 발생stringO
user_idroom의 presenter 가 될 유저의 idstringO
{
"requester_id": "4fiof-fjdkai-fdfadgadf-clqa",
"user_id": "fabfejiod_dfadf-fdfadgadf-clqa"
}
  1. sdk 를 이용하여 미팅상태의 회의나 전화에서 대표로 띄우는 화면이 필요한 경우 사용될 수 있습니다. 해당 API 는 metadata 를 사용하여 room에 바로 업데이트 할 수 있도록 구성되었습니다
  2. 대표자를 바꿔야 하는 경우 해당 API 를 사용하면, RoomMetadataChanged 이벤트가 발생하여 손쉽게 대표자 데이터가 변경됨을 알 수 있습니다.
  3. Room의 메타데이터는 다음 형식으로 세팅됩니다. JSON.stringfy({presenter:{userId}})

ResponseBody

{
"status": "SUCCESS"
}

Host 위임

POST /v1/rooms/{roomId}/delegate

--H Authorization : "Bearer ${Application_token}"

RequestBody

NameDescriptionRemarkRequired
requester_idhost 위임을 하려 api 요청을 한 요청자의 id 로 host 가 아닐 시 error 발생stringO
user_id위임을 받을 유저의 idstringO
{
"requester_id": "4fiof-fjdkai-fdfadgadf-clqa",
"user_id": "fabfejiod_dfadf-fdfadgadf-clqa"
}
  1. 호스트 위임은 MEETING 상태의 Room 에서만 사용이 가능합니다.
  2. requester은 host 이어야 하며 호스트간 위임은 불가합니다.

ResponseBody

{
"status": "SUCCESS"
}

Room 녹화시작 사용자 API

POST /v1/rooms/{roomId}/record

--H Authorization : "Bearer ${Application_token}"

RequestBody

NameDescriptionRemarkRequired
requester_id녹화 시작 request 요청을 보낸 사용자의 id로 host 가 아닐 시 error 발생stringO
layout녹화될 화면의 레이아웃 타입ENUM(SPEAKER,SINGLE_SPEAKER,GRID)O
{
"requester_id": "fabfejiod_dfadf-fdfadgadf-clqa",
"layout": "SINGLE_SPEAKER"
}
  1. layout 에 대한 타입은 SPEAKER , SINGLE_SPEAKER , GRID 이 가능합니다. (위 enumtype 참조)
  2. Room의 status가 MEETING 상태여야 성공적으로 요청됩니다.
  3. 녹화 기능은 녹화를 요청한 유저가 host 인 경우에만 사용할 수 있습니다.

ResponseBody

{
"status": "SUCCESS"
}

Room 녹화중지

POST /v1/rooms/{roomId}/stop-record

--H Authorization : "Bearer ${Application_token}"

RequestBody

NameDescriptionRemarkRequired
requester_id녹화 중지 request 요청을 보낸 사용자의 id로 host 가 아닐 시 error 발생stringO
{
"requester_id": "fabfejiod_dfadf-fdfadgadf-clqa"
}
  1. 해당하는 룸에 녹화 중지요청을 보냅니다.
  2. 현재 녹화되고 있지 않은 상태에서 요청시 에러가 발생합니다.
  3. 녹화 중지 기능은 녹화를 요청한 유저가 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
}
]
}
  1. roomId 에 해당하는 분할 녹화리스트들에 대한 정보를 반환합니다.
  2. file_path 는 storage 에 저장되어있는 파일 네임 , room_id 는 녹화한 room 의 uuid , duration 은 영상에 대한 길이를 나타냅니다.

ErrorCode


공통 에러코드

CodeDescriptionsolution
CE001요청값이 잘못 입력된 경우 발생합니다응답바디의 message 필드를 확인 후 올바른 값을 넣어서 재요청합니다.
CE002요청한 roomId 에 해당하는 Room 이 없거나 requesterId 에 해당하는 유저 레코드가 없을 경우 발생합니다.요청한 리소스가 있는지 확인합니다.
CE003요청에 대해 권한이 없는 경우 발생합니다.요청자의 권한을 확인하고, 요청에 대한 허용 권한을 API 문서에서 확인합니다.
CE100서버가 점검중일 때 발생합니다서버점검이 완료되는 시점까지 기다립니다.
CE101서버의 싱크가 맞지 않는경우 발생합니다서버점검이 완료되는 시점까지 기다리거나 해당 요청하려는 api 를 재요청해봅니다.
CE200발급받은 Application_token 을 Authorization 헤더에 제대로 넣지 않은경우Application_token을 정상적으로 발급받은 후 재요청합니다.

Room 생성시 발생 에러코드

CodeDescriptionSolution
CE001Room을 생성하는데 적절하지 않은 값을 넣은 경우 발생합니다응답바디의 message 필드를 확인 후 올바른 값을 넣어서 재요청합니다.

Room 업데이트 시 발생 에러코드

CodeDescriptionSolution
CE001Room을 업데이트하려는 필드가 잘못된경우 발생합니다.응답바디의 message 필드를 확인 후 올바른 값을 넣어서 재요청합니다. messagemaxAttendee 값은 현재 attendee 보다 많은 수로만 업데이트 가능합니다 를 반환 받은 경우에는, max_attendee_count 요청값이 잘못되어 발생합니다. Room 참여자 전체 조회 로 예약된 참여자들을 조회할 수 있습니다. max_attendee_count 를 해당 방의 예약된 참가자들의 수보다 큰 값을 요청하여 해결할 수 있습니다.
CE002요청한 roomId 에 해당하는 Room 이 없거나 requesterId 에 해당하는 유저 레코드가 없을 경우 발생합니다.요청한 room 이 맞는지 재확인을 하거나, 요청자가 해당 room에 속하는지 확인합니다
U001변경이 불가능한 Room의 상태이기 때문에 발생합니다.방이 meeting 이 끝난 ENDED 방에 요청하는것인지 확인합니다. 혹은 MEETING 상태인 경우 reserved time 에 대한 요청이 있는지 확인 후 재요청합니다.

Room 삭제 시 발생 에러코드

CodeDescriptionSolution
CE002요청한 roomId 에 해당하는 Room 이 없거나 requesterId 에 해당하는 유저 레코드가 없을 경우 발생합니다.요청한 room 이 맞는지 재확인을 하거나, 요청자가 해당 room에 속하는지 확인합니다
D001삭제요청을 하려는 room 의 status MEETING 인 경우 발생합니다.방 종료 요청 후에 삭제 요청을 시도하시거나, 혹은 사람이 없을 때까지 기다리신 후 요청 합니다.

Room 입장 토큰 발급 시 발생 에러코드

CodeDescriptionSolution
CE001참석하려는 입장인원 수가 초과되었을 때 발생합니다.요청한 room 의 참석자 수를 늘리거나 방을 새로 생성합니다.
CE002해당하는 roomId 의 room 이 없는 경우 요청합니다.요청한 room 이 맞는지 재확인을 합니다. 혹은 해당 room 에 대한 초대를 받 은 후 재요청합니다.
T001현재 방에 참여자목록에 없거나, block 되어 방에 입장 할 수 없는 경우에 발생합니다.참여자 초대 요청 를 통해 Room attendee 목록에 등록 후 재요청을 합니다. 방에 block 이 된 경우에는 호스트에게 요청하여 restore 할 수 있도록 합니다.(wip)
T002현재 방을 입장할 수 없는 ENDED 상태일 때 발생합니다방 입장 토큰 요청은 수행되지 않습니다.

Room 종료 시 발생 에러코드

CodeDescriptionSolution
CE002요청한 roomId 에 해당하는 Room 이 없거나 requesterId 에 해당하는 유저 레코드가 없을 경우 발생합니다.요청한 room 이 맞는지 재확인을 하거나, 요청자가 해당 room에 속하는지 확인합니다 .
ER001종료요청을 하려는 room 의 status MEETING 이 아닌 경우 발생합니다.방에 접속하신 후 다시 api 를 요청합니다.

참여자 추가 시 발생 에러코드

CodeDescriptionSolution
CE002요청한 roomId 에 해당하는 Room 레코드 없을경우 발생합니다.요청한 room 이 맞는지 재확인을 합니다.
AA001현재 초대하려는 attendee 를 추가할 경우 현재 방의 attendee 수가 maxAttendees 값을 초과할경우 발생합니다.Room 정보 수정 를 통해 현재 등록하려는 방의 maxAttendee 값 을 수정하도록 요청 후 재요청을 합니다. 혹은 참석자수를 maxAttendee 값 이하가 되도록 수정후 현재 api를 재요청합니다.
AA002현재 room 의 status 가 ENDED 상태이기 때문에, attendee 를 초대할 수 있는 상태가 아닌 경우 발생합니다.종료된 방은 해당 API 가 수행될 수 없습니다.

참여자 추방 시 발생 에러코드

CodeDescriptionSolution
CE002요청한 roomId 에 해당하는 Room 이 없을 때 발생합니다.요청한 room 이 맞는지 재확인을 합니다.
BR001현재 room 의 status 가 MEETING 상태가 아니거나, 추방하려는 유저의 상태가 미팅중(attendee.is_present=true) 가 아니기 때문에 발생합니다.방의 room.room_status를 확인하시거나, 추방하려는 유저의 상태를 확인합니다.

blocked 유저들 (추방) 블록해제 시 발생 에러코드

CodeDescriptionSolution
CE002요청한 roomId 에 해당하는 Room 이 없을 때 발생합니다.요청한 room 이 맞는지 재확인을 합니다.
CE003요청에 대해 권한이 없는 경우 발생합니다.요청자의 권한을 확인하고, 요청에 대한 허용 권한을 API 문서에서 확인합니다.
BA001현재 room 의 status 가 MEETING 혹은 IDLE 이 아닌경우 발생합니다ENDED 인 경우 방을 다시 생성후 RESERVED 인 경우 방을 접속하여 room 의 상태를 변경 후 요청합니다.

호스트 위임 시 발생 에러코드

CodeDescriptionSolution
CE001위임하고자 하는 대상이 일반 유저가 아닌 호스트 혹은 참석중인 유저가 아닌 유저일 경우 발생합니다.위임하고자 하는 유저가 호스트가 아닌유저로 다시 재요청 합니다.
CE002현재 요청하는 유저 및 위임하려는 유저에 대한 레코드가 없을 경우 발생합니다.유저를 초대 혹은 참가하여 방에 유저에 대한 정보가 있도록 합니다.
DH001현재 요청하는 방의 상태가 MEETING 이 아닌 경우 발생하게 됩니다.ENDED 상태인 방일 경우 다시 방을 생성 후 요청 , 그 외의 경우에는 방에 접속하여 방을 MEETING 상태로 만든 후 요청합니다.

녹화시작 요청 시 발생 에러코드

CodeDescriptionSolution
CE001값이 잘못 입력된 경우 발생합니다해당하는 api 의 request 타입 혹은 올바른 값을 넣어서 재요청합니다.
CE002요청한 roomId 에 해당하는 Room 이 없거나 requesterId 에 해당하는 유저 레코드가 없을 경우 발생합니다.요청한 room 이 맞는지 재확인을 하거나, 요청자가 의 Id 가 Room 에 예약되어 있는지 확인합니다 .
RE001room 의 status 값이 ENDED 이거나, 전에 진행되던 녹화가 있어서 녹화 실행을 할 수 없는경우 발생합니다.방의 host에게 host 의 권한을 받은 후 다시 요청합니다. 방이 ENDED 인 상태에서는 녹화요청을 할 수 없습니다.

녹화중지 요청 시 발생 에러코드

CodeDescriptionSolution
CE001값이 잘못 입력된 경우 발생합니다해당하는 api 의 request 타입 혹은 올바른 값을 넣어서 재요청합니다.
CE002요청한 roomId 에 해당하는 Room 이 없거나 requesterId 에 해당하는 유저 레코드가 없을 경우 발생합니다.요청한 room 이 맞는지 재확인을 하거나, 요청자가 의 Id 가 Room 에 예약되어 있는지 확인합니다 .
RE001room 의 status 값이 ENDED 이거나, 전에 진행되던 녹화가 없기때문에 녹화를 종료할 수 없는 상황에서 발생합니다.방의 host에게 host 의 권한을 받은 후 다시 요청합니다. 방이 ENDED 인 상태에서는 녹화요청을 할 수 없습니다.

녹화파일 리스트 요청 시 발생 에러코드

CodeDescriptionSolution
RE003반환된 파일이 하나도 없을경우 발생합니다POST /media/v1/room/{roomId}/record 를 통해서 녹화를 시작하고 POST /media/v1/room/{roomId}/stop-record 로 녹화를 종료한 후 다시 api 를 재요청합니다