Skip to main content

platform/config/
turn.rs

1use serde::{Deserialize, Serialize};
2
3/// TURN 服务配置
4///
5/// TURN 中继服务的专用配置参数。
6#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
7pub struct TurnConfig {
8    /// 中继端口范围
9    ///
10    /// TURN 服务用于数据中继的 UDP 端口范围。
11    /// 格式:开始端口-结束端口,如 "49152-65535"。
12    /// 范围越大,可支持的并发中继会话越多。
13    pub relay_port_range: String,
14
15    /// TURN 认证域
16    ///
17    /// TURN 服务的认证域名,用于 TURN 协议的认证机制。
18    pub realm: String,
19
20    /// TURN 共享密钥(HMAC 时效凭证)
21    ///
22    /// 用于生成和验证 TURN 时效凭证(coturn --use-auth-secret 兼容格式)。
23    /// AIS 生成 TurnCredential 时使用此密钥,TURN 服务器验证时使用相同密钥。
24    #[serde(default = "default_turn_secret")]
25    pub turn_secret: String,
26}
27
28impl Default for TurnConfig {
29    fn default() -> Self {
30        Self {
31            relay_port_range: "49152-65535".to_string(),
32            realm: "actrix.local".to_string(),
33            turn_secret: default_turn_secret(),
34        }
35    }
36}
37
38fn default_turn_secret() -> String {
39    "actrix-turn-secret-change-in-production".to_string()
40}