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

True P2P Hole Punch for IoT to run Without Cloud Premises and or Servers (IDFGH-7411) #8989

Open
filzek opened this issue May 19, 2022 · 4 comments
Assignees
Labels
Status: Selected for Development Issue is selected for development Type: Feature Request Feature request for IDF

Comments

@filzek
Copy link

filzek commented May 19, 2022

In the current days IoT become a role play for smartdevices where data was collect and consumed all over the places.

Using P2P Hole Punch could makes ESP-IDF SDK to be able to allow devices to open the connection to APP side and APP side to device without need to interface to any other servers to makes the data flow.

Images, sensor data and also a VoIP two channel audio to intradevices, intra APP~Device being complete able to be non cloud dependant.

So, this request would be the awesome 2022 feature to be implement over esp-idf esp32 series.

@filzek filzek added the Type: Feature Request Feature request for IDF label May 19, 2022
@espressif-bot espressif-bot added the Status: Opened Issue is new label May 19, 2022
@github-actions github-actions bot changed the title True P2P Hole Punch for IoT to run Without Cloud Premises and or Servers True P2P Hole Punch for IoT to run Without Cloud Premises and or Servers (IDFGH-7411) May 19, 2022
@euripedesrocha
Copy link
Collaborator

Hi @filzek, this feature is in our pipeline, but we'll likely not work on it soon. We welcome any PR and contributions in this area.

@espressif-bot espressif-bot added Status: Selected for Development Issue is selected for development and removed Status: Opened Issue is new labels Oct 21, 2022
@espressif-bot espressif-bot added Status: In Progress Work is in progress and removed Status: Selected for Development Issue is selected for development labels Apr 14, 2023
@espressif-bot espressif-bot added Status: Selected for Development Issue is selected for development and removed Status: In Progress Work is in progress labels Jul 18, 2023
@filzek
Copy link
Author

filzek commented May 22, 2024

hi @espressif-abhikroy any progress we could test on this?

@david-cermak
Copy link
Collaborator

Hi @filzek

We haven't planned to work on this feature, yet, but looked around for libraries that could be ported to ESP platform. Here's one that doesn't need any dependencies, is relatively compact and published under MPL2.0 license:
https://github.com/paullouisageneau/libjuice
After taking a closer look, it seems like we only need to provide netif list (similar to linux's ifaddrs.h) and getnameinfo() implementation (in both cases, a very simplified version could be provided -- 1) we usually want to use only one netif for the actual NAT traversal; 2) could simply supply inet_ntop(), no need to provide reverse DNS lookup)

we still don't plan on officially adding this to IDF, in 2024, but the juice library looks very interesting and, if you're willing to spend some time on porting it, opening a PR, testing it, we will support the effort and help with certain low level implementations.

@david-cermak
Copy link
Collaborator

FYI: There's been an effort of development of a simplified layer of linux-like implementations of common signalling and network interface abstractions in espressif/esp-protocols#671
This little component opens the door to porting many linux/host-platform libraries, including the aforementioned libjuice.
You can check my initial (very WIP) port in https://github.com/david-cermak/esp-ice (including the mqtt example demonstrated on the last community event)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Status: Selected for Development Issue is selected for development Type: Feature Request Feature request for IDF
Projects
None yet
Development

No branches or pull requests

5 participants