Files
magic-sonar/README.md
T
2026-08-18 17:28:44 +08:00

40 lines
2.2 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
测试使用本地 WebSocket/RTP 端点,不调用百练或 SIP 服务器。
### 经授权的内部联调
确认执行机出口 IP 已加入白名单、UDP SIP/RTP 可达,再仅通过环境提供号码和凭据:
export SIP_TEST_NUMBER='<已授权内部测试号码>'
export BAILIAN_BASE_URL='wss://<WorkspaceId>.cn-beijing.maas.aliyuncs.com/api-ws/v1/inference'
export BAILIAN_API_KEY='<server-side-key>'
export BAILIAN_TTS_VOICE='<cosyvoice-v3.5-plus voice-design ID>'
go run ./cmd/sip-demo
BAILIAN_BASE_URL 必须是上述北京地域工作空间的 CosyVoice WebSocket 完整端点;BAILIAN_TTS_VOICE 必须是在同一工作空间中为 cosyvoice-v3.5-plus 创建的声音设计 voice ID,该模型不支持 longxiaochun 等系统音色。程序不拼接、回退或重试其他路径。除 loopback 测试外只接受 WSS。Key 只进入 WebSocket 握手的 Bearer 请求头,不写日志。可用 -audio music.wav 追加单声道 PCM16 WAV;未指定时追加两秒测试音。NAT 环境通过 SIP_ADVERTISE_IP 或 -advertise-ip 指定 SDP/Via 公网 IP。
本 MVP 不做注册、鉴权、重拨、ASR/LLM、AEC 或抖动缓冲。打断依赖线路提供独立上行;若远端回声触发误打断,用 -vad-threshold 校准,正式方案仍需 AEC/线路能力验证。