Coder Social home page Coder Social logo

elixir-janus's People

Contributors

bblaszkow06 avatar m00lecule avatar qizot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

elixir-janus's Issues

Add better handling of positive errors returned by the gateway.

e.g. errors returned by plugins are handled as valid payload as we just take plugin data payload and don't check them for errors.

More similar errors can be found with session creation. We need a handler with hard-coded error codes pointing to atoms.

Integrate elixir-janus-plugin-videoroom

There's no need to keep the videoroom plugin as a separate project as it's closely coupled with elixir=janus and the cost of compiling unused plugins modules is negligible

Cleanup the codebase

The repo requires a cleanup:

  • Remove all Wembrane references
  • Read & fix the docs
  • Add docs where missing
  • Add CI
  • Use nice mix.exs template (e.g. from Membrane's elements)

Unhandled payloads: "webrtcup", "media"

These events are not handled when received directly instead of via event handler.

[warn] [Elixir.Janus.Connection #PID<0.1147.0>] Received unhandled payload: payload = %{"janus" => "webrtcup", "sender" => 4138050208507743, "session_id" => 5773390204438172}
[Elixir.Janus.Connection #PID<0.1147.0>] Received unhandled payload: payload = %{"janus" => "media", "receiving" => true, "sender" => 4138050208507743, "session_id" => 5773390204438172, "type" => "audio"}
[Elixir.Janus.Connection #PID<0.1147.0>] Received unhandled payload: payload = %{"janus" => "media", "receiving" => true, "sender" => 4138050208507743, "session_id" => 5773390204438172, "type" => "video"}

WS transport enhancement

We cannot use WebSockex adapter with any other transport, so the adapter could define a callback providing transport module and get rid of the one argument from here.
We might also consider setting adapter via config - I don't think anyone will ever need to use 2 adapters in one app

Originally posted by @bblaszkow06 in #5 (comment)

Refactor of payload handling in Connection

Payload handling inside Janus.Connection is now a mess.

  • Handling messages from different APIs could be extracted to separate modules
  • Parsed payloads should be returned via structs, e.g. PluginEvent, EventEmitterEvent, AdminApiPayload, etc. that would not map Janus messages 1:1

Handling event "hangup"

Hangup event is not handled properly:

14:53:51.839 [warn] [Elixir.Janus.Connection #PID<0.3941.0>] Received unhandled payload: payload = %{"janus" => "hangup", "reason" => "DTLS 
alert", "sender" => 4477049052983924, "session_id" => 8826813196729329}
14:53:51.839 [warn] [Elixir.Janus.Connection #PID<0.3941.0>] Received unhandled payload: payload = %{"janus" => "hangup", "reason" => "DTLS 
alert", "sender" => 5834026328109673, "session_id" => 8826813196729329}
14:53:51.839 [warn] [Elixir.Janus.Connection #PID<0.3941.0>] Received unhandled payload: payload = %{"janus" => "hangup", "reason" => "DTLS 
alert", "sender" => 8995912849119569, "session_id" => 8826813196729329}
14:53:51.839 [warn] [Elixir.Janus.Connection #PID<0.3941.0>] Received unhandled payload: payload = %{"janus" => "hangup", "reason" => "DTLS 
alert", "sender" => 4477972890429323, "session_id" => 8826813196729329}
14:53:51.840 [warn] [Elixir.Janus.Connection #PID<0.3941.0>] Received unhandled payload: payload = %{"janus" => "hangup", "reason" => "DTLS 
alert", "sender" => 8862006675845845, "session_id" => 8826813196729329}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.