미팅 ID
미팅 ID는 PlanetKit을 연동한 애플리케이션이 그룹 통화(컨퍼런스)를 할 수 있도록 숫자로 구별하는 각 방의 식별자입니다.
LINE Planet은 SIP 터미널을 이용한 그룹 통화를 지원합니다. SIP 터미널에는 종류가 몇 가지 있는데, SIP 전화나 화상 회의 장비가 일반적인 예입니다.
애플리케이션에서 SIP 터미널을 지원하고 싶으면 이 페이지의 사양을 참고해서 미팅 ID를 획득하세요. 그후 사용자는 발급받은 미팅 ID를 이용해서 SIP 기기를 통해 그룹 통화에 입장할 수 있습니다.
지원 통화 유형 |
---|
그룹 통화 |
데이터 구조
미팅 ID는 다음과 같은 데이터 구조를 사용합니다.
미팅 ID 유형
미팅 ID에는 I 유형, S 유형, R 유형이 있습니다. 애플리케이션에서 제공할 시나리오에 따라 적절한 미팅 ID 유형을 요청해야 합니다.
미팅 ID 유형 | 이름 | 만료 기간 기본값 | 설명 |
---|---|---|---|
I | Instant | 1일 | 미팅이 끝나는 즉시 또는 발급 24시간 후에 만료됩니다. |
S | Schedule | 30일 | 기본값이 적용된 경우 생성 30일 후 만료됩니다. 30일 안에 같은 미팅 ID로 미팅을 다시 시작하면 만료 기한은 그로부터 다시 30일 늘어납니다. 참고: 만료 기간은 서비스 ID별로 설정 가능합니다. 만료 기간이 변경되면 기본값인 30일이 아닌 해당 값이 적용됩니다. |
R | Schedule for recurring | 365일 | 기본값이 적용된 경우 생성 365일 후에 만료됩니다. 365일 안에 같은 미팅 ID로 미팅을 다시 시작하면, 만료 기한은 그로부터 다시 365일 늘어납니다. 참고: 만료 기간은 서비스 ID별로 설정 가능합니다. 만료 기간이 변경되면 기본값인 365일이 아닌 해당 값이 적용됩니다. |
S 또는 R 유형의 미팅 ID에 대해 기본값이 아닌 만료 기간을 사용하고자 한다면 LINE Planet 팀에 문의해 주세요.
미팅 ID 객체
미팅 ID는 아래와 같은 데이터 구조를 갖습니다. 객체 이름은 MeetingObject
입니다.
속성 | 데이터 유형 | Null 허용 | 설명 |
---|---|---|---|
id | Long | N | ID 값. 최소 11자리 숫자 |
type | String | N | 미팅 ID 유형. I, S, R 중 하나입니다. |
passcode | String | N | 패스코드. 6자리 숫자 |
chatSvcId | String | N | 방의 서비스 ID |
chatId | String | N | 방 ID |
created | Timestamp(milliseconds) | N | 생성 시각 |
expireAt | Timestamp(milliseconds) | N | 만료 시각. 발급받은 미팅 ID는 expireAt 이후로는 유효하지 않습니다. |
title | String | Y | 미팅 제목 |
data | String | N | 미팅 데이터 |
미팅 ID 생성
미팅 ID를 요청합니다.
메서드와 엔드포인트
-
메서드: POST
-
엔드포인트
/tas/v2/gcall/{roomServiceId}/{roomId}/mtg
헤더
- Authorization:
Basic {your credential}
- Accept: application/json
- Content-Type: application/json
패스 파라미터
파라미터 | 설명 |
---|---|
roomServiceId | 방의 서비스 ID |
roomId | 방 ID |
요청 본문
파라미터 | 데이터 유형 | 필수 | 기본값 | 설명 |
---|---|---|---|---|
type | String | Y | 미팅 ID 유형. I, S, R 중 하나여야 합니다. | |
passcode | String | N | random | 패스코드. 6자리 숫자 |
title | String | N | NULL | 미팅 제목. UTF-16로 최대 128 글자를 쓸 수 있습니다. |
data | String | N | NULL | 미팅 데이터. UTF-16로 최대 1024 글자를 쓸 수 있습니다. |
응답
속성 | 데이터 유형 | 설명 |
---|---|---|
mtg | MeetingObject | 미팅 객체 |
sipProxy | String | 그룹 통화 프락시 주소 |
sipProxyPort | Integer | 그룹 통화 프락시 포트 |
예제
다음과 같은 상황이라고 가정합시다.
- 서비스 ID 및 방의 서비스 ID: ex-service
- 방 ID: ex-room
curl --location --request POST 'https://vpnx-stn-api.line-apps.com/tas/v2/gcall/ex-service/ex-room/mtg' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic YWxhZGRpbjpvcGVuX3Nlc2FtZQ==' \
--data-raw '{
"type": "I",
"passcode": "123456"
}'
{
"status": "success",
"data": {
"mtg": {
"id": 13698412732,
"type": "I",
"passcode": "123456",
"chatSvcId": "ex-service",
"chatId": "2048",
"created": 1656503468722,
"expireAt": 1656589868722,
"title": null,
"data": null
},
"sipProxy": "210.1.1.1",
"sipProxyPort": 5060
},
"timestamp": 1656503468730
}
발생할 수 있는 애플리케이션 오류 코드
발생 가능한 애플리케이션 오류 코드는 다음과 같습니다. 자세한 내용은 API v2 - 오류 처리를 참조하세요.
- 400, 401, 403, 405(미팅이 이미 진행 중)
- 500, 520
미팅 목록
전체 미팅 목록을 조회합니다.
메서드와 엔드포인트
-
메서드: GET
-
엔드포인트
/tas/v2/gcall/{roomServiceId}/{roomId}/mtgs
헤더
- Authorization:
Basic {your credential}
- Accept: application/json
- Content-Type: application/json
패스 파라미터
파라미터 | 설명 |
---|---|
roomServiceId | 방의 서비스 ID |
roomId | 방 ID |
요청 본문
없음
응답
속성 | 데이터 유형 | 설명 |
---|---|---|
mtgs | MeetingObject 배열 | 현재는 MeetingObject 하나만 반환합니다. |
예제
다음과 같은 상황이라고 가정합시다.
- 서비스 ID 및 방의 서비스 ID: ex-service
- 방 ID: ex-room
curl --location --request GET 'https://vpnx-stn-api.line-apps.com/tas/v2/gcall/ex-service/ex-room/mtgs' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic YWxhZGRpbjpvcGVuX3Nlc2FtZQ=='
{
"status": "success",
"data": {
"mtgs": [
{
"id": 73051667563,
"type": "S",
"passcode": "123456",
"chatSvcId": "ex-service",
"chatId": "ex-room",
"created": 1656503532981,
"expireAt": 1659095532981,
"title": null,
"data": null
}
]
},
"timestamp": 1656503539402
}
발생할 수 있는 애플리케이션 오류 코드
발생 가능한 애플리케이션 오류 코드는 다음과 같습니다. 자세한 내용은 API v2 - 오류 처리를 참조하세요.
- 400, 401, 403
- 500, 520
미팅 변경
미팅 ID 속성을 덮어씁니다.
메서드와 엔드포인트
-
메서드: PUT
-
엔드포인트
/tas/v2/gcall/{roomServiceId}/{roomId}/mtgs/{mtgId}
헤더
- Authorization:
Basic {your credential}
- Accept: application/json
- Content-Type: application/json
패스 파라미터
파라미터 | 설명 |
---|---|
roomServiceId | 방의 서비스 ID |
roomId | 방 ID |
mtgId | 덮어쓸 미팅의 ID |
요청 본문
파라미터 | 데이터 유형 | 필수 | 기본값 | 설명 |
---|---|---|---|---|
type | String | N | 미팅 ID 유형. I, S, R 중 하나여야 합니다. 변경할 수 있는 유형은 다음과 같습니다. S -> R | |
passcode | String | N | random | 패스코드. 6자리 숫자 |
title | String | N | NULL | 미팅 제목. UTF-16로 최대 128 글자를 쓸 수 있습니다. |
data | String | N | NULL | 미팅 데이터. UTF-16로 최대 1024 글자를 쓸 수 있습니다. |
응답
속성 | 데이터 유형 | 설명 |
---|---|---|
mtg | MeetingObject | 미팅 객체 |
예제 1
다음과 같은 상황이라고 가정합시다.
- 서비스 ID 및 방의 서비스 ID: ex-service
- 방 ID: ex-room
- 미팅 ID: 73051667563
- 현재 미팅 유형: S
미팅 유형을 R로 변경하는 예제입니다.
curl --location --request PUT 'https://vpnx-stn-api.line-apps.com/tas/v2/gcall/ex-service/ex-room/mtg/73051667563' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic YWxhZGRpbjpvcGVuX3Nlc2FtZQ==' \
--data-raw '{
"type": "R"
}'
{
"status": "success",
"data": {
"id": 73051667563,
"type": "R",
"passcode": "123456",
"chatSvcId": "ex-service",
"chatId": "ex-room",
"created": 1656503532981,
"expireAt": 1688039617461,
"title": null,
"data": null
},
"timestamp": 1656503617497
}
예제 2
다음과 같은 상황이라고 가정합시다.
- 서비스 ID 및 방의 서비스 ID: ex-service
- 방 ID: ex-room
- 미팅 ID: 73051667563
- 현재 미팅 유형: R
미팅 유형을 S로 변경하려 할 때 실패하는 예제입니다.
curl --location --request PUT 'https://vpnx-stn-api.line-apps.com/tas/v2/gcall/ex-service/ex-room/mtg/73051667563' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic YWxhZGRpbjpvcGVuX3Nlc2FtZQ==' \
--data-raw '{
"type": "S"
}'
{
"status": "error",
"message": "current type cannot be converted to nextType. R -> S",
"code": "405",
"data": {},
"timestamp": 1657108897760
}
발생할 수 있는 애플리케이션 오류 코드
발생 가능한 애플리케이션 오류 코드는 다음과 같습니다. 자세한 내용은 API v2 - 오류 처리를 참조하세요.
- 400, 401, 403, 404, 405, 435(현재 미팅 유형을 요청한 미팅 유형으로 변경할 수 없음)
- 500, 520
미팅 삭제
미팅을 삭제합니다.
메서드와 엔드포인트
-
메서드: DELETE
-
엔드포인트
/tas/v2/gcall/{roomServiceId}/{roomId}/mtgs/{mtgId}
헤더
- Authorization:
Basic {your credential}
- Accept: application/json
- Content-Type: application/json
패스 파라미터
파라미터 | 설명 |
---|---|
roomServiceId | 방의 서비스 ID |
roomId | 방 ID |
mtgId | 삭제할 미팅 ID |
요청 본문
없음
응답
없음
예제
다음과 같은 상황이라고 가정합시다.
- 서비스 ID 및 방의 서비스 ID: ex-service
- 방 ID: ex-room
- 미팅 ID: 73051667563
curl --location --request DELETE 'https://vpnx-stn-api.line-apps.com/tas/v2/gcall/ex-service/ex-room/mtg/73051667563' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic YWxhZGRpbjpvcGVuX3Nlc2FtZQ=='
{
"status": "success",
"data": null,
"timestamp": 1656503704119
}
발생할 수 있는 애플리케이션 오류 코드
발생 가능한 애플리케이션 오류 코드는 다음과 같습니다. 자세한 내용은 API v2 - 오류 처리를 참조하세요.
- 400, 401, 403, 404
- 500, 520