TurnCustomizer - an interface for modifying stun messages sent by TurnPort
This patch adds an interface that allows modification of stun messages sent by TurnPort. A user can inject a TurnCustomizer on the RTCConfig and the TurnCustomizer will be invoked by TurnPort before sending message. This allows user to e.g add custom attributes as described in rtf5389. BUG=webrtc:8313 Change-Id: I6f4333e9f8ff7fd20f32677be19285f15e1180b6 Reviewed-on: https://webrtc-review.googlesource.com/7618 Reviewed-by: Guido Urdaneta <guidou@webrtc.org> Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org> Reviewed-by: Sami Kalliomäki <sakal@webrtc.org> Commit-Queue: Jonas Oreland <jonaso@webrtc.org> Cr-Commit-Position: refs/heads/master@{#20233}
This commit is contained in:

committed by
Commit Bot

parent
2ff7ecfceb
commit
bdcee28ee9
@ -25,6 +25,7 @@
|
||||
|
||||
namespace webrtc {
|
||||
class MetricsObserverInterface;
|
||||
class TurnCustomizer;
|
||||
}
|
||||
|
||||
namespace cricket {
|
||||
@ -362,7 +363,8 @@ class PortAllocator : public sigslot::has_slots<> {
|
||||
bool SetConfiguration(const ServerAddresses& stun_servers,
|
||||
const std::vector<RelayServerConfig>& turn_servers,
|
||||
int candidate_pool_size,
|
||||
bool prune_turn_ports);
|
||||
bool prune_turn_ports,
|
||||
webrtc::TurnCustomizer* turn_customizer = nullptr);
|
||||
|
||||
const ServerAddresses& stun_servers() const { return stun_servers_; }
|
||||
|
||||
@ -477,6 +479,10 @@ class PortAllocator : public sigslot::has_slots<> {
|
||||
metrics_observer_ = observer;
|
||||
}
|
||||
|
||||
webrtc::TurnCustomizer* turn_customizer() {
|
||||
return turn_customizer_;
|
||||
}
|
||||
|
||||
protected:
|
||||
virtual PortAllocatorSession* CreateSessionInternal(
|
||||
const std::string& content_name,
|
||||
@ -512,6 +518,11 @@ class PortAllocator : public sigslot::has_slots<> {
|
||||
bool prune_turn_ports_ = false;
|
||||
|
||||
webrtc::MetricsObserverInterface* metrics_observer_ = nullptr;
|
||||
|
||||
// Customizer for TURN messages.
|
||||
// The instance is owned by application and will be shared among
|
||||
// all TurnPort(s) created.
|
||||
webrtc::TurnCustomizer* turn_customizer_ = nullptr;
|
||||
};
|
||||
|
||||
} // namespace cricket
|
||||
|
Reference in New Issue
Block a user