# Session Management (WebRTC Only)

Session Management는 WebRTC로 Stream을 재생할 때, 각각의 재생 (Session)마다 고유한 Session 이름을 부여하여 운영 편의성을 높이는 기능입니다.

## Session 식별

기본 동작은 UUID 형태로 자동 발급되며, 운영 편의를 위해 WebRTC 재생 URL (`ws[s]://...`) 끝에 Query로 Session 이름 (`session=xxx`)을 지정할 수 있습니다.

* 예시: `ws://ome-host/app/stream/playlist?session=my_session`

{% hint style="info" %}
운영 중 문제 분석이나 WebRTC 재생 단위로 추적이 필요한 경우, 규칙이 있는 Session 이름을 사용하는 것을 권장합니다.
{% endhint %}

### 중복 재생 차단

동일한 Session 이름으로 동시에 두 곳 이상에서 재생을 시도하면 두 번째 요청은 오류로 처리 됩니다. 이 동작은 여러 위치에서 같은 `app/stream`을 재생하여 발생할 수 있는 충돌과 오남용을 방지하기 위한 정책입니다.

## Session Management API

사용자는 API를 통해 Session 목록 조회, 강제 종료, 통계 조회 등의 기능을 사용할 수 있습니다.

### Session 목록 조회 및 강제 종료 API

사용자는 해당 API를 통해 WebRTC 재생 컨트롤이 가능합니다. 문제가 있는 WebRTC Session을 발견했다면 `Delete` API를 호출하여 해당 WebRTC Session을 강제로 종료할 수 있습니다. 이때, Player가 바로 재접속하면 강제 종료의 의미가 퇴색되므로 [Admission Webhooks](https://docs.ovenmediaengine.com/access-control/admission-webhooks)을 병행 사용하는 것을 추천드립니다.

{% content-ref url="../additional-rest-api/v1/session" %}
[session](https://ovenmediaengine-enterprise.gitbook.io/guide/ko-kr/additional-rest-api/v1/session)
{% endcontent-ref %}

### Session 통계 조회 API

Session별 평균 및 최대 전송률, 누적 전송 바이트 등 다양한 실시간 통계를 조회할 수 있습니다.

{% content-ref url="../additional-rest-api/v1/statistics/current" %}
[current](https://ovenmediaengine-enterprise.gitbook.io/guide/ko-kr/additional-rest-api/v1/statistics/current)
{% endcontent-ref %}
