Comments (8)
Hi Damon,
this is Lorenzo, we met in San Francisco for FOMS in November, nice to see you see potential in this project! A REST documentation is definitely a good suggestion, we'll start preparing one right away.
Just to give you an idea of how it works (I'll add details in the documentation itself), the endpoints you refer to are basically 3:
- the gateway root (/janus by default, but configurable), which you only POST to in order to create a gateway session;
- a gateway session endpoint (e.g., /janus/12345678, using the identifier retrieved with the previous create), which you either send a GET to (long poll for events and messages from plugins) or a POST (to create plugin handles or manipulate the session);
- a plugin handle endpoint (e.g., /janus/12345678/98765432, appending the handle identifier to the session one) which you only send POST messages to (messages/negotiations for a plugin, handle manipulation), as all events related to this handle would be received in the session endpoint GET (our library then redirects the incoming messages to the right handle internally).
The messages that flow around are JSON-based, and have a simple syntax for creating/destroying sessions and handles, and for describing messages and negotiation.
I'll provide more details in the next commit, but feel free to ask for more clarifications in the meanwhile if needed.
Lorenzo
from janus-gateway.
Hey Lorenzo - Yeah I remember meeting you there :)
Thanks for the info so far, I've made some good progress using the demos to get an idea of what is going on and made some reasonable progress on a module that we'll release as part of the rtc.io suite that will help to interface with Janus. After I've had a chat with Silvia tomorrow (Sydney time) I'll push something up to github.
Cheers,
Damon.
from janus-gateway.
Damon,
that would be great indeed, thanks for that! Keep us posted :-)
from janus-gateway.
FYI, I've just added the documentation to doxygen. You can read it online here:
http://janus.conf.meetecho.com/docs/rest.html
If it's not clear enough, let me know and I'll try and improve it.
from janus-gateway.
Thanks heaps Lorenzo - the docs look excellent, but if I come across anything I'll let you know.
Cheers,
Damon.
from janus-gateway.
Just wondering how ice candidates are communicated from Janus to the client. I can see in the streaming test example (and in the docs) that SDP is communicated through the jsep
attribute in event responses.
At this stage though I can't see how ice candidates are communicated back. Any tips?
from janus-gateway.
I think I'm showing that I spend most of my time with the browser apis with that last question, and from the stuff I've been having a look at today I think the ice candidates are communicated in the sdp. Is this correct?
from janus-gateway.
Yes, ICE candidates are communicated in the SDP as part of the negotiation process. In particular, they are sent in the "jsep" field of messages addressed to a plugin, or in events that the plugin sends to you (and to which the gateway attaches the "jsep", as plugins don't handle candidates themselves).
We're of course planning to support Trickle ICE as well in next versions (that is, where you send an SDP without candidates right away and then only the candidates when they're available), but right now the idea was to keep it simple and wait for the candidates to be all available before sending the SDP. In fact, only Chrome supports it right now (even though I know Firefox is working on it), which made things simpler in JavaScript too.
from janus-gateway.
Related Issues (20)
- [1.x] NACK and REMB with SIP plugin audio HOT 2
- [1.x] ipv4/ipv6 public IP confusion HOT 4
- [1.x] Add background with janus.plugin.videoroom HOT 1
- [1.x] janus-pp-rec fails with faststart option when running on AV1 recordings
- [1.x] HMAC-Signed token authentication works with janus.plugin.streaming HOT 1
- [1.x]Janus crash: transports/janus_http.c:1658
- [1.x] Failed to execute 'setRemoteDescription' on 'RTCPeerConnection': Failed to set remote answer sdp: The order of m-lines in answer doesn't match order in offer. Rejecting answer. HOT 3
- [1.x] videroom: simulcast object in 'attached' message is not documented HOT 1
- JanusCon is back! HOT 1
- Toggle between rear and front camera in Javascript API[1.x] HOT 1
- [1.x] Getting same `feed_id` for 2 different `mid` HOT 5
- [1.x] Fatal (internal) error in ../silk/float/LPC_analysis_filter_FLP.c, line 242: assertion failed: 0 HOT 10
- [1.x] Janus media ports not accessible in Google Kubernetes Container Pods, hence ICE is failing HOT 3
- RNNoiseAudioBridge: we are testing this branch and getting echo HOT 1
- [1.x] Sip session get stuck HOT 12
- No call back triggering in 'onlocalstream' HOT 2
- [1.x] Streaming plugin does not send "started" event to event handlers HOT 2
- Add unauthenticated no-payload ping endpoint for health checks HOT 3
- Build fails with latest libsrtp version HOT 9
- [0.x] [janus.js] black screen or streaming stops periodically when connected through WebRTC (Chromium only) HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from janus-gateway.