Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Removing redis dependency #39

Open
JamesHarrison opened this issue Aug 22, 2018 · 5 comments
Open

Removing redis dependency #39

JamesHarrison opened this issue Aug 22, 2018 · 5 comments

Comments

@JamesHarrison
Copy link
Owner

Redis has made some unfortunate licensing changes lately, and we don't actually use redis for much in OpenOB, just transferring some basic information about the link.

It would be better to either use an RPC mechanism between client/server to exchange information, with direct communication instead of using a server to mediate communication, or to use standard protocols in-band to transfer information from server to client.

@jonty-comp
Copy link
Contributor

I started work on a daemon ages ago over in my fork, but it doesn't really work yet. I'd be happy to move away from Redis, but I don't know anything about the more native platform features like RTCP/SIP!
Perhaps we could use a message broker like AMQP instead?

@JamesHarrison
Copy link
Owner Author

I'd love to some extent to have something in-band using GStreamer hooks to inject/retrieve data in the RTP stream - that has the huge bonus of simplifying firewall config and keeping communication tied to the actual data being transferred. That doesn't work well for pre-establishment or when you want to change remote settings that might disrupt the RTP stream, though.

As far as message broker protocols go, I'd prefer MQTT over AMQP since MQTT is very low overhead, and brokers like mosquitto do basically everything we're using redis for.

However, thinking a bit further, it might now be possible to pick up the AMWA standards: https://amwa.tv/projects/interface_specifications.shtml

The benefit of doing an AMWA implementation (which still defers to RTP for actual media transport, but needs an SDP or similar) would be interoperability - in theory OpenOB could be dropped into AMWA studios and take advantage of tools developed in that ecosystem where they're open source. It'd be a fair bit more work, though.

@M0GUR
Copy link

M0GUR commented May 20, 2019

I am considering modification of OpenOB to migrate from redis to MQTT as it doesn't look too difficult to implement (famous last words, I know!). Unless I'm missing something, it appears that everything redis related is neatly contained in link_config.py, could someone confirm this for me?

I took a look at AMWA, I think the relevant spec would be IS - 05, but I wasn't convinced it would be the right route to go down.

My long term goal is to build a link negotiation server, then to have a series of nodes that automatically connect to the server as soon as they have an active internet connection, a web interface on the server would allow them to be "patched" together including some form of NAT traversal. Using MQTT for config seems to fit the bill for that role too.

@jonty-comp
Copy link
Contributor

jonty-comp commented May 20, 2019 via email

@mickaelmonsieur
Copy link

And why not the ZeroMQ library used for example by the excellent suite Open Digital Radio (DAB+ multiplexer tools) ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants