After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 797012 - webrtcbin: New add-turn-server API
webrtcbin: New add-turn-server API
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
git master
Other All
: Normal enhancement
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2018-08-22 17:07 UTC by Mathieu Duponchelle
Modified: 2018-09-19 14:20 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
webrtcbin: New add-turn-server API (11.54 KB, patch)
2018-08-22 17:07 UTC, Mathieu Duponchelle
committed Details | Review
webrtcice: do not run host resolution from applictation thread (7.89 KB, patch)
2018-08-28 17:03 UTC, Mathieu Duponchelle
committed Details | Review

Description Mathieu Duponchelle 2018-08-22 17:07:21 UTC
It is possible and often desirable to pass multiple ICE relays
to libnice agents, the "turn-server" property, while convenient
to use from the command line, does not allow that.

This adds a new action signal, "add-turn-server" to address that.
Comment 1 Mathieu Duponchelle 2018-08-22 17:07:27 UTC
Created attachment 373429 [details] [review]
webrtcbin: New add-turn-server API
Comment 2 Olivier Crête 2018-08-27 19:38:39 UTC
Review of attachment 373429 [details] [review]:

Looks ok to me. You may want to add "forget-turn-servers" or "remote-turn-server" for completeness.
Comment 3 Mathieu Duponchelle 2018-08-28 17:03:39 UTC
Created attachment 373486 [details] [review]
webrtcice: do not run host resolution from applictation thread

g_resolver_lookup_by_name is a blocking call, and should not
be run when the user sets or adds a turn-server.
Comment 4 Mathieu Duponchelle 2018-08-28 17:07:24 UTC
(In reply to Olivier Crête from comment #2)
> Review of attachment 373429 [details] [review] [review]:
> 
> Looks ok to me. You may want to add "forget-turn-servers" or
> "remote-turn-server" for completeness.

Yes indeed, though I don't yet see a use case for those, we can IMHO add these later.

I've attached another commit which should go in at the same time I think, performing host resolution on the webrtcbin's task thread, as opposed to from the application thread, as it is a synchronous call that may block for a long time.
Comment 5 Olivier Crête 2018-08-28 19:48:55 UTC
Review of attachment 373486 [details] [review]:

Looks ok, but I can't help but think it would be easier to do that inside libnice itself, I've just never gotten around to add asynchronous-ness to that bit of libnice.
Comment 6 Olivier Crête 2018-08-28 19:50:17 UTC
(In reply to Mathieu Duponchelle from comment #4)
> Yes indeed, though I don't yet see a use case for those, we can IMHO add
> these later.

The use-case is to switch TURN servers without disconnecting the call. I guess it's a pretty specialized use-case, when you have a long running call and you want to manage a fleet of TURN servers. I guess WebRTC doesn't support that yet.
Comment 7 Mathieu Duponchelle 2018-09-19 14:18:05 UTC
Attachment 373429 [details] pushed as 1d6160d - webrtcbin: New add-turn-server API
Attachment 373486 [details] pushed as 45fe050 - webrtcice: do not run host resolution from applictation thread
Comment 8 Mathieu Duponchelle 2018-09-19 14:20:30 UTC
Thanks, hadn't noticed the accepted-commit-nows . Regarding the removal signals, I agree that could prove useful in the future, but switching the TURN server during the call will probably not be trivial, and it's out of scope for me right now :)