You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

配置Kamailio边缘代理仅允许FQDN注册,阻止IP注册请求

问题分析与解决方向

你的配置无效的核心原因是错误提取了Contact头的校验字段:$hdr(Contact:user)获取的是Contact URI里的用户名部分(比如sip:user@example.com里的user),但你需要校验的是URI中的域名/主机部分(即example.com)。同时当前配置未区分请求类型,会对所有SIP请求生效,而你只需要限制REGISTER注册请求即可。

正确配置思路

  1. 仅针对REGISTER请求执行域名校验逻辑
  2. 提取Contact URI的主机部分进行校验,若为IP地址则拒绝
  3. 校验通过后将所有请求转发至PBX

修正后的路由配置

route {
    # 仅对REGISTER请求执行限制逻辑
    if (is_method("REGISTER")) {
        # 提取Contact头的主机部分,判断是否为IP地址
        if (is_ipaddr("$ct.host")) {
            sl_send_reply("403", "Forbidden: Only FQDN registration allowed");
            exit;
        }
    }
    # 所有请求转发至PBX
    t_relay();
}

关键说明

  • $ct.host:Kamailio内置变量,直接获取Contact URI中的主机部分(域名或IP)
  • is_ipaddr():内置函数,判断传入值是否为合法IP地址(支持IPv4/IPv6)
  • 仅对REGISTER请求做限制,避免影响通话、INVITE等其他SIP业务流程

内容的提问来源于stack exchange,提问作者Mohammad Sarshar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 12:34:53