- 博客(452)
- 资源 (15)
- 收藏
- 关注
原创 WebSocket 协议详解:从 HTTP 握手到全双工通信
WebSocket 通过握手建立持久连接,并在 TCP 字节流之上定义数据帧、消息边界和控制机制,使客户端与服务器能够进行双向、全双工通信。理解 WebSocket 时,最重要的是把握几个核心概念:握手负责建立协议连接,不负责完成业务身份认证。数据帧负责承载消息,但一次 TCP 读取不一定对应一条完整消息。Ping/Pong 可以帮助检测连接状态,但不能保证业务消息不丢失。TCP 提供可靠、有序的字节流,WebSocket 在其上提供消息和控制语义。
2026-10-15 20:00:00
261
原创 使用 Docker 部署 Kamailio:从官方镜像到 SIP Proxy 实战
Linux| Docker |SIPv| Docker |SIP |v| Docker |RTPSIP ProxyFreeSWITCH 集群VoIP SBC 前端多 FreeSWITCH 节点路由开发/测试环境快速搭建对于已经使用 Docker 的 VoIP 环境,Kamailio 容器化最大的价值并不是“把 Kamailio 放进 Docker”,而是让 SIP Routing 层和 Media Server 层拥有独立的生命周期、版本和扩缩容能力。
2026-09-28 08:00:00
386
1
原创 使用 Docker 运行 OpenSIPS:从镜像拉取到配置部署
操作命令拉取镜像拉取指定版本查看镜像启动容器后台启动查看容器docker ps查看所有容器查看日志实时日志进入容器停止启动重启删除查看配置检查配置查看端口ss -lntupSIP 抓包1. 镜像2. 配置3. 网络或如果用于 SIP 开发测试,则建议至少把配置文件独立出来。如果涉及真实 SIP 流量、NAT、RTP 或与 FreeSWITCH 等组件配合,则需要重点设计 Docker 网络,很多情况下会比简单的更容易排查问题。
2026-09-22 08:00:00
178
原创 打造更靠谱的 Coding Agent
Karpathy 的这些经验并不是针对 Claude、Codex 或 Cursor 某个具体工具。它本质上是在解决一个问题:如何让 AI 像资深工程师一样工作,而不是像一个不受约束的代码生成器。我最终将其归纳为五条原则:如果你正在使用 Codex、Claude Code 或 Cursor,我非常推荐把这些原则写入 AGENTS.md。它不会让 Agent 更聪明,但会让 Agent 少犯很多代价高昂的错误。
2026-09-18 08:00:00
438
原创 FreeSWITCH CLI 与 API
FreeSWITCH 的 CLI 和 API 并不是两个完全独立的系统。fs_cli是 FreeSWITCH Event Socket 的一个客户端,而fs_cli中执行的 API command,可以通过 Event Socket 被外部程序直接调用。
2026-09-08 22:00:00
361
原创 DTLS:实时通信中的安全传输协议
数据报传输层安全协议DTLS 的主要目标是在 UDP 等数据报协议之上提供类似 TLS 的安全能力,包括:身份认证数据加密数据完整性保护防止数据被篡改防止重放攻击TCP│└── TLS│└── HTTPSUDP│└── DTLS│└── 安全的实时通信因此,DTLS 并不是一种新的加密算法,而是一个安全传输协议。TLSUDP Datagram 特性适配DTLS如何在 UDP 这种不可靠的数据报传输之上建立安全通信。
2026-09-01 08:00:00
669
原创 国际电话号码前缀、国家码与 E.164 格式说明
国家码(Country Calling Code)用于标识电话号码所属的国家或地区。国家/地区国家码中国+86美国+1英国+44瑞士+41德国+49法国+33日本+81澳大利亚+61│ ││ └── 英国号码└───── 英国国家码这里的44是国家码。E.164 是国际电话号码编号计划使用的标准。国际号码最多包含 15 位数字。严格来说,是号码的国际表示符号,并不是电话号码数字本身。是标准的国际电话号码表示方式。虽然在实际电话系统中经常表示同一个号码,但严格来说,它不是 E.164 的。
2026-08-25 08:00:00
798
原创 rg 命令和 grep 命令比较:Linux 文本搜索工具怎么选
grep和rg都是非常优秀的文本搜索工具,但定位略有不同。Linux 基础工具,几乎无处不在命令简单管道处理非常方便非常适合日志和 Shell 脚本兼容性好不需要额外安装默认递归搜索搜索速度通常更快默认遵循.gitignore对 Git 项目非常友好文件类型过滤方便上下文显示方便更适合大型代码仓库日志 / 管道 / Shell↓grep代码仓库 / Git / 大量源码↓rg如果机器上没有rg能用 rg 快速搜索代码,就用 rg;
2026-08-20 08:00:00
468
原创 OpenSIPS 最近一年版本演进与 Bug 修复:从 3.5 到 3.6.7
OpenSIPS 是 VoIP/SIP 基础设施中非常重要的开源 SIP Server。对于长期运行的生产环境来说,版本升级通常并不只是为了获得新功能,更重要的是获得持续的 稳定性、安全性以及协议兼容性修复。过去一年,OpenSIPS 的开发重点逐渐从单纯增加 SIP 功能,转向 稳定性、安全性和生产运维能力。本文基于 OpenSIPS 官方版本及 ChangeLog,对最近一年的版本演进和 Bug 修复进行梳理,并重点分析这些修复对于 SIP Proxy、SBC、FreeSWITCH、RTPengine
2026-08-12 00:00:00
441
原创 VS Code 最值得安装的 CSV 插件推荐
对于开发人员而言,CSV 文件几乎每天都会接触。如果你的工作涉及日志分析、数据库导出、测试数据或监控指标,那么安装一个合适的 CSV 插件能够显著提升效率。如果只推荐一个插件,我会选择,原因包括:阅读体验优秀一键列对齐自动高亮各列支持格式检查内置 RBQL,可直接使用 SQL 风格语法查询 CSV再搭配,基本可以覆盖日常所有 CSV 查看和编辑需求。相信安装这两个插件之后,你处理 CSV 文件的效率会有明显提升。
2026-08-08 08:00:00
603
原创 八一建军节:从分布式系统,看现代军队为什么越来越像一套大型软件
作为软件工程师,我们平时更多关注的是:一个接口;一段代码;一次性能优化;一个 CI Pipeline;一个故障恢复方案。这些工作看起来离现实世界很远。复杂系统之间,往往遵循着相似的工程规律。分布式、一致性、可靠性、实时通信、自动化、人工智能……这些关键词,不仅属于互联网,也属于所有需要高可靠、高协同的大型系统。值此八一建军节,向所有守护国家安全的军人致以敬意,也向所有默默建设关键技术系统的工程师致敬。不同的岗位,共同追求的都是系统更加可靠、更加安全、更加高效。
2026-08-01 08:00:00
211
原创 Kamailio vs OpenSIPS:企业级 SIP 平台如何选型?——来自一线工程实践的思考
Kamailio 和 OpenSIPS 都是非常优秀的 SIP 平台。它们没有绝对的优劣,只有不同的设计理念。Kamailio 更像 Linux:稳定、灵活、强调基础能力。OpenSIPS 更像 Spring Boot:提供更多现成能力,更适合快速开发业务。对于现代企业通信平台来说,真正决定系统质量的,已经不是选择哪一个 SIP Proxy,而是整体架构是否合理、职责是否清晰,以及团队是否能够长期维护。技术选型没有标准答案,适合业务场景的方案,才是最好的方案。
2026-07-28 20:00:00
273
原创 2025-2026 SIP 协议最新进展:IETF SIPCORE 正在推进哪些标准?
SIP 的核心协议已经趋于稳定,新的标准主要围绕“让来电更可信、更安全、更丰富”展开,而不是继续扩展信令能力。对于从事 SIP、IMS、运营商网络或 VoIP 平台开发的工程师来说,值得持续关注的方向包括:STIR/SHAKEN 生态SIP 身份认证SIPCORE 工作组的新 DraftRFC 勘误与兼容性更新。
2026-07-15 06:00:00
376
原创 从传统呼叫中心到对话式智能的演进
稳定路由任务完成行业趋势:从“菜单系统”走向“对话系统”一句话总结:IVR 解决“把电话送去哪”,AI Agent 解决“电话本身的问题”
2026-07-06 06:00:00
386
原创 C/C++ Code Coverage 在大型项目升级中的实践
Line Coverage → 辅助参考Function Coverage → 核心指标Call Graph Coverage → 风险发现业务场景矩阵 → 最终依据自动化测试Function Coverage 对比业务场景覆盖矩阵这样既能量化升级影响,又能真正评估回归测试的有效性和升级风险。
2026-06-29 06:00:00
234
原创 MCP(Model Context Protocol)入门与实践:让 AI 真正连接你的工具链
MCP(Model Context Protocol)是一种开放协议,用于连接:AI 模型工具(Tools)数据源(Data Sources)外部服务(Services)简单来说:MCP 是 AI 世界的 USB-C 接口。在 USB-C 出现之前:手机有不同充电口相机有不同接口电脑有各种转接头每个设备都需要单独适配。AI 工具生态也面临类似问题。每种组合都需要单独开发。
2026-06-18 18:30:00
355
2
原创 E.164 电话号码:为什么 SIP、VoIP 和云通信都离不开它
E.164 是由国际电信联盟(ITU-T)制定的国际电话号码标准。其目标是:为全球电话网络中的每一个电话号码提供唯一且统一的表示方式。简单来说:无论用户来自哪个国家,E.164 都能确保号码在全球范围内唯一。E.164 是全球电话网络的统一语言。
2026-06-15 08:00:00
1127
原创 从零搭建一个可持续演进的 AI Skills 工程框架
对于 AI Skills 工程来说,最重要的并不是写出多少 Skill,而是建立清晰的边界:配置归配置知识归知识数据归数据Skill 只负责执行当目录结构能够准确反映这些职责时,整个系统会更容易维护,也更容易随着项目规模增长而演进。很多时候,好的工程设计并不是增加更多代码,而是让每类信息都待在最合适的位置。
2026-06-08 08:00:00
377
原创 VS Code Markdown 插件推荐
VS Code 现在已经不仅仅是代码编辑器。对于技术写作来说,它实际上已经是一个非常强大的 Markdown 工作平台。GitRemote SSHMermaidPDF 导出之后,完全可以替代很多专业文档工具。写博客写技术方案做知识库维护 README非常值得认真配置一套 Markdown 工作流。
2026-06-01 06:00:00
4854
原创 从 SAN、NAS 到对象存储:网络存储系统入门与选型
网络存储的核心不是“买哪家”,而是“业务如何访问数据”。把块、文件、对象三类语义分清,再做组合式架构,通常就能在性能、成本和可维护性之间找到最优解。
2026-05-28 09:06:06
424
原创 SoX:音频处理领域的“瑞士军刀”
SoX 是一个:经典稳定高效极其适合自动化的命令行音频工具。对于:FreeSWITCHOpenSIPSUniMRCPASR/TTS呼叫中心工程师来说,它几乎是必备技能。如果你长期做:SIPRTP电话语音AI语音识别建议一定要熟练掌握 SoX。
2026-05-18 22:00:00
832
原创 使用 addr2line 定位崩溃代码行
addr2line是 Linux/C++ 崩溃分析中的基础工具。崩溃地址↓addr2line↓源码文件 + 行号addr2line -f -C -p -e app 地址这是线上排查问题最常用的组合。
2026-05-12 20:30:00
555
原创 C++ thread_local 用法
是 C++11 引入的关键字,用于声明线程局部存储(Thread Local Storage, TLS)变量。每个线程都会拥有该变量的独立副本,线程之间互不影响。的核心思想是:用空间换时间,避免锁竞争适用于:高并发场景无共享状态性能敏感模块不适用于:大对象生命周期复杂的场景。
2026-05-08 08:00:00
504
原创 gRPC 入门介绍
gRPC 是由 Google 开源的高性能 RPC(Remote Procedure Call)框架,用于服务之间的高效通信。一句话理解:像调用本地函数一样调用远程服务它基于两个核心技术:HTTP/2(传输层)Protocol Buffers(数据序列化)gRPC 的核心价值:高性能(二进制 + HTTP/2)强类型接口(proto)原生流式通信(适合实时系统)一句话总结:gRPC 是构建高性能、实时通信系统的基础设施级工具。
2026-05-01 05:00:00
725
原创 AWS IMDS 版本(IMDSv1 vs IMDSv2)
IMDS 只有两个版本:IMDSv1 和 IMDSv2IMDSv1 简单但存在严重安全隐患IMDSv2 通过 Token + Hop Limit 提升安全性必须强制使用 IMDSv2。
2026-04-23 10:26:31
411
原创 使用 Cursor 构建一个多引擎 ASR Mock Server
engine:engines:google:behavior:delay:min: 0max: 2delay:min: 0.2max: 0.5delay:min: 0.3max: 0.6delay:mean: 1std: 0.2verbio:behavior:通过 Cursor + 合理的 Spec 设计,我们可以快速构建一个:👉可扩展、可配置、接近真实行为的 ASR Mock 平台配置驱动(config.yaml)
2026-04-18 18:00:00
311
原创 Git 环境定制常用命令
核心优化点:log:提升可读性(alias + format)pager:提升阅读体验(less 参数)行为:统一 push / pull / rebase 策略适用于日常开发、问题定位、代码审查等场景。
2026-03-27 10:52:41
279
原创 FreeSWITCH 呼出流程深度分析
分层架构:从API层到SIP协议栈,每层职责清晰灵活性:支持多种呼叫模式(串行、并发、混合)可扩展性:通过endpoint接口支持多种协议状态管理:完善的状态机确保会话可控事件驱动:丰富的事件系统便于监控和集成调试呼叫问题优化呼叫性能开发自定义endpoint集成第三方系统都至关重要。- API命令- IVR层呼出逻辑- 核心会话管理- 状态机- Sofia辅助函数- SIP事件处理。
2026-03-26 22:14:20
537
原创 AI如何重塑通信行业:从VoIP到智能语音平台
通信行业正在从传统的“连接能力提供者”转变为“智能交互平台”。AI不仅改变了通信业务形态,也在重塑通信系统的技术架构。从VoIP系统到智能语音平台,通信行业正在进入AI驱动的新时代。对于通信工程师而言,这既是挑战,也是新的机遇。
2026-03-11 22:00:00
568
原创 OpenSIPS 3.6 代码框架
OpenSIPS 是一个高性能的开源 SIP(Session Initiation Protocol)服务器,基于 C 语言开发。它源自 SER (SIP Express Router) 项目,主要用于 VoIP 通信、即时消息和 Presence 服务。
2026-03-03 03:30:00
789
原创 FreeSWITCH内存池机制全解析
内存池模型:所有内存从内存池分配,池销毁时自动释放所有内存后台回收:专用线程异步销毁内存池,减少主线程阻塞内存池复用:可选的内存池回收复用机制无需手动释放:内存随所属池自动释放,避免内存泄漏层次化管理:会话、模块、临时操作分别使用独立内存池│ 内存池 (Memory Pool) ││ │ 对象A │ │ 对象B │ │ 对象C │ ││ │ 字符串1 │ │ 字符串2 │ ││ │ 大块内存区域 │ │↓ 销毁整个池所有内存一次性释放,无需逐个free。
2026-02-25 06:00:00
1025
原创 [特殊字符] 2026 程序员春节拜年指南(生产环境已验证)
开始休假了。给大家拜个早年。新年快乐版本:v2026.1 LTS发布日期:2026.2.2兼容系统:人类 / 猫 / 家庭群 / 甲方。
2026-02-12 20:00:00
727
原创 FreeSWITCH 线程模型解析
FreeSWITCH 采用多线程架构:默认每个呼叫一个独立线程可选线程池机制:降低线程频繁创建/销毁的系统开销事件驱动模型:异步事件分发与处理后台资源管理:内存池回收、调度器线程实时性保障:关键线程可配置为实时优先级一次性任务周期性任务串行 / 并行执行FreeSWITCH 的线程模型具备高并发、强扩展与清晰职责划分等特点,是其高性能通信能力的核心基础。1.10.12。
2026-02-09 09:00:00
1048
原创 使用 Cursor 快速创建一个新工程(入门实战)
维度传统 IDECursor新工程起步手写 / 脚手架自然语言生成上下文理解文件级工程级重构成本高低学习新技术查文档边写边问Cursor 非常适合:🚀从 0 建工程🧪 快速验证想法🧩 写工具、Demo、小服务帮你把“重复、机械、容易写错的第一步”走完。剩下的判断、架构和关键逻辑,依然由你掌控。
2026-02-02 15:18:56
3688
原创 FreeSWITCH Media Bug 框架详解
Media Bug是 FreeSWITCH 内部提供的一套媒体流拦截(Hook)与处理框架。开发者可以在通话会话()中动态挂载一个或多个 Media Bug,用于捕获、分析、修改音频 / 视频 / 文本流。在编解码之后、媒体送达应用之前,提供一个可插拔的处理点。支持的能力包括:🎙 音频录制(读 / 写流)🔁 实时音频替换与注入📊 语音分析(VAD / DTMF / Tone / ASR)🎥 视频捕获、处理、监控👂 通话监听(Spy / Whisper)
2026-01-29 16:23:35
1024
原创 FreeSWITCH SIP会话恢复机制
Session Recovery 是 FreeSWITCH 高可用的核心能力三阶段模型清晰可靠支持单机 / 跨机 / 平滑升级具备良好的扩展点。
2026-01-26 08:00:00
1370
原创 UniMRCP 与 WebSocket ASR 的对比分析:语音系统该如何选型?
UniMRCP 是“系统架构层面的选择”,WebSocket ASR 是“能力层面的选择”。如果你关心的是…建议选择架构稳定性UniMRCP快速上线多引擎切换UniMRCP极致实时性长期演进UniMRCPUniMRCP 仍然是传统语音系统中的“中枢型方案”WebSocket ASR 是新一代 AI 语音能力的主流接口二者并非对立,而是层级不同、关注点不同在 FreeSWITCH 体系下,UniMRCP + WebSocket ASR 插件,往往是当前最稳妥、最工程化的选择。
2026-01-18 23:30:00
1007
原创 UniMRCP 插件体系介绍
用 MRCP 协议 + 插件架构,把复杂多变的语音引擎世界,统一到一个稳定、可扩展的接口之下。对于以 FreeSWITCH 为核心的语音系统来说,它仍然是ASR / TTS 接入层的经典方案。如果你计划:自研 ASR / TTS 插件对接云端语音服务深入理解 MRCP 协议那么,深入 UniMRCP 插件源码是非常值得的。
2026-01-05 14:16:52
1109
FreeSWITCH clustering with OpenSIPS
2020-04-22
Asterisk: The Definitive Guide, 3rd Edition
2013-01-25
FreeSWITCH Cookbook
2013-07-01
VoiceXML基础教程
2011-09-22
FreeSWITCH 1.0.6
2012-04-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅