Open
Description
Summary
Current TURN server API allows us to customize how to allocate and create a net.PacketConn via ManagerConfig.AllocatePacketConn. This callback method however does not provide information of the TURN users for which the allocation was requested.
Motivation
TURN server is a middlebox where we could enforce policies such as how WebRTC traffic should be relayed. It could also be great place to run various diagnostic services. Allowing these services to be customizable per-user basis creates many business opportunities.
Describe alternatives you've considered
Per-process customization is possible but it is clunky and less flexible.
Additional context
classDiagram
TURNServer --> UserManager: AuthHandler(username, realm)
TURNClient --> TURNServer: Allocate()
TURNServer --> RelayAddressGenerator: AllocatePacketConn(username)
RelayAddressGenerator --> UserManager: LookupUser(username)
namespace user_code {
class UserManager {
}
class RelayAddressGenerator {
}
}
end
Metadata
Metadata
Assignees
Labels
No labels