webrtc-to-freeswitch:一个浏览器软电话的架构、流程与协议全解

Posted on 一 14 9月 2026 in Tech • Tagged with tech, webrtc, sip, freeswitch, vue, fastapi

上一篇讲清了 SIP.js 怎么打进 FreeSWITCH,这次把它做成了一个完整项目——webrtc-to-freeswitch。这篇从整体架构、信令与媒体的完整流程、协议分层三个层面把它讲透:它是什么、有什么用、怎么用;浏览器到 FreeSWITCH 之间一次通话到底发生了什么;以及最容易被忽略、却最容易踩坑的 FreeSWITCH 侧配置——WSS binding、candidate ACL、ext-rtp-ip。


Continue reading

用 SDD 写代码之后,我每天读的 Markdown 比代码多——于是写了 markpad

Posted on 二 01 9月 2026 in Tech • Tagged with journal, markdown, LLM, CLI, tooling, python, fastapi, SDD

自从用 OpenSpec 那套 spec-driven 流程做 AI 编程,proposal.md、design.md、tasks.md、spec.md 一层套一层,我一天读的 Markdown 比代码多。写这一端有 agent 帮忙,读这一端还是 cat 加 less。所以我给 markpad 又加了几刀:在任意目录敲一个命令,起一个本地 Web,左边编辑右边预览,Mermaid 和 PlantUML 直接出图,选中一段就能流式翻译,一键出摘要加思维导图。这是六月那篇介绍的续集,不讲功能清单,讲几个当时没写清的实现决定:为什么两种图表走两条完全不同的路、为什么翻译非流式不行、本地工具的安全线画在哪,以及我拿它打开自己上一篇博客时踩到的一个洞。1657 行 Python,53 个测试,可抄。


Continue reading

Markpad:我给 Markdown 装了一个本地驾驶舱

Posted on 六 27 6月 2026 in Tech • Tagged with markpad, markdown, editor, preview, llm, translation, sharing, local-first, python, fastapi

Markdown 写起来很舒服,但读起来、预览起来、跨中英文翻译起来并不总是舒服。Markpad 是我做的一个本地 Markdown Web 工具,把文件索引、左右分栏编辑预览、主题、图表渲染、实时分享和 LLM 翻译放在一起,解决自己每天写文档时的一个小但扎人的痛点。


Continue reading