Reaching From Outside Proxy-Url Confusion-Cors Policy Problem

We have a setup resembling this:


The Jitsi server set up with the domain name for example meet.insideproxy.com. The inner people can communicate with this domain name without a problem with the domain name meet.insideproxy.com.
And the proxy server has the domain name for example meet.outsideproxy.com.
We reach to the Jitsi server like: meet.outsideproxy.com:8787/
After reaching the server from outside and attending to a meeting via meet.outsideproxy.com:8787, We can see the web interface but we can’t open up camera and microphone and we can’t see the people inside the , they can’t see us either.

Browser console gives these output and errors:

2021-06-16T10:11:19.246Z [modules/xmpp/strophe.util.js] <t.a/r.Strophe.log>:  Strophe: Disconnect was called because: undefined Logger.js:154:22
2021-06-16T10:11:19.248Z [modules/xmpp/strophe.util.js] <t.a/r.Strophe.log>:  Strophe: Disconnect was called before Strophe connected to the server Logger.js:154:22
2021-06-16T10:11:19.253Z [modules/xmpp/xmpp.js] <connectionHandler>:  (TIME) Strophe disconnected:	 13088 Logger.js:154:22
(TIME) index.html loaded:	 172 asd:53:17
2021-06-16T10:11:19.750Z [modules/browser/BrowserCapabilities.js] This appears to be firefox, ver: 89.0 Logger.js:154:22
2021-06-16T10:11:21.167Z [features/base/redux] <persistState>:  redux state persisted. 250d1166151bcb9ea845d7e9d38eace9 -> e09505f22b8e98174ed4021b40e24237 Logger.js:154:22
2021-06-16T10:11:21.276Z [features/base/lastn] There is no active conference, not updating last N Logger.js:154:22
2021-06-16T10:11:21.281Z [features/base/lastn] There is no active conference, not updating last N Logger.js:154:22
2021-06-16T10:11:21.335Z [modules/connectivity/NetworkInfo.js] <updateNetworkInfo>:  updateNetworkInfo 
Object { isOnline: true }
Logger.js:154:22
2021-06-16T10:11:21.346Z [modules/statistics/AnalyticsAdapter.js] <dispose>:  Disposing of analytics adapter. Logger.js:154:22
2021-06-16T10:11:21.348Z [features/analytics] Initialized 0 analytics handlers Logger.js:154:22
2021-06-16T10:11:21.353Z [features/base/media] Start muted: Logger.js:154:22
2021-06-16T10:11:21.367Z [features/base/media] Start audio only set to false Logger.js:154:22
2021-06-16T10:11:21.579Z [features/filmstrip] <_onDisplayModeChanged>:  Displaying avatar-with-name for local, data: [{"isCurrentlyOnLargeVideo":true,"isHovered":false,"isAudioOnly":false,"tileViewActive":false,"isVideoPlayable":false,"canPlayEventReceived":false,"videoStream":false,"isRemoteParticipant":false,"isScreenSharing":false,"videoStreamMuted":"no stream"}] Logger.js:154:22
2021-06-16T10:11:21.667Z [features/base/devices] setAudioOutputDevice: undefined[default] Logger.js:154:22
2021-06-16T10:11:21.668Z [features/base/devices] Adjusting audio output is not supported Logger.js:154:22
2021-06-16T10:11:21.670Z [index.web] (TIME) document ready:	 2429 Logger.js:154:22
Service worker registered. 
ServiceWorkerRegistration { installing: null, waiting: null, active: ServiceWorker, scope: "https://meet.outsideproxy.com:9999/", updateViaCache: "imports", onupdatefound: null, pushManager: PushManager }
asd:36:33
2021-06-16T10:11:22.129Z [modules/RTC/RTCUtils.js] list of media devices has changed: 
Array(3) [ MediaDeviceInfo, MediaDeviceInfo, MediaDeviceInfo ]
Logger.js:154:22
2021-06-16T10:11:22.134Z [modules/RTC/RTCUtils.js] <init/<>:  Available devices:  
Array(3) [ MediaDeviceInfo, MediaDeviceInfo, MediaDeviceInfo ]
Logger.js:154:22
2021-06-16T10:11:22.143Z [features/base/devices] Device list updated:
audioInput:
		Mikrofon (Realtek High Definition Audio)[xSWT03j37xQ0Wn4+3a3eAw08jGFcbIPUADIDJ6awZlg=]
audioOutput:

videoInput:
		TOSHIBA Web Camera - FHD[JXYcevb14snA86m3w6cRfX80+RuABNbbGfxamZXZU7w=]
		OBS Virtual Camera[uJNpiKa2N/I8hkBd4FKMsP2vwHxyPxwaiVdMUXM+OeQ=] Logger.js:154:22
2021-06-16T10:11:22.225Z [modules/xmpp/xmpp.js] <_initStrophePlugins>:  P2P STUN servers:  
Array []
Logger.js:154:22
2021-06-16T10:11:22.239Z [modules/xmpp/xmpp.js] <connectionHandler>:  (TIME) Strophe connecting:	 2998 Logger.js:154:22
2021-06-16T10:11:22.251Z [modules/RTC/RTCUtils.js] <obtainAudioAndVideoPermissions/s<>:  Got media constraints:  {"video":{"height":{"ideal":720,"max":720,"min":180},"width":{"ideal":1280,"max":1280,"min":320},"facingMode":"user"},"audio":{"autoGainControl":true,"echoCancellation":true,"noiseSuppression":true}} Logger.js:154:22
HTTP “Content-Type” of “application/octet-stream” is not supported. Load of media resource https://meet.outsideproxy.com:9999/sounds/rejected.wav failed. asd
HTTP “Content-Type” of “application/octet-stream” is not supported. Load of media resource https://meet.outsideproxy.com:9999/sounds/joined.wav failed. asd
HTTP “Content-Type” of “application/octet-stream” is not supported. Load of media resource https://meet.outsideproxy.com:9999/sounds/outgoingRinging.wav failed. asd
HTTP “Content-Type” of “application/octet-stream” is not supported. Load of media resource https://meet.outsideproxy.com:9999/sounds/incomingMessage.wav failed. asd
HTTP “Content-Type” of “application/octet-stream” is not supported. Load of media resource https://meet.outsideproxy.com:9999/sounds/rejected.wav failed. asd
HTTP “Content-Type” of “application/octet-stream” is not supported. Load of media resource https://meet.outsideproxy.com:9999/sounds/outgoingStart.wav failed. asd
HTTP “Content-Type” of “application/octet-stream” is not supported. Load of media resource https://meet.outsideproxy.com:9999/sounds/left.wav failed. asd
2021-06-16T10:11:22.703Z [modules/RTC/RTCUtils.js] <_getUserMedia/</<>:  onUserMediaSuccess Logger.js:154:22
2021-06-16T10:11:22.723Z [modules/RTC/JitsiLocalTrack.js] <_setStream>:  Setting new MSID: {541d80ed-e531-4f5c-a39a-e0dc4cfca8bc} {0c8bd5ab-2028-4a9f-b650-82693f02256b} on LocalTrack[undefined,audio] Logger.js:154:22
2021-06-16T10:11:22.726Z [modules/RTC/JitsiLocalTrack.js] <_setStream>:  Setting new MSID: {8dd790e1-af2f-408b-bdb6-4b401f49d829} {60bd8c40-5d40-4cb3-9347-d02c54a88211} on LocalTrack[undefined,video] Logger.js:154:22
2021-06-16T10:11:23.168Z [features/base/redux] <persistState>:  redux state persisted. e09505f22b8e98174ed4021b40e24237 -> b7c6b5af86cd20a07052d70750e1b435 Logger.js:154:22
Cannot play media. No decoders for requested formats: application/octet-stream, application/octet-stream, application/octet-stream, application/octet-stream, application/octet-stream, application/octet-stream, application/octet-stream asd
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://meet.insideproxy.com/http-bind?room=asd. (Reason: CORS request did not succeed).

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://meet.insideproxy.com/http-bind?room=asd. (Reason: CORS request did not succeed).

2021-06-16T10:12:04.983Z [JitsiMeetJS.js] <getGlobalOnErrorHandler>:  UnhandledError: Strophe: request id 1.1 error 0 happened Script: null Line: null Column: null StackTrace:  t.a/r.Strophe.log@https://meet.outsideproxy.com:9999/libs/lib-jitsi-meet.min.js?v=5056:17:16531
error@https://meet.outsideproxy.com:9999/libs/lib-jitsi-meet.min.js?v=5056:1:24253
_onRequestStateChange@https://meet.outsideproxy.com:9999/libs/lib-jitsi-meet.min.js?v=5056:1:55700
EventHandlerNonNull*_newXHR@https://meet.outsideproxy.com:9999/libs/lib-jitsi-meet.min.js?v=5056:1:49466
n/O.Request@https://meet.outsideproxy.com:9999/libs/lib-jitsi-meet.min.js?v=5056:1:48354
_connect@https://meet.outsideproxy.com:9999/libs/lib-jitsi-meet.min.js?v=5056:1:50513
connect@https://meet.outsideproxy.com:9999/libs/lib-jitsi-meet.min.js?v=5056:1:30108
_interceptConnectArgs@https://meet.outsideproxy.com:9999/libs/lib-jitsi-meet.min.js?v=5056:25:7817
connect@https://meet.outsideproxy.com:9999/libs/lib-jitsi-meet.min.js?v=5056:1:162194
_connect@https://meet.outsideproxy.com:9999/libs/lib-jitsi-meet.min.js?v=5056:1:132063
connect@https://meet.outsideproxy.com:9999/libs/lib-jitsi-meet.min.js?v=5056:1:133220
c.prototype.connect@https://meet.outsideproxy.com:9999/libs/lib-jitsi-meet.min.js?v=5056:10:29871
e@https://meet.outsideproxy.com:9999/libs/app.bundle.min.js?v=5056:150:225985
m/<@https://meet.outsideproxy.com:9999/libs/app.bundle.min.js?v=5056:150:226197
m@https://meet.outsideproxy.com:9999/libs/app.bundle.min.js?v=5056:150:225205
f@https://meet.outsideproxy.com:9999/libs/app.bundle.min.js?v=5056:150:226391
K@https://meet.outsideproxy.com:9999/libs/app.bundle.min.js?v=5056:200:1258
createInitialLocalTracksAndConnect@https://meet.outsideproxy.com:9999/libs/app.bundle.min.js?v=5056:200:5921
init@https://meet.outsideproxy.com:9999/libs/app.bundle.min.js?v=5056:200:7720
async*h/</<@https://meet.outsideproxy.com:9999/libs/app.bundle.min.js?v=5056:150:298603
promise callback*h/<@https://meet.outsideproxy.com:9999/libs/app.bundle.min.js?v=5056:150:298579
a/</</<@https://meet.outsideproxy.com:9999/libs/app.bundle.min.js?v=5056:209:89379
@https://meet.outsideproxy.com:9999/libs/app.bundle.min.js?v=5056:662:30074
@https://meet.outsideproxy.com:9999/libs/app.bundle.min.js?v=5056:425:924122
@https://meet.outsideproxy.com:9999/libs/app.bundle.min.js?v=5056:425:923560
@https://meet.outsideproxy.com:9999/libs/app.bundle.min.js?v=5056:425:920270
@https://meet.outsideproxy.com:9999/libs/app.bundle.min.js?v=5056:425:919873
@https://meet.outsideproxy.com:9999/libs/app.bundle.min.js?v=5056:425:918738
@https://meet.outsideproxy.com:9999/libs/app.bundle.min.js?v=5056:425:917848
@https://meet.outsideproxy.com:9999/libs/app.bundle.min.js?v=5056:425:916983
@https://meet.outsideproxy.com:9999/libs/app.bundle.min.js?v=5056:425:915285
@https://meet.outsideproxy.com:9999/libs/app.bundle.min.js?v=5056:425:902038
@https://meet.outsideproxy.com:9999/libs/app.bundle.min.js?v=5056:425:898248
@https://meet.outsideproxy.com:9999/libs/app.bundle.min.js?v=5056:425:898009
@https://meet.outsideproxy.com:9999/libs/app.bundle.min.js?v=5056:425:896637
@https://meet.outsideproxy.com:9999/libs/app.bundle.min.js?v=5056:425:894140
@https://meet.outsideproxy.com:9999/libs/app.bundle.min.js?v=5056:425:892501
@https://meet.outsideproxy.com:9999/libs/app.bundle.min.js?v=5056:425:892319
@https://meet.outsideproxy.com:9999/libs/app.bundle.min.js?v=5056:425:891209
@https://meet.outsideproxy.com:9999/libs/app.bundle.min.js?v=5056:425:890674
@https://meet.outsideproxy.com:9999/libs/app.bundle.min.js?v=5056:425:887924
@https://meet.outsideproxy.com:9999/libs/app.bundle.min.js?v=5056:425:885816
@https://meet.outsideproxy.com:9999/libs/app.bundle.min.js?v=5056:425:885485
@https://meet.outsideproxy.com:9999/libs/app.bundle.min.js?v=5056:425:885160
@https://meet.outsideproxy.com:9999/libs/app.bundle.min.js?v=5056:425:885121
@https://meet.outsideproxy.com:9999/libs/app.bundle.min.js?v=5056:425:879534
@https://meet.outsideproxy.com:9999/libs/app.bundle.min.js?v=5056:425:878661
@https://meet.outsideproxy.com:9999/libs/app.bundle.min.js?v=5056:425:878366
@https://meet.outsideproxy.com:9999/libs/app.bundle.min.js?v=5056:425:875082
@https://meet.outsideproxy.com:9999/libs/app.bundle.min.js?v=5056:425:874973
Logger.js:154:22
2021-06-16T10:12:04.986Z [modules/xmpp/strophe.util.js] <t.a/r.Strophe.log>:  Strophe: request id 1.1 error 0 happened Logger.js:154:22
2021-06-16T10:12:04.987Z [modules/xmpp/strophe.util.js] <t.a/r.Strophe.log>:  Strophe: request errored, status: 0, number of errors: 1

And when I look at the network tab, I see that the http-bind requests are tried to be done via meet.insideproxy.com, which is the installation domain name of the jitsi server; but the client couldn’t reach it, since it is an inner server.

When I look at the jvb,jicofo, nginx, prosody logs, I couldn’t see anything.

Probable solutions(I am not sure)

1 - We can install the Jitsi server run with the same domain name as the outside proxy’s domain name, so the person trying to reach from outside, will get the same domain name as the proxy.
2 - Maybe we can change the configurations of the nginx and prosody, so they can run in all cases (I dont know how I will do this).

Do you have a suggestion? I can change anything, the setup is not used right now.

The doamin name which was set during the installation, the inside domain name and the outside domain name must be the same. If there is a local DNS server in the local network, set the A record using the local JMS IP and set the public IP for the global DNS

There isn’t a local DNS but we edited the /etc/hosts directory in the clients and proxy server, added the line: 10.0.0.100 meet.example.com, which kind of resolved domain name, and worked without a problem.