-
Notifications
You must be signed in to change notification settings - Fork 323
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Bug]: Trickle ICE option is not included in offer when using only Data Channels in v1.8.1 #1816
Comments
Hello, this is resolved in #1813 |
@jdelapla |
Currently we're only going to support our viewer in trickle-ice scenarios as it's the standard for WebRTC today. If there is significant demand for C SDK viewer non-trickle ice we can add that functionality at a later time. |
@jdelapla src/source/PeerConnection/SessionDescription.c // Populate a SessionDescription with the current state of the KvsPeerConnection
STATUS populateSessionDescription(PKvsPeerConnection pKvsPeerConnection, PSessionDescription pRemoteSessionDescription,
PSessionDescription pLocalSessionDescription)
{
ENTERS();
…
if (pKvsPeerConnection->canTrickleIce.value) {
STRCPY(pLocalSessionDescription->sdpAttributes[pLocalSessionDescription->sessionAttributesCount].attributeName, "ice-options");
STRCPY(pLocalSessionDescription->sdpAttributes[pLocalSessionDescription->sessionAttributesCount].attributeValue, "trickle");
pLocalSessionDescription->sessionAttributesCount++;
}
…
} When adding the media channel, it is added regardless of the flag, as shown in the code below. // Populate a single media section from a PKvsRtpTransceiver
STATUS populateSingleMediaSection(PKvsPeerConnection pKvsPeerConnection, PKvsRtpTransceiver pKvsRtpTransceiver,
PSdpMediaDescription pSdpMediaDescription, PSessionDescription pRemoteSessionDescription,
PCHAR pCertificateFingerprint, UINT32 mediaSectionId, PCHAR pDtlsRole, PHashTable pUnknownCodecPayloadTypesTable,
PHashTable pUnknownCodecRtpmapTable, UINT32 unknownCodecHashTableKey)
{
ENTERS();
…
STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeName, "ice-options");
STRCPY(pSdpMediaDescription->sdpAttributes[attributeCount].attributeValue, "trickle");
attributeCount++;
…
} |
Please confirm you have already done the following
Describe the bug
I have applied the following patch to the v1.8.1 samples to disable the media channel and use only the data channel.
When I ran kvsWebRTCClientViewer with these changes, I noticed that the offer sent to the signaling channel did not include the trickle ICE option.
In contrast, when using the media channel, the trickle ICE option always seems to be included in the offer, regardless of the Viewer's settings.
Expected Behavior
The trickle ICE option is included in the offer.
Current Behavior
No trickle ICE option included in the offer.
Here is the offer that gets sent when using only the data channel.
And here is what gets sent when using the media channel.
Reproduction Steps
The patch applied to the sample application is shown below.
I believe that modifying the SDK like this will fix this issue.
WebRTC C SDK version being used
v1.8.1
Compiler and Version used
gcc 9.4.0
Operating System and version
Ubuntu 20.04
Platform being used
Linux
The text was updated successfully, but these errors were encountered: