Metadata-Version: 2.4
Name: janus-videocall-plugin
Version: 3.0.0
Summary: Typed async client for the Janus VideoCall plugin
Author-email: Leydotpy <leydotpy.dev@gmail.com>
License-Expression: MIT
Project-URL: Documentation, https://janus.conf.meetecho.com/docs/videocall.html
Project-URL: JanusGateway, https://janus.conf.meetecho.com/
Classifier: Development Status :: 4 - Beta
Classifier: Framework :: AsyncIO
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Typing :: Typed
Requires-Python: >=3.11
Description-Content-Type: text/markdown
Requires-Dist: janus-api-core<4,>=3
Requires-Dist: pydantic<3,>=2.12
Provides-Extra: test
Requires-Dist: pytest>=8; extra == "test"
Requires-Dist: build>=1.2; extra == "test"

# janus-videocall-plugin

Typed, independently installable bindings for `janus.plugin.videocall`. The
package depends on `janus-api-core` and does not pull in unrelated Janus plugin
implementations.

```python
from janus_api.models.base import Jsep
from janus_videocall_plugin import VideoCallPlugin

phone = VideoCallPlugin(session=session)
await phone.attach()
await phone.register("alice")
calling = await phone.call("bob", Jsep(type="offer", sdp=offer_sdp))
```

All six documented operations (`list`, `register`, `call`, `accept`, `set`,
and `hangup`) are asynchronous. `call` requires an offer, `accept` requires an
answer, and `set` optionally carries an offer or answer for renegotiation.
Detach the handle to release its username; Janus has no `unregister` request.

Models follow the official
[VideoCall API](https://janus.conf.meetecho.com/docs/videocall.html). Outbound
payloads reject unknown keys, while inbound events retain additions made by a
future Janus release.

