Files
magic-sonar/README.md
T
2026-08-18 15:45:09 +08:00

39 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# magic-sonar
智语声呐
- [AI 外呼 SaaS 调研与架构指南](docs/research/ai-outbound-saas.md)
- [公网模型外呼目标架构](docs/architecture/public-model-outbound.md)
## SIP/RTP 单次呼出 MVP
cmd/sip-demo 通过 UDP 向 61.132.228.221:5060 发起一通 IP 白名单、无鉴权呼叫:
- 主叫固定为企业 code BD93205882,被叫按 7089 + SIP_TEST_NUMBER 生成;
- 协商 G.711 A-law/μ-law、20 ms RTP 帧,播放百练合成披露话术和 WAV/内置测试音;
- 上行连续三帧达到 VAD 阈值时立即停止下行播放,用于验证最小打断链路;
- 上下行分别录为 recordings/*-rx.wav、recordings/*-tx.wav;
- SIP 请求、响应和通话事件写入 logs/sip.log,号码在写入前脱敏。
真实号码、API Key、运行日志和录音均被 .gitignore 排除。仓库只保留[脱敏日志样本](docs/examples/sip-signaling.redacted.log)。
### 离线验证
go test ./...
go build ./cmd/sip-demo
测试使用本地 HTTP/RTP 端点,不调用百练或 SIP 服务器。
### 经授权的内部联调
确认执行机出口 IP 已加入白名单、UDP SIP/RTP 可达,再仅通过环境提供号码和凭据:
export SIP_TEST_NUMBER='<已授权内部测试号码>'
export BAILIAN_BASE_URL='https://<endpoint>/compatible-mode/v1'
export BAILIAN_API_KEY='<server-side-key>'
go run ./cmd/sip-demo
BAILIAN_BASE_URL 应指向支持 POST /audio/speech、PCM16 输出的百练兼容端点;若它已以 /audio/speech 结尾则直接使用。除 loopback 测试外只接受 HTTPS,并拒绝跨 host 或 HTTPS 降级重定向。Key 只进入 Bearer 请求头,不写日志。可用 -audio music.wav 追加单声道 PCM16 WAV;未指定时追加两秒测试音。NAT 环境通过 SIP_ADVERTISE_IP 或 -advertise-ip 指定 SDP/Via 公网 IP。
本 MVP 不做注册、鉴权、重拨、ASR/LLM、AEC 或抖动缓冲。打断依赖线路提供独立上行;若远端回声触发误打断,用 -vad-threshold 校准,正式方案仍需 AEC/线路能力验证。