Skip to main content

platform/config/bind/
ice.rs

1use serde::{Deserialize, Serialize};
2
3/// ICE 服务绑定配置
4///
5/// 用于 STUN 和 TURN 服务的 UDP 网络配置。
6#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
7pub struct IceBindConfig {
8    /// 绑定 IP 地址
9    ///
10    /// UDP 服务绑定的网络接口 IP 地址。
11    pub ip: String,
12
13    /// 绑定端口
14    ///
15    /// STUN/TURN 服务监听的 UDP 端口。标准端口为 3478。
16    pub port: u16,
17
18    /// 公网 IP 地址
19    ///
20    /// ICE 服务对外宣告的公网 IP 地址。客户端通过此地址进行 STUN/TURN 通信。
21    /// 必须是真实可路由的公网 IP,不能使用 "0.0.0.0"。
22    pub advertised_ip: String,
23
24    /// 公网端口
25    ///
26    /// ICE 服务对外宣告的端口号,通常与绑定端口相同。
27    #[serde(default = "default_advertised_port")]
28    pub advertised_port: u16,
29}
30
31fn default_advertised_port() -> u16 {
32    3478
33}
34
35impl Default for IceBindConfig {
36    fn default() -> Self {
37        Self {
38            ip: "0.0.0.0".to_string(),
39            port: 3478,
40            advertised_ip: "127.0.0.1".to_string(),
41            advertised_port: 3478,
42        }
43    }
44}