Sip 代理 (proto)
此扩展的限定名称为 envoy.filters.network.sip_proxy
注意
此扩展仅在 contrib 映像中可用。
注意
此扩展是功能性的,但没有经过大量的生产时间检验,使用时请注意此问题。
此扩展未经过硬化,应仅在上下游都可信的部署中使用。
extensions.filters.network.sip_proxy.v3alpha.SipProxy
[extensions.filters.network.sip_proxy.v3alpha.SipProxy proto]
{
"stat_prefix": ...,
"route_config": {...},
"sip_filters": [],
"settings": {...}
}
- stat_prefix
(string, REQUIRED) 发射统计信息时使用的可读前缀。
- route_config
(extensions.filters.network.sip_proxy.v3alpha.RouteConfiguration) 连接管理器路由表是静态的,在此属性中指定。
- sip_filters
(repeated extensions.filters.network.sip_proxy.v3alpha.SipFilter) 构成对 SIP 代理发出的请求的过滤器链的各个 SIP 过滤器的列表。顺序很重要,因为过滤器按顺序处理。为了向后兼容,如果未指定任何 sip_filters,则使用默认的 SIP 路由过滤器 (
envoy.filters.sip.router)。
extensions.filters.network.sip_proxy.v3alpha.SipProxy.SipSettings
[extensions.filters.network.sip_proxy.v3alpha.SipProxy.SipSettings proto]
{
"transaction_timeout": {...},
"local_services": [],
"tra_service_config": {...},
"operate_via": ...
}
- transaction_timeout
(Duration) 事务超时计时器 [计时器 B] 单位为毫秒,默认值为 64*T1。
会话启动协议 (SIP) 计时器摘要
计时器
默认值
部分
意义
T1
500 毫秒
17.1.1.1
往返时间 (RTT) 估计
T2
4 秒
17.1.2.2
非 INVITE 请求和 INVITE 响应的最大重传间隔
T4
5 秒
17.1.2.2
消息在网络中停留的最大持续时间
计时器 A
最初为 T1
17.1.1.2
INVITE 请求重传间隔,仅限 UDP
计时器 B
64*T1
17.1.1.2
INVITE 事务超时计时器
计时器 D
> 32 秒,对于 UDP 0 秒,对于 TCP 和 SCTP
17.1.1.2
等待响应重传的时间
计时器 E
最初为 T1
17.1.2.2
非 INVITE 请求重传间隔,仅限 UDP
计时器 F
64*T1
17.1.2.2
非 INVITE 事务超时计时器
计时器 G
最初为 T1
17.2.1
INVITE 响应重传间隔
计时器 H
64*T1
17.2.1
等待 ACK 收据的时间
计时器 I
T4,对于 UDP 0 秒,对于 TCP 和 SCTP
17.2.1
等待 ACK 重传的时间
计时器 J
64*T1,对于 UDP 0 秒,对于 TCP 和 SCTP
17.2.2
等待非 INVITE 请求重传的时间
计时器 K
T4,对于 UDP 0 秒,对于 TCP 和 SCTP
17.1.2.2
等待响应重传的时间
- local_services
(repeated extensions.filters.network.sip_proxy.v3alpha.LocalService) 需要匹配的服务,用于 ep 插入
- tra_service_config
(extensions.filters.network.sip_proxy.tra.v3alpha.TraServiceConfig)
- operate_via
(bool) 是否操作 via 标头,包括为请求添加 via 和为响应弹出 via False: sip 服务代理 True: sip 负载均衡器
extensions.filters.network.sip_proxy.v3alpha.SipFilter
[extensions.filters.network.sip_proxy.v3alpha.SipFilter proto]
SipFilter 配置 SIP 过滤器。
{
"name": ...,
"typed_config": {...}
}
- name
(string, REQUIRED) 要实例化的过滤器的名称。该名称必须与支持的过滤器匹配。内置过滤器是
- typed_config
(Any) 过滤器特定配置,取决于要实例化的过滤器。有关进一步的文档,请参阅支持的过滤器。
extensions.filters.network.sip_proxy.v3alpha.SipProtocolOptions
[extensions.filters.network.sip_proxy.v3alpha.SipProtocolOptions proto]
SipProtocolOptions 指定 SIP 上游协议选项。此对象用于 typed_extension_protocol_options,按名称 envoy.filters.network.sip_proxy 键入。
{
"session_affinity": ...,
"registration_affinity": ...,
"customized_affinity": {...}
}
- session_affinity
(bool) 一个对话中的所有 sip 消息都应发送到同一个端点。
- registration_affinity
(bool) 具有 Authorization 标头的 Register 应发送到同一个端点,该端点发送出 401 Unauthorized。
- customized_affinity
(extensions.filters.network.sip_proxy.v3alpha.CustomizedAffinity) 自定义亲和力
extensions.filters.network.sip_proxy.v3alpha.CustomizedAffinity
[extensions.filters.network.sip_proxy.v3alpha.CustomizedAffinity proto]
用于亲和力
{
"entries": [],
"stop_load_balance": ...
}
- entries
(repeated extensions.filters.network.sip_proxy.v3alpha.CustomizedAffinityEntry) 用于确定上游端点的亲和力规则
- stop_load_balance
(bool) 配置在亲和力处理之后是否应停止或继续负载均衡。
extensions.filters.network.sip_proxy.v3alpha.CustomizedAffinityEntry
[extensions.filters.network.sip_proxy.v3alpha.CustomizedAffinityEntry proto]
{
"header": ...,
"key_name": ...,
"subscribe": ...,
"query": ...,
"cache": {...}
}
- header
(string) 要匹配的标头名称,例如“From”,如果未指定,则默认为“Route”
- key_name
(string) TRA 查询/订阅的亲和力键,例如“lskpmc”,如果 key_name 为“text”,则表示使用标头内容作为键。
- subscribe
(bool) 是否需要订阅 TRA
- query
(bool) 是否需要查询 TRA
extensions.filters.network.sip_proxy.v3alpha.Cache
[extensions.filters.network.sip_proxy.v3alpha.Cache proto]
{
"max_cache_item": ...,
"add_query_to_cache": ...
}
- max_cache_item
(int32) 亲和力本地缓存项最大数量
- add_query_to_cache
(bool) 是否可以将查询结果添加到本地缓存
extensions.filters.network.sip_proxy.v3alpha.LocalService
[extensions.filters.network.sip_proxy.v3alpha.LocalService proto]
本地服务
{
"domain": ...,
"parameter": ...
}
- domain
(string) 需要匹配的域
- parameter
(string) 用于获取域的参数