- 博客(428)
- 资源 (19)
- 收藏
- 关注
原创 gRPC 入门介绍
gRPC 是由 Google 开源的高性能 RPC(Remote Procedure Call)框架,用于服务之间的高效通信。一句话理解:像调用本地函数一样调用远程服务它基于两个核心技术:HTTP/2(传输层)Protocol Buffers(数据序列化)gRPC 的核心价值:高性能(二进制 + HTTP/2)强类型接口(proto)原生流式通信(适合实时系统)一句话总结:gRPC 是构建高性能、实时通信系统的基础设施级工具。
2026-05-01 05:00:00
229
原创 AWS IMDS 版本(IMDSv1 vs IMDSv2)
IMDS 只有两个版本:IMDSv1 和 IMDSv2IMDSv1 简单但存在严重安全隐患IMDSv2 通过 Token + Hop Limit 提升安全性必须强制使用 IMDSv2。
2026-04-23 10:26:31
208
原创 使用 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
215
原创 Git 环境定制常用命令
核心优化点:log:提升可读性(alias + format)pager:提升阅读体验(less 参数)行为:统一 push / pull / rebase 策略适用于日常开发、问题定位、代码审查等场景。
2026-03-27 10:52:41
81
原创 FreeSWITCH 呼出流程深度分析
分层架构:从API层到SIP协议栈,每层职责清晰灵活性:支持多种呼叫模式(串行、并发、混合)可扩展性:通过endpoint接口支持多种协议状态管理:完善的状态机确保会话可控事件驱动:丰富的事件系统便于监控和集成调试呼叫问题优化呼叫性能开发自定义endpoint集成第三方系统都至关重要。- API命令- IVR层呼出逻辑- 核心会话管理- 状态机- Sofia辅助函数- SIP事件处理。
2026-03-26 22:14:20
367
原创 AI如何重塑通信行业:从VoIP到智能语音平台
通信行业正在从传统的“连接能力提供者”转变为“智能交互平台”。AI不仅改变了通信业务形态,也在重塑通信系统的技术架构。从VoIP系统到智能语音平台,通信行业正在进入AI驱动的新时代。对于通信工程师而言,这既是挑战,也是新的机遇。
2026-03-11 22:00:00
427
原创 OpenSIPS 3.6 代码框架
OpenSIPS 是一个高性能的开源 SIP(Session Initiation Protocol)服务器,基于 C 语言开发。它源自 SER (SIP Express Router) 项目,主要用于 VoIP 通信、即时消息和 Presence 服务。
2026-03-03 03:30:00
646
原创 FreeSWITCH内存池机制全解析
内存池模型:所有内存从内存池分配,池销毁时自动释放所有内存后台回收:专用线程异步销毁内存池,减少主线程阻塞内存池复用:可选的内存池回收复用机制无需手动释放:内存随所属池自动释放,避免内存泄漏层次化管理:会话、模块、临时操作分别使用独立内存池│ 内存池 (Memory Pool) ││ │ 对象A │ │ 对象B │ │ 对象C │ ││ │ 字符串1 │ │ 字符串2 │ ││ │ 大块内存区域 │ │↓ 销毁整个池所有内存一次性释放,无需逐个free。
2026-02-25 06:00:00
906
原创 [特殊字符] 2026 程序员春节拜年指南(生产环境已验证)
开始休假了。给大家拜个早年。新年快乐版本:v2026.1 LTS发布日期:2026.2.2兼容系统:人类 / 猫 / 家庭群 / 甲方。
2026-02-12 20:00:00
635
原创 FreeSWITCH 线程模型解析
FreeSWITCH 采用多线程架构:默认每个呼叫一个独立线程可选线程池机制:降低线程频繁创建/销毁的系统开销事件驱动模型:异步事件分发与处理后台资源管理:内存池回收、调度器线程实时性保障:关键线程可配置为实时优先级一次性任务周期性任务串行 / 并行执行FreeSWITCH 的线程模型具备高并发、强扩展与清晰职责划分等特点,是其高性能通信能力的核心基础。1.10.12。
2026-02-09 09:00:00
898
原创 使用 Cursor 快速创建一个新工程(入门实战)
维度传统 IDECursor新工程起步手写 / 脚手架自然语言生成上下文理解文件级工程级重构成本高低学习新技术查文档边写边问Cursor 非常适合:🚀从 0 建工程🧪 快速验证想法🧩 写工具、Demo、小服务帮你把“重复、机械、容易写错的第一步”走完。剩下的判断、架构和关键逻辑,依然由你掌控。
2026-02-02 15:18:56
2394
原创 FreeSWITCH Media Bug 框架详解
Media Bug是 FreeSWITCH 内部提供的一套媒体流拦截(Hook)与处理框架。开发者可以在通话会话()中动态挂载一个或多个 Media Bug,用于捕获、分析、修改音频 / 视频 / 文本流。在编解码之后、媒体送达应用之前,提供一个可插拔的处理点。支持的能力包括:🎙 音频录制(读 / 写流)🔁 实时音频替换与注入📊 语音分析(VAD / DTMF / Tone / ASR)🎥 视频捕获、处理、监控👂 通话监听(Spy / Whisper)
2026-01-29 16:23:35
792
原创 FreeSWITCH SIP会话恢复机制
Session Recovery 是 FreeSWITCH 高可用的核心能力三阶段模型清晰可靠支持单机 / 跨机 / 平滑升级具备良好的扩展点。
2026-01-26 08:00:00
1240
原创 UniMRCP 与 WebSocket ASR 的对比分析:语音系统该如何选型?
UniMRCP 是“系统架构层面的选择”,WebSocket ASR 是“能力层面的选择”。如果你关心的是…建议选择架构稳定性UniMRCP快速上线多引擎切换UniMRCP极致实时性长期演进UniMRCPUniMRCP 仍然是传统语音系统中的“中枢型方案”WebSocket ASR 是新一代 AI 语音能力的主流接口二者并非对立,而是层级不同、关注点不同在 FreeSWITCH 体系下,UniMRCP + WebSocket ASR 插件,往往是当前最稳妥、最工程化的选择。
2026-01-18 23:30:00
705
原创 UniMRCP 插件体系介绍
用 MRCP 协议 + 插件架构,把复杂多变的语音引擎世界,统一到一个稳定、可扩展的接口之下。对于以 FreeSWITCH 为核心的语音系统来说,它仍然是ASR / TTS 接入层的经典方案。如果你计划:自研 ASR / TTS 插件对接云端语音服务深入理解 MRCP 协议那么,深入 UniMRCP 插件源码是非常值得的。
2026-01-05 14:16:52
861
原创 Sipp 读取 WAV 文件格式要求
SIPp 支持两种形式的音频文件:1. **WAV 文件** - 但只是跳过 WAV 文件头,**不进行任何格式转换**2. **裸音频数据文件** (raw samples)关键点:无论是 WAV 还是裸数据,音频数据本身必须已经是编码后的格式。
2025-12-16 17:43:32
368
原创 AI 生成的FreeSWITCH 呼出流程深度分析freeswitch-1.10.12.-release
| |<--200 OK--------| (先应答)|<--ANSWERED----------------------------| (获胜) ||--返回Peer2----------->| | |**文件位置:** `src/mod/applications/mod_commands/mod_commands.c:5080`
2025-12-08 20:00:00
725
1
原创 Ubuntu 上编译安装 SIPp 3.7.5
SIPp 是一个广泛使用的 **SIP 协议压力测试和功能测试工具**,支持 UDP、TCP、SCTP、TLS 等多种协议。本文以 **Ubuntu 系统** 为例,介绍如何从官方源码安装 **SIPp 3.7.5**,并解决常见编译问题。
2025-11-25 16:55:02
508
原创 Cursor 使用记录:C/C++ 开发者
Cursor 不只是一个 AI 编辑器,它是 VS Code 的“强化版助手”。在底层开发中,它能:快速解释复杂 C 逻辑;自动生成注释与声明;辅助调试 ASan 报告;帮助优化内存与性能问题。
2025-11-15 00:00:00
2206
1
原创 Linux C 文件操作系统调用
是最基本的 I/O 接口;提供元信息与控制;结合锁与同步机制,可构建高可靠的文件系统操作。掌握这些系统调用,是深入理解 Linux I/O 模型(如异步 I/O、epoll)的前提。
2025-11-06 06:00:00
780
原创 POSIX 文件锁机制
POSIX 文件锁是 UNIX 系统中最基础的进程同步机制之一。它:灵活可配置;提供区域锁定;但需要各方遵守锁协议。多进程同时访问数据库或索引文件;日志轮转或状态文件更新;与flock不兼容的跨平台程序。分布式文件系统(NFS、CephFS等);线程级同步(应使用 pthread 互斥锁)。
2025-10-28 22:00:00
872
原创 Ceph 简介
Ceph 是一个功能强大的分布式存储系统,具有高可扩展性、高可靠性和多种存储模式。无论是云存储、大数据、虚拟化还是高性能计算,Ceph 都可以提供高效的存储解决方案。虽然它的部署和管理可能会有一定的复杂性,但对于需要处理大规模数据存储的企业和组织,Ceph 仍然是一个值得考虑的优秀选择。
2025-10-23 21:00:00
843
原创 Linux /etc/fstab 文件 —— 文件系统自动挂载的核心配置
优点注意事项启动自动挂载,系统管理更自动化配置错误可能导致系统无法启动统一定义磁盘和网络文件系统建议先用测试支持 UUID/LABEL 提升稳定性使用_netdev处理网络挂载。
2025-10-15 08:00:00
1359
原创 天气API
杭州的天气见鬼了,热死在秋天里。如果我们想要获取天气信息,怎么办?可以通过的免费 API 获取并显示一个城市的天气统计数据(温度、湿度、气压、天气状况等)。
2025-10-10 16:45:27
586
原创 使用 C++ 开发 Vim 插件
Vim 的插件开发通常用或者,但有时我们希望利用来完成复杂功能,例如代码分析、语法检查、文本处理等。实现方式一般是:用 C++ 写一个可执行程序;Vim 插件通过system()调用这个程序;捕获结果并展示。这样就能把。
2025-09-25 17:00:02
536
原创 Cursor 编辑器:面向 AI 编程的新一代 IDE
Cursor 是一款内置 AI 能力的代码编辑器,它基于 Visual Studio Code 开发,因此对开发者来说几乎没有学习成本。简单来说,它就是把AI 对话 + 智能补全 + 代码生成无缝集成进了日常开发环境。—— 把 AI 放在核心,而不是外挂。如果说 VS Code 是最通用的代码编辑器,那么 Cursor 正在尝试成为最聪明的代码编辑器。对于希望把 AI 深度融入日常开发的程序员来说,Cursor 值得一试。
2025-09-09 17:54:36
2367
2
原创 C/C++ 与 Lua 互相调用详解
Lua 是一门轻量级、嵌入式的脚本语言,常常与 C/C++ 结合使用。通过嵌入 Lua,可以让应用程序获得灵活的配置、脚本化逻辑和可扩展性。本文将介绍如何在,以及如何让。最后给出一个,可以直接编译运行。
2025-09-05 13:52:53
985
1
原创 GitLab 配置 Pipeline 的过程
build:编译、打包、镜像构建等。test:单元测试、集成测试、代码质量检查等。deploy:部署到测试环境或生产环境。GitLab CI/CD Pipeline 提供了一套强大而灵活的自动化工具,使得开发团队能够快速迭代、自动化测试和安全部署。配置的核心在于 .gitlab-ci.yml文件,通过合理设计阶段、任务和触发规则,就能搭建适合团队需求的流水线。无论是简单的编译与测试,还是复杂的微服务部署,GitLab CI/CD 都能满足需求。
2025-08-28 17:50:49
1331
原创 Linux file 命令
file命令是 Linux 下一个轻量但非常实用的文件分析工具,尤其在:不信任文件扩展名时批量检测文件类型时自动化脚本中过滤文件类型时都能发挥重要作用。
2025-08-15 08:00:00
687
原创 PBX Feature Code(功能码)
自定义拨号规则:在Dialplan中添加自定义功能码,如*400开启录音。权限与分组控制:针对特定用户或用户组开放/禁用某些功能码。功能扩展脚本:通过Lua、Perl、Python等脚本扩展Feature Code的功能逻辑。多语言支持:针对不同语言环境定制Feature Code的语音提示。上述配置实现拨打*400即可开启通话录音。Feature Code作为PBX系统中便捷高效的控制接口,大大简化了用户对复杂呼叫功能的操作流程。
2025-08-05 15:07:37
972
原创 雨中参观浙江受降纪念馆
这一场雨,从细如呢语,到倾盆如诉,仿佛是那段烽火岁月的注脚。走出馆门,我把伞撑开,带着敬意与沉思,在雨中缓步离开。那不是欢腾的胜利,而是沉默中的清算,是数百万同胞生命换来的最终对峙。照片里爆炸的一刻,火光如泪,桥梁断裂,却挺直了不屈的民族脊梁。天色阴沉,细雨如丝,打在伞面上发出轻微的“嗒嗒”声。雨声在寂静街巷中回响,仿佛是从远处历史深处传来的低语,引导着我缓缓走近这座记载民族苦难与抗争的纪念场所。穿过灰色石阶,雨点敲打着透明雨棚,水珠沿伞骨滴落,耳边只有风声与雨声,仿佛脚步都被这沉重的历史压得轻缓。
2025-08-01 16:37:42
229
原创 FreeSWITCH 中的 <macro> 实现机制
macro>FreeSWITCH 的<macro>提供了一种高效、可维护的方式来构建可复用的语音提示逻辑模块。对于构建复杂的语音交互系统,合理设计 macro 结构可以显著提升代码整洁性和复用性,是每一个使用 FreeSWITCH 的开发者都应掌握的重要工具。如果你正在自定义 voicemail 模块、构建 IVR 系统,建议深入学习 FreeSWITCH 的<macro>和<say>用法,并结合调试工具(如和fs_cli)跟踪执行流程,以达到灵活、精细控制语音交互的目的。
2025-07-29 10:01:10
440
原创 多台机器的vscode连接同一个SSH服务器冲突问题
有两台电脑: 笔记本和台式机作为客户端机器,GIT代码存放在服务器上,两台客户端机器同时通过vscode访问服务器上的GIT仓库。先配置的台式机一直工作正常。后配置的笔记本连接后,一直有冲突。
2025-07-18 01:00:00
926
原创 开源 SIP 协议栈介绍
Sofia-SIP 是用 ANSI C 开发的事件驱动型 SIP 协议栈,被广泛用于 FreeSWITCH 等通信系统中。PJSIP 是一套跨平台的 C 语言多媒体通信库,涵盖 SIP、SDP、RTP、ICE 等协议,适用于桌面和移动平台。reSIProcate 是由 SIPfoundry 社区发起的 C++ SIP 协议栈项目,具备较强的可扩展性和功能完整性。Kamailio 是基于 SIP Express Router(SER)的高性能 SIP 服务器项目,支持大规模分布式部署。
2025-07-08 16:13:14
1602
2
原创 _nta_incoming_timer 函数解析
在 Sofia-SIP 协议栈中,是一个核心定时器函数,用于处理。它不仅实现了 SIP RFC 中的多个关键定时器(如 Timer G、H、I、J、P1、P2、N1),还精细地管理了事务状态队列中的生命周期。本文将逐段剖析该函数,帮助你从源码角度全面理解 SIP 入站事务定时处理逻辑。
2025-07-02 11:00:01
853
原创 _nta_outgoing_timer() 函数解析
是 Sofia-SIP 中的定时器控制核心,负责管理出站事务的生命周期,符合 SIP 协议中多个定时器(A~K)的设计规范。理解这个函数有助于:调试 INVITE 重传、状态卡住等问题;分析 TCP 切 UDP 的连接降级行为;理解 FreeSWITCH 等基于 Sofia 的 SIP 实现内部事务状态机的实际运作。
2025-06-25 06:00:00
964
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订阅