OBS WebRTC data channel not connecting - webrtc

I have a project that requires a WebRTC data channel to work in OBS. It works great on Windows but won't connect on Mac.
An easy way to test it is to open up this page in a browser that supports webRTC: https://mdn-samples.mozilla.org/s/webrtc-simple-datachannel/
You should be able to connect, type a message and send and receive it.
In OBS if you add a browser with the address and try to do the same it doesn't work.
No errors show up in the console when debugging but what is interesting is these logs show up in terminal:
[0516/215229.218359:ERROR:data_channel.cc(44)] Accepting maxRetransmits = -1 for backwards compatibility
[0516/215229.218421:ERROR:data_channel.cc(49)] Accepting maxRetransmitTime = -1 for backwards compatibility
Any help would be appreciated.

Related

debugging chrome remotely - doesn't open websocket

Im running chrome headless through chromedriver and selenium via python.
I've run into the following issue both on Mac and Linux.
Im starting chrome as follows:
if self.headless:
options.headless = True
options.add_argument("--headless")
if self.debug_port:
logging.info(f"Setting up remote debugging on port {self.debug_port}")
options.add_argument(f"--remote-debugging-port={self.debug_port}")
options.add_argument(f"--remote-debugging-address=0.0.0.0")
If I connect to http://localhost:9222 from another headed instance of chrome I can see the list of sessions and connect to it seamlessly. At which point i have a window opened up with a screencast of the remote session and the dev console.
Here's that successful example:
When I connect to http://192.168.1.194:9222 I get the list of sessions just fine and upon selecting one the dev console opens but it doesn't start the websocket connection to ws://192.168.1.194 so the screencast and remote debugging capabilities are not available.
Here's that failed example:
I've captured har files and uploaded them here if you want to take a look
Using the following steps I was able to debug remotely. However the screencast functionality did not work. Ultimately that's what I needed so this is only a 50% solution in my case.
So, as noted above in the comments, what's blocking remote debugging from working is that the chrome debugger links out to https://chrome-devtools-frontend.appspot.com/..... and passes a value of ws://192.168.1.194 for the websocket parameter. Any browser will inherently block this, based on it being mixed content - i.e: https + ws
What's needed here is to run the chrome dev tools frontend on a http server
and direct your chrome instance to that server instead of the appspot instance.
Solution Steps
1 Install depot_tools (pre-requisite for building)
https://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html#_setting_up
2 Checkout the devtools-frontend repo
https://github.com/ChromeDevTools/devtools-frontend/blob/master/docs/workflows.md#checking-out-source
3 Build chrome devtools frontend
https://github.com/ChromeDevTools/devtools-frontend/blob/master/docs/workflows.md#build
4 Start the devtools-frontend http server
https://github.com/ChromeDevTools/devtools-frontend/blob/master/docs/workflows.md#running-in-hosted-mode
5 Run 2 instances of chrome and use one to debug the other
5.1 Start first instance of chrome headless
...with remote debugging enabled. See the python way in the question above or do it from the command line with the same arguments
5.2 Start a second instance of chrome
...using a different user data dir --user-data-dir=<some-path>
5.3 Navigate to http://192.168.1.194:9222
Use whatever the IP address of the first chrome instance is and the port that you chose.
5.4 Create a link to the local dev server
The 2nd instance of chrome will now be showing you links to debug each of the open tabs of the 1st instance. However the links will still to go https://chrome-devtools-frontend.appspot.com/..... You'll need to copy n paste the link you want and replace the hostname with the hostname of the devtools frontend that you started in step 4
Walla!!
If you figure out how to get the screencast working please comment below! 🙏
N.B:
I also tried using the npm run server command in the devtools frontend but for some reason that server didn't work at all ¯\_(ツ)_/¯

IE lan settings revert back when rpt open it during recording http proxy

I am beginning to use Rational Performance Tester to do some load/performance testing and I stuck at the first step - recording a script. I am using IE 11 and I am disabling internet by going to Internet Options>Content>Lan Settings. Then I try to open some website and it won't open - which is good (expected behaviour). Then I run my RPT to do the recording and the Internet options revert back and 'Automatic Configuration' check box get checked (unwanted behaviour). The HTTP proxy recorder say that it is accepting connection at (some number) port but open connections stay 0. The bytes in the recording window do not move with any click, thus nothing being recorded. Thanks in advance!
I have only tried it in IE 11. Don't have access to any other browser (company policy)
There is no coding required.
I expect open connections to move above 0
This issue was solved when I had admin rights to the machine and application - run IBM RPT as administrator. Thus I was able to record the http traffic and successfully play it back using the load agents.

PubBub WebRTC Android Demo is Not Connecting from Android to Android

When I tried the demo app https://kevingleason.me/AndroidRTC/, it was working as expected.
But when I tried with two android devices, I can make a call and receive call, but they don't get connected. In both devices, its own camera feed is displayed with a text "Connecting...". I tried on both my home Wifi and mobile data 3G. There is no error that I can find in log.
Could anyone help me to resolve the issue please. What is that I am missing here?
I am using the latest code from https://github.com/GleasonK/AndroidRTC which already has the Xirsys ICE servers configured. But I noticed that the Xirsys ICE servers is not added in the below line from VideoChatActivity.java, so I also tried adding that servers into the PnSignalingParams' constructor, but still facing the same Connecting message only.
List<PeerConnection.IceServer> servers = getXirSysIceServers();
if (!servers.isEmpty()) {
this.pnRTCClient.setSignalParams(new PnSignalingParams(servers));
}
I have fixed the issue. It was little tricky. If you see the log, it will show you that the application always execute createOffer method. So both client A and client B will send an offer in same time. You can fix that issue by giving some condition so if the client A give an offer, and the client B will response by give an answer.
To see if any error occurs you can use method onCreateFailure(String s) and onSetFailure(String s) in PnPeer.java.
Hope this will help.

Issue for Kurento one2many webRTC video streaming using RTSP steam as source

I have done the code changes by referring "kurento-one2many-call" node sample for webRTC video streaming using RTSP steam as source. Code is available on GitHub Repository. Presenter/source(PlayerEndpoint) is loaded on start of node application, and viewer will stream video stream by clicking on viewer button. No need to add presenter or click on presenter button.
But I am facing problem with this code, When I will click on viewer button, no any error on Chrome console log and on Firefox it shows "ICE failed, see about:webrtc for more details" error on console log. It just showing spinner and video did not get displayed.
If we monitor Node log, then everything is fine with it, PlayerEndpoint is created successfully and responding to ICE messages. Last line of log is printed as "Sending viewer candidate." after that it will stuck, nothing will be printed later. Same will happen for new viewer request.
Please help me to get out of this issue, or suggest me any code changes.
The STUN server you have configured in your WebRtcEndpoint.ini (173.194.66.127) is not generating any candidates. It's very likely that the server is down. Please use any other publicly available STUN server from this list. Also, don't forget to check that the server is indeed working by any of the following methods
Via the Trickle ICE test page. Don't forget to remove the existing STUN server.
In your KMS box, through the stun command. You might need to install the package via sudo apt-get install stun

browserstack requesting localhost:45691

Anyone any idea why browserstack might be constantly requesting localhost:45691. When I open browserstack in Chrome I get this request continuously.
XMLHttpRequest cannot load localhost:45691. Origin http://www.browserstack.com is not allowed by Access-Control-Allow-Origin.
In FF its showing a JS file causing the issue
localhost:45691/
http://www.browserstack.com/assets/bsjs.js?1376347645
Anyone having this issue? I even sent a report to browser stack 3 days ago and nothing either. This is driving me crazy.
BrowserStack provides a feature of Local Testing via Command Line Tunnel. To check if tunnel is connected or not, their JavaScript(JS) tries to talk to a http server which runs on port 45691 inside BrowserStackTunnel.jar.
When you don't have this Command Line Tunnel set, then the JS gets these errors, which turns to 200 OK response as soon as tunnel gets connected.