# SDK State

Omnitalk SDK는 내부적으로 사용자의 상태를 관리하고 있습니다. 각 상태별로 호출 가능한 API가 제한되며, 이 상태는 호출하는 API에 따라서 변하게 됩니다.

아래에서는 각 상태에 대한 설명과 상태별로 호출할 수 있는 API 목록을 보여줍니다.

## NULL\_STATE

세션 생성을 하지 않았거나 leave()를 호출하여 세션이 없는 상태를 의미합니다. 호출 가능한 API 목록은 아래와 같습니다.

* createSession

## SESSION\_STATE

createSession 호출을 성공하여 세션이 생성된 상태입니다. 이 상태에서는 회의실 등의 목록 조회가 가능하며 전화를 걸거나 받을 수 있고, 회의실에 참가 할 수 있습니다. 호출 가능한 API 목록은 아래와 같습니다.

* ~~sessionList (deprecated)~~
* roomList
* callList
* createRoom
* joinRoom
* offerCall
* answerCall
* makeSipNumber
* destroyRoom

## ACTIVE\_STATE

joinRoom 호출을 성공하여 회의실에 참가하여 음성 회의가 시작된 상태입니다. 이 상태에서는 회의실 참가자 목록 등의 목록 조회가 가능하며 다른 참가자의 영상을 송출하거나 구독할 수 있습니다. ( 영상 송출은 video room 타입에서만 가능 ) 호출 가능한 API 목록은 아래와 같습니다.

* partiList
* publishList
* screenList
* publish
* screenShare ( 회의실당 1명만 화면 공유 가능 )
* screenUnshare
* subscribe
* unsubscribe
* leave
* kickout
* sendMessage

## CONNECT\_STATE

publish 호출을 성공하여 영상을 송출하고 있는 상태입니다. 이 상태에서는 영상 회의실 참가자 목록 등의 목록 조회가 가능하며 다른 참가자의 영상을 구독할 수 있습니다. 호출 가능한 API 목록은 아래와 같습니다.

* partiList
* publishList
* screenList
* screenShare ( 회의실당 1명만 화면 공유 가능 )
* screenUnshare
* subscribe
* unsubscribe
* leave
* kickout
* sendMessage
* recordingStart
* recordingStop


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.omnitalk.io/commons/sdk-state.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
