Comments (6)
Hi, I think your docker-compose.yml
is not correct. You need to open the UDP ports for TURN to work:
old:
ports:
- "5222:5222"
- "5223:5223"
- "5269:5269"
- "5280:5280"
- "5443:5443"
- "3478:3478" # stun/turn
- "5349:5349" # stuns/turns
- "49152-49500:49152-49500" # turn
new:
ports:
- "5222:5222"
- "5223:5223"
- "5269:5269"
- "5280:5280"
- "5443:5443"
- "3478:3478/udp" # stun/turn
- "5349:5349" # stuns/turns
- "49152-49500:49152-49500/udp" # turn
from docker-ejabberd.
Unfortunately, that still doesn't work. :/
from docker-ejabberd.
Although not recommended from Docker best practices, could you give it a try to run it in the host network instead with Docker port forwarding? (although I am not convinced it is the problem).
instead of the ports
definition in the docker-compose.yml
, can you use:
network_mode: "host"
from docker-ejabberd.
Just tried it, and that doesn't seem to work either.
My tests involved starting video calls between two different accounts on different devices and different networks, a PC running Gajim
and an Android phone running Conversations
. I also tried testing the STUN/TURN server using the Trickle ICE test with negative results in all configurations.
It is possible that I am doing something wrong with the configuration outside of Ejabberd (DNS or port forwarding), but I've tried all the ideas I had and double-checked everything and nothing worked.
I might try setting up a Coturn
server, making sure it actually works with the ICE test, then configuring Ejabberd to use it, either temporarily (to see if the problem lies with docker-ejabberd
or with my external configuration) or as a permanent solution.
If anyone has any pointers of where I might be doing something wrong or any advice, that would be greatly appreciated.
from docker-ejabberd.
Hm.. I will need to test it myself locally, because I do not spot anything obvious in your configuration.
You may also try https://github.com/processone/eturnal/blob/master/doc/CONTAINER.md which uses the same stun
library as ejabberd. There is also a quick-start example for simple connectivity tests with trickle ICE and else.
P.S. I tested icetest.info with the following podman
command:
podman run --rm --name ejabberd -d -p 3479:3478/udp -v $PWD/ejabberd.yml:/home/ejabberd/conf/ejabberd.yml docker.io/ejabberd/ecs
For ejabberd.yml
I just used a copy w/o modification from here.
When configuring icetest with stun:203.0.113.3:3479
I have a positive STUN response. TURN I could not yet test.
P.S. 2:
I added the following auth_type: anonymous
for basic testing into my ejabberd.yml
stun listener:
-
port: 3478
ip: "::"
transport: udp
module: ejabberd_stun
use_turn: true
auth_type: anonymous
When running icetest.info with URL: turn:203.0.113.3:3479 Username: abc Credential: abc
I can obtain relay candidates.
Note: 203.0.113.3
is my public IP address -> turn_ipv4_address
.
from docker-ejabberd.
Thank you. I will go over my configuration one more time.
from docker-ejabberd.
Related Issues (20)
- Accessing the ejabberd server using GCP Kubernetes deployment HOT 2
- Ejabberd in GCP Kubernetes: Service not accessible in ingress. HOT 8
- How to format ejabberd nodes and establish s2s to form ejabberd cluster while deploying in GKE HOT 1
- Issues running debugger in DevContainers (CodeServer and VSCode) HOT 3
- After using the ecs Dockerfile to build the image and package it into the server, the following exception information appears HOT 5
- How to configure vhost docker configuration for Ejabberd cluster HOT 14
- After build the docker image unable to run it. Getting ejabberdctl file not found error. HOT 2
- Ejabberd + Postgres in Docker-compose HOT 2
- ** (Mix) The task "distillery.init" could not be found HOT 4
- CTL_ON_CREATE register admin error stopping init in 23.10 HOT 3
- Missing ejabberd version number in ecs 24.02 image HOT 1
- Failed to start external authentication program HOT 1
- `go.mod:3: invalid go version '1.21.3': must match format 1.23` HOT 2
- ejabberd arm64 docker image HOT 12
- ejabberd/ecs startup failing in machines where ipv6 is disabled HOT 3
- Cannot mount /conf to the host HOT 2
- Unable to restore from backup HOT 5
- Feature: Let ejabberd startup fail if either CTL_ON_CREATE or CTL_ON_START fail HOT 3
- No Captcha: ImageMagick is not installed inner the Image HOT 3
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 docker-ejabberd.