Closed
Bug 1184888
Opened 10 years ago
Closed 9 years ago
WebRTC peer to peer call is not initiating in Firefox browser [Firefox 39.0 version]
Categories
(Core :: WebRTC, defect)
Tracking
()
RESOLVED
INVALID
People
(Reporter: brahma.sheoran, Unassigned)
Details
Attachments
(9 files)
Hi Team,
We are trying to initiate webrtc Peer to peer call in firefox browser but it seems to be not working. When we call from firefox browser are able to see below warning/error in console:
Mandatory/optional in createOffer options is deprecated! Use {"offerToReceiveAudio":true,"offerToReceiveVideo":true} instead (note the case difference)!
Note: This is working perfectly in Chrome browser.
Please have a look at this issue.
Updated•10 years ago
|
Component: Web Apps → Untriaged
Hello ,
Is there any update on this issue ? This is critical for us. Please prioritize accordingly.
Updated•10 years ago
|
Component: Untriaged → WebRTC
Product: Firefox → Core
Comment 2•10 years ago
|
||
We need more information to figure out what's going wrong. The problem could be in the application code. (Even though it works in Chrome doesn't mean it matches the spec.) For now, I'm moving this bug to unconfirmed. Can we see a sample of the app source code that's attempting to make the call? Can you upload the Firefox logs of the failed call to this bug? (Logs from a working call on Chrome could also help.) Please see https://wiki.mozilla.org/Media/WebRTC/Logging if you need help enabling the Firefox logs. Can you modify your application to indicate which JS calls or callbacks didn't happen?
Also, this was filed under the wrong component. For new bug reports about WebRTC, please file under Core::WebRTC else it will take a couple of extra days for us to see the bug report. Thanks.
Status: NEW → UNCONFIRMED
Ever confirmed: false
Flags: needinfo?(brahma.sheoran)
Updated•10 years ago
|
Severity: critical → normal
Hello
Please find attached logs for chrome console and server logs in case of success.
When trying in firefox [Version - 39+] then getting below error in console:
Password fields present on an insecure (http://) page. This is a security risk that allows user login credentials to be stolen.[Learn More] <unknown>
Mandatory/optional in createOffer options is deprecated! Use {"offerToReceiveAudio":true,"offerToReceiveVideo":true} instead (note the case difference)!
Also as requested please find attached sample code that we are using to initiate the call.
Please let me know in case you need any other information.
Thanks
Brahma
Comment 7•10 years ago
|
||
(In reply to Brahma from comment #5)
> Please find attached logs for chrome console and server logs in case of
> success.
Chrome logs aren't enough. Please add the Firefox logs obtained using the methods indicated in comment 2. You can also use about:webrtc to examine the peerconnection, show the ICE info, and by using the "Connection log" button at the bottom, dump lots of detail about ice/etc negotiation.
>
> When trying in firefox [Version - 39+] then getting below error in console:
>
> Password fields present on an insecure (http://) page. This is a security
> risk that allows user login credentials to be stolen.[Learn More] <unknown>
> Mandatory/optional in createOffer options is deprecated! Use
> {"offerToReceiveAudio":true,"offerToReceiveVideo":true} instead (note the
> case difference)!
This is not related to your issue; it's a warning about using deprecated options to createOffer. This is what's triggering it:
this.constraints = {
mandatory : {
OfferToReceiveAudio : (this.remoteVideo !== undefined),
OfferToReceiveVideo : (this.remoteVideo !== undefined)
}
};
i.e. the 'O' should be 'o'
> Also as requested please find attached sample code that we are using to
> initiate the call.
> Please let me know in case you need any other information.
That's all hidden deep in the kurento code you're using. Please provide the about:webrtc info for an attempted call (the peerconnection data, and the Connection Log).
The bug is likely in the kurento code itself, or in how you're using it (ice server or configs, assuming something is synchronous when it's not, etc). If you can point to peerconnection/etc call that's not happening correctly in Firefox (not your server), we'll look at it.
If none of this is making sense, I and my team hang out on moznet irc in #media. You can ask your questions there and likely get real-time responses (depending on the exact time of day). I can't promise that we'll debug your application, but we can answer your questions about Firefox. Most of our WebRTC developers (myself included) are in the US and Europe.
Hi,
Please find attached the debug logs generated by about:webrtc. We have observed that when we trying to initiate a call and creating sdpOffer using following code and its not going beyond this line and got hang up there this is causing the issue:-
kurentoUtils.WebRtcPeer.startSendRecv(videoOutput, document.getElementById('videoInput'), function (
offerSdp, wp) {
webRtcPeer = wp;
var message = {
id: 'call',
from: username,
to: Name,
location: locationName,
sdpOffer: offerSdp,
title: Title
};
Please check why its not able to create the peer using Kurento API but same is working fine with Chrome.
Comment 10•10 years ago
|
||
These appear to just be the debug logs. We need the connection logs that you
get in the browser about:webrtc pane, not the ones from /tmp/WebRTC.log
Reporter | ||
Comment 11•10 years ago
|
||
We are not able to see connection logs in browser using about:webrtc.
Please find attached screenshot and let us know which logs we need to enable.
Reporter | ||
Comment 12•10 years ago
|
||
Comment 13•10 years ago
|
||
It only shows them while the PeerConnection is live.
Reporter | ||
Comment 14•10 years ago
|
||
Even we are not able to initiate webrtc call and it got stuck in below code while call initiation:
kurentoUtils.WebRtcPeer.startSendRecv(videoOutput, document.getElementById('videoInput'), function (
offerSdp, wp) {
webRtcPeer = wp;
var message = {
id: 'call',
from: username,
to: Name,
location: locationName,
sdpOffer: offerSdp,
title: Title
};
Comment 15•10 years ago
|
||
I have no idea what that code does since it's just calling some library.
The console.log claims that the localdescription was set, which means there should be
a live PeerConnection.
Reporter | ||
Comment 16•10 years ago
|
||
No there is no open connection at this time and no connection logs appear.
Reporter | ||
Comment 17•10 years ago
|
||
If you want to see the scenario we can share desktop screen. Please let us know.
Comment 18•10 years ago
|
||
(In reply to Brahma from comment #17)
> If you want to see the scenario we can share desktop screen. Please let us
> know.
That's not helpful. Please collect the logs described in the first sections
of comment #2. We do not need the Media logs.
Reporter | ||
Comment 19•10 years ago
|
||
Just one update here, when tried from firefox to chrome then its working and call is initiating [video is not coming but audio is there]. But firefox to firefox its not working at all.
Comment 20•10 years ago
|
||
(In reply to Brahma from comment #19)
> Just one update here, when tried from firefox to chrome then its working and
> call is initiating [video is not coming but audio is there]. But firefox to
> firefox its not working at all.
I'm sorry, we can't diagnose this without the information requested in comment 18
Reporter | ||
Comment 21•10 years ago
|
||
Hi Eric,
As we already said the peer connection is itself not getting created and it git stuck at the code line mentioned in comment 14 . So please tell us how we can share the logs that will only generated after creation of peer connection.
Comment 22•10 years ago
|
||
(In reply to Brahma from comment #21)
> Hi Eric,
> As we already said the peer connection is itself not getting created and it
> git stuck at the code line mentioned in comment 14 . So please tell us how
> we can share the logs that will only generated after creation of peer
> connection.
I'm not sure how to make this any clearer.
1. Set the environment variables indicated in
https://wiki.mozilla.org/Media/WebRTC/Logging under
"Signaling"
2. Run your test with Firefox from the console.
3. Send us the file that you stored the output in.
Reporter | ||
Comment 23•10 years ago
|
||
Hi Eric
We have gone through steps that you mentioned but we are not sure how and where to set these variable ? Are these environment variables ? Could you please help us in setting up these variables so that we can provide you the required logs.
Comment 24•10 years ago
|
||
Yes, they are environment variables.
Reporter | ||
Comment 25•10 years ago
|
||
Okie.. we will try with these environment variables and try to generate logs that you required.
Reporter | ||
Comment 26•10 years ago
|
||
Hi Eric
Today we have tried with setting up environment variables mentioned by you but again we are not getting anything in logs. We have mentioned in comment#8 that its not able to initiate the call and stuck at code mentioned in comment#8.
Below is the command through which we have setup environment variables:
mvn spring-boot:run -Dserver.port=8082 -DNSPR_LOG_MODULES=signaling:5,mtransport:5 -DNSPR_LOG_FILE=/home/verizon/tmp/log.log clean compile exec:java
Please check and let us know how we can debug it further.
Comment 27•10 years ago
|
||
The variables need to set on firefox, not on your server.
Reporter | ||
Comment 28•10 years ago
|
||
We have tried using server variables.
So now just want to confirm how to set firefox variables i.e using about:config or about:webrtc ?
Could you please let us know exactly where and how to set up these variables. That will be helpful for us.
Comment 29•10 years ago
|
||
As stated on the page and in comment 26, they are environment variables.
Comment 30•10 years ago
|
||
Hi Eric,
Do you refer to comment 22 instead of comment 26 in comment 29?
To clarify, you mean the machine environment where Firefox is launched, right? Please confirm.
Comment 31•10 years ago
|
||
Yes, the machine environment where Firefox is launched.
Reporter | ||
Comment 32•10 years ago
|
||
Hi Eric
We have tried Peer to Peer connection call by setting up environment variables and this time we got the logs. As requested please find attached logs and have a look at this issue.
We have enabled below variables:
"set NSPR_LOG_MODULES=signaling:5,mtransport:5"
"set NSPR_LOG_FILE=%TEMP%\logs.txt"
Reporter | ||
Comment 33•10 years ago
|
||
Comment 34•10 years ago
|
||
(In reply to Brahma from comment #33)
> Created attachment 8644897 [details]
> Logs using environment variables in firefox
Thanks. This is a start but I'm not yet sure what's going on.
Can you re-run with "set NSPR_LOG_MODULES=signaling:5,mtransport:5,jsep:5"
Reporter | ||
Comment 35•10 years ago
|
||
I have re-executed with this variable and got the logs.
Please find attached new logs.
Reporter | ||
Comment 36•10 years ago
|
||
Comment 37•10 years ago
|
||
OK, so these logs indicate that you are successfully calling SetLocalDescription() but
then nothing else. You're definitely creating a PeerConnection. You don't seem to be
setting a STUN server because you're not getting any non-host candidates.
It appears that the logging levels have changed, however, so
I'm not seeing as much as I wanted.
set NSPR_LOG_MODULES=signaling:10,mtransport:10,jsep:10
Reporter | ||
Comment 38•10 years ago
|
||
Please find attached logs.
Reporter | ||
Comment 39•10 years ago
|
||
Comment 40•10 years ago
|
||
As far as I can tell, you're simply never adding a remote description at all.
You just do CreateOffer(), SetLocalDescription() and stop.
What does your JS think is happening.
Comment 41•10 years ago
|
||
The kurento-utils.js you're using seems to be old... perhaps fairly old, as it doesn't seem to match the code I see in github at all. The github version I see has no "startSendRecv" at all.
Note that kurento uses (at least now) a version of adapter.js, which polyfills over differences between the browsers. If you're using an old version of kurento, it may be using a very old version of adapter.js.
Beyond that, I think you'll need to simply debug your application (and the library it's layered on top of). Set lots of breakpoints, step through code. Find what's not happening. (is it failing to get end-of-candidates? is onsdpoffer ever being called? (it would be defined when you create the WebRtcPeer object, and is called when ice candidates are completed) etc.
What stun/turn servers are being used? These would be defined in the call to create the RTCPeerConnection; check in the debugger (line 97 of your kurento-utils.js)
Reporter | ||
Comment 42•10 years ago
|
||
Ok we will check this and get back to you.
Comment 43•9 years ago
|
||
(In reply to Brahma from comment #42)
> Ok we will check this and get back to you.
Hi Brahma, Any update?
Flags: needinfo?(brahma.sheoran)
Reporter | ||
Comment 44•9 years ago
|
||
Hi
We are checking this by upgrading Kurento media server. We will check and update you on this.
Thanks
Brahma
Flags: needinfo?(brahma.sheoran)
Comment 45•9 years ago
|
||
From later bugs, I'm assuming this is now resolved at your end
Status: UNCONFIRMED → RESOLVED
Closed: 9 years ago
Resolution: --- → INVALID
You need to log in
before you can comment on or make changes to this bug.
Description
•