Just a quick update - that did the trick - everything is now working as intended. I still have some questions about how to make the voice calling/video features work in Messenger - what is the best way to reach out to you for that, Eggy?
Glad to hear everything else is working now.
For voice and video calls, most of the setup is already built into Messenger.
Go to
Admin CP > Eggy Messenger > Settings and make sure
Enable WebRTC voice calls and
Enable WebRTC video calls are both switched on. You can also enable screen sharing there if you want it.
Next, check the XenForo user group permissions for the members who will be using Messenger. Under the Eggy Messenger permissions, make sure they are allowed to make calls and use video. If a member belongs to several user groups, it is worth checking their effective permissions as well.
Your site also needs to be running over HTTPS. Browsers will normally refuse microphone and camera access on an insecure site. The first time somebody starts or answers a call, their browser should ask for permission to use their microphone and, for a video call, their camera.
Under
WebRTC connectivity you will see the server configuration. TURN relay is optional and is disabled by default. You can initially leave the WebRTC server configuration as:
[]
That allows Messenger to try a direct connection between the people in the call.
If calls ring correctly but the actual audio or video will not connect for certain users, especially when they are on different networks, mobile data, company networks or restrictive routers, that is normally where STUN/TURN comes in.
STUN helps the two browsers establish a direct connection. TURN goes a step further and relays the media when a direct connection is not possible. Messenger supports both, including coturn with temporary credentials, but I would only worry about setting up TURN if you actually need it.
The Node.js realtime server is also recommended if you are using it. Calls can fall back to Messenger's AJAX system, but realtime gives much faster signalling for ringing, answering and exchanging the WebRTC connection information.
So for the first test I would do this:
- Enable voice and video calls in Messenger settings.
- Check the Messenger call/video user group permissions.
- Make sure the site is HTTPS.
- Leave TURN disabled initially.
- Test between two different accounts, preferably on two different devices.
- Allow microphone/camera access when the browser asks.
- If the call rings but never properly connects, then we can look at adding STUN or setting up TURN for your server.
There is also
Eggy Messenger > Diagnostics in the Admin CP which will check the Messenger installation, realtime gateway and whether TURN has been configured correctly if you enable it.
If you get as far as the call ringing but have no audio/video, let me know exactly what happens at that point and we can go through the WebRTC side from there.