手机做网站用什么软件做外文翻译的网站

张小明 2025/12/29 21:23:37
手机做网站用什么软件,做外文翻译的网站,app报价,免费制作广告图AI 产生的文章#xff0c;仅供参考 Kamailio 使用 STIR/SHAKEN 的流程相对复杂#xff0c;因为它需要与外部的 STIR/SHAKEN 服务#xff08;例如 Secure Telephone Identity (STI) 证书颁发机构 (CA) 和验证服务#xff09;进行集成。Kamailio 本身不执行 STIR/SHAKEN 的签…AI 产生的文章仅供参考Kamailio 使用 STIR/SHAKEN 的流程相对复杂因为它需要与外部的 STIR/SHAKEN 服务例如 Secure Telephone Identity (STI) 证书颁发机构 (CA) 和验证服务进行集成。Kamailio 本身不执行 STIR/SHAKEN 的签名和验证过程而是充当一个信令代理将相关信息传递给这些外部服务。下面是一个详细的 Kamailio 集成 STIR/SHAKEN 的流程概述并解释了每个步骤中 Kamailio 的作用STIR/SHAKEN 概述在深入 Kamailio 流程之前先简要回顾一下 STIR/SHAKEN 的核心概念STIR (Secure Telephone Identity Revisited)定义了如何使用数字证书对 SIP 呼叫的 From 字段即主叫号码进行签名以证明其合法性。SHAKEN (Signature-based Handling of Asserted information using toKENs)定义了如何将 STIR 签名作为 SIP P-Asserted-Identity (PAI) 头的一部分进行传递和验证。STIR/SHAKEN 流程涉及的角色Originating Service Provider (OSP)发起呼叫的运营商。负责生成 STIR 签名。Terminating Service Provider (TSP)接收呼叫的运营商。负责验证 STIR 签名。STI-CA (Secure Telephone Identity Certificate Authority)颁发用于签名的证书。STI-VS (Secure Telephone Identity Verification Service)提供签名验证服务。Kamailio 集成 STIR/SHAKEN 的详细流程一、 呼叫发起方 (Originating Service Provider) 的 Kamailio 配置在呼叫发起方Kamailio 的主要任务是将 SIP 呼叫路由到外部的 STIR/SHAKEN 签名服务并将签名后的结果SHAKEN 身份声明重新插入到 SIP 消息中。Kamailio 收到发起呼叫的 INVITE 消息。Kamailio 识别需要签名的呼叫Kamailio 需要通过某种逻辑例如基于主叫号码、被叫号码或特定的路由规则来判断哪些呼叫需要进行 STIR/SHAKEN 签名。Kamailio 模块可以使用drouting、dispatcher或自定义脚本逻辑来实现。Kamailio 将呼叫信息发送到外部 STIR/SHAKEN 签名服务如何发送这通常通过 SIP INVITE 的 REFER 方法、HTTP 请求如果签名服务提供 REST API或专门的 Kamailio 模块与外部服务进行交互。使用 REFERKamailio 可以向签名服务发送一个 REFER 消息其中包含需要签名的 SIP INVITE 的相关信息。签名服务收到 REFER 后进行签名然后将签名后的 INVITE 返回给 Kamailio。使用 HTTP 模块如果签名服务提供 HTTP/REST APIKamailio 可以使用htable或json模块构造 HTTP 请求将相关呼叫数据发送给签名服务并解析签名服务返回的响应。自定义模块/脚本编写一个 Kamailio C 模块或使用lua模块与签名服务进行更复杂的交互。发送的内容主要包括主叫号码 (From Header)、被叫号码 (To Header) 和其他必要的 SIP 头信息。外部 STIR/SHAKEN 签名服务的工作流程接收到 Kamailio 发送的呼叫信息。向 STI-CA 请求证书如果尚未缓存。使用私钥和从 STI-CA 获取的证书对呼叫信息进行数字签名。将生成的 SHAKEN 身份声明通常是一个 JSON Web Token (JWT)封装在 SIP P-Asserted-Identity (PAI) 头中或者作为新的 SIP 头例如Identity头返回给 Kamailio。Kamailio 接收签名结果Kamailio 接收来自签名服务的响应例如新的 SIP INVITE 消息或包含 SHAKEN 声明的 HTTP 响应。Kamailio 将 SHAKEN 身份声明插入 SIP 消息Kamailio 解析接收到的 SHAKEN 身份声明。Kamailio 将其作为Identity头字段通常在 SIP INVITE 消息中添加到原始的 SIP INVITE 消息中。Identity: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdHRlc3QiOiJBIiwib3JpZyI6eyJ0ZWwiOiIrMSAxMTExNTU1MTIxMiJ9LCJkZXN0Ijp7InRlbCI6WyIrMSAxMTExNTU1MTIyMiJdfSwiaW ...Kamailio 函数可以使用insert_hf()或append_hf()函数来添加Identity头。Kamailio 将带有签名的 INVITE 消息转发到下一个跳。二、 呼叫接收方 (Terminating Service Provider) 的 Kamailio 配置在呼叫接收方Kamailio 的主要任务是接收带有 SHAKEN 身份声明的 SIP 呼叫将其路由到外部的 STIR/SHAKEN 验证服务并根据验证结果决定如何处理呼叫。Kamailio 收到带有Identity头的 INVITE 消息。Kamailio 识别需要验证的呼叫Kamailio 需要通过检查 SIP 消息中是否存在Identity头来判断该呼叫是否需要进行 STIR/SHAKEN 验证。Kamailio 函数is_present_hf(Identity)Kamailio 将呼叫信息发送到外部 STIR/SHAKEN 验证服务如何发送同样可以通过 REFER、HTTP 请求或专门的 Kamailio 模块与外部验证服务进行交互。使用 REFERKamailio 向验证服务发送 REFER 消息包含 SIP INVITE 的相关信息特别是Identity头。验证服务进行验证然后将验证结果例如验证通过/失败Attestation Level 等返回给 Kamailio。使用 HTTP 模块Kamailio 构造 HTTP 请求将Identity头的内容发送给验证服务。发送的内容主要包括Identity头的内容、主叫号码、被叫号码等。外部 STIR/SHAKEN 验证服务的工作流程接收到 Kamailio 发送的呼叫信息和Identity头。解析Identity头中的 JWT。从 JWT 中提取证书信息。向 STI-CA 验证证书的有效性。验证签名是否正确以及主叫号码是否与签名信息匹配。根据验证结果生成一个验证报告例如Attestation Level A, B, C 或 FAILED。将验证结果例如Attestation Level 和/或详细的错误信息返回给 Kamailio。Kamailio 接收验证结果Kamailio 接收来自验证服务的响应。Kamailio 根据验证结果处理呼叫Kamailio 变量将验证结果存储在 Kamailio 伪变量中例如$var(stir_shaken_status)。决策逻辑Kamailio 根据$var(stir_shaken_status)的值来决定下一步操作验证通过 (Attestation A/B/C)正常路由呼叫。可以在 SIP 消息中添加额外的头例如X-Attestation-Level: A以便下游系统识别。验证失败 (Attestation FAILED)拒绝呼叫 (e.g.,sl_send_reply(403, Forbidden))。将呼叫路由到语音邮件。将呼叫路由到欺诈检测系统。对呼叫进行降级处理例如播放警告音。记录详细的日志。没有Identity头或无法联系验证服务视为未验证根据运营商策略进行处理例如路由但标记为低信任度。Kamailio 函数使用if()语句和route()函数进行条件路由。Kamailio 配置示例伪代码仅供参考实际配置会更复杂呼叫发起方 (OSP) Kamailio.cfg 片段# ... 其他 Kamailio 配置 ... loadmodule xhttp.so # 假设使用 HTTP 与签名服务交互 loadmodule json.so loadmodule htable.so route { # 假设你的签名服务是 http://stir_shaken_signer.example.com/sign if (is_from_local_domain() $rU ~ ^\1) { # 仅对本地域的E.164号码进行签名 # 构建发送给签名服务的 JSON 请求 # 注意这里需要你根据签名服务的API来构建请求体 $var(request_body) { \from\: \ $ruri \, \to\: \ $fU \ }; # 发送 HTTP POST 请求到签名服务 if (xhttp_post(http://stir_shaken_signer.example.com/sign, application/json, $var(request_body), $var(response_code), $var(response_body))) { if ($var(response_code) 200) { # 解析签名服务返回的 JSON 响应获取 Identity 头内容 if (json_get($.identity_header, $var(identity_value), $var(response_body))) { # 将 Identity 头添加到 SIP INVITE 消息中 append_hf(Identity: $var(identity_value) \r\n); } else { xlog(L_ERR, STIR/SHAKEN signer: Failed to parse identity_header from response.\n); } } else { xlog(L_WARN, STIR/SHAKEN signer: HTTP POST failed with code $var(response_code).\n); } } else { xlog(L_ERR, STIR/SHAKEN signer: HTTP POST failed.\n); } } # 继续路由呼叫 route(NATDETECT); route(RELAY); }呼叫接收方 (TSP) Kamailio.cfg 片段# ... 其他 Kamailio 配置 ... loadmodule xhttp.so loadmodule json.so loadmodule htable.so route { # 假设你的验证服务是 http://stir_shaken_verifier.example.com/verify if (is_method(INVITE)) { if (is_present_hf(Identity)) { # 提取 Identity 头内容 $var(identity_header_value) $hdr(Identity); # 构建发送给验证服务的 JSON 请求 $var(request_body) { \identity_header\: \ $var(identity_header_value) \, \from\: \ $fU \, \to\: \ $rU \ }; # 发送 HTTP POST 请求到验证服务 if (xhttp_post(http://stir_shaken_verifier.example.com/verify, application/json, $var(request_body), $var(response_code), $var(response_body))) { if ($var(response_code) 200) { # 解析验证服务返回的 JSON 响应获取验证结果 if (json_get($.attestation_level, $var(attestation_level), $var(response_body))) { xlog(L_INFO, STIR/SHAKEN verification result: $var(attestation_level)\n); if ($var(attestation_level) A || $var(attestation_level) B || $var(attestation_level) C) { # 验证通过正常路由 append_hf(X-Attestation-Level: $var(attestation_level) \r\n); # 可选添加自定义头 route(RELAY); } else if ($var(attestation_level) FAILED) { xlog(L_WARN, STIR/SHAKEN verification failed for call from $fU to $rU.\n); sl_send_reply(403, Forbidden - STIR/SHAKEN Failed); exit; } else { xlog(L_WARN, STIR/SHAKEN unknown attestation level: $var(attestation_level).\n); # 默认处理例如继续路由或拒绝 route(RELAY); } } else { xlog(L_ERR, STIR/SHAKEN verifier: Failed to parse attestation_level from response.\n); route(RELAY); # 继续路由但标记为未验证 } } else { xlog(L_WARN, STIR/SHAKEN verifier: HTTP POST failed with code $var(response_code).\n); route(RELAY); # 继续路由但标记为未验证 } } else { xlog(L_ERR, STIR/SHAKEN verifier: HTTP POST failed.\n); route(RELAY); # 继续路由但标记为未验证 } } else { xlog(L_INFO, No Identity header found for call from $fU to $rU. Routing as unverified.\n); route(RELAY); # 没有 Identity 头直接路由 } } # ... 其他路由逻辑 ... }关键考虑事项和注意事项外部 STIR/SHAKEN 服务的选择Kamailio 本身不提供 STIR/SHAKEN 签名或验证功能你需要选择一个或多个符合标准的外部服务提供商或部署自己的 STIR/SHAKEN 签名/验证服务器。API 接口确保 Kamailio 能够与外部 STIR/SHAKEN 服务的 API 进行通信。HTTP/REST API 是最常见的选择Kamailio 的xhttp和json模块可以很好地支持。性能STIR/SHAKEN 签名和验证过程会增加呼叫设置的延迟。确保你的外部服务具有足够的处理能力并且 Kamailio 与其通信是高效的。错误处理和降级必须考虑当 STIR/SHAKEN 签名/验证服务不可用或返回错误时如何处理呼叫。通常会有一个降级机制例如将呼叫标记为“未验证”并继续路由或者在特定情况下直接拒绝。证书管理无论是签名方还是验证方都需要妥善管理 STI 证书。这通常由 STIR/SHAKEN 服务自动处理但需要了解其工作原理。Attestation Level (A/B/C)A (Full Attestation)运营商可以验证主叫号码和发起呼叫的客户。最高信任度。B (Partial Attestation)运营商可以验证客户但无法完全验证主叫号码。C (Gateway Attestation)运营商仅验证呼叫是否来自其网络。最低信任度。Kamailio 在接收方应根据这些级别来制定不同的呼叫处理策略。SIP 头修改除了Identity头有时还会涉及其他 SIP 头例如P-Attestation-Info或自定义的X-头用于传递额外的 STIR/SHAKEN 相关信息。日志和监控详细记录 STIR/SHAKEN 签名和验证的成功与失败情况以及 Attestation Level对于故障排除和合规性审计至关重要。测试在生产环境中部署之前进行严格的测试包括正常流程、错误情况和性能测试。总而言之Kamailio 在 STIR/SHAKEN 架构中扮演着重要的集成点角色。它负责将 SIP 信令流与外部的 STIR/SHAKEN 签名和验证服务连接起来并根据这些服务的输出进行智能的呼叫路由和处理决策。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

站长工具星空传媒免费推广

Screenbox多媒体播放器:新手入门终极指南 【免费下载链接】Screenbox LibVLC-based media player for the Universal Windows Platform 项目地址: https://gitcode.com/gh_mirrors/sc/Screenbox 想要在Windows系统上享受专业级的影音播放体验吗?S…

张小明 2025/12/29 2:51:59 网站建设

广告建设网站苏州保洁公司电话号码

虚拟机器维护与性能调优全攻略 1. 自动停止操作设置 自动停止操作设置定义了当承载虚拟机的物理机关机时,虚拟机应执行的操作。默认情况下,该设置会保存虚拟机的状态。当然,你也可以选择关闭虚拟机,或者让其直接关机(但不建议这样做,因为这等同于直接拔掉电源)。 2. …

张小明 2025/12/29 5:30:33 网站建设

邯郸哪里可以做网站青岛市最大的网络公司是哪里

雷递网 雷建平 12月17日巴奴国际控股有限公司(简称:“巴奴毛肚火锅”)日前更新招股书,准备在港交所上市。截至目前,巴奴毛肚火锅持有的门店数为162家,2024年12月24日时,为144家。前9个月营收20.…

张小明 2025/12/29 14:50:45 网站建设

电商网站运营规划网站正在建设中中文模板

LangFlow 中的 SSL/TLS 加密传输保障 在 AI 应用开发日益普及的今天,LangChain 已成为连接大语言模型与外部系统的主流框架。然而,直接通过代码构建复杂工作流对许多开发者而言仍存在较高门槛。正是在这一背景下,LangFlow 凭借其图形化、低代…

张小明 2025/12/29 14:50:48 网站建设

杭州专业网站设计制作公司东莞城建局电话是多少

目录 📖 摘要 🏗️ Tiling架构设计 1.1 两种开发模式的深度对比 1.2 Tiling基本概念的硬件映射 ⚙️ 核心算法实现 2.1 基础Tiling实现流程 2.2 非对齐shape处理算法 🚀 实战:企业级Tiling框架 3.1 完整实现示例 3.2 常…

张小明 2025/12/29 0:49:19 网站建设

asp网站关键词网站建设拍金手指谷哥12

3大突破重塑视频创作:Wan2.1模型让AI视频触手可及 【免费下载链接】Wan2.1-T2V-1.3B-Diffusers 项目地址: https://ai.gitcode.com/hf_mirrors/Wan-AI/Wan2.1-T2V-1.3B-Diffusers 在AI视频生成技术快速发展的今天,Wan2.1-T2V-1.3B模型以仅需8GB显…

张小明 2025/12/29 0:49:17 网站建设